Seit Tagen lese ich und forsche und kämpfe immer noch, wie man die perfekte Infrastruktur schafft. Da es keine Prism 4.0-Vorlagen als solche gibt, habe ich eine Strategie entwickelt, aber ich muss sicher sein, dass dies die richtige Strategie ist, und ich würde einen Rat von erfahrenen PRISM/RIA-Entwicklern schätzen.Silverlight/Prism/RIA: Wie erstelle ich die optimale Infrastruktur?
verwende ich PRISM 4.0, RIA Services 1.0 SP1 Beta, Silverlight 4.0, Entity Framework 4,0
1) Client-Seite
Ich habe zuerst ein "Silverlight Business Application", die eine schafft Web.host und eine Silverlight-Client-Anwendung mit implementierter RIA-Berechtigung. Die anfänglich erstellte Silverlight-Clientanwendung muss als Shell-Projekt verwendet werden.
2) Infrastruktur-Projekt (Common)
Dieses Projekt einige gemeinsame Prism MEF enthalten würde Attribute und vielleicht auch die Einheit Modelle, die durch die automatische RIA sowie die Service-Schnittstelle erzeugt werden. Die Idee ist, eine einfache Silverlight-Klassenbibliothek zu erstellen, und unter Eigenschaften des Projekts würde ich für das Dropdown-Menü "WCF Ria Services Link" auf das host.Web-Projekt verweisen, das die Ria-Services enthält. Dann, nach dem Wiederaufbau, ich bin in der Lage, die Einheit Modell innerhalb der Klassenbibliothek zu sehen und diese dann zwischen den Prismen Modulen gemeinsam genutzt werden könnten, um ihre Viewmodel zu füttern usw.
3) Service-Schicht
Soll ich das EF4-Modell im Web.host-Projekt und füge den Domain Service dort hinzu? Dann würde ich eine Schnittstelle aus dem Domain Service extrahieren und die Schnittstelle in das Infrastruktur (Common) Projekt einfügen. Das Web.Host muss daher auf das Infrastruktur (allgemeine) Projekt verweisen, um auf die Schnittstelle zugreifen zu können. Auf der Clientseite kann die Schnittstelle von MEF verwendet werden, um den Dienst abzurufen oder nachzuahmen. Allerdings mache ich mir Sorgen, dass der Dienst auf ein gemeinsames Projekt verweist, das auch die clientseitig generierten Entitäten enthält.
4) Authorization
auch ein bisschen besorgt über die Genehmigung, so werde ich alles auf dem Shell-Projekt verlassen? Oder muss ich etwas in das Infrastrukturprojekt verschieben, um es zu teilen?
Da dies mein erstes Mal mit PRISM Design ist, habe ich vielleicht einige Aspekte falsch verstanden oder vergessen. Bitte zögern Sie nicht, meine Vorschläge zu verbessern.
Ihre Hilfe sehr
geschätztKave
Danke Kumpel. Ja, ich habe den obigen Link bereits veröffentlicht. ;) Es ist in der Tat eine gute Ressource. – Houman