| 

.NET C# Java Javascript Exception

1
Angenommen, eine Webseite mit verschiedenen Seiten nutzt einen gemeinsamen Header, dann will ich den Header nicht duplizieren. Also nehme ich eine Masterpage, einen Include, oder was meine Plattform halt so hergibt.

Angenommen, nun habe ich aber nicht nur eine Webseite, sondern gleich mehrere, die sich den gemeinsamen Header teilen sollen.

Wie macht man das am Geschicktesten?

IFrame gefällt mir nicht wirklich, und einfach den Teil einer Seite von einem anderen Server laden, finde ich auch nicht so überzeugend. Wie könnte man das elegant lösen?
News:
20.07.2011
Golo Roden 2,7k 3 9
Um's noch mal deutlich zu machen: Ich suche einen Weg, ein Codefragment für verschiedene Webseiten zu nutzen, ohne IFrame oder eine Cross-Domain-Anfrage. Für den Client soll alles "aus einer Hand" kommen.
Golo Roden 20.07.2011
Was gibt denn Deine Plattform so her? ;-) Anders gefragt: ist irgendeine Technologie gesetzt, oder suchst Du eher nach einer Technologie, die so ein Szenario besonders gut unterstützt? Können alle Webseiten als technologisch homogen vorausgesetzt werden (z.B. alle laufen mit ASP.NET), oder sollen sie heterogen sein dürfen?
Matthias Hlawatsch 20.07.2011
Die Plattform ist zweitrangig, mir ging's erst mal um das Konzept an sich.

OOTB habe ich hier ASP.NET, Mono und Node.js rumstehen ...

Die Seiten sollten auch heterogen sein dürfen. Im Grunde ist meine derzeitig letzte Überlegung, ein Control zu schreiben, was die Anzeige übernimmt, was deployed wird - aber die Konfiguration, was angezeigt wird, kommt aus einer gemeinsamen Datenbank, beziuhungsweise von einem Webservice.

Die Preisfrage ist nur - wie baut man Controls in Node.js ;-)?
Golo Roden 22.07.2011
5 Antworten
1
Diese Aufgabe schreit meiner Meinung nach förmlich nach SOA. Serviceorienterte Architekturen können in PHP sehr einfach und elegant realisiert werden und sind wirklich universell einsetzbar. So kannst du eben auch einfach auf die Funktionalitäten einer "Master"-Anwendung zugreifen... dortige Änderungen werden dann automatisch auf alle anderen Anwendungen verteilt. Damit hast zwar in gewissen Hinsicht eine "Cross-Domain-Anfrage", allerdings sehe ich keine Grund darauf zu verzichten.

Eine Einführung in SOA mit PHP findest du hier.
Ein sehr schönes Tutorial, wie du Webservice in PHP umsetzt gibts hier. Hier wird sehr einfach das gesamte Vorgehen, also SOAP-Server und Client, sowie Erstellung der WSDL erläutert.
21.07.2011
DevConfusion 149 1 3
Du meinst, im Sinne von: Ein Server stellt unter einer Webservice-Adresse ein Codeschnipsel bereit, das abgefragt und on the fly eingebunden wird?
Golo Roden 22.07.2011
1
Eine Idee wäre, ähnlich wie ich das für WPF und Windows Phone 7 praktiziere, eine Art Multi Targeting Projekt zu erstellen, wo du den HeaderCode quasi unter deinen Projekten teilst/verlinkst.

Ich weiß nur nicht, wie sich das in Webprojekten außerhalb von Visual Studio umsetzen lassen würde.
20.07.2011
Mario Priebe 6,0k 3 9
1
Wie häufig ändert sich der Header denn? Ich würde in dem Fall eher Redundanz erzeugen (sofern möglich) und den Header zumindest "lokal" cachen. Das Verteilen könnte ja zentral gesteuert werden.
Denn was passiert, wenn der "Hauptserver" mal ausfällt, oder auch nur die Verbindung gestört wird?
Wenn der Header nur dort vorgehalten wird, wären gleich alle Domains betroffen.
In dem Fall also Ausfallsicherheit vor der Vermeidung von Redundanzen.
20.07.2011
Xantiva 2,3k 2 9
Xantiva 2,3k 2 9
Ja okay, aber wie funktioniert das "zentral gesteuerte Verteilen"? Das war ja eigentlich die Frage ;-)
Golo Roden 22.07.2011
1
Dann per Webservice! Ob nun per SOAP, oder einfach per REST/JSON ist dann eher Geschmackssache. Den letzten erfolgreiche Aufruf würde ich lokal ablegen, damit im Fall einer Störung des Webservices die Seite dennoch angezeigt wird. Und wenn die "Client Seiten" dann hohe Besucherzahlen haben, ist es sowieso vorteilhafter nicht bei jedem Seitenaufbau den Webservice abzufragen sondern die Anfragen bevorzugt aus dem Cache zu bedienen.
Xantiva 22.07.2011
0
Hallo,

In ASP.Net könntest Du die Master Page in ein eigenes Projekt auslagern und dann auf die dll in den jeweiligen anderen Projekten verweisen. Die Dll packst Du dann in den GAC.

Gruß,
20.07.2011
LutzJ 1,3k 1 8
Wäre eine Möglichkeit, allerdings bin ich dann darauf angewiesen, dass alle Webseiten auf dem gleichen Server laufen (was sie nicht tun).
Golo Roden 22.07.2011
0
Ja, ganz genau. So bräuchtest du halt auch nur einen Service, der dir alle möglichen Codeschnipsel zurückliefern kann.
23.07.2011
DevConfusion 149 1 3

Stelle deine Web-Frage jetzt!