2011-08-25 4 views
9

J'ai l'application mvc asp.net écrite il y a quelques années et plus j'y ajoute, j'ai tendance à faire des appels REST/AJAX au contrôleur pour obtenir des données à partir de celui-ci.Serait-il préférable d'utiliser Asp.net mvc ou des services Web?

Ma question est de savoir si je continue à travailler de cette manière ou devrais-je exposer les données comme des services REST distincts (façon de faire de la WCF)?

Il semble que les limites de ce que l'application mvc est conçue pour faire et la conception du service Web deviennent floues. L'application Mvc (en dehors de la séparation) a initialement produit des pages Web, maintenant il est utilisé pour fournir des données basées sur le service.

JD

Répondre

4

Je vois deux scénarios possibles

application web unique. Dans ce cas, vous continuez d'ajouter des méthodes au contrôleur. C'est une bonne chose car elle reste pertinente pour la fonctionnalité du contrôleur en un seul endroit et vous fera gagner du temps. Il ne convient pas si le contrôleur est appelé à partir d'une autre application Web. Simple, moche mais fonctionne, prend peu de temps pour le développement et beaucoup de temps pour la maintenance.

Application Web + service Web. Vous pouvez séparer les méthodes de récupération de données dans l'interface de service. Le côté positif est que votre système devient beaucoup plus modulaire et indépendant, ce qui est bon pour la maintenance. Si vous prévoyez qu'il y aura d'autres méthodes qui seront ajoutées prochainement ou si les méthodes sont utilisées par d'autres applications Web, ce chemin est probablement préférable à l'extension de l'application Web actuelle. Le côté négatif est que le nouveau service nécessitera un refactoring à l'application web actuelle et prendra du temps à être développé/testé, etc. Cette décision apporte plus de complexité, mais rend votre application facile à étendre.

2

Je pense que WCF a plusieurs avantages sur MVC si vous strictement envoyer des données, en particulier en termes de formats de données étant sans ambiguïté (SOAP par rapport à l'aide codages brassées), le soutien de l'outil à l'échelle de l'industrie, une excellente prise en charge de différents types de liaisons (pas seulement HTTP), divers services de niveau de transport, de bonnes capacités de journalisation et de traçage, etc.

Enfin, cela se résume à: y a-t-il un avantage assez significatif pour aller avec WCF? pour votre cas. C'est quelque chose que vous auriez à comprendre par vous-même.

Questions connexes