ASP.NET
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.