Часть 1 Общая информация Microsoft .NET Framework — это платформа для создания, развертывания и запуска web-сервисов и приложений. Она предоставляет высокопроизводительную, основанную на стандартах многоязыковую среду, которая позволяет интегрировать существующие приложения с приложениями и сервисами следующего поколения, а также решать задачи развертывания и использования интернет-приложений. .NET Framework состоит из трех основных частей — общеязыковой среды выполнения (common language runtime), иерархического множества унифицированных библиотек классов и компонентной версии ASP, называемой ASP .NET. Microsoft ASP.NET ASP .NET — это часть технологии .NET, используемая для написания мощных клиент-серверных интернетприложений. Она позволяет создавать динамические страницы HTML. ASP .NET возникла в результате объединения более старой технологии ASP (активные серверные страницы) и .NET Framework. Она содержит множество готовых элементов управления, применяя которые, можно быстро создавать интерактивные web-сайты. Вы также можете использовать сервисы, предоставляемые другими сайтами, прозрачно для пользователей вашего сайта. ASP ASP (англ. Active Server Pages — «активные серверные страницы») — первая технология компании Microsoft, позволяющая динамически создавать веб-страницы на стороне сервера. ASP работает на платформе операционных систем линейки Windows NT и на веб-сервере Microsoft IIS. ASP не является языком программирования — это лишь технология предварительной обработки, позволяющая подключать программные модули во время процесса формирования веб-страницы. Относительная популярность ASP основана на простоте используемых языков сценариев (VBScript или JScript) и возможности использования внешних COMкомпонентов. Технология ASP получила своё развитие в виде ASP.NET — новой технологии создания веб-приложений, основанной на платформе Microsoft .NET. Принципы ASP.NET Хотя ASP.NET берёт своё название от старой технологии Microsoft ASP, она значительно от неё отличается. Microsoft полностью перестроила ASP.NET, основываясь на Common Language Runtime (CLR), который является основой всех приложений Microsoft .NET. Разработчики могут писать код для ASP.NET, используя практически любые языки программирования, в том числе, и входящие в комплект .NET Framework (C#, Visual Basic.NET, и JScript .NET). ASP.NET имеет преимущество в скорости по сравнению со скриптовыми технологиями, так как при первом обращении код компилируется и помещается в специальный кэш, и впоследствии только исполняется, не требуя затрат времени на парсинг, оптимизацию, и т. д. Вместе с тем следует учитывать, что указанное преимущество не всегда может быть реализовано. Это связано с тем, что на скорость работы реального проекта влияют множество факторов. В первую очередь это квалификация руководителей разработки и исполнителей: медленные алгоритмы легко сводят на нет незначительное преимущество скомпилированного кода перед интерпретацией серверных скриптов. Преимущества ASP.NET перед ASP Компилируемый код выполняется быстрее, большинство ошибок отлавливается ещё на стадии разработки Значительно улучшенная обработка ошибок времени выполнения, с использованием блоков try..catch Пользовательские элементы управления (controls) позволяют выделять часто используемые шаблоны, такие как меню сайта Использование метафор, уже применяющихся в Windows-приложениях, например, таких как элементы управления и события Расширяемый набор элементов управления и библиотек классов позволяет быстрее разрабатывать приложения ASP.NET опирается на многоязыковые возможности .NET, что позволяет писать код страниц на VB.NET, Delphi.NET, Visual C#, J# и т. д. Возможность кэширования всей страницы или её части для увеличения производительности Возможность кэширования данных, используемых на странице Возможность разделения визуальной части и бизнес-логики по разным файлам («code behind») Расширяемая модель обработки запросов Расширенная событийная модель Расширяемая модель серверных элементов управления Наличие master-страниц для задания шаблонов оформления страниц Поддержка CRUD-операций при работе с таблицами через GridView Встроенная поддержка AJAX CLR, CIL Common Language Runtime (CLR) — «общеязыковая исполняющая среда» — компонент пакета Microsoft .NET Framework, виртуальная машина, исполняющий программы, написанные на .NET-совместимых языках программирования. CLR интерпретирует и исполняет код на языке IL (реализация компиляции которого компанией Microsoft называется MSIL), а также предоставляет MSIL-программам (а следовательно, и программам, написанным на языках высокого уровня, поддерживающих .NET Framework) доступ к библиотекам классов .NET Framework, или так называемой .NET FCL (англ. Framework Class Library). Среда CLR является реализацией спецификации CLI (англ. Common Language Infrastructure), спецификации общеязыковой инфраструктуры компании Microsoft. Common Intermediate Language, сокращенно CIL — промежуточный язык, разработанный фирмой Microsoft для платформы .NET Framework. JIT-компилятор CIL является частью так называемой CLR (англ. Common Language Runtime) — общей среды выполнения языков .NET. Ранее язык назывался Microsoft Intermediate Language, однако был переименован для создания стандарта ECMA-335. CLI CLI (англ. Common Language Infrastructure) — спецификация общеязыковой инфраструктуры. Наиболее известными реализациями этого стандарта являются Microsoft .NET Framework, Mono, DotGNU Portable.NET. Спецификация CLI определяет, в частности, архитектуру исполнительной системы .NET — CLR и сервисы, предоставляемые CLR выполняемым программам, классы, предоставляемые библиотекой FCL, синтаксис и мнемонику общего промежуточного языка (IL). Часть 2 Разработка приложений и Доступ к данным Модель разработки .NET Для создания приложения ASP.NET необходимы два высокоуровневых средства. • Компилятор языка, который анализирует код (в данном случае — код на C#) и преобразует его в низкоуровневые инструкции IL (Intermediate Language промежуточный язык). • IDE-среда, которая позволяет писать код, проектировать разметку Webстраниц, управлять файлами и тестировать решение. В .NET эти два компонента разделены. Благодаря этому, языки могут иметь каждый свой собственный компилятор и при этом использовать одинаковые инструменты проектирования и отладки. Компиляторы Ниже перечислены компиляторы языков .NET. • компилятор Visual Basic (vbc.exe); • компилятор C# (csc.exe); • компилятор JScript (jsc.exe); • компилятор J# (vjc.exe). Интегрированная среда разработки Visual Studio Встроенный Web-сервер. Поддержка множества языков при разработке. Меньше кода для написания. Интуитивный стиль кодирования. Более высокая скорость разработки. Возможности отладки Доступ к данным. Модель ADO.NET .NET Framework включает свою собственную технологию доступа к данным — ADO.NET. ADO.NET состоит из управляемых классов, позволяющих приложениям .NET подключаться к источникам данных (обычно реляционным базам данных), выполнять команды и управлять автономными данными. Особенность ADO.NET заключается в том, что эта технология позволяет писать более-менее одинаковый код для доступа к данным — как в Web-приложениях, так и в клиент-серверных настольных приложениях, или даже в однопользовательских приложениях, подключаемых к локальной базе данных. Поставщики данных ADO.NET Классы, которые составляют поставщик данных, включают следующие. • Connection. Этот объект используется для установки соединения с источником данных. • Command. Этот объект используется для выполнения команд SQL и хранимых процедур. • DataReader. Этот объект предоставляет быстрый опережающий доступ только для чтения к данным, извлеченным по запросу. • DataAdapter. Этот объект выполняет две задачи. Первая — наполнение DataSet (автономная коллекция таблиц и отношений) информацией, извлеченной из источника данных. Вторая — его можно использовать для применения изменений данных к источнику данных в соответствии с модификациями, произведенными в DataSet. Поставщики данных ADO.NET • Поставщик SQL Server. Предоставляет оптимизированный доступ к базам данных SQL Server (версии 7.0 и выше). • Поставщик OLE DB. Предоставляет доступ к любому источнику данных, который имеет драйвер OLE DB. Это включает базы данных SQL Server версий, предшествующих 7.0. • Поставщик Oracle. Предоставляет оптимизированный доступ к базам данных Oracle (версии 8i и выше). • Поставщик ODBC. Предоставляет доступ к любому источнику данных, имеющему драйвер ODBC. Уровни модели поставщиков ADO.NET Стандартизация в ADO.NET Несмотря на то, что разные поставщики данных .NET используют различные классы, все они некоторым образом стандартизованы. Точнее говоря, каждый поставщик основан на одном и том же наборе интерфейсов и базовых классов. Так, например, объект Connection реализует интерфейс IDbConnection, который определяет такие центральные методы, как Open() и Close(). Подобная стандартизация гарантирует, что каждый класс Connection будет работать одинаковым образом и представит один и тот же набор центральных свойств и методов. ADO.NET также имеет другой уровень стандартизации — DataSet. LINQ Одним из наиболее впечатляющих новшеств .NET является LINQ (Language Integrated Query — язык интегрированных запросов) — набор расширений языка, позволяющий выполнять запросы, не покидая привычного окружения языка C#. Основы LINQ // Получить полную коллекцию сотрудников от вспомогательного метода. List<EmployeeDetails> employees = db.GetEmployees(); // Найти подходящих сотрудников. List<EmployeeDetails> matches = new List<EmployeeDetails>(); Ту же задачу можно решить с помощью выражения LINQ List<EmployeeDetails> employees = db.GetEmployees(); IEnumerable<EmployeeDetails> matches; matches = from employee in employees foreach (EmployeeDetails employee in employees) { if(employee.LastName.StartsWith("D")){ matches.Add(employee); } } gridEmployees.DataSource = matches; gridEmployees.DataBind(); where employee.LastName.StartsWith("D") select employee; gridEmployees.DataSource = matches; gridEmployees.DataBind(); Часть 3 Создание Web-сайтов на платформе ASP.NET Элементы управления Включить в структуру Web-формы свои собственные элементы управления в рамках платформы .NET можно двумя способами. Вы можете создать одно из двух. Пользовательские элементы управления. Специальные серверные элементы управления. Темы CSS ограничены фиксированным набором атрибутов стилей, они не могут управлять многими аспектами элементов управления ASP.NET. Этот пробел заполняют темы (theme). Как и CSS, темы позволяют определять набор атрибутов стилей, которые можно применять к элементам управления на многих страницах. Темы основаны на элементах управления, а не на HTML Темы применяются на стороне сервера. Навигация по Web-сайту Всторенная система навигации ASP.NET: Элементы управления MultiView и Wizard. Модель карты сайта. Полнофункциональные элементы управления навигации Безопасность Запрос страницы, требующей аутентификации Безопасность Запрос страницы, требующей аутентификации и авторизации Введение в ASP.NET AJAX Расширения языка JavaScript. Удаленные вызовы методов. Службы ASP.NET. Частичные обновления страниц. Предварительно построенные элементы управления.