John is correct dass ASMX-Web-Services jetzt als Legacy-Technologie gelten. Wenn Sie Code schreiben, der über ein beliebiges Netzwerk mit anderen Prozessen kommuniziert, sollte Ihre Standardwahl WCF lauten.
Wenn Sie mit dem vollständigen .NET Framework (d. H. Auf Servern und Desktops) arbeiten, ist dies immer der Fall. Es kann vorkommen, dass Sie eine andere Technologie (z. B. rohe Sockets) verwenden müssen, aber niemals ASMX.
WCF auf .NET CF ist anders. Es ist ein sehr eingeschränkter WCF-Port, und es gibt Dinge, die Sie mit dem alten Webclient tun können, die Sie nicht mit WCF auf .NET CF ausführen können: Im alten Webclient können Sie Windows-Authentifizierung sowohl mit HTTP als auch verwenden HTTPS. Mit WCF unter .NET CF können Sie nur die Windows-Authentifizierung mit HTTPS verwenden. Dieses spezielle Problem hat uns daran gehindert, WCF auf dem Gerät für Microsoft Dynamics Mobile zu verwenden.
Es gibt einen Grund für diese Einschränkung, da Sie Windows-Authentifizierung mit HTTP in Produktionsszenarien nie verwenden sollten, da der Benutzername und das Kennwort in Klartext übertragen werden, aber wir zu Testzwecken benötigt.
Mit dem Risiko der Angabe der offensichtlichen, möchte ich auch darauf hinweisen, dass, was auch immer Sie in Bezug auf den Code, den Sie für Ihre Geräte schreiben, sollten Sie definitiv mit WCF gehen, wenn Sie auch das Web schreiben Dienste, mit denen die Geräte kommunizieren.
Auch wenn Sie die alte Webclient-Technologie auf .NET CF verwenden, können Sie weiterhin mit WCF-Diensten sprechen. Das haben wir mit Dynamics Mobile gemacht.