MVC-comme la conception pour les applications de console?
Je trouve que le fait d'écrire des applications web et des applications WinForm viennent généralement beaucoup plus propre que quand j'écris une application console.
Ce que je veux dire par cleaner? Eh bien, le fait que le fait de l'INTERFACE utilisateur (c'est à dire readline/writeline) est si étroitement liés avec le code de la logique devient horrible et le fait qu'il n'est pas basé sur l'événement signifie qu'il est plus difficile d'obtenir une bonne abstraction.
Je pensais à ce sujet et MVC ne essayer de résoudre des problèmes similaires pour les applications web, donc ma question est-il quoi que ce soit pour la console de apps? ou des guides pour obtenir une meilleure conception de la console apps?
Vous devez vous connecter pour publier un commentaire.
Je pense que vous trouverez que les une alternative au Modèle-Vue-Contrôleur est Model-View-Presenter. Le modèle de base est le même entre les deux. Le rôle du contrôleur et la vue sont très similaires, mais ils peuvent obtenir un peu plus de responsabilité en fonction de votre mise en œuvre. Au sein de MVP, il existe deux méthodes de mise en œuvre: la Supervision du Contrôleur et Passive de Vue. MVP est généralement considéré comme la norme de l'architecture pour WinForms clients et peut être appliquée à des WebForms ainsi. Voici quelques liens utiles pour plus d'informations:
Enfin, si vous voulez chercher un livre, Agile Principes, Modèles et Pratiques en C# contient un excellent guide pour la construction d'une console application de paie. Une fois compeleted, ils construisent WinForms de l'INTERFACE utilisateur afin de montrer comment leur architecture de l'application leur a permis d'ajouter une nouvelle vue avec un minimum de tracas.
MVC pour la console de l'application exemple:
Modèle de Contrôle est un modèle de conception, et en tant que tel est applicable à la fois aux Applications Web et console apps. Peut-être que vous devriez poser la question de savoir Comment appliquez-vous MVC pour votre application console.
Ce qui concerne
Je pense que vous pouvez toujours utiliser MVC pour console apps.
N'oubliez pas que dans les applications web et les WinForms, beaucoup d'interaction, est placé loin de vous, mais est toujours présent dans la logique de la vue, par exemple, quels sont les éléments à afficher lorsqu'un onglet est sélectionné.
C'est le type d'interaction que vous avez le code dans une application console, mais il n'y a pas de raison que ça ne pouvait pas être entièrement effectuée dans le code de la vue.
Mon prendre sur MVC, c'est que la vue est entièrement responsable de l'affichage des données, les options, etc.. Dans cette lumière, il n'est pas un crime d'avoir une logique dans la vue, tant que la logique est uniquement lié à comment les choses s'affiche.
Bien sûr, le fractionnement de la vue dans les différentes classes sera probablement rendre les choses un peu plus facile (par exemple, vous pouvez diviser le code de la vue elle-même dans un modèle MVC, même si cela peut se compliquer très rapidement avec des entités comme IAppView, IAppViewController, IAppViewView, vous obtenez le point 🙂 ).