Список библиотек и фреймворков .NET - List of .NET libraries and frameworks - Wikipedia

Эта статья содержит список библиотеки что можно использовать в .NET языки. Эти языки требуют .NET Framework или же .СЕТЬ, которые служат основой для разработка программного обеспечения, независимость от платформы, языковая совместимость и обширные библиотеки фреймворков. Стандартные библиотеки (в том числе Библиотека базового класса ) не включены в эту статью.

Преамбула

Приложения, созданные с помощью .NET Framework или .NET, работают в программной среде, известной как общеязыковая среда выполнения (CLR), виртуальная машина приложения который предоставляет такие услуги, как безопасность, управление памятью, и Обработка исключений. Фреймворк включает большую библиотеку классов под названием Библиотека классов Framework (FCL).

Благодаря виртуальной машине хостинга разные .NET CLI-совместимые языки могут работать с такими же структурами данных. Следовательно, все языки, совместимые с CLI, могут использовать FCL и другие библиотеки .NET, написанные на одном из языков, совместимых с CLI. Когда исходный код CLI-совместимого языка компилируется, компилятор генерирует платформо-независимый код в Общий промежуточный язык (CIL, также называемый байт-код ), который хранится в Сборки CLI. Когда запускается приложение .NET, своевременный компилятор (JIT) превращает код CIL в машинный код для конкретной платформы. Для повышения производительности .NET Framework также поставляется с Генератор собственных изображений (NGEN), который выполняет предварительную компиляцию в машинный код.

Эта архитектура обеспечивает языковая совместимость. Каждый язык может использовать код, написанный на других языках. Вызовы с одного языка на другой точно такие же, как и в пределах одного языка программирования. Если библиотека написана на одном языке интерфейса командной строки, ее можно использовать на других языках интерфейса командной строки. Более того, приложения, которые состоят только из чистых сборок .NET, могут быть перенесены на любую платформу, которая содержит реализацию CLI, и запущены на этой платформе. Например, приложения, написанные с использованием .NET, могут работать в Windows, macOS, и различные версии Linux.

Однако приложения .NET или их библиотеки могут зависеть от функций собственной платформы, например COM. Таким образом, независимость .NET-приложений от платформы зависит от способности переносить необходимые собственные библиотеки на целевые платформы. До 2019 года Windows Forms и Windows Presentation Foundation части .NET Framework не были доступны на других платформах.[1]

Реализации .NET

Активно разрабатываются и поддерживаются четыре основных реализации .NET:

  • .NET Framework: Первоначальная реализация .NET, существующая с 2002 года. Хотя Microsoft еще не снята с производства, она не планирует выпускать свою следующую основную версию, 5.0.[2]
  • Мононуклеоз: Кросс-платформенная реализация .NET Framework от Ximian, представленный в 2004 году. Он бесплатный и с открытым исходным кодом. Сейчас он разработан Xamarin, дочерняя компания Microsoft.
  • Универсальная платформа Windows (UWP): Реализация .NET, используемая для сборки Приложения UWP. Он предназначен для унификации разработки для различных целевых типов устройств, включая ПК, планшеты, фаблеты, телефоны и Xbox.
  • .СЕТЬ: А кросс-платформенный повторная реализация .NET Framework, представленная в 2016 году и первоначально называвшаяся .NET Core. это бесплатно и с открытым исходным кодом. Microsoft планирует объединить с ним .NET Framework.[2]

Каждая реализация .NET включает в себя следующие компоненты:

  • Одна или несколько сред выполнения, например CLR для .NET Framework и CoreCLR для .NET
  • Библиотека классов

В .NET Standard это набор общих API которые реализованы в Библиотека базового класса любой реализации .NET. Библиотека классов каждой реализации должна реализовывать .NET Standard, но может также реализовывать дополнительные API. Традиционно приложения .NET нацелены на определенную версию реализации .NET, например .NET Framework 4.6.[3][4] Начиная с .NET Standard, приложение может ориентироваться на версию .NET Standard, а затем оно может использоваться (без перекомпиляции) любой реализацией, поддерживающей этот уровень стандарта. Это обеспечивает переносимость между различными реализациями .NET.

