WCF Versioning, Naming ed Endpoint URL

8

Ho un servizio WCF e un Lib1 principale.

Dire, ho un servizio di salvataggio dei profili. WCF ottiene i dati (con contratto dati predefinito) dal client e li trasferisce alla classe principale Lib1, genera la risposta e la invia al client.

Metodo WCF: SaveProfile (profilo ProfileDTO)

Current Version 1.0 ProfileDTO ha il seguente Nome utente Parola d'ordine Nome di battesimo DOB (nella stringa aaaa-mm-gg) CreatedDate (Nella stringa aaaa-mm-gg)

Versione successiva (V2.0) ProfileDTO ha il seguente Nome utente Parola d'ordine Nome di battesimo DOB (In UnixTimeStamp) CreatedDate (In UnixTimeStamp)

Versione 3.0 ProfileDTO ha il seguente (con modifica in UserName e nella convalida della lunghezza della password) Nome utente Parola d'ordine Nome di battesimo DOB (In UnixTimeStamp) CreatedDate (In UnixTimeStamp)

In semplice abbiamo il cambio DataContract e Workflow tra ogni versione 1. Come denominare i metodi nel servizio WCF e nella classe principale Lib1? 2. Devo seguire uno schema specifico per facilitare lo sviluppo e la manutenzione? 3. Devo avere endpoint diversi per versione diversa?

Nell'esempio precedente ho un metodo chiamato "SaveProfile". Devo dare un nome ai metodi come "SaveProfile1.0", "SaveProfile2.0", ecc. In questo caso, quando non ci sono cambiamenti tra la versione "3.0" e "4.0", la manutenzione sarà difficile. Sto cercando un approccio che faciliti la manutenzione

    
posta Vinothkumar VJ 24.11.2013 - 19:20
fonte

1 risposta

1

Ci sono due modi per avere versioni diverse dello stesso contatto. Il primo è utilizzare namespace e il secondo utilizzare diversi nomi di servizio . Personalmente, preferisco il diverso approccio allo spazio dei nomi semplicemente perché incapsula la "versione" con un titolo di spazio dei nomi e consente ai chiamanti di essere specifici sui loro requisiti contrattuali.

Tuttavia, la creazione di nuove versioni del contratto ha il rischio di rompere la compatibilità con i chiamanti esistenti.

    
risposta data 25.11.2013 - 16:12
fonte

Leggi altre domande sui tag