1.modelul mvc

28
Introducere în MVC MVC – MODEL VIEW CONTROLER Chilat Sergiu Balți 2010

Upload: mihaela

Post on 12-Jan-2016

265 views

Category:

Documents


1 download

DESCRIPTION

html5

TRANSCRIPT

Page 1: 1.Modelul MVC

Introducere în MVCMVC – MODEL VIEW CONTROLER

Chilat Sergiu Balți 2010

Page 2: 1.Modelul MVC

Prezentarea modelului MVC

Programarea utilizând MVC (Model-View-Controller) separă aplicaţia în trei mari părţi:

1.Modelul - reprezintă datele aplicaţiei;

2.View-ul oferă o prezentare a datelor din Model:

3.Controller-ul rutează cererile făcute de client, se ocupă de partea logică a aplicaţiei şi face legătura dintre Model şi View.

Page 3: 1.Modelul MVC

Noţiunea de MVC(Model View Controller)

MVC este un concept foarte răspîndit în programarea Web. Scopul MVC este de a ţine separate logica business-ului şi interfaţa utilizator, astfel încît cei care întreţin aplicaţia să modifice mult mai uşor o parte, fără a afecta alte părţi

Page 4: 1.Modelul MVC

Principiul de bază al MVC

Principiul care stă la baza conceptului Model-View-Controller este împărţirea responsabilităţilor. Într-o aplicaţie creată trebuie să respecte acest concept, avem:

Page 5: 1.Modelul MVC

Componenta Model

Modelul reprezintă partea de hard-programming, partea logică a aplicaţiei. El are în responsabilitate acţiunile şi operaţiile asupra datelor, autentificarea utilizatorilor, integrarea diverselor clase ce permit procesarea informaţiilor din diverse baze de date.

Page 6: 1.Modelul MVC

Componenta View

View-ul se ocupă de afişarea datelor, practic această parte a programului va avea grijă de cum vede end-userul informaţia procesată de controller. O dată ce funcţiile sunt executate de model, view-ului îi sunt oferite rezultatele, iar acesta le va trimite către browser.

Page 7: 1.Modelul MVC

Componenta Controler

Controller-ul reprezintă creierul aplicaţiei. Aceasta face legătura între model şi view, între acţiunile user-ului şi partea decizională a aplicaţiei. În funcţie de nevoile utilizatorului, controller-ul apelează diverse funcţii definite special pentru secţiunea de site în care se află user-ul.

Page 8: 1.Modelul MVC

• Modelul arhitectural din Smalltalk• Separarea datelor de prezentare• Ușurința întreținerii

2. Model View Controller

Page 9: 1.Modelul MVC

• Exemplu de MVC:– Partea 1: View (Client)– Partea 2: Controller (Server)– Partea 3: Model (Baza de date)

Baza de date

ClientServer

Page 10: 1.Modelul MVC

• Prezentare:– View este interfața utilizatorului– Controller este codul aplicației

• Date:– Model este baza de date

Baza de date

Prezentare

Date

Page 11: 1.Modelul MVC

MVC – exemplu general

Page 12: 1.Modelul MVC

Structura componentei MODEL

În model de obicei se scrie o clasă cu funcţiile de apel pentru baza de date, cum ar fi:

• funcţie care primeşte ca parametru o variabilă de tip array cu datele ce trebuiesc salvate în baza de date şi returnează FALSE în caz de eroare sau un ID în caz de salvare cu succes a datelor;

Page 13: 1.Modelul MVC

Structura componentei MODEL

funcţie care preia datele din baza de date, primeşte ca parametru o variabilă de tip array pentru interogarea în baza de date (condiţia pentru WHERE) şi returnează FALSE sau o variabila de tip array cu datele obţinute din baza de date;

Page 14: 1.Modelul MVC

Structura componentei MODEL

• funcţie pentru a afla numărul total de înregistrări din baza de date (folosită de obicei la paginare) care primeşte ca parametru o variabilă de tip array pentru interogarea în baza de date (condiţia pentru WHERE) şi returnează FALSE sau un număr întreg ce reprezintă numărul de înregistrări găsite;

Page 15: 1.Modelul MVC

Rolurile componentei MODEL

