Ich habe vor ein paar Jahren eine sehr knappe Rezension von ICE gemacht, und obwohl ich sie nicht direkt vorher verglichen habe, mit vernünftigen Kenntnissen von WCF meine Gedanken könnten etwas Relevanz haben.
Erstens ist es nicht fair, WCF mit ICE als WCF zu vergleichen, da ICE ein spezieller Fernkommunikationsmechanismus ist und WCF ein übergeordnetes Fernübertragungs-Framework ist.
Während WCF oft als Implementierung von SOAP-Webdiensten betrachtet wird, und das ist tatsächlich seine Hauptverwendung, kann es auch für die Implementierung von Remote-Diensten mit allen Arten von Codierungen und Transportkanälen verwendet werden, was theoretisch bedeutet Wird für performante Kommunikation zwischen Anwendungen verwendet.
Im Vergleich dazu ist ICE ein plattformübergreifender Fernkommunikationsmechanismus, der die binäre Codierung für die performante Kommunikation zwischen Anwendungen verwendet. Es ist eine vereinfachte Version von CORBA und ist direkter mit CORBA, DCOM, .NET Remoting und JNI vergleichbar.
Auch wenn es keine direkte Korrespondenz zwischen ICE und WCF gibt, wenn Sie Ihre .NET-App benötigen, um aus der Ferne zu kommunizieren, dann sind beide Konkurrenten. Einige der Entscheidungspunkte, die Sie in Erwägung ziehen sollten, sind:
Resourcing. Es wird einfacher sein, Entwickler mit WCF-Erfahrung als ICE-Erfahrung zu finden.
Leistung. Wenn Leistung gewünscht wird, wird ICE zwar schnell ausgeführt, WCF kann jedoch auch in einer performanten Konfiguration verwendet werden. Alternativ kann .NET Remoting eine sehr gute Leistung bieten, und was auch immer die von MS gesponserten Benchmarks sagen, ich habe gesehen, dass es WCF um 10% übertroffen hat.
Plattformübergreifend. Wenn Sie mit Nicht-Windows-Anwendungen kommunizieren müssen, sind Sie mit den WCF-Optionen eingeschränkt, die Sie verwenden können. Da darüber hinaus die Standards jeder SOAP-Stack scheint anders zu implementieren kann es ein Schmerz wirklich generische Web Services zu schaffen sein
(obwohl WS-I hilft) Wenn Sie jedes Quäntchen Leistung von Tag nicht brauchen ein Dann würde ich mich persönlich für WCF entscheiden und dann über ICE nachdenken, wenn die Leistung jemals kritisch wird. Selbst dann könnte es günstiger sein, Ihre Service-Boxen zu skalieren, als in ICE zu wechseln, und wenn Sie keine exotischen plattformübergreifenden Anforderungen haben, können Sie WCF immer für die Binärcodierung umgestalten.
Wenn Sie den Vergleich selbst tun. Bitte posten Sie Ihre Gedanken hier. –