Что такое ASP.NET?

ASP.NET — это зрелая, серверная основа разработки веб-сайтов от Microsoft. Разработчики используют ASP.NET для создания динамических веб-сайтов, веб-приложений и веб-сервисов. После десятилетий развития эта платформа сохранилась до наших дней в виде ASP.NET Core.

История разработчиков ASP.NET

Первоначально разработанный компанией Microsoft, ASP.NET теперь принадлежит .NET Foundation. Если первые версии еще выпускались как проприетарное программное обеспечение, то современный ASP.NET — это проект с открытым исходным кодом.

Используемый сегодня ASP.NET — это результат десятилетнего процесса разработки. Эволюция прошла путь от ASP до ASP.NET и ASP.NET Core. В соответствии с прогрессом веб-технологий, фреймворк претерпел радикальные изменения за эти годы. Давайте сначала рассмотрим историю развития ASP.NET:

Технология Среда разработки Текущая версия Окончание файла
ASP Windows 3.0 / 2000-02 .asp
ASP.NET Windows 4.8 / 2019-04 .aspx/.aspx.cs, .aspx.vb и т.д.
ASP.NET Core Кросс-платформа 5.0 / 2020-11 .cshtml, .vbhtml и т.д.
Совет

Создайте свой собственный сайт без знания программирования! С помощью конструктора сайтов MyWebsite от IONOS. Это очень просто.

Active Server Pages (ASP): Первый серверный язык сценариев от Microsoft

Оригинальный «Active Server Pages» (ASP) был первым языком сценариев на стороне сервера, опубликованным компанией Microsoft. Active Server Pages позволяет создавать динамические веб-страницы на сервере с 1996 года. Другие языки сценариев обычно полагаются на Linux в качестве операционной системы и веб-сервер с открытым исходным кодом, такой как Apache. В отличие от них, Microsoft позиционирует Active Server Pages как часть «Internet Information Server» (IIS), работающего под Windows.

Базовая функциональность ASP примерно сопоставима с PHP или «Java Server Pages» (JSP). Все три технологии используют файлы шаблонов. Эти файлы шаблонов содержат исполняемые фрагменты кода, встроенные в статический HTML-контент. Код записывается между специальными тегами, чтобы отделить его от окружающего HTML. В качестве языков программирования использовались диалекты VBScript, JScript и PerlScript, которые были доступны в то время.

Когда браузер обращается к URL-адресу («запрос»), код выполняется на сервере. В результате выполнения генерируется HTML-контент, который вставляется в заранее определенные HTML-структуры. В итоге получается документ, состоящий из статического и динамически генерируемого HTML-содержимого; он передается в качестве ответа браузеру («ответ») и отображается пользователю. Любое изменение содержимого страницы, например, ввод данных пользователем, требует полного цикла «запрос-ответ», другими словами, перезагрузки страницы. Вот пример кода ASP:

<p>
  The server’s current time:
  <%
    Response.Write Now()
  %>
</p>

ASP еще не был фреймворком. Скорее, он использовал свободную коллекцию из нескольких объектов. Из них пользователи могли собрать динамический веб-сайт:

  • Приложение
  • Запрос
  • Ответ
  • Сервер
  • Сессия
  • ASPError

ASP.NET: от страниц активного сервера к фреймворку

ASP.NET, преемник классического ASP, был представлен примерно в 2003 году. Вместо свободной коллекции объектов в качестве подструктуры была использована .NET Frameworkw. Это абстрагировало такие часто необходимые процессы, как аутентификация пользователя, авторизация и доступ к базе данных. В целом, ASP.NET примерно сопоставим с Java-фреймворками, такими как «Struts» или «Spring».

Важнейшей особенностью ASP.NET было наличие «Web Forms». Подход Web Forms позволил опытным разработчикам Windows программировать динамические веб-страницы. Этот процесс означал, что механизмы, лежащие в основе Web, были скрыты от разработчиков; они могли продолжать использовать рабочие процессы и среды разработки, с которыми они были знакомы. Более конкретно, использовались специфические для Microsoft визуальные средства быстрой разработки приложений (RAD).

Web Forms обеспечили разработчикам Windows быструю точку входа в онлайн-программирование. В то же время, однако, этот подход ограничивал контроль над создаваемыми HTML-страницами. Вскоре в качестве альтернативной модели разработки была добавлена ASP.NET MVC. Она следовала установленному шаблону «Модель-Вид-Контроллер» (MVC) и позволяла более четко разделять задачи. Основанный на новаторском фреймворке «Ruby on Rails», ASP.NET MVC предлагал функциональность для «создания лесов» проекта.

В то же время ASP.NET был заменен на более совершенный «ASP.NET Core». Однако в повседневном языке оба названия часто используются как синонимы.

ASP.NET Core: новые разработки на основе лицензии с открытым исходным кодом

