Articulo de referencia

Lista de bibliotecas y marcos de trabajo .NET

Este artículo contiene una lista de bibliotecas que se pueden utilizar en lenguajes .NET . Estos lenguajes requieren .NET Framework , Mono o .NET , que proporcionan una base par...

Este artículo contiene una lista de bibliotecas que se pueden utilizar en lenguajes .NET . Estos lenguajes requieren .NET Framework , Mono o .NET , que proporcionan una base para el desarrollo de software , independencia de la plataforma, interoperabilidad de lenguajes y bibliotecas de marcos de trabajo extensas. Las bibliotecas estándar (incluida la biblioteca de clases base ) no se incluyen en este artículo.

Introducción

Las aplicaciones creadas con .NET Framework o .NET se ejecutan en un entorno de software conocido como Common Language Runtime (CLR), [1] una máquina virtual de aplicaciones que proporciona servicios como seguridad, administración de memoria y manejo de excepciones . El marco incluye una gran biblioteca de clases llamada Framework Class Library (FCL).

Gracias a la máquina virtual de alojamiento, los distintos lenguajes que cumplen con la infraestructura de lenguaje común (CLI) de .NET pueden operar en el mismo tipo de estructuras de datos. Por lo tanto, estos lenguajes pueden utilizar la FCL y otras bibliotecas .NET que también estén escritas en uno de los lenguajes compatibles con CLI. Cuando se compila el código fuente de dichos lenguajes, el compilador genera código independiente de la plataforma en lenguaje intermedio común (CIL, también conocido como bytecode ), que se almacena en ensamblados CLI . Cuando se ejecuta una aplicación .NET, el compilador Just-In-Time (JIT) convierte el código CIL en código de máquina específico de la plataforma. Para mejorar el rendimiento, .NET Framework también incluye el generador de imágenes nativo (NGEN), que realiza una compilación anticipada en código de máquina.

Esta arquitectura proporciona interoperabilidad entre lenguajes . Cada lenguaje puede usar código escrito en otros lenguajes. Las llamadas de un lenguaje a otro son exactamente las mismas que las que se harían dentro de un único lenguaje de programación. Si una biblioteca está escrita en un lenguaje CLI, se puede usar en otros lenguajes CLI. Además, las aplicaciones que consisten únicamente en ensamblajes .NET puros se pueden transferir a cualquier plataforma que contenga una implementación de CLI y ejecutarse en esa plataforma. Por ejemplo, las aplicaciones escritas con .NET pueden ejecutarse en Windows, macOS y varias versiones de Linux .

Sin embargo, las aplicaciones .NET o sus bibliotecas pueden depender de características de la plataforma nativa, por ejemplo, COM . Como tal, la independencia de la plataforma de las aplicaciones .NET depende de la capacidad de transferir las bibliotecas nativas necesarias a las plataformas de destino. En 2019, las partes Windows Forms y Windows Presentation Foundation de .NET Framework se hicieron de código abierto. [2]

Implementaciones .NET

Hay cuatro implementaciones principales de .NET que se desarrollan y mantienen activamente:

Cada implementación de .NET incluye los siguientes componentes:

El estándar .NET es un conjunto de API comunes que se implementan en la biblioteca de clases base de cualquier implementación de .NET. La biblioteca de clases de cada implementación debe implementar el estándar .NET, pero también puede implementar API adicionales. Tradicionalmente, las aplicaciones .NET apuntaban a una determinada versión de una implementación .NET, por ejemplo, .NET Framework 4.6. [5] [6] A partir del estándar .NET, una aplicación puede apuntar a una versión del estándar .NET y luego podría usarse (sin volver a compilar) por cualquier implementación que admita ese nivel del estándar. Esto permite la portabilidad entre diferentes implementaciones .NET.

En la siguiente tabla se enumeran las implementaciones de .NET que cumplen con el estándar .NET y el número de versión en el que cada implementación se volvió compatible con una versión determinada de .NET Standard. Por ejemplo, según esta tabla, .NET Core 3.0 fue la primera versión de .NET Core que cumplió con el estándar .NET 2.1. Esto significa que cualquier versión de .NET Core mayor que 3.0 (por ejemplo, .NET Core 3.1) también cumple con el estándar .NET 2.1.

Marcos web

