0

.net

A
Alfredo Neto

Componentes de arquitetura do .NET

  • 05/10/2020
  • 2 minutos para o fim da leitura

Um aplicativo .NET é desenvolvido para e é executado em uma ou mais implementações do .NET. As implementações do .NET incluem o .NET Framework, o .NET 5 (e o .NET Core) e o mono. Há uma especificação de API comum a várias implementações do .NET que é chamada .NET Standard. Este artigo fornece uma breve introdução a cada um desses conceitos.

.NET Standard

.NET Standard é um conjunto de APIs que são implementadas pela biblioteca de classes base de uma implementação do .NET. De maneira mais formal, é uma especificação das APIs do .NET que compõem um conjunto uniforme de contratos nos quais você compila seu código. Esses contratos são implementados em várias implementações do .NET.

.NET Standard é uma estrutura de destino. Se seu código tiver como alvo uma versão do .NET Standard, ele poderá ser executado em qualquer implementação do .NET que dê suporte a essa versão do .NET Standard.

.NET Standard foi criado para permitir a portabilidade entre diferentes implementações do .NET, mas agora o .NET 5 oferece uma maneira melhor de compartilhar código em várias plataformas e cargas de trabalho. Para obter mais informações, consulte .NET 5 e .net Standard.

Implementações do .NET

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

  • Um ou mais runtimes. Exemplos: .NET Framework CLR, .NET 5 CLR.
  • Uma biblioteca de classes. Exemplos: .NET Framework biblioteca de classes base, biblioteca de classes base do .NET 5.
  • Opcionalmente, uma ou mais estruturas de aplicativo. Exemplos: ASP.netWindows FormsWindows Presentation Foundation (WPF) estão incluídos no .NET Framework e no .NET 5.
  • Opcionalmente, ferramentas de desenvolvimento. Algumas ferramentas de desenvolvimento são compartilhadas entre várias implementações.

Há quatro implementações do .NET às quais a Microsoft dá suporte:

  • .NET 5 (e .NET Core) e versões posteriores
  • .NET Framework
  • Mono
  • UWP

O .NET 5 agora é a principal implementação, aquela que é o foco do desenvolvimento em andamento. O .NET 5 foi criado em uma única base de código que dá suporte a várias plataformas e várias cargas de trabalho, como aplicativos de desktop do Windows e aplicativos de console entre plataformas, serviços de nuvem e sites.

.NET 5

O .NET 5 é uma implementação de plataforma cruzada do .NET que foi projetada para lidar com cargas de trabalho de servidor e nuvem em escala. Ele também dá suporte a outras cargas de trabalho, incluindo aplicativos de desktop. Ele é executado no Windows, no macOS e no Linux. Ele implementa .NET Standard, portanto, o código que tem como alvo .NET Standard pode ser executado no .NET 5. ASP.NET CoreWindows FormsWindows Presentation Foundation (WPF) são executados no .NET 5.

Para obter mais informações, consulte os seguintes recursos:

.NET Framework

.NET Framework é a implementação original do .NET que existia desde 2002. As versões 4,5 e posteriores implementam .NET Standard, portanto, o código que tem como destino .NET Standard pode ser executado nessas versões do .NET Framework. Ele contém APIs adicionais específicas do Windows, como APIs para desenvolvimento de área de trabalho do Windows com o Windows Forms e o WPF. O .NET Framework é otimizado para a compilação de aplicativos da área de trabalho do Windows.

Para obter mais informações, consulte o Guia de .NET Framework.

Mono

O Mono é uma implementação do .NET que é usada principalmente quando um pequeno runtime é necessário. É o tempo de execução que capacita aplicativos Xamarin no Android, macOS, iOS, tvOS e watchOS e concentra-se principalmente em uma pequena superfície. O Mono também é plataforma para jogos criados com o mecanismo Unity.

Ele dá suporte a todas as versões do .NET Standard publicadas atualmente.

