La risposta a questo dipende dal vostro punto di vista. Dico che cambiare il contratto viola il contratto. Ecco perché li chiamano "contratti".
Modifica del contratto di servizio con l'aggiunta di ulteriori operazioni "rompe" il cliente perché cambierà il loro codice proxy. In molti ambienti aziendali, tale modifica richiede un passaggio QA, anche se il codice client esistente non sta chiamando le nuove operazioni. Fondamentalmente, aggiungendo operazioni, stai modificando il codice cliente. In questo senso, è chiaro che è necessario il QA.
Non c'è bisogno di modificare il contratto di servizio, quando si può invece creare un nuovo contratto di servizio, e hanno un diverso endpoint del servizio implementarlo. Puoi anche fare in modo che il nuovo servizio implementa sia i vecchi che i nuovi contratti e condivida lo stesso codice per implementare quello vecchio con.
Sono anche uno dei vecchi tipi stile che credono è necessario utilizzare uno spazio dei nomi diverso per un contratto diverso. In un senso almeno pignolo, i vecchi e nuovi contratti sono diversi, quindi potenzialmente lo stesso nome potrebbe significare cose diverse tra i due. Questo può essere mitigato facendo in modo che il nuovo contratto derivi dal vecchio, in modo che i vecchi nomi rimangano nel vecchio spazio dei nomi, mentre i nuovi nomi si troverebbero nel nuovo spazio dei nomi.
fonte
2009-06-23 18:11:30
No, se le operazioni di base rimangono uguali (compresi tutti i parametri), il client esistente * NON * deve aggiornare i propri riferimenti. –