Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 24.01.2018
Сообщений: 3
1

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

04.06.2018, 19:18. Просмотров 2713. Ответов 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
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
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) и...

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

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

1
20 / 20 / 5
Регистрация: 18.04.2013
Сообщений: 495
05.06.2018, 11:44 2
Цитата Сообщение от razorg1991 Посмотреть сообщение
Т.е. будет ли пакет Selenium.WebDriver совместим с .Net Core в данном случае?
В этом , да
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.06.2018, 11:44

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

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

Оптимизация производительности 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 -> в списке...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.