Ich leite derzeit ein Team von etwa 15 Entwicklern und wir stecken an einem Punkt der Auswahl der Technologie fest, an dem das Team in zwei völlig entgegengesetzte Teams aufgeteilt ist und über die Verwendung von WCF vs. Web API debattiert.
Team A, das die Verwendung der Web-API unterstützt, führt folgende Gründe an:
- Web-API ist nur die moderne Art, Dienste zu schreiben ( Wikipedia )
- WCF ist ein Overhead für HTTP. Es ist eine Lösung für TCP, Net Pipes und andere Protokolle
- WCF-Modelle sind aufgrund von [DataContract] & [DataMember] und diesen Attributen nicht POCO
- SOAP ist nicht so lesbar und handlich wie JSON
- SOAP ist ein Overhead für das Netzwerk im Vergleich zu JSON (Transport über HTTP)
- Keine Methodenüberladung
Team B, das die Verwendung von WCF unterstützt, sagt:
- WCF unterstützt mehrere Protokolle (über Konfiguration)
- WCF unterstützt verteilte Transaktionen
- Es gibt viele gute Beispiele und Erfolgsgeschichten für WCF (während die Web-API noch jung ist)
- Duplex eignet sich hervorragend für die bidirektionale Kommunikation
Diese Debatte geht weiter und ich weiß nicht, was ich jetzt tun soll. Persönlich denke ich, dass wir ein Tool nur für den richtigen Einsatzort verwenden sollten . Mit anderen Worten, wir sollten besser die Web-API verwenden, wenn wir einen Dienst über HTTP verfügbar machen möchten, aber wenn es um TCP und Duplex geht, sollten wir WCF verwenden.
Wenn wir im Internet suchen, können wir kein solides Ergebnis erzielen. Es gibt viele Stellen für die Unterstützung von WCF, aber im Gegenteil, wir finden auch Leute, die sich darüber beschweren. Ich weiß, dass die Art dieser Frage vielleicht fraglich klingt, aber wir brauchen einige gute Hinweise, um uns zu entscheiden. Wir stecken an einem Punkt fest, an dem wir es möglicherweise später bereuen, wenn wir uns zufällig für eine Technologie entscheiden . Wir wollen mit offenen Augen wählen.
Unsere Nutzung würde hauptsächlich für das Web erfolgen, und wir würden unsere Dienste über HTTP verfügbar machen. In einigen Fällen (etwa 5 bis 10 Prozent) benötigen wir jedoch möglicherweise verteilte Transaktionen.
Was sollte ich jetzt tun? Wie gehe ich konstruktiv mit dieser Debatte um?