Ou devraient-ils être dans la couche supérieure (interface utilisateur client)? Lorsque j'utilise une architecture d'oignon (ASP.Net MVC), est-ce que je devrais mettre mes modèles de vue avec toutes mes entités de domaine au cœur. Juste comme dans l'image ci-dessous? Ma question est - si oui alors quand je passe un modèle de vue de mon service à mon client, n'est pas le client (couche supérieure) dépendant de la couche de base, qui est deux couches vers le bas et ne serait pas briser l'ensemble de la dépendance avec chaque couche seulement parler à la couche ci-dessous? Que se passe-t-il lorsque j'ai un viewmodel (dans la couche de présentation) qui doit référencer une entité dans la couche domaine (deux couches plus bas), cela ne rompt pas l'architecture oion de référencer seulement la couche directement ci-dessous.Est-ce que mes modèles de vue doivent être avec mes entités de domaine au cœur d'une architecture d'oignon?
public class YogaSpaceListViewModel
{
// YogaSpaceResults is in the domain layer two layers down
public IPagedList<YogaSpaceResults> YogaSpaces { get; set; }
public string LocationResults { get; set; }
}
// this is in the domain layer with all my other entities
// this is being filled by entity framework in the DAL, which I'm calling from the service layer.
public class YogaSpaceResults
{
public string Title { get; set; }
public string Summary { get; set; }
public DateTime Date { get; set; }
public DbGeography LocationPoints { get; set; }
}
IMHO, voir le modèle appartient à la vue. Chaque interface utilisateur aura un ensemble différent de modèles de vue. Parfois, ils peuvent être similaires au modèle de domaine, mais alors qu'un modèle de domaine représente un concept, le modèle de vue est juste un DTO à l'interface utilisateur. –