V zadnjih nekaj letih so se spletna mesta preusmerila od preprostih strani HTML z malo CSS do neverjetno zapletenih aplikacij, na katerih hkrati dela na tisoče razvijalcev. Razvijalci za delo s temi zapletenimi spletnimi aplikacijami uporabljajo različne vzorce oblikovanja za postavitev svojih projektov, da je koda manj zapletena in lažja za delo. Najbolj priljubljen med temi vzorci je MVC poznan tudi kot Krmilnik pogleda modela.
Kaj je MVC?
The Model-View-Controller (MVC) Framework je arhitekturni/oblikovalski vzorec, ki loči aplikacijo na tri glavne logične komponente Model , Pogled , in Krmilnik . Vsaka arhitekturna komponenta je zgrajena za obravnavo specifičnih razvojnih vidikov aplikacije. Izolira poslovno logiko in predstavitveni sloj drug od drugega. Tradicionalno se je uporabljal za namizje grafični uporabniški vmesniki (GUI) . Dandanes je MVC eno najpogosteje uporabljenih industrijskih standardnih ogrodij za spletni razvoj za ustvarjanje razširljivih in razširljivih projektov. Uporablja se tudi za oblikovanje mobilnih aplikacij.
MVC je ustvaril Trygve Reenskaug . Glavni cilj tega oblikovalskega vzorca je bil rešiti problem uporabnikov, ki nadzorujejo velik in zapleten nabor podatkov, tako da se velika aplikacija razdeli na posebne odseke, ki imajo vsak svoj namen.
Lastnosti MVC:
- Zagotavlja jasno ločitev poslovna logika, logika uporabniškega vmesnika in logika vnosa.
- Ponuja popoln nadzor nad vašim HTML in URL-ji, kar olajša oblikovanje arhitekture spletnih aplikacij.
- Je zmogljiva komponenta za preslikavo URL-jev, s katero lahko gradimo aplikacije z razumljivimi URL-ji, po katerih je mogoče iskati.
- Podpira Testno usmerjen razvoj (TDD).
Če želite izvedeti več o prednostih uporabe ogrodja MVC, preberite članek – Prednosti uporabe ogrodja MVC
Komponente MVC:
Ogrodje MVC vključuje naslednje 3 komponente:
- Krmilnik
- Model
- Pogled

Oblikovanje arhitekture MVC
krmilnik:
Krmilnik je komponenta, ki omogoča medsebojno povezavo med pogledi in modelom, tako da deluje kot posrednik. Krmilniku ni treba skrbeti za ravnanje s podatkovno logiko, modelu samo pove, kaj naj naredi. Obdeluje vso poslovno logiko in dohodne zahteve, manipulira s podatki z uporabo Model komponento in sodelujejo z Pogled za upodabljanje končnega rezultata.
vse velike črke bližnjica excel
Pogled:
The Pogled komponenta se uporablja za vso logiko uporabniškega vmesnika aplikacije. Ustvari uporabniški vmesnik za uporabnika. Pogledi so ustvarjeni s podatki, ki jih zbira komponenta modela, vendar se ti podatki ne vzamejo neposredno, temveč prek krmilnika. Interakcija je samo s krmilnikom.
Model:
The Model komponenta ustreza vsej logiki, povezani s podatki, s katero dela uporabnik. To lahko predstavlja bodisi podatke, ki se prenašajo med komponentama View in Controller, ali katere koli druge podatke, povezane s poslovno logiko. Lahko doda ali pridobi podatke iz baze podatkov. Odzove se na zahtevo krmilnika, ker krmilnik sam ne more komunicirati z bazo podatkov. Model sodeluje z bazo podatkov in vrne zahtevane podatke krmilniku.
Delovanje ogrodja MVC s primerom:
Predstavljajmo si, da končni uporabnik pošlje zahtevo strežniku, da dobi seznam študentov, ki se učijo v razredu. Strežnik bi nato to zahtevo poslal določenemu krmilniku, ki obravnava študente. Ta krmilnik bi nato od modela, ki obravnava študente, zahteval, da vrne seznam vseh študentov, ki se učijo v razredu.

