ASP.NET (Active Server Pages .NET) — це безплатна вебплатформа, створена фахівцями Microsoft для проєктування інтерактивних вебзастосунків, які працюють на платформі .NET.
Цей фреймворк надає безліч інструментів для проєктування вебзастосунків, у тому числі:
Історія платформи ASP.NET стартувала на початку розвитку інтернету — у 1990-х роках. Перші вебсторінки були суто інформативними і тому статичними. Тому досить швидко виникла потреба додавати до них інтерактивні елементи. Наприклад, форми для надсилання даних на сервер, чати або кошики для покупок.
Тоді у Microsoft почали розробляти інструменти проєктування динамічних вебсторінок. Як результат, у 1996 році компанія випустила першу версію Active Server Pages (ASP). Це була серверна платформа для створення динамічних вебсторінок мовою скриптів VBScript чи JScript.
Спочатку перша версія ASP була досить популярною, але за кілька років застаріла і перестала задовольняти сучасним (на той час) вимогам веброзробки. Тому у 2000 році Microsoft розпочала роботу над новою версією технології. Робота над черговим релізом ASP розпочалася з перейменування проєкту на ASP+.
ASP+ вийшов більш швидким та масштабованим. Також у ньому виправили проблеми, пов’язані з безпекою, керуванням стану та розгортанням.
Але головним нововведенням в ASP+ стала підтримка мови C#, представленої компанією Microsoft у 2000 році. Більше того, C# став основним інструментом створення вебпрограм на платформі .NET.
Почати вчити C# можна у наших партнерів — IT-школи Hillel. Базовий курс C# включає 16 занять і стартує вже у квітні 2023 року.
У 2002 році ASP.NET випустили разом із платформою .NET Framework 1.0. Він надавав розробникам потужний інструментарій, включаючи такі нові інструменти, як:
ASP.NET став популярним та затребуваним серед веброзробників, тому що був гнучким. Він дозволяв створювати складні вебпрограми, які могли обробляти великі обсяги даних та працювати з різними зовнішніми джерелами, включаючи бази даних.
Розвиваючи проєкт ASP.NET, у 2016 році Microsoft випустила нову версію платформи під назвою ASP.NET Core. Розробники забезпечили більш високу продуктивність, менший розмір програми, а також сумісність із різними операційними системами, включаючи Linux та macOS.
Однією з ключових змін в ASP.NET Core є переробка архітектури та базових концепцій. Замість використання Application Domain, ASP.NET Core використовує простір імен та збірки для організації та управління кодом програми.
Крім того, ASP.NET Core надає інтегровану підтримку для створення мікросервісних програм та API. Це відкриває розробникам можливість проєктування застосунків, які масштабуються.
В основі роботи ASP.NET лежить принцип клієнт-серверної архітектури та протокол HTTP:
Далі платформа підтримує стан між запитами та відповідями, такі як використання куків (cookies) чи сесій (sessions). Стан може використовуватися, наприклад, для збереження інформації про користувача, щоб уникнути повторної автентифікації кожного запиту.
Якщо під час обробки запиту виникають помилки, ASP.NET може створювати спеціальну сторінку помилок. Ця сторінка дозволяє розробникам розібратися із ситуацією: зрозуміти, що сталося та як виправити помилку.
Для координації роботи з базами даних ASP.NET використовується технологія ADO.NET (ActiveX Data Objects .NET), яка є частиною .NET Framework.
ASP.NET підтримує роботу з такими базами даних (список не повний, перераховані основні БД):
Важливо! Розробник може використовувати однаковий код для роботи з даними незалежно від того, яка база даних задіяна в проєкті.
Це величезна перевага ADO.NET, тому що програміст може концентруватися на бізнес-логіці програми, а не на особливостях роботи з конкретною базою даних.
Навчитися працювати не тільки з основами C#, а й системою ASP.NET, включаючи інтеграцію технології з базами даних, можна на курсі C# Advanced від Hillel.
Моделі розробки в ASP.NET визначають, як буде організовано застосунок.
Існує багато різних моделей розробки, які можуть бути використані в ASP.NET в залежності від задачі, яку потрібно вирішити.
Нижче розглянемо основні.
Одна з найпоширеніших моделей розробки ASP.NET.
Model-View-Controller (MVC) — це популярний шаблон проєктування, який розділяє застосунок на три основні компоненти: (1) модель, (2) представлення та (3) контроллер:
MVC призначена для розробки складних вебзастосунків з високим ступенем логіки та обробки даних. Також модель часто обирають для створення мобільних та односторінкових проєктів.
Також дуже поширена модель розробки ASP.NET, але вона використовується в основному на старих проєктах.
У Web Forms програма розробляється як набір вебсторінок, кожна з яких містить розмітку HTML та код мовою C# чи VB.NET.
Вебсторінки можуть бути пов’язані між собою за допомогою елементів керування, таких як кнопки чи посилання.
Загалом існує тенденція відмови від Web Forms на користь ASP.NET MVC, яка є більш просунутою моделлю та надає найкращі можливості для тестування та керування HTML-розміткою.
Web API дозволяє створювати RESTful-вебсервіси, які будуть обробляти HTTP-запити та повертати HTTP-відповіді. За допомогою Web API можна виконувати форматування відповідей (в JSON, XML та інших форматах), конфігурувати маршрутизацію запитів, призначати фільтри дій та багато іншого.
За допомогою інструмента Web API можна створювати різноманітні вебсервіси, наприклад, сервіси авторизації або послуги з обробки платежів, сервіси керування вмістом та багато іншого. Він також може бути використаний для створення мобільних програм та інших клієнтських програм, які отримують дані з вебсервісів.
На курсі C# Advanced вивчають багато додаткових технологій для того, щоб працювати з ASP.NET ефективно. У тому числі курс включає модуль по Rest та API.
З’явилася в останніх версіях ASP.NET. Razor Pages забезпечує простий та інтуїтивно зрозумілий підхід до створення вебсторінок.
Вона використовує спрощений шаблон «модель-сторінка», де кожна сторінка має свою модель, яка містить дані та логіку сторінки. Ця модель може бути пов’язана з елементами на сторінці, такими як форми або кнопки:
Різниця між MVC та Razor Page
Модель розробки Blazor використовується як під час створення SPA
У Blazor використовується концепція компонентів, які можна порівняти з елементами управління користувача в інших технологіях, таких як WPF і WinForms. Кожен компонент містить свій логічний код та інтерфейс користувача.
Blazor підтримує дві реалізації: (1) Blazor Server та (2) Blazor WebAssembly:
Код для створення найпростішої вебпрограми в ASP.NET з використанням фреймворку MVC може виглядати, наприклад, так:
using System.Web.Mvc; namespace MyWebApp.Controllers { public class HomeController : Controller { //Відображення домашньої сторінки public ActionResult Index() { return View(); } // Обробка інформації, яка була введена у форму [HttpPost] public ActionResult FormSubmit(string name, string email) { // Дії з даними return View("FormSubmitted"); } } }
Ми додали HomeController
, який містить дві дії:
Index
— для відображення домашньої сторінки;FormSubmit
— для обробки даних з форми.Для відображення представлень (Views)Index
може виглядати так:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Демонстрація</title> </head> <body> <h1>Вас вітає Highload Today!</h1> <form action="/Home/FormSubmit" method="post"> <label for="name">Ім'я:</label> <input type="text" name="name" id="name" required /> <label for="email">E-mail:</label> <input type="email" name="email" id="email" required /> <button type="submit">Надіслати</button> </form> </body> </html>
Результатом буде проста HTML-сторінка з формою для введення імені та адреси електронної пошти. Коли користувач надсилає форму, дані надсилаються на дію FormSubmit
контроллера HomeController
.
Представлення для дії FormSubmit
виглядає як просте повідомлення, яке відображається після успішного надсилання форми:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Форма відправлена</title> </head> <body> <h1>Дякуємо за відправку форми!</h1> </body> </html>
Більше реальних прикладів використання моделі MVC на ASP.NET ви зможете побачити та спробувати написати самотужки на курсі C# Advanced від Hillel.
Cинтаксис Razor вперше з’явився в ASP.NET MVC 3 та став основним синтаксисом для створення представлень в ASP.NET. Представлення з використанням Razor мають виглядати як HTML-сторінки, але з можливістю додавати динамічні елементи (цикли, умовні вирази тощо).
Razor дозволяє розробникам легко створювати HTML-сторінки, використовуючи C# або VB.NET, та додавати логіку на стороні сервера у представленні.
Приклад створення HTML-сторінки за допомогою Razor:
<!DOCTYPE html> <html> <head> <title>Приклад Razor-сторінки</title> </head> <body> @if (DateTime.Now.Hour < 12) { <p>Добрий ранок!</p> } else { <p>Добрий день!</p> } </body> </html>
У цьому прикладі коду умовний вираз @if
використовується для виведення повідомлення «Добрий ранок!» або «Добрий день!», залежно від поточного часу. Код C# розташований усередині блоку @if
та автоматично інтерпретується та перетворюється на відповідний HTML-код.
Розглянемо приклад, де створюється клас MyModel
, який містить метод GetData
для виконання запиту до бази даних та отримання даних зі стовпця ColumnName
таблиці MyTable
. Для підключення до бази даних використовується клас SqlConnection
із простору імен System.Data.SqlClient
.
Наступний код на C# демонструє, як ASP.NET дозволяє легко підключатися до баз даних та працювати з ними у коді програми:
using System.Data.SqlClient; namespace MyWebApp.Models { public class MyModel { private readonly string connectionString = "Data Source=myServerAddress;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;"; public string GetData() { string result = ""; using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); string query = "SELECT * FROM MyTable"; using (SqlCommand command = new SqlCommand(query, connection)) { using (SqlDataReader reader = command.ExecuteReader()) { while (reader.Read()) { result += reader["ColumnName"].ToString() + "\n"; } } } } return result; } } }
Швидкість роботи ASP.NET залежить від багатьох чинників. Серед них конкретна реалізація програми, конфігурація сервера, розмір бази даних, обсяг трафіку тощо. При цьому на сьогоднішній день ASP.NET Core позиціонується як один із найшвидших вебфреймворків.
За рахунок чого це відбувається?
За допомогою ASP.NET створюють різні вебпрограми та сервіси, включаючи:
Приходьте на курс C# Advanced від Hillel, щоб навчитися розробляти всі види програм на ASP.NET.
ASP.NET має такі основні переваги:
Але ASP.NET має й слабкі сторони.
Найочевидніший мінус платформи — складність у використанні. Звичайний простий підхід, коли створюється файл index.html, потім відкривається у браузері та готовий результат миттєво відображається — у .NET не працює.
ASP.NET — це технологія сервера, яка генерує HTML-сторінки на боці сервера, а не клієнта.
Тому ASP.NET спочатку обробляє запити від клієнта, потім генерує сторінку на стороні серверу, і лише потім відправляє її клієнту як HTML-код.
Високий поріг входу для роботи з ASP.NET може стати справжньою проблемою для новачків, які потребують знання мови програмування C# або VB.NET та розуміння принципів роботи вебзастосунків. Але з допомогою менторів на курсі C# Basic від Hillel ви зможете опанувати технологію значно швидше.
Певна надмірність мови C# лише ускладнить процес вивчення технології. Номінальна система типів C# може іноді призводити до того, що потрібно писати більше коду, ніж в динамічних мовах програмування, де система типів структурна.
З іншого боку, саме номінальна система типів забезпечує більш жорстку типізацію. Це допомогає запобігти помилкам у програмному коді на ранній стадії розробки.
Створений проєкт — упорядкований. Його структура відображена у вікні Solution Explorer (з англ. «браузер рішень»):
Microsoft.AspNetCore.Mvc.Analyzers.dll
). До цієї теки можна самостійно додавати бібліотеки, підвищуючи функціональність вебпрограми.{ "iisSettings": { "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { "applicationUrl": "http://localhost:8645", "sslPort": 44311 } }, "profiles": { "IIS Express": { "commandName": "IISExpress", "launchBrowser": true, "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } }, "mytest": { "commandName": "Project", "launchBrowser": true, "applicationUrl": "https://localhost:5001;http://localhost:5000", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } } } }
Код файлу launchSettings.json описує локальний сервер та містить номер порту для роботи сайту. Якщо запустити проєкт за допомогою кнопки IIS Express , відкриється порожня тестова сторінка у браузері за адресою, прописаною в цьому коді.
{ "Logging": { "LogLevel": { "Default": "Debug", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } }, "AllowedHosts": "*" }
program.cs
. Будь-яка програма C# повинна мати точку входу main
і, якщо ми розкриємо теку класу, то знайдемо цю команду. Код цього файлу за замовчуванням виглядає так:using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace mytest { public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); }); } }
З функції main
починається запуск нашої програми, спрацьовує функція CreateWebHostBuilder
, що створює сам вебхост, який запускає усі класи та контроллери проєкту.
Startup.cs
служить для додаткових параметрів, наприклад, відстеження URL-адресів. Поки ви працюєте в режимі налагодження, функція IsDevelopment
повертатиме значення true
, завдяки чому будуть відображатися всі помилки проєкту:using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.HttpsPolicy; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace mytest { public class Startup { public Startup(IConfiguration configuration) { Configuration = configuration; } public IConfiguration Configuration { get; } // This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddControllersWithViews(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. app.UseHsts(); } app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); }); } } }
Коли ваш сайт буде готовий до публікації, потрібно змінити його властивості та включити інший режим, наприклад Production. Для цього у вікні Explorer Solution виділіть основну теку та натисніть ALT+Enter.
Виділіть розділ Debug і в розділі змінних оточення (ASPNETCORE_ENVIRONMENT
) змініть значення Development на Production. У цьому випадку функція IsDevelopment
повертатиме значення false
та результатом можливої помилки буде сторінка 404.
ASP.NET — потужний та гнучкий фреймворк для створення вебзастосунків та сервісів, який має високу продуктивність.
Завдяки різним моделям розробки програмісти можуть обрати оптимальний підхід для своїх проєктів та вирішувати будь-які поставлені завдання, створюючи масштабовані та високопродуктивні вебзастосунки.
При цьому використання платформи ASP.NET може бути пов’язане з багатьма труднощами. Наприклад, необхідне впевнене знання C#. Це основна мова для розробки на платформі .NET, і її використання дозволяє отримати доступ до більшості можливостей .NET Framework та .NET Core.
Вивчити і вдосконалити знання C# ви можете на курсах від Hillel: C# Basic та C# Advanced.
Також для роботи з технологією необхідно:
На закінчення ми рекомендуємо вам ознайомитися з курсом ASP.NET Core, де вас навчать швидко і просто робити вебзастосунки, а також використовувати інструментарій платформи:
А якщо хочете піти далі і писати не тільки функціонуючий, а ще й чистий та продуктивний код, завітайте на курс по алгоритмам і структурам даних від robot_dreams. Навчання стартує вже у квітні 2023 року.
Резиденти Дія.City сплатили до бюджету понад 8 млрд грн податків в І кварталі 2025 року.…
У Китаї закликають офісних працівників не працювати надто багато — держава сподівається, що вільний час…
Експерти звертають увагу на тривожну тенденцію: люди все частіше використовують ChatGPT, щоб визначити місцезнаходження, зображене…
Компанія JetBrains випустила нову версію мультимовного середовища розробки IntelliJ IDEA 2025.1. Оновлена IDE отримала численні…
Платформа обміну миттєвими повідомленнями Discord впроваджує функцію перевірки віку за допомогою сканування обличчя. Зараз вона…
Wikipedia намагається захистити себе від тисяч різноманітних ботів-скрейперів, які сканують дані цієї платформи для навчання…