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.
O .NET é uma plataforma de desenvolvedor gratuita, multiplataforma e de software livre para criar muitos tipos de aplicativos. Ele pode executar programas escritos em vários idiomas, sendo o C# o mais popular. Ele depende de um runtime de alto desempenho que é usado em produção por muitos aplicativos de alta escala.
Para saber como baixar o .NET e começar a escrever seu primeiro aplicativo, consulte Introdução.
A plataforma .NET foi projetada para fornecer produtividade, desempenho, segurança e confiabilidade. Ele fornece gerenciamento automático de memória por meio de um GC (coletor de lixo). Ele é seguro de tipo e de memória, devido ao uso de um GC e compiladores de idioma estritos. Ele oferece concorrência por meio das primitivas async
/await
e Task
. Ele inclui um grande conjunto de bibliotecas que têm ampla funcionalidade e foram otimizadas para desempenho em vários sistemas operacionais e arquiteturas de chip.
O .NET tem os seguintes pontos de design:
- A Produtividade é de pilha completa com runtime, bibliotecas, idioma e ferramentas, contribuindo para a experiência do usuário do desenvolvedor.
- O código seguro é o modelo de computação primário, enquanto o código não seguro permite otimizações manuais adicionais.
- Há suporte para código estático e dinâmico, permitindo um amplo conjunto de cenários distintos.
- Interoperabilidade de código nativo e intrínsecos de hardware são de baixo custo e alta fidelidade (API bruta e acesso a instruções).
- O código é portátil entre plataformas (arquitetura de sistema operacional e chip), enquanto o direcionamento de plataforma permite especialização e otimização.
- A adaptabilidade entre domínios de programação (nuvem, cliente, jogos) é habilitada com implementações especializadas do modelo de programação de uso geral.
- Padrões do setor como OpenTelemetry e gRPC são favorecidos em vez de soluções sob medida.
O .NET é mantido de forma colaborativa pela Microsoft e por uma comunidade global. As atualizações regulares garantem que os usuários implantem aplicativos seguros e confiáveis em ambientes de produção.
Componentes
O .NET inclui os seguintes componentes:
- Runtime – executa o código do aplicativo.
- Bibliotecas – fornecem funcionalidades utilitárias, como análise JSON.
- Compilador – compila o código-fonte C# (e outros idiomas) no código executável (runtime).
- SDK e outras ferramentas : habilite a criação e o monitoramento de aplicativos com fluxos de trabalho modernos.
- Stacks de aplicativos, como ASP.NET Core e Windows Forms, que permitem o desenvolvimento de aplicativos.
O runtime, as bibliotecas e os idiomas são os pilares da pilha do .NET. Componentes de nível superior, como ferramentas .NET e pilhas de aplicativos, como ASP.NET Core, se baseiam nesses pilares. C# é a principal linguagem de programação para .NET e grande parte do .NET é escrito em C#.
O C# é orientado a objetos e o runtime dá suporte à orientação do objeto. O C# requer coleta de lixo e o tempo de execução fornece um coletor de lixo de rastreamento. As bibliotecas (e também as pilhas de aplicativos) moldam esses recursos em conceitos e modelos de objeto que permitem que os desenvolvedores escrevam algoritmos de forma produtiva em fluxos de trabalho intuitivos.
As bibliotecas principais expõem milhares de tipos, muitos dos quais se integram e alimentam a linguagem C#. Por exemplo, a instrução do foreach
C#permite enumerar coleções arbitrárias. As otimizações baseadas em padrões permitem que coleções como List<T>
sejam processadas de forma simples e eficiente. Você pode deixar o gerenciamento de recursos para coleta de lixo, mas a limpeza do prompt é possível pelo IDisposable
e suporte direto à linguagem na instrução using
.
O suporte para fazer várias coisas ao mesmo tempo é fundamental para praticamente todas as cargas de trabalho. Isso pode ser aplicativos cliente fazendo processamento em segundo plano, mantendo a interface do usuário responsiva, os serviços que lidam com milhares de solicitações simultâneas, dispositivos respondendo a uma infinidade de estímulos simultâneos ou computadores de alta potência paralelizando o processamento de operações com uso intensivo de computação. O suporte a programação assíncrona é um recurso de primeira classe da linguagem de programação C#, que fornece as palavras-chave async
e await
que facilitam a escrita e a composição de operações assíncronas, enquanto ainda aproveitam todos os benefícios dos construtos de controle de fluxo que a linguagem tem a oferecer.
O sistema de tipos oferece amplitude significativa, atendendo um pouco igualmente à segurança, descritividade, dinamismo e interoperabilidade nativa. Em primeiro lugar, o sistema de tipos habilita um modelo de programação orientado a objetos. Ele inclui tipos, herança (classe base única), interfaces (incluindo implementações de método padrão) e expedição de método virtual para fornecer um comportamento sensato para todas as camadas de tipo que a orientação do objeto permite. Tipos genéricos são onipresentes e permitem que você especialize classes para um ou mais tipos.
O runtime do .NET fornece gerenciamento automático de memória por meio de um coletor de lixo. Para qualquer linguagem, seu modelo de gerenciamento de memória provavelmente é sua característica mais definidora. Isso é verdadeiro para idiomas .NET. O .NET tem um GC de autoajuste e rastreamento. O objetivo é fornecer um uso "sem intervenção" no caso geral, ao mesmo tempo que oferece opções de configuração para cargas de trabalho mais exigentes. O GC atual é o resultado de muitos anos de investimento e aprendizados provenientes de uma variedade de cargas de trabalho.
Os tipos de valor e blocos de memória alocados em pilha oferecem controle mais direto e de baixo nível sobre os dados e a interoperabilidade de plataforma nativa, ao contrário dos tipos gerenciados pelo GC do NET. A maioria dos tipos primitivos no .NET, como tipos inteiros, são tipos de valor e os usuários podem definir seus próprios tipos com semântica semelhante. Os tipos de valor têm suporte total por meio do sistema genérico do .NET, o que faz com que tipos genéricos como List<T>
possam fornecer representações de memória diretas e sem sobrecarga de coleções de tipos de valor.
Reflexão é um paradigma "programas como dados", permitindo que uma parte de um programa consulte e invoque outra dinamicamente em termos de assemblies, tipos e membros. É particularmente útil para modelos e ferramentas de programação com limite tardio.
Exceções são o modelo principal de tratamento de erros no .NET. As exceções têm o benefício de que as informações de erro não precisam ser representadas em assinaturas de método ou tratadas por todos os métodos. O tratamento adequado de exceções é essencial para a confiabilidade do aplicativo. Para evitar que seu aplicativo falhe, você pode manipular intencionalmente as exceções esperadas em seu código. Um aplicativo com falha é mais confiável e diagnosticável do que um aplicativo com comportamento indefinido.
Pilhas de aplicativos, como ASP.NET Core e Windows Forms, são construídas sobre e tiram proveito de bibliotecas de baixo nível, linguagem de programação e runtime. As pilhas de aplicativos definem a maneira como os aplicativos são construídos e seu ciclo de vida de execução.
O SDK e outras ferramentas permitem uma experiência moderna para desenvolvedores, tanto em uma área de trabalho do desenvolvedor quanto para CI (integração contínua). A experiência moderna do desenvolvedor inclui ser capaz de criar, analisar e testar código. Os projetos do .NET geralmente podem ser criados por um único dotnet build
comando, que orquestra a restauração de pacotes NuGet e a criação de dependências.
O NuGet é o gerenciador de pacotes do .NET. Ele contém centenas de milhares de pacotes que implementam a funcionalidade para muitos cenários. A maioria dos aplicativos depende de pacotes NuGet para alguma funcionalidade. A Galeria do NuGet é mantida pela Microsoft.
Software livre e gratuito
O .NET é gratuito, de software livre e é um projeto do .NET Foundation . O .NET é mantido pela Microsoft e pela comunidade no GitHub em vários repositórios.
A origem e os binários do .NET são licenciados com a licença do MIT. Licenças adicionais se aplicam ao Windows.
Apoio
O .NET tem suporte de várias organizações que trabalham para garantir que o .NET possa ser executado em vários sistemas operacionais e seja mantido atualizado. Ele pode ser usado em arquiteturas Arm64, x64 e x86.
As novas versões do .NET são lançadas anualmente em novembro, de acordo com nossas versões e políticas de suporte. Ele é atualizado mensalmente no Patch Tuesday (segunda terça-feira), normalmente às 10h, hora do Pacífico.
Ecossistema do .NET
Há várias variantes do .NET, cada uma com suporte para um tipo diferente de aplicativo. O motivo para várias variantes é parte histórica, parte técnica.
Implementações do .NET:
- .NET Framework -- o .NET original. Ele fornece acesso aos amplos recursos do Windows e do Windows Server. Ele tem suporte ativo, em manutenção.
- Mono – A comunidade original e o .NET de software livre. Uma implementação multiplataforma do .NET Framework. Suporte ativo para Android, iOS e WebAssembly.
- .NET (Core) – .NET moderno. Uma implementação multiplataforma e de software livre do .NET, repensada para a era da nuvem, mantendo-se significativamente compatível com o .NET Framework. Suporte ativamente para Linux, macOS e Windows.