Jak utworzyć obszar ASP.NET MVC jako DLL wtyczki?

Oto, co chcę osiągnąć, chcę oddzielić AREAs ASP.NET MVC jako czystą pojedynczą bibliotekę DLL.

Blog.DLLForums.DLLFAQ.DLL

Każdy z nich to indywidualny obszar ASP.NET MVC z własnymi domyślnymi stronami CSHTML lub ASPX. Instalacja, migracja i utrzymanie wielu stron, w tym zasobów, javascript i tak dalej, to prawdziwy ból na dłuższą metę. Ponieważ większość z nich prawie się nie zmieni.

Moja ostatnia strona będzie taka.

\MvcApplication
   \bin
      \MvcApplication.bin
      \Blog.dll
      \Forums.dll
   \Controllers
      \..
   \Models
      \..
   \Views
      \..
   \Global.asax
   \Web.config

Bez dodawania niczego, po prostu upuszczając Blog.dll, moja aplikacja powinna obsługiwać / blogować i wszystkie jej strony. Jeśli chcę coś dostosować, mogę dodać obszar i dodać tylko strony cshtml ..

\MvcApplication
   \bin
      \MvcApplication.bin
      \Blog.dll
      \Forums.dll
   \Areas
      \Blog
          \Views
              \Shared
                  \BlogLayout.cshtml <-- this will override the look
   \Controllers
      \..
   \Models
      \..
   \Views
      \..
   \Global.asax
   \Web.config

Pomoże to w ponownym użyciu wtyczek obszaru ASP.NET, po prostu upuszczając dll w folderze bin. Jednak web.config może wymagać pewnych zmian, ale najprawdopodobniej zachowamy wartości konfiguracyjne w bazie danych i jedyne, co będzie potrzebne, to „ciąg połączenia Entity Framework” w web.config.

Moje wyzwania (pytania)

Czy to możliwe? Z pewnością wygląda na mnie, ale czy będą jakieś problemy z refleksją / pozwoleniem?Jak dołączyć widoki cshtml / aspx do jednej biblioteki DLL? Prawdopodobnie skompilowane wersje? Widziałem kilka przeglądarek opartych na szablonie tekstowym na codeplex, ale nie jestem zbytnio zdezorientowany, jak z nich korzystać.I jak uzyskać ViewEngine, aby najpierw sprawdzić, czy istnieje fizyczny plik katalogu, a następnie zajrzeć do cshtml / aspx w samym pliku DLL jako pliku zasobów?

questionAnswers(3)

yourAnswerToTheQuestion