Programa do Curso
De Habilidades de Linguagem ao Design de Soluções
- Recursos avançados do C# e suas implicações no design.
- Recuperando a intenção de design a partir de código existente.
Análise de Requisitos e Modelagem de Domínio
- Casos de uso, histórias de usuário e critérios de aceite.
- Modelos de domínio e linguagem ubíqua.
Princípios de Design de Software
- Princípios SOLID aplicados a soluções .NET.
- Coplamento, coesão e direção de dependências.
Padrões de Design para Aplicações .NET
- Seleção de padrões criacionais, estruturais e comportamentais.
- Padrões e anti-padrões em código existente.
Estilos de Arquitetura e Tomada de Decisões Técnicas
- Comparação entre arquitetura em camadas, hexagonal e clean architecture.
- Registros de decisão de arquitetura e análise de trade-offs.
Planejamento da Estrutura da Solução
- Organização de soluções e projetos para bases de código grandes.
- Monolito modular versus fronteiras orientadas a serviços.
C# Moderno para Código Manutenível
- Pattern matching, records e tipos de referência nulos.
- Genéricos, LINQ e composição funcional.
Tratamento de Exceções, Log e Observabilidade
- Estratégia de exceções e contratos de erro.
- Log estruturado, correlação e verificação de saúde.
Reflexão, Atributos e Metaprogramação
- Design baseado em atributos e casos de uso de reflexão.
- Geradores de código-fonte e geração de código em tempo de compilação.
Fundamentos do ASP.NET Core
- Modelo de hospedagem, injeção de dependência e configuração.
- Pipeline de requisições, middleware e filtros.
Projetando APIs REST
- Modelagem de recursos e semântica HTTP.
- Versionamento, validação e respostas de erro.
- Contratos de API com OpenAPI.
Segurando Aplicações .NET
- Autenticação e autorização com OpenID Connect.
- AutORIZAÇÃO baseada em políticas e gerenciamento de segredos.
Modelagem de Ameaças e Design Seguro
- Modelagem STRIDE e fronteiras de confiança.
- Revisão de design seguro antes da implementação.
Acesso a Dados com Entity Framework Core
- Modelagem de entidades e relacionamentos.
- Ciclo de vida do DbContext e estratégia de migração.
Desempenho de Consultas e Arquitetura de Dados
- Estratégias de carregamento e armadilhas de carregamento antecipado (eager loading).
- Transações, tokens de concorrência e bypass do EF.
Concorrência e Programação Assíncrona
- Tasks, TPL e armadilhas de async/await.
- Sincronização, cancelamento e segurança de threads.
Otimização de Desempenho
- Perfilamento e benchmarking com BenchmarkDotNet.
- Memória, alocações e coleta de lixo (garbage collection).
- Estratégias de cache e testes de carga.
Estratégia de Testes em Todas as Camadas
- Fronteiras de testes unitários, de integração e ponta a ponta.
- Arquitetura testável e duplos de teste (test doubles).
Implantação e Prontidão Operacional
- Containers, configuração e pipelines CI/CD.
- Diagnóstico em produção e segurança de lançamentos.
Estudo de Caso Final: Revisão de Design e Implementação
- Revisão de arquitetura de uma aplicação de caso.
- Implementação e refatoração de uma fatia de funcionalidade.
Requisitos
- Experiência em programação em C#
- Conhecimento prático de programação orientada a objetos
- Conhecimentos básicos de SQL e bancos de dados relacionais
Público-Alvo
- Desenvolvedores .NET
- Engenheiros de software e líderes técnicos
- Desenvolvedores em transição para cargos de design de aplicações
Testemunhos de Clientes (4)
Foi um treinamento individual, então foi especializado de acordo com as minhas necessidades específicas. Shane destacou elementos do WPF/C# que poderiam ser benéficos para os meus projetos de desenvolvimento.
Warren Nolan - Northrop Grumman
Curso - Programming in WPF
Máquina Traduzida
Conhecimento, envolvimento e relacionamento do instrutor
Adam Kuklewski - GE Medical Systems Polska
Curso - Technical Architecture and Patterns
Máquina Traduzida
As explicações e a interatividade do instrutor realmente trouxeram o assunto à vida; mesmo eu provavelmente não sendo experiente o suficiente, ainda aprendi muito com isso!
Pieter Bruynseels - Spot Buy Center BV
Curso - Design Patterns
Máquina Traduzida
Agradável e amigável. Muito conhecedor. Recomendaria Shane a outras pessoas.
Joshua - California State University Bakersfield
Curso - Programming in C# with Visual Studio 2022
Máquina Traduzida