Unit of Work
O famoso Unit of Work promete deixar seu código mais organizado. Ele junta várias operações em uma única transação. Se algo der errado, tudo falha de uma vez, o que ajuda a evitar problemas maiores.
Repository Pattern
O Repository Pattern facilita o acesso a dados. Ele centraliza funções comuns de acesso a dados, ajudando a separar a infraestrutura da lógica do negócio.
Benefícios
Aqui estão os benefícios:
- Facilita a reutilização do código.
- Criar um Repository Pattern com Generics no .NET simplifica operações básicas.
- O Unit of Work ajuda a evitar problemas na leitura do banco de dados.
- Mantém mais controle na aplicação, evitando travamentos no banco de dados.
E o MongoDB onde fica?
Controlar transações no .NET com MongoDB ainda não é possível. Como o MongoDB é cada vez mais usado, adaptamos como dá.
Implementação
Você vai precisar dos componentes MongoDB.Driver e ServiceStack.Core.
Para instalá-los, vá para o Package Manager (View > Other Windows > Package Manager Console) e digite:
Install-Package ServiceStack.Core
Install-Package MongoDB.Driver
Generic Repository
Crie o Repository Pattern com uma classe abstrata usando Generics.
Interface
// Interface para seus repositórios genéricos.
Implementação
// Implementação inicial do Repository Pattern.
Cada Model terá sua própria implementação. Vamos fazer com a classe Product:
// Implemente a classe Product como exemplo.
Unit of Work
Para o Unit of Work, é necessário um Mongo Context que liga o Repository ao UoW.
Mongo Context
// Defina o Mongo Context aqui.
UoW Implementação
// Implementação do Unit of Work.
Configurando o Startup.cs
Ajuste o Startup.cs do projeto e adicione as configurações do Dependency Injection.
// Configurações no Startup.cs.
Download
Os códigos do projeto estão no GitHub.
Feedback!
Sua opinião sobre essa experiência é bem-vinda. Deixe seu comentário!