2010-04-01 4 views
6

Je me demandais comment implémenter exactement le service de domaine dans RIA. Est-il courant d'inclure toutes les entités dans le modèle de domaine entier dans un service de domaine unique, ce qui rend le service responsable de l'ensemble de la base de données? Est-ce la façon dont c'est normalement fait? Je n'ai vraiment aucune raison de séparer l'accès aux données dans différents services, mais je me demandais si cela était considéré comme une bonne pratique, et quels seraient les avantages et les inconvénients d'une telle approche.Combien d'entités le service de domaine RIA doit-il inclure?

En outre, est-il considéré comme une bonne ou une mauvaise pratique d'enregistrer un contexte de domaine en tant que singleton avec IOC, afin que l'application entière fonctionne avec le même ensemble de données, évitant ainsi les problèmes de concurrence?

Pensées?

Merci

Répondre

1

Nous avons deux services distincts dans notre application: un pour le modèle de données et strictement utilisé pour l'authentification. Nous avons pris cette conception à partir de l'exemple de structure d'application commerciale de MS. Nous avons envisagé de diviser notre service de domaine de données en composants plus petits, mais nous avons décidé de ne pas y ajouter d'avantage (autre que de réduire la taille des classes de service). Si vous avez des modèles de données distincts complètement indépendants d'autres, puis aller cette route pourrait avoir un sens. Intuitivement, le service de domaine devrait représenter l'ensemble du domaine. Si vos domaines sont indépendants (avec le occasional need for crossover), il est logique de les séparer de cette manière. En ce qui concerne l'utilisation du contexte en tant que singleton: J'ai essayé cela et j'ai fini par créer des instances de classe-portée à la place. Nous n'avons rencontré aucun problème de cette manière car ils utilisent tous la même connexion de données sous-jacente. Je ne sais pas quelle est la meilleure pratique "officielle", mais c'est comme cela que je l'ai vu dans de nombreuses applications RIA.

+0

Je ne suis pas d'accord. Je pense que le domainService devrait représenter une tâche ou un processus métier pas tout le domaine. Un bon exemple d'application est l'application Book Club que vous pouvez trouver ici http://www.nikhilk.net/RIA-Services-MIX10-Slides-Code.aspx. – PilotBob

0

Merci Nick. En fait, j'ai fait la même chose que vous, j'ai construit deux services, un pour l'authentification et un pour l'accès aux données. Cela me semble plus logique. Pour ce qui est de faire du datacontext un singleton, j'ai aussi essayé cela et ça marche bien. Pas besoin de recharger et d'actualiser constamment les données et de vous soucier des problèmes de concurrence dans les autres classes :)