Programovanie

Výber správnej technológie na vytvorenie vrstvy služieb v .NET

Pri navrhovaní servisnej vrstvy vo vašich aplikáciách výber technológie, ktorá sa má v servisnej vrstve použiť, závisí od mnohých faktorov. V tomto článku predstavím diskusiu o tom, kedy a ako sa môžete pri navrhovaní aplikácií v .Net rozhodnúť pre výber správnej technológie na implementáciu servisnej vrstvy.

Dva prominentní uchádzači, ktorých máte pri navrhovaní servisnej vrstvy v .Net, sú WCF a Web API. WCF je vývojová platforma pre SOA - poskytuje mnoho funkcií a podporuje mnoho rôznych transportných protokolov. Zatiaľ čo WCF je jednotný rámec pre vytváranie aplikácií orientovaných na služby, webové rozhranie API je ľahkou alternatívou na vytváranie služieb RESTful, ktoré môžu spotrebovať mnohí rôzni klienti. Služby RESTful používajú základný protokol HTTP a sú jednoduché s oveľa menšou užitočnou hmotnosťou v porovnaní so službami SOAP. WebHttpBinding vo WCF môžete použiť na vytvorenie služieb, ktoré nie sú SOAP RESTful, cez HTTP. WCF je oveľa univerzálnejší v tom zmysle, že podporuje mnoho transportných protokolov - HTTP, TCP atď. WCF môžete využiť na vytváranie bezpečných, spoľahlivých a transakčných služieb, ktoré môžu podporovať zasielanie správ, duplexnú komunikáciu a rýchle transportné kanály ako TCP , Named Pipes alebo UDP.

Ak potrebujete budovať ľahké služby zamerané na zdroje prostredníctvom protokolu HTTP, ktoré môžu využívať všetky funkcie protokolu HTTP, využívať správu verzií, kontrolu medzipamäte prehliadačov a súbežnosť pomocou protokolu Etags, je webové rozhranie API dobrou voľbou. Mali by ste zvoliť Web API cez WCF vo svojej servisnej vrstve, ak chcete svoje služby sprístupniť širokej škále klientov, tj. Webovým prehliadačom, mobilným telefónom, tabletom atď. Web API je ľahké a je vhodné pre zariadenia, ktoré majú obmedzené šírku pásma ako inteligentné telefóny. Jedným z hlavných obmedzení, ktorým som pri používaní WCF čelil, je jeho rozsiahla konfigurácia - webové rozhranie API je oveľa jednoduchšie a ľahšie použiteľné. Priznávam, že WCF je v porovnaní s webovým rozhraním API oveľa všestrannejší, ale ak nepotrebujete funkcie, ktoré poskytuje WCF, a potrebujete iba služby RESTful cez HTTP, vždy by som uprednostnil webové rozhranie API, pretože je ľahké a ľahko použiteľné. .

Chcel by som tiež predstaviť diskusiu o rozdieloch medzi webovým rozhraním API a webom ASP.Net MVC, pretože existujú určité mylné predstavy o tom, kedy zvoliť jeden nad druhým. Výber medzi ASP.Net MVC a webovým API závisí od mnohých faktorov. Predtým, ako sa rozhodnete niektorú z nich použiť, musíte mať na pamäti určité úvahy.

Upozorňujeme, že webové rozhranie API používa pre mapovacie metódy na príslušné trasy slovesá HTTP, a teda aj mapovanie založené na slovesách HTTP. Nemôžete mať preťažené metódy pre to isté sloveso HTTP pre konkrétnu trasu. Toto obmedzenie návrhu (aj keď sú k dispozícii riešenia) by ste si mali byť vedomí pri výbere medzi ASP.Net MVC a webovým rozhraním API. Na rozdiel od ASP.Net MVC, webové rozhranie API používa smerovanie založené na slovesách HTTP, a nie na identifikátoroch URI, ktoré obsahujú akcie. Môžete teda použiť webové rozhranie API na písanie služieb RESTful, ktoré môžu využívať protokol HTTP - môžete navrhnúť služby, ktoré sa dajú ľahšie testovať a udržiavať. Smerovanie vo webovom rozhraní API je oveľa jednoduchšie a môžete plynulo využívať vyjednávanie obsahu. Model smerovania v ASP.Net MVC obsahuje akcie v identifikátoroch URI.

Ďalším bodom, ktorý by ste chceli zvážiť, je, či by ste chceli, aby bola vaša funkčnosť sprístupnená pre konkrétnu aplikáciu, alebo či by táto funkčnosť mala byť všeobecná. Ak chcete vystaviť svoje služby špecifické iba pre jednu aplikáciu, mali by ste použiť ASP.Net MVC - radič v aplikácii ASP.Net MVC je špecifický pre danú aplikáciu. Naopak, chceli by ste prístup k webovému API, ak vaše obchodné potreby vyžadujú, aby ste funkcionalitu zverejnili všeobecne. Radšej by som použil prístup k webovému API, ak je funkčnosť viac zameraná na dáta, a prístup ASP.Net MVC, ak je funkčnosť zameraná viac na používateľské rozhranie.

Mali by ste používať webové API cez ASP.Net MVC, ak chcete, aby váš radič vrátil dáta vo viacerých formátoch, ako sú JSON, XML atď. Zadanie dátového formátu vo webovom API je tiež jednoduché a ľahko konfigurovateľné. Webové API tiež boduje nad ASP.Net MVC v schopnosti byť hosťovaný sám (podobne ako WCF). Potrebovali by ste, aby radiče ASP.Net MVC boli hostené na rovnakom webovom serveri, na ktorom bola hostená aplikácia, pretože radiče ASP.Net MVC sú súčasťou tej istej aplikácie. Naopak, svoje radiče webového rozhrania API API môžete hostiť aj mimo IIS - môžete ho hostovať v ľahkom vlastnom hostiteľovi a umožniť, aby túto službu spotrebovalo mnoho rôznych klientov.

$config[zx-auto] not found$config[zx-overlay] not found