Partilhar via


Glossário .NET

O objetivo principal deste glossário é esclarecer os significados de termos e acrônimos selecionados que aparecem com frequência na documentação do .NET.

AOT

Compilador à frente do tempo.

Semelhante ao JIT, este compilador também traduz IL para código de máquina. Em contraste com a compilação JIT, a compilação AOT acontece antes do aplicativo ser executado e geralmente é executada em uma máquina diferente. Como as cadeias de ferramentas AOT não compilam em tempo de execução, elas não precisam minimizar o tempo gasto na compilação. Isso significa que eles podem passar mais tempo otimizando. Como o contexto do AOT é o aplicativo inteiro, o compilador AOT também executa a vinculação entre módulos e a análise de todo o programa, o que significa que todas as referências são seguidas e um único executável é produzido.

Consulte CoreRT e .NET Native.

modelo de aplicativo

Uma API específica da carga de trabalho. Seguem-se alguns exemplos:

  • ASP.NET
  • API Web ASP.NET
  • Entity Framework (EF)
  • Windows Presentation Foundation (WPF)
  • Windows Communication Foundation (WCF)
  • Windows Workflow Foundation (WF)
  • Windows Forms (WinForms)

ASP.NET

A implementação ASP.NET original que acompanha o .NET Framework, também conhecido como ASP.NET 4.x e ASP.NET Framework.

Às vezes ASP.NET é um termo guarda-chuva que se refere tanto ao ASP.NET original quanto ao ASP.NET Core. O significado que o termo carrega em qualquer instância é determinado pelo contexto. Consulte ASP.NET 4.x quando quiser deixar claro que não está usando ASP.NET para significar ambas as implementações.

Consulte ASP.NET documentação.

ASP.NET Core

Uma implementação multiplataforma, de alto desempenho e de código aberto de ASP.NET.

Consulte a documentação do ASP.NET Core.

assemblagem

Um arquivo .dll ou .exe que pode conter uma coleção de APIs que podem ser chamadas por aplicativos ou outros assemblies.

Um assembly contém tipos como interfaces, classes, estruturas, enumerações e delegados. Os assemblies na pasta bin de um projeto às vezes são chamados de binários. Consulte também a biblioteca.

BCL

Biblioteca de Classes Base.

Um conjunto de bibliotecas que compõem os namespaces System.* (e, até certo ponto, Microsoft.*). A BCL é uma estrutura de propósito geral, de nível inferior, na qual as estruturas de aplicativos de nível superior, como ASP.NET Core, se baseiam.

O código-fonte da BCL para .NET está contido no repositório de tempo de execução do .NET. A maioria dessas APIs BCL também está disponível no .NET Framework, portanto, você pode pensar nesse código-fonte como uma bifurcação do código-fonte BCL do .NET Framework.

Os termos a seguir geralmente se referem à mesma coleção de APIs à qual a BCL se refere:

CLR

Common Language Runtime.

O significado exato depende do contexto. Common Language Runtime geralmente se refere ao tempo de execução do .NET Framework ou ao tempo de execução do .NET.

Um CLR lida com alocação e gerenciamento de memória. Um CLR também é uma máquina virtual que não apenas executa aplicativos, mas também gera e compila código on-the-fly usando um compilador JIT .

A implementação CLR para .NET Framework é somente Windows.

A implementação CLR para .NET (também conhecida como CLR Core) é criada a partir da mesma base de código que o CLR do .NET Framework. Originalmente, o Core CLR era o tempo de execução do Silverlight e foi projetado para ser executado em várias plataformas, especificamente Windows e OS X. Ainda é um tempo de execução multiplataforma , agora incluindo suporte para muitas distribuições Linux.

Consulte também tempo de execução.

CLR principal

O Common Language Runtime para .NET.

Consulte CLR.

CoreRT

