Материал из РУВИКИ — свободной энциклопедии

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 поддерживается несколько программных моделей для создания веб-приложений[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:

  • HTTP 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 перед ASP[править | править код]

  • Компилируемый код выполняется быстрее, большинство ошибок отлавливается ещё на стадии разработки;
  • Значительно улучшенная обработка ошибок во время выполнения запущенной готовой программы, с использованием блоков try..catch;
  • Пользовательские элементы управления (controls) позволяют выделять часто используемые шаблоны, такие как меню сайта;
  • Использование метафор, уже применяющихся в Windows-приложениях, например, таких как элементы управления и события;
  • Расширяемый набор элементов управления и библиотек классов позволяет быстрее разрабатывать приложения;
  • ASP.NET опирается на многоязыковые возможности .NET, что позволяет писать код страниц на VB.NET, Delphi.NET, Visual C#, J# и т. д.;
  • Возможность кэширования всей страницы или её части для увеличения производительности;
  • Возможность кэширования данных, используемых на странице;
  • Возможность разделения визуальной части и бизнес-логики по разным файлам («code behind»);
  • Расширяемая модель обработки запросов;
  • Расширенная событийная модель;
  • Расширяемая модель серверных элементов управления;
  • Наличие master-страниц для задания шаблонов оформления страниц;
  • Поддержка CRUD-операций при работе с таблицами через GridView;
  • Встроенная поддержка AJAX;

Примечания[править | править код]

  1. 1 2 3 Дино Эспозито. Microsoft ASP.NET 2.0. Базовый курс. — СПб.: И. Д. Питер, 2007. — 688 с. — ISBN 978-5-91180-423-7. — ISBN 978-5-7502-0304-8.
  2. Платт Д. С. Знакомство с Microsoft .NET. — М.: И. Д. Русская редакция, 2001. — 240 с. — ISBN 5-7502-0186-4.
  3. 1 2 Architecture Journal Profile: Scott Guthrie (недоступная ссылка — история). The Architecture Journal. Microsoft (январь 2007). Дата обращения: 20 апреля 2008. Архивировано 24 августа 2011 года.
  4. Michiel van Otegem. Interview with Scott Guthrie, creator of ASP.NET (24 июля 2007). Дата обращения: 20 апреля 2008. Архивировано из оригинала 9 ноября 2007 года.
  5. Tim Anderson. How ASP.NET began in Java (недоступная ссылка — история). The Register (30 октября 2007). Дата обращения: 20 апреля 2008. Архивировано 24 августа 2011 года.
  6. Choose between ASP.NET and ASP.NET Core (англ.). docs.microsoft.com. Дата обращения: 2 июня 2019. Архивировано 16 июня 2018 года.
  7. ASP.NET Web Pages (Razor) FAQ (англ.). docs.microsoft.com. Дата обращения: 2 июня 2019. Архивировано 12 июня 2019 года.
  8. Get Started with ASP.NET Web API 2 (C#) (англ.). docs.microsoft.com. Дата обращения: 2 июня 2019. Архивировано 2 июня 2019 года.
  9. 1 2 Мак-Дональд Мэтью, Фримен Адам, Шпушта Марио. Microsoft ASP.NET 4 с примерами на C# 2010 для профессионалов. — 4-е изд.. — М.: ООО "И.Д. Вильямс", 2011. — 1424 с. — ISBN 978-5-8459-1702-7. — ISBN 978-1-43-022529-4.
  10. Класс Membership. MSDN. Microsoft. Дата обращения: 25 марта 2018. Архивировано 25 марта 2018 года.
  11. Laurence Moroney, Matthew MacDonald. Pro ASP.NET 2.0 in VB 2005. — Apress, 2006. — 1296 с. — ISBN 978-1-59059-563-3.

См. также[править | править код]

Ссылки[править | править код]

Литература[править | править код]

  • Адам Фримен. 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.