15/12/2020 11:15 · 2020. 12. 15. · Title: 15/12/2020 11:15 Created Date: 12/15/2020 11:59:11 AM
2 11 15 PresenterPresenterViewView ModelModel IViewIView.
-
Upload
damon-belk -
Category
Documents
-
view
221 -
download
5
Transcript of 2 11 15 PresenterPresenterViewView ModelModel IViewIView.
![Page 1: 2 11 15 PresenterPresenterViewView ModelModel IViewIView.](https://reader035.fdocuments.net/reader035/viewer/2022070307/551a6c9c55034643688b4f41/html5/thumbnails/1.jpg)
ASP.NET MVC
Csala PéterELTE - [email protected]://csalapeter.spaces.live.com
A WebForms új vetélytársa
![Page 2: 2 11 15 PresenterPresenterViewView ModelModel IViewIView.](https://reader035.fdocuments.net/reader035/viewer/2022070307/551a6c9c55034643688b4f41/html5/thumbnails/2.jpg)
2
TartalomASP.NET most
Design Patterns
Model View Presenter
Model View Controller
![Page 3: 2 11 15 PresenterPresenterViewView ModelModel IViewIView.](https://reader035.fdocuments.net/reader035/viewer/2022070307/551a6c9c55034643688b4f41/html5/thumbnails/3.jpg)
Standard WebForms-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
![Page 4: 2 11 15 PresenterPresenterViewView ModelModel IViewIView.](https://reader035.fdocuments.net/reader035/viewer/2022070307/551a6c9c55034643688b4f41/html5/thumbnails/4.jpg)
EZ MIND SZÉP ÉS JÓ, DE…
![Page 5: 2 11 15 PresenterPresenterViewView ModelModel IViewIView.](https://reader035.fdocuments.net/reader035/viewer/2022070307/551a6c9c55034643688b4f41/html5/thumbnails/5.jpg)
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
![Page 6: 2 11 15 PresenterPresenterViewView ModelModel IViewIView.](https://reader035.fdocuments.net/reader035/viewer/2022070307/551a6c9c55034643688b4f41/html5/thumbnails/6.jpg)
Mi ezzel a probléma? (folyt.)
Nézzük meg a generált kódot!
Mi van benne?• Sok javascript • PostBack miatt >> eseményvezéreltség• Validáció miatt
• Sok hiddenfield• ViewState miatt
Probléma: Kicsi a kontroll a generált kód felett
![Page 7: 2 11 15 PresenterPresenterViewView ModelModel IViewIView.](https://reader035.fdocuments.net/reader035/viewer/2022070307/551a6c9c55034643688b4f41/html5/thumbnails/7.jpg)
Egy egyszerű példa
![Page 8: 2 11 15 PresenterPresenterViewView ModelModel IViewIView.](https://reader035.fdocuments.net/reader035/viewer/2022070307/551a6c9c55034643688b4f41/html5/thumbnails/8.jpg)
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=2b3c1233-0d22-4094-a177-
7caaf89903b0&Size=10&Anonim=1
Probléma:• Nehezen megjegyezhető• Nehezen olvasható• Könnyen módosítható
![Page 9: 2 11 15 PresenterPresenterViewView ModelModel IViewIView.](https://reader035.fdocuments.net/reader035/viewer/2022070307/551a6c9c55034643688b4f41/html5/thumbnails/9.jpg)
Megoldás
DP + ASP.NET MVC
![Page 10: 2 11 15 PresenterPresenterViewView ModelModel IViewIView.](https://reader035.fdocuments.net/reader035/viewer/2022070307/551a6c9c55034643688b4f41/html5/thumbnails/10.jpg)
11
TartalomASP.NET most
Design Patterns
Model View Presenter
Model View Controller
![Page 11: 2 11 15 PresenterPresenterViewView ModelModel IViewIView.](https://reader035.fdocuments.net/reader035/viewer/2022070307/551a6c9c55034643688b4f41/html5/thumbnails/11.jpg)
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
![Page 12: 2 11 15 PresenterPresenterViewView ModelModel IViewIView.](https://reader035.fdocuments.net/reader035/viewer/2022070307/551a6c9c55034643688b4f41/html5/thumbnails/12.jpg)
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
![Page 13: 2 11 15 PresenterPresenterViewView ModelModel IViewIView.](https://reader035.fdocuments.net/reader035/viewer/2022070307/551a6c9c55034643688b4f41/html5/thumbnails/13.jpg)
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
![Page 14: 2 11 15 PresenterPresenterViewView ModelModel IViewIView.](https://reader035.fdocuments.net/reader035/viewer/2022070307/551a6c9c55034643688b4f41/html5/thumbnails/14.jpg)
15
TartalomASP.NET most
Design Patterns
Model View Presenter
Model View Controller
![Page 15: 2 11 15 PresenterPresenterViewView ModelModel IViewIView.](https://reader035.fdocuments.net/reader035/viewer/2022070307/551a6c9c55034643688b4f41/html5/thumbnails/15.jpg)
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
![Page 16: 2 11 15 PresenterPresenterViewView ModelModel IViewIView.](https://reader035.fdocuments.net/reader035/viewer/2022070307/551a6c9c55034643688b4f41/html5/thumbnails/16.jpg)
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)
![Page 17: 2 11 15 PresenterPresenterViewView ModelModel IViewIView.](https://reader035.fdocuments.net/reader035/viewer/2022070307/551a6c9c55034643688b4f41/html5/thumbnails/17.jpg)
Model View Presenter
PresenterView
Model
IView
![Page 18: 2 11 15 PresenterPresenterViewView ModelModel IViewIView.](https://reader035.fdocuments.net/reader035/viewer/2022070307/551a6c9c55034643688b4f41/html5/thumbnails/18.jpg)
Model View Presenter
A Standard WebForms-os világban is megvalósítható
![Page 19: 2 11 15 PresenterPresenterViewView ModelModel IViewIView.](https://reader035.fdocuments.net/reader035/viewer/2022070307/551a6c9c55034643688b4f41/html5/thumbnails/19.jpg)
20
demodemo
Az alapkoncepció (View <> Presenter)A pontos idő példa
![Page 20: 2 11 15 PresenterPresenterViewView ModelModel IViewIView.](https://reader035.fdocuments.net/reader035/viewer/2022070307/551a6c9c55034643688b4f41/html5/thumbnails/20.jpg)
demodemo
A kommunikáció (View >< Presenter)A pontos idő példa 2.0
![Page 21: 2 11 15 PresenterPresenterViewView ModelModel IViewIView.](https://reader035.fdocuments.net/reader035/viewer/2022070307/551a6c9c55034643688b4f41/html5/thumbnails/21.jpg)
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.
![Page 22: 2 11 15 PresenterPresenterViewView ModelModel IViewIView.](https://reader035.fdocuments.net/reader035/viewer/2022070307/551a6c9c55034643688b4f41/html5/thumbnails/22.jpg)
23
TartalomASP.NET most
Design Patterns
Model View Presenter
Model View Controller
![Page 23: 2 11 15 PresenterPresenterViewView ModelModel IViewIView.](https://reader035.fdocuments.net/reader035/viewer/2022070307/551a6c9c55034643688b4f41/html5/thumbnails/23.jpg)
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
![Page 24: 2 11 15 PresenterPresenterViewView ModelModel IViewIView.](https://reader035.fdocuments.net/reader035/viewer/2022070307/551a6c9c55034643688b4f41/html5/thumbnails/24.jpg)
Model View Presenter
Controller View
Model
![Page 25: 2 11 15 PresenterPresenterViewView ModelModel IViewIView.](https://reader035.fdocuments.net/reader035/viewer/2022070307/551a6c9c55034643688b4f41/html5/thumbnails/25.jpg)
MVC vs. MVP
![Page 26: 2 11 15 PresenterPresenterViewView ModelModel IViewIView.](https://reader035.fdocuments.net/reader035/viewer/2022070307/551a6c9c55034643688b4f41/html5/thumbnails/26.jpg)
27
demodemo
MVC "Hello World"
![Page 27: 2 11 15 PresenterPresenterViewView ModelModel IViewIView.](https://reader035.fdocuments.net/reader035/viewer/2022070307/551a6c9c55034643688b4f41/html5/thumbnails/27.jpg)
demodemo
MovieApp
![Page 28: 2 11 15 PresenterPresenterViewView ModelModel IViewIView.](https://reader035.fdocuments.net/reader035/viewer/2022070307/551a6c9c55034643688b4f41/html5/thumbnails/28.jpg)
Demo
ASP.NET Routing
Model
Controller
View
Repository pattern
Unit Test
Validation
Authorization
Design
![Page 29: 2 11 15 PresenterPresenterViewView ModelModel IViewIView.](https://reader035.fdocuments.net/reader035/viewer/2022070307/551a6c9c55034643688b4f41/html5/thumbnails/29.jpg)
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, JavaScript felett
Egyszerű tesztelhetőség
TDD (Test-Driven Deployment) lehetőség• Red/Green/Refactor
ASP.NET Core használata
![Page 30: 2 11 15 PresenterPresenterViewView ModelModel IViewIView.](https://reader035.fdocuments.net/reader035/viewer/2022070307/551a6c9c55034643688b4f41/html5/thumbnails/30.jpg)
MVC a jövő és a WebForms a múlt?
Nem helyette, hanem mellette(alternatíva)
![Page 31: 2 11 15 PresenterPresenterViewView ModelModel IViewIView.](https://reader035.fdocuments.net/reader035/viewer/2022070307/551a6c9c55034643688b4f41/html5/thumbnails/31.jpg)
Hogyan tovább?
http://www.asp.net/mvc/
http://msdn.microsoft.com/en-us/library/dd394709.aspx
http://www.microsoft.com/downloads/details.aspx?FamilyID=1E0BE0B2-910A-4676-9F3A-41E4D9C0FC08&displaylang=en
NerdDinner.com alkalmazás• http://aspnetmvcbook.s3.amazonaws.com/
aspnetmvc-nerdinner_v1.pdf
![Page 32: 2 11 15 PresenterPresenterViewView ModelModel IViewIView.](https://reader035.fdocuments.net/reader035/viewer/2022070307/551a6c9c55034643688b4f41/html5/thumbnails/32.jpg)
Kérdések és válaszok
1. kérdésMilyen szempontok szerint történik a szeparáció?
2. kérdésMi az alapvető különbség a MVC és az MVP között?
![Page 33: 2 11 15 PresenterPresenterViewView ModelModel IViewIView.](https://reader035.fdocuments.net/reader035/viewer/2022070307/551a6c9c55034643688b4f41/html5/thumbnails/33.jpg)
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, 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.