Construindo o Formulário de Criar Equipe em C# – Lição 12 Explicada (Tim Corey)
Neste artigo, vamos dar uma olhada mais profunda no desenvolvimento de aplicativos C# através da "C# App Start To Finish Lesson 12 – Create Team Form Part 1" de Tim Corey. Tim nos guia através do processo de construção de um formulário do mundo real passo a passo, mostrando como dividir tarefas complexas de UI em pedaços menores e gerenciáveis. Ao seguir sua abordagem, você terá uma compreensão mais clara de como projetar e implementar aplicativos Windows Forms funcionais usando padrões limpos e estratégias de desenvolvimento práticas.
Desmembrando a Complexidade
Tim começa enfatizando uma mentalidade chave para os desenvolvedores: não se deixe sobrecarregar pela complexidade. Ele explica que o formulário pode parecer complicado à primeira vista, mas a solução é dividi-lo em pedaços menores. Tim diz que uma vez que você isole partes gerenciáveis, o problema se torna muito mais fácil de resolver. Essa filosofia é central para seu estilo de ensino e ajuda os iniciantes a manterem-se focados e confiantes durante o desenvolvimento.
Compreendendo o Formulário Create Team
Tim mostra o formulário "Create Team" e aponta que contém múltiplos componentes de UI, como botões, listas e tabelas. Ele observa que a seção Add New Member é essencialmente seu próprio formulário, similar ao formulário "Create Prize" construído em lições anteriores. Essa separação de funcionalidade é crucial porque permite que o desenvolvedor implemente uma seção de cada vez sem se perder na complexidade do formulário inteiro.
Esclarecendo o Propósito: Add New Person
Tim explica que a seção "Add New Member" está tecnicamente adicionando uma pessoa, não um membro da equipe. No banco de dados, a tabela people contém campos como nome, sobrenome, e-mail e celular. Um membro da equipe é simplesmente representado por um ID de pessoa e um ID de equipe. Tim observa que, mesmo que tecnicamente esteja adicionando uma pessoa, faz sentido chamá-lo de "Add New Member" porque se encaixa no propósito do formulário.
Criando o Evento do Botão
Tim demonstra como criar o evento do botão para o botão "Create Member". Ele explica que você pode clicar duas vezes no botão ou usar o painel de propriedades para criar o evento. Ele também explica como as convenções de nomenclatura afetam os nomes dos eventos, e porque a nomeação consistente é importante para evitar confusão mais tarde. Tim enfatiza que a nomeação deve ser feita antes de criar eventos para evitar alterações manuais extras.
A Lógica Dentro do Evento
Tim delineia os passos que o evento do botão deve executar:
-
Validar o formulário
-
Criar um modelo Person
-
Salvar a pessoa no banco de dados ou arquivo de texto
- Limpar o formulário
Ele compara esse fluxo de trabalho ao formulário "Create Prize" anterior, mostrando que o mesmo padrão se aplica. Tim explica que reutilizar padrões como esse é o que torna o desenvolvimento mais rápido e confiável.
Validação do Formulário
Tim constrói um método de validação chamado ValidateForm() e explica por que a consistência de nomeação é importante. Ele sugere que a validação pode ser simples ou complexa, dependendo das necessidades. Por agora, Tim mantém básico: todos os quatro campos devem conter texto. Ele discute como a validação poderia ser aperfeiçoada mais tarde para verificar formatos de e-mail ou comprimento de números de telefone, mas para esta lição, a validação básica é suficiente para seguir em frente.
Criando e Salvando o Modelo de Pessoa
Tim mostra como criar um PersonModel a partir dos campos do formulário e então passá-lo para a conexão global para salvar. Ele explica que o processo é o mesmo do formulário do prêmio: validar → criar modelo → salvar → limpar. Tim enfatiza que reutilizar padrões como esse é o que torna o desenvolvimento mais rápido e confiável.
Implementando o Método CreatePerson
Tim introduz a atualização de interface necessária para o novo método CreatePerson(PersonModel model) na interface IDataConnection. Ele explica que adicionar esse método causará erros de compilação em todas as classes existentes que implementam a interface. Tim destaca que isso é uma coisa boa porque força você a implementar o novo método adequadamente em todos os conectores.
Criando o Procedimento Armazenado SQL
Tim muda para SQL para criar o procedimento armazenado spPeople_Insert. Ele mapeia cuidadosamente parâmetros como FirstName, LastName, EmailAddress e CellPhoneNumber, garantindo tipos de dados e tamanhos corretos. Tim explica que tipos precisos são importantes para prevenir erros e garantir a integridade dos dados.
Ele também explica como capturar o ID recém-criado usando SCOPE_IDENTITY() e passá-lo de volta para o aplicativo. Este passo é crucial para manter IDs consistentes no banco de dados e no modelo do aplicativo.
Testando o Conector SQL
Tim testa o conector SQL executando o formulário e inserindo uma pessoa no banco de dados. Ele abre uma janela de consulta e verifica se os dados aparecem corretamente na tabela dbo.People. Tim observa que testar frequentemente é importante para identificar problemas cedo e confirmar que o sistema funciona conforme o esperado.
Implementando o Conector de Texto
Tim então se move para implementar a versão do Conector de Texto da mesma funcionalidade. Ele explica que a estrutura do código é semelhante, mas agora utiliza arquivos CSV em vez de SQL. Ele cria uma nova constante de arquivo chamada PersonModels.csv e adiciona métodos para converter dados CSV em objetos PersonModel.
Tim também discute a importância do formato dos dados e como valores separados por vírgulas podem causar problemas se vírgulas existirem dentro dos campos de dados. Ele sugere usar separadores diferentes ou validar a entrada para evitar problemas.
Criando o Método ConvertToPersonModels
Tim escreve o método ConvertToPersonModels() para analisar linhas CSV em objetos PersonModel. Ele mostra como dividir linhas, mapear valores para propriedades do modelo e adicioná-las a uma lista. Tim enfatiza que a ordem de mapeamento deve corresponder à ordem das colunas do CSV.
Salvando no Arquivo CSV
Tim cria o método SaveToPeopleFile() para salvar uma lista de objetos PersonModel de volta no arquivo CSV. Ele explica como construir linhas de string com valores separados por vírgulas e escrevê-los no arquivo. Tim destaca a importância de usar o caminho de arquivo correto para garantir que os dados sejam salvos corretamente.
Testes Finais e Resultados
Tim testa o conector de texto adicionando múltiplos membros e verificando se o arquivo CSV é atualizado corretamente. Ele confirma que os IDs incrementam corretamente e que todos os campos de dados são salvos. Tim observa que o processo agora está completo para esta parte do formulário.
Conclusão & Próximos Passos
Tim conclui a lição explicando que esta seção agora está completa. O próximo passo será conectar as listas de membros da equipe e finalizar a criação da equipe. Tim lembra aos alunos que este processo fica mais fácil com o tempo à medida que os padrões são repetidos e reutilizados, o que faz os desenvolvedores seniores parecerem rápidos—eles reutilizam padrões comprovados.
