Редактор кода Visual Studio
83ASP.NET --- Основы ASP.NET --- Редактор кода Visual Studio
Многие из наиболее удобных функций Visual Studio появляются с началом написания кода, необходимого для поддержки пользовательского интерфейса. Чтобы приступить к написанию кода, нужно переключиться в соответствующий режим, который называется представлением отделенного кода (code-behind view).
Переключаться в этот режим и выходить из него позволяют две кнопки, расположенные прямо над окном Solution Explorer. Во всплывающих подсказках, которые появляются при наведении курсора мыши, эти кнопки называются View Code (Показать код) и View Designer (Показать визуальный конструктор). После переключения в режим кода отображается класс, лежащий в основе спроектированной веб-страницы.
ASP.NET является управляемой событиями технологией, а это значит, что в коде вебстраницы все происходит только в ответ на какое-то событие. Чтобы создать простой обработчик события Button.Click, нужно дважды щелкнуть на требуемой кнопке в режиме визуального конструктора. Ниже показан пример такого простого обработчика, который отображает текущую дату и время в текстовой метке:
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = "Текущее время: " + DateTime.Now.ToLongTimeString();
}
Чтобы протестировать эту страницу, выберите в меню Debug (Отладка) команду Start Debugging (Начать отладку). Visual Studio запустит встроенный тестовый веб-сервер и используемый по умолчанию браузер с URL-адресом, указывающим на страницу, которая в текущий момент открыта в Visual Studio. После этого запрос будет передан системе ASP.NET, которая скомпилирует код страницы, а затем выполнит его.
Чтобы протестировать свою логику обработки событий, щелкните на кнопке, отображаемой на странице. После этого данная страница снова передается системе ASP.NET, которая запустит код обработки события и вернет новую HTML-страницу с данными:
Добавление ссылок на сборки
По умолчанию ASP.NET делает доступным для всех веб-страниц небольшой набор наиболее часто используемых сборок .NET. Эти сборки перечислены в таблице ниже и конфигурируются посредством специального конфигурационного файла, который действует на уровне всей машины. Чтобы использовать содержащиеся в этих сборках классы никаких дополнительных шагов выполнять не требуется.
Сборка | Описание |
---|---|
mscorlib.dll, Microsoft.CSharp.dll и System.dll | Содержат базовый набор типов данных .NET, распространенных типов исключений и большое количество других фундаментальных строительных блоков |
System.Configuration.dll | Содержит классы для чтения и записи конфигурационной информации из файла web.config, включая пользовательские настройки |
System.Core.dll | Включает поддержку некоторой ключевой функциональности, появившейся в .NET 3.5, например LINQ |
System.Data.dll | Содержит классы типа контейнеров данных для ADO.NET вместе с поставщиком данных SQL Server |
System.Data.DataSetExtensions.dll | Включает поддержку для LINQ to DataSet |
System.Drawing.dll | Содержит классы, представляющие цвета, шрифты и формы, а также логику для выполнения рисования с помощью GDI+, необходимую для построения графиков "на лету" |
System.EnterpriseServices.dll | Содержит классы .NET для работы со службами СОМ+, такими как транзакции. В настоящее время эти классы применяются редко, поскольку многие из них были заменены более новыми средствами платформы |
System.Web.dll | Содержит ключевые классы ASP.NET, в том числе классы для построения веб-форм, управления состоянием, обеспечения безопасности и многого другого |
System.Web.ApplicationServices.dll | Содержит некоторые классы из числа тех, что в предыдущих выпусках находились в составе сборки System.Web.dll, но были перемещены сюда из-за того, что могут также применяться для написания кода настольных приложений. Это позволяет разработчикам создавать развитые клиентские приложения, ориентированные на усеченную версию .NET 4 Client Profile, которая включает в себя эту сборку, но не System.Web.dll |
System.Web.DynamicData.dll | Включает поддержку такой вспомогательной системы ASP.NET, как Dynamic Data |
System.Web.Entity.dll | Содержит элемент управления EntityDataSource, который позволяет подключать веб-формы к компоненту LINQ to Entities |
System.Web.Extensions.dll | Включает специфичную для ASP.NET поддержку для функциональных возможностей, которые появились в .NET 3.5, в том числе LINQ и ASP.NET AJAX |
System.Web.Services.dll | Содержит классы для создания веб-служб — единиц кода, которые могут активизироваться удаленным образом через протокол HTTP. Это средство по большей части заменено технологией WCF (Windows Communication Foundation) |
System.Xml.dll И System.Xml.Linq.dll | Содержит классы .NET для чтения, записи, поиска, преобразования и верификации данных XML как с применением LINQ to XML, так и без |
Если нужно использовать дополнительные функциональные возможности или какой-то сторонний компонент, может потребоваться импортировать больше сборок.
Например, при желании использовать базу данных Oracle понадобится добавить ссылку на сборку System.Data.OracleClient.dll. Чтобы добавить ссылку, выберите в меню Website (Веб-сайт) пункт Add Reference (Добавить ссылку) (или выберите в меню Project (Проект) пункт Add Reference (Добавить ссылку) в веб-проекте). Откроется диалоговое окно Add Reference (Добавление ссылки) со списком всех зарегистрированных сборок .NET:
В диалоговом окне Add Reference следует выбрать требуемый компонент. Если такового нет в списке, тогда нужно перейти на вкладку Browse (Обзор) и выбрать желаемый DLL-файл из соответствующего каталога (или перейти на вкладку Projects (Проекты) и выбрать желаемый DLL-файл из другого проекта в том же самом решении).
При добавлении ссылки на сборку, которая хранится не в глобальном кэше сборок (global assembly cache — GAC), Visual Studio создает в каталоге веб-приложения подкаталог Bin и копирует соответствующий DLL-файл в него. (Это происходит независимо от того, какая разработка применяется: с проектом или без.) Для сборок, хранящихся в GAC, данный шаг не требуется потому, что они являются общедоступными для всех установленных .NET-приложений на данном компьютере.
Если вы посмотрите на код класса любой веб-страницы, то заметите, что Visual Studio импортирует лишь несколько основных пространств имен .NET. Код выглядит примерно так:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
Добавление ссылки — это не то же самое, что импорт пространства имен с помощью оператора using. Оператор using позволяет использовать классы в пространстве имен без необходимости ввода длинных полностью квалифицированных имен классов.
Однако если вы пропустите ссылку, то включенные операторы using не будут иметь значения — классы все равно не будут доступны. Например, при импорте пространства имен System.Web.UI вы можете записывать в своем коде Page вместо System.Web.UI.Page. Но если вы не добавили ссылку на сборку System.Web.dll, содержащую эти классы, вы не сможете получить доступ к классам пространства имен System.Web.UI.
Средство IntelliSense
Программируя в Visual Studio, вы увидите, что в этом продукте доступно много удобных функций, помогающих экономить время разработчика. В следующих разделах мы расскажем лишь о нескольких наиболее важных из таких функций, которыми вы наверняка будете пользоваться.
Список членов
Visual Studio упрощает взаимодействие с элементами управления и классами. Когда разработчик вводит после имени класса или объекта точку (.), Visual Studio тут же отображает список всех доступных для этого класса или объекта свойств и методов:
То же самое Visual Studio делает и тогда, когда разработчик определяет переменную, отображая список доступных типов данных, и тогда, когда тот присваивает значение перечислению, отображая список допустимых значений.
Visual Studio также предоставляет список параметров и их типов данных при вызове метода или конструктора. Эта информация выводится в виде подсказки под строкой кода и отображается по мере ввода.
Поскольку в библиотеке классов .NET интенсивно используется перегрузка функций, методы могут иметь по нескольку разных версий. И когда это так, Visual Studio информирует о количестве доступных версий и позволяет просматривать определения методов для каждой из них, для чего необходимо щелкнуть на небольшой стрелке вверх или вниз внутри подсказки. После каждого щелчка на такой стрелке в окне подсказки отображается другая версия перегруженного метода:
Подчеркивание ошибок
Одним из наиболее полезных свойств редактора кода является подчеркивание ошибок. Visual Studio может определить различные ошибочные условия, такие как неопределенные переменные, свойства или методы, недопустимые преобразования типов данных и пропущенные элементы кода. Вместо того чтобы прерывать вашу работу для предупреждения о возникшей проблеме, редактор Visual Studio просто подчеркивает неправильный код. Вы можете навести курсор мыши на подчеркнутую ошибку и увидеть краткое описание проблемы в окне подсказки.
Система Visual Studio не помечает ошибки немедленно. Наоборот, она быстро сканирует код при попытке его скомпилировать и отмечает все найденные ошибки. Если код содержит хотя бы одну ошибку, Visual Studio выдаст вопрос о необходимости продолжения. В этот момент обычно операция отменяется для исправления ошибок, обнаруженных Visual Studio. (Выбрав продолжение, вам придется использовать ранее скомпилированную версию приложения, поскольку компиляторы .NET не могут создавать приложения, которые содержат ошибки.)