В следующей таблице перечислены реализации .NET, соответствующие стандарту .NET Standard, а также номер версии, с которой каждая реализация стала совместимой с данной версией .NET Standard. Например, согласно этой таблице, .NET Core 3.0 была первой версией .NET Core, которая соответствовала .NET Standard 2.1. Это означает, что любая версия .NET Core выше 3.0 (например, .NET Core 3.1) также соответствует .NET Standard 2.1.

ВыполнениеВерсии стандарта .NET[5][6]
1.01.11.21.31.41.51.62.02.1
.СЕТЬ1.02.03.0
.NET Framework4.54.54.5.14.64.6.14.7.2[а]4.7.2[а]4.7.2[а]Нет данных[b]
Мононуклеоз4.65.46.2
Xamarin.iOS10.010.1412.12
Xamarin.Mac3.03.85.12
Xamarin.Android7.08.09.3
Универсальная платформа Windows8[c]8[c]8.1[c]101010 v1709TBA
Единство2018.1TBA
телефон с операционной системой Виндоус8.1[c]Нет данных
телефон с операционной системой Виндоус, через Silverlight8[c]Нет данных

Веб-фреймворки

ASP.NET
каркас веб-приложений на стороне сервера, предназначенный для веб-разработки для создания динамических веб-страниц. Это преемник Microsoft Активные серверные страницы (ASP) технология, построенная на Общеязыковая среда выполнения (CLR). Он предоставляет отдельные шаблоны для разработки веб-приложений ASP.NET MVC, ASP.NET Web API и ASP.NET Web Pages (платформа, использующая только Бритва pages), которые объединились в единый MVC 6.[7]
ASP.NET Core
преемник и повторная реализация ASP.NET в качестве модульной веб-платформы вместе с другими платформами, такими как Entity Framework. Фреймворк использует новую платформу компилятора .NET с открытым исходным кодом (кодовое имя Roslyn) и является кроссплатформенным.
Blazor
а бесплатно и с открытым исходным кодом веб-фреймворк что позволяет разработчикам создавать Веб-приложения с помощью C # и HTML. Приложения Blazor Server размещаются на ASP.NET Core сервер в ASP.NET Razor формат, а приложения Blazor WebAssembly Одностраничные приложения которые загружаются в веб-браузер клиента перед запуском.

Числовые библиотеки

Цифровые библиотеки с открытым исходным кодом

