Wie zu erstellen ASP.NET MVC-Bereich als plugin-DLL?

Hier ist, was ich erreichen will, ich will, um separate Bereiche ASP.NET MVC als Reine single-DLL.

  1. Blog.DLL
  2. Forums.DLL
  3. FAQ.DLL

Jeder von Ihnen individuelle ASP.NET MVC-Bereich, mit seinen eigenen Standard-CSHTML-oder ASPX-Seiten. Installation, Migration und Pflege von vielen Seiten, einschließlich Ressourcen, javascripts und so weiter sind echte Schmerzen für lange Sicht. Wie die meisten von Ihnen werden sich kaum ändern.

Meine Letzte Webseite wie diese.

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

Ohne das Ding, nur fallenlassen Blog.dll meine Anwendung sollte die Unterstützung /blog und alle seine Seiten. Wenn ich anpassen möchten etwas, als ich Bereich hinzufügen, und fügen Sie nur cshtml Seiten.

\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

Dies hilft bei der Wiederverwendung von ASP.NET Bereich Plugins, indem Sie einfach fallenlassen der dll im Ordner "bin". Aber web.config müssen Sie einige änderungen, aber wahrscheinlich werden wir speichern, konfigurieren Sie die Werte in der Datenbank und das einzige, was benötigt wird "Entity Framework-Verbindungszeichenfolge" im web.config.

Meine Herausforderungen (Fragen)

  1. Ist es möglich? Es sieht sicher an mir, aber wird es eine Reflexion/Erlaubnis Fragen?
  2. Wie füge ich cshtml/aspx-views innerhalb einer DLL? Wahrscheinlich kompilierten Versionen? Ich habe gesehen, einige text-template-basierte Anzeigen-Engines auf codeplex, aber ich bin etwas verwirrt, wie man Sie tatsächlich verwenden.
  3. Und wie bekomme ich ViewEngine, um zuerst überprüfen, ob die physische Verzeichnis, das die Datei vorhanden ist oder nicht und dann schauen Sie in cshtml/aspx innerhalb der dll selbst als Ressource Datei?
InformationsquelleAutor Akash Kava | 2012-07-14
Schreibe einen Kommentar