ASP.NET — технологія створення вебзастосунків і вебсервісів від компанії Майкрософт. Вона є складовою частиною платформи Microsoft.NET і розвитком старішої технології Microsoft ASP. На цей час останньою версією цієї технології є ASP.NET Core 6.0[2]

ASP.NET
Тип Вебфреймворк
Розробник Microsoft
Перший випуск 5 січня 2002; 22 роки тому (2002-01-05)
Стабільний випуск 4.7.1 (17 жовтня 2017; 6 років тому (2017-10-17)[1])
Операційна система Microsoft Windows, Linux, macOS
Мова програмування .NET мови
Ліцензія Apache License 2.0
Репозиторій github.com/aspnet/AspNetWebStack
Вебсайт dotnet.microsoft.com/en-us/apps/aspnet
ASP.NET
Розширення файлу: .aspx, .cshtml, .vbhtml
MIME-тип: text/html
Розробник: Microsoft

ASP.NET зовні багато в чому зберігає схожість із старішою технологією ASP, що дає змогу розробникам відносно легко перейти на ASP.NET. У той же час внутрішній устрій ASP.NET істотно відрізняється від ASP, оскільки вона заснована на платформі. NET і, отже, використовує всі нові можливості, що надаються цією платформою.

Історія ASP.NET ред.

Після випуску сервера Internet Information Services 4.0 в 1997 році, компанія Microsoft почала досліджувати можливість нової моделі вебзастосунків, яка задовольнить скарги на ASP, особливо пов'язані з відділенням оформлення від змісту, і яка дасть змогу писати «чистий» код. Робота з розробки такої моделі була доручена Марку Андерсу, менеджеру команди IIS, і Скотту Гутрі, що прийшов на роботу в Microsoft в 1997. Андерс і Гутрі розробили початковий проект протягом двох місяців, і Гутрі написав код первісного прототипу під час різдвяних канікул 1997 року.

Початковий проект називався «XSP»; Гутрі пояснив в інтерв'ю 2007 року що, «завжди запитують, що означає буква X. У той час вона нічого не значила. XML починається з неї; XSLT починається з неї. Все кльове починається з X, тому ми його так і назвали.» Прототип XSP був написаний на Java, але скоро було вирішено побудувати нову платформу на основі Common Language Runtime (CLR), бо на платформу Java у компанії Microsoft закінчувалась ліцензія. Гутрі описав це рішення як «величезний ризик», тому що успіх нової розробки був пов'язаний з успіхом CLR, яка, як і XSP, перебувала на ранній стадії розробки.

Характеристики ASP.NET ред.

Вебсторінки ASP.NET, офіційно відомі як вебформи[3], є основними елементами для розробки додатків в ASP.NET. Є дві основні методології вебформ — формат вебдодатків та формат вебсайту[4]. Вебдодатки потрібно скласти перед розгортанням, тоді як структури вебсайтів дають змогу користувачеві копіювати файли безпосередньо на сервер без попередньої компіляції. Вебформи містяться в файлах з розширенням «.aspx»; ці файли зазвичай містять статичну (X) HTML розмітку. Розмітка компонентів може містити вебелементи керування на стороні сервера та елементи керування на стороні користувача, які були визначені на програмному каркасі вебсторінки. Наприклад, компонент текстової скриньки (textbox) може бути визначений на сторінці як <asp: textbox id = 'myid' runat = 'server'>, перетворюючись у поле вводу html. Крім того, динамічний код, який працює на сервері, може бути розміщений на сторінці в блоці <% - динамічний код -%>, подібно до інших технологій веброзробки, таких як PHP, JSP та ASP. З виходом ASP.NET Framework 2.0, Microsoft представила нову модель, що дає змогу використовувати статичний текст на сторінці .aspx, при цьому динамічний код залишається у файлі .aspx.vb, .aspx.cs або .aspx.fs (залежно від того, яка мова програмування використовується).

Code-behind model (код поза моделлю) ред.

