2009-04-05 13 views
1

Ich habe derzeit eine ASP.NET-Webanwendung, die mehrere Clients aus einer Codebasis dient. Wir verwenden das URL-Rewriting, um zu erkennen, welcher Client bedient wird (so ziemlich ein virtuelles vdir), und welche Laufwerke welche Masterseiten/Themes/Modul-Version ausführen.Website-Architektur Modul Versionierung

Im Moment kann jeder Client eine andere Version eines Moduls oder das Standardmodul haben. Ein Modul kann aus einem Katalog (Gitter) von Daten mit verschiedenen Verbindungen zu anderen Modulen bestehen, oder es kann ein Diagrammgenerierungsmodul mit Optionen sein, für die Daten gezogen werden. Die Module müssen thematisiert und lokalisiert sein ...

Im Moment machen wir die ascx-Steuerelemente (/modulname/clientid.ascx), die Teil der Website-Lösung sind. Wenn wir für einen Client kein Steuerelement registriert haben, wird der Standardwert verwendet. Um ein Update für ein Modul zu veröffentlichen, muss eine vollständige Veröffentlichung stattfinden. Dies kann ein Problem sein, wenn ein anderer Client Arbeit hat, die nicht bereit ist, veröffentlicht zu werden. Für die Neufassung möchte ich das ansprechen. Ich bin mir nicht sicher, welchen Ansatz ich dafür nehmen soll. Kann WCF hier verwendet werden? Vielleicht Add-Ins? Die Implementierung jedes Clients ist eine eigene DLL?

Dank

Antwort

0

Sie einen Blick haben wollen könnte den Client zu machen, steuert richtigen Skin, die gerade Art/den Rest der Steuerung laden.

also ein Basis-Steuerelement, das alle Client-Steuerelemente laden (pro Modul), dann sind die Client-Steuerelemente einfach Markup, das würde bedeuten, dass Sie nur das Markup ändern und nicht code (also müssen Sie nicht jedes Mal erstellen)

0

"Um ein Update für ein beliebiges Modul zu veröffentlichen, muss eine vollständige Veröffentlichung stattfinden." Dies ist ein Problem, das Sie in Ihrer Architektur lösen müssen.

Suchen Sie, Ihre Module vom Rest Ihres Codes zu trennen.

Das Setzen Ihrer Module in ihre eigenen Baugruppen kann der Schlüssel dazu sein, wie Sie in Ihrer Frage berühren. Dies könnte behoben werden, indem Sie Ihre eigenen Serversteuerelemente anstelle von Benutzersteuerelementen schreiben, da Serversteuerelemente keine ascx-Datei erfordern.