mvc tanfolyamok. Motor létrehozása MVC-n

Közönségprofil:

  • A tanfolyam professzionális webfejlesztőknek készült, akik egyénileg vagy csapatban használják a Microsoft Visual Studio-t, nagy vagy kisebb szervezetekben.

Előfeltételek:

  • 2-3 év webes alkalmazásfejlesztési tapasztalat Microsoft Visual Studio és Microsoft ASP.NET használatával;
  • gyakorlati tapasztalat a .NET-keretrendszerrel;
  • C# programozási nyelv alapismerete.

A tanfolyam elvégzése után a hallgatók képesek lesznek:

  • Ismertesse a Microsoft webtechnológiáit, és válassza ki az adott feladathoz megfelelő eszközt;
  • olyan webalkalmazás felépítésének és megvalósításának megtervezése, amely megfelel a funkcionális követelményeknek, a felhasználói felülettel kapcsolatos követelményeknek és az üzleti modellnek;
  • MVC Modell létrehozása és kód írása, amely megvalósítja az alkalmazás üzleti logikáját és dolgozik az adatokkal;
  • Vezérlők hozzáadása az MVC-alkalmazásokhoz a felhasználói interakció kezeléséhez, a Modell frissítéséhez és a Nézetekkel való interakció biztosításához;
  • MVC nézeteket hozhat létre, amelyek lehetővé teszik az adatok megjelenítését és szerkesztését, valamint a modellekkel és vezérlőkkel való interakciót;
  • egységteszteket és hibakereső eszközöket futtathat webes alkalmazásokhoz a Visual Studio 2012-ben, és konfigurálhatja az alkalmazásokat hibaelhárításhoz;
  • olyan webalkalmazások fejlesztése, amelyek ASP.NET útválasztást használnak, hogy barátságos URL-eket és logikai navigációt biztosítsanak a felhasználók számára;
  • biztosítja a webhely oldalainak egységes megjelenését és hangulatát, beleértve a vállalati márkaépítést is, az MVC webalkalmazásokon keresztül;
  • részleges oldalfrissítés és gyorsítótár használata az alkalmazás által létrehozott hálózati terhelés csökkentése és a felhasználói műveletekre adott válaszidő csökkentése érdekében;
  • írjon JavaScript kódot, amely a kliens oldalon fut, és a jQuery parancsfájltárat használja az MVC webalkalmazások és a felhasználó közötti interakció optimalizálására;
  • olyan MVC-alkalmazások létrehozása, amelyek ellenállnak a rosszindulatú támadásoknak, és elmentik a felhasználói beállításokkal kapcsolatos információkat;
  • megérti, hogyan írhat Windows Azure webszolgáltatást, és hogyan érheti el azt egy MVC-alkalmazásból;
  • írja le, mi az a webes API, és miért adhatják hozzá a fejlesztők egy alkalmazáshoz;
  • módosíthatja, hogy az MVC-alkalmazás hogyan kezelje a böngészőkéréseket;
  • leírja, hogyan csomagolhat és telepíthet egy ASP.NET MVC 5 webalkalmazást egy fejlesztőgépről egy webszerverre;
  • webalkalmazások fejlesztése ASP.NET MVC 5 használatával;
  • ASP.NET MVC 5 modellek fejlesztése;
  • ASP.NET MVC 5 vezérlők fejlesztése;
  • ASP.NET MVC 5 Views fejlesztése;
  • az ASP.NET MVC 5 webalkalmazások tesztelése és hibakeresése;
  • ASP.NET MVC 5 webalkalmazások strukturálása;
  • stílusok ASP.NET MVC 5 webalkalmazásokhoz való alkalmazásának jellemzője;
  • az ASP.NET MVC 5-ben reszponzív oldalak létrehozásának mechanizmusa;
  • a JavaScript és a jQuery használatának sajátossága reszponzív MVC 5 webalkalmazások létrehozásához;
  • az ASP.NET MVC 5 webalkalmazásokhoz való hozzáférés szabályozásának elvei;
  • hogyan építsünk robusztus ASP.NET MVC 5 webalkalmazásokat;
  • webes API-k megvalósítása ASP.NET MVC 5 webalkalmazásokban;
  • kérésfeldolgozás ASP.NET MVC 5 webalkalmazásokban;
  • Az ASP.NET MVC 5 webalkalmazások telepítésének alapelvei.
A program felépítése a legegyszerűbb program példáján

MVC ASP .NET próbababákhoz. 1. lecke . Program "Helló, világ!"

A lecke forráskódja letölthető.

