Odabir prave tehnologije za izgradnju sloja usluge u .NET-u

Prilikom dizajniranja uslužnog sloja u vašim aplikacijama, izbor tehnologije koja će se koristiti u uslužnom sloju ovisi o mnogim čimbenicima. U ovom ću članku predstaviti raspravu o tome kada i kako možete odlučiti odabrati pravu tehnologiju za implementaciju servisnog sloja prilikom dizajniranja aplikacija u .Netu.

Dva istaknuta kandidata koja imate prilikom dizajniranja sloja usluge u. Netu su WCF i Web API. WCF je razvojna platforma za SOA - pruža mnoge značajke i podržava mnogo različitih transportnih protokola. Iako je WCF jedinstveni okvir za izgradnju aplikacija orijentiranih na usluge, Web API je lagana alternativa za izgradnju RESTful usluga koje mogu koristiti mnogi različiti klijenti. RESTful usluge koriste osnovni HTTP i jednostavne su s mnogo manje korisnog tereta u odnosu na SOAP usluge. WebHttpBinding u WCF-u možete koristiti za izradu usluga koje nisu SOAP RESTful putem HTTP-a. WCF je mnogo svestraniji u smislu da može podržavati mnoge transportne protokole - HTTP, TCP itd. WCF možete iskoristiti za izgradnju sigurnih, pouzdanih i transakcijskih usluga koje mogu podržavati razmjenu poruka, duplex komunikaciju i brze transportne kanale poput TCP-a ,Imenovane cijevi ili UDP.

Ako trebate izgraditi lagane usluge usmjerene na resurse putem HTTP-a koje mogu iskoristiti sve značajke HTTP protokola, koristiti verzije, kontrolu predmemorije za preglednike i istodobnost pomoću Etagova, web API je dobar izbor. Trebali biste odabrati Web API preko WCF-a u svom sloju usluge kada želite svoje usluge izložiti širokom spektru klijenata, tj. Web preglednicima, mobitelima, tabletima itd. Web API je lagan i dobro je prilagođen uređajima koji imaju ograničen pristup širina pojasa poput pametnih telefona. Jedno od glavnih ograničenja s kojima sam se suočio tijekom korištenja WCF-a je njegova opsežna konfiguracija - Web API je puno jednostavniji i lak za upotrebu. Priznajem da je WCF mnogo svestraniji u usporedbi s web API-jem, ali ako vam nisu potrebne značajke koje WCF pruža, a sve što trebate su samo RESTful usluge putem HTTP-a,Uvijek bih preferirao Web API jer je lagan i jednostavan za upotrebu.

Također bih želio predstaviti raspravu o razlikama između Web API-ja i ASP.Net MVC-a jer postoje određene zablude kada odabrati jedno od drugog. Izbor između ASP.Net MVC i Web API ovisi o mnogim čimbenicima. Postoje određena razmatranja koja biste trebali imati na umu prije nego što se odlučite koristiti bilo koji od njih.

Imajte na umu da Web API koristi HTTP glagole, a time i mapiranje temeljeno na HTTP glagolima za metode mapiranja na odgovarajuće rute. Ne možete imati preopterećene metode za isti HTTP glagol za određenu rutu. Trebali biste biti svjesni ovog ograničenja dizajna (iako su zaobilazna rješenja dostupna) prilikom odabira između ASP.Net MVC i Web API-ja. Za razliku od ASP.Net MVC, Web API koristi usmjeravanje temeljeno na HTTP glagolima, a ne na URI-ima koji sadrže radnje. Dakle, možete koristiti web API za pisanje RESTful usluga koje mogu koristiti HTTP protokol - možete dizajnirati usluge koje je lakše testirati i održavati. Usmjeravanje u web API-ju mnogo je jednostavnije i možete bez problema koristiti pregovaranje o sadržaju. Model usmjeravanja u ASP.Net MVC uključuje radnje u URI-ima.

Još jedna stvar koju biste željeli razmotriti je želite li da vaša funkcionalnost bude izložena određenoj aplikaciji ili bi funkcionalnost trebala biti generička. Ako svoje usluge želite izložiti samo jednoj aplikaciji, željeli biste koristiti ASP.Net MVC - kontroler u aplikaciji ASP.Net MVC specifičan je za aplikaciju. Naprotiv, htjeli biste pristup web API-ju ako vaše poslovne potrebe zahtijevaju generičko izlaganje funkcionalnosti. Radije bih koristio pristup Web API-ju ako je funkcionalnost više usmjerena na podatke i ASP.Net MVC pristup ako je funkcionalnost više usmjerena na korisničko sučelje.

Trebali biste koristiti web API preko ASP.Net MVC ako želite da vaš kontroler vraća podatke u više formata kao što su JSON, XML itd. Također, specificiranje formata podataka u Web API-u jednostavno je i jednostavno za konfiguriranje. Web API također pogađa ASP.Net MVC u svojoj sposobnosti da bude sam hostiran (slično WCF-u). Trebat će vam ASP.Net MVC kontroleri koji će biti hostirani na istom web poslužitelju na kojem je hostirana aplikacija jer su ASP.Net MVC kontroleri dio iste aplikacije. Naprotiv, svoje web API kontrolere možete ugostiti i izvan IIS-a - možete ih ugostiti na laganom prilagođenom hostu i omogućiti da uslugu troše mnogi različiti klijenti.