С выходом ASP.NET Core произошли изменения в организации фреймворка. В ходе прогрессивного развития Microsoft ASP.NET Core был передан под зонтик .NET Foundation. Исходный код проекта доступен по лицензии с открытым исходным кодом.

На техническом уровне ASP.NET Core — это редизайн ASP.NET 4.0, объединяющий органично выросшие компоненты ASP.NET. Разработка и хостинг проектов ASP.NET Core вне экосистемы Windows были разрешены. В Windows ASP.NET Core построен поверх .NET Framework; в других операционных системах вместо него используется .NET Core Framework.

В соответствии с непрерывным развитием веб-технологий ASP.NET Core готов к работе в облаке. Среды хостинга ASP.NET включают открытые серверные среды, а также контейнеры, в дополнение к традиционному Internet Information Server (IIS) от Microsoft. Фреймворк поддерживает код на стороне клиента и современные подходы к отзывчивому программированию. Это ставит ASP.NET Core в один ряд с фреймворками на базе JavaScript, такими как React.

Для каких проектов подходит ASP.NET?

Веб-проекты всех видов могут быть реализованы с помощью ASP.NET Framework. В частности, это динамические веб-сайты и веб-приложения, включая «одностраничные приложения» (SPA). Кроме того, можно реализовать веб-сервисы, такие как API и системы для общения в реальном времени. На протяжении многих лет для различных целей использовались разные подходы. Ниже мы обсудим их и представим обзор их развития.

Модели программирования в ASP.NET

В то время как веб-технологии продвинулись вперед с 2000-х годов, новые подходы к веб-разработке также были интегрированы в ASP.NET. Вы можете думать об этом как о хорошо отсортированном наборе инструментов: Для разных видов проектов доступны разные инструменты. В зависимости от требований, несколько подходов могут быть объединены в рамках одного проекта. С выходом ASP.NET Core многочисленные, органично выросшие модели программирования были объединены. Это привело к упрощению подходящих подходов.

Веб-формы ASP.NET

Классические веб-формы используются для сборки страниц из заранее определенных компонентов. Здесь используется визуальный конструктор форм, который позволяет размещать отдельные компоненты путем перетаскивания. Это было особенно привлекательно для разработчиков, имеющих опыт программирования под Windows. Они могли использовать знакомые им инструменты для «быстрой разработки приложений» (RAD). Разница заключалась в том, что конечным продуктом было не Windows-приложение, а динамический веб-сайт.

Подход Web Forms основан на модели Microsoft «Code Behind». Это обеспечивает разделение задач:

  • Файлы шаблонов с расширением .aspx определяют HTML-структуру страницы и содержат заполнители для динамически создаваемого содержимого.
  • Фактическая логика приложения хранится в отдельном файле с расширением .aspx.cs или .aspx.vb. Это файл Code Behind, который и дает название.
  • Клиент получает файл .aspx, доступный по URL. На сервере происходит объединение статических и динамических компонентов. Полученный HTML-документ передается клиенту.
  • Когда на страницу поступает пользовательский ввод, данные передаются на тот же URL через запрос GET или POST и обрабатываются файлом Code Behind.

Для реализации логики приложения используется объектно-ориентированный подход: в файле Code Behind определяется производный класс. В качестве языка программирования обычно используется C# или Visual Basic. Интересно, что файл Code Behind предварительно компилируется один раз. Это приводит к ускорению выполнения и повышению устойчивости к ошибкам при вызове страницы.

ASP.NET MVC

В отличие от оригинального ASP, Web Forms были шагом к разделению задач. В ASP статический HTML и компоненты кода были смешаны в одном и том же файле. В Web Forms произошло разделение на файлы шаблонов и Code Behind. С появлением ASP.NET MVC ASP.NET получил еще одну модель программирования, позволяющую разрабатывать веб-сайты в соответствии с шаблоном Model View Controller (MVC).

Шаблон MVC разделяет логику приложения («Модель»), шаблон представления («Вид») и взаимодействие с пользователем («Контроллер»). Одним из преимуществ подхода MVC является то, что отдельные проблемы могут быть лучше протестированы. Кроме того, разделение задач позволяет использовать различные контроллеры. Например, вместо того, чтобы отправлять весь пользовательский ввод на один URL и перезагружать страницу, используется AJAX через jQuery. Это позволяет перезагружать отдельные части страницы. В ASP.NET Core MVC традиции ASP.NET MVC продолжаются и в сегодняшней версии фреймворка.

Веб-страницы ASP.NET

