Ohjelmointi

Oikean tekniikan valitseminen palvelutason rakentamiseksi .NET-verkkoon

Suunnitellessasi palvelutasoa sovelluksissasi, palvelukerroksessa käytettävän tekniikan valinta riippuu monista tekijöistä. Tässä artikkelissa esitän keskustelun siitä, milloin ja miten voit päättää valita oikea tekniikka palvelutason toteuttamiseksi suunnitellessasi sovelluksia .Netissä.

Kaksi merkittävää kilpailijaa, jotka sinulla on suunniteltaessa .Net-palvelukerrosta, ovat WCF ja Web API. WCF on SOA: n kehitysalusta - se tarjoaa monia ominaisuuksia ja tukee monia erilaisia ​​kuljetusprotokollia. Vaikka WCF on yhtenäinen kehys palvelupainotteisten sovellusten rakentamiseen, Web-sovellusliittymä on kevyt vaihtoehto RESTful-palvelujen rakentamiseen, joita voivat kuluttaa monet eri asiakkaat. RESTful-palvelut käyttävät perus-HTTP: tä ja ovat yksinkertaisia ​​ja paljon pienemmällä hyötykuormalla verrattuna SOAP-palveluihin. Voit rakentaa ei-SOAP RESTful -palveluja HTTP: n kautta WCF: n WebHttpBinding-toiminnolla. WCF on paljon monipuolisempi siinä mielessä, että se tukee monia siirtoprotokollia - HTTP, TCP jne. Voit hyödyntää WCF: ää rakentaaksesi turvallisia, luotettavia ja transaktiopalveluja, jotka tukevat viestintää, kaksipuolista viestintää ja nopeita siirtokanavia, kuten TCP , Nimetyt putket tai UDP.

Jos haluat rakentaa kevyitä, resursseihin suuntautuvia palveluja HTTP: n yli, jotka voivat hyödyntää HTTP-protokollan kaikkia ominaisuuksia, käyttää versiointia, välimuistin hallintaa selaimille ja samanaikaisuutta Etagsin avulla, Web-sovellusliittymä on hyvä valinta. Sinun tulisi valita Web-sovellusliittymä WCF: n sijaan palvelutasossa, kun haluat paljastaa palvelusi laajalle joukolle asiakkaita, kuten verkkoselaimia, matkapuhelimia, tabletteja jne. Web-sovellusliittymä on kevyt ja sopii hyvin laitteille, joilla on rajoitettu määrä palveluja kaistanleveys kuten älypuhelimet. Yksi suurimmista rajoituksista, joita kohdasin WCF: n käytössä, on sen laaja kokoonpano - Web-sovellusliittymä on paljon yksinkertaisempi ja helppokäyttöisempi. Myönnän, että WCF on paljon monipuolisempi kuin Web-sovellusliittymä, mutta jos et tarvitse WCF: n tarjoamia ominaisuuksia ja tarvitset vain RESTful-palveluja HTTP: n yli, suosittelen aina Web-sovellusliittymää, koska se on kevyt ja helppo käyttää .

Haluaisin myös esitellä keskustelun Web-sovellusliittymän ja ASP.Net MVC: n välisistä eroista, koska on olemassa tiettyjä väärinkäsityksiä siitä, milloin valita yksi toisen sijaan. ASP.Net MVC: n ja Web-sovellusliittymän valinta riippuu monista tekijöistä. Sinun on pidettävä mielessä tietyt seikat, ennen kuin päätät käyttää jotakin niistä.

Huomaa, että Web-sovellusliittymä käyttää HTTP-verbejä ja siten HTTP-verbipohjaista kartoitusta vastaavien reittien kartoitusmenetelmiin. Sinulla ei voi olla ylikuormitettuja menetelmiä samalle HTTP-verbille tietylle reitille. Sinun tulisi olla tietoinen tästä suunnittelurajoitteesta (vaikka kiertotavat ovat käytettävissä), kun valitset ASP.Net MVC: n ja Web-sovellusliittymän välillä. Toisin kuin ASP.Net MVC, Web-sovellusliittymä käyttää reititystä HTTP-verbien sijaan toimintoja sisältävien URI-tunnusten sijaan. Joten voit kirjoittaa Web-sovellusliittymän avulla RESTful-palveluja, jotka voivat hyödyntää HTTP-protokollaa - voit suunnitella palveluja, jotka on helpompi testata ja ylläpitää. Reititys Web-sovellusliittymässä on paljon yksinkertaisempaa ja voit hyödyntää sisältöneuvotteluja saumattomasti. ASP.Net MVC: n reititysmalli sisältää toiminnot URI: iin.

Toinen asia, jonka haluat harkita, on, haluatko toimintojesi näkyvän tietyssä sovelluksessa vai onko toiminnallisuuden oltava yleinen. Jos haluat paljastaa palvelusi vain yhdelle sovellukselle, haluat käyttää ASP.Net MVC: tä - ASP.Net MVC -sovelluksen ohjain on sovelluskohtainen. Päinvastoin, haluat Web-sovellusliittymän lähestymistavan, jos yrityksesi tarpeet edellyttävät sinun paljastavan toiminnallisuuden yleisesti. Haluaisin mieluummin käyttää Web-API-lähestymistapaa, jos toiminnallisuus on enemmän datakeskeistä, ja ASP.Net MVC -menetelmää, jos toiminnallisuus on enemmän käyttöliittymäkeskeistä.

Sinun tulisi käyttää Web-sovellusliittymää ASP.Net MVC: n kautta, jos haluat ohjaimen palauttavan tietoja useissa muodoissa, kuten JSON, XML jne. Tietomuodon määrittäminen Web-sovellusliittymässä on myös helppoa ja helppo määrittää. Web-sovellusliittymä pisteyttää myös ASP.Net MVC: n kyvyssä olla itse isännöity (samanlainen kuin WCF). Tarvitset ASP.Net MVC -ohjaimia isännöimään samaan verkkopalvelimeen, jossa sovellusta on isännöity, koska ASP.Net MVC -ohjaimet ovat osa samaa sovellusta. Päinvastoin, voit isännöidä Web-API-ohjaimia myös IIS: n ulkopuolella - voit isännöidä sitä kevyessä mukautetussa isännässä ja sallia palvelun kuluttamisen monille eri asiakkaille.