O que é o .NET?

Concluído

Quando alguém usa o termo .NET, o significado depende muito do contexto. Nesta unidade, você aprenderá sobre o .NET examinando-o como um ecossistema. Em outras palavras, o .NET é um conjunto constituído de várias partes e pessoas que, juntas, formam um ambiente poderoso para a criação de aplicativos.

O .NET é um ecossistema para o desenvolvimento de aplicativos

O termo ecossistema descreve as múltiplas facetas de um ambiente de desenvolvimento de aplicativos e da comunidade ao redor dele. Essas facetas são combinadas para criar um motivo convincente para investir em aprendizado e na criação de aplicativos no .NET.

Usar os compiladores e as linguagens .NET para executar aplicativos no runtime do .NET

Os desenvolvedores de software usam linguagens .NET como C# e F# para escrever código-fonte. Cada linha de código escrita expressa uma instrução ou um comando que o computador deve executar enquanto o programa está em execução.

Para que os desenvolvedores de software possam executar o código, eles devem primeiro compilá-lo. O compilador do .NET é um programa que converte o código-fonte (em qualquer linguagem de programação com suporte) em uma linguagem portátil chamada linguagem intermediária (IL). O compilador do .NET salva o código de IL em um arquivo chamado assembly do .NET. Ao compilar o código em um formato intermediário, você pode usar a mesma base de código onde quer que o execute, seja no Windows, no Linux ou em um hardware de computador de 32 ou 64 bits.

O runtime do .NET é um ambiente de execução para o seu assembly do .NET compilado. Em outras palavras, o runtime do .NET é o que executa e gerencia o seu aplicativo à medida que ele é executado em um sistema operacional do host. Falaremos mais sobre o que o runtime do .NET faz em instantes.

Felizmente, como um desenvolvedor de software que está apenas começando a usar o .NET você não precisa entender detalhadamente como esses mecanismos funcionam. Com a experiência, você passará a compreender e apreciar totalmente a capacidade subjacente das linguagens, dos compiladores e do runtime do .NET.

Dica

Às vezes, as pessoas acham a linguagem de programação C# é o .NET. No entanto, C# e .NET são diferentes. C# é uma sintaxe de linguagem de programação. Como parte da sintaxe, você pode referenciar e chamar métodos definidos em assemblies, ou bibliotecas de código do .NET. A seguir, você usará o compilador de C# instalado com o SDK do .NET para criar um assembly do .NET a partir do seu código C#. Depois disso, o runtime do .NET executa os assemblies do .NET. Essas distinções são conceitos importantes que você precisa entender à medida que aprende mais sobre o .NET e C#.

Usar bibliotecas e estruturas de aplicativos do .NET para aproveitar a funcionalidade pré-criada

Todos os softwares são criados em camadas, o que significa que são executados em vários níveis de abstração em um computador:

  • No nível mais baixo, o software se comunica diretamente com o hardware do computador. Ele controla o fluxo de dados na placa-mãe, nos processadores, na memória e nos discos rígidos.
  • No nível seguinte, o software permite que o usuário final forneça instruções por meio de um sistema operacional.
  • No próximo nível, um software como o .NET fornece uma maneira para você desenvolver e executar aplicativos.
  • No próximo nível, as estruturas de aplicativos e bibliotecas de funcionalidades permitem que você crie rapidamente aplicativos avançados com menos esforço do que era exigido pelos métodos de desenvolvimento mais antigos.

Uma biblioteca de códigos encapsula a funcionalidade para uma finalidade específica em um assembly. Para o .NET, milhares de bibliotecas estão disponíveis. Essas bibliotecas podem ser próprias ou de terceiros e podem ser comerciais ou de software livre. Elas fornecem uma ampla gama de funcionalidades que você pode usar em seus aplicativos. Basta fazer referência a esses assemblies e chamar os métodos necessários. Dessa forma, como desenvolvedor, você cria com base no trabalho de outros desenvolvedores de software. Você poupa tempo e energia porque não precisa criar e manter todos os recursos por conta própria.

Uma estrutura do aplicativo combina várias bibliotecas relacionadas, bem como projetos iniciais, modelos de arquivos, geradores de código e outras ferramentas. Use esses recursos a fim de criar aplicativos inteiros para uma finalidade específica. Essas estruturas de aplicativos são conhecidas como modelos de aplicativo. Por exemplo, as estruturas de aplicativos do .NET estão disponíveis para os modelos de aplicativos mais populares, como o desenvolvimento para a web, para a área de trabalho e para dispositivos móveis, além do desenvolvimento de jogos.

Você pode instalar o SDK do .NET diretamente ou instalando o Visual Studio 2022. O SDK do .NET instala um conjunto abrangente de bibliotecas e estruturas de aplicativos chamado biblioteca de classes base. Você pode usar essa biblioteca de código em seus programas, independentemente da plataforma ou dos modelos de aplicativos que deseja compilar.