Em contraste com o CLR, o CoreRT não é uma máquina virtual, o que significa que ele não inclui os recursos para gerar e executar código on-the-fly porque não inclui um JIT. No entanto, inclui o GC e a capacidade de identificação de tipo em tempo de execução (RTTI) e reflexão. No entanto, seu sistema de tipos é projetado para que os metadados para reflexão não sejam necessários. Não exigir metadados permite ter uma cadeia de ferramentas AOT que pode vincular metadados supérfluos e (mais importante) identificar o código que o aplicativo não usa. CoreRT está em desenvolvimento.

Consulte Introdução ao CoreRT e ao .NET Runtime Lab.

multi-plataforma

A capacidade de desenvolver e executar um aplicativo que pode ser usado em vários sistemas operacionais diferentes, como Linux, Windows e iOS, sem ter que reescrever especificamente para cada um. Isso permite a reutilização de código e a consistência entre aplicativos em diferentes plataformas.

Ver plataforma.

ecossistema

Todo o software de tempo de execução, ferramentas de desenvolvimento e recursos da comunidade que são usados para criar e executar aplicativos para uma determinada tecnologia.

O termo "ecossistema .NET" difere de termos semelhantes, como "pilha .NET" em sua inclusão de aplicativos e bibliotecas de terceiros. Aqui está um exemplo em uma frase:

  • "A motivação por trás do .NET Standard era estabelecer uma maior uniformidade no ecossistema .NET."

framework

Em geral, uma coleção abrangente de APIs que facilita o desenvolvimento e a implantação de aplicativos baseados em uma tecnologia específica. Nesse sentido geral, ASP.NET Core e Windows Forms são exemplos de estruturas de aplicativos. As palavras framework e library são frequentemente usadas como sinônimos.

A palavra "enquadramento" tem um significado diferente nos seguintes termos:

Às vezes, "framework" refere-se a uma implementação do .NET.

Bibliotecas de estrutura

O significado depende do contexto. Pode referir-se às bibliotecas de estrutura para .NET, caso em que se refere às mesmas bibliotecas a que a BCL se refere. Também pode se referir às bibliotecas de estrutura ASP.NET Core , que se baseiam na BCL e fornecem APIs adicionais para aplicativos Web.

GC

Coletor de lixo.

O coletor de lixo é uma implementação de gerenciamento automático de memória. O GC libera memória ocupada por objetos que não estão mais em uso.

Consulte Recolha de Lixo.

IL

Linguagem intermediária.

Linguagens .NET de nível superior, como C#, são compiladas em um conjunto de instruções independente de hardware, que é chamado de IL (Intermediate Language). IL é por vezes referido como MSIL (Microsoft IL) ou CIL (Common IL).

JIT

Compilador just-in-time.

Semelhante ao AOT, este compilador traduz IL para código de máquina que o processador entende. Ao contrário do AOT, a compilação JIT acontece sob demanda e é executada na mesma máquina em que o código precisa ser executado. Como a compilação JIT ocorre durante a execução do aplicativo, o tempo de compilação faz parte do tempo de execução. Assim, os compiladores JIT têm que equilibrar o tempo gasto otimizando o código com a economia que o código resultante pode produzir. Mas um JIT conhece o hardware real e pode libertar os desenvolvedores de terem que enviar implementações diferentes.

implementação do .NET

Uma implementação do .NET inclui:

  • Um ou mais tempos de execução. Exemplos: CLR, CoreRT.
  • Uma biblioteca de classes que implementa uma versão do .NET Standard e pode incluir APIs adicionais. Exemplos: as BCLs para .NET Framework e .NET.
  • Opcionalmente, uma ou mais estruturas de aplicativos. Exemplos: ASP.NET, Windows Forms e WPF estão incluídos no .NET Framework e no .NET.
  • Opcionalmente, ferramentas de desenvolvimento. Algumas ferramentas de desenvolvimento são compartilhadas entre várias implementações.

Exemplos de implementações .NET:

Para obter mais informações, consulte Implementações .NET.

biblioteca

Uma coleção de APIs que podem ser chamadas por aplicativos ou outras bibliotecas. Uma biblioteca .NET é composta por um ou mais assemblies.

As palavras biblioteca e estrutura são frequentemente usadas como sinônimos.

Mono

