2 11 15 PresenterPresenterViewView ModelModel IViewIView.

Post on 31-Mar-2015

221 views 5 download

Tags:

Transcript of 2 11 15 PresenterPresenterViewView ModelModel IViewIView.

ASP.NET MVC

Csala PéterELTE - IKpeter.csala@student-partners.mshttp://csalapeter.spaces.live.com

A WebForms új vetélytársa

2

TartalomASP.NET most

Design Patterns

Model View Presenter

Model View Controller

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

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 • PostBack miatt >> eseményvezéreltség• Validáció miatt

• Sok hiddenfield• ViewState 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=2b3c1233-0d22-4094-a177-

7caaf89903b0&Size=10&Anonim=1

Probléma:• Nehezen megjegyezhető• Nehezen olvasható• Könnyen módosítható

Megoldás

DP + ASP.NET MVC

11

TartalomASP.NET most

Design Patterns

Model View Presenter

Model View Controller

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

15

TartalomASP.NET most

Design Patterns

Model View Presenter

Model View Controller

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

PresenterView

Model

IView

Model View Presenter

A Standard WebForms-os világban is megvalósítható

20

demodemo

Az alapkoncepció (View <> Presenter)A pontos idő példa

demodemo

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.

23

TartalomASP.NET most

Design Patterns

Model View Presenter

Model View Controller

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

Controller View

Model

MVC vs. MVP

27

demodemo

MVC "Hello World"

demodemo

MovieApp

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, JavaScript 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 WebForms a múlt?

Nem helyette, hanem mellette(alternatíva)

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?

© 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.