Decorator Pattern – extinderea funcționalității fără moștenire în .NET

Doru Bulubasa
/

Decorator Pattern permite extinderea comportamentului unui obiect în mod flexibil, fără a folosi moștenirea. Ideal atunci când ai nevoie să adaugi funcționalități dinamice, fără a modifica clasa originală.


Read More

Composite Pattern – lucrul unitar cu structuri ierarhice (ex: meniu, fișiere) – C# / .NET

Doru Bulubasa
/

Composite Pattern permite tratarea uniformă a obiectelor individuale și a colecțiilor ierarhice de obiecte. În .NET, acest pattern simplifică lucrul cu meniuri, structuri de fișiere, noduri de UI sau obiecte organizaționale.


Read More

Bridge Pattern – separarea abstractizării de implementare

Doru Bulubasa
/

Bridge Pattern separă abstractizarea de implementare, permițând celor două să evolueze independent. Acest pattern structural previne explozia de clase și oferă flexibilitate când combinăm diferite tipuri de funcționalitate cu multiple implementări în aplicații .NET.


Read More

Adapter Pattern – compatibilitatea între clase cu interfețe diferite

Doru Bulubasa
/

Adapter Pattern este un pattern structural din OOP care permite colaborarea între clase cu interfețe incompatibile, acționând ca un „traducător” între ele. În acest articol explicăm conceptul, avantajele și un exemplu clar în C# / .NET.


Read More

Prototype Pattern – clonarea obiectelor fără a depinde de implementare

Doru Bulubasa
/

Patternul Prototype permite clonarea obiectelor existente fără a depinde de clasele lor concrete. În .NET, acest design pattern simplifică crearea de copii ale obiectelor complexe, reducând costurile și asigurând consistența datelor.


Read More

Builder Pattern – construirea pas cu pas a obiectelor complexe

Doru Bulubasa
/

Builder Pattern este un design pattern creational care permite construirea pas cu pas a obiectelor complexe, separând procesul de creare de reprezentarea finală. Ideal pentru scenarii în care obiectele au multe opțiuni configurabile în .NET și C#.


Read More

Abstract Factory – familii de obiecte coerente, fără dependințe concrete

Doru Bulubasa
/

Explorează Abstract Factory, un pattern esențial în arhitectura software .NET, care permite crearea de familii de obiecte compatibile fără a depinde de clase concrete. Ideal pentru aplicații complexe, modulare și extensibile.


Read More

Factory Method – crearea flexibilă de obiecte fără a cunoaște clasa exactă

Doru Bulubasa
/

Descoperă cum funcționează Factory Method, unul dintre cele mai utile pattern-uri de design orientate pe obiecte. Creează instanțe flexibil, fără să depinzi de clasele concrete — o abordare esențială în arhitectura software modernă .NET și C#.


Read More

Singleton Pattern – controlul instanțelor unice în .NET

Doru Bulubasa
/

Singleton este unul dintre cele mai populare design pattern-uri din .NET, folosit pentru a garanta existența unei singure instanțe a unei clase. Descoperă cum funcționează, când este util și cum îl implementezi corect în C# prin exemple practice.


Read More

Introducere în Design Patterns – De ce sunt esențiale în .NET

Doru Bulubasa
/

Design pattern-urile sunt soluții testate în timp pentru probleme comune de proiectare software. În acest articol descoperi de ce sunt esențiale în .NET și cum te ajută să scrii cod mai curat, extensibil și ușor de întreținut.


Read More

CQRS + Event Sourcing, Scalare și Command Bus Custom

Doru Bulubasa
/

Ultima etapă din seria CQRS explorează concepte avansate precum Event Sourcing, separarea fizică a bazelor de date pentru citire și scriere, și implementarea unui Command/Query Bus custom — ideale pentru proiecte enterprise și microservicii.


Read More

Extensii și pattern-uri suplimentare în CQRS

Doru Bulubasa
/

Această etapă din seria CQRS explorează extensii avansate precum decorators peste MediatR, event publishing și audit logging. Descoperă cum poți adăuga logging, retry, validare, evenimente de domeniu și urmărirea acțiunilor într-o arhitectură curată și scalabilă.


Read More

Proiectarea Repository (opțional) pentru scriere

Doru Bulubasa
/

În acest articol discutăm despre proiectarea unui Repository pentru operațiile de scriere, ca alternativă la lucrul direct cu DbContext. Vei vedea cum un IPostRepository cu metode precum AddAsync() și GetByIdAsync() poate simplifica logica din Command Handlers și menține separarea clară a responsabilităților.


Read More

Aplicarea tranzacțiilor în handlerul de Command

Doru Bulubasa
/

În acest articol explorăm cum putem gestiona tranzacțiile în handlerul de Command dintr-o aplicație bazată pe CQRS și DDD. Vom analiza folosirea IDbContextTransaction din Entity Framework Core și alternativa UnitOfWork, pentru a asigura consistența datelor atunci când logica de business implică mai multe operațiuni.


Read More

Persistență prin EF Core în Infrastructure Layer

Doru Bulubasa
/

Separă responsabilitatea de persistență a datelor într-un mod curat folosind EF Core și un context abstractizat în Infrastructure Layer.


Read More