Az MVC-t az alapoktól tanuljuk meg. Kezdésnek hozzunk létre egy egyszerű alkalmazást „Hello, World!” És így megsütjük a Microsoft Visual Studio 2010-et (futhat egy másikat is, akkor előfordulhat, hogy a képek nem ugyanazok, mint a képernyőképeken). Lépjen a "Fájl" -> "Új" -> "Projekt" menüpontra:

Válassza ki a "Visual C#" -> "ASP.NET MVC 2 Web Application" projekttípust:

Az "OK" gombra kattintás után a Visual Studio létrehoz egy programsablont:

Távolítsunk el minden feleslegeset:

  • App_Data mappa.
  • Távolítsa el az AccountController.cs fájlt a Controllers mappából
  • A Nézet mappából a Fiók mappába.
  • A Nézet mappa a Kezdőlap és a Megosztott mappákat tartalmazza. Töröljük ezeknek a mappáknak az összes tartalmát. Hagyjuk a mappákat.

Így fog kinézni most a fánk:

Most eltávolítunk minden szükségtelent a programkódból, különösen az About() metódust:

És itt van az Index metódus, kicsit átírjuk. Konkrétan elkészítjük a típus karakterláncát, és megváltoztatjuk magának a metódusnak a törzsét. Az egész HomeController.cs program így fog kinézni:

Rendszer használata;

a System.Collections.Generic használatával;

a System.Linq;

a System.Web használatával;

a System.Web.Mvc használatával;

névtér MvcApplication2.Controllers

public class HomeController : Vezérlő

public string Index()

return "Hello World!" ;

És ezt fogja produkálni a program, amikor lefordítjuk és futtatjuk.

ASP.NET Core MVC webalkalmazások fejlesztése

A kurzus a legfrissebb verzió szerint olvasható!

A kurzus során megtanulod, hogyan készíthetsz webes alkalmazásokat segítségével ASP.NET Core MVC a .NET-keretrendszerből. Olyan ismeretekre és készségekre tesz szert, amelyek segítségével jelentősen javíthatja webes alkalmazásai teljesítményét és méretezhetőségét. A tanfolyam során összehasonlítja az ASP.NET CORE MVC és az ASP.NET Web Forms technológiákat, és ajánlásokat kap az egyik vagy másik technológia kiválasztásához.

A tanfolyam kiszámítva professzionális webfejlesztők számára, akik tapasztalattal rendelkeznek a Visual Studio használatával történő alkalmazások létrehozásában.

A tanfolyam elvégzéséhez érvényes bizonyítvány szükséges fiók hozzáférésMicrosoft Azure. Felhívjuk figyelmét, hogy az új hozzáférés megszerzése akár 48 órát is igénybe vehet. Ha nem rendelkezik hozzáféréssel, kérjük, értesítse vezetőjét a képzésre való regisztrációkor. Ebben az esetben próbaverziót biztosítunk: 30 napos Windows Azure Pass.

Továbbfejlesztett gyakorlatra van szüksége? Microsoft minősítési vizsgákra készül? Szerezzen hozzáférést a Labs Online– virtuális laborok az engedélyezett Microsoft tanfolyamokon – a tanfolyam alatt és a diploma megszerzése után két héttel! A szolgáltatás egyedülálló és csak a "Speciális" Központban érhető el

Az MVC (Model-View-Controller) koncepciója sokat emlegetett az elmúlt években a webes programozás világában. Mindenki találkozott ezzel a rövidítéssel, aki bármilyen módon kapcsolódik a webes alkalmazások fejlesztéséhez, így vagy úgy. Ma megértjük, mi az MVC koncepció, és miért vált népszerűvé.

ókori történelem

Az MVC nem tervezési minta, hanem egy tervezési minta, amely leírja az alkalmazásunk felépítését, a felelősséget és a struktúra egyes részeinek interakcióját.

1979-ben írták le először, természetesen más környezetre. Akkor még nem volt koncepció a webes alkalmazásról. Tim Berners Lee a kilencvenes évek elején elültette a World Wide Web (WWW) magjait, és örökre megváltoztatta a világot. A ma használt sablon az eredeti webfejlesztési sablon adaptációja.

A keretrendszer őrült népszerűsége a webes alkalmazásokban annak köszönhető, hogy két nagyon népszerűvé vált fejlesztői környezetben is szerepelt: a Strutsban és a Ruby on Railsben. Ez a két fejlesztői környezet több száz, később létrehozott éles környezet útját jelölte meg.

MVC webes alkalmazásokhoz

