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.)
- Содержит удобные инструменты для хостинга в облаке. В одной из статей рассказываю как можно развернуть приложение в облаке правда ASP.NET Core 2, но 3-ий поддерживает всё тоже самое.
- Встроенная система разрешения зависимостей или 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 (читайте настройку под Nginx ASP.NET пока core 2), 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. Как пишет Microsoft это связанно с тем что в 3-ей версии кроссплатформенность, производительность, поэтому если вы подтяните что-то их видновой реализации это может испортить все плюшки.
Что уберут или заменят в ASP.NET Core 3
- Json.NET (Newtonsoft.Json) — Newtonsoft уберут и заменят на нативную (родную) реализацию, которая должна работать значительно быстрее предшественника. Работать она будет с использованием нового unsafe класса Span[T], ReadOnlySpan[T].
- Entity Framework Core (Microsoft.EntityFrameworkCore.*)