Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Bibliotecas de classes são o conceito de biblioteca compartilhada para .NET. Eles permitem que você transforme funcionalidades úteis em módulos que podem ser usados por vários aplicativos. Eles também podem ser usados como um meio de carregar funcionalidades que não são necessárias ou não são conhecidas na inicialização do aplicativo. As bibliotecas de classes são descritas usando o formato de arquivo do Assembly do .NET.
Há três tipos de bibliotecas de classes que você pode usar:
- As bibliotecas de classes específicas da plataforma têm acesso a todas as APIs em uma determinada plataforma (por exemplo, .NET Framework no Windows), mas só podem ser usadas por aplicativos e bibliotecas direcionados a essa plataforma.
- Bibliotecas de classes portáteis têm acesso a um subconjunto de APIs e podem ser usadas por aplicativos e bibliotecas direcionadas a várias plataformas.
- As bibliotecas de classes do .NET Standard são uma fusão do conceito de biblioteca portátil e específica da plataforma em um único modelo que fornece o melhor de ambos.
Bibliotecas de classes específicas da plataforma
As bibliotecas específicas da plataforma são associadas a uma única plataforma .NET (por exemplo, .NET Framework no Windows) e, portanto, podem assumir dependências significativas em um ambiente de execução conhecido. Esse ambiente expõe um conjunto conhecido de APIs (APIs do sistema operacional e do .NET) e mantém e expõe o estado esperado (por exemplo, registro do Windows).
Os desenvolvedores que criam bibliotecas específicas da plataforma podem explorar totalmente a plataforma subjacente. As bibliotecas só serão executadas na plataforma específica, fazendo verificações de plataforma ou outras formas de código condicional desnecessários (módulo de códigos de fornecimento únicos para várias plataformas).
Bibliotecas específicas da plataforma têm sido o principal tipo de biblioteca de classes para o .NET Framework. Mesmo quando outras implementações do .NET surgiram, as bibliotecas específicas da plataforma permaneceram no tipo de biblioteca dominante.
Bibliotecas de classes portáteis
Há suporte para bibliotecas portáteis em várias implementações do .NET. Eles ainda podem assumir dependências em um ambiente de execução conhecido, no entanto, o ambiente é sintético gerado pela interseção de um conjunto de implementações concretas do .NET. As APIs expostas e as suposições de plataforma são um subconjunto do que estaria disponível para uma biblioteca específica da plataforma.
Você escolhe uma configuração de plataforma ao criar uma biblioteca portátil. A configuração da plataforma é o conjunto de plataformas que você precisa dar suporte (por exemplo, .NET Framework 4.5+, Windows Phone 8.0+). Quanto mais plataformas você escolher dar suporte, menos suposições de plataforma terá que fazer e menor será o denominador comum. Essa característica pode ser confusa no início, já que as pessoas geralmente pensam que "mais é melhor", mas acham que plataformas mais compatíveis resultam em menos APIs disponíveis.
Muitos desenvolvedores de bibliotecas passaram de produzir várias bibliotecas específicas de plataforma a partir de uma única fonte (usando diretivas de compilação condicional) para bibliotecas portáteis. Há várias abordagens para acessar a funcionalidade específica da plataforma dentro de bibliotecas portáteis, sendo "bait-and-switch" a técnica mais amplamente aceita neste momento.
Bibliotecas de classe do .NET Standard
As bibliotecas .NET Standard são uma substituição dos conceitos de bibliotecas portáteis e específicas da plataforma. Elas são específicas da plataforma no sentido de que expõem todas as funcionalidades da plataforma subjacente (sem plataformas sintéticas ou interseções de plataforma). Eles são portáteis no sentido de que trabalham em todas as plataformas de suporte.
O .NET Standard expõe um conjunto de contratos de biblioteca. As implementações do .NET devem dar suporte total ou não a cada contrato. Cada implementação, portanto, dá suporte a um conjunto de contratos .NET Standard. O resultado é que há suporte para cada biblioteca de classes do .NET Standard nas plataformas compatíveis com suas dependências de contrato.
O .NET Standard não expõe toda a funcionalidade do .NET Framework (nem é uma meta), no entanto, as bibliotecas expõem muito mais APIs do que bibliotecas de classes portáteis.
As seguintes implementações dão suporte a bibliotecas do .NET Standard:
- .NET Core
- .NET Framework
- Mono
- UWP (Plataforma Universal do Windows)
Para obter mais informações, consulte .NET Standard.
Bibliotecas de classes do Mono
Há suporte para bibliotecas de classes no Mono, incluindo os três tipos de bibliotecas descritos anteriormente. O Mono geralmente é visto como uma implementação multiplataforma do .NET Framework. Em parte, isso ocorre porque as bibliotecas do .NET Framework específicas da plataforma podem ser executadas no runtime mono sem modificação ou recompilação. Essa característica estava em vigor antes da criação de bibliotecas de classes portáteis, portanto, era uma opção óbvia para habilitar a portabilidade binária entre o .NET Framework e o Mono (embora funcionasse apenas em uma direção).