Gestisco un team di circa 15 sviluppatori ora e siamo bloccati su un punto in cui scegliere la tecnologia, in cui il team è suddiviso in due team completamente opposti, discutendo sull'uso di WCF rispetto all'API Web.
Il team A che supporta l'utilizzo dell'API Web espone questi motivi:
- Web API è solo il modo moderno di scrivere servizi ( Wikipedia )
- WCF è un overhead per HTTP. È una soluzione per TCP, Net Pipes e altri protocolli
- I modelli WCF non sono POCO, a causa di [DataContract] & [DataMember] e quegli attributi
- SOAP non è leggibile e pratico come JSON
- SOAP è un overhead per la rete rispetto a JSON (trasporto su HTTP)
- Nessun overload di metodi
Il team B che supporta l'uso di WCF, dice:
- WCF supporta più protocolli (tramite configurazione)
- WCF supporta le transazioni distribuite
- Esistono molti buoni esempi e storie di successo per WCF (mentre Web API è ancora giovane)
- Duplex è eccellente per la comunicazione bidirezionale
Questo dibattito continua e non so cosa fare ora. Personalmente, penso che dovremmo usare uno strumento solo per il suo giusto luogo di utilizzo . In altre parole, è meglio utilizzare l'API Web, se vogliamo esporre un servizio su HTTP, ma utilizzare WCF quando si tratta di TCP e Duplex.
Effettuando una ricerca su Internet, non possiamo ottenere risultati solidi. Esistono molti post per supportare la WCF, ma al contrario troviamo anche lamentele da parte della gente. So che la natura di questa domanda potrebbe sembrare discutibile, ma abbiamo bisogno di alcuni buoni consigli per decidere. Siamo bloccati in un punto in cui scegliere una tecnologia per caso potrebbe farci pentire in seguito. Vogliamo scegliere con gli occhi aperti.
Il nostro utilizzo sarebbe principalmente per il web e pubblicheremo i nostri servizi su HTTP. In alcuni casi (ad esempio dal 5 al 10%) potremmo aver bisogno di transazioni distribuite.
Cosa dovrei fare ora? Come gestisco questo dibattito in modo costruttivo?