Je suis en train de concevoir un ASP.NET application MVC à l'aide de l' Oignon, de l'Architecture décrite par Jeffrey Palerme.
C'est un ASP.NET MVC 2.0 projet, où je suis exigeant que tous les points de vue fortement typée dédié à l'aide des Modèles de Vue -- nous ne serons pas en passant des modèles de domaine de notre point de vue. Nous sommes à l'aide de AutoMapper pour faire la traduction -- AutoMapper est isolé dans l'infrastructure, le Web ne sais pas ou des soins AutoMapper est utilisé.
Actuellement, je suis à la définition de la IViewModelMapping des interfaces dans le projet Web -- tout simplement parce que ce service sera utilisé par les Contrôleurs et il a un accès direct à ses propres Modèles de Vue. De cette façon, l'interface peut accéder à la fois les Modèles de Domaine (dans le Noyau) et les Modèles de Vue (sur le Web).
Afin de fournir à la mise en œuvre effective de la IViewModelMapping interfaces, j'ai créé un ObjectMapping espace de noms dans le projet d'Infrastructure, qui permettra d'isoler le véritable cartographie de la mise en œuvre de l'Intrastructure de l'oignon. En agissant de la sorte, cela va nécessiter une Infrastructure d'avoir une dépendance à la FOIS le Noyau ET le Web.
Ma question est: étant donné que ces deux projets sont techniquement sur la périphérie de l'oignon (dans la même couche) - est un projet a permis d'avoir une dépendance sur un autre projet dans cette couche? Quelqu'un préavis de pièges potentiels avec cette conception?
Une alternative pourrait être de déplacer la IViewMapper interfaces de Base-mais ce serait impossible parce que de Base n'ont pas accès aux classes ViewModel. Je pourrais aussi déplacer le point de vue des modèles de Base, mais je me sens comme ils le feraient pas partie là-bas, car ils sont spécifiques à la couche d'INTERFACE utilisateur.
L'architecture proposée est la suivante -- avis que l'Infrastructure a une dépendance sur le Cœur ET le Web. Web reste isolé et n'a accès à la Base de la logique métier.