Lista de bibliotecas e estruturas .NET - List of .NET libraries and frameworks

Este artigo contém uma lista de bibliotecas que podem ser usadas em linguagens .NET . Essas linguagens requerem .NET Framework , Mono ou .NET , que fornecem uma base para o desenvolvimento de software , independência de plataforma, interoperabilidade de linguagem e bibliotecas de estrutura extensas. Bibliotecas padrão (incluindo a Biblioteca de classes base ) não estão incluídas neste artigo.

Preâmbulo

Os aplicativos criados com o .NET Framework ou .NET são executados em um ambiente de software conhecido como Common Language Runtime (CLR), uma máquina virtual de aplicativo que fornece serviços como segurança, gerenciamento de memória e tratamento de exceções . A estrutura inclui uma grande biblioteca de classes chamada Framework Class Library (FCL).

Graças à máquina virtual de hospedagem, diferentes linguagens compatíveis com .NET CLI podem operar no mesmo tipo de estruturas de dados. Portanto, todas as linguagens compatíveis com CLI podem usar FCL e outras bibliotecas .NET que são escritas em uma das linguagens compatíveis com CLI. Quando o código-fonte de uma linguagem compatível com CLI é compilado, o compilador gera código independente de plataforma na Common Intermediate Language (CIL, também conhecido como bytecode ), que é armazenado em assemblies CLI . Quando um aplicativo .NET é executado, o compilador just-in-time (JIT) transforma o código CIL em código de máquina específico da plataforma. Para melhorar o desempenho, o .NET Framework também vem com o Native Image Generator (NGEN), que executa a compilação antecipada para código de máquina.

Essa arquitetura fornece interoperabilidade de linguagem . Cada linguagem pode usar código escrito em outras linguagens. As chamadas de uma linguagem para outra são exatamente as mesmas que seriam em uma única linguagem de programação. Se uma biblioteca for escrita em uma linguagem CLI, ela pode ser usada em outras linguagens CLI. Além disso, aplicativos que consistem apenas em assemblies .NET puros podem ser transferidos para qualquer plataforma que contenha uma implementação de CLI e executados nessa plataforma. Por exemplo, os aplicativos escritos em .NET podem ser executados no Windows, macOS e em várias versões do Linux .

Aplicativos .NET ou suas bibliotecas, no entanto, podem depender de recursos da plataforma nativa, por exemplo, COM . Assim, a independência da plataforma de aplicativos .NET depende da capacidade de transferir as bibliotecas nativas necessárias para as plataformas de destino. Em 2019, as partes do Windows Forms e Windows Presentation Foundation do .NET Framework tornaram-se open source.

Implementações .NET

Existem quatro implementações .NET primárias que são ativamente desenvolvidas e mantidas:

  • .NET Framework : a implementação original do .NET que existe desde 2002. Embora ainda não tenha sido descontinuada, a Microsoft não planeja lançar sua próxima versão principal, a 5.0.
  • Mono : uma implementação de plataforma cruzada do .NET Framework por Ximian , introduzida em 2004. É gratuito e de código aberto. Agora é desenvolvido pela Xamarin , uma subsidiária da Microsoft.
  • Plataforma Universal do Windows (UWP): Uma implementação do .NET usada para construir aplicativos UWP . Ele foi projetado para unificar o desenvolvimento para diferentes tipos de dispositivos direcionados, incluindo PCs, tablets, phablets, telefones e Xbox .
  • .NET : uma reimplementação de plataforma cruzada do .NET Framework, introduzida em 2016 e inicialmente chamada de .NET Core . É gratuito e de código aberto . O .NET substituiu o .NET Framework com o lançamento do .NET 5.

Cada implementação do .NET inclui os seguintes componentes:

  • Um ou mais ambientes de tempo de execução, por exemplo, CLR para .NET Framework e CoreCLR para .NET
  • Uma biblioteca de aulas

O .NET Standard é um conjunto de APIs comuns que são implementadas na Base Class Library de qualquer implementação .NET. A biblioteca de classes de cada implementação deve implementar o .NET Standard, mas também pode implementar APIs adicionais. Tradicionalmente, os aplicativos .NET são direcionados a uma determinada versão de uma implementação .NET, por exemplo, .NET Framework 4.6. Começando com o .NET Standard, um aplicativo pode ter como alvo uma versão do .NET Standard e, em seguida, pode ser usado (sem recompilar) por qualquer implementação que ofereça suporte a esse nível do padrão. Isso permite a portabilidade em diferentes implementações .NET.

A tabela a seguir lista as implementações .NET que aderem ao .NET Standard e o número da versão em que cada implementação se tornou compatível com uma determinada versão do .NET Standard. Por exemplo, de acordo com esta tabela, o .NET Core 3.0 foi a primeira versão do .NET Core que aderiu ao .NET Standard 2.1. Isso significa que qualquer versão do .NET Core maior que 3.0 (por exemplo, .NET Core 3.1) também adere ao .NET Standard 2.1.

