2011-03-31 3 views
0

Je crée une application .net à l'aide de la méthode Domain Driven Design. L'application comprend la facturation des clients pour les services. La règle stipule que chaque jour, une facture doit être générée à un moment donné et le solde de l'utilisateur doit être mis à jour. Comme je vois, la meilleure option ici serait un travail de base de données qui est programmé fait la tâche ci-dessus. Cependant, est-ce compatible avec DDD? La logique est divisée entre la base de données et la couche domail dans ce cas, ce qui ne semble pas être une bonne idée.Utilisation de travaux de base de données dans la conception guidée par domaine

+0

Mon problème avec votre conception n'est pas que vous utilisez des travaux de base de données, mais que vous êtes déjà en train d'effectuer une implémentation. À ce stade, je ne sais pas s'il est nécessaire de décider comment vous allez mettre en œuvre cette fonctionnalité. –

+0

L'idée de cette question était de savoir si DDD acceptait de mettre une partie de la mise en œuvre dans la base de données. J'ai déjà conçu le modèle et les services correspondants. Comme je ne suis pas très expérimenté en DDD, j'ai posé la question de mettre de la logique dans les scripts DB. – Markus

+0

Mais pourquoi êtes-vous en train de sauter à une implémentation? Comment avez-vous décidé que "la meilleure option ici serait un travail de base de données"? –

Répondre

2

Une partie de DDD parvient à découpler autant que possible le modèle de domaine des problèmes techniques.

Mettre le savoir d'affaires dans les emplois de base de données signifie:

  • Vous auriez 2 places pour rechercher la logique métier (perte d'isolement du modèle)
  • Votre logique métier serait décrit en 2 langues (par exemple C#; t-sql)
  • Il pourrait ne pas être facile à gérer des scripts SQL procédure w/logique métier
  • Il pourrait ne pas être facile à synchroniser avec/partie qui est écrit en .Net

Personnellement, je n'irais pas dans cette direction. J'écrirais le service d'arrière-plan.

2

L'implémentation d'un travail de base de données sera plus difficile à déboguer et à tester unitaire si cela est important.

Je recommanderais un service qui effectue des tâches planifiées.

Questions connexes