Подтвердить что ты не робот

Является ли .NET Core "внедрением" стандарта .NET?

Я все еще довольно смущен тем, как .NET Core и .NET Standard связаны друг с другом.

Из того, что я понимаю,.NET Standard - это определение интерфейса (не похожее на то, как Katana является реализацией OWIN)..NET Framework будет реализовывать версии .NET Standard.

Насколько это правильно?

.NET Core объединяет в нем свои зависимости. Эти зависимости будут использовать реализацию интерфейса .NET Standard. Это может быть .NET Framework, Mono или что-то еще.

ASP Core - это .NET Core, на который ссылается материал "Web". В значительной степени просто шаблон Visual Studio в том смысле, что он может быть создан из консольного приложения .NET Core.

Я все еще близок к треку?

Наконец, если я могу создать новое приложение с зеленым полем, то .NET Core должен стать предпочтительной технологией (предполагая, что мне не нужны какие-либо из сборников .NET Framework).

Последний вопрос, могу ли я ссылаться на сборки .NET Framework в GAC из проекта .NET Core?

Приветствия

4b9b3361

Ответ 1

Я понимаю, что .NET Core реализует .NET Standard.

Итак, .NET Standard больше похож на спецификацию, а .NET Core - это реальная структура, которая реализует эту спецификацию.

.NET Standard также реализуется другими фреймами, такими как .NET Framework или XamarinASP.NET Core, который построен на вершине .NET Core).


Вот неофициальное объяснение:

Как .NET Standard отличается от .NET Core?

.NET Standard - это спецификация, которая охватывает те API, которые должна реализовать платформа .NET.

.NET Core - это конкретная платформа .NET и реализует стандарт .NET.


.NET Standard:

Стандарт .NET является официальной спецификацией .NET API, которые должны быть доступны во всех сеансах .NET.

Различные среды выполнения .NET реализуют определенные версии .NET Standard.


Знакомство с .NET Standard:

.NET Standard - это набор API, который все платформы .NET должны реализовать. Это унифицирует платформы .NET и предотвращает будущую фрагментацию.

.NET Standard 2.0 будет реализован .NET Framework,.NET Core и Xamarin. Для .NET Core это добавит многие из существующих API, которые были запрошены.


Представляем .NET Core:

.NET Core по существу является вилкой .NET Framework

Еще один способ взглянуть на это:.NET Framework имеет по существу две вилки. Одна вилка предоставляется Microsoft и только для Windows. Другая вилка - Mono, которую вы можете использовать на Linux и Mac.


Подробнее читайте:

Ответ 2

  • Да,.NET Core - это платформа/среда выполнения, которая реализует версию .NET Standard.

Если вы создаете библиотеку, предназначенную для версии .NET Standard, ее можно использовать в любой среде исполнения, которая реализует эту или более высокую версию .NET Standard. Это относится к .NET Core, а также к моно (= > Xamarin), UWP (.NET Native) и .NET Framework.

  • Детали распределения на самом деле не имеют значения.. технически .NET Core < 2.0 полагается на способ NETStandard.Library, но он меняется на 2.0.

  • ASP.NET Core - это всего лишь "набор библиотек и инструментов на вершине версии .NET Standard (pre 2.0 также версия .NET Framework), для которой требуется запустить. Это означает, что вы можете создавать приложения ASP.NET Core для .NET Core и .NET Framework - потенциально даже для других сред выполнения, если они поддерживают требуемый уровень .NET Standard.

  • Для новых проектов имеет смысл оценить, каковы ваши потребности..NET Core имеет другую политику обслуживания, чем .NET Framework, а .NET Framework по-прежнему содержит компоненты и API, которые не будут включены в .NET Core - например, WinForms и WPF.

    Для новых проектов библиотеки имеет смысл ориентироваться на .NET Standard вместо .NET Framework, где это возможно, чтобы обеспечить повторное использование в более типах проектов.

Ответ 3

Простой ответ да:

.NET Core реализует стандартную библиотеку .NET и, следовательно, поддерживает стандартные библиотеки .NET.

И ASP.NET Core, основанный на .NET Core.

Но: это не означает, что все приложения ASP.NET Core поддерживают .NET Standard. Основные приложения ASP.NET могут работать на .NET Core или на полной платформе .NET Framework. Если приложение имеет полную платформу .NET Framework в качестве целевой платформы, она может иметь зависимости от библиотек, которые не поддерживают .NET Standard.

Ответ 4

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

Это необходимо, потому что .NET разветвлялся и развился во многие вкусы (в основном полная .NET Framework,.NET Core и Xamarin). В настоящее время, если вы хотите написать какой-то код, который инкапсулирует, например, некоторую ключевую бизнес-логику, а затем использовать этот код как в настольном приложении, так и в мобильном приложении и на веб-сайте, тогда это трудно достичь.

Идея .NET Standard заключается в том, что если вы пишете свой код, ориентированный только на API в .NET Standard, то он должен работать на любой платформе, на которой установлена ​​версия .NET, которая реализует стандарт .NET.

Вы не пишете все свое приложение в стандарте .NET, потому что вам все равно понадобятся функции платформы или .NET-версии (такие как библиотеки управления формами окон, элементы управления форматами Xamarin, доступ к файловой системе, веб-безопасность и т.д.)., но если вы напишете свой библиотечный код для целевого .NET Standard, вы поймете, что его можно легко разделить между различными приложениями на разных платформах, и что он должен работать на этих платформах, если у них установлена ​​стандартная версия .NET Standard.NET.

"Зачем нам нужен стандарт?" раздел этого блога MSDN от Immo Landewerth охватывает эту ситуацию.