Корпорація Майкрософт рекомендує використовувати в динамічному коді програми code-behind model, яка розміщує цей код у окремому файлі або в спеціально позначеному тегу. Файли коду, як правило, мають імена типу «MyPage.aspx.cs» або «MyPage.aspx.vb», а файл сторінки — MyPage.aspx (таке ж ім'я, як і у файлу сторінки (ASPX), але з розширенням, що визначає сторінку мови). Ця практика використовується у Visual Studio та інших IDE. Також, у форматі вебдодатків, pagename.aspx.cs є частковим класом, який пов'язаний з файлом pagename.designer.cs. Файл дизайнера — це файл, який автоматично створюється з ASPX-сторінки, і дає змогу розробнику посилатись на компоненти сторінки ASPX зі сторінки CS без необхідності їх оголошувати вручну, як це було в попередніх версіях ASP.NET[5]. Використовуючи цей стиль програмування, розробник пише код, що відповідає на різні події, такі як завантаження сторінки або натискання елемента керування, а не лише на процедурний перегляд документа.

Code-behind model ASP.NET відрізняється від класичного ASP, оскільки він заохочує розробників створювати додатки, відокремлюючи презентацію та зміст. Теоретично, це дасть змогу вебдизайнерам, наприклад, зосередити більше уваги на розмітці дизайну, звертаючи менше уваги на порушення програмного коду, який його запускає. Це схоже на відокремлення контролера від представлення в рамках model–view–controller (MVC).

Директиви ред.

Директива є спеціальною інструкцією про те, як ASP.NET повинен обробляти сторінку[6]. Найпоширенішою директивою є <% @ Page%>, яка може містити багато атрибутів, що використовуються аналізатором та компілятором сторінки ASP.NET.

<!-- Web.Config CFile -->

<configuration>
    <system.web>
        <customErrors mode="on"/>
    </system.web>
</configuration>

Користувацький елемент керування ред.

Користувацький елемент керування — це свого роду складний елемент керування, який працює так само, як вебсторінка ASP.NET. Ви можете додати існуючі елементи керування вебсервером та розмітку до користувацького елементу керування, а також визначати властивості та методи керування. Ці елементи керування походять від класу System.Web.UI.UserControl. Користувацьким елементам керування властиві такі характеристики:

1) мають розширення .ascx.

2) не можуть містити тегів <html>, <body> або <form>.

3) мають директиву Control замість Page.

Спеціальні елементи керування ред.

Програмісти також можуть створювати спеціальні елементи керування для додатків ASP.NET. На відміну від користувацьких елементів керування, ці елементи керування не мають файлу розмітки ASCX. Їхні коди компілюються в файл динамічної бібліотеки посилань (DLL). Такі елементи керування можуть використовуватися в кількох вебдодатках та проектах Visual Studio 2013.

Техніка рендерингу ред.

.NET використовує технологію рендерингу «відвіданих композитів» («visited composited»). Під час компіляції файл шаблону (.aspx) складається в код ініціалізації, який створює дерево керування (композит), що представляє вихідний шаблон. Літерний текст переходить в екземпляри класу Literal control, а елементи керування сервером в екземпляри специфічного класу керування. Код ініціалізації поєднується з кодом, написаним користувачем (зазвичай шляхом збірки декількох часткових класів), і переходить до специфічного класу сторінки.

Фактичні запити на сторінку обробляються у кілька кроків. По-перше, під час ініціалізації створюється екземпляр класу сторінки та виконується код ініціалізації. Це створює початкове дерево керування, яке маніпулюється методами сторінки в наступних кроках. Оскільки кожен вузол у дереві є елементом керування, представлений як екземпляр класу, код може змінювати структуру дерева, а також маніпулювати властивостями / методами окремих вузлів. Нарешті, під час етапу візуалізації користувач (відвідувач) має відвідати кожен вузол у дереві, вимагаючи, щоб кожен вузол сам використовував методи відвідувача. Вихідний HTML надсилається клієнту.

Після того, як запит було оброблено, екземпляр класу сторінки відкидається, а разом з ним і все дерево керування. Це викликає труднощі у програмістів-початківців ASP.NET, які звертаються до членів екземпляру класу, які відкидаються з кожним циклом запиту / відповіді сторінки.

Принципи ASP.NET ред.

