Comment modéliser, visualiser et contrôleur séparé dans une application ASP.NET MVC dans différents ensembles

StackOverflow https://stackoverflow.com/questions/910089

Question

En ce moment je suis en train d'entrer dans le framework ASP.NET MVC.
Pour la plupart de mes applications de test je un seul ensemble / projet. Cela a bien fonctionné pour certaines applications plus petites. Alors je me suis demandé comment je pourrais placer mon modèle, les classes de contrôleur et vue dans des ensembles séparés? En très gros web applications, il est peu réaliste de mettre tout en un seul ensemble / projet.

Alors ma question est: Est-il possible de dire au framework ASP.NET MVC pour rechercher dans un autre ensemble de vues et / ou contrôleurs sans perdre la flexibilité intégrée du moteur de routage

Était-ce utile?

La solution

(inconnu) est correct. Créer deux projets, une bibliothèque de classes et un projet Web MVC. Le projet MVC devrait faire référence à la bibliothèque de classes qui contient les contrôleurs et le code de certains fichiers (etc global de asax). Voici un exemple de mise en page.

La bibliothèque de classe ne doit contenir que des fichiers .cs et pas vues (fichiers .aspx / .ascx).

MyProject.BaseSite (class library)
    + Controllers
        - HomeController.cs
        - ... any other controllers
    - default.aspx.cs
    - global.asax.cs

MVC projet web doit contenir configs, etc vues et une référence à votre bibliothèque de classes

MyProject.ExampleSite
    + Content
        + scripts
        + css
        + images
    + Views
        + Home
            - index.aspx
            - .. other aspx files
        + Shared
            - Site.master
    - web.config

Souvenez-vous des espaces de noms différents. Vous pouvez ensuite créer plusieurs sites Web Exemple référençant le même code. Cela vous permet de la peau efficacement votre site tout à fait différemment.

Autres conseils

Créez un projet de bibliothèque de classes pour chaque niveau de responsabilité, de compiler pour créer l'assemblage et ensuite référencer chacun dans votre application, le cas échéant.

Oui, si vous utilisez l'un des pris en charge injection de dépendance conteneurs, leurs données de configuration spécifient généralement non seulement la classe à être chargé en réponse à une requête particulière, mais aussi l'assemblage à partir de laquelle il doit être chargé. Cela vous permet de diviser vos classes à travers des ensembles arbitraires en et MVC sera toujours en mesure de les trouver.

Bien que, bien sûr, la simple réponse fournie par Unknown (Google) va également travailler!

Je me rends compte que c'est une question très ancienne, mais je l'ai écrit un article sur la façon exactement ce que vous demandez

http: / /dotnetslackers.com/articles/aspnet/storing-asp-net-mvc-controllers-views-in-separate-assemblies.aspx

Seulement complétant @ réponse de David:

Si votre projet est géré par NuGet, après avoir créé les bibliothèques de classes, effectuer une copie de votre fichier packages.config à la racine des bibliothèques de classes. Ensuite, vous devez éditer chaque fichier packages.config ajout ou la suppression des paquets, selon les besoins de chaque bibliothèque de classes.

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