ASP.NET (Active Server Pages для .NET) — платформа разработки веб-приложений, в состав которой входят: веб-сервисы, программная инфраструктура, модель программирования[1], от компании Майкрософт. ASP.NET входит в состав платформы .NET Framework[2] и является развитием более старой технологии Microsoft ASP.
ASP.NET внешне во многом сохраняет схожесть с более старой технологией ASP, что позволяет разработчикам относительно легко перейти на ASP.NET. В то же время внутреннее устройство ASP.NET существенно отличается от ASP, поскольку она основана на платформе .NET и, следовательно, использует все новые возможности, предоставляемые этой платформой.
История ASP.NET
правитьПосле выпуска сервера Internet Information Services 4.0 в 1997 году, компания Microsoft начала исследовать возможность новой модели веб-приложения, которая удовлетворит жалобы на ASP, особенно связанные с отделением оформления от содержания, и которая позволит писать «чистый» код[3]. Работа по разработке такой модели была поручена Марку Андерсу, менеджеру команды IIS, и Скотту Гатри, поступившему на работу в Microsoft в 1997. Андерс и Гатри разработали первоначальный проект в течение двух месяцев, и Гатри написал код первоначального прототипа во время рождественских каникул 1997 года.[4]
Первоначальный проект назывался «XSP»; Гатри объяснил в интервью 2007 года, что «всегда спрашивают, что означает буква X. В то время она ничего не значила. XML начинается с неё; XSLT начинается с неё. Все клевое начинается с X, поэтому мы его так и назвали.»[3] Прототип XSP был написан на Java, так как на тот момент у Microsoft не было Java-подобной технологии. В то время уже предполагалось (небезосновательно, как выяснилось в дальнейшем), что лицензирование Java для Microsoft не будет продлено в 2003 году (в 2003 истекал срок выданной Sun Microsystems лицензии). В 1999 компанией Майкрософт было решено построить платформу с общеязыковой средой исполнения Common Language Runtime (CLR) и на её основе развить технологии. В ней, как и в Java, использовались программирование по принципам ООП, сборка мусора и другие возможности[5]. Гатри описал это решение как «огромный риск», так как успех новой разработки был связан с успехом CLR, которая, как и XSP, находилась на ранней стадии разработки.
Принципы ASP.NET
правитьПоскольку ASP.NET основывается на Common Language Runtime (CLR), которая является основой всех приложений Microsoft .NET, разработчики могут писать код для ASP.NET, используя языки программирования, входящие в комплект .NET Framework (C#, Visual Basic.NET, J# и JScript .NET)[1].
Программная модель ASP.NET основывается на протоколе HTTP и использует его правила взаимодействия между сервером и браузером. При формировании страницы заложена абстрактная программная модель Web Forms и на ней основана основная часть реализации программного кода[1].В целом, ASP.NET предлагает множество преимуществ для разработки веб-приложений, включая мощные инструменты, высокую производительность и богатый набор библиотек.
Программные модели
правитьВ ASP.NET поддерживается несколько программных моделей для создания веб-приложений[6]:
- ASP.NET Web Forms[англ.] — фреймворк для создания модульных веб-страниц из компонентов с обработкой событий пользовательского интерфейса на стороне сервера;
- ASP.NET MVC — фреймворк для создания веб-страниц с использованием шаблона проектирования MVC;
- ASP.NET Web Pages[англ.] — упрощённый синтаксис для добавления динамического кода и доступа к данным внутри HTML разметки веб-страниц[7];
- ASP.NET Web API — фреймворк для создания Web API поверх .NET Framework[8];
- ASP.NET WebHooks — реализация шаблона Webhook для подписки на события и публикации событий через HTTP;
- SignalR[англ.] — фреймворк для двунаправленного обмена сообщениями в реальном времени между клиентом и сервером.
Другие расширения ASP.NET:
- ASP.NET Handler[англ.] — компоненты, реализующие интерфейс
System.Web.IHttpHandler
. В отличие от страниц ASP.NET у них нет файла с HTML разметкой, нет поддержки обработки событий и других вспомогательных технологий. Они содержат только файл с программным кодом, написанным на любом из .NET-совместимых языков, который записывает какие-то данные в HTTP ответ. HTTP обработчики схожи с ISAPI-расширениями; - ASP.NET AJAX — расширение, содержащее как клиентские, так и серверные компоненты для создания ASP.NET страниц, реализующих AJAX функциональность;
- ASP.NET Dynamic Data[англ.] — скаффолдинговое расширение для создания управляемых данными приложений.
Безопасность
правитьВ ASP.NET, для управления системой аутентификации пользователей на сайте, был реализован за счет Membership API, который представляет средства для входа, хранения и управления учетными записями пользователей. Архитектура Membership API выстроена таким образом, что позволяет управлять пользователями хранящимся в различных источниках: Microsoft SQL Server, Microsoft Active Directory или специальное хранилище (реализованное самим, но тогда необходимо самому реализовывать поставщик, чтобы подключиться к обобщенной базе поставщиков)[9][10]. В ASP.NET аутентификация может осуществляется с помощью форм, либо с помощью Windows через IIS[9][11]. Безопасность: ASP.NET предоставляет набор средств для обеспечения безопасности приложений, включая встроенные механизмы защиты от атак, таких как SQL-инъекции и кросс-сайтового скриптинга .
Преимущества ASP.NET перед ASP
править- Компилируемый код выполняется быстрее, большинство ошибок отлавливается ещё на стадии разработки;
- Значительно улучшенная обработка ошибок во время выполнения запущенной готовой программы, с использованием блоков try..catch;
- Пользовательские элементы управления (controls) позволяют выделять часто используемые шаблоны, такие как меню сайта;
- Использование метафор, уже применяющихся в Windows-приложениях, например, таких как элементы управления и события;
- Расширяемый набор элементов управления и библиотек классов позволяет быстрее разрабатывать приложения;
- ASP.NET опирается на многоязыковые возможности .NET, что позволяет писать код страниц на VB.NET, Delphi.NET, Visual C#, J# и т. д.;
- Возможность кэширования всей страницы или её части для увеличения производительности;
- Возможность кэширования данных, используемых на странице;
- Возможность разделения визуальной части и бизнес-логики по разным файлам («code behind»);
- Расширяемая модель обработки запросов;
- Расширенная событийная модель;
- Расширяемая модель серверных элементов управления;
- Наличие master-страниц для задания шаблонов оформления страниц;
- Поддержка CRUD-операций при работе с таблицами через GridView;
- Встроенная поддержка AJAX;
Примечания
править- ↑ 1 2 3 Дино Эспозито. Microsoft ASP.NET 2.0. Базовый курс. — СПб.: И. Д. Питер, 2007. — 688 с. — ISBN 978-5-91180-423-7. — ISBN 978-5-7502-0304-8.
- ↑ Платт Д. С. Знакомство с Microsoft .NET. — М.: И. Д. Русская редакция, 2001. — 240 с. — ISBN 5-7502-0186-4.
- ↑ 1 2 Architecture Journal Profile: Scott Guthrie . The Architecture Journal. Microsoft (январь 2007). Дата обращения: 20 апреля 2008. Архивировано из оригинала 24 августа 2011 года.
- ↑ Michiel van Otegem. Interview with Scott Guthrie, creator of ASP.NET (24 июля 2007). Дата обращения: 20 апреля 2008. Архивировано из оригинала 9 ноября 2007 года.
- ↑ Tim Anderson. How ASP.NET began in Java . The Register (30 октября 2007). Дата обращения: 20 апреля 2008. Архивировано из оригинала 24 августа 2011 года.
- ↑ Choose between ASP.NET and ASP.NET Core (англ.). docs.microsoft.com. Дата обращения: 2 июня 2019. Архивировано 16 июня 2018 года.
- ↑ ASP.NET Web Pages (Razor) FAQ (англ.). docs.microsoft.com. Дата обращения: 2 июня 2019. Архивировано 12 июня 2019 года.
- ↑ Get Started with ASP.NET Web API 2 (C#) (англ.). docs.microsoft.com. Дата обращения: 2 июня 2019. Архивировано 2 июня 2019 года.
- ↑ 1 2 Мак-Дональд Мэтью, Фримен Адам, Шпушта Марио. Microsoft ASP.NET 4 с примерами на C# 2010 для профессионалов. — 4-е изд.. — М.: ООО "И.Д. Вильямс", 2011. — 1424 с. — ISBN 978-5-8459-1702-7. — ISBN 978-1-43-022529-4.
- ↑ Класс Membership . MSDN. Microsoft. Дата обращения: 25 марта 2018. Архивировано 25 марта 2018 года.
- ↑ Laurence Moroney, Matthew MacDonald. Pro ASP.NET 2.0 in VB 2005. — Apress, 2006. — 1296 с. — ISBN 978-1-59059-563-3.
См. также
править- ASP.NET state management
- Membership API
- Web.config
- XSP — веб-сервер для исполнения ASP.NET на Linux
Ссылки
править- Новые возможности ASP.NET 4
- ASP.NET Web — официальный сайт ASP.NET от Майкрософт.
Литература
править- Адам Фримен. ASP.NET MVC 5 с примерами на C# 5.0 для профессионалов, 5-е издание = Pro ASP.NET MVC 5. — М.: «Вильямс», 2014. — 736 с. — ISBN 978-5-8459-1911-3.
- Джесс Чедвик, Тодд Снайдер, Хришикеш Панда. ASP.NET MVC 4: разработка реальных веб-приложений с помощью ASP.NET MVC = Programming ASP.NET MVC 4: Developing Real-World Web Applications with ASP.NET MVC. — М.: «Вильямс», 2013. — 432 с. — ISBN 978-5-8459-1841-3.
- Адам Фримен. ASP.NET 4.5 с примерами на C# 5.0 для профессионалов, 5-е издание = Pro ASP.NET 4.5 in C#, 5th Edition. — М.: «Вильямс», 2014. — 1120 с. — ISBN 978-5-8459-1878-9.
- Даниэль Арсеновски. Рефакторинг в C# и ASP.NET для профессионалов = Professional Refactoring in C# & ASP.NET. — М.: «Диалектика», 2009. — С. 528. — ISBN 978-5-8459-1618-1.