Historicamente, o Mono implementava a maior API do .NET Framework e emulava alguns dos recursos mais populares do Unix. Às vezes, ele é usado para executar aplicativos .NET que dependem desses recursos no Unix.

O Mono normalmente é usado com um compilador Just-In-Time, mas ele também apresenta um compilador estático completo (compilação Ahead Of Time) que é usado em plataformas como iOS.

Para obter mais informações, consulte a documentação do mono.

Plataforma Universal do Windows (UWP)

A UWP é uma implementação do .NET que é usada para criar aplicativos do Windows modernos e sensíveis ao toque, bem como software para a IoT (Internet das Coisas). Ele foi projetado para unificar os diferentes tipos de dispositivos que você talvez queira direcionar, incluindo PCs, tablets, telefones e até mesmo o Xbox. A UWP fornece muitos serviços, como um repositório centralizado de aplicativos, um ambiente de execução (AppContainer) e um conjunto de APIs do Windows para usar em vez das APIS do Win32 (WinRT). Os aplicativos podem ser escritos em C++, C#, Visual Basic e JavaScript.

Para obter mais informações, consulte introdução ao plataforma universal do Windows.

Runtimes do .NET

Um runtime é o ambiente de execução de um programa gerenciado. O SO faz parte do ambiente do runtime, mas não faz parte do runtime do .NET. Aqui estão alguns exemplos de runtimes do .NET:

  • CLR (Common Language Runtime) para .NET Framework
  • CLR (Common Language Runtime) para .NET 5
  • .NET Native para a Plataforma Universal do Windows
  • O runtime Mono para Xamarin.iOS, Xamarin.Android, Xamarin.Mac e a estrutura de área de trabalho do Mono

Ferramentas do .NET e infraestrutura comum

Você tem acesso a um amplo conjunto de ferramentas e componentes de infraestrutura que funcionam com todas as implementações do .NET. Essas ferramentas e componentes incluem:

  • As linguagens do .NET e seus compiladores
  • O sistema de projetos do .NET (com base em arquivos .csproj, .vbproj e .fsproj)
  • MSBuild, o mecanismo de compilação usado para criar projetos
  • NuGet, Gerenciador de pacotes da Microsoft para .net
  • Ferramentas de orquestração de build em software livre, como CAKE e FAKE

Para obter mais informações, consulte ferramentas e produtividade.

Padrões aplicáveis

A linguagem C# e as especificações de Common Language Infrastructure (CLI) são padronizadas por meio de ECMA International ® . As primeiras edições desses padrões foram publicadas pela ECMA em dezembro de 2001.

As revisões subsequentes para os padrões foram desenvolvidas pelos grupos de tarefas TC49-TG2 (C#) e TC49-TG3 (CLI) no comitê técnico de linguagens de programação (TC49) e adotadas pelo assembly geral da ECMA e subsequentemente por ISO/IEC JTC 1 por meio do processo ISO Fast-Track.

Padrões mais recentes

Os documentos ECMA oficiais a seguir estão disponíveis para C# e a CLI (TR-84):

  • O padrão de linguagem C# (versão 5,0): ECMA-334.pdf
  • O Common Language Infrastructure: ECMA-335.pdf.
  • Informações derivadas do arquivo XML da partição IV: ECMA-084.pdf formato.

Os documentos ISO/IEC oficiais estão disponíveis na página de padrões do ISO/IEC publicamente disponível . Esses links são diretos dessa página:

  • Tecnologia da informação-linguagens de programação-C#: ISO/IEC 23270:2018
  • Tecnologia da informação — partições de Common Language Infrastructure (CLI) I para vi: ISO/IEC 23271:2012
  • Tecnologia da informação — Common Language Infrastructure (CLI) — relatório técnico sobre informações derivadas do arquivo XML da partição IV: ISO/IEC TR 23272:2011

Consulte também


0
0

Comentários (1)

0
Julio Lima

Julio Lima

31/05/2021 08:45

Muito bom.

alfredo gelk neto

Brasil