Ich wurde mit einem Schulprojekt beauftragt, ein verteiltes System für ein Kino zu erstellen. Die Anforderungen sind ziemlich einfach: ein funktionierendes Modell eines Kino-Buchungssystems (also benötige ich Filme, Räume, Vorstellungen, Buchungen und eine Klasse zur Speicherung von persönlichen Informationen), einen Webdienst, der es ausführt, eine Web-Benutzeroberfläche und einen Desktop-Client zur Verwaltung.
Ich habe eine flexible Lösung gewählt, indem ich eine gemeinsame Bibliothek erstellt habe, die Definitionen für die gemeinsamen Objekte enthält, sowie eine separate Server- und Client-Implementierung (ServerReference und ClientReference). Es wurde so geschrieben, dass es einfach durch Referenzierung der Bibliothek und Erstellung einer Instanz des spezifischen Verweises verwendet werden kann (dann die Start() und Stop() Methoden verwenden).
Ich verwende WCF für die Kommunikation, das in die Controller-Schicht integriert ist, und Entity Framework für die Datenspeicherung. Da ich einen dynamischen Dienst haben wollte, musste ich die Standard-WCF-Konfiguration für Client und Server aufgeben und stattdessen die Endpunkte und Bindungen programmgesteuert erstellen.
Das Problem entstand, als ich versuchte, einen einfachen Web Service zu erstellen, der den ServerReference ausführen kann. Da ich während der Entwicklung eine desktop-ähnliche Umgebung im Sinn hatte, habe ich es so aufgebaut, nur um dann festzustellen, dass die Lösung einfach nicht mit einem Webdienst funktionieren wird.
Jetzt ist mein Problem folgendes: Die gemeinsame Bibliothek basiert auf Version 4.5, aber diese Version hat die Möglichkeit des Webdienstes verworfen. Ich möchte keinen weiteren WCF-Dienst schreiben, um die von mir erstellten Dienste zu hosten, es muss strikt lokal sein (im Grunde genommen möchte ich eine Steuerungswebsite und einen Webdienst, der eine Instanz von ServerReference erstellen kann und auf Anfrage die Start()- oder Stop()-Ereignisse auslösen kann). Da Web Service nur für 3.5 verfügbar ist, kann ich die gemeinsame Bibliothek nicht verwenden (und da die gemeinsame Bibliothek stark von der 4.5 Entity Framework-Version 6.0.1 abhängt, kann ich das auch nicht ändern).
Meine Frage ist: Wie sollte man einen solchen Dienst am besten erstellen? Sollte ich wirklich einfach einen WCF-Dienst erstellen, der den ServerReference ausführt, oder gibt es eine bessere Methode?
(Nur zur Anmerkung: Das Ziel dieses Projekts ist es, zu zeigen, was wir während dieses Semesters im Hinblick auf Webdienste, Webdesign, parallele Programmierung, reguläre Ausdrücke usw. gelernt haben.)