Para outras bibliotecas de terceiros, os desenvolvedores usam gerenciadores de pacotes como o NuGet para localizar e integrar bibliotecas de código de repositórios de pacotes, como a Galeria do NuGet.

Quais são os principais modelos de aplicativos?

Você deve estar imaginando quais estruturas dão suporte a quais modelos de aplicativo. Use a tabela a seguir a fim de mapear um modelo de aplicativo para uma estrutura do .NET.

Modelo de aplicativo Estrutura Observações
Web ASP.NET Core A estrutura para a criação da lógica do lado do servidor.
Web ASP.NET Core MVC A estrutura para a criação da lógica do lado do servidor para páginas da Web ou APIs Web.
Web Razor Pages do ASP.NET Core A estrutura para a criação de HTML gerado pelo servidor.
Cliente Web Blazor O Blazor é uma parte do ASP.NET Core. Os dois modos dele permitem a manipulação de DOM (Modelo de Objeto do Documento) por meio de soquetes como um veículo de comunicação para a execução de código do lado do servidor ou como uma implementação do WebAssembly para a execução do C# compilado no navegador.
Desktop .NET para Mac Permite que os desenvolvedores .NET criem aplicativos para dispositivos Mac com interface do usuário nativa e acesso à API.
Desktop WinForms Uma estrutura para criar aplicativos no estilo "acinzentado" do Windows.
Desktop Windows Presentation Foundation (WPF) Uma estrutura para criar aplicativos da área de trabalho dinâmicos em conformidade com diferentes fatores forma. O WPF permite que os elementos da forma realizem movimentos, esmaecimentos, deslizamentos e outros efeitos com a ajuda de uma biblioteca de animações avançada.
Móvel .NET para Android Permite que os desenvolvedores de .NET criem aplicativos para dispositivos Android com interface do usuário nativa e acesso à API.
Dispositivos móveis .NET para iOS Permite que os desenvolvedores do .NET criem aplicativos para iOS e iPadOS com interface do usuário nativa e acesso à API.
Interface do usuário de aplicativos multiplataforma .NET MAUI A principal maneira de criar aplicativos para iOS, Android, Mac e Windows a partir de uma única base de código compartilhada com interface do usuário nativa e acesso a APIs nativas.

O .NET também alimenta ambientes populares de desenvolvimento de jogos de software livre e de terceiros e mecanismos como o Unity.

Usar as ferramentas do .NET para criar aplicativos .NET

Os desenvolvedores de software dependem de ferramentas para adicionar referências a bibliotecas de código e para escrever, compilar e depurar código. Esta seção descreve várias ferramentas do .NET que você usará para criar aplicativos .NET.

O Visual Studio 2022 é o principal ambiente de desenvolvimento da Microsoft. Milhões de desenvolvedores o utilizam para criar aplicativos .NET. Uma interface gráfica do usuário (que inclui menus, janelas, designers visuais, caixas de diálogo e assistentes) orienta os desenvolvedores no processo de desenvolvimento de aplicativos. Visual Studio 2022 está disponível em três edições: Community, Professional e Enterprise. Cada edição inclui ferramentas diferentes e é licenciada para finalidades diferentes.

O Visual Studio Code é o principal editor de código da Microsoft que dá suporte a várias linguagens de programação e é compatível com Windows, Mac e Linux. A Extensão do Kit de Desenvolvimento do C# traz o desenvolvimento aprimorado em C# que prioriza o editor para o Visual Studio Code e melhora a experiência de trabalho com projetos .NET com suporte para um gerenciador de soluções, sistema de projetos, aprimoramentos e explorador de testes, desenvolvimento assistido por IA e um poderoso serviço de linguagens para os recursos de linguagem do C# de classe superior, como navegação de código, refatoração, reconhecimento semântico e muito mais.

Os desenvolvedores que preferem um fluxo de trabalho de linha de comando podem usar uma combinação do Visual Studio Code, o editor de código mais popular do mundo, com a interface de linha de comando do .NET, também conhecida como CLI do .NET.

Além disso, você pode escolher entre várias ferramentas próprias e de terceiros para muitos casos de uso avançados do .NET. As opções incluem os criadores de perfil de código, executores de teste de unidade e analisadores de cobertura de código.

Você pode encontrar outras ferramentas do .NET para outros cenários. Por exemplo, posteriormente neste módulo, você trabalhará com Try .NET. Você usará essa interface baseada em navegador para escrever aplicativos simples, que irão ajudar você a aprender a linguagem de programação C#.

Encontrar soluções e respostas na documentação e nos tutoriais

A Microsoft fornece ativamente um conjunto avançado de documentação, tutoriais e treinamentos. Você encontrará materiais de aprendizagem em modalidades populares que ajudarão em cada etapa do processo de aprendizado.

A tabela a seguir contém ótimos recursos que você pode marcar como favoritos e acessar mais tarde.

Recurso Finalidade
Microsoft Learn Fornece tutoriais de início rápido e documentação de referência definitiva.
Parceiros e práticas Ajuda os desenvolvedores e arquitetos de software a encontrar soluções para necessidades comuns de desenvolvimento de aplicativos. Os recursos geralmente transcendem os detalhes de baixo nível de escrita de código e se aprofundam em produtos e serviços que permitem arquiteturas aparentemente infinitas e escalonáveis.
Vídeos do .NET Fornece tutoriais de vídeo da equipe .NET. Esses vídeos orientam os desenvolvedores em relação a cenários de uso comuns.
Introdução ao C# Fornece laboratórios práticos para que você desenvolva suas habilidades, combinando instruções, exercícios, mídia, verificações de conhecimentos e um meio de acompanhar seu progresso.

Interagir com a comunidade do .NET para aprender e compartilhar soluções

O ecossistema do .NET ultrapassa as linguagens, bibliotecas e ferramentas e chega até as pessoas. Você terá a liberdade tanto de aprender com a comunidade quanto de contribuir para ela.

  • Aprender: os membros da comunidade do .NET organizam eventos online em tempo real e encontros presenciais. Eles criam softwares livres, participam de fóruns de perguntas e respostas e gravam tutoriais em vídeo. Eles escrevem livros e criam postagens no blog que ajudam você a aprender e saber como prosseguir quando não tem certeza do que fazer em seguida.
  • Contribuir: o .NET é um software livre no GitHub. Os projetos nesse repositório são gerenciados pela .NET Foundation. Essa organização independente é dedicada ao crescimento de um ecossistema de software livre confiável e comercialmente amigável relacionado à plataforma de desenvolvimento do .NET. Nesse repositório, você pode compartilhar sua perspectiva e voz exclusivas para ajudar outras pessoas a aprenderem.

Como o ecossistema .NET se compara a outros?

Se você estiver familiarizado com o mundo de desenvolvimento de software, poderá se perguntar como o ecossistema .NET se compara a outros. Na verdade, outros ecossistemas podem realizar funções semelhantes a algumas ou muitas das declarações feitas até agora nesta unidade.

No entanto, um dos recursos mais distintos do .NET é que o desenvolvimento e suporte contínuos dele são provenientes não apenas de um líder de tecnologia, mas também da comunidade. Partes significativas do .NET foram desenvolvidas por meio de software livre. Os insights e as contribuições da comunidade são bem-vindos e incentivados. Na verdade, 87% dos colaboradores estão fora da Microsoft. Com base na contribuição da comunidade, a Microsoft desenvolve ativamente a plataforma atualizando-a com melhorias de recursos, correções de bugs e aprimoramentos de desempenho. Mais de 100 mil solicitações de pull da comunidade foram aceitas.

Além disso, o ecossistema .NET é popular:

  • Há mais de 5 milhões de desenvolvedores de .NET!
  • Os resultados das pesquisas do Stack Overflow mostram consistentemente que o .NET Core e o .NET são as estruturas mais apreciadas.
  • Os estudantes adoram o .NET; 40% dos desenvolvedores que estão iniciando no .NET são estudantes.
  • Os repositórios do GitHub para .NET e ASP.NET estão classificados entre os 30 projetos de OSS (software livre) mais rápidos.
  • O GitHub lista o C# entre as cinco principais linguagens de programação, e a linguagem está aumentando em popularidade de acordo com o índice da comunidade de programação TIOBE 2020.
  • O .NET tem a estrutura da Web mais rápida do planeta de acordo com os parâmetros de comparação do TechEmpower, um conjunto independente de software livre de parâmetros de comparação da Web que avalia dezenas de linguagens e estruturas de aplicativos.

Um breve histórico do .NET

O .NET Framework original foi lançado no início de 2002. Desde então, muitas atualizações e diversas outras funcionalidades foram introduzidas. Depois de anos de aprimoramentos e novos recursos, o .NET Framework original, especialmente as bibliotecas de código-chave, cresceu significativamente.

Depois de 2002, a Microsoft trabalhou para criar uma versão do .NET com compatibilidade entre plataformas. O objetivo era permitir que os desenvolvedores escrevessem uma base de código e a usassem em sistemas operacionais macOS, Linux e Windows.

Por meio desses esforços, o .NET Core foi introduzido por volta de 2014. A Microsoft manteve o .NET Framework original, mas novos recursos e aprimoramentos foram reservados para o .NET Core. O Core foi posteriormente descartado do nome. As principais versões seguintes são .NET 5, .NET 6, .NET 7, .NET 8 e assim por diante. As versões geralmente são lançadas em novembro.

Por que é relevante mencionar o histórico do .NET? Porque você provavelmente encontrará postagens no blog, vídeos e código-fonte direcionados ao .NET Framework original. Em alguns casos, as instruções ou o código ainda funcionam, porém, em outros, talvez seja necessário fazer ajustes para se adequar ao novo .NET.