Programování

Výběr správné technologie pro vytvoření vrstvy služeb v .NET

Při navrhování servisní vrstvy ve vašich aplikacích závisí výběr technologie, která má být použita ve servisní vrstvě, na mnoha faktorech. V tomto článku představím diskusi o tom, kdy a jak se můžete rozhodnout pro výběr správné technologie pro implementaci servisní vrstvy při navrhování aplikací v .Net.

Dva prominentní uchazeči, které máte při navrhování servisní vrstvy v .Net, jsou WCF a Web API. WCF je vývojová platforma pro SOA - poskytuje mnoho funkcí a podporuje mnoho různých transportních protokolů. Zatímco WCF je jednotný rámec pro vytváření aplikací orientovaných na služby, webové rozhraní API je odlehčenou alternativou k sestavování služeb RESTful, které lze využívat mnoha různými klienty. Služby RESTful používají základní protokol HTTP a jsou jednoduché a mají mnohem menší užitečné zatížení ve srovnání se službami SOAP. WebHttpBinding ve WCF můžete použít k vytvoření služeb jiných než SOAP RESTful přes HTTP. WCF je mnohem univerzálnější v tom smyslu, že může podporovat mnoho transportních protokolů - HTTP, TCP atd. Můžete využít WCF k vytváření bezpečných, spolehlivých a transakčních služeb, které mohou podporovat zasílání zpráv, duplexní komunikaci a rychlé transportní kanály jako TCP , Pojmenované kanály nebo UDP.

Pokud potřebujete budovat odlehčené služby zaměřené na prostředky přes HTTP, které mohou využívat všechny funkce protokolu HTTP, používat správu verzí, řízení mezipaměti pro prohlížeče a souběžnost pomocí Etags, je dobrá volba Web API. Měli byste si vybrat Web API přes WCF ve vaší servisní vrstvě, pokud chcete vystavit své služby široké škále klientů, tj. Webové prohlížeče, mobily, tablety atd. Web API je lehký a je vhodný pro zařízení, která mají omezené šířka pásma jako chytré telefony. Jedním z hlavních omezení, kterým jsem čelil při používání WCF, je jeho rozsáhlá konfigurace - webové rozhraní API je mnohem jednodušší a snadno použitelné. Připouštím, že WCF je mnohem univerzálnější ve srovnání s webovým API, ale pokud nepotřebujete funkce, které WCF poskytuje, a vše, co potřebujete, jsou jen RESTful služby přes HTTP, vždy bych upřednostňoval webové API, protože je lehké a snadno použitelné .

Chtěl bych také představit diskusi o rozdílech mezi webovým API a ASP.Net MVC, protože existují určité mylné představy o tom, kdy zvolit jednu nad druhou. Volba mezi ASP.Net MVC a webovým API závisí na mnoha faktorech. Než se rozhodnete některou z nich použít, musíte mít na paměti určité úvahy.

Všimněte si, že webové rozhraní API používá slovesa HTTP, a proto mapování založené na slovesech HTTP pro metody mapování na příslušné trasy. Nemůžete mít přetížené metody pro stejné sloveso HTTP pro konkrétní trasu. Měli byste si být vědomi tohoto omezení návrhu (ačkoli jsou k dispozici alternativní řešení) při výběru mezi ASP.Net MVC a webovým API. Na rozdíl od ASP.Net MVC používá webové rozhraní API směrování na základě sloves HTTP, nikoli URI, které obsahují akce. Webové rozhraní API tedy můžete použít k psaní služeb RESTful, které mohou využívat protokol HTTP - můžete navrhovat služby, které se snáze testují a udržují. Směrování ve webovém rozhraní API je mnohem jednodušší a můžete bez problémů využívat vyjednávání obsahu. Model směrování v ASP.Net MVC zahrnuje akce v identifikátorech URI.

Dalším bodem, který byste chtěli zvážit, je, zda chcete, aby byla vaše funkce vystavena pro konkrétní aplikaci, nebo zda by tato funkce měla být obecná. Pokud chcete vystavit své služby specifické pouze pro jednu aplikaci, chtěli byste použít ASP.Net MVC - řadič v aplikaci ASP.Net MVC je specifický pro aplikaci. Naopak, chtěli byste přístup k webovému API, pokud vaše obchodní potřeby vyžadují, abyste tuto funkci vystavili obecně. Raději bych použil přístup k webovému API, pokud je funkčnost více datově orientovaná a přístup ASP.Net MVC, pokud je funkčnost více UI.

Měli byste používat webové rozhraní API přes ASP.Net MVC, pokud chcete, aby váš řadič vrátil data ve více formátech, jako JSON, XML atd. Zadání datového formátu ve webovém rozhraní API je také jednoduché a snadno konfigurovatelné. Webové API také boduje nad ASP.Net MVC ve své schopnosti být hostitelem pro sebe (podobně jako WCF). Budete potřebovat řadiče ASP.Net MVC, které mají být hostovány na stejném webovém serveru, kde byla aplikace hostována, protože řadiče ASP.Net MVC jsou součástí stejné aplikace. Naopak, můžete své řadiče webového rozhraní API hostovat i mimo IIS - můžete je hostovat v odlehčeném vlastním hostiteli a umožnit využití této služby mnoha různým klientům.