none
MVC3 : Quand créer un nouveau controller ? RRS feed

  • Question

  • Bonjour,

    je découvre le MVC3 et j'ai du mal à déterminer quand créer un nouveau controller et sur base de quoi ?

    Je fais le Tuto Music Store de msdn.

    Quelqu'un peut-il m'éclairé ?

    Merci

    samedi 22 septembre 2012 15:34

Réponses


  • Je vais quand même vous donner un exemple:

    dans le cas d'une application ASP.NET Web Forms vous serez amené à créer un fichier product.aspx pour la gestion de produits quelconque

    • pour afficher un produit vous faites: product.aspx?id=5.
    • Pour supprimer un produit vous appelez product.aspx?id=5&action=delete.
    • pour lister les produit vous appelez product.aspx?action=list ou encore vous aurez peut être l'idée de créer un nouveau fichiers nommé products.aspx ou listProduct.aspx. ce qu'on remarque c'est qu'on est en train d'utiliser des fichiers physique.

    Ce n'est pas le cas des applications MVC ou on utilise plutôt des classes Controller. Pour faire l'analogie avec product.aspx,  en MVC on aurait créer un controller nommé ProductController dans lequel on crée une action Details  qui prend en paramètre un id pour afficher, une action Delete qui prend en paramètre un id pour supprimer, une action List pour lister les produits

    Mais je pense que c'est normal que vous voyez un peu flou car vous venez de débuter le développement ASP.NET MVC mais avec l'expérience vous saurez faire des choix de plus en plus pertinents.

    Cordialement,

    PS: Si vous avez trouvé ce que voue cherchez veuillez marquer les messages utiles et les poposer comme réponse.


    Blog: marouene.slimi.net



    • Modifié Marouene Slimi dimanche 23 septembre 2012 16:12
    • Marqué comme réponse Aurel Bera vendredi 28 septembre 2012 06:48
    dimanche 23 septembre 2012 16:09

Toutes les réponses

  • Bonjour,

    Je vous invite à regarder ce lien: http://www.asp.net/mvc/tutorials/older-versions/overview/asp-net-mvc-overview

    et faire un tour dans http://asp.net/mvc

    et voir tutoriel simple: http://www.asp.net/mvc/tutorials/getting-started-with-aspnet-mvc3/cs/intro-to-aspnet-mvc-3

    Il est tout à fait possible de n'avoir qu'un seul controller dans son application web et ajouter les actions dans ce dernier mais au fil de l'avancement du projet on va se retrouver avec un controller qui contient un grand nombre d'actions et cela devient ingérable et donc il faut absolument éviter cette approche-là.

    Il faut plutot réfléchier à la séparation de l'application en plusieurs controller dont chacun est spécialisé dans un rôle bien déterminé. Par exemple pour les opérations de (login, logout, inscription), on peut créer un controller AccessController ou utiliser le AccountController qui est déjà présent dans le template du projet web VS.

    Généralement mais ce n'est pas toujours vrai, on crée un controller pour chaque model si on veut faire des opérations de CRUD sur les models et donc pour un model Student Par exemple, on crée un controller StudentController qui va contenir des actions du type (Create, Details,  Edit, Delete...) D'ailleurs au moment ou on veut créer un controller on a les options de scaffolding qui permettent de générer automatiquement les opérations de CRUD vides ou en se basant sur un model.

    Cordialement.


    Blog: http://marouene.slimi.net



    dimanche 23 septembre 2012 09:48
  • Bonjour, merci pour votre réponse et les liens.

    Cela m'a aidé, mais à quel moment et pourquoi créer un controller restent encore malgré tout assez flou.

    Merci

    dimanche 23 septembre 2012 15:44

  • Je vais quand même vous donner un exemple:

    dans le cas d'une application ASP.NET Web Forms vous serez amené à créer un fichier product.aspx pour la gestion de produits quelconque

    • pour afficher un produit vous faites: product.aspx?id=5.
    • Pour supprimer un produit vous appelez product.aspx?id=5&action=delete.
    • pour lister les produit vous appelez product.aspx?action=list ou encore vous aurez peut être l'idée de créer un nouveau fichiers nommé products.aspx ou listProduct.aspx. ce qu'on remarque c'est qu'on est en train d'utiliser des fichiers physique.

    Ce n'est pas le cas des applications MVC ou on utilise plutôt des classes Controller. Pour faire l'analogie avec product.aspx,  en MVC on aurait créer un controller nommé ProductController dans lequel on crée une action Details  qui prend en paramètre un id pour afficher, une action Delete qui prend en paramètre un id pour supprimer, une action List pour lister les produits

    Mais je pense que c'est normal que vous voyez un peu flou car vous venez de débuter le développement ASP.NET MVC mais avec l'expérience vous saurez faire des choix de plus en plus pertinents.

    Cordialement,

    PS: Si vous avez trouvé ce que voue cherchez veuillez marquer les messages utiles et les poposer comme réponse.


    Blog: marouene.slimi.net



    • Modifié Marouene Slimi dimanche 23 septembre 2012 16:12
    • Marqué comme réponse Aurel Bera vendredi 28 septembre 2012 06:48
    dimanche 23 septembre 2012 16:09
  • Bonjour,

    Pouvons-nous considérer que vous avez résolu votre problème avec les scénarios proposés ? Dans l'affirmative, pourriez-vous partager avec nous la solution, afin que d'autres personnes avec le même problème puissent profiter de cette solution ?

    Désormais, nous marquons les solutions proposées. N'hésitez pas à revenir et supprimer la réponse marquée si la solution n’est pas correcte. Merci !

    Cordialement,

    Aurel


    Aurel BERA, Microsoft
    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    vendredi 28 septembre 2012 06:49