Question

Je suis ici très sceptique quant à la conception de ma demande .....

Voici le diagramme pour mon application

Schéma de mon application

est ce droit ?? ot je dois changer quelque chose ...

Je vais le diagramme .... donner des détails:

Bibliothèque commune: Il contient des classes ErrorCodes, classes utilitaires etc
Enregistreur: cadre Logging
Exception Handling: cadre pour la gestion des exceptions

Voir: Contient: tous les différents XAML pour les vues comme UserControls, Windows, popups

ViewModel. Contient ViewModels pour les vues de Differents

Modèle: Contient contient les différentes couches comme ... couche d'affaires, données Couche d'accès etc

couche entité: Contient l'entité des objets comme des employés, l'entreprise etc ...

boîte de fichier: Son préciser lecture / écriture à partir d'un fichier / base de données ....

Était-ce utile?

La solution

Il est difficile de dire ce que vous essayez de faire avec votre question, mais à mon avis, les couches MVVM devrait ressembler à ceci:

  • Modèle : Les données brutes et la validation des données brutes. Peut-être un INotifyPropertyChanged aussi bien, mais rien d'autre

  • ViewModel : Business Logic, l'accès aux données, validation avancée en fonction des règles d'affaires, etc

  • Vues : couche d'interface utilisateur Jolie qui permet aux utilisateurs d'interagir avec les ViewModels. Rien d'autre.

Par exemple, un modèle peut avoir une propriété File, mais il ne devrait pas être chargé de montrer la boîte de dialogue de fichier, enregistrer le fichier sur la base de données, ou de vérifier que le fichier a une extension .pdf. Ce genre de choses est le travail du ViewModel.

Modifier

Je vois la mise à jour que vous avez fait à votre question. Il est un début OK, mais voici les questions que j'ai avec lui:

  • Vos modèles doivent être des objets de données brutes. Ils ne doivent pas contenir quoi que ce soit plus avancé que quelque chose comme la validation de la longueur d'une propriété.

  • Je ne recommanderais pas honnêtement séparer les vues, les modèles et ViewModels en 3 couches distinctes. Je l'ai fait une fois et il est avéré être un cauchemar de maintenance. Maintenant, je mets tous les objets liés ensemble. Par exemple, je mettrais FileModel, FileViewModel et FileView ensemble, et SearchModel, SearchViewModel et SearchView ensemble

  • Je voudrais créer une couche d'accès aux données qui serait chargé de faire tout lecture / écriture des données vers / à partir de la base de données (je suppose que cela pourrait être votre « entité couche »).

  • Pour les petits projets, j'ai tendance à utiliser mon entité Objets comme mes modèles, de sorte que les modèles font partie de ma couche DAL, bien que je sais que ce ne soit pas recommandé.

  • Ne pas oublier, avec MVVM vos ViewModels sont votre application, pas vos vues. Le point de vue doit refléter ce qui est dans le ViewModel, et non vice versa.

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