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 (
[email protected]) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése
2
Konkurencia Python Django
Ruby Ruby On Rails
PHP CodeIgniter
Java Google Web Toolkit (GWT) Spring Web MVC
Scala Akka Play Framework
Symphony Zend Framework
© Szabó Tamás (
[email protected]) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése
3
Model-View-Controller tervezési minta o Modell: Az adatok kezeléséért felelős réteg. Vezérlő (Controller)
Modell (Model)
Adatbázis Adatbázis
© Szabó Tamás (
[email protected]) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése
o Nézet: A weblapok megjelenítéséért felelős réteg 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.
Nézet (View)
Program
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 (
[email protected]) - 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 (
[email protected]) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése
6
DEMO „Hello World” ASP.NET MVC-ben
© Szabó Tamás (
[email protected]) - 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 (
[email protected]) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése
8
DEMO „Hello World” weboldal elkészítése
© Szabó Tamás (
[email protected]) - 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ő @
@:<szöveg> @using – .NET-es névtér használata a nézet oldalon @model – a Model tulajdonság típusának megadása (alapértelmezetten dynamic) @section - egy előre definiált részterületet lehet megadni vele @helper <metódus>
nHaml – nem XML alapú view engine © Szabó Tamás ([email protected]) - 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 ([email protected]) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése
11
DEMO To-Do-Site weboldal elkészítése
© Szabó Tamás ([email protected]) - 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 ([email protected]) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése
13
Köszönöm a figyelmet!
© Szabó Tamás ([email protected]) - sztrabi.web.elte.hu - Webes alkalmazások fejlesztése
14