Question

J'introduis actuellement Prism dans une nouvelle application Wpf et j'utilise le modèle MVVM. Mon approche initiale de la structuration de l'application Wpf consistait à ajouter un projet pour contenir les classes de modèle, un autre pour les classes de modèle de vue, etc. Ces derniers pourraient être scindés ultérieurement pour éviter d'avoir des composants logiques différents dans le même projet. Cependant, cela me semble une mauvaise structure lors de l’utilisation de Prism (et des paraphes en général ..).

Dans Prism, vous souhaitez structurer les choses en différents modules logiques, où tout ce qui a trait aux mêmes choses serait placé dans le même module. Donc, cela me dit que je devrais mettre tous les éléments liés à une partie logique de mon application dans un module pour cette partie. Cela peut contenir des vues différentes pour ce composant, le modèle de vue associé et les classes de modèle nécessaires. En utilisant cette approche, le modèle serait toutefois dispersé autour de ma solution. Comme le modèle sera lié à une base de données, cela me semble être une mauvaise approche après tout. J'utilise NHibernate, donc la base de données ne sera pas vraiment "visuelle". bien que.

Je vois donc trois structures différentes. Est-ce que l'un d'entre eux est généralement désiré? Ou y a-t-il une autre façon de structurer mon application?

  1. Projets "Modèle", "ViewModel" et également un pour détenir UserControls. Etc ..
  2. Une partie de projet - comprenant à la fois la vue, le modèle de vue et le modèle associés à cette partie.
  3. Une partie du projet, y compris la vue et le modèle de vue, mais le modèle est défini dans un projet séparé. Peut-être même un projet pour toutes les classes de modèle si elles ont une relation logique.

Tous les avis sont grandement appréciés!

Était-ce utile?

La solution

Il est correct d’inscrire votre modèle dans un projet séparé. Je dirais que c'est recommandé si c'est assez grand pour vraiment tirer profit de l'architecture de type prisme. Le modèle ne se limite pas au silo vertical du V et du VM, mais constitue une couche inférieure située au-dessous de tous.

Vos vues et vos modèles de vue ont du sens une vie proche les uns des autres. Vous pourriez trouver la réutilisation de vues ou de modèles de vues, mais ne vous inquiétez pas si vous ne le faites pas. Cela dit, une vue n'est pas toujours liée à un modèle de vue spécifique et inversement. Par exemple, mon modèle de vue affiche toutes les ventes et un modèle de vue filtrant pour le trimestre en cours, mais je peux associer les deux à la même vue. D'un autre côté, j'ai un graphique à secteurs par rapport à un graphique à barres sur le même modèle de vue. Donc, les séparer n’est pas aussi simple. Cependant, vous pouvez trouver de plus gros morceaux que juste voir / voir les paires de modèles. Ventes vs gestion des clients et autres.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top