FCG.10NETT
1.0.7
See the version list below for details.
dotnet add package FCG.10NETT --version 1.0.7
NuGet\Install-Package FCG.10NETT -Version 1.0.7
<PackageReference Include="FCG.10NETT" Version="1.0.7" />
<PackageVersion Include="FCG.10NETT" Version="1.0.7" />
<PackageReference Include="FCG.10NETT" />
paket add FCG.10NETT --version 1.0.7
#r "nuget: FCG.10NETT, 1.0.7"
#:package FCG.10NETT@1.0.7
#addin nuget:?package=FCG.10NETT&version=1.0.7
#tool nuget:?package=FCG.10NETT&version=1.0.7
🚀 Tech Challenge - Fase 2 | Arquitetura de Microsserviços
Documentação Completa do Projeto - Transformação de aplicação monolítica em microsserviços orientados a eventos
📦 Sobre Este Projeto - FCG.Generics (FCG.10NETT) - Versão 1.0.2
⚠️ OBSERVAÇÃO IMPORTANTE: Este repositório contém o projeto compartilhado extraído da solução original para ser distribuído como pacote NuGet.
🔄 Processo de Separação
Este projeto foi separado da solução monolítica pos-tech-fcg-user-api para uma solução independente com o objetivo de:
- ✅ Gerar um pacote NuGet reutilizável
- ✅ Compartilhar código comum entre todos os microsserviços da Fase 2
- ✅ Distribuir padrões de código (
.editorconfig) e convenções de projeto - ✅ Centralizar recursos do Tech Challenge (documentação, templates, etc.)
📝 Histórico de Nomenclatura
Durante o processo de publicação, ocorreram as seguintes mudanças de nomenclatura devido a conflitos no NuGet.org:
| Elemento | Nome Original | Nome Atual | Motivo da Mudança |
|---|---|---|---|
| Namespace | FCG.Shared |
FCG.Generics |
Conflito de nome no NuGet.org |
| Pacote NuGet | FCG.Shared |
FCG.10NETT |
Identificador único e relacionado ao .NET 8/10 |
| Repositório | - | pos-tech-fcg-shared |
Mantido para clareza do propósito |
🎯 Propósito do Pacote
O FCG.10NETT fornece:
- 📋 Padrões de Código:
.editorconfigconfigurado com regras C# do projeto - 📚 Recursos do Tech Challenge: Documentação, templates e guias na pasta
Tech.Challenge - 🔧 Classes Utilitárias: (A serem adicionadas) Helpers, extensions e componentes compartilhados
- ⚙️ Configurações Base: Configurações comuns para ASP.NET Core e Entity Framework
📦 Instalação
Via GitHub Packages
# Configurar fonte NuGet do GitHub (uma vez)
dotnet nuget add source "https://nuget.pkg.github.com/marcel0liveira/index.json" \
--name "GitHub-FCG" \
--username marcel0liveira \
--password SEU_GITHUB_PAT
# Instalar o pacote
dotnet add package FCG.10NETT
Via NuGet.org (Futuro)
dotnet add package FCG.10NETT
🚀 Uso
Após instalar o pacote, você terá acesso a:
1. Padrões EditorConfig
O .editorconfig estará disponível em content/. Copie para a raiz da sua solução:
# PowerShell
Copy-Item "packages\FCG.10NETT.*\content\.editorconfig" ".\.editorconfig"
2. Recursos Tech.Challenge
Documentação e templates estarão em content/Tech.Challenge/:
packages/FCG.10NETT.x.x.x/
└── content/
└── Tech.Challenge/
├── README.md
├── 00-Geral/
├── 10-Microsservicos/
└── 20-Infraestrutura/
3. Componentes Compartilhados (Futuro)
using FCG.Generics;
// Exemplo de uso futuro
var validator = new GenericValidator<MyEntity>();
🔗 Microsserviços que Consomem Este Pacote
| Microsserviço | Status | Repositório |
|---|---|---|
| UserAPI | ✅ Implementado | pos-tech-fcg-user-api |
| CatalogAPI | 🔴 Planejado | - |
| PaymentsAPI | 🔴 Planejado | - |
| NotificationsAPI | 🔴 Planejado | - |
📋 Índice
- 🎯 Visão Geral
- 📊 Status do Projeto
- 📂 Documentação
- 🛠️ Stack Tecnológica
- 🚦 Começar Aqui
- 🎓 Trilhas de Aprendizado
- 📈 Progresso e Métricas
- 🔗 Links Rápidos
🎯 Visão Geral
Projeto de refatoração de aplicação monolítica para arquitetura de microsserviços orientada a eventos, aplicando as melhores práticas de engenharia de software.
Objetivos Principais
- ✅ Implementar 4 microsserviços independentes
- ✅ Aplicar Clean Architecture em todos os serviços
- ✅ Implementar comunicação assíncrona via eventos
- ✅ Configurar Message Broker (RabbitMQ)
- ✅ Orquestrar com Kubernetes
- ✅ Alcançar >80% de cobertura de testes
📊 Status do Projeto
✅ Microsserviços
| Serviço | Status | Progresso | Testes | Porta | Repositório |
|---|---|---|---|---|---|
| UserAPI | ✅ Concluído | 100% | 190+ | 8080 | GitHub |
| CatalogAPI | 🔴 Planejado | 0% | 0/95 | 8081 | - |
| PaymentsAPI | 🔴 Planejado | 0% | 0/70 | 8082 | - |
| NotificationsAPI | 🔴 Planejado | 0% | 0/60 | 8083 | - |
⚙️ Infraestrutura
| Componente | Status | Progresso |
|---|---|---|
| RabbitMQ | 🔴 Planejado | 0% |
| Kubernetes | 🔴 Planejado | 0% |
| CI/CD Pipeline | 🔴 Planejado | 0% |
| NuGet Compartilhado | ✅ Publicado | 100% |
📈 Métricas Gerais
Microsserviços: ████░░░░░░ 25% (1/4 concluído)
Infraestrutura: ██░░░░░░░░ 25% (1/4 componentes)
Testes Totais: ████░░░░░░ 46% (190/415+ previstos)
Documentação: ██████████ 100% (12/12 arquivos)
📂 Documentação
📋 Estrutura de Arquivos
📁 Fase.2/
│
├── 📄 README.md ⭐ Este arquivo (Ponto de Entrada)
│
├── 📋 DOCUMENTAÇÃO GERAL (00-04)
│ ├── 📄 00-INDEX.md (Índice Completo + FAQ)
│ ├── 📄 01-README.md (Resumo Executivo)
│ ├── 📄 02-DiarioDeBordo.md (Checklist de Progresso)
│ ├── 📄 03-ProximasEtapas.md (Timeline Detalhada)
│ └── 📄 04-Arquitetura.md (Diagramas e Fluxos)
│
├── 🔧 PLANOS DE MICROSSERVIÇOS (10-13)
│ ├── 📄 10-UserAPI-Plan.md ✅ UserAPI (Referência)
│ ├── 📄 11-CatalogAPI-Plan.md 🎮 CatalogAPI
│ ├── 📄 12-PaymentsAPI-Plan.md 💳 PaymentsAPI
│ └── 📄 13-NotificationsAPI-Plan.md 📧 NotificationsAPI
│
├── ⚙️ INFRAESTRUTURA (20)
│ └── 📄 20-Infrastructure-Plan.md (RabbitMQ + Kubernetes)
│
└── 📚 META-DOCUMENTAÇÃO (90)
└── 📄 90-EstruturaDaDocumentacao.md (Guia da Docs)
🎯 Navegação Rápida
| Você precisa... | Acesse este documento | Tempo |
|---|---|---|
| 🆕 Começar do zero | 00-INDEX.md | 10 min |
| 📊 Visão executiva | 01-README.md | 5 min |
| ✅ Ver progresso | 02-DiarioDeBordo.md | 5 min |
| 📅 Ver timeline | 03-ProximasEtapas.md | 8 min |
| 🏗️ Entender arquitetura | 04-Arquitetura.md | 15 min |
| 💻 Ver API completa | 10-UserAPI-Plan.md | 20 min |
| 🎮 Desenvolver CatalogAPI | 11-CatalogAPI-Plan.md | 2-3 dias |
| 💳 Desenvolver PaymentsAPI | 12-PaymentsAPI-Plan.md | 2 dias |
| 📧 Desenvolver NotificationsAPI | 13-NotificationsAPI-Plan.md | 1-2 dias |
| 🔧 Configurar infraestrutura | 20-Infrastructure-Plan.md | 2-4 dias |
🛠️ Stack Tecnológica
Backend
- .NET 8 - Framework principal
- ASP.NET Core Web API - APIs RESTful
- Entity Framework Core 8 - ORM
- FluentValidation - Validação de dados
- MassTransit - Message broker abstraction
Banco de Dados
- PostgreSQL 16 - Banco de dados relacional
Message Broker
- RabbitMQ 3.12 - Comunicação assíncrona
DevOps & Infraestrutura
- Docker - Containerização
- Docker Compose - Orquestração local
- Kubernetes - Orquestração em produção
Testes
- xUnit - Framework de testes
- FluentAssertions - Assertions fluentes
- Moq - Mocking
- Testcontainers - Testes de integração
Observabilidade
- OpenTelemetry - Logs, métricas e tracing
- Health Checks - Monitoramento de saúde
- Serilog - Logging estruturado
🚦 Começar Aqui
👶 Para Iniciantes
- 00-INDEX.md - Entenda a estrutura completa
- 01-README.md - Leia o resumo executivo
- 04-Arquitetura.md - Estude os diagramas
- 10-UserAPI-Plan.md - Analise o exemplo completo
👨💻 Para Desenvolvedores Experientes
- 03-ProximasEtapas.md - Veja a timeline
- 04-Arquitetura.md - Entenda os fluxos
- Escolha um plano: CatalogAPI, PaymentsAPI ou NotificationsAPI
🔧 Para DevOps
- 20-Infrastructure-Plan.md - RabbitMQ e Kubernetes
- 03-ProximasEtapas.md - Docker Compose master
🎓 Trilhas de Aprendizado
📚 Conceitos Fundamentais
Clean Architecture
- ✅ API Layer: Controllers, endpoints
- ✅ Application Layer: DTOs, interfaces, validações
- ✅ Domain Layer: Entidades, value objects, regras de negócio
- ✅ Infrastructure Layer: Repositórios, banco de dados, serviços externos
Event-Driven Architecture
- ✅ Publishers: Publicam eventos após ações
- ✅ Consumers: Consomem eventos e executam ações
- ✅ Message Broker: RabbitMQ para comunicação assíncrona
- ✅ Event Sourcing: Registro de eventos como fonte da verdade
🛤️ Jornada de Desenvolvimento
Semana 1: CatalogAPI (2-3 dias) + PaymentsAPI (2 dias)
↓
Semana 2: NotificationsAPI (1-2 dias) + RabbitMQ (2 dias)
↓
Semana 3: Kubernetes (2 dias) + Integração (2 dias)
↓
Semana 4: Testes E2E (1 dia) + Vídeo (1 dia) + Entrega (1 dia)
📈 Progresso e Métricas
🎯 Entregas Finais
- UserAPI - Funcionando com 190+ testes ✅
- FCG.10NETT (NuGet) - Pacote compartilhado publicado ✅
- CatalogAPI - CRUD de jogos + eventos
- PaymentsAPI - Processamento simulado
- NotificationsAPI - E-mails simulados
- RabbitMQ - Message broker configurado
- Kubernetes - Todos os pods rodando
- Docker Compose - Ambiente local completo
- Vídeo - Demonstração de 20min
- Relatório - Documentação de entrega
📊 Estatísticas Detalhadas
| Categoria | Atual | Meta | Progresso |
|---|---|---|---|
| Microsserviços | 1 | 4 | 25% |
| Testes Unitários | 145+ | 300+ | 48% |
| Testes Integração | 45+ | 115+ | 39% |
| Cobertura Código | 85% | 80% | ✅ |
| Documentação | 12 | 12 | 100% |
| Infraestrutura | 1 | 4 | 25% |
🔗 Links Rápidos
📚 Documentação do Projeto
| Documento | Descrição |
|---|---|
| 00-INDEX.md | Índice geral + FAQ |
| 01-README.md | Resumo executivo |
| 02-DiarioDeBordo.md | Checklist de tarefas |
| 03-ProximasEtapas.md | Timeline detalhada |
| 04-Arquitetura.md | Diagramas e fluxos |
🔧 Planos de Microsserviços
| Microsserviço | Estimativa | Status |
|---|---|---|
| UserAPI | ✅ Concluído | Referência |
| CatalogAPI | 2-3 dias | A fazer |
| PaymentsAPI | 2 dias | A fazer |
| NotificationsAPI | 1-2 dias | A fazer |
⚙️ Infraestrutura
| Componente | Estimativa | Documento |
|---|---|---|
| NuGet Compartilhado | ✅ Publicado | Este README |
| RabbitMQ | 2 dias | 20-Infrastructure-Plan.md |
| Kubernetes | 2 dias | 20-Infrastructure-Plan.md |
🌐 Links Externos
| Tecnologia | Documentação |
|---|---|
| .NET 8 | Microsoft Docs |
| RabbitMQ | RabbitMQ Docs |
| Kubernetes | Kubernetes Docs |
| Docker | Docker Docs |
| GitHub Packages | GitHub Docs |
📦 Repositórios GitHub
| Repositório | Status | Link |
|---|---|---|
| Shared/Generics | ✅ Público | marcel0liveira/pos-tech-fcg-shared |
| UserAPI | ✅ Público | marcel0liveira/pos-tech-fcg-user-api |
| CatalogAPI | 🔴 A criar | - |
| PaymentsAPI | 🔴 A criar | - |
| NotificationsAPI | 🔴 A criar | - |
| Orquestração | 🔴 A criar | - |
💡 Dicas de Produtividade
✅ Boas Práticas
- Instale o pacote FCG.10NETT em todos os microsserviços para consistência
- Leia o plano completo antes de começar a desenvolver
- Use o UserAPI como referência - já está 100% concluído
- Siga a Clean Architecture - mantém o código organizado
- Escreva testes desde o início - economiza tempo depois
- Documente conforme desenvolve - não deixe para depois
⚠️ Armadilhas Comuns
- ❌ Começar a codificar sem ler a arquitetura
- ❌ Pular os testes automatizados
- ❌ Não seguir o padrão de nomenclatura (use
.editorconfigdo pacote) - ❌ Ignorar a documentação do README
- ❌ Deixar a integração de eventos para o final
📞 Suporte e Recursos
💻 Código de Referência
- UserAPI Completo: GitHub Repository
- Plano UserAPI: 10-UserAPI-Plan.md
- Pacote NuGet Compartilhado: GitHub Packages
📚 Documentação Adicional
- FAQ Completo: 00-INDEX.md#-faq---perguntas-frequentes
- Guia da Documentação: 90-EstruturaDaDocumentacao.md
🤝 Comunidade
- Discord do grupo
- GitHub Issues para dúvidas técnicas
- Code Reviews via Pull Requests
🎉 Próximos Passos
Esta Semana
- ✅ UserAPI Concluído (100%)
- ✅ FCG.10NETT Publicado (100%)
- 🔴 Iniciar CatalogAPI → Ver Plano
Próximas Semanas
- 🔴 PaymentsAPI → Ver Plano
- 🔴 NotificationsAPI → Ver Plano
- 🔴 RabbitMQ → Ver Guia
- 🔴 Kubernetes → Ver Guia
📄 Licença e Créditos
Projeto Acadêmico - FIAP Tech Challenge - Fase 2
Equipe: [Nomes dos integrantes]
Data: Janeiro 2025
Versão da Documentação: 2.4
Pacote NuGet: FCG.10NETT v1.0.0
🚀 Vamos construir algo incrível!
Para começar, acesse o Índice Geral (00-INDEX.md) ou escolha um Plano de Microsserviço para desenvolver.
📦 Não esqueça de instalar o pacote compartilhado: dotnet add package FCG.10NETT
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- FluentValidation (>= 12.1.1)
- Microsoft.AspNetCore.Mvc.Core (>= 2.3.0)
- Newtonsoft.Json (>= 13.0.4)
- System.AppContext (>= 4.3.0)
- System.Text.Encoding (>= 4.3.0)
- System.Text.Encodings.Web (>= 10.0.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.18 | 171 | 1/19/2026 |
| 1.0.17 | 152 | 1/15/2026 |
| 1.0.16 | 145 | 1/14/2026 |
| 1.0.15 | 147 | 1/13/2026 |
| 1.0.14 | 136 | 1/13/2026 |
| 1.0.13 | 136 | 1/13/2026 |
| 1.0.12 | 142 | 1/11/2026 |
| 1.0.11 | 137 | 1/10/2026 |
| 1.0.10 | 144 | 1/9/2026 |
| 1.0.9 | 143 | 1/9/2026 |
| 1.0.8 | 140 | 1/9/2026 |
| 1.0.7 | 135 | 1/8/2026 |
| 1.0.6 | 147 | 1/8/2026 |
| 1.0.5 | 153 | 1/2/2026 |
| 1.0.4 | 141 | 1/2/2026 |
| 1.0.3 | 137 | 1/2/2026 |
| 1.0.2 | 140 | 12/31/2025 |
| 1.0.1 | 197 | 12/20/2025 |
| 1.0.0 | 216 | 12/20/2025 |
adicionado documentação, incluído testes internos