Az MVC tervezési mintája mögött meghúzódó ötlet nagyon egyszerű: világosan el kell különítenünk a felelősséget az alkalmazásaink különböző viselkedéseiért:

Az alkalmazás három fő összetevőre oszlik, amelyek mindegyike más-más feladatokért felelős. Nézzük meg részletesen az összetevőket egy példán keresztül.

Vezérlő

Vezérlő kezeli a felhasználói kéréseket (a HTTP GET vagy POST kéréseket kapja, amikor a felhasználó az interfész elemeire kattint különböző műveletek végrehajtásához). Fő funkciója a felhasználó által meghatározott műveletek végrehajtásához szükséges erőforrások és objektumok meghívása és koordinálása. Általában a vezérlő meghívja a feladathoz megfelelő modellt, és kiválasztja a megfelelő nézetet.

Modell

Modell az adatok és szabályok, amelyek az alkalmazáskezelési koncepciót képviselő adatokkal való munkavégzésre szolgálnak. Bármely alkalmazásban a teljes struktúra egy bizonyos módon feldolgozott adatként van modellezve. Mi a felhasználó egy alkalmazáshoz - üzenet vagy könyv? Csak azokat az adatokat, amelyeket a szabályoknak megfelelően kell feldolgozni (a dátum nem lehet jövőbeni, az e-mailnek meghatározott formátumúnak kell lennie, a név nem lehet hosszabb X karakternél stb.).

A modell megjeleníti az adatkezelőt a felhasználó által kért adatokról (üzenet, könyvoldal, fotóalbum stb.). Az adatmodell ugyanaz lesz, akárhogyan is szeretnénk bemutatni a felhasználónak. Ezért bármelyik elérhető nézetet kiválasztjuk az adatok megjelenítéséhez.

A modell tartalmazza az alkalmazási logikánk legfontosabb részét, azt a logikát, amely megoldja az éppen aktuális problémát (fórum, bolt, bank stb.). A vezérlő többnyire magának az alkalmazásnak a szervezeti logikáját tartalmazza (hasonlóan a háztartáshoz).

Kilátás

Kilátás különféle módokat biztosít a modelltől kapott adatok megjelenítésére. Ez lehet egy adatokkal megtöltött sablon. Többféle nézet is lehet, és a vezérlő kiválasztja, hogy melyik illik legjobban az aktuális helyzethez.

A webalkalmazások általában vezérlők, modellek és nézetek halmazából állnak. A vezérlő beállítható fővezérlőként, amely fogadja az összes kérést, és felhívja a többi vezérlőt, hogy a helyzettől függően hajtsanak végre műveleteket.

Vegyünk egy példát

Tegyük fel, hogy ki kell fejlesztenünk egy online könyvesboltot. A felhasználó a következő műveleteket hajthatja végre: könyvek megtekintése, regisztráció, vásárlás, tételek hozzáadása az aktuális rendeléshez, könyvek létrehozása vagy törlése (ha rendszergazda). Nézzük meg, mi történik, ha a felhasználó egy kategóriára kattint fantázia az üzletünkben kapható könyvek címeinek megtekintéséhez.

Van egy speciális vezérlőnk a könyvekkel kapcsolatos összes művelet kezelésére (megtekintés, szerkesztés, létrehozás stb.). Nevezzük el books_controller.php példánkban. Szükségünk van egy modellre is, pl. könyv_modell.php Olyan, amely kezeli az áruházi cikkhez kapcsolódó adatokat és logikát. Végül több nézetre van szükségünk az adatok megjelenítéséhez, például egy könyvlistára, egy szerkesztőoldalra stb.

A következő ábra azt mutatja be, hogy a felhasználó hogyan kezeli a kapcsolódó könyvek listájának megtekintésére vonatkozó kérését. fantázia:

A vezérlő (books_controller.php) fogadja a felhasználó kérését (HTTP GET vagy POST kérés). Beállíthatunk egy központi vezérlőt, mint például az index.php, amely fogadja a kérést, és meghívja a books_controller.php-t.

A vezérlő ellenőrzi a kérést és a paramétereket, majd meghívja a modellt (book_model.php), érdeklődő van egy listája a témában elérhető könyvekről fantázia .

A modell lekéri az adatokat az adatbázisból (vagy más információt tároló forrásból), alkalmazza a szűrőket és a szükséges logikát, majd visszaadja a könyvlistát reprezentáló adatokat.