ASP.NET Web Forms и ASP.NET MVC хорошо подходят для создания сложных веб-сайтов. Если вам нужно создать несколько страниц с многократно используемыми компонентами, обе модели программирования идеально подходят. Но что, если вам это не нужно? Допустим, мы хотим создать простой веб-сайт, состоящий всего из одной или нескольких страниц. Есть несколько динамических компонентов, но основное внимание уделяется полированному макету, а не сложной прикладной логике и обработке пользовательского ввода. В этом случае было бы излишним определять пользовательские классы или стремиться к разделению по шаблону MVC.

Для случаев, когда логика приложения менее важна, чем сложная компоновка и дизайн, ASP.NET Web Pages — хороший выбор. Как и в классических ASP или PHP, сочетание статических HTML-структур и динамических компонентов кода происходит внутри файла, поэтому используется специальный синтаксис. ASP.NET Web Pages особенно хорошо подходят для создания целевых страниц.

ASP.NET Web API

Все представленные до сих пор модели программирования направлены на создание HTML-контента для человека. Однако ASP.NET Framework также содержит модели, которые используются для обеспечения инфраструктуры веб-проектов. ASP.NET Web API — это модель программирования для создания REST API. Доступ к конечным точкам API осуществляется через AJAX. Для передачи данных используется JSON или XML.

ASP.NET WebHooks

ASP.NET WebHooks — это реализация шаблона WebHooks. WebHooks позволяет публиковать и подписываться на события, происходящие в системе. Например, это может быть добавление файла или получение платежа. Подписчик регистрирует изменение, которое необходимо отслеживать, в системе публикации. Для этого он передает URL-адрес — одноименный WebHook. Когда происходит зарегистрированное событие, издательская система вызывает WebHook; подписчик получает информацию о событии.

SignalR

SignalR — это фреймворк для коммуникации в реальном времени между клиентом и сервером. Он основан на стандарте WebSockets и позволяет осуществлять двунаправленную передачу данных. Браузеры, не поддерживающие WebSockets, поддерживаются с помощью механизмов отката. SignalR часто используется для реализации браузерных чат-сервисов и программ для видеоконференций.

Новые модели программирования в ASP.NET Core

ASP.NET Core является преемником ASP.NET. Фреймворк ASP.NET Core был переписан, но имеет высокую степень совместимости со своим предшественником. Ранее отдельные компоненты ASP.NET были объединены в версию Core. Более того, некоторые компоненты были разработаны заново и сохранили свои существующие названия. Например, SignalR Framework существует как в версии ASP.NET, так и в ASP.NET Core. Давайте рассмотрим основные нововведения ASP.NET Core.

ASP.NET Core MVC — управляемые API сайты с контроллерами представления модели

В ASP.NET Core MVC объединены функциональные возможности ASP.NET MVC и ASP.NET Web API. Это позволяет разрабатывать высокодинамичные веб-приложения с модульным пользовательским интерфейсом и базовым API. В качестве общей основы используется .NET Core Framework. Знакомые подходы из разработки .NET API могут быть перенесены в разработку MVC и наоборот.

Razor Pages — дальнейшее развитие ASP.NET Web Pages

Razor Pages заполняют ту же нишу, что и прежние ASP.NET Web Pages. Их можно использовать, когда паттерн Model-View-Controller представляет собой ненужные накладные расходы. Например, если вы хотите создать целевую страницу, она может быть реализована как Razor Page без особых усилий. Для создания шаблона страницы используется синтаксис Razor. Как это типично для вселенной .NET, в качестве языков программирования можно использовать C# и Visual Basic.

Давайте посмотрим на пример Razor-страницы. Заметно, что вместо обычных для языков шаблонов открывающего и закрывающего тегов кода используется открывающий символ @:

@page
@model HelloWorldModel
 
@if (Name != null) {
    <p>Hello dear @Name</p>
}
<form method="post">
    <p>
        <label asp-for="Name"></label>
        <input class="form-control" asp-for="Name" />        
    </p>
    <input type="submit" value="Say Hello" />
</form>       

Реактивное программирование с Blazor — «NET в браузере»

Фреймворк Blazor опирается на вышеупомянутый синтаксис Razor; на самом деле Blazor расшифровывается как «Browser + Razor». Как следует из названия, основное внимание в Blazor уделяется браузеру как среде выполнения. В Razor Pages обработка взаимодействия с пользователем происходит на сервере. Blazor, с другой стороны, обеспечивает реактивное программирование, при котором отдельные компоненты страницы в браузере динамически реагируют на изменения. Это делает Blazor примерно сопоставимым с технологиями React, Angular и Vue.

Вот простой пример реактивного программирования с помощью Blazor. Мы привязываем значение поля ввода к переменной Name. Для этого используется синтаксис Razor:

@page "/"
<h1>A Blazor example</h1>
<p>Welcome to Blazor, @Name.</p>
<input bind="@Name" type="text" class="form-control" placeholder="Name" />

