Webes alkalmazások fejlesztése Bevezetés az ASP.NET MVC 5 keretrendszerbe
ASP.NET MVC Framework 2009-ben jelent meg az első verziója, azóta folyamatosan fejlesztik Nyílt forráskódú Microsoft technológia Szerveroldali webprogramozáshoz keretrendszer Modell-View-Controller (MVC) tervezési mintára épül Jelenleg az ASP.NET WebForms-al fejlesztik párhuzamosan és 5.0-ás verziónál tart Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése 2
Konkurencia Python Ruby PHP Django Ruby On Rails CodeIgniter Symphony Zend Framework Java Google Web Toolkit (GWT) Spring Web MVC Scala Akka Play Framework Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése 3
Model-View-Controller tervezési minta Vezérlő (Controller) o Modell: Az adatok kezeléséért felelős réteg. o Nézet: A weblapok megjelenítéséért felelős réteg Adatbázis Modell (Model) Nézet (View) Program o Vezérlő: Ide kerül az üzleti logika, ő vezérli, hogy melyik nézet jelenjen meg a felhasználónak és kezeli a különböző interakciókat. Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése 4
MVC és MVVM összehasonlítása Nézet (View) Nézetmodell (ViewModel) Modell (Model) o Az MVC a tapasztalat szerint, jobban bevált a nagyobb webes alkalmazásoknál o A két minta nagyon hasonlít egymásra, de nem ugyanaz a kettő: MVVM-ben a nézetmodell nem ugyanazt a szerepet tölti be, mint MVC-ben a vezérlő. Amíg a vezérlő felelős azért, hogy mely nézet jelenjen, addig a nézetmodell nem tudja ezt meghatázorni. Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése 5
További technológiák Szerver oldalon (.NET technológiák) Dependency Injector.NET-hez (Ninject) Mocking Library (Moq) Unit Testing Framework (nunit) Kliens oldalon (Javascript technológiák) jquery (Core, UI, Mobile stb.) Knockout.js, Prototype, AngularJS stb. Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése 6
DEMO Hello World ASP.NET MVC-ben Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése 7
Előkészületek Microsoft Visual Studio 2013 Ultimate ASP.NET MVC 4.5 Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése 8
DEMO Hello World weboldal elkészítése Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése 9
ASP.NET - View Engine ASPX View Engine használata Razor View Engine (ezt érdemes használni): ASP.NET MVC 3-tól elérhető @<nyelvi szerkezet vagy kifejezés> - @:<szöveg> - @using <névtér>.net-es névtér használata a nézet oldalon @model <típus> a Model tulajdonság típusának megadása (alapértelmezetten dynamic) @section <név> - egy előre definiált részterületet lehet megadni vele @helper <metódus> nhaml nem XML alapú view engine Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése 10
Akció osztályok ActionResult Absztrakt ősosztálya az összes akcióosztálynak ViewResult - egy előre beállított nézetet rajzol ki RedirectResult - A megadott URL-re továbbítja a felhasználót PartialViewResult - egy előre beállított parciális nézetet rajzol ki EmptyResult - Egy üres választ ad vissza JsonResult - Egy megadott ViewData objektumot szerializál JSON objektumra JavaScriptResult - Egy megadott Javascript kóddal tér vissza, amit a kliens képes futtatni ContentResult - a válaszfolyamba írja közvetlenül magát a visszatérési értéket, így nincs szükség külön nézetre FileContentResult/FilePathResult - Egy fájllal tér vissza FileStreamResult - Egy FileStream-el tér vissza Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése 11
DEMO To-Do-Site weboldal elkészítése Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése 12
Hasznos linkek és könyvek Linkek http://www.asp.net/ http://www.codeproject.com/ www.google.com Könyvek Pro ASP.NET MVC 3 Framework Steven Anderson, Adam Freeman, Apress 2011 Pro ASP.NET MVC 4 Adam Freeman, Apress 2012 Pro C# 2010 and the.net 4 Platform Andrew Troelsen, Apress 2010 Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése 13
Köszönöm a figyelmet! Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése 14