Ce cadre à utiliser pour les Services RESTful dans .net
Je sais que des questions similaires ont été posées, mais la plupart d'entre eux sont hors de date. Donc, ici nous allons encore une fois :). J'ai besoin de mettre en œuvre un REPOS complet de la couche de service pour notre application. Le problème que j'ai, c'est le cadre le mieux pour résoudre ce problème. J'ai juste besoin d'un beau cadre qui me permet de me concentrer sur le problème et non pas sur le RESTE, ou tout ce qui est nécessaire. L'authentification est requis. Voici quelques unes de mes idées; qu'en pensez-vous?
- WCF: À mon avis, c'est une surcharge cadre qui rend les choses compliquées.
- ServiceStack: Semble être un gentil, léger, alternative open source. Mais que faire si ils ont décidé d'arrêter le développement?
- Personnalisé de mise en œuvre de l'aide asp.net mvc comme cette, mais pourquoi réinventer la roue?
- +1 pour ne pas boire la WCF Kool-aid! Ce qu'un ballonnement de mess.
- Je ne me souviens pas de WCF rest être si difficile que ça, sauf que j'ai eu à faire la conversion manuelle de chaînes dans de trop nombreux endroits. J'ai seulement mis en place un peu de repos méthodes, ne s'est intéressée en JSON, et a été mise en œuvre comme un organisme indépendant de la couche de service, tho.
Vous devez vous connecter pour publier un commentaire.
J'ai d'abord commencé ServiceStack en raison de l'inefficacité (développement et à l'exécution) et la friction imposé dans la création de web services avec les autres .NET cadres.
3-4x plus Rapide la Sérialisation Json que le MVC
ServiceStack a un fort accent de la performance que nous croyons il offre le meilleur de l'utilisateur final UX c'est pourquoi il est intégré avec un ensemble solide de fournisseurs de mise en Cache y compris la plus rapide Sérialiseur JSON pour .NET - 3-4x fois plus rapide que les sérialiseurs livré avec .NET et MVC (sa valeur par défaut JavaScriptSerializer est le plus lent dans .NET). Pour un max de performance il n'y a pas d'exécution de réflexion ou des Expressions Régulières utilisées. Il emploie smart non-linéaire de la correspondance de Route et vous êtes recommandé d'utiliser le plus rapide intégré fournisseurs de mise en Cache pour contourner la la mauvaise performance de ASP.NET s'Session.
Porté sur typé, itératif, code-premier développement
ServiceStack permet de développer de fort typée services web faisant la promotion des meilleures pratiques de l'out-of-the-box à l'aide de la montant minimum de code et automatiquement sans code-gen, config, pré/post-construction-escaliers, etc.
Exemple d'un simple Bonjour Tout Le Monde service:
Juste avec ces classes, tous vos services web sont automatiquement disponibles dans une variété de formats différents (JSON, XML, JSV, CSV, SAVON) tous les out-of-the-box avec zéro effort.
Exemple de Forte Tapé Client de l'API à l'aide de C#:
Exemple en JavaScript à l'aide de jQuery:
Favorables au développement
Parce que la visualisation de web services est importante lorsque de manière itérative le développement de services web, le Contenu par défaut de Type lors de la visualisation des services web dans un navigateur est un homme sympathique JSON, HTML5 Rapport format (également disponible en stand-alone à http://ajaxstack.com/jsonreport/) qui vous permet de visualiser la réponse de vos services web en un coup d'œil.
Vous bénéficiez également d'un générés automatiquement les métadonnées de la page (que vous pouvez annoter avec votre propre description), qui sert une excellente façon de documenter votre API de service web.
Comme le créateur de ServiceStack je ne me vois pas abandonner le développement dans un avenir prévisible. Je de construire des systèmes avec tous les jours tout simplement parce que je trouve que c'est un plus propre, plus rapide, plus productif cadre pour développer avec.
Promeut les meilleures pratiques
Il y a très peu .NET web services cadres qui favorisent une DTO-premier message architecture permettant la Interface de Service modèle - web des services de meilleures pratiques couramment observées dans l'écosystème Java le rendant facile à développer lot-full grain grossier SOA services web.
Il est 0 risque il sera abandonné au profit d'un autre .NET web service, cadre. Tout simplement parce que nous ne croyons pas que tout les autres .NET framework activement la promotion des services web les meilleures pratiques (c'est à dire DTO /Distance de la Façade et de l'Interface de Service modèles) et un accent mis sur la performance.
Mais même comme un projet Open Source avec près de 20 collaborateurs, cette peur est atténué. Combien de propriétaires, closed-source des cadres de MS abandonné et forcé tout le monde à se déplacer sur un successeur? Open source logiciel évolue, il n'est pas abandonné et réécrit.
Le code source complet pour ServiceStack vit sous http://github.com/ServiceStack il n'y a pas de lock-in et GitHub, il est facile pour quiconque de fourche et de poursuivre le développement comme beaucoup l'ont déjà fait.
Fonctionne partout
Enfin, ServiceStack peut s'exécuter sur n'importe quel ASP.NET hôte dans IIS 6/7 sur Windows ou Linux/OSX à l'aide de Mono. Il prend également en charge autonome HttpListener d'accueil vous permettant de l'exécuter sans un serveur web, c'est à dire intégré dans une Console ou une application Windows, à l'intérieur d'un Service Windows et a même hébergé à l'intérieur d'un MonoTouch application iPhone.
Joue avec Nancy moi-même ces derniers temps et j'envisage aussi Manos de Mono. Voici un exemple à partir de la page d'accueil sur Nancy.
Pour moi, la méthode la plus simple et la plus propre solution serait de mettre en œuvre les services tels que les contrôleurs de ASP.NET MVC3 avec des méthodes qui renvoient une JsonResult.
Avantages:
Le framework MVC ne le levage lourd pour vous
Vous pouvez mettre en œuvre la validation du modèle à l'aide d'attributs au lieu de code
XCopy déploiement de n'importe quelle version de IIS
Si j'ai été à partir d'aujourd'hui je voudrais choisir à partir de votre troisième option de faire quelque chose de Personnalisé dans ASP.NET MVC3 ou à l'aide de l'un des cadres ci-dessous.
Thje Épaules De Géants solution est maintenant disponible via CodePlex et NuGet... renommé en tant que Ressources Sur MVC.