Recentemente ho sperimentato con Silverlight, Servizi RIA e Entity Framework utilizzando .NET 4.0. Sto cercando di capire se questo stack ha senso per l'uso in uno dei miei progetti futuri. Sembra senz'altro che queste tecnologie possano essere molto produttive per lo sviluppo di applicazioni, ma non riesco a decidere come architettare un'applicazione in cima a questo stack.Quanta logica aziendale appartiene al livello dei servizi RIA?
Il problema principale che ho riscontrato è che nella maggior parte delle demo ho visto che la maggior parte della logica aziendale termina come DataAnnotation e convalida personalizzata nella classe del servizio di dominio dei servizi RIA. Questo mi sembra inopportuno. Considero il servizio di dominio fondamentalmente un servizio web glorificato che rende facile inviare informazioni al client. Ma la maggior parte di ciò che ho visto sembra orientare il servizio di dominio come la principale fonte di business logic nell'applicazione.
Quindi, le mie domande:
- Qual è la posizione migliore per la logica di business (le regole, le convalide, i comportamenti, autorizzazione) in un'applicazione che utilizza questo stack?
- Esistono linee guida pubblicate a livello di architettura per l'utilizzo di questo stack?
Le mie domande riguardano applicazioni grandi, complesse e di lunga durata. Ovviamente per un'applicazione di pochi schermi questo è meno preoccupante.
Edit: Un'altra cosa che ho intenzione di menzionare è che, ovviamente, si può fare la classe di servizio del dominio stupida, ma poi si perde un sacco di informazioni dell'entità automagic (ad esempio le convalide) essere spinto al cliente. E poi se perdi c'è un punto utile nell'utilizzo dei servizi RIA?
Mi piacerebbe sapere la stessa cosa! Mi sto davvero sforzando di farmi un'idea delle migliori pratiche per i servizi RIA. Non sembrano esserci troppi esempi di applicazioni aziendali dettagliate. – Banford
Sto ancora pensando a questo anche per me stesso. Ad ogni modo, anche se si rende il DomainService il più stupido possibile, si ottiene comunque il DomainContext facile da usare per inviare le modifiche (in batch) al server e modificare il tracciamento sul lato client. Questo IMO rende ancora abbastanza preziosi i servizi RIA. – joshuapoehls
Punto buono digiduck. Questo vale sicuramente qualcosa. – RationalGeek