Обзор ASP.Net Core 3.0
ASP.NET Core 3 -- кроссплатформенный, высокопроизводительный и абсолютно беспалый фреймворк от Майкрософт (Microsoft). Да-да вы не ослышались -- беспалый и кроссплатформенный. Это означает, что вы можете использовать его на Linux-подобных серверах.
Кто выбирает ASP.NET Core 3?
Миллионы разработчиков, которые знакомы с ASP.NET 4.x (старые версии не кроссплатформенные) и которые хотят использовать знакомый и мощный инструмент.
ASP.NET Core 3 дает нам следующие преимущества:
- Спроектированный для UI (user interface) и веб API.
- Удобная система юнит-тестов.
- Использует движок Razor, который позволяет сделать html динамическим.
- Кроссплатформенный. Т. е. вы можете запускать как на Windows, так и на macOS and Linux.
- Опенсорсный т. е. с открытым исходным кодом.
- Хорошо интегрирован с современными клиентскими фреймворками (кстати в VS есть очень удобные шаблоны под Angular и React).
- Содержит удобные инструменты для хостинга в облаке.
- Встроенная система разрешения зависимостей или DI (dependency injection).
- Облегченный (т. е. нет тех огромных зависимостей, что были в старых ASP.NET 4.x). Хорошо оптимизирован, что выдает высокую скорость работы. Поддерживает принцип модульности для HTTP-запросов через pipeline (пайплайн).
- Ability to host on IIS, Nginx, Apache, Docker or self-host in your own process.
- Самое крутое, что можно хостить не только на IIS (веб-сервак чисто под винду) :). Но также на Nginx, Apache, Docker и self-host (т. е. вообще без сторонних серверов, запустил на своем ПК и, пожалуйста, работай.)
В чем же разница ASP.NET Core 2.x, 3.x .NET Framework (старая версия) и .NET Standard?
ASP.NET Core 2.x может работать с ASP.NET Core или .NET Framework. Но имейте в виду, что если вы добавите библиотеку из .NET Framework в свой проект на Core, то она будет работать только на MS Windows. Чтобы убрать такую проблему, Microsoft предлагает использовать промежуточный фреймворк .NET Standard. Не пугайтесь, это не еще какой-то новый бла-бла-бла фреймворк от Майкрософта. Для меня это просто шаблон в VisualStudio, который я должен использовать при разработке библиотек. Используйте это как правило. А язык и всё остальное тут везде одинаковые. Другими словами, если у вас в проекте попадается библиотека на .NET Framework, скорее всего, из-за одной такой «овцы» приложение не будет работать кроссплатформенно. И вам придется арендовать Windows Server, которые заметно дороже Linux-подобных.
Теперь важное замечание! ASP.NET Core 3.0 и выше будет работать только с .NET Core 1.x, 2.x. Как я понял, даже без .NET Standard.
Что уберут или заменят в ASP.NET Core 3:
- Json.NET (Newtonsoft.Json) — Newtonsoft уберут и заменят на нативную (родную) реализацию, которая должна работать значительно быстрее предшественника. Работать она будет с использованием нового unsafe-класса Span[T], ReadOnlySpan[T].
- Entity Framework Core (Microsoft.EntityFrameworkCore.*).
Больше статей о программировании читайте в моем блоге.