ASP.NET

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

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

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, офіційно відомі як веб-форми[1], є основними елементами для розробки додатків в ASP.NET. Є дві основні методології веб-форм — формат веб-додатків та формат веб-сайту[2]. Веб-додатки потрібно скласти перед розгортанням, тоді як структури веб-сайтів дозволяють користувачеві копіювати файли безпосередньо на сервер без попередньої компіляції. Веб-форми містяться в файлах з розширенням «.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[3]. Використовуючи цей стиль програмування, розробник пише код, що відповідає на різні події, такі як завантаження сторінки або натискання елемента керування, а не лише на процедурний перегляд документа.

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

Директиви[ред. | ред. код]

Директива є спеціальною інструкцією про те, як ASP.NET повинен обробляти сторінку[4]. Найпоширенішою директивою є <% @ 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++ та ін.
  • Поділ візуальної частини та бізнес-логіки
  • Розширювана модель обробки запитів

Розширення[ред. | ред. код]

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

Примітки[ред. | ред. код]

Література[ред. | ред. код]

  • Мэтью Мак-Дональд, Адам Фримен, Марио Шпушта 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