В семействе Microsoft теперь есть .NET Core, .NET Framework и Xamarin (Mono).

Кажется, здесь много совпадений. В чем разница между этими типами платформ .NET? Когда мне следует выбрать использование .NET Core в моем проекте вместо .NET Framework или Xamarin?

MeeChao

Ответов: 10

Ответы (10)

Вы должны использовать .NET Core вместо .NET Framework или Xamarin в следующих 6 типичных сценариях согласно документации здесь.

1. Межплатформенные потребности

Очевидно, что если ваша цель - создать приложение (веб-сервис), которое должно работать на разных платформах (Windows, Linux и MacOS), лучший выбор в экосистеме .NET - использовать .NET Core в качестве своего среда выполнения (CoreCLR) и библиотеки кроссплатформенны. Другой вариант - использовать Mono Project.

Оба варианта имеют открытый исходный код, но .NET Core напрямую и официально поддерживается Microsoft, и в дальнейшем потребуются значительные вложения.

При использовании .NET Core на разных платформах лучший опыт разработки существует в Windows с Visual Studio IDE, которая поддерживает множество функций повышения производительности, включая управление проектами, отладку, управление версиями, рефакторинг, расширенное редактирование, включая 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 резко возрастет после выпуска RTM .NET Core.

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.

Кроме того, вы можете также прочитать:

  1. Когда мне НЕ использовать .NET Core?
  2. Когда все еще следует использовать .NET Framework 4.x вместо .NET Core?
  3. Когда следует использовать Xamarin вместо .NET Core?

.NET 5 будет унифицированной версией всех вариантов .NET, которые появятся в ноябре 2020 года, поэтому больше не нужно будет выбирать между вариантами. enter image description here

.NET Core - это текущая версия .NET, которую вы должны использовать прямо сейчас (дополнительные функции, исправленные ошибки и т. Д.)

Xamarin - это платформа, которая предоставляет решения кроссплатформенных мобильных проблем, закодированных на C #, так что вам не нужно использовать Swift отдельно для IOS, и то же самое касается Android.

Вы можете сослаться на эту строку - Разница между ASP.NET Core (.NET Core) и ASP.NET Core (.NET Framework)

.NET Framework, .NET Core, Xamarin

Xamarin - это вообще не дискуссия. Если вы хотите создавать мобильные приложения (iOS, Android и Windows Mobile) с использованием C #, Xamarin - ваш единственный выбор.

.NET Framework поддерживает Windows и веб-приложения. Сегодня вы можете использовать Windows Forms, WPF и UWP для создания приложений Windows в .NET Framework. ASP.NET MVC используется для создания веб-приложений в .NET Framework.

.NET Core - это новый кроссплатформенный фреймворк с открытым исходным кодом для создания приложений для всех операционных систем, включая Windows, Mac и Linux. .NET Core поддерживает только UWP и ASP.NET Core. UWP используется для создания Windows 10, ориентированных на Windows и мобильные приложения. ASP.NET Core используется для создания веб-приложений на основе браузера.

, если вы хотите получить более подробную информацию, обратитесь по этой ссылке
https://blogs.msdn.microsoft.com/dotnet/2016/07/15/net-core-roadmap/ https://docs.microsoft.com/en-us/dotnet/articles/standard/choosing-core-framework-server

Вот как объясняет это Microsoft:

.NET Framework, .NET Core, Xamarin

.NET Framework - это «полный» или «традиционный» вариант .NET, распространяемый с Windows. Используйте это, когда вы создаете настольное приложение Windows или UWP или работаете со старыми версиями ASP.NET 4.6+.

.NET Core - это кроссплатформенный .NET, работающий в Windows, Mac и Linux. Используйте это, если вы хотите создать консоль или веб-приложения, которые могут работать на любой платформе, в том числе внутри контейнеров Docker. В настоящее время это не относится к UWP и настольным приложениям.

Xamarin используется для создания мобильных приложений, которые могут работать на устройствах iOS, Android или Windows Phone.

Xamarin обычно работает поверх Mono, который представляет собой версию .NET, созданную для кроссплатформенной поддержки до того, как Microsoft решила официально перейти на кроссплатформенность с .NET Core. Как и Xamarin, платформа Unity также работает поверх Mono.


Часто возникает путаница, когда ASP.NET Core подходит. ASP.NET Core может работать поверх .NET Framework (Windows) или .NET Core (кроссплатформенный), как подробно описано в этом ответе: Разница между ASP.NET Core (.NET Core) и ASP.NET Core (.NET Framework)

  1. .NET - это экосистема, основанная на c # языке
  2. .NET Standard - это Стандарт (другими словами, спецификация) экосистемы .NET.

.Net Базовая библиотека классов построена на .Net Standard. .NET Standard вы можете создать только проект библиотеки классов, который не может быть выполнен автономно и на него должен ссылаться другой .NET Core или .NET Framework исполняемый проект. библиотека, переносимая в .Net Framework, .Net Core и Xamarin, выберите .Net Standard Library

  1. .NET Framework - это платформа, основанная на .NET и поддерживающая Windows и веб-приложения

(Вы можете создать исполняемый проект (например, консольное приложение или приложение ASP.NET) с .NET Framework

  1. ASP.NET - это технология разработки веб-приложений, построенная на .NET Framework
  2. .NET Core также фреймворк на основе .NET.

Это новый кроссплатформенный фреймворк с открытым исходным кодом для создания приложений для всех операционных систем, включая Windows, Mac и Linux.

  1. Xamarin - это платформа для разработки кроссплатформенного мобильного приложения (iOS, Android и Windows Mobile) с использованием C #

Поддержка реализации .NET Standard [синий] и минимальная жизнеспособная платформа для полной поддержки .NET Standard (последняя версия: [https://docs.microsoft.com/en-us/dotnet/standard/net-standard#net-implementation-support])

.Net Frame work используется для базовых приложений Windows. .Net Core Frame используется для кроссплатформенных базовых приложений. Xamarin Frame work используется для разработки мобильных приложений.

  1. .Net Framework (последняя версия 4.8) поддерживает только платформу Windows. Это означает, что ваше настольное приложение будет работать только в Windows. А веб-приложение может быть размещено только на Windows Server / ОС Windows

  2. .Net Core (начиная с .net core 1, 2, 2.1, 3.1, последняя версия 5) перекрещиваются платформа. (Windows, Linux, Mac).

  3. Xamarin, с другой стороны, поддерживает мобильную платформу. (Android и IOS) .Для разработки мобильных приложений.

  • .NET Framework - только устаревшая реализация Microsoft .NET для Windows. Введен в 2002 году, выводится из употребления.
  • .NET 5 (преемник .NET Core 3.1) - современная переработка .NET Framework, направленная на его замену, поддерживает Windows, macOS и Linux. Представленная в 2016 году следующая версия может поглощать Xamarin
  • .
  • Xamarin - Mono с привязками платформы к ОС, отличным от Windows, и API-интерфейсам, а также инструментам, специально предназначенным для разработки мобильных приложений (iOS, Android и, в последнее время, настольные компьютеры). Представлен в 2012 году. Mono - это реализация .NET сторонней компании Microsoft, разработанная сообществом и представленная в начале 2000-х годов и конкурирующая с .NET Framework.

Xamarin используется для телефонных приложений (как IOS / Android). .NET Core используется для разработки веб-приложений, которые могут работать как в Apache, так и в IIS.

Это разница в двух предложениях.

2022 WebDevInsider