Помимо реактивного программирования, весьма интересна еще одна особенность Blazor: С помощью WebAssembly языки .NET могут быть скомпилированы для выполнения в браузере. Поэтому Blazor иногда называют подходом «.NET в браузере». Преимуществом является отсутствие необходимости писать JavaScript для кода на стороне клиента. Вместо этого разработка ведется на C# или Visual Basic; код может обращаться к знакомым компонентам фреймворка .NET.

Каковы преимущества и недостатки ASP.NET?

ASP.NET или ASP.NET Core предоставляет зрелую среду для разработки широкого спектра веб-проектов. Сфера включает языки программирования, редакторы кода и IDE, а также инструменты разработки и процветающую экосистему свободно распространяемых пакетов. В настоящее время используются такие современные методы, как реактивное программирование, WebSockets и WebAssembly. Традиционно самым большим недостатком использования ASP.NET была тесная связь с Microsoft и связанная с этим привязка к поставщику. С постепенным переходом к открытому исходному коду эта проблема стала менее актуальной.

Каковы преимущества ASP.NET?

Наибольшее преимущество от использования ASP.NET получают разработчики, знакомые с программированием в экосистеме Microsoft. Они могут с комфортом использовать знакомые им языки, инструменты и рабочие процессы. В качестве основы ASP.NET используется развитая платформа .NET Framework. Это означает, что подходящие компоненты доступны для большого количества случаев использования. Это большое преимущество, когда речь идет о реализации сложных приложений быстро и с надежными результатами.

.NET Framework имеет модульную структуру и включает «Common Language Runtime» (CLR) в качестве среды выполнения. Это позволяет использовать различные языки программирования, если они соответствуют стандарту Common Language Infrastructure (CLI). Языки CLI, разработанные Microsoft, включают объектно-ориентированные классические языки C# и Visual Basic, а также более новый функциональный язык F#. Используя Blazor и WebAssembly, языки CLI можно выполнять в браузере как код на стороне клиента.

Первоначально ASP.NET начинался как проприетарное программное обеспечение под контролем Microsoft. Сегодня это проект с открытым исходным кодом под эгидой .NET Foundation. В рамках этого открытия был создан менеджер пакетов NuGet и связанный с ним публичный репозиторий пакетов. Сравнимые с NPM или RubyGems, разработчики ASP.NET имеют в своем распоряжении экосистему свободно используемых пакетов.

Каковы недостатки ASP.NET?

Самое большое преимущество ASP.NET — использование специфической экосистемы Microsoft — также является его главным недостатком. Это связано с тем, что в остальном веб-разработка в основном строится на свободных и открытых платформах, языках и форматах. Разработчики, впервые погружающиеся во вселенную .NET, сталкиваются с обескураживающим множеством версий и моделей программирования.

Традиционно те, кто хотел разрабатывать с помощью ASP.NET Framework, могли делать это только под Windows. В течение многих лет Microsoft наращивает усилия по открытию для широко используемых стандартов и открытого исходного кода. С выходом ASP.NET Core разработка теперь ведется на трех основных операционных системах: Windows для семейств, macOS и Linux. Кроме того, появилась возможность хранить среду разработки в контейнере Docker.

Классический ASP.NET можно было разместить только на собственной серверной технологии Microsoft Internet Information Server (IIS). Это было большим недостатком по сравнению с другими веб-фреймворками, все из которых также работают на Linux. Хостинг ASP.NET имеет особые требования и доступен не у всех провайдеров. Можно было использовать другие веб-серверы с «Mon» в качестве бесплатной реализации .NET. Однако настоящие изменения произошли с выходом .NET Core и «Open Web Interface for .NET» (OWIN). OWIN отделяет приложение ASP.NET от базового веб-сервера. Это устранило одно из самых больших препятствий для использования ASP.NET.

Каковы требования к среде хостинга APS.NET?

Фреймворк ASP.NET является особенным с точки зрения среды хостинга. Другие веб-фреймворки, основанные на языках PHP, Java, Python или JavaScript, работают на серверах Linux. Только для хостинга приложений ASP.NET традиционно требовалась Windows в качестве серверной операционной системы. Также обязательным было использование веб-сервера Internet Information Services (IIS) от Microsoft. Чтобы разместить приложение ASP.NET на серверах Windows, вам следует выбрать управляемый хостинг Windows. При такой модели хостинга ваши серверы обслуживаются провайдером и регулярно обновляются.

Хостинг приложений ASP.NET core гораздо более спокоен. Их можно размещать на различных серверных средах в дополнение к IIS. Используется интегрированный веб-сервер Kestrel, который работает на Windows, Linux и macOS. Популярные веб-серверы, такие как Nginx и Apache, могут быть настроены как обратные прокси в сочетании с Kestrel. В Windows также доступна альтернатива Kestrel — HTTP.sys.

Совет

Используйте хостинг ASP.NET от IONOS!

Оцените статью
cdelat.ru
Добавить комментарий