Како да покренете .Нет апликације у претраживачу са Блазор-ом

Microsoftov експеримент Блазор користи савремене веб технологије као што је WebАссемблy тако што поставља извршно окружење за .Нет унутар вашег претраживача. Сви се сец́амо Silverлигхта, Microsoftovog одговора на Adobe Flash. Последњи траг амбициозног плана да се .Нет кôд извршава свуда, комбиновао је познате C# и XАМЛ са претраживачима. Резултат је било веб искуство богатије и интерактивније од познатих облика са CSS-ом. Колико год да су додаци корисни, постало је јасно да је површина изложена нападима постала много вец́а. Flash и АцтивеX експерименти постали су озбиљан безбедносни ризик, а дизајнери и програмери су почели да се повлаче из света додатних програма. Нова генерација моц́нијих претраживача помогла је транзицији, заједно са отварањем одговарајуц́ег новог фронта у невероватним ратовима претраживача: бенчмарковима перформанси претраживача. Novi JavaScript мотори попут Internet Explorer-овог (и сада Едге-овог) Цхакра појавили су се заједно са JIT компајлерима који користе нове могуц́ности процесора и ускоро конкурентског бинарног кода. Поред бољих перформанси, и сам Veb је додао више могуц́ности, са новим JavaScript-ом HTML5 и CSS конструктима који брзо пружају алтернативу сада застарелим технологијама програмских додатака, од 2D анимација до виртуелне стварности.

Umesto programskih dodataka (engl. plug-in), sada koristimo ekstenzije. One su bezbednije, ali nemaju brzinu ni mogućnosti programskih dodataka kao što je Silverlight. Zbog toga što se oslanjaju na JavaScript, HTML i CSS, oni pružaju besprekornu integraciju sa pretraživačem. Ali oni ne dozvoljavaju da koristimo napredne jezičke funkcije u C# или Go или novije hardverske mogućnosti grafike.

WebAssembly je snaga iza Blazora

Google-ovi eksperimenti sa NaCl-om, njegovim matičnim klijentom iz Chrome-a, pored Mozillinog rada sa ASM.js-om, doveli su do razvoja WebAssembly u World Wide Web konzorcijumu, takozvani Wasm. U srcu WebAssemblyja je jednostavna virtuelna mašina koja može da radi sa prekompajliranim kodom koji se isporučuje u kompaktnom binarnom obliku. Iako WebAssembly kôd nije čitak za ljude, specifikacija uključuje način predstavljanja koji izgleda vrlo slično klasičnom asemblerskom jeziku.

Svaki kompajler može da obezbedi WebAssembly kôd, sa bilo kog jezika, i može da se izvršava gotovo isto tako brzo kao kompajlirani binarni kôd. Postoji i dodatna prednost, što izvršava samo provereni kôd u izolovanom okruženju (engl. sandbox) u pretraživaču. Sa dodatnim bezbednosnim funkcijama modernog pretraživača kao što je Edge, rezultat je vrlo bezbedan kôd koji ima samo ograničen pristup sistemskim resursima. To čini WebAssembly atraktivnom alternativom JavaScript-u, jer ugošćava brze korisničke interfejse sa dobrim odzivom zasnovane na vebu.

Iako je još uvek relativno nov, WebAssembly je iznenađujuće moćan alat, sa podrškom za širok spektar jezika i platformi. Rezultat je efikasna zamena za stari model dodatnih programa za proširenje pretraživača, koja održava bezbedno izolovano okruženje, ali ipak omogućava složene aplikacije.

Microsoft već neko vreme eksperimentiše sa WebAssembly-om, a Edge pruža podršku za WebAssembly alate. To je dovelo do eksperimentalnog izdanja Blazora, novog veb radnog okvira iz ASP.Net tima. Ime mu potiče od kombinacije Microsoftove sintakse veb aplikacija i pretraživača Razor, dostupna je od GitHub-a sa primerima aplikacija koje već postoje na vebu.

Namenjen za podršku jednostraničnih veb aplikacija, poput onih proizvedenih u postojećem okruženju Razor ASP.Net-a, Blazor dovodi C# kod direktno u pretraživač pomoću .Net motora baziranog na Mono-u koji je implementiran u WebAssembly. Ovim pristupom se postiže iskustvo veb korisnika kompatibilno sa postojećim stonim aplikacijama, smanjuje spoznajno opterećenje koje je potrebno prilikom prelaska između aplikacija za stoni računar i pretraživača, a baze kodova ostaju jednostavnije i lakše za upravljanje.