Implementação Versões do .NET Standard
1.0 1,1 1,2 1,3 1,4 1,5 1,6 2.0 2,1
.INTERNET 1.0 2.0 3,0
.NET Framework 4,5 4,5 4.5.1 4,6 4.6.1 4.7.2 4.7.2 4.7.2 N / D
Mono 4,6 5,4 6,2
Xamarin.iOS 10,0 10,14 12,12
Xamarin.Mac 3,0 3,8 5,12
Xamarin.Android 7,0 8,0 9,3
Plataforma Universal do Windows 8 8 8,1 10 10 10 v1709 TBA
Unidade 2018,1 TBA
telefone do Windows 8,1 N / D
Windows Phone , via Silverlight 8 N / D

Frameworks da web

ASP.NET
uma estrutura de aplicativo da web do lado do servidor projetada para desenvolvimento da web para produzir páginas da web dinâmicas. É o sucessor da tecnologia Active Server Pages (ASP) da Microsoft baseada no Common Language Runtime (CLR) . Ele fornece padrões separados para o desenvolvimento de aplicativos da web ASP.NET MVC, ASP.NET Web API e ASP.NET Web Pages (uma plataforma que usa apenas páginas do Razor ), que se fundiram em um MVC 6 unificado.
ASP.NET Core
um sucessor e reimplementação do ASP.NET como um framework web modular, junto com outros frameworks como o Entity Framework. A estrutura usa a nova plataforma de compilador .NET de código aberto (codinome "Roslyn") e é uma plataforma cruzada.
Blazor
uma estrutura da Web gratuita e de código aberto que permite aos desenvolvedores criar aplicativos da Web usando C # e HTML . Os aplicativos Blazor Server são hospedados em um servidor ASP.NET Core no formato ASP.NET Razor , enquanto os aplicativos Blazor WebAssembly são aplicativos de página única que são baixados para o navegador do cliente antes de serem executados.

Bibliotecas numéricas

Bibliotecas numéricas de código aberto

