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 um coletor de lixo (GC). Ele é seguro de tipo e de memória, devido ao uso de um GC e compiladores de idioma estritos. Oferece simultaneidade viaasync/await e Task primitivas. 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.
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.
O Código estático e dinâmico têm suporte, permitindo um amplo conjunto de cenários distintos.
A Interoperabilidade de código nativo e intrínsecos de hardware são de baixo custo e alta fidelidade (API bruta e acesso de instrução).
O Código é portátil entre plataformas (sistema operacional e arquitetura de chip), enquanto a segmentação por plataforma permite especialização e otimização.
A Adaptabilidade entre domínios de programação (nuvem, cliente, jogos) está habilitada com implementações especializadas do modelo de programação de uso geral.
Os Padrões do setor, como OpenTelemetry e gRPC, são favorecidos em relação às soluções sob medida.
O .NET é mantido pela Microsoft e pela comunidade. Ele é atualizado regularmente para garantir que os usuários implantem aplicativos seguros e confiáveis na produção.
Componentes
O .NET inclui os seguintes componentes:
Runtime – executa o código do aplicativo.
Bibliotecas – fornece funcionalidade de utilitário como Análise JSON.
Compilador – compila o código-fonte C# (e outros idiomas) no código executável (runtime).
SDK e outras ferramentas - habilita a criação e o monitoramento dos aplicativos com fluxos de trabalho modernos.
Pilhas de aplicativos - como ASP.NET Core e Windows Forms, que permitem a gravação dos 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, baseiam-se nesses pilares. O C# é a principal linguagem de programação do .NET e grande parte do .NET é escrito em C#.
O C# é orientado aos objetos e o tempo de execução oferece suporte à orientação aos objetos. 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 nos fluxos de trabalho intuitivos.
As principais bibliotecas expõem milhares de tipos, muitos dos quais se integram e alimentam o idioma C#. Por exemplo, a instrução foreach do C#’s permite que você enumere 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 feito por aplicativos de clientes que realizam processamento em segundo plano e mantêm a interface do usuário responsiva, serviços que lidam com milhares de solicitações simultâneas, dispositivos que respondem a uma infinidade de estímulos simultâneos ou máquinas de alta potência que paralelizam o processamento de operações de computação intensiva. O suporte à programação assíncrona é um recurso de primeira classe do idioma de programação C#, que fornece as palavras-chave async e await que facilitam a gravação e a composição das operações assíncronas, aproveitando todos os benefícios de todos os constructos de fluxo de controle que o idioma tem a oferecer.
O sistema de tipos oferece uma amplitude significativa, atendendo igualmente à segurança, à descritividade, ao dinamismo e à interoperabilidade nativa. Em primeiro lugar, o sistema de tipos permite um modelo de programação orientado a objetos. Ele inclui tipos, herança (classe base única), interfaces (incluindo implementações de métodos padrão) e envio de métodos virtuais para fornecer um comportamento sensato para todas as camadas de tipos que a orientação a objetos permite. Os Tipos genéricos são um recurso generalizado que permite que você especialize classes para um ou mais tipos.
O runtime do .NET fornece gerenciamento automático de memória por um coletor de lixo. Para qualquer linguagem, seu modelo de gerenciamento de memória é provavelmente sua característica mais definidora. Isso é verdadeiro para os idiomas .NET. O .NET tem um GC de autoajuste e rastreamento. Seu objetivo é proporcionar uma operação "hands off" no caso geral e, ao mesmo tempo, oferecer opções de configuração para cargas de trabalho mais extremas. O GC atual é o resultado de muitos anos de investimentos e aprendizados de uma infinidade 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 pelo sistema genérico do NET, o que significa que tipos genéricos como List<T> podem fornecer representações de memória simples e sem a sobrecarga das coleções dos tipos de valor.
A Reflexão é um paradigma de "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.
As exceções são o principal modelo 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 nas 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 no seu código. Um aplicativo com falha é mais confiável e diagnosticável do que um aplicativo com comportamento indefinido.
As pilhas dos aplicativos, como ASP.NET Core e Windows Forms, baseiam-se nas e aproveitam as bibliotecas de baixo nível, idioma e runtime. As pilhas dos 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 a integração contínua (CI). A experiência do desenvolvedor moderno inclui a capacidade de criar, analisar e testar códigos. Geralmente, os projetos do .NET podem ser criados por um único comando dotnet build, que orquestra a restauração dos pacotes NuGet e a criação de dependências.
O NuGet é o gerenciador de pacotes para o .NET. Ele contém centenas de milhares de pacotes que implementam a funcionalidade para muitos cenários. A maioria dos aplicativos depende ds pacotes NuGet para algumas funcionalidades. A Galeria NuGet é mantida pela Microsoft.
Gratuito e software livre
O .NET é gratuito, de código aberto e é um projeto da .NET Foundation. O .NET é mantido pela Microsoft e pela comunidade no GitHub em vários repositórios.
O .NET é suportado por 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 na Terça-feira do Patch (segunda terça-feira), normalmente às 10h, horário do Pacífico.
Ecossistema do .NET
Há várias variantes do .NET, cada uma dando suporte a um tipo diferente de aplicativo. O motivo de várias variantes é parte histórico e parte técnico.
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. Suportado ativamente para Android, iOS e WebAssembly.
.NET (Core) -- .NET moderno. Uma implementação multiplataforma e de código aberto do .NET, repensada para a era da nuvem e que permanece significativamente compatível com o .NET Framework. Suportado ativamente para Linux, macOS e Windows.
A fonte deste conteúdo pode ser encontrada no GitHub, onde você também pode criar e revisar problemas e solicitações de pull. Para obter mais informações, confira o nosso guia para colaboradores.
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários:
O .NET é uma plataforma de desenvolvedor gratuita, multiplataforma e de software livre para a criação de muitos diferentes tipos de aplicativos. Com o .NET, você pode usar várias linguagens, editores e bibliotecas para criação para Web, dispositivo móvel, desktop, jogos e IoT.
Demonstrar conhecimento fundamental dos conceitos de nuvem e dos principais serviços do Azure, além de recursos e ferramentas de gerenciamento e governança do Azure.
Cada linguagem do .NET é exclusiva. O C# é a linguagem mais usada e a linguagem na qual a maior parte do .NET é escrita. O F# explora novas possibilidades de linguagem e a comunidade oferece uma experiência avançada entre plataformas. Continuamos comprometidos com o Visual Basic e continuamos investindo na manutenção da interoperabilidade do C# e dos recursos do Visual Studio para pessoas que amam o Visual Basic ou querem uma linguagem estável.
Aprenda a usar o .NET para criar aplicativos em qualquer plataforma usando C#, Visual Basic e F#. Procure referência de API, código de exemplo, tutoriais e muito mais.