Un tout nouveau Kit de démarrage, fait pour aider les développeurs à s'approprier CQRS en environnement .NET, a été développé et rendu disponible en open source par Jonathan Worthington et Carl Mäsak.
Les deux développeurs font remarquer qu'il ne s'agit pas d'un Framework, mais d'"ébauches de code C#" faisant office de tutorial pour les développeurs souhaitant apprendre CQRS et éventuellement de matériel à prendre comme point de départ pour un système qui s'appuierait sur CQRS, auquel cas des modifications seraient essentielles afin de l'adapter au besoin.
Le code présenté dans le tutorial est une application dont le domaine est la gestion d'une brasserie, avec pour focus principal le concept de fichier qui trace le passage d'un individu ou d'un groupe dans la brasserie. Le tutorial est découpé en cinq étapes, en commençant par la conception, la logique du domaine et les "read models" pour finir par l'intégration à une application web ASP.NET MVC.
Jonathan et Carl mettent en avant quelques points, en particulier les transactions et l'"eventual consistency", sur lesquels il vous faudra porter votre attention si vous souhaitez faire de l'exemple un vrai système de production.
Ils soulignent aussi qu'à moins que vous soyez en phase d'apprentissage, vous devriez prendre la décision de vous lancer dans CQRS non pas parce que c'est le nouveau sujet à la mode en ce moment, mais plutôt parce que vos objectifs en termes d'architecture vous ont guidé vers cette solution :
Je veux manipuler la logique de mon domaine en termes de commandes et évènements, car modéliser et écrire des tests de cette façon va m'aider à mettre à disposition un système conforme aux attentes de mes utilisateurs. Je souhaite stocker mes évènements dans un "event store" mais ce mode de stockage n'est pas adapté à mes besoins en matière d'interrogation et de récupération de données. J'ai par conséquent aussi besoin d'une base de données relationnelle. Cela signifie que les lectures et les écritures devront emprunter des chemins d'exécution différents. Pour ces raisons, je vais utiliser CQRS.
CRQS est un pattern d'architecture qui connait un intérêt croissant. Le site web de la communauté DDD, maintenu entre autres par Eric Evans relève spécifiquement cette importance :
CQRS et l'"Event Sourcing" sont deux approches architecturales proches de DDD et sont parmi les sujets brulants tournant autour de DDD ces dernières années.