Az adatkezelő a megfelelő nézetet használja az adatok megjelenítésére a felhasználó számára. Ha a kérés mobiltelefonról érkezik, a mobil nézet kerül felhasználásra; ha a felhasználó egy bizonyos felületkialakítást használ, akkor a megfelelő nézet kerül kiválasztásra, és így tovább.

Milyen előnyökkel jár?

A legnyilvánvalóbb előny, amit az MVC-koncepció használatából kapunk, a megjelenítési logika (felhasználói felület) és az alkalmazáslogika egyértelmű szétválasztása.

A különböző típusú eszközöket használó felhasználók támogatása manapság gyakori probléma. A megadott interfésznek másnak kell lennie, ha a kérés PC-ről vagy mobiltelefonról érkezik. A modell ugyanazokat az adatokat adja vissza, a különbség csak annyi, hogy a vezérlő különböző nézeteket választ az adatok megjelenítésére.

A nézetek alkalmazáslogikától való elkülönítése mellett az MVC koncepció nagyban csökkenti a nagy alkalmazások bonyolultságát. A kód sokkal strukturáltabb, ami megkönnyíti a megoldások karbantartását, tesztelését és újrafelhasználását.

Miért használjunk munkapadot?

Ha munkapadot használ, az alap MVC-struktúra már a helyén van, és csak annyit kell tennie, hogy kiterjeszti a struktúrát úgy, hogy a fájlokat a megfelelő könyvtárakba helyezi, hogy megfeleljen az MVC-mintának. Ezen kívül lesz egy sor funkciója, amelyek már meg vannak írva és jól teszteltek.

Vegyük a cakePHP-t példaként egy MVC munkaasztalra. A telepítés után három fő könyvtára lesz:

  • torta/
  • eladók/

Mappa kb a fájlok helye. Ez az a hely, ahol fejlesztheti az alkalmazás részét.

A mappában torta CakePHP fájlokat tárol (munkaasztal funkció).

Mappa árusok harmadik féltől származó PHP-könyvtárak tárolására szolgál.

A munkaterület (alkalmazáskönyvtár) szerkezete a következő:

  • app/
    • config/
    • vezérlők/
    • locale/
    • modellek/
    • bővítmények/
    • tesztek/
    • eladók/
    • nézetek/
    • webroot/

A vezérlőket egy könyvtárba kell helyezni vezérlők, modellek a könyvtárban modellekés nézetek a könyvtárban nézetek!

Amint elkezdi használni a munkapadot, azonnal világossá válik, hogy alkalmazásának szinte minden létrehozandó vagy módosítandó része hol található. Ez a szervezet önmagában nagyban leegyszerűsíti az alkalmazások fejlesztésének és karbantartásának folyamatát.

A munkaterület használata a példánkhoz

Mivel ennek a leckének nem az a célja, hogy megmutassa, hogyan kell alkalmazást készíteni a cakePHP segítségével, csak a modell, a vezérlő és a nézet kódját mutatjuk be, az MVC munkaasztal használatának előnyeivel együtt. A kód szándékosan egyszerűsített, és alkalmatlan valódi alkalmazásokban való használatra.

Ne feledje, kerestünk egy könyvesboltot és egy kíváncsi felhasználót, aki látni akarta a témával kapcsolatos könyvek teljes listáját. fantázia. Az adatkezelő megkapta a felhasználó kérését és összehangolta a szükséges intézkedéseket.

Tehát amint a felhasználó rákattint a gombra, a böngésző lekéri a megadott URL-t:

www.ourstore.com/books/list/fantasy

CakePHP sablon URL formázása /controller/action/param1/param2, ahol akció egy függvény, amelyet a vezérlő hív meg. A régi klasszikus formában az url így fog kinézni:

www.ourstore.com/books_controller.php?action=list&category=fantasy

Vezérlő

A cakePHP munkaterületen a vezérlőnk így fog kinézni:

