Common Libraries Template

Template profissional para Visual Studio 2022

.NET 9.0 Visual Studio 2022 Pronto para Produção v2.0

Sobre o Template

Um template profissional para Visual Studio 2022 que permite criar rapidamente uma solução com bibliotecas Common reutilizáveis. O template cria automaticamente 5 projetos interconectados com validações robustas, documentação completa e pronto para produção.

Projetos Incluídos

Common.Results

Biblioteca para padronização de retornos de operações

  • Result e Result<T>
  • Extensões fluent
  • Metadados tipados
  • Serialização JSON

Common.Exceptions

Biblioteca de exceções personalizadas

  • AppException base
  • Serialização .NET Framework
  • CorrelationId
  • DomainException

Common.Extensions

Biblioteca de extensões úteis

  • Extensões para Result
  • Validações automáticas
  • String, List, Enum
  • JSON extensions

Common.Email

Biblioteca de envio de emails

  • MailKit integration
  • SSL/TLS support
  • Validação de email
  • Suporte a anexos

Common.Logging

Biblioteca de logging

  • Serilog integration
  • CorrelationId middleware
  • Múltiplos sinks
  • Logging de resultados

Instalação

Passo 1: Baixar o Template

Baixe o arquivo CommonLibrariesTemplate.zip da seção Releases do GitHub.

Passo 2: Copiar para Visual Studio

Copie o arquivo para a pasta de templates:

%USERPROFILE%\Documents\Visual Studio 2022\Templates\ProjectTemplates\

Passo 3: Reiniciar Visual Studio

Reinicie o Visual Studio 2022 para carregar o novo template.

Passo 4: Criar Novo Projeto

  1. Abra o Visual Studio 2022
  2. Clique em "Criar um novo projeto"
  3. Procure por "Common Libraries Solution Template"
  4. Digite o nome do seu projeto
  5. Pronto! A solução será criada automaticamente

Melhorias da Versão 2.0

🔒 Segurança

Validações robustas em todos os componentes, incluindo validação de email, configurações SMTP e parâmetros de entrada.

🛡️ Exceções

Tratamento melhorado de exceções com mensagens específicas e rastreamento de erros.

📚 Documentação

Comentários XML profissionais em todas as classes e métodos com exemplos detalhados.

💎 Qualidade

Proteção contra null, validação de limites e conversão segura de tipos.

Exemplos de Uso

Result Pattern

var result = new Result<Usuario>();
if (id <= 0)
    return result.Failed("ID inválido");

var usuario = _repository.Obter(id);
if (usuario == null)
    return result.NotFound("Usuário não encontrado");

return result.Successful(usuario);

Envio de Email

var message = new EmailMessage
{
    From = new EmailAddress("Sistema", "noreply@exemplo.com"),
    To = new[] { new EmailAddress("Usuário", "usuario@exemplo.com") },
    Subject = "Bem-vindo!",
    HtmlBody = "<h1>Bem-vindo!</h1>"
};

await _emailSender.SendAsync(message);

Exceções Customizadas

throw new DomainException("CPF_INVALIDO", "CPF inválido")
    .WithCorrelation(correlationId)
    .WithMeta("Cpf", cpf);