AForge.NET
uma biblioteca de visão computacional e inteligência artificial. Ele implementa uma série de algoritmos genéticos, de lógica fuzzy e de aprendizado de máquina com várias arquiteturas de redes neurais artificiais com algoritmos de treinamento correspondentes.
ALGLIB
uma análise numérica de código aberto de plataforma cruzada e biblioteca de processamento de dados. Consiste em coleções de algoritmos escritos em diferentes linguagens de programação (C ++, C #, FreePascal, Delphi, VBA) e tem licenciamento duplo - comercial e GPL .
Math.NET Numerics
visa fornecer métodos e algoritmos para cálculos numéricos em ciência, engenharia e uso diário. Os tópicos abordados incluem funções especiais, álgebra linear, modelos de probabilidade, números aleatórios, interpolação, transformações integrais e muito mais. Licença MIT / X11.
Meta.Numerics
é uma biblioteca para computação científica avançada no .NET Framework.

Bibliotecas numéricas proprietárias

ILNumerics.Net
um comercial de alto desempenho, classes e funções de array numérico seguras para matemática geral, FFT e álgebra linear, visa .NET / mono, 32 e 64 bits, sintaxe semelhante a script em C #, controles de plotagem 2D e 3D, gerenciamento de memória eficiente. Distribuído sob GPLv3 ou licença comercial.
Measurement Studio
um conjunto comercial integrado de controles de IU e bibliotecas de classes para uso no desenvolvimento de aplicativos de teste e medição. As bibliotecas de classe de análise fornecem vários processamento de sinal digital, filtragem de sinal, geração de sinal, detecção de pico e outras funcionalidades matemáticas gerais.
NMath
Bibliotecas de componentes numéricos comerciais para a plataforma .NET da CenterSpace Software , incluindo classes de processamento de sinais (FFT), uma estrutura de álgebra linear (LAPACK e BLAS) e um pacote de estatísticas.

Gráficos 3D

Gráficos 3D de código aberto

Open Toolkit (OpenTK)
uma ligação C # de baixo nível para OpenGL , OpenGL ES e OpenAL . Ele roda em Windows, Linux, Mac OS X, BSD, Android e iOS. Ele pode ser usado de forma independente ou integrado a uma GUI.
Windows Presentation Foundation (WPF)
um subsistema gráfico para renderizar interfaces de usuário, desenvolvido pela Microsoft. Ele também contém um mecanismo de renderização 3D. Além disso, o conteúdo 2D interativo pode ser sobreposto em superfícies 3D nativamente. Ele só funciona em sistemas operacionais Windows.

Gráficos 3D proprietários

Unidade
um mecanismo de jogo multiplataforma desenvolvido pela Unity Technologies e usado para desenvolver videogames para PC , consoles , dispositivos móveis e sites .

Processamento de imagem

AForge.NET
uma biblioteca de visão computacional e inteligência artificial. Ele implementa vários algoritmos e filtros de processamento de imagem. É lançado sob a licença LGPLv3 e parcialmente GPLv3 . A maioria da biblioteca é escrita em C # e, portanto, multiplataforma. A funcionalidade do AForge.NET foi estendida pela biblioteca Accord.NET .
Accord.NET
outra biblioteca de visão computacional e inteligência artificial, disponível sob a Gnu Lesser General Public License , versão 2.1. É principalmente escrito em C #.

Interface gráfica do usuário

Gtk #
Wrappers C # em torno das bibliotecas GTK + e GNOME subjacentes , escritas em C e disponíveis no Linux, MacOS e Windows.
Formulários do Windows (WinForms)
Estrutura da GUI da Microsoft. A implementação original da Microsoft é executada em sistemas operacionais Windows e fornece acesso aos controles comuns da interface do usuário do Windows , envolvendo a API do Windows em código gerenciado . A implementação alternativa do Mono é open source e multiplataforma (roda em Windows, Linux, Unix e OS X). É principalmente compatível com a implementação original, mas não completamente. A biblioteca é escrita em C # para evitar a dependência do Windows.
No evento Microsoft Connect em 4 de dezembro de 2018, a Microsoft anunciou o lançamento do Windows Forms como um projeto de código aberto no GitHub . É lançado sob a licença do MIT . O Windows Forms está disponível para projetos voltados para a estrutura .NET . No entanto, a estrutura ainda está disponível apenas na plataforma Windows e a implementação incompleta Mono de WinForms continua sendo a única implementação multiplataforma.
Windows Presentation Foundation (WPF)
um subsistema gráfico para renderizar interfaces de usuário em aplicativos baseados no Windows da Microsoft. É baseado em DirectX e emprega XAML, uma linguagem baseada em XML, para definir e vincular vários elementos de interface. Os aplicativos WPF podem ser implantados como programas de desktop autônomos ou hospedados como um objeto incorporado em um site.
No evento Microsoft Connect em 4 de dezembro de 2018, a Microsoft anunciou o lançamento do WPF como um projeto de código aberto no GitHub . É lançado sob a licença do MIT . O Windows Presentation Foundation está disponível para projetos voltados para a estrutura .NET . No entanto, o sistema ainda está disponível apenas na plataforma Windows.
Biblioteca de IU do Windows (WinUI)
um conjunto de controles e recursos da IU da Microsoft para a Plataforma Universal do Windows (UWP). No evento Microsoft Connect em 4 de dezembro de 2018, a Microsoft anunciou o lançamento do WinUI como projeto de código aberto no GitHub . WinUI tornou-se disponível para projetos que visam a estrutura .NET . É lançado sob a licença do MIT . No entanto, a biblioteca ainda está disponível apenas na plataforma Windows.
Xamarin.Forms
um kit de ferramentas de interface do usuário de plataforma cruzada para desenvolvimento de interfaces de usuário nativas que podem ser executadas em macOS, iOS, Android e aplicativos da plataforma universal do Windows.
Interface do usuário do aplicativo multiplataforma .NET (.NET MAUI)
um kit de ferramentas de interface de usuário de plataforma cruzada anunciado em maio de 2020 que se originou como um fork do Xamarin.Forms e que pode ser executado em Android, iOS, Linux, macOS, Tizen e Windows. O .NET MAUI será executado no .NET 6 e posterior. O código-fonte está licenciado pela Licença MIT e disponível no GitHub .

Garantia da Qualidade

NUnit
uma estrutura de teste de unidade de código aberto para .NET, escrita em C # e, portanto, multiplataforma. É um dos muitos programas da família xUnit . Licenciado pela licença MIT .

Mapeamento objeto-relacional

O .NET Framework fornece nativamente utilitários para mapeamento objeto-relacional por meio do ADO.NET , uma parte da pilha do .NET desde o .NET 1.0. Além disso, várias bibliotecas de objetos relacionais de terceiros surgiram, especialmente nos primeiros anos do desenvolvimento do .NET, a fim de preencher algumas lacunas percebidas da estrutura.

Conforme a estrutura evoluiu, ferramentas relacionais de objeto adicionais foram adicionadas, como o Entity Framework incluído no .NET Framework 3.5 . LINQ to SQL também foi introduzido com .NET 3.5. Isso de alguma forma reduziu a importância e a popularidade das bibliotecas relacionais de objetos de terceiros.

Estrutura de entidade
uma estrutura de mapeamento objeto-relacional (ORM) de código aberto para ADO.NET . Fazia parte do .NET Framework , mas desde a versão 6 do Entity Framework é separado do .NET Framework.
NHibernate
NHibernate é um mapeador relacional de objeto para a plataforma .NET.

Notas

Referências

links externos

Em geral:

Bibliotecas numéricas:

Dados: