Pular para conteúdo

Introdução

O .net é uma plataforma de desenvolvimento de aplicações concebida e mantida pela Microsoft desde 2001.

Ao longo dos anos tecnologias, nomenclaturas e arquiteturas de desenvolvimento foram criadas, modificadas e gradativamente abandonadas.

Atualmente existem duas grandes divisões das tecnologias relacionadas à plataforma .net.

.net framework

Ligada aos primórdios da plataforma, atualmente é mantida apenas em caráter de sustentação e correções críticas. Nenhuma nova funcionalidade é ou será adicionada. Tecnologias como AspNet.WebForms, Microsoft Ajax, Windows Communication Framework, Serviços SOAP, SOAP, Silverlight existem apenas para esta plataforma e são igualmente mantidas apenas com correções de falhas críticas.

Um outro ponto a ser destacado é que esta plataforma está profundamente entrelaçada com o Sistema Operacional Windows, embora a iniciativa Mono.Net tenha portado com razoável sucesso a tecnologia Aspnet WebForms para o sistema operacional Linux.

A última versão publicada para esta plataforma é a de número 4.8. O Visual Studio 2022 ainda suporta a criação e desenvolvimento dew aplicações usando este framework.

.net

A partir de 2016, uma importante redefinição da plataforma - inicialmente chamada de .net core e agora simplesmente de .net - foi iniciada com um propósito bastante ambicioso de ser portável para três dos grandes sistemas operacionais da atualidade: Microsoft Windows, Linux e MacOS. Além dos sistemas operacionais este framework também foi desenhado para a execução em containers e é a única variante do .net mantida e evoluída pela Microsoft atualmente.

Existem três grandes modelos de trabalho para a plataforma .net atualmente. Em cada um desses modelos, existem runtimes e partes do SDK evoluídas de maneira especializada. São eles:

aspnet core

  • Aplicações Web interativas são feitas utilizando Aspnet MVC.
  • Aplicações de serviços são feitas utilizando o stack Aspnet WebAPI.
  • Aplicações reativas são feitas utilizando o stack SignalR.
  • Aplicações híbridas são feitas utilizando o stack Blazor.

UWP

  • Aplicações para desktop que precisam ser instaladas no sistema operacional do usuário
  • Arquitetadas para trabalhar em Windows, Linux e MacOS
  • Engloba atualmente o stack Windows Forms, completamente redesenhado para executar em vários sistemas operacionais.

Console

  • Aplicativos de terminal de comando e serviços do tipo daemon
  • Não suportam, por padrão, o protocolo HTTP
  • Arquitetadas para execução por longo tempo.

O presente estudo não se debruça de maneira específica sobre nenhuma das três divisões apresentadas. Ao contrário, se concentra em fundamentos úteis para qualquer uma dessas divisões, bem como fundamentos da utilização do Visual Studio, projetos, soluções, deployment, testes e depuração.

Estrutura deste estudo

As seções deste documento são as seguintes:

Software para desenvolvimento

Apresenta SDK e ferramentas mais utilizadas para o desenvolvimento em .net.

Solutions e Projects I - Solutions

Apresenta as estruturas fundamentais de organização e gestão de códigos no Visual Studio e de uma forma mais ampla, no próprio .net. Nesta seção, é apresentada uma exploração inicial das solutions e comandos úteis.

Solutions e Projects II - Projects

Continuando a estrutura de organização e gestão de códigos no Visual Studio é apresentada a estrutura de projetos, que é o bloco básico de organização de códigos, dependências e compilação para o .net.

Modelos de objetos

É apresentada uma contribuição de organização para códigos em softwares. É uma sugestão de organização utilizando padrões conhecidos de modelos de objetos. Conceitos como Entidades, Agregações, Serviços, Value Objects, Result e assim por diante.

Componentes Estruturais

Acesso a dados relacionais, cache, injeção de dependências, subsistema de configuração são apresentados nesta seção.

Tratamento Estruturado de Exceptions

Uma discussão sobre exceptions e o tratamento estruturado de exceptions ao longo de módulos com várias camadas.

Depuração

Características e habilidades oferecidas pelo Visual Studio. Dicas sobre depuração e apresentação das ferramentas oferecidas para uma depuração efetiva de software.

Testagem I - Ferramentas e Cenários

Apresentação do xUnit e do MSTest e de alguns cenários de testes de software.

Testagem II - Reflexões sobre testagem

O ferramental de testes é uma estrutura poderosa de execução de código em modo sandbox. Possibilita a execução direta de rotinas sem a cerimônia de execução de todo o roteiro planejado para que o software execute. É possível aproveitar esse ferramental de outras maneiras entretanto. A utilização do ferramental de testes como apoio à própria tarefa de desenvolvimento de blocos, módulos e classes. Também se discute pequenos truques que ajudam a ampliar o número de cenários de dados testados e a utilização do teste como oportunidade rápida de verificação de conceitos ou auxiliar durante a construção de POC.

Estruturas exóticas na programação c&sharp

Embora a plataforma .net seja arquitetada para suportar a programação orientada a objetos, existem variações desse padrão a exemplo de mixins, extensões funcionais, regions, sintaxe estendidas, enumerações tardias, etc.