AForge.NET
библиотека компьютерного зрения и искусственного интеллекта. Он реализует ряд генетических алгоритмов, алгоритмов нечеткой логики и машинного обучения с несколькими архитектурами искусственных нейронных сетей с соответствующими алгоритмами обучения.
АЛГЛИБ
кроссплатформенная библиотека для численного анализа и обработки данных с открытым исходным кодом. Он состоит из наборов алгоритмов, написанных на разных языках программирования (C ++, C #, FreePascal, Delphi, VBA), и имеет двойное лицензирование - коммерческое и GPL.
Math.NET Числа
стремится предоставить методы и алгоритмы для численных вычислений в науке, технике и повседневном использовании. Охватываемые темы включают специальные функции, линейную алгебру, вероятностные модели, случайные числа, интерполяцию, интегральные преобразования и многое другое. Лицензия MIT / X11.[8]
Мета.числа
это библиотека для расширенных научных вычислений в .NET Framework.

Собственные числовые библиотеки

ILNumerics.Net
коммерческие высокопроизводительные, типизированные классы числовых массивов и функции для общей математики, БПФ и линейной алгебры, нацелены на .NET / моно, 32- и 64-разрядные, скриптоподобный синтаксис в C #, элементы управления графиком 2D и 3D, эффективное управление памятью. Выпущено под GPLv3 или коммерческой лицензией.[8]
Измерительная студия
коммерческий интегрированный набор элементов управления пользовательского интерфейса и библиотеки классов для использования при разработке приложений для тестирования и измерения. Библиотеки классов анализа обеспечивают различную цифровую обработку сигналов, фильтрацию сигналов, генерацию сигналов, обнаружение пиков и другие общие математические функции:NMath: Коммерческие библиотеки числовых компонентов для платформы .NET от Программное обеспечение CenterSpace, включая классы обработки сигналов (БПФ), структуру линейной алгебры (LAPACK & BLAS) и пакет статистики.[8]

3D графика

3D-графика с открытым исходным кодом

Открыть набор инструментов (OpenTK)
низкоуровневая привязка C # для OpenGL, OpenGL ES и OpenAL. Он работает в Windows, Linux, Mac OS X, BSD, Android и iOS. Его можно использовать отдельно или интегрировать в графический интерфейс.
Windows Presentation Foundation (WPF)
графическая подсистема для отрисовки пользовательских интерфейсов, разработанная Microsoft. Он также содержит движок 3D-рендеринга. Кроме того, интерактивный 2D-контент может изначально накладываться на 3D-поверхности.[9][10] Он работает только в операционных системах Windows.

Фирменная 3D графика

Единство
а кросс-платформенный игровой движок разработан Unity Technologies[11] и используется для разработки видеоигры за ПК, консоли, мобильные устройства и веб-сайты.

Обработка изображений

AForge.NET
библиотека компьютерного зрения и искусственного интеллекта.[12][13] В нем реализован ряд алгоритмов и фильтров обработки изображений. Выпускается под LGPLv3 и частично GPLv3 лицензия. Большая часть библиотеки написана на C # и, следовательно, кроссплатформенна.[нужна цитата ] Функциональность AForge.NET расширена за счет Accord.NET библиотека.[14][15]
Accord.NET
еще одна библиотека компьютерного зрения и искусственного интеллекта, доступная под Стандартная общественная лицензия ограниченного применения GNU, версия 2.1. В основном он написан на C #.

Графический пользовательский интерфейс

Gtk #
Обертки C # вокруг базового GTK + и ГНОМ библиотеки, написанные на C и доступен в Linux, MacOS и Windows.[16]
Windows Forms
Фреймворк графического интерфейса Microsoft. Исходная реализация Microsoft работает в операционных системах Windows и обеспечивает доступ к Пользовательский интерфейс Windows Общие элементы управления оберточная бумага то Windows API в управляемый код.[17] Альтернатива Мононуклеоз Реализация является кроссплатформенной и с открытым исходным кодом (работает в Windows, Linux, Unix и OS X). Он в основном совместим с исходной реализацией, но не полностью. Библиотека написана на C #, чтобы избежать зависимости от Windows.[18]
На Microsoft Connect мероприятие 4 декабря 2018 г., Microsoft объявила о выпуске Windows Forms как проекта с открытым исходным кодом на GitHub. Выпускается под Лицензия MIT. Windows Forms стала доступна для проектов, ориентированных на .СЕТЬ рамки. Однако структура по-прежнему доступна только на платформе Windows, и неполная реализация WinForms в Mono остается единственной кроссплатформенной реализацией.[19][20]
Windows Presentation Foundation
графическая подсистема для отрисовки пользовательских интерфейсов в Windows-приложениях от Microsoft. Он основан на DirectX и использует XAML, язык на основе XML, для определения и связывания различных элементов интерфейса.[21] Приложения WPF могут быть развернуты как автономные настольные программы или размещены как встроенный объект на веб-сайте.[нужна цитата ]
На мероприятии Microsoft Connect 4 декабря 2018 г. Microsoft объявила о выпуске WPF как проекта с открытым исходным кодом на GitHub. Выпускается под Лицензия MIT. Windows Presentation Foundation стала доступна для проектов, ориентированных на .СЕТЬ рамки. Однако система по-прежнему доступна только на платформе Windows.[19][20]
Библиотека пользовательского интерфейса Windows (WinUI)
набор элементов управления и функций пользовательского интерфейса Microsoft для Универсальная платформа Windows (UWP). На Microsoft Connect мероприятие 4 декабря 2018 г., Microsoft объявила о выпуске WinUI как проекта с открытым исходным кодом на GitHub. WinUI стал доступен для проектов, ориентированных на .СЕТЬ рамки. Выпускается под Лицензия MIT. Однако библиотека по-прежнему доступна только на платформе Windows.[19][20]
Xamarin.Forms
кроссплатформенный набор инструментов пользовательского интерфейса для разработки собственных пользовательских интерфейсов, которые можно запускать в приложениях macOS, iOS, Android и универсальной платформе Windows. [22][23][16]
Пользовательский интерфейс многоплатформенного приложения .NET (.NET MAUI)
кроссплатформенный набор инструментов пользовательского интерфейса, анонсированный в мае 2020 года, который возник как форк Xamarin.Forms и может работать на Android, iOS, Linux, macOS, Tizen и Windows. .NET MAUI будет работать на .NET 6 и позже.[24][25][26] Исходный код находится под лицензией Лицензия MIT и доступно на GitHub.[27]

Гарантия качества

NUnit
ан Открытый исходный код модульное тестирование рамки для .NET, написанный на C # и, следовательно, кроссплатформенный. Это одна из многих программ в xUnit семья. Лицензировано под Лицензия MIT.

Объектно-реляционное отображение

.NET Framework изначально предоставляет утилиты для объектно-реляционное отображение[28] через ADO.NET, часть стека .NET начиная с .NET 1.0. Вдобавок появился ряд сторонних объектно-реляционных библиотек, особенно в первые годы разработки .NET, чтобы заполнить некоторые кажущиеся пробелы в структуре.[29][30][31]

По мере развития фреймворка были добавлены дополнительные объектно-реляционные инструменты, такие как Entity Framework включены в .NET Framework 3.5. LINQ to SQL был также представлен в .NET 3.5. Это несколько снизило значимость и популярность сторонних объектно-реляционных библиотек.

Entity Framework
открытый исходный код[32] объектно-реляционное отображение (ORM) рамки для ADO.NET. Это было частью .NET Framework, но начиная с версии Entity framework 6 он отделен от .NET framework.
NHibernate
NHibernate - объектно-реляционный преобразователь для платформы .NET.

Примечания

  1. ^ а б c Nuget ошибочно полагает, что .NET Framework 4.6.1 соответствует .NET Standard версий 1.5–2.[5][6]
  2. ^ .NET Framework не планирует поддерживать .NET Standard 2.1.
  3. ^ а б c d е Microsoft удалила Windows 8, Windows 8.1, Windows Phone 8 и Windows Phone 8.1 из его таблиц, поскольку они устарели.[33] .NET Foundation удалила только Windows Phone 8.0 и 8.1.[34]

Рекомендации

  1. ^ Хансельман, Скотт (4 декабря 2018 г.). «Объявление о переходе на открытый исходный код WPF, WinForms и WinUI». Блог Скотта Хансельмана2.
  2. ^ а б Ландер, Ричард (6 мая 2019 г.). «Представляем .NET 5». Блог .NET. Microsoft.
  3. ^ Гензельман, Скотт (2 апреля 2012 г.). «Управление версиями .NET и множественное нацеливание - .NET 4.5 - это обновление на месте до .NET 4.0». Блог Скотта Хансельмана.
  4. ^ "Рекомендации по мульти-таргетингу для инструментов для управляемого кода [Мирча]". Блог команды BCL. Microsoft. 11 апреля 2012 г.
  5. ^ а б «.NET Standard». docs.microsoft.com. Microsoft.
  6. ^ а б "Versions.md". dotnet / стандартное репо. .NET Foundation. 3 апреля 2019.
  7. ^ «Введение в ASP.NET 5 - документация по ASP.NET 0.0.1». asp.net.
  8. ^ а б c «Руководство - Программирование математики и статистики с F #». fsharp.org. Архивировано из оригинал на 2016-04-25. Получено 2016-04-25.
  9. ^ Знакомство с Windows Presentation Foundation
  10. ^ «Что нового в WPF 3.5? Вот пятнадцать интересных функций ...» Получено 2007-10-14.
  11. ^ Риччитьелло, Джон (23 октября 2014 г.). «Джон Риччиелло намеревается определить двигатель роста Unity Technologies (интервью)». VentureBeat (Опрос). Беседовал Дин Такахаши. Получено 18 января, 2015.
  12. ^ С. М. Хасан Ахмед, Тодд С. Александер, Георгиос Анагностопулос (май 2015 г.). «Распознавание статических и динамических жестов рук в реальном времени для взаимодействия человека и компьютера». Университет Майами. Получено 2018-11-26.CS1 maint: использует параметр авторов (связь)
  13. ^ Сурадж Верма, Прашант Пиллай, Йим-Фун Ху (2012). «Разработка системы айтрекинга с использованием фреймворка AForge.NET». Int. J. Технологии и приложения интеллектуальных систем, Vol. 11. Inderscience Enterprises. Архивировано из оригинал на 2018-11-26. Получено 2018-11-26.CS1 maint: использует параметр авторов (связь)
  14. ^ Соуза, Сезар (20 мая 2010 г.). «Accord.NET Framework - расширение AForge.NET». Получено 2018-11-26.
  15. ^ «Модули каркаса». Документация Accord.NET Framework. Архивировано из оригинал на 2018-11-26. Получено 2018-11-26.
  16. ^ а б Лекс Ли. «История о кроссплатформенных платформах пользовательского интерфейса .NET». 3 июля 2017 г.. Архивировано из оригинал на 2018-11-26. Получено 2018-11-26.
  17. ^ «C # 4.0, выпущенная Барт Де Смет. Sams Publishing, 4 января 2011 г., Глава 5».
  18. ^ «Наборы инструментов GUI». Моно сайт. 21 апреля 2016 г. Архивировано с оригинал на 2016-04-02. Получено 2016-04-21.
  19. ^ а б c Мартин, Джефф (4 декабря 2018 г.). «Microsoft Open Sources WPF, WinForms и WinUI». InfoQ. Получено 2018-12-06.
  20. ^ а б c Хансельман, Скотт (4 декабря 2018 г.). «Объявление о переходе WPF, WinForms и WinUI на открытый исходный код». Получено 2018-12-06.
  21. ^ Разработка MSDN.NET: WPF: обзор XAML
  22. ^ «Xamarin.Forms Quickstart». Документы Microsoft. Microsoft. Получено 2018-11-26.
  23. ^ Натан Уильямс. «Xamarin.Forms гораздо более функциональный, чем вы думаете». ArcTouch. Архивировано из оригинал на 2018-11-26. Получено 2018-11-26.
  24. ^ «Знакомство с пользовательским интерфейсом многоплатформенных приложений .NET». Блог .NET. 2020-05-19. Получено 2020-05-28.
  25. ^ "дотнет / мауи". GitHub. Получено 2020-05-28.
  26. ^ «Обновления Xamarin из Microsoft Build 2020». Блог Xamarin. 2020-05-19. Получено 2020-05-28.
  27. ^ GitHub - dotnet / maui: .NET MAUI - это пользовательский интерфейс многоплатформенного приложения .NET, платформа для создания собственных приложений для устройств, охватывающих мобильные устройства, планшеты и настольные компьютеры.
  28. ^ Эмблер, Скотт. "Отображение объектов в реляционные базы данных: подробное отображение O / R". Гибкие данные. Архивировано из оригинал на 2018-11-03. Получено 2018-11-03.
  29. ^ Максимович, Зоран (2 ноября 2017 г.). "Картограф Microsoft.NET O / R: выберите свой!". agile-code.com. Архивировано из оригинал на 2018-11-03. Получено 2018-11-03.
  30. ^ "Список ORM, доступных для .NET". Bala.NET Советы. WordPress. 28 февраля 2014 г.. Получено 2018-11-03.
  31. ^ "Объектно-реляционный инструмент сравнения точек". WikiWikiWeb. 10 апреля 2014 г. Архивировано с оригинал на 2018-11-03. Получено 2018-11-03.
  32. ^ Криль, Пол (20 июля 2012 г.). «Microsoft с открытым исходным кодом Entity Framework». InfoWorld. Получено 24 июля 2012.
  33. ^ https://github.com/dotnet/docs/commit/619885c4b35ec37bc8312c6948e26cf74c17f66e?diff=unified
  34. ^ https://github.com/dotnet/standard/commit/8a5b1ff513c85741c2e9484c8017bfcbfec4ac14?diff=unified

внешняя ссылка

Общий:

Числовые библиотеки:

Данные: