2009-06-26 11 views
1

Ich habe ein Silverlight-Projekt, bei dem die Funktionalität aufgrund der Größe und Komplexität der Anwendung auf mehrere Silverlight-Bibliotheken verteilt ist. Ich habe Probleme herauszufinden, was der beste Weg ist, den RIA Domain Service, der aus dem Website-Projekt generiert wird, zu entkoppeln. Ich muss auf Daten von den anderen Bibliotheken zugreifen können, da sie bei Bedarf dynamisch in die Silverlight-Hauptanwendung geladen werden.Silverlight 3 RIA-Services-Referenz

Antwort

1

Am Ende nahm ich den Code, der von Visual Studio generiert wird, im Generated_Code-Verzeichnis der Silverlight-Hauptanwendung und erstellt mehrere Silverlight-Bibliotheken, um den Ria DomainContext, den Authentifizierungsdienst, Entitäten und andere von uns geschriebene Domänendienste zu trennen . Ich habe dann Schnittstellen für den DomainContext usw. extrahiert und in eine eigene Bibliothek gestellt. Mit Microsoft Unity Framework für Silverlight konnte ich dann alle meine Module vom Hauptprojekt entkoppeln. Alle meine Module benutzen jetzt die Schnittstellen. Es gibt einen IoC-Container in der Hauptanwendung, in dem ich alle Klassen registriere, die die Schnittstellen implementieren, und sie werden in die Seiten injiziert, wenn sie instanziiert werden. Nicht so kompliziert. Das einzige, was zu erinnern ist, das EnableClientAccess-Attribut in den Domänendienste-Klassen auf dem Server zu belassen, aber den ASP.Net-Server-Projekt-Link von der Silverlight-Hauptanwendung zu entfernen. Ich habe gelesen, dass sie planen, dies in der endgültigen Version von Ria Services/Silverlight 3 einfacher zu machen, da sich andere über die enge Kopplung beschwert haben, die durch das aktuelle Setup geschaffen wurde.