Domanda

sto sviluppando un'API WCF-based per il software di CRM della mia azienda. In futuro, sarà utilizzato per sviluppare applicazioni su più piattaforme. So WCF fornisce named pipe, TCP, HTTP e trasporti, ma dovrei perdere tempo con la complessità di supportare tutti e tre quando tutto sembra essere utilizzando HTTP RESTful in questi giorni?

È stato utile?

Soluzione

REST è lo stile architettonico del web, non solo i file XML su htttp senza sapone.

WCF è un framweork con l'unico scopo nella vita è sviluppatori estratto dalla sottostante piattaforma / protocollo / pila di spec. WCF REST era un povero aggiunta al kit di strumenti per far si espone servizi POX.

quiete richiede la distribuzione, la mancanza della sessione, progettazione di tipi di supporti personalizzati o il riutilizzo di quelli esistenti, e molte altre proprietà che è necessario pensare. Progettando un'architettura REST è tanto circa XML ove rhttp come progettare una SOA uno è di avere una busta sapone.

Altri suggerimenti

Per semplicità, trasporto HTTP sarebbe il trasporto più usato con la maggior quantità di flessibilità. E 'anche probabile che funziona praticamente in tutte le situazioni. Si noti che c'è overhead coinvolto quindi non è il più veloce. C'è sempre compromessi.

Hai chiesto due domande differenti senza rendersene conto.

La prima domanda è: che cosa dovrei usare il trasporto - HTTP, TCP o named pipe? Dal momento che si sta costruendo un nuovo servizio da zero, io suggerirei utilizzando HTTP come il trasporto in quanto il servizio avrà un tempo molto più facile ottenere attraverso i firewall. Gli altri tipi di trasporto sono utilizzati principalmente per semplificare la comunicazione con altri servizi e clienti che potrebbero non capire HTTP.

La seconda domanda è, quale stile di servizio Web HTTP dovrei usare? Dovrei adottare la WS- * impilare, una XML-RPC modello, plain old XML (POX), o un RESTful ? Questa è una domanda più complicata.

WCF rende il WS- * e gli stili XML-RPC facile. Lo stile POX di webservice è un po 'Tricker configurare usando WCF. Costruire un servizio veramente RESTful utilizzando WCF è abbastanza difficile -. Dovrete capire i fondamenti di come funziona WCF e disabilitare alcuni dei "magico" che si svolge per voi

Credo che l'architettura di stile RESTful è semplice e collaudato, e una buona scelta. Ma è difficile da configurare WCF per sostenere in modo corretto. Se siete vincolati ad WCF come piattaforma, è possibile utilizzare uno degli altri stili.

Non ho guardato Indigo in un po ', ma per quanto mi ricordo, ci sono alcune cose che HTTP RESTful non supporta e non ha analogico, come WS-Transactions, WS-Security e paio di altri. Se avete bisogno di questi, si dovrà passare a SOAP. In caso contrario, resto dovrebbe essere abbastanza buono per la vostra azienda.

C'è anche la questione delle prestazioni. SOAP codificato come XML binario su TCP o offerte named pipe sarà un po 'più veloce di testo XML su HTTP.

D'altra parte, l'aggiunta di TCP e named pipe per il maggior numero di parti è quasi banale e il costo è per lo più intorno TE distribuzione e la configurazione del server di applicazione.

Quindi, non escluderei questi due fuori discussione fin dall'inizio. Né io li aggiungere come funzioni fino a quando necessario. Cosa farei se è per assicurarsi che sia SOAP e REST sul lavoro HTTP correttamente per il servizio, solo così che ho la possibilità di espandere in futuro, se necessario.

In generale i componenti WCF non dovrebbe essere accoppiato a qualsiasi cosa, compresi i trasporti, la sicurezza, e altri protocolli e tecnologie. L'obiettivo finale (probabilmente non al 100% ancora possibile) sarebbe quella di scrivere la vostra interfaccia del servizio e l'implementazione una volta e poi essere in grado di utilizzare in qualsiasi tipo di ambiente su qualsiasi protocollo con qualsiasi tipo di sicurezza. Tutto questo può essere definito nel file di configurazione e nelle vostre applicazioni client.

scroll top