0 / 0 / 0
Регистрация: 24.01.2018
Сообщений: 3

Объясните на пальцах совместимость библиотек в .Net Core, .Net Framework, .Net Standart

04.06.2018, 19:18. Показов 4942. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Изучаю .Net. Хочу написать некое серверное приложение (думаю что учеба лучше на реальном примере, нежели писать примитивные hello world). Выбор уходит в сторону .Net Core (микросервис). В проекте нужно будет использовать некоторые библиотеки (далее пример приведу).
Из всего прочитанного понял следующее (если что не правильно понял поправьте):
1. Net Standart - вершина "айсберга" (своего рода типа интерфейс для остальных проектов)
2. Net Core, Net Framework, Xamarin - ниже по иерархии (типа как классы реализующие интерфейс), но могут (и скорее всего так и делают) добавлять свои специфические фичи, характерные для каждого из них.
3. Библиотеки (dll-ки) написанные как классы Net Standart могут использоваться в любом из наследников (Net Core, Net Framework, Xamarin) с полной совместимостью (а если быть точным то смотреть таблицу реализации https://docs.microsoft.com/en-... on-support), но не наоборот (т.е. к примеру если библиотека написана как Net Framework dll (со специфическими для Net Framework фичами), то не факт что ее можно использовать в Net Core, потому как он не поддерживает специфические фичи из Net Framework)
4. Каждая последующая версия Net Standart, Net Core, Net Framework, Xamarin включает в себя все фичи из предыдущей версии самой себя + некоторые новые. Т.е. к примеру код написанный под Net Standart 1.3 будет 100% работать в Net Standart 2.0, НО код написанный под Net Standart 2.0 не будет работать в Net Standart 1.3 и выше.

И теперь собственно на реальном примере. Буду использовать .Net Core 2.0 и смотреть совместимость естественно с Net Standart 2.0 и .NETFramework 4.6.1. Выбираю два пакета (библиотеки) на сайте nuget. Первый к примеру Selenium Webdriver https://www.nuget.org/packages/Selenium.WebDriver/
Во вкладке dependencies смотрю что ему надо (я понимаю что все это подтянется автоматом в visual studio, вручную не надо):

.NETFramework 3.5
No dependencies.
.NETFramework 4.0
No dependencies.
.NETFramework 4.5
No dependencies.
.NETStandard 2.0
Newtonsoft.Json (>= 10.0.3)

Как я понимаю ему не нужны никакие зависимости из .NETFramework, но нужна одна зависимость из .NETStandard 2.0. Но для Newtonsoft.Json (>= 10.0.3) тоже нужны зависимости https://www.nuget.org/packages/Newtonsoft.Json/

.NETFramework 2.0
No dependencies.
.NETFramework 3.5
No dependencies.
.NETFramework 4.0
No dependencies.
.NETFramework 4.5
No dependencies.
.NETStandard 1.0
Microsoft.CSharp (>= 4.3.0)
NETStandard.Library (>= 1.6.1)
System.ComponentModel.TypeConverter (>= 4.3.0)
System.Runtime.Serialization.Primitives (>= 4.3.0)
.NETStandard 1.3
Microsoft.CSharp (>= 4.3.0)
NETStandard.Library (>= 1.6.1)
System.ComponentModel.TypeConverter (>= 4.3.0)
System.Runtime.Serialization.Formatters (>= 4.3.0)
System.Runtime.Serialization.Primitives (>= 4.3.0)
System.Xml.XmlDocument (>= 4.3.0)
.NETStandard 2.0
No dependencies.

Вот тут я немного в ступоре. Если я буду использовать .Net Core 2.0, а он в свою очередь реализует .NETStandard 2.0, то как я понимаю для Newtonsoft.Json уже не нужны зависимости из .NETStandard 1.0 и .NETStandard 1.3, потому как все это уже есть в .NETStandard 2.0.

Т.е. будет ли пакет Selenium.WebDriver совместим с .Net Core в данном случае?

И еще один пример, есть пакет cefSharp: https://www.nuget.org/packages... .0.0-pre01 Он тянет зависимость
CefSharp.Common (= 65.0.0-pre01)
Та еще две, но эти последние две не тянут ничего https://www.nuget.org/packages/cef.redist.x64/

This package has no dependencies.

В этом случае ни слова про .NETStandard и .NETFramework. Т.е. как я понимаю они вообще самодостаточные? Т.е. как они будут работать в .Net Core?

Длинный вопрос получился, но надеюсь вы поняли, в чем я хочу разобраться:
Как выяснить совместимость пакета с определенной реализацией .NET?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.06.2018, 19:18
Ответы с готовыми решениями:

Как вызвать из .NET Framework 4 функцию NET Core 2
Собственно сабж Есть проект на .NET Framework 4.0. И библиотека на .NET Core, откуда я хочу вызвать функцию, но когда выполнение кода...

Как подключить к ConsoleApp(.Net Core) библиотеку (.Net Standart)
Привет товарищи!) Решил чутка по изучать нововведения(ну лично для меня ConsoleApp(.Net Core) и Library (.Net Standart)). Написал...