Šta je potrebno za početak rada sa Blazor-om

Gradnja Blazor aplikacije je sasvim jednostavna. Potreban vam je .Net Core 2.1 Preview 2 SDK, Visual Studio 2017 15.7 или noviji sa instaliranim alatima ASP.Net i ekstenzijom Blazor Language Services (naći ćete ga u Visual Studio Marketplace-u). Kada to instalirate, aplikacije se prave iz Blazor šablona koji ćete pronaći među šablonima Visual Studija 2017, ASP.Net Core Web Application. Jedno što treba napomenuti je da u ovom trenutku ne postoji podrška za otklanjanje grešaka, tako da kada dobijete kôd, možete ga za testiranje postaviti samo na lokalni veb server i pretraživač.

Blazor koristite za implementaciju logike na klijentskoj strani, slično kao što biste uradili u JavaScriptu. Kôd se pokreće u Razorovom jednostraničnom veb aplikacijskom okviru, implementiranim uz pomoć poznatog šablona MVC (model-view-controller). Malo je razlike između Blazora i poznatog veb aplikacijskog ASP.Net servera, mada zbog toga što Blazor kôd radi u pretraživaču, potrebno je razmotriti kako ćete preneti podatke između vaše aplikacije i bilo kojeg pozadinskog servisa. U praksi, možete da koristite .Net REST konektore za rad sa API-jima generisanim u servisima kao što je Azure Mobile App Service.

Blazor nije samo za C# razvoj; njegovo osnovno izvršno okruženje .Net podržava F# i VB, tako da možete brzo da prenesete postojeće veštine na veb, bez potrebe da učite nove jezike. Takođe možete da delite kôd između Windows projekata i Veba. Blazor takođe podržava .Net Standard 2.0 (mada ne implementira sve API-je, pa ćete morati da proverite izuzetke NotSupportedExceptions).

Blazor kôd je predpreveden u.Net sklopove, a zatim se preuzima i pokreće u izvršnom okruženju Mono .Net. Mada .Net može biti predpreveden, tako da se naprave binarne aplikacije, Blazor trenutno ne podržava ovaj metod; trenutno se oslanja na Mono.

Blazor vam daje progresivne veb aplikacije uz WebAssembly i Xamarin

Mada ne ide putem kao Silverlight, bez direktne podrške za korisničke interfejse XAML, Blazor vam omogućava da dovedete postojeći C# kôd na veb, dodajući složenu poslovnu logiku aplikacijama koje udomljuju pretraživači. To bi trebalo da pomogne u razvoju progresivnih aplikacija za veb (PWA), čime se kôd skoro matične brzine dovodi u samostalne aplikacije pretraživača.

Jedan primer koristi alternativnu .Net WebAssembly implementaciju za izgradnju progresivne veb aplikacije koja koristi prednosti Xamarin Forms. Koristeći Ooui.wasm, možete da izvršavate XAML unutar veb pretraživača, preko istog Mono-wasm izvršnog okruženja .Net koji koristi Blazor. Mada neka pitanja ostaju otvorena, privlačna je perspektiva da se kombinuje Ooui.wasm i Blazor. Višeplatformski korisnički interfejs Xamarin Forms je moćan alat, uz mogućnost korišćenja XAML-a za raspoređivanje korisničkih interfejsa i prilagođavanje standardnih obrazaca.

Iako je Blazor još uvek eksperiment, to je pokazatelj za moguću budućnost razvoja veb aplikacija bez HTML-a i JavaScript-a. Biće zanimljivo videti da li Microsoft nastavlja sa eksperimentom Blazor i da li će buduća izdanja za obradu Xamarin Forms i drugih opcija korisničkih interfejsa ići dalje od Razor aplikacija za pojedinačne stranice. Korišćenjem pretraživača kao domaćina za vaš kôd, .Net bi mogao da dobije potpuno novu publiku, posebno sa podrškom za progresivne veb aplikacije koja je sada dostupna na svim glavnim mobilnim i stonim platformama.

Izvor: InfoWorld

4862-xa-kako-da-pokrenete-net-aplikacije-u-pretrazivacu-sa-blazor-om-xa