330 likes | 503 Views
ASP.NET MVC algajale (professionaalile). Gunnar Peipman ASP.NET MVP www.dt.ee/blog. Paar sõna minust. Töötan arendaja ja arenduse juhina, peamiselt ASP.NET ja SharePoint lahendused ASP.NET MVP kolmandat aastat, aktiivne blogija ja tehnomaniakk
E N D
ASP.NET MVC algajale(professionaalile) Gunnar Peipman ASP.NET MVPwww.dt.ee/blog
Paar sõna minust • Töötan arendaja ja arenduse juhina, peamiselt ASP.NET ja SharePoint lahendused • ASP.NET MVP kolmandat aastat, aktiivne blogija ja tehnomaniakk • Loen palju, osalen erinevatel üritustel, eksperimenteerin, pidevas arengus
Live Meeting kasutajatele • Kasuta Q/A menüüd küsimuste esitamiseks. • Vastame võimaluseljooksvalt võiloengu lõpus.
Kava • ASP.NET MVC – mis see on? • ASP.NET MVC arhitektuur • Probleemid ja lahendused • Demod • Kokkuvõte • Küsimused ja vastused
Mis on ASP.NET MVC? • Raamistik veebipõhiste süsteemide loomiseks • Iseloomustavad märksõnad: • õhuke • paindlik • laiendatav • testitav
ASP.NET MVC arhitektuur Model View Controller
ASP.NET MVC arhitektuur • Controller – MVC mustri süda, koordineerib päringute töötlemist • View – vaade ehk kasutajale mõeldud andmeesitus, mis koostatakse mudeli põhjal • Model– andmed, mida kuvatakse ja toimingud andmetega
Demo Kuvakomponentide kasutamine
1. Tagasta ActionResult • Kontrolleri action ei kirjuta väljundit otse HTTP väljundisse • Väljundi jaoks kasutatakse klasse, mis pärivad ActionResult klassist • Näiteks: ViewResult, FileResult, ContentResult, EmptyResult • Alati saab luua oma ActionResulti
Demo vCardResult
2. Hoia actionid lühikesed • Kontrollerite loomine meenutab kohati akordionimängu • Kui action on kasvanud liiga pikaks (näiteks rohkem kui 20 rida), tuleb kood ümber organiseerida õigetesse kihtidesse • Tee seda jooksvalt, sest muidu jääd aastateks koledat koodi toetama
Demo Andmete jaotamine lehtedeksPagedResult<T>
3. Hoia vaated kompaktsed • Mahukad vaated on halb praktika, sest neid on raskem edasi ehitada ja probleemide korral debugida • Vaated saab lühemaks teha järgmiste asjade abil: • Template-id • Osalised vaated • JavaScripti paigutamine eraldi failidesse
3. Hoia vaated kompaktsed • Keerukama väljundi genereerimiseks vaadetes ära kirjuta koodi vaadete sisse • Kasuta laiendusmeetode Html või mõne oma väljundiklassi jaoks
Demo Laiendusmeetod Html.Pager
4. Andmete lugemine vormilt • Tihti toodetakse mahukat koodi, mida annab lahendada raamistiku enda funktsionaalsuste abil • MVC on võimeline mingi piirini tuvastama mudeli osi vormilt ise • Me võime alati kirjutada oma enda ModelBinder klassid
5. Formsi komponentide simuleerimine • ASP.NET MVC ei võimalda luua Formsi sarnaseid komponente, mis ise väljundit ja sisendit haldavad • Saab kirjutada laiendusmeetodid ja meetodid, mille abil andmeid vastu võtta • Need moodustavad tervikliku Formsi komponendi simulatsiooni
Demo CheckBoxList
6. Distantseerime autentimise • Autentimise mehhanismid on: • keerukad ehitada • vajavad väga põhjalikke teadmisi infosüsteemide turvamise alal • testimine on mahukas ja äärmiselt vastutusrikas tegevus • ja miks me üldse jalgratast leiutame...?
6. Distantseerime autentimise • Kasutada saab mitmeid valmis teenuseid ja lahendusi: • Windows Identity Foundation (WIF) • ADFS • Windows Azure ACS (Live ID, Google, Yahoo!, Facebook, ADFS tugi) • OpenID, OAuth jpm
Demo Windows Identity FoundationWindows Azure ACS Security Token Service
7. Laiendame autoriseerimist • Alati pole piisav see, et kasutaja on autentitud ja autoriseeritud • Me ei pruugi saada STS-i käest piisavat kasutajaprofiili • Lahkheli vaikimisi pakutavata funktsionaalsuse ja ärinõuete vahel • Laiendame autoriseerimist
Demo ProfileRequiredAttributeInvitation codes
Meeldetuletus tagasisidelehed ka :) on Sul küsimusi?
8. Muudame rakenduse testitavaks • Võtame kasutusele mõne DI/IoC konteineri • Eemaldame testimise mõttes halvad sõltuvused (instantside loomise) • Liigume üle liidestele • Kirjutame testid
Demo Muudame rakenduse testitavaks
9. JavaScripti komponendid • JavaScripti abil saab ehitada võimsad kasutusliidesed • jQuery ja ASP.NET AJAX tugi on olemas out-of-box • Lisaks kaasas jQuery UI • Skriptid uuendatavad NuGet abil
Demo jQuery UI komponendid
Kokkuvõte • ASP.NET MVC on paindlik ja laiendatav – kasuta võimalusi! • Võimsa UI tegemine pole keerukas – sul on kõik vahendid ja võimalused! • Testi oma rakendusi – lisaks klientidele oled õnnelik ka sina! • Õpi ja eksperimenteeri pidevalt – sa ei usu ise ka, milleks võimeline oled!
Ressursid Ametlik: • ASP.NET MVC (ametlik kodukas) • jQuery, jQuery UI Testimiseks: • nUnit, mbUnit, Moq, TypeMock • Pex & Moles • KiGG (kasutage näiterakendusena) Muu: • Eneta portaal (siit saad abi eesti keeles) • DT blogi, ASP.NET blogi (minu teosed) • Hajan Selmani blogi (ASP.NET ja jQuery) • Brad Wilson blog • Imran Baloch’s blog