Donc, je suppose que les gens utilisent encore une couche de gestion en dehors de la logique du contrôleur? Si oui, où est cette ligne grise tracée et que ne mettez-vous pas dans vos classes de contrôleur que vous auriez dans votre projet de couche Business et vice versa? Il me semble que les contrôleurs débarrassent totalement le besoin d'une couche de gestion dans votre application MVC.Contrôleurs! = Couche métier?
Répondre
La couche de contrôleur fait partie de la vue, à mon avis. Ce que vous appelez la couche de gestion que j'appelle services (pas services Web, c'est juste un choix de déploiement parmi beaucoup d'autres).
La couche de gestion connaît les cas d'utilisation et les unités de travail pour atteindre les objectifs des utilisateurs. Le contrôleur est entièrement chargé de valider, de lier et de marshaler les demandes, de déterminer quel service est nécessaire pour répondre à la demande et lui transmettre des valeurs, démêler la réponse et l'acheminer vers la vue appropriée suivante. Je suis donc d'accord avec l'hypothèse posée dans votre titre: controller! = Service. Le modèle classique qui vient de Smalltalk est Model-View-Controller, qui n'est pas d'accord avec ma déclaration en séparant la vue et le contrôleur en niveaux distincts.
Ce que je décris est ce qui est implémenté dans les frameworks Java pour le web et le bureau. Une modification de la technologie d'affichage implique généralement de modifier également le contrôleur. Donc, si l'idiome Smalltalk était model-view-controller, l'approche plus moderne ressemblerait à view-> controller-> service-> model/persistence. Le modèle signifie "objets de domaine", qui sont indépendants de toutes les technologies d'affichage.
La couche du contrôleur fait partie de la vue? Le nom de Model-View-Controller représente trois couches totalement séparées. – LukLed
Non, le contrôleur et la vue sont intimement liés. Je sais que l'histoire les a séparés, mais ce n'est pas l'interprétation moderne. C'est plutôt une vue Smalltalk, GoF. – duffymo
La ligne n'est pas "grise". C'est pur et absolu.
Le modèle (ou "couche de gestion") fonctionne avec n'importe quelle présentation. Interface graphique, ligne de commande, web. Et il ne nécessite pas des changements pour être enveloppé avec une interface graphique (voir + contrôle) une application de ligne de commande ou une application web.
Vous savez que vous avez correctement exécuté le modèle ("couche de gestion") lorsqu'il n'y a aucune fonctionnalité de présentation ou de contrôle. En outre, il est si complet que toute interface graphique peut l'utiliser directement.
Pour faire simple:
- contrôleur doit contenir l'application logique spécifique.
- "Couche métier" doit contenir la logique métier.
Suite à l'approche axée sur le domaine d'Eric Evans, la "couche d'affaires" contient:
- niveau de service: l'interface est conçue autour du scénario d'utilisation
- Modèles de domaine: les objets de domaine de base, entités, objets de valeur et plus.
- objets de données d'accès: référentiels
Notez également que les modèles de domaine ne sont pas le niveau d'accès aux données. Il peut encapsuler l'accès aux données, mais n'est pas le niveau d'accès aux données lui-même.
- 1. Couche métier et données dans ASP.NET MVC
- 2. Objets métier et couche de données
- 3. codeiginter - logique métier - contrôleurs, modèles ou bibliothèque?
- 4. Utilisation de l'unité pour découpler la couche logique métier de la couche d'accès aux données
- 5. Méthode de couche logique métier Callling à partir de PageMethods
- 6. Référencement d'une couche métier compilée dans un module DotNetNuke
- 7. Utilisation de l'objet métier dans la couche de présentation
- 8. Meilleure pratique: comment insérer dans plusieurs tables via la couche métier et la couche de données?
- 9. Quelle est la différence entre la couche application et la couche logique métier?
- 10. Conception d'objet métier DAL
- 11. Avis sur la conception de la couche logique métier pour fenêtre et application Web
- 12. Rendre une méthode de la couche métier sécurisée. meilleure pratique/meilleur modèle
- 13. Comment puis-je créer une couche ODBC en plus des données métier existantes?
- 14. Comment ma logique métier doit-elle interagir avec ma couche de données?
- 15. Les contrôleurs gèrent le flux des applications, alors où va ma logique métier?
- 16. Séparer les règles métier des processus métier
- 17. Comment nommer les objets de niveau métier?
- 18. Que dois-je retourner de la couche d'interface utilisateur à la couche de gestion?
- 19. Les validateurs dupliquent-ils la logique métier?
- 20. Où sont les règles métier dans MVC
- 21. Contrôleurs ASP.NET MVC gros
- 22. Tout exemple de projet C# mettant en évidence une couche d'accès aux données distincte (utilisant EF) vers la couche logique métier
- 23. ASP.NET: couche de données indépendantes accses couche
- 24. Objet métier et linq2SQL
- 25. dll logique métier personnalisée
- 26. objets métier « statique/Constant »
- 27. application web couche de données dis/avantages
- 28. avantages des propriétés dans les objets métier?
- 29. L'application ASP classique possède une «couche intermédiaire» COM pour une logique métier légère. Est-ce nécessaire dans ASP.NET?
- 30. Comment implémenter une couche de logique métier unique basée sur CSLA et la consommer depuis WPF, Winform et Silverlight?
Ceci est une question chargée –