Так что, не имея больше поддержки .NET Standard из .NET Core 3 и далее, как вы делитесь кодом? - PullRequest
0 голосов
/ 26 июня 2019

То есть, если .NET Core 3 больше не поддерживает .NET Standard (и .NET 5 за пределами того, что находится в одной лодке). Допустим, сегодня у меня есть следующие приложения:

  • WebForms .NET 4.61
  • .NET MVC 5
  • .NET Core 2.x

с "общим" кодом, перечислениями и т. Д. Как .NETСтандарт 2.0.А теперь я хочу создать приложение .NET Core 3.x.

Так что для простых POCO, перечислений, типов и т. Д. Это не проблема.Однако для чего-либо, поддерживающего что-то более сложное (и в настоящее время совместимое с .NET Standard 2.0), какое решение?

Мне кажется, что я больше не могу обмениваться кодом между WebForms, .NET Core 2.x, .NET Core 3.x, .NET 5. Поэтому при условии, что я должен поддерживать эти устаревшие платформы (Webforms,.Net Core 2) какие варианты у меня тут остались?

Ответы [ 2 ]

1 голос
/ 26 июня 2019

Обратите внимание, что .NET Core и ASP.NET Core - это разные вещи..NET Core - это среда выполнения и API, аналогичная .NET Framework, а ASP.NET Core - веб-инфраструктура, подобная ASP.NET.ASP.NET Core косвенно нацелен на (1.x и 2.x через .NET Standard) или встроен в качестве каркасной зависимости в (3.0 и более поздних версиях) .NET Core, но это разные вещи.

.NET Core 3.0 поддерживает .NET Standard 2.1, который обратно совместим с .NET Standard 2.0, поэтому он поддерживает .NET Standard 2.0 (и даже .NET Standard 1.0)

.NET Standard 2.1 - это новый стандарт .NET, который в настоящее время поддерживается только .NET Core 3.0 и никогда не будет поддерживаться .NET Framework, поэтому сам по себе бессмысленно, если его не поддерживает новый моно релиз.

ASP.NET Core 2.2 предназначен для .NET Standard 2.0, поэтому поддерживается .NET Core 2.2 и .NET Framework 4.7.2+ (также 4.6.1+, но с проблемами)

ASP.NET Core 3.0 является структурной зависимостью в .NET Core 3.0.Сам ASP.NET Core 3.0 больше не работает на всех реализациях .NET Standard 2.0, а только на .NET Core 3.0, который поддерживает библиотеки, предназначенные для .NET Standard 2.0.Единственным ограничением является то, что он больше не будет работать в .NET Framework.

.NET 5 является более поздней версией .NET Core, поэтому он будет продолжать поддерживать .NET Standard 2.1.NET Standard 2.0 и ниже.

Заключение и предложение:

  • Библиотеки, ориентированные на .NET Standard 2.0, могут работать как на .NET Core (от 2.0 до .NET 5 и так далее.позже) и .NET Framework, поэтому его можно использовать для совместного использования кода всеми вашими приложениями.

  • .NET Framework будет мертвым, в том числе ASP.NET.Нет информации о том, будет ли простой способ перенести существующий проект ASP.NET в .NET 5, но я полагаю, что нет.Таким образом, полный рефакторинг из ASP.NET в ASP.NET Core необходим, если вы хотите нацеливаться на любые будущие .NET.

  • .NET Core 3.0 поддерживает Windows Forms и WPF, а не что-то вроде«Windows Forms Core» или «WPF Core», поэтому API практически не изменяется при переходе с .NET Framework на .NET Core 3.0.Таким образом, было бы легко перенести приложение Windows Forms или WPF в .NET Core, если это чисто проект пользовательского интерфейса без других зависимостей фреймворка от .NET Framework.

0 голосов
/ 26 июня 2019

Анонс Net Core 5 был для MS, чтобы провести черту в песке и объединить все 3 разные платформы вместе. Переход от Net Framework к Net Core 5, вероятно, будет значительным, но суть в том, что «Стандартный» больше не должен быть (поскольку в любом случае это было задумано только как мост между Framework и Core). С самого начала Core было очевидно, что этот день наступил. Наконец, с объявлением о Net Core 5 мы знаем этот день. Намерение (я считаю) состоит в том, что Net Core 5 устранит необходимость в Standard и заставит Framework выйти на пенсию. фаза для новой разработки.

...