2009-04-21 7 views
4

Je vois qu'il y a deux options que je sais qui peuvent être utilisées dans les services Web ... WCF évidemment, et les services Web ASP.NET. Quelle est la différence? Je viens de commencer à ramasser WCF récemment et ai eu une petite exposition aux services Web dans le passé, mais je ne suis certainement pas un expert.Quelle est la différence entre les options de Visual Studio: Service Web ASP.NET et service WCF

+0

même question ici http://stackoverflow.com/questions/216931 – balexandre

+0

en double possible (http [Quelle est la différence entre une méthode Web asp.net et un service WCF?] : //stackoverflow.com/questions/216931/what-is-the-difference-between-an-asp-net-web-method-and-a-wcf-service) –

Répondre

8

Il est assez facile de connaître les différences.

ASP.NET Méthode Web est appelée ASMX [en raison de l'extension de fichier] (vérifier 4GuysFromRolla à ce sujet, ils ont un good tutorial)

Cette technologie vous permet d'exposer les méthodes en tant que service Web de sorte que vous pouvez le connecter (au WS) de partout et l'utiliser (les méthodes). Mais ... vous ne pouvez pas protéger les données entre le serveur et le client, comme, vous pouvez envoyer de gros fichiers en mode clair, etc ...

[Note] vous pouvez protéger l'accès au service Web en utilisant des certificats, mais il est une douleur et assez compliquée, normalement ASMX nous utilisons le nom d'utilisateur/passsword pour donner accès à une méthode (encore une fois ... en clair!)

dans WCF, vous êtes dans le monde différent sur les services Web, et c'est la meilleure technologie dans .NET (jusqu'à présent) pour exposer les services (pouvez-vous voir la différence ...Services! pas Web Services), WCF n'a pas besoin d'IIS pour s'exécuter, il peut s'exécuter en tant que service système sur le serveur, en utilisant une console ambiante (comme la ligne de commande), en mode TCP/IP, etc, donc nous disons que WCF est un Service, pas un service Web. Rappelez-vous qu'ASMX a besoin d'IIS pour s'exécuter et ne fonctionnera que sur un serveur Web.

Avec WCF, vous pouvez utiliser SSL pour chiffrer la communication (à faire en ASMX vous devez utiliser WSE - Web Services Enhancements) et il est assez facile à mettre en œuvre, vous pouvez envoyer de gros fichiers et en toute sécurité (à faites cela dans ASMX vous devez utiliser MTOM - Mécanisme d'optimisation de transmission de message).

vous pouvez définir les préférences de transmission simple fait de changer une ligne de code, ou même, si vous préférez, modifiez le fichier de configuration XML, la sécurité est beaucoup plus élevé, etc, etc :)

espère que vous obtenez un meilleur aperçu général avec cela, mais il y a beaucoup plus. Bottom line: pour exposer les services Web que vous n'avez pas besoin de protéger, vous pouvez utiliser ASMX, pas de problème du tout, mais si vous avez besoin de protéger la communication en quelque sorte, faites-le dans WCF!

lien: you can read here some performance comparative between the 2 services

+0

Donc, si je développe un site web, qui a différentes couches/niveaux - données, service, web - avec la couche de service étant une pile de service WCF communiquant avec la couche de données, et dans ma couche web je veux utiliser jQuery pour des choses telles que la saisie semi-automatique, services qui appellent finalement aux Services WCF? Et si je veux sécuriser les données, il devrait passer par HTTPS? Est-ce que ma compréhension est correcte. (Je suis nouveau à .net en général, fait des choses de Java avant) – jamiebarrow

+0

Pour rendre mon exemple un peu plus clair, tout ce dont j'ai besoin du côté client Web est la possibilité de récupérer JSON en utilisant AJAX. J'ai déjà un niveau Web ASP.NET AJAX, parlant à un niveau WCF. Je veux seulement que le navigateur parle au niveau Web. – jamiebarrow

1

Les services Web ASP.NET étaient la première tentative de Microsoft pour les services Web.

WCF remplace les services Web ASP.NET et .NET Remoting. WCF fournit un modèle de programmation commun qui vous permet de faire ce que les deux technologies plus anciennes étaient capables de faire et beaucoup plus, y compris la prise en charge d'un large éventail de protocoles et de modèles de sécurité.

Allez avec WCF si vous avez le choix.

0

Webservices ASP.NET est OKAY - mais il est limité à HTTP hébergé dans IIS uniquement, et a d'autres problèmes. WCF prend en charge beaucoup plus de protocoles de transport (HTTP de différentes manières, TCP, MSMQ et plus), a un modèle de sécurité beaucoup plus riche (informations d'identification, sécurité fédérée) et offre des options d'hébergement - auto-hébergement dans une application Windows ou service, dans IIS ou WAS et plus. En bref: si vous commencez maintenant - allez apprendre WCF par tous les moyens!

Marc

Questions connexes