Si consiglia di utilizzare le quadro di auto-monitoraggio con i servizi WCF?

Voglio sapere se l’utilizzo di quadro di autoassegnazione (in Entity Framework) è raccomandato con i servizi WCF? Se sì, allora puoi guidarmi ad un tutorial che può guidare come farlo?

In realtà, svilupperò un’applicazione WPF usando Prism con MEF e MVVM. Ho deciso di utilizzare Entity Framework. Voglio suggerimenti e consigli su questo approccio.

Qualsiasi aiuto sarà apprezzato.

Voglio sapere se l’utilizzo di quadro di autoassegnazione (in Entity Framework) è raccomandato con i servizi WCF?

Dipende da chi chiedi. Se chiedi a MS ti diranno Sì perché semplicemente non hanno niente di meglio da offrire. STE erano la risposta a questo molto vecchio suggerimento di MS Connect . Il problema è che l’EF stesso ha un pessimo supporto per fondere le modifiche tra due grafici di quadro (dovete farlo completamente da soli) e gli sviluppatori che lavorano sulla piattaforma MS (a volte includendo me) condividono alcuni comportamenti comuni:

  • Sono pigri per sviluppare la propria soluzione al problema e si aspettano qualche magia direttamente nelle API fornite da MS.
  • Il più delle volte non sono addestrati / qualificati / competenti nella tecnologia che devono usare, perché devono trasferirsi a una nuova troppo spesso.
  • Le uniche API che conoscono fanno parte di .NET Framework. Non cercano altre opzioni né mettono a confronto le caratteristiche.

I primi due punti sono il risultato della strategia MS in cui RAD diventa sinonimo di designer (o anche modelli T4).

Condivido l’ opinione di @Richard su STEs. Vorrei aggiungere un ulteriore svantaggio di STE: spostano dataset di grandi dimensioni tra i partecipanti. Se si decide di ottenere un grafico di entity framework dal server, modificare una singola entity framework nel grafico e spingere indietro i dati che trasferiranno nuovamente l’intero grafico. Il trasferimento solo delle quadro modificate comporta un conflitto con la logica di base di STE. Ho anche paura di tenere traccia delle modifiche completamente a livello di entity framework anziché a livello di proprietà. In caso di modifica di entity framework con dati binari o stringa di grandi dimensioni, può comportare il trasferimento di troppi dati non necessari tra il servizio e il database e tra il servizio e il client.

Ad ogni modo, per una semplice applicazione con un basso traffico di dati e piccole entity framework, possono fare un buon lavoro e permetterti di build rapidamente la tua applicazione, ma senza una rigida separazione delle preoccupazioni. Otterrai quadro dal servizio e li collegheranno direttamente all’interfaccia utente di WPF e saranno in grado di tenere traccia delle modifiche per te. In seguito spingerete le quadro al servizio e saranno in grado di mantenere i cambiamenti. Il tuo cliente e servizio saranno strettamente accoppiati ma in alcuni scenari può essere abbastanza buono.

Eviterei le quadro di auto-localizzazione in generale – ne ho scritto un blog qui .

Crea i tuoi DTO e usali per gestire il trasferimento dei dati, quindi raddoppia i tuoi oggetti POCO nel servizio e usali con il framework di quadro per la persistenza

Se vuoi il self tracking allora c’è un approccio leggermente più pulito qui