Що вміє ASP.NET Core
ASP.NET Core — це не одна технологія, а набір інструментів для різних видів веб-проєктів, зібраних в одному фреймворку:
- сторінки, які формуються на сервері, — для порталів і кабінетів, де важливі простота й хороша індексація;
- Web API — для мобільних додатків, окремих інтерфейсів і обміну з іншими системами;
- Blazor — інтерактивний інтерфейс у браузері, написаний на C# замість JavaScript;
- з’єднання в реальному часі — щоб сторінка отримувала оновлення без перезавантаження;
- фонові служби всередині того самого застосунку — для розсилок, обміну даними, обробки файлів.
Усі ці частини використовують спільні налаштування, систему користувачів і роботу з базою, тому в одному проєкті їх легко поєднувати.
Переваги ASP.NET Core
- Висока швидкість. У незалежних тестах швидкодії фреймворк стабільно опиняється серед найшвидших серверних фреймворків, а на практиці це менше серверів під те саме навантаження.
- Вбудована система користувачів. Реєстрація, вхід, підтвердження пошти, двофакторна автентифікація, ролі — є готові механізми, які залишається налаштувати.
- Вхід через корпоративні облікові записи. Портал для співробітників можна зробити так, щоб вони входили тим самим обліковим записом, що й у пошту Microsoft 365.
- Гнучке розгортання. Застосунок працює на Linux і в контейнерах, тож не прив’язаний до Windows-серверів.
- Одна мова для всього. З Blazor навіть інтерфейс можна писати на C#, що спрощує життя невеликій команді.
Обмеження
- Мало готових модулів для типових сайтів. Каталог, кошик чи блог доведеться або писати, або брати CMS. Для звичайного магазину це дорожче, ніж на PHP-платформах.
- Blazor поки менш поширений, ніж React чи Angular. Для публічних сайтів з великою аудиторією та складним дизайном зручніше окремий інтерфейс на популярних бібліотеках.
- Часті версії. Нова версія платформи виходить щороку, частина з них з короткою підтримкою. Оновлення треба вносити в план робіт.
- Старі проєкти не переносяться автоматично. Веб-форми з класичного ASP.NET у новому фреймворку не підтримуються, такі сторінки доводиться переписувати.
Коли варто подивитися на альтернативи
Якщо ваша компанія живе в екосистемі Java, а розробники й сервери вже налаштовані під неї, аналогічні задачі вирішує Spring Boot. Якщо головне — сайт з контентом, яким керують маркетологи, логічніше взяти Umbraco: це система керування контентом, побудована саме на ASP.NET Core, тож за потреби в неї можна додати й власну логіку.
Сторінки на сервері, Blazor чи окремий інтерфейс
Це головне архітектурне рішення на старті, і від нього залежать і бюджет, і подальша підтримка.
Сторінки на сервері — найпростіший і найдешевший варіант для порталів і кабінетів з формами, таблицями та документами. Добре індексуються пошуковими системами і швидко відкриваються.
Blazor підходить для внутрішніх інструментів з багатою взаємодією: перетягування, фільтри, редагування таблиць. Плюс — одна мова і одна команда, мінус — менше готових компонентів, ніж у світі JavaScript.
Окремий інтерфейс на React чи Angular виправданий, коли продукт великий, з ним працюють клієнти, а ASP.NET Core паралельно обслуговує мобільний додаток. Angular, до речі, часто обирають у корпоративних проєктах на .NET через схожий строгий підхід до структури коду.
Робота з даними та безпека
Як базу даних найчастіше обирають PostgreSQL або продукти Microsoft, якщо вони вже є в компанії. Структуру бази ведемо через міграції, щоб кожна зміна була записана і могла бути повторена на тестовому й робочому сервері.
Щодо безпеки, ASP.NET Core має хороші налаштування за замовчуванням: захист від підробки запитів, шифрування даних, примусовий HTTPS. Ми доповнюємо їх перевіркою прав на кожну дію, обмеженням частоти запитів до API і журналом важливих операцій. Для порталів з персональними даними це не опція, а обов’язкова частина роботи.
Модернізація старих проєктів на ASP.NET
Багато корпоративних порталів працюють на класичному ASP.NET, написаному ще для старої версії платформи, яка працює лише на Windows. Вони виконують свою роботу, але прив’язані до Windows-серверів, повільніші і погано поєднуються з новими бібліотеками.
Переписувати такий портал одним махом ризиковано. Ми ставимо новий застосунок на ASP.NET Core поруч зі старим і переносимо розділи по черзі: користувачі продовжують працювати, а старий код поступово зникає. Спершу переносимо те, що найчастіше змінюється або найбільше гальмує.
Паралельно оновлюємо роботу з базою даних і систему входу, бо саме вони найчастіше тримають старий проєкт на застарілих бібліотеках. Після перенесення останнього розділу старий застосунок просто вимикається.
Що впливає на вартість
- Спосіб побудови інтерфейсу: сторінки на сервері, Blazor чи окремий інтерфейс разом з API.
- Користувачі та доступи: кількість ролей, корпоративний вхід, вимоги до двофакторної автентифікації.
- Інтеграції: облікові системи, CRM, продукти Microsoft, платіжні сервіси.
- Вимоги до навантаження й доступності: кількість одночасних користувачів, резервування.
- Стан наявного проєкту: для модернізації — версія фреймворку, кількість веб-форм, наявність тестів.
Плануємо роботу так, щоб після кожного етапу частина порталу вже працювала, а ви могли змінити пріоритети на наступний.
Часті запитання
Чи потрібна ліцензія Microsoft, щоб використовувати ASP.NET Core? Ні, фреймворк безкоштовний. Платити доведеться лише за хостинг і, можливо, за інші продукти Microsoft, якщо ви їх обираєте.
Чи підходить ASP.NET Core для публічного сайту з SEO? Так, сторінки можна формувати на сервері, і вони добре індексуються. Для контентного сайту зручніше взяти Umbraco.
Наш портал на класичному ASP.NET. Скільки з нього можна зберегти? Бізнес-логіку та базу даних зазвичай вдається зберегти. Інтерфейс на веб-формах доведеться переписати. Точніше скажемо після аудиту коду.
Blazor чи React? Для внутрішніх інструментів з невеликою командою часто вигідніший Blazor. Для великого клієнтського продукту — React або Angular.
Чому Promodex
Архітектурні рішення ми пояснюємо простою мовою: чому сторінки на сервері, а не окремий інтерфейс, чому саме така схема входу. За 750+ проєктів з 2015 року ми бачили, як дорого обходяться рішення, які ніхто не пояснив замовнику. Над порталом працює наша власна команда з Києва, формат співпраці підлаштовуємо під ваші процеси, а після запуску оновлюємо портал разом із платформою.