ASP.NET — свободно распространяемая платформа для разработки динамических сайтов и веб-приложений, созданная компанией Microsoft и являющаяся частью NET.Framework. Она является дальнейшим развитием более старой технологии Microsoft ASP и сохранила многие ее некоторые внешние признаки и функции, что упрощает переход разработчиков на использование нового инструмента.
Разработка АСП.НЕТ началась в 1997 году, когда Microsoft начала поиск новой модели веб-приложения. Первая версия была выпущена одновременно с платформой .NET Framework и позволяет писать веб-приложения и сайты на любом языке, поддерживаемом .NET. С помощью этой технологии были реализованы многие крупные веб-проекты, в том числе основной сайт разработчика, компании Microsoft.
Альтернативной модификацией этой платформы является ASP.NET Core — кроссплатформенный фреймворк с открытым исходным кодом для разработки веб-приложений. Хотя в его структуре применены иные архитектурные решения, обеспечивающие большую модульность и производительность по сравнению с предшественником, в целом оба этих продукта реализует одни и те же концепции программирования.
Что такое ASP.NET
Платформа разрабатывалась как альтернатива другому популярному инструменту веб-разработки под названием Java. Изначально опытные версии Microsoft ASP.NET (тогда они еще назывались XSP) были написаны именно на языке Java, однако у компании лицензия на использование этого языка в своих продуктах истекала в 2003 году. С учетом этой перспективы разработчики компании решили создать платформу с собственной общеязыковой средой исполнения Common Language Runtime. Она позволила разрабатывать веб-приложения на любом языке, поддерживаемом технологией .NET, — а это большинство современных языков программирования.
Использование общеязыковой среды исполнения означает, что код, написанный веб-программистом на любом языке программирования, работает в два этапа:
- сначала компилируется в промежуточный язык Microsoft Intermediate Language — то есть независимо от того, на каком языке изначально была написана веб-страница, она превращалась в унифицированный документ;
- затем полученная сборка на IL компилируется в низкоуровневый машинный код, который и исполняется в режиме just-in-time, то есть непосредственно перед запуском приложения.
Перед компиляцией в низкоуровневый машинный код компилятор определяет тип операционной системы и ее разрядность. Благодаря этому программисты могут создавать единый код на высокоуровневом языке для всех распространенных платформ.
Созданные в платформе ASP.NET приложения компилируются в IL только один раз, повторная компиляция осуществляется только в том случае, если в исходный код были внесены изменения. А машинный код кэшируется в системном каталоге. При этом, если приложение создается в Visual Studio, его код переписывается в IL в рамках общей компиляции проекта. Однако код веб-сайта, созданный вне какого-либо проекта, компилируется постранично при первом запросе конкретной страницы. В любом случае преобразование IL-кода приложения в машинный происходит при первом же выполнении.
В ASP.NET реализована модель объектно-ориентированного программирования. Благодаря этому она дает разработчику доступ ко всем объектам в .NET Framework. Также данная модель обеспечивает:
- создание повторно применяемых классов, которые упрощают и ускоряют написание кода;
- стандартизацию кода с использованием интерфейсов;
- расширение существующих классов путем наследования;
- объединение полезных функций в скомпилированный компонент, который можно распространять отдельно.
Другая возможность, обусловленная объектно-ориентированной моделью программирования, заключается в серверных элементах управления. Они представляют собой инкапсулированные объекты, которыми разработчики могут манипулировать с помощью кода для настройки их облика, предоставления данных и реакции на события. HTML-разметка низкого уровня, визуализируемая этими компонентами управления, скрыта. Благодаря этому разработчики могут не писать ее самостоятельно — вместо этого инкапсулированные объекты самостоятельно переписываются в соответствующие HTML-элементы после того, как веб-страница будет визуализирована.
Модели разработки в ASP.NET
Во фреймворке ASP.NET реализованы три инструмента для разработки различных веб-приложений. Каждый из них предлагает свой стиль программирования, выбор между которыми определяется типом создаваемого веб-приложения, знаниями и навыками программиста.
ASP.NET Web Forms. Эта платформа предназначена для разработки сайтов путем перетаскивания объектов и управления событиями. Фактически это визуальный конструктор веб-страниц. Благодаря наличию области конструирования и широкому набору компонентов и элементов управления можно быстро разрабатывать комплексные сайты с полноценным интерфейсом пользователя и доступом к данным. Подходит программистам, владеющим средним и расширенным уровнем быстрой разработки приложений.
ASP.NET MVC. Данная платформа основана на шаблонах, которые ускоряют и упрощают разработку динамических веб-сайтов. При этом программист может четко разделять проблемы и получает абсолютный контроль над разметкой, что делает процесс более гибким. ASP.NET MVC включает широкий набор возможностей для разработки приложений высокой сложности, в которых используются новейшие веб-стандарты. Однако больше всего эта платформа подходит для создания мобильных и одностраничных программных продуктов.
ASP.NET WEB API. Этот фреймворк упрощает разработку служб HTTP для множества клиентов, таких как веб-браузеры и мобильные устройства. ASP.NET Web API позволяет создавать разметку HTML и основной код одновременно в одном и том же файле — это классическая модель разработки, оставшаяся еще с эпохи появления интернета. Тем не менее она идеально подходит для сборки легко масштабируемых приложений на основе платформы .NET Framework. Чаще всего эта платформа используется новичками или программистами среднего уровня.
Все три платформы представляют собой полностью завершенные и стабильные компоненты. Независимо от того, какой именно подход к программированию выбрал разработчик, он получает в свое распоряжение все возможности ASP.NET.
Помимо этих основных платформ в состав ASP.NET WEB API входят:
- Web Pages (сейчас Razor) — механизм просмотра с упрощенным синтаксисом, позволяющий добавить динамический код и доступ к данным в HTML-разметку страницы;
- WebHooks — версия шаблона Webhook, позволяющая подписываться на события и публиковать их через HTTP-протокол;
- СигналR — открытая программная библиотека, которая позволяет серверному коду отправлять асинхронные уведомления клиентским веб-приложениям;
- HTTP-handler — обработчик запросов, поступающих веб-приложению, который представляет собой файл с программным кодом, написанным на любом из .NET-совместимых языков, без HTML-разметки, обработки событий и прочих вспомогательных технологий;
- ASP.NET AJAX — расширение с клиентскими и серверными компонентами для разработки страниц с фоновым обменом информацией между веб-браузером и сервером;
- Dynamic Data — компонент для создания веб-приложений, взаимодействующих с базами данных.
Преимущества ASP.NET
Производительность. Код приложения или страницы, созданных с помощью этой платформы, компилируется по необходимости. Кроме того, компиляция осуществляется только один раз, а машинный код сохраняется в системные папки. В совокупности это существенно повышает производительность платформы, особенно по сравнению с аналогами, доступными на момент выпуска первой версии.
Минимизация ошибок. Большинство ошибок в исходном коде «отлавливается» платформой еще на стадии разработки. Однако, даже если какие-то баги будут пропущены системой в готовый код, они обрабатываются непосредственно при выполнении запущенной программы. Это, с одной стороны, упрощает процесс разработки, так как программисту не приходится искать ошибки вручную. С другой — повышает стабильность работы приложения за счет устранения критических багов.
Мультиязычность. Приложения в ASP.NET можно писать на большинстве современных распространенных языков программирования, так как все они поддерживаются «материнской» платформой .NET Framework. Исходный код программы преобразуется в промежуточный, который уже затем компилируется в машинный код. Благодаря поддержке множества языков программирования ASP.NET становится действительно универсальной платформой, доступной для использования программистами, изучающими разные языки программирования.
Привязка к Windows. Хотя ASP.NET разрабатывается и поддерживается Microsoft, является собственностью этой корпорации, она доступна для использования на ПК с операционными системами MacOS и Linux. Это существенно расширяет число программистов, которые могут использовать эту платформу для создания веб-приложений.
Использование повторяющегося кода. Благодаря таким функциям, как повторно применяемые классы и шаблоны, программисту не обязательно переписывать код повторяющихся элементов веб-приложения. С одной стороны, это делает разработку более быстрой и удобной, с другой — снижает вероятность появления ошибок (достаточно один раз отладить повторяющийся элемент).
Простота разработки. ASP.NET создана в рамках основного подхода Microsoft к программированию как к максимально простому процессу, многие функции и стадии которого можно автоматизировать. Широкий набор элементов управления, инкапсулируемые объекты, преобразующиеся в HTML-разметку, шаблоны и другие возможности значительно упрощают создание веб-приложений, в том числе комплексных. Наличие в ASP.NET нескольких платформ позволяет программисту выбрать инструменты, соответствующие его уровню знаний и навыков.
Многофункциональность. ASP.NET обладает широким набором различных функций, компонентов, элементов управления, шаблонов страниц и т.д. Благодаря этому с помощью фреймворка можно разрабатывать сайты и веб-приложения различного размера и структуры, придавать им уникальный облик, тестировать готовые продукты и выполнять подавляющее большинство операций, связанных с разработкой. Кроме того, функционал платформы можно расширить путем установки дополнительных расширений и интеграции с .NET.Framework.
Недостатки ASP.NET
Зависимость от поставщика. ASP.NET полностью разрабатывается и поддерживается корпорацией Microsoft. Из-за этого задержка с выпуском важных обновлений (например, в безопасности) может повлиять на продолжительность разработки или качество конечного веб-приложения.
Недостаточная производительность при разработке небольших сайтов. Если сайт разрабатывается без использования Visual Studio, каждая его страница компилируется отдельно при отправлении к ней запроса. Это несколько снижает производительность небольших сайтов. В то же время этого недостатка нет при разработке больших комплексных проектов, так как в них страницы компилируются сразу.
В момент своего появления в 2002 году ASP.NET стала настоящим прорывом по сравнению не только со своей предшественницей ASP, но и с многими другими аналогами от сторонних разработчиков. Многие широко используемые сегодня идеи и модели веб-программирования впервые были реализованы именно в этой платформе. До сих пор она остается одним из самых популярных фреймворков для создания веб-приложений различного типа — от небольших одностраничных сайтов до комплексных и сложных проектов. В то же время развитие других сред разработки сделало преимущества ASP.NET не такими актуальными, что привело к созданию ее альтернативной модификации ASP Core, отличающейся модульностью и повышенной производительностью.
0 комментариев