Pretok podatkov v komponentah MVC
Model bi v zbirki podatkov izvedel poizvedbo za seznam vseh študentov in nato vrnil ta seznam nazaj krmilniku. Če je bil povratni odziv modela uspešen, bi krmilnik zahteval pogled, povezan s študenti, da vrne predstavitev seznama študentov. Ta pogled bi vzel seznam študentov iz krmilnika in upodobil seznam v HTML, ki ga lahko uporablja brskalnik.
Krmilnik bi nato vzel to predstavitev in jo vrnil nazaj uporabniku. S tem se je zahteva končala. Če bi prej model vrnil napako, bi krmilnik to napako obravnaval tako, da bi pogled, ki obravnava napake, pozval, naj upodobi predstavitev za to določeno napako. Ta predstavitev napake bi bila nato vrnjena uporabniku namesto predstavitve seznama študentov.
Kot lahko vidimo iz zgornjega primera, model obravnava vse podatke. Pogled obravnava vse predstavitve, krmilnik pa samo pove modelu in pogledu, kaj naj naredita. To je osnovna arhitektura in delovanje ogrodja MVC.
Arhitekturni vzorec MVC nam omogoča, da upoštevamo naslednja načela oblikovanja:
1. Razdeli in vladaj. Tri komponente je mogoče oblikovati nekoliko neodvisno.
2. Povečajte kohezijo. Komponente imajo močnejšo kohezijo plasti, kot če bi bila pogled in krmilnik skupaj v eni sami plasti uporabniškega vmesnika.
3. Zmanjšajte sklopko. Komunikacijski kanali med tremi komponentami so minimalni in jih je enostavno najti.
4. Povečajte ponovno uporabo. Pogled in krmilnik običajno v veliki meri uporabljata komponente za večkratno uporabo za različne vrste kontrolnikov uporabniškega vmesnika. Uporabniški vmesnik pa bo postal specifičen za aplikacijo, zato ga ne bo mogoče zlahka ponovno uporabiti.
5. Dizajn za prilagodljivost. Običajno je precej enostavno spremeniti uporabniški vmesnik tako, da spremenite pogled, krmilnik ali oboje.
Prednosti MVC:
- Kode je enostavno vzdrževati in jih je mogoče enostavno razširiti.
- MVC model komponento je mogoče testirati ločeno.
- Komponente MVC je mogoče razviti hkrati.
- Zmanjša kompleksnost z razdelitvijo aplikacije na tri enote. Model, pogled in krmilnik.
- Podpira Testno usmerjen razvoj (TDD).
- Dobro deluje za spletne aplikacije, ki jih podpirajo velike skupine spletnih oblikovalcev in razvijalcev.
- Ta arhitektura pomaga pri neodvisnem testiranju komponent, saj so vsi razredi in objekti neodvisni drug od drugega
- Optimizacija iskalnikov (SEO) Prijazna.
Slabosti MVC:
- Ta model je težko prebrati, spremeniti, preizkusiti in ponovno uporabiti
- Ni primeren za izdelavo majhnih aplikacij.
- Neučinkovitost dostopa do podatkov v pogledu.
- Okvirna navigacija je lahko zapletena, saj uvaja nove plasti abstrakcije, ki od uporabnikov zahteva, da se prilagodijo kriterijem razgradnje MVC.
- Povečana kompleksnost in neučinkovitost podatkov
Priljubljena ogrodja MVC:
Nekatera najbolj priljubljena in pogosto uporabljena ogrodja MVC so navedena spodaj.
trikratna zima
- Ruby on Rails
- Django
- CherryPy
- Pomladni MVC
- katalizator
- Tirnice
- Zend Framework
- Gorivo PHP
- Laravel
- Simfonija
MVC se običajno uporablja v aplikacijah, ki se izvajajo na eni sami grafični delovni postaji. Razdelitev logičnih komponent omogoča berljivost in modularnost ter omogoča udobnejšo uporabo pri testiranju.