ASP NET MVC A Web Forms j vetlytrsa
ASP. NET MVC A Web. Forms új vetélytársa Csala Péter ELTE - IK peter. csala@student-partners. ms http: //csalapeter. spaces. live. com
Tartalom ASP. NET most Design Patterns Model View Presenter Model View Controller 2
Standard Web. Forms-os világ Milyen a mostani ASP. NET-es webfejlesztés? • Kényelmes • 80+ vezérlő alapból • Töménytelen szolgáltatás • Membership, Roles, Profile, Cache, Trace, State Managment, stb. • • Eseményvezérelt Lefordítható kód WYSIWYG editor Gyorsan fejleszthetünk benne • Rapid Application Deployment (RAD) Könnyű publikáció + karbantartás • Egyszerű Monitorozhatóság •
EZ MIND SZÉP ÉS JÓ, DE…
Mi ezzel a probléma? Nézzünk meg egy markup kódot! Mi van benne? UI – felhasználói felület • Presentation logic – megjelenítési logika • Business logic – üzleti logika • Data Access – Adat elérés • Probléma: Nehéz átlátni, nem különülnek el a rétegek
Mi ezzel a probléma? (folyt. ) Nézzük meg a generált kódot! Mi van benne? • Sok javascript • Post. Back miatt >> eseményvezéreltség • Validáció miatt • Sok hiddenfield • View. State miatt Probléma: Kicsi a kontroll a generált kód felett
Egy egyszerű példa
Mi ezzel a probléma? (folyt. ) Nézzünk meg egy URL-t! Mi van benne: Sok GET-es paraméter • Pl. : Show. aspx? ID=2 b 3 c 1233 -0 d 22 -4094 -a 1777 caaf 89903 b 0&Size=10&Anonim=1 • Probléma: Nehezen megjegyezhető • Nehezen olvasható • • Könnyen módosítható
Megoldás DP + ASP. NET MVC
Tartalom ASP. NET most Design Patterns Model View Presenter Model View Controller 11
Design Patterns Tervminták Szoftver technológiai fogalom Szoftver = termék => kell hozzá előállítási technológia Terv minták 4 alap komponense: Név • Feladat • Megoldás • Következmények •
Mit tartalmaz egy DP? Minta neve, osztálya, más nevek Cél, Motiváció Felhasználhatóság Szerkezet, Elemek, Együttműködés Következmények Implementáció, Példa kód Ismert használat, Rokon minták
Tervminták nagyság rendje Pl. : Observer pattern (Megfigyelő) Egy kisebb problémát old meg • Egyszerűen megvalósítható • Nem befolyásolja az alkalmazás szerkezetét • Pl. : Model-View-Controller A teljes alkalmazás szerkezetére kihatással van • ASP. NET-ben alapból nehezen megvalósítható • Nagy problémát old meg •
Tartalom ASP. NET most Design Patterns Model View Presenter Model View Controller 15
Model View XXX Az alkalmazás rétegeinek megfelelő szeparációja • 3 komponensre bontás Model: Adatelérés, Üzleti logika View: Megjelenés XXX: Alkalmazás lefolyásának vezérlése
Model View Presenter Modell-Nézet-Megjelenítő MVC egy átdolgozása • Kibővítése az Observer pattern-nel • Model szolgáltatja az adatokat, logikát View megjeleníti az adatokat + kezeli az input-ot, de egyből tovább is passzolja Presenter kommunikál a Model-lel, illetve a View -val (utóbbival egy interfészen keresztül)
Model View Presenter IView Model
Model View Presenter A Standard Web. Forms-os világban is megvalósítható
demo Az alapkoncepció (View <> Presenter) A pontos idő példa 20
demo A kommunikáció (View >< Presenter) A pontos idő példa 2. 0
MVP Frameworks for. NET Web Client Software Factory • http: //www. codeplex. com/websf NMVP Framework • http: //www. codeplex. com/nmvp MVC# Framework • http: //www. mvcsharp. org/ Stb.
Tartalom ASP. NET most Design Patterns Model View Presenter Model View Controller 23
Model View Controller Model-Nézet-Vezérlő Web-es alkalmazásoknál ez jobban elterjedt Kicsit másképp működik, mint az MVP Model: Adatelérés, Üzleti logika View: Adatok megjelenítése Controller: Alkalmazás lefolyásának kezelése + felhasználói interakciók kezelése
Model View Presenter View Controller Model
MVC vs. MVP
demo MVC "Hello World" 27
demo Movie. App
Demo ASP. NET Routing Model Controller View Repository pattern Unit Test Validation Authorization Design
MVC előnyei A 3 réteg szép szeparációja • Gyengén kötés >> egyszerű és könnyű módosíthatóság Csapatmunka elősegítése Intuitív URL Teljes kontroll a generált HTML, Java. Script felett Egyszerű tesztelhetőség TDD (Test-Driven Deployment) lehetőség • Red/Green/Refactor ASP. NET Core használata
MVC a jövő és a Web. Forms a múlt? Nem helyette, hanem mellette (alternatíva)
Hogyan tovább? http: //www. asp. net/mvc/ http: //msdn. microsoft. com/en-us/library/dd 394709. aspx http: //www. microsoft. com/downloads/details. aspx? Family. ID= 1 E 0 B 2 -910 A-4676 -9 F 3 A-41 E 4 D 9 C 0 FC 08&displaylang=en Nerd. Dinner. com alkalmazás • http: //aspnetmvcbook. s 3. amazonaws. com/aspnetmvcnerdinner_v 1. pdf
Kérdések és válaszok 1. kérdés Milyen szempontok szerint történik a szeparáció? 2. kérdés Mi az alapvető különbség a MVC és az MVP között?
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U. S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
- Slides: 33