Uma implementação de código aberto, multiplataforma.NET que é usada quando um pequeno tempo de execução é necessário. É o tempo de execução que alimenta os aplicativos Xamarin no Android, Mac, iOS, tvOS e watchOS e é focado principalmente em aplicativos que exigem uma pequena pegada.

Ele suporta todas as versões do .NET Standard publicadas atualmente.

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

O Mono é normalmente usado com um compilador just-in-time, mas também possui um compilador estático completo (compilação à frente do tempo) que é usado em plataformas como iOS.

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

AOT nativo

Um modo de implantação em que o aplicativo é autônomo e compilado antecipadamente para código nativo no momento da publicação. Os aplicativos AOT nativos não usam um compilador JIT em tempo de execução. Eles podem ser executados em máquinas que não têm o tempo de execução do .NET instalado.

Para obter mais informações, consulte Implantação de AOT nativa.

.NET

.NET tem dois significados, e o pretendido depende do contexto:

  • .NET pode ser usado como o termo guarda-chuva para o .NET Standard e todas as implementações e cargas de trabalho do .NET.
  • O .NET refere-se mais frequentemente à implementação multiplataforma, de alto desempenho e de código aberto do .NET que costumava ser chamada de .NET Core. Ele também pode ser referido como .NET 5 (e .NET Core) e versões posteriores ou apenas .NET 5+.

Por exemplo, o primeiro significado é pretendido em frases como "implementações do .NET". O segundo significado é pretendido em nomes como .NET SDK e .NET CLI. Na ausência de contexto que indique que o primeiro significado é pretendido, assuma que o segundo significado é pretendido.

As versões anteriores do .NET são conhecidas como .NET Core 1 a 3.1. Os números de versão ignoram 4, e a versão que se seguiu 3.1 é conhecida como .NET 5, descartando "Core" do nome. Soltar "Core" foi feito para enfatizar que esta implementação do .NET é a que é recomendada para todos os novos desenvolvimentos. Ignorar a versão 4 foi feito para ajudar a evitar confundir esta implementação mais recente do .NET com a implementação mais antiga que é conhecida como .NET Framework. A versão atual do .NET Framework é 4.8.1.

O .NET está sempre totalmente em maiúsculas, nunca ".Net".

Consulte a documentação do .NET.

CLI de .NET

Uma cadeia de ferramentas multiplataforma para o desenvolvimento de aplicativos e bibliotecas para .NET. Também conhecida como CLI do .NET Core.

Consulte CLI do .NET.

.NET Core

Consulte .NET.

.NET Framework

Uma implementação do .NET que é executada apenas no Windows. Inclui o Common Language Runtime (CLR), a BCL (Base Class Library) e bibliotecas de estrutura de aplicativos como ASP.NET, Windows Forms e WPF.

Consulte Guia do .NET Framework.

Nativo do .NET

Uma cadeia de ferramentas de compilador que produz código nativo ahead-of-time (AOT), em oposição ao just-in-time (JIT).

A compilação acontece na máquina do desenvolvedor de forma semelhante à maneira como um compilador e vinculador C++ funciona. Ele remove o código não utilizado e gasta mais tempo otimizando-o. Ele extrai código de bibliotecas e os mescla no executável. O resultado é um único módulo que representa todo o aplicativo.

UWP é a estrutura de aplicativo suportada pelo .NET Native.

Consulte a documentação nativa do .NET.

SDK do .NET

Um conjunto de bibliotecas e ferramentas que permitem aos desenvolvedores criar aplicativos e bibliotecas para o .NET. Também conhecido como SDK do .NET Core.

Inclui a CLI do .NET para criar aplicativos, bibliotecas .NET e tempo de execução para criar e executar aplicativos e o executável dotnet (dotnet.exe) que executa comandos da CLI e executa aplicativos.

Consulte Visão geral do SDK do .NET.

.NET Standard

Uma especificação formal de APIs .NET que estão disponíveis em cada implementação .NET.

A especificação .NET Standard às vezes é chamada de biblioteca. Como uma biblioteca inclui implementações de API, não apenas especificações (interfaces), é enganoso chamar o .NET Standard de "biblioteca".

