Frage

Ich bin im Begriff, eine Web-Anwendung zu entwerfen, die mehr installierbaren Module haben, die unterschiedlichen Funktionen bieten. Es gibt eine Menge von gemeinsamen Sachen hier los und ich habe 3 C # Klassenbibliotheken, dass ich einfach zu bedienen sein wird wissen, an verschiedenen Projekten.

Das Bit ich stecken bin, ist die eigentliche Website selbst. Im Idealfall würde Ich mag eine ASP.NET Seite Bibliothek machen , die wiederverwendet werden über mehrere Projekte sein können, aber ich verstehe, dass dies nicht möglich ist.

Wie ihr Ihre Website-Projekte strukturieren, so dass Seiten wiederverwendet über mehrere Projekte sein können? Bisher ist die einzige Lösung, die ich habe kommen mit ist ein Repository in SVN zu erstellen und haben es in den svn:externals Eigenschaften des Hauptprojekt verwiesen. Dies ermöglicht es mir Seiten in das Verzeichnis hinzuzufügen, die auf allen Webseiten üblich sind, und ich weiß, ich in der Lage sein wird, diese zu verwenden, sie auf andere Projekte zu überprüfen. Allerdings glaube ich, das ist ein bisschen klobig und wird zu Problemen führen, wenn neue Projekte zu schaffen (es würde eine Reihe von Schritten sein, um die neue Lösung zu schaffen, um sicherzustellen, dass die richtigen Externen vorhanden sind).

Gibt es eine bessere Lösung? Was ist der beste Weg, wenn Sie gemeinsame ASPX-Dateien über mehrere Client-Projekte teilen möchten? Wie schaffen Sie Änderungen gegen sie?

Vielen Dank im Voraus!

EDIT:

Vielen Dank an David für seine Antwort. Ich habe mehr Gedanken zu diesem Thema habe und dachte, dass ich einige meiner konkreteren Ideen / Bedenken auflisten würde. Zum einen ein bisschen mehr über das Projekt (en). In erster Linie ist es ein CMS. Allerdings haben wir auch Kunden, die CRM wollen, und es gibt auch Kunden, die weder und wollen eine ganze maßgeschneidertes System von Grunde wollen auf.

In meinem ursprünglichen Beitrag oben, ich sprach über Verzeichnisse der Haupt Wurzel (beispielsweise cms), svn:externals mit leicht über mehrere Projekte hinweg wieder gemeinsame Nutzung von Internetseite zu ermöglichen. Ich fange an zu denken, dies ist der einzige Weg, dies zu tun. Eine Sache, die mich gestört hat, war, wenn die URL des Kunden war:

http://www.shotgunanddribble.com/cms/content.aspx

Aber ich denke, ich die Application_BeginRequest können schrecklich Urls mildern, indem sie entsprechend der Konfiguration der Client-Seite neu zu schreiben. Z. B, wenn ein Kunde war nur ein CMS ich ihre Top-Level-Domain zu /cms/ umschreiben könnte. Gleiche mit, wenn sie ein CRM sind. Wenn sie beide waren:

http://www.shotgunanddribble.com/ -> /cms/

http://crm.shotgunanddribble.com/ -> /crm/

Gibt es einen Nachteil dieser Art von Neufassungen zu verwenden? Ich denke, dass, es sei denn, jemand irgendwelche magischen Ideen hat, svn:externals meine einzige Hoffnung ist.

War es hilfreich?

Lösung

Der eigentliche Code ist leicht genug, um von in anderen Baugruppen und vererben zu setzen, aber die ASPX-Dateien sind auf jeden Fall eine andere Geschichte. Wie wäre es eine gemeinsame Bibliothek von Benutzersteuer den größten Teil der Anzeigeinhalt enthalten, und jedes Projekt würde seine eigenen Seiten haben, die meist nur die Bedienelemente gestalten? Ich habe nie versucht es, so kann es einige „Gotcha“ sein, dass ich gerade jetzt nicht abbildet.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top