Обзор разработки на платформе ASP.NET Core
Мы в super.web разрабатываем сложные веб-приложения для организаций и предпринимателей и любим делать это на серверной технологии ASP.NET. Она удобна, обладает рядом преимуществ перед другими видами разработки и позволяет сэкономить. Мы решили рассказать про этот инструмент разработки, в надежде, что статья будет полезна тем техническим командам и руководителям, которые уже используют платформу для своих проектов или только планируют.

Что собой представляет ASP.NET Core
ASP.NET Core — это фреймворк для создания веб-приложений на модульной платформе .NET, которую развивает компания Microsoft с 2002 года. Изначально она была нацелена на работу исключительно на базе Windows, но в 2014 году Microsoft взяла курс на развитие ASP.NET как кроссплатформенной opensource-технологии. С этого момента она стала называться ASP.NET Core и стала работать не только на ОС Windows, но и на MacOS, и на Linux. Но для краткости ее до сих пор называют просто ASP.NET, и, пожалуй, мы поступим так же. В качестве языков программирования для разработки приложений на ASP.NET используются разные языки, в том числе C#, F# и Visual Basic .NET.
Возможности платформы
ASP.NET позволяет создавать динамические сайты и веб-приложения, содержащие веб-интерфейс, внутреннюю логику, взаимодействие с базой данных и другие части.
Основные инструменты ASP.NET разнесены на три внутренние платформы:
- ASP.NET Web Forms. Содержит конструктор веб-страниц. Обилие компонентов и элементов управления позволяет создавать полноценные веб-приложения и сайты с пользовательским интерфейсом и доступом к БД. Мы им почти не пользуемся, так как инструмент устарел.
- ASP.NET Razor Pages. Это самый простой способ создать более современный эквивалент «Классического ASP.NET Web Forms». Razor Pages может сделать программирование с помощью страниц проще и продуктивнее, чем через контроллеры и представления. Мы им почти не пользуемся, так как инструмент устарел.
- ASP.NET MVC. Здесь можно разрабатывать сложные приложения, иа также одностраничные и динамические веб-сайты. Этим довольно старым инструментом мы почти не пользуемся, хотя и поддерживаем несколько проектов, разработанных на MVC.
- ASP.NET WEB API. Эта платформа подходит для сборки легко масштабируемых приложений. Инструмент позволяет легко реализовывать HTTP-службы для веб-браузеров, мобильных устройств и других клиентов. Позволяет создать интерфейс (фронтэнд) на любом современном фреймворке: Angular, React, Vue. Мы чаще используем первые два.
Дополнительные инструменты, которые мы используем
- SignalR. Библиотека с открытым исходным кодом. Позволяет отправлять асинхронные уведомления клиентским веб-приложениям с серверного кода.
- RabbitMQ. Распределенный, горизонтально масштабируемый брокер сообщений, использующий стандарт AMQP. Хорошо подходит для потоковой передачи данных в реальном времени (например, в микросервисах). Также удобен для интеграции компонентов.
- MQTT. Легкий и эффективный сетевой протокол и по сути брокер сообщений, который работает поверх TCP/IP. Позволяет устройствам обмениваться сообщениями по принципу «издатель-подписчик». IoT-стандарт.
Преимущества и недостатки технологии ASP.NET

Главные преимущества платформы ASP.NET — это ее универсальность, открытый исходный код, популярность и возможность создавать крупные масштабируемые системы, а ведь это сложно делать, например, на PHP или NodeJS.
Разработчики могут писать код для ASP.NET, используя языки программирования, входящие в комплект .NET Framework. Среди них C#, который хорош своей универсальностью — позволяет реализовать любой тип приложения. Подробнее мы уже писали об этом в статье «Почему мы делаем на C#».
ASP.NET позволяет запрограммировать API (используется для интеграции приложения с внешним системами, этакий переходник), которое можно использовать и в веб-приложении, и в мобильном приложении. Так разработка происходит быстрее и дешевле.
С ASP.NET Core и C# отлично работает любая база данных с открытым исходным кодом, например, PostgreSQL. Это также удешевляет разработку приложения. До введения американских санкций в 2022 году во многих системах разработчики использовали MS SQL Server; используют и до сих пор, также и у нас много систем на MS SQL Server на поддержке и доработке.
К недостаткам можно отнести следующие моменты:
- Vendor lock-in — зависимость от Microsoft, как от поставщика, которая может увеличить сроки и стоимость разработки.
- Недостаточная производительность, если разработка ведется без Visual Studio и каждая страница компилируется отдельно (небольшие сайты).
Немного про хостинг
Для того, чтобы разместить в интернете ваш проект, выполненный на ASP.NET, вам надо выбрать хостинг, поддерживающий эту технологию. Да, можно разместить приложение и на своих локальных серверах в организации — это добавит управляемости и контроля безопасности. Но и следить за работоспособностью будет не хостер, а тоже вы. Такой подход требует дополнительных специалистов и времени, а также увеличивает риски из-за возможного отсутствия компетентности ответственных лиц.
Отметим, что каждый провайдер, который предлагает Windows-хостинг, поддерживает работу технологии ASP.NET. Об этом читайте наши «Практические советы по выбору ASP.NET-хостинга», которая скоро появится. Однако современные реалии рынка предвещают уход ASP.NET-разработчиков с Windows-хостинга на Linux-хостинг, поскольку Microsoft не продлевает лицензии. Тем не менее, пока что это этот вопрос открыт.
Ну и пара слов в заключение. Если вы — начинающий разработчик, то можете создать небольшой проект на ASP.NET сами. Но если вы технический руководитель или специалист, и вам нужно сложное веб-приложение для бизнеса, а подобного опыта и времени его получать нет, вы можете обратиться к нам за разработкой нового или доработкой существующего проекта.