Versioni
| Inizia qui di seguito la raccolta di proposte sui temi da discutere e su come strutturarli. Aggiungi liberamente i tuoi commenti e suggerimenti o inserisci i contenuti che ti interessano.
Il DesignCode-first o Contract-first ? Questo è un bel dilemma che viene posto quotidianamente a tutti gli sviluppatori di Web services. Prima di dare una risposta, e soprattutto dare al lettore le 'armi' per poter scegliere, è bene precisare che cosa si intenda. In .NET siamo stati abituati a scrivere web services come si scrive una classe object-oriented. Infatti basta ereditare (fatto non obbligatorio) dalla classe WebService, decorare la classe con l'attributo WebServiceAttribute ed i relativi metodi con WebMethodAttribute ed il gioco è fatto. Questo approccio si chiama code-first. Se ci scriviamo (in qualche modo) il documento WSDL (Web Service Description Language) e ne generiamo la classe (con wsdl.exe del framework), allora stiamo parlando di contract-first. E' un pò come in COM quando si iniziava a definire le interfaccie in IDL. Il punto è: ma come scrivo il WSDL? La risposta semplice è: a mano no, ma con gli strumenti adeguati si può fare. [Nota: in questo momento non approfondiamo più di tanto...] Apparentemente, vantaggi nell'utilizzare contract-first rispetto all'altra metodologia non ce ne sono, ma solo apparentemente! In effetti, mediante codice non è possibile definire schemi di messaggi precisi, come ad esempio (i più importanti):
Queste limitazioni fanno propendere per una soluzione contract-first, cioè la dove posso decidere nei minimi particolari com'è il mio messaggio di input ed eventualmente di output, rendendo il mio web service molto più solido. | UGIdotNETWikiUGIdotNETWiki è il WikiWiki italiano dedicato a .NET Se è la prima volta che senti parlare di Wiki, leggi il BenvenutoAiVisitatori e WikiInUnMinuto, oppure il ManualePassoPassoDelWiki. Argomenti Recenti | ||||||||||||||||||||||||||||||||||||||
| © 2008 User Group Italiano UGIdotNET. Tutti i diritti riservati. Note legali | ||||||||||||||||||||||||||||||||||||||||