Вы должны использовать .NET Core вместо .NET Framework или Xamarin в следующих 6 типичных сценариях в соответствии с документацией здесь.
1. Межплатформенные потребности
Очевидно, что если ваша цель - иметь приложение (веб-сервис), которое должно работать на разных платформах (Windows, Linux и MacOS), лучший выбор в экосистеме .NET - использовать .NET Core в качестве среды выполнения (CoreCLR ) и библиотеки кроссплатформенны. Другой вариант - использовать Mono Project.
Оба варианта имеют открытый исходный код, но .NET Core напрямую и официально поддерживается Microsoft, и в дальнейшем потребуются большие инвестиции.
При использовании .NET Core на разных платформах лучший опыт разработки достигается в среде Windows с интегрированной средой разработки Visual Studio, которая поддерживает множество функций повышения производительности, включая управление проектами, отладку, управление исходным кодом, рефакторинг, расширенное редактирование, включая Intellisense, тестирование и многое другое. Но расширенная разработка также поддерживается с использованием Visual Studio Code на Mac, Linux и Windows, включая intellisense и отладку. Даже сторонние редакторы, такие как Sublime, Emacs, VI и другие, работают хорошо и могут получить редактор intellisense с помощью проекта Omnisharp с открытым исходным кодом.
2. Микросервисы
Когда вы создаете систему, ориентированную на микросервисы, состоящую из нескольких независимых, динамически масштабируемых микросервисов с отслеживанием состояния или без отслеживания состояния, вы получаете большое преимущество в том, что вы можете использовать различные технологии / фреймворки / языки на уровне микросервисов. Это позволяет вам использовать наилучший подход и технологию для микропредметов в вашей системе, поэтому, если вы хотите создавать очень производительные и масштабируемые микросервисы, вам следует использовать .NET Core. В конце концов, если вам нужно использовать любую библиотеку .NET Framework, несовместимую с .NET Core, проблем нет, вы можете создать этот микросервис с .NET Framework, и в будущем вы сможете заменить его на .NET. Основной.
Платформа инфраструктуры, которую вы могли бы использовать, очень много. В идеале для больших и сложных систем микросервисов следует использовать Azure Service Fabric. Но для микросервисов без сохранения состояния вы также можете использовать другие продукты, такие как Служба приложений Azure или Функции Azure.
Обратите внимание, что по состоянию на июнь 2016 года не все технологии в Azure поддерживают .NET Core, но поддержка .NET Core в Azure будет значительно увеличиваться после выпуска .NET Core RTM.
3. Лучшие производительные и масштабируемые системы.
Когда вашей системе требуется максимально возможная производительность и масштабируемость, чтобы вы получали максимальную скорость отклика независимо от того, сколько у вас пользователей, именно тогда .NET Core и ASP.NET Core действительно сияют. Чем больше вы можете сделать с таким же объемом инфраструктуры / оборудования, тем более широкие возможности вы получите для конечных пользователей - при меньших затратах.
Дни улучшения производительности по закону Мура для одиночных процессоров больше не применяются; тем не менее, вам нужно делать больше, пока ваша система растет и вам нужна более высокая масштабируемость и производительность для более требовательных повседневных пользователей, число которых растет в геометрической прогрессии. В конечном итоге вам необходимо повысить эффективность, оптимизировать повсюду и лучше масштабироваться для кластеров машин, виртуальных машин и ядер ЦП. Это не просто вопрос удовлетворения пользователя; это также может иметь огромное значение для стоимости / совокупной стоимости владения. Вот почему так важно стремиться к производительности и масштабируемости.
Как уже упоминалось, если вы можете изолировать небольшие части своей системы в виде микросервисов или любого другого слабосвязанного подхода, это будет лучше, поскольку вы сможете не просто развивать каждый небольшой элемент / микросервис независимо, а иметь более долгосрочную перспективу. гибкость и обслуживание, но вы также сможете использовать любую другую технологию на уровне микросервисов, если то, что вам нужно, несовместимо с .NET Core. И в конечном итоге вы сможете его реорганизовать и по возможности перенести в .NET Core.
4. Разработка стиля командной строки для Mac, Linux или Windows.
Этот подход не является обязательным при использовании .NET Core. Конечно, вы также можете использовать полную интегрированную среду разработки Visual Studio. Но если вы разработчик, который хочет разрабатывать легкие редакторы и интенсивно использовать командную строку, .NET Core разработан для интерфейса командной строки. Он предоставляет простые инструменты командной строки, доступные на всех поддерживаемых платформах, позволяя разработчикам создавать и тестировать приложения с минимальной установкой на машины разработчика, лаборатории или производственной среды. Редакторы, такие как Visual Studio Code, используют одни и те же инструменты командной строки для разработки. И IDE, как и Visual Studio, используют те же инструменты CLI, но скрывают их за богатым интерфейсом IDE. Теперь разработчики могут выбрать уровень, на котором они хотят взаимодействовать с цепочкой инструментов от интерфейса командной строки до редактора и среды разработки.
5. Необходимость наличия рядом версий .NET для каждого уровня приложения.
Если вы хотите иметь возможность устанавливать приложения, зависящие от разных версий фреймворков в .NET, вам необходимо использовать .NET Core, который обеспечивает 100% параллельную работу, как описано ранее в этом документе.
6. Приложения Windows 10 UWP .NET.
microsoft, но его не существует. Этот вопрос предполагает Microsoft. Сегодня вам также нужно выбирать между: для настольных приложений с графическим интерфейсом: например, Джава. Для мобильных устройств: собственный android / objective-C или одна из многих других кроссплатформенных платформ. Для Интернета: например, колба. Как показывает ответ с упоминанием .Net5, Microsoft отчаянно пытается закрепиться на других платформах, кроме MS-Windows, и ощущает конкуренцию Mono с открытым исходным кодом, но пока не нашла стабильного решения. - person Roland   schedule 15.01.2021