Использование возможностей ASP.NET Core в полной версии .NET Framework 4.6 - PullRequest
0 голосов
/ 16 ноября 2018

Ссылаясь на Зачем использовать полную .NET Framework с ASP.NET Core? , похоже, .NET 4.7.2 - это путь для продвижения вперед?

Наше существующее приложение предназначено для .NET 4.6.1 с использованием ASP.NET Boilerplate.

Обязательно ли переходить на .NET 4.7. *, Чтобы использовать возможности ASP.NET Core 2.1?

Ответы [ 3 ]

0 голосов
/ 16 ноября 2018

Нет, для использования возможностей ASP.NET Core 2.1 нет необходимости переходить на .NET 4.7. *.

ASP.NET Core 2.x состоит из .NETСтандартные библиотеки.Приложения, написанные на .NET Standard 2.0, работают везде, где поддерживается .NET Standard 2.0.

ASP.NET Core 2.x поддерживается в версиях .NET Framework, совместимых с .NET Standard 2.0:

  • .NET Framework 4.7.1 и новее.
  • .NET Framework 4.6.1 и новее.

Вам нужно только перейти на .NET4.7.2 если вам нужны функции в Объявление .NET Framework 4.7.2 :

  • ASP.NET - внедрение зависимостей в WebForms
  • ASP.NET - SameSite Cookie
  • ClickOnce - Поддержка каждого монитора для развернутых приложений ClickOnce с поддержкой WPF и HDPI
  • ClickOnce - Включение метки времени SHA256 для манифестов развертывания
  • SQL - Azure AD Universalи поддержка многофакторной аутентификации
  • BCL - Улучшения криптографии
  • BCL - Поддержка декомпрессии ZLib для DeflateStream
  • BCL - Дополнительные API коллекции
  • WorkflowDesigner High Contrast Улучшения
  • WPF - Поиск словарей ресурсов по источникам
  • WPF - Поиск владельцев ResourceDictionary
  • WPF - Поиск ссылок на StaticResource

Ссылки:

0 голосов
/ 17 ноября 2018

На самом деле, если вы создаете приложение с использованием .NET Core / Standard, но в вашем приложении вы можете иметь какую-то ссылку на то, что при использовании .NET Framework это должно быть большой проблемой.


История: я создаю веб-приложение с использованием ASP.NET Core, в этом приложении я хочу иметь расширение для преобразования HTML в pdf.

Я пробовалпоиск в Google и нашел плагин, который называется: itextsharp.И проблема здесь в следующем.

itextsharp использует .NET Framework, в то время как мой основной проект использует .NET Core.Поскольку я хочу создать библиотеку классов для создания этого расширения, у меня есть 3 варианта:

  1. Использование библиотеки классов .NET Core.

  2. ИспользованиеБиблиотека классов .NET Standard.

  3. Использование библиотеки классов .NET Framwork.

Все они могут быть отнесены к основному проекту. НО :

Я не могу использовать itextsharp ссылки (itextsharp.dll, itextsharp.xtra.dll, itextsharp.pdfa.dll, itextsharp.xmlworker.dll ...) в .NETБазовый / стандартный класс libray.Все они могут работать только на целевом .NET Framework.

(я еще не упоминал о том, как преобразовать код в целевой .NET Standard или Core из-за лицензии)

И мое решение таково: создайте приложение .NET Framework и опубликуйте его в exe файле перед добавлением в основной проект в качестве ссылки.

P / S: На данный момент itextsharp имеет версию Core, но я думаю, что она недостаточно хороша (проблемы с отображением изображений, шрифтов с текстом в кодировке Юникод, тегом стиля ...).


В целом, если вы хотитеСоздайте приложение, которое использует целевой .NET X, вы должны убедиться, что все ссылки могут использовать и целевой .NET X.


Другой пример: если вы хотите создать библиотеку классов, использующуюRazor class library.Вы должны убедиться, что все ссылки используют целевой .NET Core / Standard.Поскольку Razor class library не может обращаться к библиотеке классов .NET Framework.

0 голосов
/ 16 ноября 2018

Чтобы использовать функции .NET Core 2.1, необходимо настроить таргетинг на .NET Core 2.1

Существует .NET Standard , который представляет собой пересечение функций, доступных в ряде реализаций, включая .NET Core и .NET Framework. Если вы нацелены на .NET Standard (некоторая конкретная версия), то вы можете использовать функции, доступные в этой версии .NET Standard, и он должен запустить в любой .NET Framework 4.7. 2 или .NET Core 2.1.

Как общее руководство: библиотеки (такие как Aspnet Boilerplate) теперь должны - где это возможно - предназначаться для .NET Standard, но часто будут иметь многоцелевую сборку, чтобы позволить им внутренне использовать специфичные для цели функции определенных сред (возможно, с использованием расширенных возможностей «span» или SIMD в .NET Core).

Код приложения должен (и должен , если это исполняемый файл) предназначаться для конкретной платформы, такой как .NET Framework или .NET Core.

...