Question

Je me lance donc dans une ASP.NET MVC projet et bien que l'expérience ait été globalement bonne, je ne suis pas aussi satisfait du gâchis spaghetti que sont devenus mes contrôleurs.J'ai regardé en ligne (CodeCampServer, etc...) et ils semblent tous souffrir du même problème dans lequel les méthodes de contrôleur violent le SRP (principe de responsabilité unique) de manière assez cohérente - comme une méthode de contrôleur qui restitue simplement la vue si la demande est un GET mais met à jour le model si c'est un POST.Maintenant, j'ai des méthodes de contrôleur responsables de plusieurs routes logiques dans l'application - disons qu'elles vérifient lesquelles button a été cliqué sur le formulaire et agit en conséquence.Je pourrais rediriger chaque clic de bouton vers une action de formulaire différente en utilisant JavaScript, mais quelque chose ne semble pas correct non plus...L'autre gros problème est la prolifération de la magie strings - ViewData["foo"] = blah; Pour faire court, comment allez-vous les gars structure ton controller logique?Un objet modèle géant par vue ?Beaucoup de peu controller methods et JavaScript est le routeur ?Mon objectif est un code maintenable - à mesure que les fonctionnalités s'accumulent, je commence à glisser sur cette pente glissante...

Était-ce utile?

La solution

ASP.NET Preview 5 (disponible sur CodePlex) a une réponse à cela :l'attribut [AcceptVerbs].Phil Haack a un article de blog discussion sur la façon dont il est utilisé.

Quant à la question clé magique de la vue des données, c'est un problème intéressant.Si vous considérez une vue comme un ensemble de composants semi-indépendants (en particulier à la lumière de la nouvelle prise en charge des vues partielles), alors créer un modèle fortement typé devient moins idéal, car les différents éléments de la vue devraient être relativement indépendants les uns des autres. un autre.

Autres conseils

Comment différentes personnes gèrent-elles ce problème ?Je sais que je viens de passer quelques heures à examiner le fouillis contenu dans le dossier modèle.Je trouve que la création de dossiers est utile pour réduire l'encombrement visuel, l'utilisation d'espaces de noms correspondants aide également beaucoup.

Mais mes contrôleurs sont pour le moment monolithiques.le problème est que je me suis concentré sur l'apprentissage jusqu'à présent dans le projet (il y a encore beaucoup de choses à régler également).

Je maîtrise maintenant bien MVC, il est donc temps de revoir la complexité et d'envisager de modifier les contrôleurs pour en faire des fonctions mieux nommées et plus propres.

D'autres personnes divisent-elles leurs contrôleurs en sous-contrôleurs ?(Si une telle chose existe)

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