Partea de model înmagazinează datele sub formă de proprietăţi şi pune la dispoziţie metode specifice aplicaţiei care permit extragerea şi fixarea datelor. Metodele care gestionează datele nu sunt ceva generic, ele sunt adaptate cerinţelor aplicaţiei şi trebuie să fie cunoscute părţilor de control şi de vedere.

Page 16: 1.Modelul MVC

Structura componentei VIEW

View-ul este partea care afişează informaţiile, aici nu trebuie să se facă calcule sau prelucrări de date, şi nici o decizie (if, switch, etc)

Page 17: 1.Modelul MVC

Structura componentei VIEW

De obicei facem un switch şi în el în funcţie de caz afişăm codul html corespunzător împreună cu datele primite de la controller, sau facem pagini separate pentru fiecare formular sau secţiune ce trebuie afişată.

Page 18: 1.Modelul MVC

Structura componentei CONTROLER

Aici este cel mai mult cod de scris, fiind pagina care se cere prima dată şi care le include pe celelalte, este nevoie de multe verificări şi prelucrări de date, iar la sfârşit datele se trimit sub forma unor variabile de tip array la view-er sau în baza de date prin intermediul funcţiilor din model.

Page 19: 1.Modelul MVC

Rolurile componentei CONTROLER

Controller-ul reprezintă creierul aplicaţiei. Aceasta face legătura între model şi view, între acţiunile user-ului şi partea decizională a aplicaţiei. În funcţie de nevoile utilizatorului, controller-ul apelează diverse funcţii definite special pentru secţiunea de site în care se află user-ul.

Page 20: 1.Modelul MVC

Rolurile componentei CONTROLER

Funcţia se va folosi de model pentru a prelucra (extrage, actualiza) datele, după care informaţiile noi vor fi trimise către view, ce le va afişa apoi prin template-uri.

Page 21: 1.Modelul MVC

Rolurile componentei CONTROLER

Controller-ul aşteaptă anunţarea de evenimente din partea părţii de vedere ca urmare a unor modificări realizate de utilizator şi să le transpună în modificări pentru model. În unele cazuri speciale, controller-ul ar putea să inducă modificări părţii de vedere prin apelarea de metode din cadrul vederii.

Page 22: 1.Modelul MVC

Rolurile componentei CONTROLER

Modificările sunt trimise direct vederii doar în cazul în care sunt doar de cosmetizare a vederii şi nu au nici un efect asupra modelului (de exemplu funcţiile de ordonare de liste).

Page 23: 1.Modelul MVC

AVANTAJE MVC

• Claritatea designului: Uşurinţă pentru a controla comportamentul modelului;

• Reutilizarea codului: Arhitectura optimizează reutilizarea codului;

• Modularitate eficientă : Modularitatea design-ului permite schimbarea oricărei

Page 24: 1.Modelul MVC

AVANTAJE MVC

• Multiple view-uri cu acelaşi model: Separarea modelului de view permite folosirea multiplă de view-uri păstrînd acelaşi model;

• Suport pentru tipuri noi de client: Pentru a integra un nou tip de client nu trebuie decît

Page 25: 1.Modelul MVC

AVANTAJE MVC

• Uşurinţă în versionare: Controller-ele şi view-urile pot creşte în paralel cu modelul;

• Permite mai multe reprezentări (views) ale aceeaşi informaţii (model);

• Permite interfeţelor utilizator (views) să fie uşor adăugate, înlăturate sau modificate, în

Page 26: 1.Modelul MVC

DEZAVANTAJE MVC

• Instabilitatea view-ului: Separarea view-ului de model permite un model mai robust(trainic) însă codul de interfaţă suferă schimbări frecvente şi chiar dramatice;

• Greu de implementat;

• Clase Controller mari: Pe o aplicaţie mare, cu multe screen-uri, controller-ul ajunge să fie foarte mare;

Page 27: 1.Modelul MVC

DEZAVANTAJE MVC

• Datorită folosirii interogărilor simple, elementele de grafică ar trebui realizate direct în interfaţa grafică;

• Interfaţa grafică poate fi programată să realizeze funcţii de validare a cîmpurilor, accelerînd astfel funcţionarea aplicaţiei;

Page 28: 1.Modelul MVC

EXEMPLU DE CERERE MVC