ASP.NET, que se lanzó por primera vez en 2002, es un marco de aplicación web de código abierto del lado del servidor diseñado para el desarrollo web con el fin de producir páginas web dinámicas. Es el sucesor de la tecnología Active Server Pages (ASP) de Microsoft, basada en Common Language Runtime (CLR).

ASP.NET fue completamente reescrito en 2016 como un framework web modular, junto con otros frameworks como Entity Framework . El framework reescrito utiliza la nueva plataforma de compilación de código abierto .NET (también conocida por su nombre en código "Roslyn") y es multiplataforma. Los modelos de programación ASP.NET MVC , ASP.NET Web API y ASP.NET Web Pages (un modelo que utiliza solo páginas Razor ) se fusionaron en un MVC 6 unificado . [9]

Blazor es un marco web gratuito y de código abierto que permite a los desarrolladores crear aplicaciones web utilizando C# y HTML . Las aplicaciones de Blazor Server se alojan en un servidor ASP.NET Core en formato ASP.NET Razor , mientras que las aplicaciones Blazor WebAssembly son aplicaciones de una sola página que se descargan en el navegador web del cliente antes de ejecutarse.

Bibliotecas numéricas

Bibliotecas numéricas de código abierto

Se trata de una biblioteca de inteligencia artificial y visión artificial que implementa una serie de algoritmos genéticos, de lógica difusa y de aprendizaje automático con varias arquitecturas de redes neuronales artificiales con sus correspondientes algoritmos de entrenamiento.

