170 likes | 399 Views
ASP.NET MVC 4 SINGLE PAGE APPLICATION. Gunnar Peipman IIS/ASP.NET MVP. Kava. Mis on Single Page Application (SPA) Tänased probleemid SPA arhitektuur Demo Küsimused ja vastused. Mis on SPA. Veebirakendus, mis jookseb brauseris Kiire ja mugav kasutada Serverist laetakse esmane HTML
E N D
ASP.NET MVC 4SINGLE PAGE APPLICATION Gunnar PeipmanIIS/ASP.NET MVP
Kava • Mis on Single Page Application (SPA) • Tänased probleemid • SPA arhitektuur • Demo • Küsimused ja vastused
Mis on SPA • Veebirakendus, mis jookseb brauseris • Kiire ja mugav kasutada • Serverist laetakse esmane HTML • Andmevahetus AJAX-põhine • Andmeloogika asub serveri poolel
Tänased probleemid • Puudub ühtne raamistik ja tehnoloogiad, mis aitaksid kasutada meile tuttavaid mudeleid • Kliendipool kasvab kiiresti mahukaksja keeruliseks • Miski ei koordineeri arendajaid nende töös kliendipoolel
Demo Klassikaline veebirakendus
SPA arhitektuur UI(html/css) UI(html/css/js) Rakenduskiht(javascript) Navigatsioon(javascript) Services(json/xml) DAL(javascript) Local storage(html5) Server Klient
SPA komponendid UI(html/css) UI(ASP.NET MVC) Rakenduskiht(knockout.js) Navigatsioon(nav.js) Services(ASP.NET Web API) DAL(upshot.js) Local storage(html5) Server Klient
ASP.NET Web API • Web API raamistik serveerib andmeid ja võtab muudatusi vastu • Kasutatakse API kontrollereid • Andmevahetus vaikimisi JSON kaudu, toetatud ka XML • ActionResult asemel andmeid kandvad tüübid
MVC ja MVVM ViewModel Model Commands Binding View Controller View ViewModel
knockout.js • JavaScriptis kirjutatud MVVM mustrit järgiv raamistiks • Hästi interaktiivne • Võimaldab andmeid siduda HTML-i elementide külge • Võimaldab mudelist kutsuda meetode
upshot.js • JavaScripti põhine andmevahetuse raamistik • Standardiseerib ja varjestab andmevahetuse detailid • Võimaldab andmete puhverdamist
nav.js • Uus JavaScripti teek Microsoftilt • Tegeleb navigatsiooni koordineerimisega
Demo Single-Page Application
Peatselt tulemas • LINQ-sarnaste päringute tugi kliendi poolel • Offline provider (upshot.js) – võimaldab andmetega töötada ilma neti ühenduseta