Domanda

Ho un progetto Silverlight in cui la funzionalità è suddivisa in più librerie Silverlight a causa delle dimensioni e della complessità dell'applicazione. Ho problemi a capire qual è il modo migliore per disaccoppiare il servizio di dominio RIA che viene generato dal progetto del sito Web. Devo poter accedere ai dati delle altre librerie poiché verranno caricati dinamicamente nell'applicazione Silverlight principale, se necessario.

È stato utile?

Soluzione

Ho finito per prendere il codice che viene generato da Visual Studio nella directory Generated_Code dell'applicazione principale Silverlight e creare più librerie Silverlight per separare Ria DomainContext, il servizio di autenticazione, le entità e altri servizi di dominio che avevamo scritto. Ho quindi estratto le interfacce per DomainContext, ecc. E le ho inserite nella loro libreria. Utilizzando Microsoft Unity Framework per Silverlight sono stato quindi in grado di separare tutti i miei moduli dal progetto principale. Tutti i miei moduli ora usano le interfacce. Esiste un contenitore IoC nell'applicazione principale in cui registro tutte le classi che implementano le interfacce e vengono iniettate nelle pagine man mano che vengono istanziate. Dopotutto, non così complicato. L'unica cosa da ricordare è lasciare l'attributo EnableClientAccess sulle classi dei servizi di dominio nel server ma rimuovere il collegamento al progetto del server ASP.Net dall'applicazione Silverlight principale. Ho letto che stanno pianificando di semplificare questo aspetto nella versione finale dei servizi Ria / Silverlight 3 poiché altre persone si sono lamentate dello stretto accoppiamento creato dall'impostazione corrente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top