Bezdepbonusu7Программирование: статьи и ответы

Вопрос

В чем разница между .NET Core, .NET Framework и Xamarin?

Автор вопроса: MeeChaoОтветов: 9

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

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

  • Отсутствует тег microsoft, но его не существует. Этот вопрос предполагает Microsoft. Сегодня вам также нужно выбирать между: для настольных приложений с графическим интерфейсом: например, Джава. Для мобильных устройств: собственный android / objective-C или одна из многих других кроссплатформенных платформ. Для Интернета: например, колба. Как показывает ответ с упоминанием .Net5, Microsoft отчаянно пытается закрепиться на других платформах, кроме MS-Windows, и ощущает конкуренцию Mono с открытым исходным кодом, но пока не нашла стабильного решения. Roland 15.01.2021

xamarin

Ответы

Ответ 1 · рейтинг 296 · Fiona Bi

Вы должны использовать .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.

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

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

Ответ 2 · рейтинг 187 · Nate Barbettini

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

.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)

Ответ 3 · рейтинг 46 · logeshpalani32

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

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/choice-core-framework-server

Ответ 4 · рейтинг 19 · Razib Hossain

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

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

  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])

Ответ 5 · рейтинг 13 · yanlend

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

Ответ 6 · рейтинг 3 · J. Doe

  • .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.

Ответ 7 · рейтинг 2 · Marto99

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

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

Ответ 8 · user10868910

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

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

Ответ 9 · рейтинг -2 · Saddam Akhtar

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы