2008-10-21 6 views
1

Je suis sur le point de commencer à convertir une application de bureau basée sur C# pour qu'elle soit basée sur le Web. Pour deux raisons, je voudrais couper l'interface graphique de la logique via un service web. Microsoft a des fichiers asmx, WCF, et probablement quelque chose de nouveau à PDC la semaine prochaine. Les données peuvent être transmises via SOAP, REST, JSON, et probablement 12 autres façons.Quel cadre de service Web?

Quelqu'un pourrait-il suggérer le framework .NET avec lequel je devrais commencer?

Répondre

5

Vous êtes sur le point de passer à une nouvelle plate-forme. J'irais pour WCF. Il peut supporter tous vos besoins.

Initialement, lorsque vous vous déplacez, vous pouvez utiliser httpBinding, qui est très proche des services Web ASMX et basé sur SOAP. Si vous avez besoin par la suite de fonctionnalités avancées, alors vous pouvez utiliser webHttpBinding et cela vous donnera une interface basée sur REST et JSON. WCF est un modèle de programmation très puissant et vous devriez certainement y aller.

1

Je vote pour WCF, mains vers le bas.

1

Si vous voulez l'option de SOAP, REST et JSON, alors vous pouvez regarder le WCF Web Programming Model et WCF JSON support, bien que personnellement je ne suis pas heureux de l'implémentation de REST. Mais WCF offre le plus de flexibilité au détriment de configuration hell. Assurez-vous de vous familiariser avec son diagnostics and svcTraceViewer, de peur d'obtenir des exceptions énigmatiques et inutiles. Et faites attention aux broken implementation of the disposable pattern du client généré.

1

Pour une application de bureau comme la vôtre, transmettre des données au format JSON n'a pas beaucoup de sens. Son utilisation principale est de permettre un accès plus facile à partir d'un navigateur Web. Bien qu'ils servent des objectifs différents, la même chose pourrait être dite pour REST.

Pour deux applications .NET communicantes, WCF est la voie à suivre, à mon avis. Bien que pour beaucoup de gens ASMX corresponde plus facilement à leur façon de penser (décorer quelque chose avec un objet WebMethodAttribute et que vous avez terminé), je ne le recommanderais pas en raison du manque d'autorisation/authentification/cryptage décent et de la façon dont l'utilisation ne semble plus être encouragée par Microsoft. En passant, vous pouvez aussi jeter un oeil à WSCF - Web Services Contract First. Malheureusement, vous avez maintenant encore plus d'options à choisir. :)

Questions connexes