Se trata de una biblioteca de procesamiento de datos y análisis numérico de código abierto y multiplataforma. Consta de colecciones de algoritmos escritos en diferentes lenguajes de programación (C++, C#, FreePascal, Delphi, VBA) y tiene licencia dual: comercial y GPL .

Esta biblioteca tiene como objetivo proporcionar métodos y algoritmos para cálculos numéricos en ciencia, ingeniería y uso cotidiano. Los temas tratados incluyen funciones especiales, álgebra lineal, modelos de probabilidad, números aleatorios, interpolación, transformaciones integrales y más. Licencia MIT/X11. [10]

Esta es una biblioteca para computación científica avanzada en .NET Framework.

Bibliotecas numéricas propietarias

Se trata de un conjunto de clases y funciones de matriz numérica de alto rendimiento y con seguridad de tipos para matemáticas generales, FFT y álgebra lineal. La biblioteca, desarrollada para .NET/Mono, tiene como objetivo proporcionar una sintaxis similar a la de un script de 32 y 64 bits en C#, controles de gráficos 2D y 3D y una gestión eficiente de la memoria. Se publica bajo licencia GPLv3 o comercial. [10]

Se trata de un conjunto integrado de controles de interfaz de usuario y bibliotecas de clases para su uso en el desarrollo de aplicaciones de prueba y medición. Las bibliotecas de clases de análisis proporcionan diversas funciones de procesamiento de señales digitales, filtrado de señales, generación de señales, detección de picos y otras funciones matemáticas generales.

Se trata de una biblioteca de componentes numéricos para la plataforma .NET desarrollada por CenterSpace Software . Incluye clases de procesamiento de señales (FFT), un marco de álgebra lineal (LAPACK y BLAS) y un paquete de estadísticas. [10]

Gráficos 3D

Gráficos 3D de código abierto

Se trata de un enlace de C# de bajo nivel para OpenGL , OpenGL ES y OpenAL . Se ejecuta en Windows, Linux, Mac OS X, BSD, Android e iOS. Se puede utilizar de forma independiente o integrado en una interfaz gráfica de usuario.

Se trata de un subsistema gráfico para la representación de interfaces de usuario, desarrollado por Microsoft. También contiene un motor de representación 3D. Además, se puede superponer contenido 2D interactivo sobre superficies 3D de forma nativa. [11] [12] Solo funciona en sistemas operativos Windows.

Gráficos 3D propietarios

Se trata de un motor de juegos multiplataforma desarrollado por Unity Technologies [13] y utilizado para desarrollar videojuegos para PC , consolas , dispositivos móviles y sitios web .

Procesamiento de imágenes

Se trata de una biblioteca de inteligencia artificial y visión artificial. [14] [15] Implementa una serie de algoritmos y filtros de procesamiento de imágenes. Se publica bajo la licencia LGPLv3 y parcialmente GPLv3 . La mayor parte de la biblioteca está escrita en C# y, por lo tanto, es multiplataforma. [ cita requerida ] La funcionalidad de AForge.NET se ha ampliado con la biblioteca Accord.NET . [16] [17]

Esta es otra biblioteca de inteligencia artificial y visión artificial, disponible bajo la Licencia Pública General Reducida de GNU , versión 2.1. Está escrita principalmente en C#.

Interfaz gráfica de usuario

Se trata de envoltorios de C# alrededor de las bibliotecas GTK+ y GNOME subyacentes , escritos en C y disponibles en Linux, MacOS y Windows. [18]

Formularios de Windows(Formularios de Windows)

Este es un marco de GUI de Microsoft. La implementación original de Microsoft se ejecuta en sistemas operativos Windows y proporciona acceso a los controles comunes de la interfaz de usuario de Windows al envolver la API de Windows en código administrado . [19] La implementación Mono alternativa es de código abierto y multiplataforma (se ejecuta en Windows, Linux, Unix y OS X). Es principalmente compatible con la implementación original, pero no completamente. La biblioteca está escrita en C# para evitar la dependencia de Windows. [20] En el evento Microsoft Connect del 4 de diciembre de 2018, Microsoft anunció el lanzamiento de Windows Forms como proyecto de código abierto en GitHub. [21] Se publica bajo la licencia MIT . Windows Forms se ha vuelto disponible para proyectos que apuntan al marco .NET . Sin embargo, el marco todavía está disponible solo en la plataforma Windows y la implementación incompleta de Mono de WinForms sigue siendo la única implementación multiplataforma. [22] [23]

Se trata de un subsistema gráfico para la representación de interfaces de usuario en aplicaciones basadas en Windows de Microsoft. Se basa en DirectX y emplea XAML, un lenguaje basado en XML, para definir y vincular varios elementos de interfaz. [24] Las aplicaciones WPF se pueden implementar como programas de escritorio independientes o alojarse como un objeto integrado en un sitio web. [ cita requerida ] En el evento Microsoft Connect del 4 de diciembre de 2018, Microsoft anunció el lanzamiento de WPF como proyecto de código abierto en GitHub. [21] Se publica bajo la licencia MIT . Windows Presentation Foundation se ha vuelto disponible para proyectos que apuntan al marco .NET . Sin embargo, el sistema todavía está disponible solo en la plataforma Windows. [22] [23]

Biblioteca de interfaz de usuario de Windows(Interfaz de usuario de Windows)

Se trata de un conjunto de controles y características de la interfaz de usuario de Microsoft para la Plataforma universal de Windows (UWP). En el evento Microsoft Connect del 4 de diciembre de 2018, Microsoft anunció el lanzamiento de WinUI como proyecto de código abierto en GitHub. [21] WinUI se ha vuelto disponible para proyectos que apuntan al marco .NET . Se publica bajo la licencia MIT . Sin embargo, la biblioteca todavía está disponible solo en la plataforma Windows. [22] [23]

Se trata de un kit de herramientas de interfaz de usuario multiplataforma para el desarrollo de interfaces de usuario nativas que se pueden ejecutar en aplicaciones de macOS, iOS, Android y Universal Windows Platform. [25] [26] [18]

Este es un kit de herramientas de interfaz de usuario multiplataforma anunciado en mayo de 2020 que se originó como una bifurcación de Xamarin.Forms y que puede ejecutarse en Android, iOS, Linux, macOS, Tizen y Windows. .NET MAUI se ejecutará en .NET 6 y versiones posteriores. [27] [28] [29] El código fuente tiene licencia MIT y está disponible en GitHub . [28]

Se trata de un conjunto de herramientas de interfaz de usuario multiplataforma de código abierto para el desarrollo de interfaces de usuario que se pueden ejecutar en Windows, Linux, macOS, iOS, Android y WebAssembly. El código fuente está licenciado bajo la licencia MIT y está disponible en GitHub [30].

Seguro de calidad

Se trata de un marco de pruebas unitarias de código abierto para .NET, escrito en C# y, por lo tanto, multiplataforma. Es uno de los muchos programas de la familia xUnit . Licenciado bajo la licencia MIT .

Mapeo objeto-relacional

.NET Framework proporciona de forma nativa utilidades para el mapeo objeto-relacional [31] a través de ADO.NET , una parte de la pila .NET desde la versión 1.0. En los primeros años del desarrollo de .NET, surgieron varias bibliotecas objeto-relacionales de terceros para llenar algunos vacíos percibidos en el marco. [32] [33] [34] A medida que el marco evolucionó, se agregaron herramientas objeto-relacionales adicionales, como Entity Framework y LINQ to SQL , ambos introducidos en .NET Framework 3.5 . Estas herramientas redujeron la importancia y la popularidad de las bibliotecas objeto-relacionales de terceros.

Se trata de un marco de mapeo relacional de objetos (ORM) de código abierto [35] para ADO.NET . Formaba parte de .NET Framework , pero desde la versión 6 de Entity Framework está separado de .NET Framework.

NHibernate es un mapeador objeto-relacional para la plataforma .NET.

Notas

  1. ^ abc Nuget cree erróneamente que .NET Framework 4.6.1 se adhiere a .NET Standard versión 1.5 a 2.0. [7] [8]
  2. ^ No hay planes para que .NET Framework admita .NET Standard 2.1
  3. ^ abcde Microsoft ha eliminado Windows 8 , Windows 8.1 , Windows Phone 8 y Windows Phone 8.1 de sus tablas, ya que están obsoletos. [36] .NET Foundation solo ha eliminado Windows Phone 8.0 y 8.1. [37]

Referencias

  1. ^ gewarren. "Descripción general de Common Language Runtime (CLR) - .NET". docs.microsoft.com . Consultado el 7 de agosto de 2022 .
  2. ^ Hanselman, Scott (4 de diciembre de 2018). "Anunciamos que WPF, WinForms y WinUI pasarán a ser de código abierto". Blog de Scott Hanselman2 .
  3. ^ Lander, Richard (6 de mayo de 2019). "Presentación de .NET 5". Blog de .NET . Microsoft .
  4. ^ "Anuncio de .NET 5.0". Blog de .NET . 2020-11-10 . Consultado el 2021-03-14 .
  5. ^ Hanselman, Scott (2 de abril de 2012). "Control de versiones y multitargeting de .NET: .NET 4.5 es una actualización local de .NET 4.0". Blog de Scott Hanselman .
  6. ^ "Directrices de segmentación múltiple para herramientas de código administrado [Mircea]". Blog del equipo BCL . Microsoft . 11 de abril de 2012.
  7. ^ ab ".NET Standard". docs.microsoft.com . Microsoft .
  8. ^ ab "Versions.md". repositorio dotnet/standard . NET Foundation. 3 de abril de 2019.
  9. ^ "Introducción a ASP.NET 5 — Documentación de ASP.NET 0.0.1". asp.net .
  10. ^ abc "Guía - Programación matemática y estadística con F#". fsharp.org. Archivado desde el original el 25 de abril de 2016. Consultado el 25 de abril de 2016 .
  11. ^ Presentación de Windows Presentation Foundation
  12. ^ "¿Qué novedades trae WPF 3.5? Aquí tienes quince características interesantes..." Consultado el 14 de octubre de 2007 .
  13. ^ Riccitiello, John (23 de octubre de 2014). "John Riccitiello se propone identificar el motor de crecimiento de Unity Technologies (entrevista)". VentureBeat (Entrevista). Entrevista realizada por Dean Takahashi . Consultado el 18 de enero de 2015 .
  14. ^ SM Hassan Ahmed; Todd C Alexander; Georgios Anagnostopoulos (mayo de 2015). "Reconocimiento de gestos manuales estáticos y dinámicos en tiempo real para la interacción entre humanos y computadoras". Universidad de Miami . Consultado el 26 de noviembre de 2018 .
  15. ^ Suraj Verma; Prashant Pillai; Yim-Fun Hu (2012). "Desarrollo de un sistema de control de seguimiento ocular utilizando el marco AForge.NET". Revista internacional de tecnologías y aplicaciones de sistemas inteligentes . 11 (3/4). Inderscience Enterprises: 286. doi :10.1504/IJISTA.2012.052485. Archivado desde el original el 26 de noviembre de 2018 . Consultado el 26 de noviembre de 2018 .
  16. ^ Souza, César (20 de mayo de 2010). «Accord.NET Framework: una extensión de AForge.NET». Archivado desde el original el 16 de noviembre de 2018. Consultado el 26 de noviembre de 2018 .
  17. ^ "Módulos de Framework". Documentación de Accord.NET Framework . Archivado desde el original el 2018-11-26 . Consultado el 2018-11-26 .
  18. ^ ab Lex Li (3 de julio de 2017). "La historia de los frameworks de interfaz de usuario multiplataforma de .NET". 3 de julio de 2017. Archivado desde el original el 10 de enero de 2019. Consultado el 26 de noviembre de 2018 .{{cite web}}: CS1 maint: bot: estado de URL original desconocido ( enlace )
  19. ^ "C# 4.0 Unleashed por Bart De Smet. Sams Publishing, 4 de enero de 2011, capítulo 5".
  20. ^ "GUI Toolkits". Sitio web de Mono . 21 de abril de 2016. Archivado desde el original el 2016-04-02 . Consultado el 2016-04-21 .
  21. ^ abc Gallo, Kevin (4 de diciembre de 2018). "Anuncio del código abierto de WPF, Windows Forms y WinUI en Microsoft Connect(); 2018". Blog para desarrolladores de Windows. Blog oficial de Microsoft . Consultado el 9 de octubre de 2021 .
  22. ^ abc Martin, Jeff (4 de diciembre de 2018). "Microsoft hace de código abierto WPF, WinForms y WinUI". InfoQ . Consultado el 6 de diciembre de 2018 .
  23. ^ abc Hanselman, Scott (4 de diciembre de 2018). "Anunciamos que WPF, WinForms y WinUI pasarán a ser de código abierto" . Consultado el 6 de diciembre de 2018 .
  24. ^ Desarrollo de MSDN.NET: WPF: descripción general de XAML
  25. ^ "Guía de inicio rápido de Xamarin.Forms". Microsoft Docs . Microsoft . Consultado el 26 de noviembre de 2018 .
  26. ^ Nathan Williams. "Xamarin.Forms es mucho más capaz de lo que crees". ArcTouch. Archivado desde el original el 2018-11-26 . Consultado el 2018-11-26 .
  27. ^ "Presentación de la interfaz de usuario de aplicaciones multiplataforma .NET". Blog de .NET . 19 de mayo de 2020 . Consultado el 28 de mayo de 2020 .
  28. ^ ab "dotnet/maui". GitHub . Consultado el 28 de mayo de 2020 .
  29. ^ "Actualizaciones de Xamarin de Microsoft Build 2020". Blog de Xamarin . 2020-05-19 . Consultado el 2020-05-28 .
  30. ^ Avalonia en GitHub
  31. ^ Ambler, Scott. "Mapeo de objetos a bases de datos relacionales: mapeo O/R en detalle". Agile Data. Archivado desde el original el 2018-11-03 . Consultado el 2018-11-03 .
  32. ^ Maksimovic, Zoran (2 de noviembre de 2017). "Microsoft.NET O/R mapper: choose your own!". agile-code.com. Archivado desde el original el 2018-11-03 . Consultado el 2018-11-03 .
  33. ^ "Lista de ORM disponibles para .NET". Bala.NET Tips . WordPress. 28 de febrero de 2014 . Consultado el 3 de noviembre de 2018 .
  34. ^ "Object Relational Tool Comparison Dot Net". WikiWikiWeb. 10 de abril de 2014. Archivado desde el original el 2018-11-03 . Consultado el 2018-11-03 .
  35. ^ Krill, Paul (20 de julio de 2012). "Microsoft publica código abierto de Entity Framework". InfoWorld . Consultado el 24 de julio de 2012 .
  36. ^ "Actualizar tabla .NET Standard (#10697) · dotnet/Docs@619885c". GitHub .
  37. ^ "Eliminar plataformas obsoletas · dotnet/Standard@8a5b1ff". GitHub .

General:

  • Proyectos de desarrollo de código abierto .NET, una lista mantenida en GitHub

Bibliotecas numéricas:

  • El Foro de Matemáticas - Bibliotecas de Matemáticas, una extensa lista de bibliotecas matemáticas con breves descripciones
  • Guía - Programación matemática y estadística con F# Archivado el 25 de abril de 2016 en Wayback Machine

Datos:

  • Mapeo relacional de objetos
  • Comparación de herramientas de mapeo relacional de objetos para .NET Framework
Obtenido de "https://es.wikipedia.org/w/index.php?title=Lista_de_bibliotecas_y_marcos_de_.NET&oldid=1239981595#.NET_Standard"