2010-06-14 15 views
1

Voici la situation, afin de soutenir notre système hérité, nous devons insérer à une table chaque fois qu'un utilisateur se connecte. Ceci est fondamentalement une opération CRUD, donc il ne fait pas vraiment Il est logique de créer repository/entity/command/event car cela ne lie pas du tout les règles métier. Le seul avantage de créer une commande CQRS est que cette écriture de base de données peut se produire de manière asynchrone sous ce modèle. Quelle est la meilleure route à prendre?Modèle de script de transaction de mélange avec DDD/CQRS

  • Utilisez CQRS, puis appelez un proc stocké. lors de la gestion de cette commande?
  • base de données directement suffit d'appeler dans le contrôleur (j'utilise asp.net mvc)

Répondre

3

Si vous utilisez (et persistante) des événements pour la lecture possible, alors il est logique de faire de l'écriture à un héritage DB dans le cadre d'un gestionnaire d'événements (pensez à "passerelle"). Si vous avez besoin de relire cet événement dans le futur, vous pouvez échanger un faux gestionnaire qui ne réinsère pas l'enregistrement.

Votre contrôleur ne doit être réellement qu'une couche de traduction entre une requête HTTP et une commande pour votre domaine. Ecrire à une base de données (même héritage, accès non-domaine) n'a pas vraiment de sens là-bas, à mon humble avis. Mettre la logique dans un gestionnaire d'événements rend l'interaction très explicite.