Хоча ASP.NET бере свою назву від старої технології Microsoft ASP, вона значно від неї відрізняється. Microsoft повністю перебудувала ASP.NET, ґрунтуючись на Common Language Runtime (CLR), який є основою всіх застосунків Microsoft .NET. Розробники можуть писати код для ASP.NET, використовуючи практично будь-які мови програмування, що входять у комплект .NET Framework (C#, Visual Basic.NET, і JScript.NET). ASP.NET має перевагу у швидкості в порівнянні зі скриптовими технологіями, тому що при першому зверненні код компілюється і поміщається в спеціальний кеш, і згодом тільки виконується, не вимагаючи витрат часу на синтаксичний розбір , оптимізацію, і т. д.

Переваги ASP.NET ред.

  • ASP.NET має перевагу у швидкості в порівнянні з іншими технологіями, заснованими на скриптах (PHP, тощо)
  • Розширюваний набір елементів управління і бібліотек класів дає змогу швидше розробляти застосунки
  • ASP.NET спирається на багатомовні можливості .NET, що дає змогу писати код сторінок мовами C#, VB, C/C++ та ін.
  • Поділ візуальної частини та бізнес-логіки
  • Розширювана модель обробки запитів

Розширення ред.

Недоліки ASP.NET ред.

  • Розробляння на ASP.NET дороге. На вартість впливає ліцензування інструментів, що використовуються, а також підбір фахівців, розробників, які використовують цю технологію для створення бізнес-продуктів.
  • Масштабування складне. Тому перед розробкою необхідно детально продумати архітектуру програми та заздалегідь врахувати безліч моментів. Надалі впровадити новий функціонал буде непросто.
  • У випадку малого навантаження "двигун" справляється гірше, оскільки використовується метод компіляції, а не інтерпретації. Тому ця технологія не підходить для маленьких проєктів.
  • Для зручної роботи програмісту необхідно знати додаткові мови. Пошук та робота таких фахівців коштуватиме дорожче.
  • Якщо порівнювати PHP vs ASP, то друга спільнота значно менша, тому відповіді на запитання знайти буде не так просто. Але це компенсується великою кількістю документації та різної літератури.[7]

Див. також ред.

Примітки ред.

  1. Announcing the .NET Framework 4.7.1. Архів оригіналу за 31 грудня 2017. Процитовано 31 липня 2019.
  2. Supported versions. Архів оригіналу за 29 квітня 2021. Процитовано 23 квітня 2021.
  3. Paul D. Sheriff (November 2001). Introduction to ASP.NET and Web Forms. Архів оригіналу за 23 квітня 2018.
  4. Web Application Projects versus Web Site Projects in Visual Studio. Архів оригіналу за 23 квітня 2018.
  5. aspx.designer.cs how does it work?. 10 вересня 2015. Архів оригіналу за 10 березня 2017.
  6. ASP.NET Web Forms Page Syntax Overview. 22 листопада 2010. Архів оригіналу за 23 квітня 2018.
  7. Що вибрати для розробки: ASP.NET або PHP 29.06.2022

Література ред.

  • Мэтью Мак-Дональд, Адам Фримен, Марио Шпушта Microsoft ASP.NET 4.0 с примерами на C# 2010 для профессионалов, 4-е издание = Pro ASP.NET 4.0 in C# 2010, Fourth Edition. — М.: «Вильямс», 2011. — С. 1424. — ISBN 978-5-8459-1702-7
  • Даниэль Арсеновски Рефакторинг в C# и ASP.NET для профессионалов = Professional Refactoring in C# & ASP.NET. — М.: «Диалектика», 2009. — С. 528. — ISBN 978-5-8459-1618-1
  • Стивен Сандерсон ASP.NET MVC Framework с примерами на C# для профессионалов = Pro ASP.NET MVC Framework. — М.: «Вильямс», 2010. — С. 560. — ISBN 978-5-8459-1609-9
  • Роб Камерон, Дэйл Михалк ASP.NET 3.5, компоненты AJAX и серверные элементы управления для профессионалов = Pro ASP.NET 3.5 Server Controls with AJAX Components. — М.: «Вильямс», 2009. — С. 608. — ISBN 978-5-8459-1467-5