Question

Je travaille sur un nouveau projet.Y a-t-il un avantage à utiliser un service Web WCF par rapport à un service Web classique à l'ancienne ?

Visual Studio propose des modèles pour les deux.Quelles sont les différences?Avantages et inconvénients ?

Était-ce utile?

La solution

Qu'est-ce qu'un "service Web à l'ancienne régulière?" Un service ASMX, ou utilisez-vous également WSE?Les services ASMX ne sont pas naturellement interopérables, ne prennent pas en charge les spécifications WS-* et ASMX est une technologie qui vieillit très rapidement.Les services WSE (Web Service Enhancements) ajoutent la prise en charge de WS-* et peuvent être rendus interopérables, mais WCF est destiné à remplacer WSE, vous devriez donc prendre le temps de l'apprendre.Je dirais qu'à moins que votre application ne soit rapide et ponctuelle, vous gagnerez une immense flexibilité et vous obtiendrez une meilleure conception si vous choisissez WCF.WCF fait ont une courbe d'apprentissage au-delà d'un attribut [WebMethod], mais la courbe d'apprentissage est trop exagérée à mon avis, et elle est exponentiellement plus puissante et évolutive que les services ASMX existants.

À moins que votre calendrier ne puisse tout simplement pas tolérer la courbe d'apprentissage, vous vous rendriez un immense service en apprenant WCF au lieu de simplement vous en tenir aux services Web ASP.NET.Les applications continueront à devenir de plus en plus distribuées et interconnectées, et WCF est l'avenir de l'informatique distribuée sur la plate-forme Microsoft.

Voici une comparaison entre les deux.

Autres conseils

Les avantages de tout faire soi-même sont :

  • Aucune courbe d'apprentissage
  • Très souple

Les avantages de WCF sont :

  • Coûte moins de temps à long terme
  • Changer de protocole sans programmation

Un inconvénient de WCF :quelques noms de propriétés statiques peut être assez long...

Résumer:WCF vous permet de vous concentrer sur la programmation, mais vous devez d'abord l'apprendre ;-)

Pro pour WCF :Vous n'avez pas besoin d'un serveur Web (c.-à-d.IIS).En fait, vous n'avez pas besoin d'un système d'exploitation serveur.

J'aime le fait que l'écriture de services WCF facilite la séparation de votre service de la mise en œuvre.Vous pouvez écrire votre service, puis l'héberger dans IIS, une application console ou un service Windows ;vous pouvez également lui parler via HTTP, net TCP, etc.

Les tests unitaires sur l'implémentation et l'interaction de vos services sont plus faciles à réaliser !

Si votre projet utilise le framework 4.0, pourquoi n'essayez-vous pas WebApi, qui est facile à comprendre et utilise la convention de configuration.

C'est un excellent moyen de créer des applications avec des interfaces ultra rapides

Jetez un œil aux vidéos de démarrage de MS. Elles ont évolué à partir des services de données WCF.

http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api

Dans mon expérience

WCF

Il est absurdement verbeux de travailler avec lui, il n'est pas tout à fait compatible avec d'autres produits Microsoft et, bien sûr, il n'est pas largement accepté en dehors du monde Microsoft.

Mais mon principal problème est qu'il n'est pas stable, qu'il a tendance à échouer (dans certaines situations) et qu'il nécessite de le modifier avant de pouvoir être utilisé.

Plutôt

SOAP (alias Webservice standard), ça marche, c'est simple à travailler et c'est largement compatible (Java-JAX l'accepte sans aucune modification).

Ajouter une authentification dans SOAP pourrait être un peu délicat mais pas impossible.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top