Consulte .NET Standard.

NGen

Geração nativa (imagem).

Você pode pensar nessa tecnologia como um compilador JIT persistente. Ele geralmente compila o código na máquina onde o código é executado, mas a compilação normalmente ocorre no momento da instalação.

pacote

Um pacote NuGet, ou apenas um pacote, é um arquivo .zip com um ou mais assemblies do mesmo nome, juntamente com metadados adicionais, como o nome do autor.

O arquivo .zip tem uma extensão .nupkg e pode conter ativos, como arquivos .dll e arquivos .xml , para uso com várias estruturas e versões de destino. Quando instalados em um aplicativo ou biblioteca, os ativos apropriados são selecionados com base na estrutura de destino especificada pelo aplicativo ou biblioteca. Os ativos que definem a interface estão na pasta ref e os ativos que definem a implementação estão na pasta lib .

plataforma

Um sistema operacional e o hardware em que ele é executado, como Windows, macOS, Linux, iOS e Android.

Aqui estão exemplos de uso em frases:

  • "O .NET Core é uma implementação multiplataforma do .NET."
  • "Os perfis PCL representam as plataformas da Microsoft, enquanto o .NET Standard é agnóstico à plataforma."

A documentação herdada do .NET às vezes usa "plataforma .NET" para significar uma implementação do .NET ou da pilha .NET, incluindo todas as implementações. Ambos os usos tendem a ser confundidos com o significado primário (SO / hardware), por isso tentamos evitar esses usos.

"Plataforma" tem um significado diferente na frase "plataforma de desenvolvedor", que se refere a software que fornece ferramentas e bibliotecas para criar e executar aplicativos. O .NET é uma plataforma de desenvolvedor multiplataforma e de código aberto para criar muitos tipos diferentes de aplicativos.

POCO

Um POCO — ou um objeto de classe/CLR antigo e simples — é uma estrutura de dados .NET que contém apenas propriedades ou campos públicos. Um POCO não deve conter outros membros, tais como:

  • métodos
  • eventos
  • Delegados

Esses objetos são usados principalmente como objetos de transferência de dados (DTOs). Um POCO puro não herdará outro objeto ou implementará uma interface. É comum que POCOs sejam usados com serialização.

tempo de execução

Em geral, o ambiente de execução para um programa gerenciado. O sistema operacional faz parte do ambiente de tempo de execução, mas não faz parte do tempo de execução do .NET. Aqui estão alguns exemplos de tempos de execução do .NET nesse sentido da palavra:

  • Common Language Runtime (CLR)
  • .NET Native (para UWP)
  • Tempo de execução mono

A palavra "tempo de execução" tem um significado diferente em alguns contextos:

  • Tempo de execução do .NET na página de download do .NET 5.

    Você pode baixar o tempo de execução do .NET ou outros tempos de execução, como o tempo de execução do ASP.NET Core. Um tempo de execução nesse uso é o conjunto de componentes que devem ser instalados em uma máquina para executar um aplicativo dependente da estrutura na máquina. O tempo de execução do .NET inclui o CLR e a estrutura compartilhada do .NET, que fornece a BCL.

  • Bibliotecas de tempo de execução do .NET

    Refere-se às mesmas bibliotecas a que a BCL se refere. No entanto, outros tempos de execução, como o tempo de execução ASP.NET Core, têm diferentes estruturas compartilhadas, com bibliotecas adicionais que se baseiam na BCL.

  • Identificador de tempo de execução (RID).

    Tempo de execução aqui significa a plataforma do sistema operacional e a arquitetura da CPU em que um aplicativo .NET é executado, por exemplo: linux-x64.

  • Às vezes, "tempo de execução" é usado no sentido de uma implementação do .NET, como nos seguintes exemplos:

    • "Os vários tempos de execução do .NET implementam versões específicas do .NET Standard. … Cada versão de tempo de execução do .NET anuncia a versão mais alta do .NET Standard que suporta ..."
    • "As bibliotecas que se destinam a ser executadas em vários tempos de execução devem ter como alvo essa estrutura." (referindo-se ao .NET Standard)