Объединить .net core и .net framework в одном проекте
Всем привет, требуется объединить .net core 3.0 (wpf) и .net framework (В идеале: 4.5.2 , но можно и 4.7.2) в один проект. Суть вообще...

1
 Аватар для flashcsgroup
20 / 20 / 5
Регистрация: 18.04.2013
Сообщений: 496
05.06.2018, 11:44
Цитата Сообщение от razorg1991 Посмотреть сообщение
Т.е. будет ли пакет Selenium.WebDriver совместим с .Net Core в данном случае?
В этом , да
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.06.2018, 11:44
Помогаю со студенческими работами здесь

Совместимость проекта .NET Framework 4.6.2. На ПК с VS где установлен .NET Framework 4.6.1?
Если решение написано под .NET Framework 4.6.2, то соберется ли без ошибочно данное решение на другом ПК с точно таким же VS 2017...

Разница между .Net Framework и .Net Core
Собственно, основной вопрос в названии темы. Из прочитанных статей понял, что core призван обьединить разнообразные api,...

Оптимизация производительности C#.NET (Алгоритм, Многопоточность, Debug, Release, .Net Core, Net Native)
Решил поделится своим небольшим опытом по оптимизации вычислений на C#.NET. НЕ профи, палками не кидать, конструктив приветствуется! ...

В списке Target Framework не выбирается .NET Framework 4 только .NET Framework 4 Client Profile
Свойства проекта (Project -> Properties) -> вкладка Compile -> Advenced complie options -> в списке Target Framework не выбирается .NET...

Что выбрать - WPF .Net Core или WPF .Net Framework + буду работать с SQLite (также интересно какую версию БД выбрать)?
Всем привет. Ниже необязательная предыстория, высказался просто) Тут наконец вновь взялся за мелкую приложуху для Windows 7,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

Новые блоги и статьи
Как украсить новогоднюю елку с Q# и Qiskit
EggHead 24.06.2025
Что может быть необычнее, чем применить законы квантовой механики для украшения новогодней елки? Пока другие развешивают обычные гирлянды, я решил объединить свою страсть к квантовым вычислениям с. . .
Системы нулевого доверия на C#
UnmanagedCoder 24.06.2025
Традиционная архитектура безопасности работает по принципу средневекового замка: создаём высокие стены вокруг корпоративной сети, укрепляем ворота межсетевыми экранами и системами обнаружения. . .
Снова не мой путь. Циклическое среднее, я обеими руками за проверку условия, в ракурсе данной задачи - циклическое среднее в топку.
Hrethgir 24.06.2025
Привет. Такой вопрос - нужно выводить среднее математическое между двумя направлениями, интервал значений которых может лежать в диапазоне одного оборота по кругу. Проблема заключается в том, что. . .
Деплой Flask приложения
py-thonny 23.06.2025
За годы работы с Flask я натыкался на одни и те же грабли достаточно часто, чтобы наконец научится их обходить. И сегодня хочу поделится опытом, который сбережет вам немало нервных клеток. Начнем с. . .
WebAssembly и контейнеры в .NET Aspire для оркестрации распределенных архитектур
ArchitectMsa 23.06.2025
Я наблюдаю, как WebAssembly (или просто WASM) постепенно выходит за рамки своего первоначального предназначения — исполнения кода на стороне браузера. Теперь эта технология проникает в серверную. . .
Непрерывная интеграция для пакета Python
Mr. Docker 22.06.2025
Было 4 часа утра пятницы, когда я выпустил новую версию нашей внутренней библиотеки для обработки данных. Релиз 0. 5. 2 содержал небольшой фикс для обработки дат в ISO формате, что может пойти не так?. . .
Продвинутый ETL на C# из OLTP БД в хранилище
stackOverflow 22.06.2025
Работая в сфере корпоративной аналитики, я постоянно сталкиваюсь с одним и тем же - нужны чистые, структурированные и, главное, свежие данные. Без них современные аналитические системы, машинное. . .
Мастер-класс по микросервисам на Node.js
Reangularity 21.06.2025
Node. js стал одной из самых популярных платформ для микросервисной архитектуры не случайно. Его неблокирующая однопоточная модель и событийно-ориентированный подход делают его идеальным для. . .
Управление Arduino из WPF приложения
Wired 21.06.2025
Зачем вообще связывать Arduino с WPF-приложением? Казалось бы, у Arduino есть собственная среда разработки, своя экосистема, свои способы управления. Однако при создании серьезных проектов. . .
Звёздная пыль
kumehtar 20.06.2025
Я просто это себе представляю: как создавался этот мир. Как энергия слипалась в маленькие частички. Как они собирались в первые звёзды, как во вселенной впервые появился Свет. Как эти звёзды. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru