Какая разница? between.NET ядро, .NET Framework и Xamarin?
Microsoft теперь имеет .NET Core, .NET Framework и Xamarin (Mono) в своем семействе .NET.
здесь, кажется, много перекрытий. Какая разница между этими типами .Чистая? Когда я должен выбрать, чтобы использовать .Объем ядра в моем проекте, а не .Чистые рамки или Xamarin?
3 ответов:
вы должны использовать .NET Core, а не .NET Framework или Xamarin, в следующих 6 типичных сценариев в соответствии с документацией здесь.
1. Кросс-платформенные потребности
очевидно, что если ваша цель состоит в том, чтобы иметь приложение (web/service), которое должно быть способно работать на разных платформах (Windows, Linux и MacOS), лучшим выбором в экосистеме .NET является использование .NET Core в качестве среды выполнения (CoreCLR), а библиотеки являются кросс-платформенными. Другой выбор заключается в использовании моно проекта.
оба варианта являются открытым исходным кодом, но .NET Core напрямую и официально поддерживается Microsoft и будет иметь большие инвестиции вперед.
при использовании .NET Core на разных платформах лучший опыт разработки существует в Windows с Visual Studio IDE, которая поддерживает многие функции производительности, включая управление проектами, отладку, управление версиями, рефакторинг, богатое редактирование, включая Intellisense, тестирование и намного больше. Но богатая разработка также поддерживается с помощью кода Visual Studio на Mac, Linux и Windows, включая intellisense и отладку. Даже сторонние редакторы, такие как Sublime, Emacs, VI и другие, хорошо работают и могут получить редактор intellisense с помощью проекта Omnisharp с открытым исходным кодом.
2. Микросервисы
когда вы строите микрослужбы ориентированной системы, состоящей из нескольких независимых, динамически масштабируемых, с сохранением состояния или без сохранения состояния микрослужб, великий преимущество состоит в том, что вы можете использовать различные технологий/фреймворков/языков на уровне, конструирование. Это позволяет использовать наилучший подход и технологию для каждой микро-области в вашей системе, поэтому, если вы хотите построить очень производительные и масштабируемые микросервисы, вы должны использовать .NET Core. В конце концов, если вам нужно использовать любую библиотеку .NET Framework, которая не совместима с .NET Core, нет проблем, вы можете создать этот микросервис с помощью .NET Framework, и в будущем вы можете можно заменить его на .NET Core.
инфраструктурная платформа, которую вы могли бы использовать, - это много. В идеале, для больших и сложных систем микрослужб, вы должны использовать Azure структура Службы. Но для микросервисов без гражданства, вы также можете использовать другие продукты, такие как Служба приложений Azure или Azure функции.
обратите внимание, что по состоянию на июнь 2016 года не каждая технология в Azure поддерживает .NET Core, но поддержка .NET Core в Azure будет резко увеличиваться теперь, когда .NET Ядро РТМ вышел.
3. Лучшие высокопроизводительные и масштабируемые системы
когда ваша система нуждается в наилучшей производительности и масштабируемости, так что вы получите лучшую отзывчивость независимо от того, сколько пользователей у вас есть, то где .NET Core и ASP.NET ядро действительно блестит. Чем больше вы можете сделать с тем же количеством инфраструктуры/оборудования, тем богаче опыт, который вы будете иметь для ваших конечных пользователей – по более низкой цене.
дни закона Мура улучшения производительности для отдельных процессоров больше не применяются; но вам нужно сделать больше, пока ваша система растет, и вам нужна более высокая масштабируемость и производительность для более требовательных пользователей everyday, которые растут экспоненциально в цифрах. В конечном итоге вам нужно повысить эффективность, оптимизировать везде и лучше масштабировать кластеры машин, виртуальных машин и ядер ЦП. Это не просто вопрос удовлетворенности пользователя; это также может иметь огромное значение в стоимости/TCO. Вот почему это важно стремиться к производительности и масштабируемости.
Как уже упоминалось, если вы можете изолировать небольшие части своей системы в качестве микросервисов или любого другого слабо связанного подхода, это будет лучше, поскольку вы сможете не только самостоятельно развивать каждую небольшую часть/микросервис и иметь лучшую долгосрочную гибкость и обслуживание, но также вы сможете использовать любую другую технологию на уровне микросервиса, если то, что вам нужно сделать, несовместимо с .NET Core. И в конце концов вы сможете рефакторинг его и довести его до .NET Core, когда это возможно.
4. Разработка стиля командной строки для Mac, Linux или Windows.
этот подход является необязательным при использовании .NET Core. Конечно, вы также можете использовать полную среду IDE Visual Studio. Но если вы разработчик, который хочет разрабатывать с легкими редакторами и интенсивным использованием командной строки, .NET Core предназначен для CLI. Он предоставляет простые инструменты командной строки, доступные на всех поддерживаемых платформах, что позволяет разработчикам Создавайте и тестируйте приложения с минимальной установкой на машинах разработчика, лаборатории или производства. Такие редакторы, как Visual Studio Code, используют одни и те же средства командной строки для разработки. И как интегрированная среда разработки Visual Studio от использования тех же инструментов командной строки, но скрывать их за богатый опыт язь. Теперь разработчики могут выбрать уровень, на котором они хотят взаимодействовать с цепочкой инструментов от CLI до редактора и IDE.
5. Нужно бок о бок версий .NET на уровне приложения.
Если вы хотите иметь возможность устанавливать приложения с зависимостями от различных версий фреймворков в .NET, вам необходимо использовать .NET Core, который обеспечивает 100% бок о бок, как описано ранее в этом документе.
6. В Windows 10 приложения Windows .Net-приложений.
кроме того, вы также можете прочитать:
вот как Microsoft объясняет это:
.NET Framework это "полный" или "традиционный" вкус .NET, который распространяется с Windows. Используйте это при создании настольного приложения Windows или UWP, а также при работе со старыми версиями ASP.NET 4.6+.
.NET Core является кросс-платформенным .NET, который работает на Windows, Mac и Linux. Используйте это когда вы хотите построить консоль или веб-приложения, которые могут работать на любой платформе, в том числе внутри Docker-контейнеров. В настоящее время это не включает приложения UWP/desktop.
Xamarin используется для создания мобильных приложений, которые могут работать на устройствах iOS, Android или Windows Phone.
Xamarin обычно работает поверх моно, который представляет собой версию .NET, которая была построена для кросс-платформенной поддержки, прежде чем Microsoft решила официально перейти на кросс-платформенный с .NET Core. Как и Xamarin, платформа Unity также работает поверх Монофонический.
общая точка путаницы, где ASP.NET ядро вписывается. ASP.NET ядро может работать поверх .NET Framework (Windows) или .NET Core (кросс-платформенный), как описано в этом ответе: разница между ASP.NET ядро (.NET Core) и ASP.NET ядро (.NET Framework)
вы можете ссылаться в этой строке - разница между ASP.NET ядро (.NET Core) и ASP.NET ядро (.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 только ядро. UWP используется для создания целевых приложений Windows 10 для Windows и мобильных приложений. ASP.NET ядро используется для создания веб-приложений на основе браузера.
вы хотите более подробную информацию см. По этой ссылке
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


Comments