Quadro partilhado

O significado depende do contexto. A estrutura compartilhada do .NET refere-se às bibliotecas incluídas no tempo de execução do .NET. Nesse caso, a estrutura compartilhada para .NET refere-se às mesmas bibliotecas às quais a BCL se refere.

Existem outros quadros partilhados. A estrutura compartilhada do ASP.NET Core refere-se às bibliotecas incluídas no tempo de execução do ASP.NET Core, que inclui a BCL mais APIs adicionais para uso por aplicativos Web.

Para aplicativos dependentes da estrutura, a estrutura compartilhada consiste em bibliotecas contidas em assemblies instalados em uma pasta na máquina que executa o aplicativo. Para aplicativos autônomos, os assemblies de estrutura compartilhada são incluídos no aplicativo.

Para obter mais informações, consulte Aprofundamento nas primitivas do .NET Core, parte 2: a estrutura compartilhada.

pilha

Um conjunto de tecnologias de programação que são usadas juntas para criar e executar aplicativos.

"A pilha .NET" refere-se ao .NET Standard e a todas as implementações do .NET. A frase "uma pilha .NET" pode se referir a uma implementação do .NET.

Quadro de objetivos

A coleção de APIs na qual um aplicativo ou biblioteca .NET depende.

Um aplicativo ou biblioteca pode direcionar uma versão do .NET Standard (por exemplo, .NET Standard 2.0), que é uma especificação para um conjunto padronizado de APIs em todas as implementações do .NET. Um aplicativo ou biblioteca também pode direcionar uma versão de uma implementação .NET específica, caso em que obtém acesso a APIs específicas de implementação. Por exemplo, um aplicativo direcionado ao Xamarin.iOS obtém acesso aos wrappers da API do iOS fornecidos pelo Xamarin.

Para algumas estruturas de destino (por exemplo, .NET Framework), as APIs disponíveis são definidas pelos assemblies que uma implementação .NET instala em um sistema, que podem incluir APIs de estrutura de aplicativo (por exemplo, ASP.NET, WinForms). Para estruturas de destino baseadas em pacotes, as APIs de estrutura são definidas pelos pacotes instalados no aplicativo ou na biblioteca.

Consulte Estruturas de destino.

TFM

Apelido da estrutura de destino.

Um formato de token padronizado para especificar a estrutura de destino de um aplicativo ou biblioteca .NET. As estruturas de destino são normalmente referenciadas por um nome curto, como net462. TFMs de forma longa (como .NETFramework,Version=4.6.2) existem, mas geralmente não são usados para especificar uma estrutura de destino.

Consulte Estruturas de destino.

UWP

Plataforma Universal do Windows.

Uma implementação do .NET que é usada para criar aplicativos e software do Windows habilitados para toque para a Internet das Coisas (IoT). Ele foi projetado para unificar os diferentes tipos de dispositivos que você pode querer segmentar, incluindo PCs, tablets, telefones e até mesmo o Xbox. A UWP fornece muitos serviços, como uma loja de aplicativos centralizada, um ambiente de execução (AppContainer) e um conjunto de APIs do Windows para usar em vez do Win32 (WinRT). Os aplicativos podem ser escritos em C++, C#, Visual Basic e JavaScript. Ao usar C# e Visual Basic, as APIs do .NET são fornecidas pelo .NET.

workload

Um tipo de aplicativo que alguém está criando. Mais genérico do que o modelo de aplicativo. Por exemplo, na parte superior de cada página de documentação do .NET, incluindo esta, há uma lista suspensa para Cargas de trabalho, que permite alternar para documentação para Web, Mobile, Cloud, Desktop e Machine Learning & Data.

Em alguns contextos, carga de trabalho refere-se a uma coleção de recursos do Visual Studio que você pode optar por instalar para dar suporte a um tipo específico de aplicativo. Para obter um exemplo, consulte Configurar cargas de trabalho do Visual Studio.

Consulte também