2009-07-21 14 views
4

Ich erstelle eine Lösung, wo ich mehrere Projekte, von denen jeder die Verantwortung für den Umgang mit Entitäten, MVC Ansichten und Controller einer bestimmten Art. Das heißt, man befasst sich mit der Buchhaltung, ein anderes mit der Unternehmensführung usw. Dadurch können wir sie in mehreren Lösungen wiederverwenden.ASP.NET MVC Kompilieren Ansichten in separaten Assemblies

Ich bin in der Lage, die Ansichten in den verschiedenen Assemblys aus dem Kernprojekt der Lösung (ein Standard-MVC-Projekt) durch Registrierung eines VirtualPathProvider und den Trick, die Ansichten als eingebettete Ressourcen zu machen, so dass sie geladen werden können von außerhalb ihrer DLL. Der Hauptnachteil (und der große Nachteil) dieses Ansatzes ist, dass das Setzen der Ansichten als Eingebettete Ressourcen die Möglichkeit des Kompilierens mit IntelliSense und das Debuggen von ihnen wegnimmt, so dass es die Entwicklung wirklich schwierig macht, und die Wartung sogar noch mehr .

Gibt es eine Möglichkeit, diese Ansichten in DLLs zu kompilieren? Fehle ich da etwas oder gibt es einen besseren Ansatz?

Hinweis: Ich kann Ansichten in meinem MVC-Projekt kompilieren, aber nicht die in den DLLs.

Antwort

1

Ich weiß nicht, ob dies Ihnen hilft, aber ...

Für eine Weile ich, wie Sie das gleiche tun wollte, bis etwas fiel mir ein: Solange die Ansichten als ASPX existieren und. Ascx-Dateien können sie verwendet werden, um die Anwendung zu "skin", da sie nicht Teil der kompilierten Anwendung sind. Mit anderen Worten, die Vorteile, die sich daraus ergeben, dass alle Ansichten als nicht kompilierte Dateien in der endgültigen, zusammengesetzten Anwendung vorliegen, sind einfach zu groß, um IMO zu ignorieren.

Also entschied ich mich, dass die endgültige, zusammengesetzte Anwendung dafür verantwortlich ist, wie alles gerendert wird. Das bedeutet auch, dass wenn ich zwei verschiedene Anwendungen habe, die dieselben Module wiederverwenden, sie diese sehr unterschiedlich darstellen können.

Diese Dateien sollten nur Rendering-Code auf jeden Fall enthalten, sollte also wirklich von einem HTML/Graphics Designer entwickelt werden - kein Entwickler.

Alle Controller und ViewModels, die ich noch in separaten Modulen (.dlls) implementieren.

Verwandte Themen