A empresa ContainRs nos contratou como pessoas desenvolvedoras. O negócio dessa empresa é o aluguel de contêineres, caixas de aço usadas para residências, escritórios e eventos. Eles possuem um sistema que realiza a manutenção dos seus processos.
Neste curso, vamos trabalhar com apenas uma parte desse sistema, que é o registro das pessoas clientes interessadas no aluguel. Abaixo, temos o formulário de registro, que contém bastante informações para estudos.
Vamos acessar essa tela e cadastrar uma pessoa como exemplo, preenchendo campos como "Nome", "E-mail", "CPF", "Celular" e "Endereço". Ao clicar no botão "Registrar", a caixa de diálogo abaixo substituirá a tela de registro:
Com isso, a pessoa terá sido cadastrada no banco de dados e receberá uma mensagem de sucesso. Caso desejado, é possível clicar no botão "Novo Registro" nessa caixa para retornar ao formulário. Este é apenas um exemplo de formulário de registro para trabalhar no curso.
Explorando a solução no Visual Studio
Como pessoas desenvolvedoras, somos curiosas, especialmente ao assumir o papel de desenvolver e evoluir um projeto. Temos interesse em entender como a solução está definida. Vamos abrir o projeto no Visual Studio para examinar essa solução.
No Visual Studio, focaremos na visão da aba "Gerenciador de Soluções", localizada na lateral esquerda. Em seu interior, temos a seguinte estrutura:
Estrutura do projeto
- Solução 'ContainRs' (1 de 1 projeto)
- Itens de Solução
- ContainRs.WebApp
- Connected Services
- Dependências
- Properties
- wwwroot
- Controllers
- Data
- Models
- Services
- Views
appsettings.jsonProgram.cs
A solução se chama "ContainRs" e contém um projeto chamado "ContainRs.WebApp", que é a aplicação web com o formulário de registro e todo o código associado. Este projeto está organizado em pastas, como "Properties", "Controllers", "Data", "Models" e "Services". Há também uma pasta especial para aplicações web, a "wwwroot", que, embora não tenha o ícone de uma pasta comum, é uma pasta no sistema de arquivos.
Além disso, há dois arquivos na raiz do projeto: appset.json e program.cs. Dentro das pastas, encontramos arquivos C# e outros tipos de arquivos.
Compreendendo a arquitetura do software
Ao analisar uma solução, observamos a organização de suas pastas, o que é importante para definir a arquitetura. Vamos discutir algumas definições de arquitetura para fundamentar nosso estudo.
A primeira definição de arquitetura, do dicionário Michaelis, refere-se à construção civil, descrevendo arquitetura como:
"(…) modo como se dispõem as partes ou os elementos de um edifício (…), tendo em vista a criação de espaços agradáveis (…)"
Uma definição mais genérica é:
"(…) estrutura, disposição e organização de um conjunto geralmente harmônico."
No contexto de software, segundo Robert C. Martin, autor do livro Arquitetura Limpa, a arquitetura de software é:
"(…) a divisão em componentes, o arranjo desses componentes e as formas como eles se comunicam entre si."
As três definições destacam componentes e sua comunicação, com o objetivo de trazer harmonia e utilidade ao conjunto.
Próximos passos
Voltando ao Visual Studio, vamos entender as partes da aplicação web "ContainRs.WebApp", que está arquitetada em "Controllers", "Data", "Models", "Views" e "Services". Outros arquivos também contribuem para a harmonia e interação entre essas partes.
Discutiremos essa comunicação entre as partes a seguir.