Class BooksController kiterjeszti az AppController(

Függvénylista($kategória) (

$this->set("könyvek", $this->Book->findAllByCategory($kategória));

függvény add() ( ... ... )

A delete() függvény ( ... ... )

... ... } ?>

Egyszerű, igaz? Ez a vezérlő a következő néven lesz elmentve books_controller.phpés behelyezték /app/controllers. Tartalmazza azon függvények listáját, amelyek a példánkban szereplő műveleteket hajtják végre, valamint a könyvvel kapcsolatos műveletek végrehajtására szolgáló egyéb funkciókat (új könyv hozzáadása, könyv törlése stb.).

A munkakörnyezet számos kész megoldást kínál számunkra, és csak egy listát kell készítenünk a könyvekről. Van egy alaposztály, amelyben a vezérlő alapvető funkciói már definiáltak, ezért ennek az osztálynak a tulajdonságait és funkcióit örökölnie kell ( AppController az örökös Vezérlő).

A műveletlistában mindössze annyit kell tennie, hogy meghívja a modellt az adatok lekéréséhez, majd kiválasztja a nézetet, hogy megjelenítse azokat a felhasználónak. Íme, hogyan történik.

ez->Könyv a mi modellünk, és a kód része:

$this->Book->findAllByCategory($category)

utasítja a modellt, hogy adja vissza a kiválasztott témában található könyvek listáját (később megnézzük a modellt).

Módszer készlet Sorban:

$this->set("könyvek", $this->Book->findAllByCategory($kategória));

A vezérlő adatokat ad át a nézetnek. Változó könyveketátveszi a modell által visszaadott adatokat, és elérhetővé teszi a nézet számára.

Már csak a nézet megjelenítése van hátra, de ez a funkció a cakePHP-ben automatikusan megtörténik, ha az alapértelmezett nézetet használjuk. Ha más nézetet akarunk használni, akkor kifejezetten meg kell hívnunk a metódust Vakol.

Modell

A modell még egyszerűbb:

osztály Könyv kiterjeszti az AppModel(

Miért üres? Mert egy olyan alaposztályból örökli, amely biztosítja a szükséges funkcionalitást, és a CakePHP elnevezési konvencióját kell használnunk ahhoz, hogy a munkaasztal minden más feladatot automatikusan végrehajtson. Például a cakePHP a nevéből tudja, hogy ezt a modellt használják BooksController, és hozzáférése van a books nevű adatbázistáblához.

Ezzel a definícióval olyan modellünk lesz, amely csak adatokat tud olvasni, törölni vagy tárolni az adatbázisban.

Mentse el a kódot másként könyv.php mappában /app/models.

Kilátás

Most már csak egy nézetet kell létrehoznunk (legalább egyet) a műveletlistához. A nézetben HTML kód és néhány (a lehető legkevesebb) PHP kód sora lesz, hogy végigfusson a modell által biztosított könyvek tömbjén.












Név Szerző Ár

Amint látható, a nézet nem hoz létre teljes értékű oldalt, hanem csak egy HTML-részletet (jelen esetben egy táblázatot). Mivel a CakePHP egy másik módot biztosít az oldalsablon meghatározására, és a nézet ebbe a sablonba kerül beillesztésre. A munkapad néhány segédobjektumot is biztosít számunkra a gyakori feladatok elvégzéséhez a HTML-oldal részeinek létrehozásakor (űrlapok, hivatkozások, Ajax vagy JavaScript beszúrása).

Mentse el a nézetet másként list.ctp(a lista a művelet neve, a ctp pedig CakePHP sablont jelent) a mappában /app/views/books(mert ez egy vezérlő művelet nézete).

Így kerül végrehajtásra mindhárom komponens a CakePHP munkaasztal segítségével!

Sziasztok! Ma írom az első cikket egy saját készítésű sorozatból MVC alkalmazások.

Először is érdemes megjegyezni, hogy ha valaki nem tudja, mi az az MVC akkor először olvassa el ezt a cikket: .

Szóval mi lesz a végén? Nekünk lesz motor használatával készült MVC tervezési minta. Ez a motor nagyon egyszerű lesz, az ellenőrzések valahol kimaradnak, de mindez azért történik, hogy megértse, hogyan kell alkalmazásokat létrehozni MVC, majd miután véglegesítette motorunkat, használhatja projektjeihez. Az alapvető funkciókkal rendelkezünk:

  • felhatalmazást
  • kis chat
  • cikkek hozzáadása
  • cikkszerkesztés
  • cikkek törlése
  • felhasználókezelés

Minden a mappaszerkezettel kezdődik. Nálunk így lesz:

  • index.php
  • .htaccess
  • vezérlők
  • modellek
  • nézetek
  • libs

Szerintem itt minden világos. Mappákban vezérlők, modellek, nézetekés libs megtartják vezérlők, modellek, fajtáiés Egyéb fájlok. A létrehozási folyamat során hozzáadjuk a szükséges mappákat és fájlokat.

A motor létrehozásához használjuk objektum-orientált megközelítés. Ha nem ismeri őt jól, akkor először olvassa el ezt a cikket az oldalon.

Tehát itt fejezem be a bevezető cikket, és a következőben már kezdjük is az alkotást motor az MVC-n. Később találkozunk!