Programa do Curso
Introdução à Plataforma Moderna .NET
- Visão geral do tempo de execução, SDK e plataforma unificada do .NET 8
- Comparação da evolução do .NET Framework, .NET Core e .NET 8+
- Estrutura de projeto, frameworks de destino e conceitos básicos de multi-alvo (multi-targeting)
- Configuração do ambiente de desenvolvimento e ferramentas
C# Moderno e Práticas Linguísticas Orientadas ao Futuro
- Records, setters apenas de inicialização (init-only) e padrões de imutabilidade
- Ampliações no pattern matching e expressões switch
- Tipos de referência anuláveis (nullable reference types) e segurança orientada pelo compilador
- Melhores práticas de async/await e streaming eficiente em memória
- Math genérico, membros abstract estáticos em interfaces e APIs orientadas à performance
- Preparação de bases de código para recursos do C# 12/13 no .NET 8
Fundamentos e Inicialização do Aplicativo ASP.NET Core
- Host builder, pipeline de middleware e ciclo de vida da solicitação
- Minimal APIs versus APIs baseadas em controllers: critérios de decisão
- Provedores de configuração, configurações específicas do ambiente e gerenciamento de segredos
- Arquivos estáticos, roteamento e convenções de endpoint
- Configuração do contêiner de injeção de dependência e ciclos de vida de serviços
Design e Implementação de API REST
- Modelo de maturidade REST, modelagem de recursos e design de URI
- Métodos HTTP, códigos de status e negociação de conteúdo
- Validação de solicitações, vinculação de modelos e integração com FluentValidation
- Estratégias de versionamento para APIs públicas e internas
- Documentação com OpenAPI e Swagger UI
- Teste de integração de APIs com TestServer e WebApplicationFactory
Injeção de Dependência Empresarial e Inversão de Controle (IoC)
- Injeção via construtor, ciclos de vida de serviço e dependências aprisionadas (captive dependencies)
- Padrões de decorador e fábrica com o contêiner integrado
- Integração do Scrutor e bibliotecas DI de terceiros
- Registro modular de serviços e organização baseada em recursos/funcionalidades (feature-based)
- Preocupações transversais (cross-cutting concerns) via middleware e filtros
Logging, Configuração e Tratamento Centralizado de Erros
- Logging estruturado com Microsoft.Extensions.Logging e Serilog
- Níveis de log, escopos, enriquecimento (enrichment) e configuração de sinks
- Middleware de exceção e pipelines globais de tratamento de erros
- ProblemDetails e respostas de erro compatíveis com RFC 7807
- Verificações de saúde (health checks), telemetria e ganchos de observabilidade
- Preparação para IDs de correlação e rastreamento distribuído
Arquitetura de Software para Soluções Empresariais .NET
- Princípios da arquitetura em camadas, hexagonal e limpa (clean architecture)
- Blocos de construção do Design Centrado no Domínio (DDD) no .NET
- Padrões CQRS e mediator com MediatR
- Padrões Repository e Unit of Work com EF Core
- Arquitetura Vertical Slice para coesão de funcionalidades
- Avaliação das vantagens e desvantagens entre monolito, monolito modular e microsserviços
Segurança para Aplicações Web e APIs
- Esquemas de autenticação: JWT, OAuth2, OpenID Connect e fluxos baseados em cookies
- Políticas de autorização, acesso baseado em claims e guarda-chuvas (guards) baseados em recursos
- Aplicação do HTTPS, HSTS e middleware de cabeçalhos seguros
- Sanitização de entrada, codificação de saída e mitigação das OWASP Top 10
- Limitação de taxa (rate limiting), políticas CORS e manipulação de tokens antifalsificação
- Gestão de segredos com Azure Key Vault e rotação orientada pelo ambiente
Qualidade do Código, Manutenibilidade e Melhores Práticas
- Padrões de codificação, EditorConfig e dotnet format
- Análise estática com analisadores Roslyn e integração com SonarQube
- Testes unitários com xUnit e mocking com Moq ou NSubstitute
- Teste de integração e de contrato em pipelines CI
- Técnicas de refatoração para módulos legados de longo ciclo de vida
- Documentação, contratos de API e práticas de compartilhamento de conhecimento
Estratégia de Modernização: Avaliando Código Legado do .NET Framework
- Análise de portfólio: classificar aplicativos por criticidade, complexidade e valor de negócio
- Uso do .NET Upgrade Assistant e analisador de compatibilidade
- Identificação de APIs obsoletas, dependências específicas da plataforma e lacunas em terceiros
- Considerações sobre APIs específicas do Windows e migração do WCF
- Criação de um roteiro de migração com priorização baseada em riscos
Migração Progressiva e Técnicas de Coexistência
- Padrão Strangler Fig: substituição incremental de subsistemas legados
- Migração API-first: expor domínios do .NET Framework via fachadas REST
- Ponte baseada em mensagens com RabbitMQ, Azure Service Bus ou Kafka
- Coexistência de banco de dados compartilhado e estratégias de versionamento de esquema
- Execução do .NET Framework e .NET 8 lado a lado na mesma infraestrutura
- Containerização de componentes modernos enquanto o legado permanece no IIS
Laboratório Prático de Migração e Revisão
- Aplicação do Upgrade Assistant em um projeto legado representativo
- Refatoração de um serviço Web Forms ou WCF em APIs ASP.NET Core
- Implementação de DI, logging e tratamento centralizado de erros na solução migrada
- Adição de autenticação e autorização à nova superfície de API
- Verificação da coexistência por meio de testes de integração ponta a ponta
- Revisão, perguntas e respostas (Q&A), e orientação para planejamento de modernização pós-formação
Requisitos
- Experiência com programação C# e princípios de design orientado a objetos
- Conhecimento básico de conceitos de desenvolvimento web (HTTP, HTML, CSS, JavaScript)
- Compreensão básica de bancos de dados relacionais e SQL
- A exposição prévia ao .NET Framework ou ASP.NET é útil, mas não obrigatória
Público-alvo
- Desenvolvedores e arquitetos .NET preparados para modernizar aplicativos legados do .NET Framework
- Engenheiros de software que estão ingressando em funções de desenvolvimento empresarial com .NET
- Líderes técnicos responsáveis pelo planejamento de migração de plataforma e coexistência
- Equipes de DevOps e infraestrutura que apoiam os ciclos de vida de aplicativos .NET
Testemunhos de Clientes (2)
Interatividade e soluções de código sob demanda
Eduard-Emanuel Zaharia - Kruk Italia
Curso - Advanced Blazor
Máquina Traduzida
oportunidade de prática hands-on e a paciência do instrutor
sheena - Te Manawa Taki Trauma System
Curso - Visual Studio 2022 IDE
Máquina Traduzida