A fejlesztés a termelékenység és a hatékonyság MVC 3 állvány
Ahogy az előző cikkben beszéltem a alapfogalmakat és a könyvtár (ASP.NET MVC, Entity Framework), most nem fogok lakni őket részletesen. Egy példa lenne, hogy használja állványzat. amely már említettem az előző alkalommal.
Fontos. Megjegyzem, hogy az állványzatot -, általában elmondható, gyors generációs semmit, azzal a céllal, további javulást, és nem olyan módon, hogy gyorsan írjon teljes komplex alkalmazás.
Talán az egyetlen dolog, hogy elfelejtettem, hogy állítsa le az utolsó alkalom, hogy NuGet. A gondolata nem új, (apt-get, Ruby Gems, stb), de az tény, hogy már elérhető a Visual Studio nagyon jó. Az alábbi leírás a hivatalos honlapon:
NuGet egy Visual Studio kiterjesztés, amely megkönnyíti telepítésére és frissítésére nyílt forráskódú könyvtárak és eszközök a Visual Studio.
Elvileg semmi hozzá, de én még mindig egy kicsit add :)
Azt is fontos megjegyezni, hogy amikor létrehozza a csomagot, akkor adja meg a függőségeket, amelyek automatikusan letöltötte és telepítette. Valószínűleg valaki is érdekes lehet csatlakozni privát csomag forrás (egyszerű szerver vagy egy megosztott mappa) egy par nuget.org.
További információ a NuGet és Package Manager megtalálható a dokumentációban a hivatalos honlapon. És azoknak, akik kedvelik blogformátumban tudom ajánlani egy cikket Scott Hanselmann - Bemutatjuk NuPack Package Management for .NET - Egy másik darab a Web Stack.
Beállítása az adatbázis-kapcsolat
Annak érdekében, hogy ne legyen csatlakoztatva a készüléken (vagy nincs beállítva) változat, úgy döntöttem, hogy a Microsoft SQL Server Compact Edition - egy könnyű adatbázis, amely nem igényel konfigurációt, és nem szükséges, hogy futtassa a szolgáltatásokat.
Ahhoz, hogy használni az SQL Server CE egyszerűen töltse le a megfelelő csomagot (ha az SQL Server CE még nincs csatlakoztatva a projekt), a parancs a konzolon:
PM> Install-csomag SqlServerCompact
Akkor meg kell, hogy helyes a web.config meglévő kapcsolat string (alapból ApplicationServices), és adjunk hozzá egy kapcsolat húr a nevét, amely megegyezik a kontextus nevét (ráadásul nem beállítani semmit):
A rekord - megjelenése előtt Entity Framework 4.1 (megjelent támogatását CodeFirst) is letölthető NuGet-pack EFCodeFirst.SqlServerCompact, amely (néhány más csomagokkal) add ilyen támogatást az Entity Framework 4.
Beállítása adatbázis generáció
Tegyük fel, azt tervezzük, hogy továbbfejlesszük modell, ahogy ez általában történik valós projektek, nem? ;) Ebben az esetben van szükség, hogy újra létre az adatbázist, ha megváltoztatja a modell (ha elhagyja az összes alapértelmezett, ebben az esetben megkapjuk a kivétel). Ez elég „Global.asax.cs” hozzáadni egy sort a módszer „Application_Start”:
Mindenesetre, tisztázni néhány pontot:
- Ne használja ezt az üzemmódot a kísérleti / ipari használatra, mert akkor elveszíti a bevitt adatokat a felhasználók.
- Az adatbázis feltöltésére vizsgálati adatokkal lehet örökölt az osztály és felülbírálja DropCreateDatabaseIfModelChanges Seed módszer. További információ erről a megtalálható az ADO.NET csapatblogodban.
- Használt space „System.Data.Entity” neve (ez, ha hirtelen az IDE nem jelenti automatikusan hez hozzáadni használatával).
Nyilatkozat a problémát
Tegyük fel azt a problémát így:
Sőt, az imént leírt meghatározott modelleket alkalmazás. A modellek maguk is létre fog hozni egy kicsit később. Ami létrehozását modellek, helyes kellene létrehozni egy külön projekt típus „Class Library”, de remélem, megbocsátják létre őket ugyanabban a projektben :)
Megjegyzés: megfogalmazása a probléma nagyon egyszerű, különösen, van egy sok-sok kapcsolat, ami nélkül csak ritkán kerül a valós alkalmazások. Ezért annak érdekében, hogy ne vádolják meghamisítja a tényeket;), szeretném megemlíteni - abban a pillanatban a hivatalos verzió scaffolding'a a sok-sok azonban nem, ha akarja, megírhatja állványozó (idejének MvcScaffolding, erről bővebben később). Ugyanez vonatkozik valószínűleg más problémákra, hogy én nem szereplő példát.
Állvány: a szokásos módon
Annak érdekében, hogy létrehoz a vezérlők és nézetek szabványos módon, fel kell telepíteni az MVC 3 Eszközök frissítése. Csak abban az esetben, hadd emlékeztessem, hogy ez a frissítés nem befolyásolja a könyvtár, és amely csak a frissített eszközök, beleértve a létrehozását vezérlők és nézetek.
Hozzon létre egy új projekt kiválasztásával a listából „ASP.NET MVC 3 Web Application”. A folyamat során felajánlotta, hogy adja meg a paramétereket a projekt:
Ugyanakkor szeretném felhívni a figyelmet, hogy újítások MVC 3 Tools Frissítve - Új sablon „Intranet alkalmazás” és támogatja a HTML5 szemantikus jelölés. Unit-tesztet, míg elhagyom a színfalak mögött, hogy ne fújja fel a méret a cikket.
Most, miután a létrehozása a projekt, a stúdió megfelel nekünk nyitott readme.txt (a leírt beállítások a különböző IIS). Mellesleg, aki feltalálta azt - én öt plusz :) De most nem különösen érdekes.
Ezután azt látjuk, hogy a jól ismert szerkezet a projekt nem AccountController és minden kapcsolódó fájlokat - következtében a sablon választás Intranet.
Most hozzunk létre egy egyszerű modell, összhangban a termelés a fenti problémát. By the way, hogy megkönnyítse a teremtés tettem én ReSharper SimpleModel sablon fájlt, hogy ne hozzon létre minden alkalommal tulajdonságai „Id” és a „név”. Ez is, valamilyen módon, az állványzat, de nem fogok beszélni minden ReSharper és minták különösen, de, mint :)
Alkalmazása után a modell osztály sablon néz ki:
Most újabb vezérlőkkel a helyi menüből a Solution Explorerben:
A párbeszédablakban válassza ki a nevét a vezérlőt, a modell osztály és az összefüggések (ha nem, hozzon létre egy újat):
Egyszerű kísérletben azt találták, hogy a meghatározó keretében egy külön mappába (pl modell), akkor meg kell adnia azt a mappát a ponton át - „Models.MvcDemoContext”.
Most, miután rákattintott a „Hozzáadás” gombra, megfigyelhetjük enyhe magic (legalábbis azok számára, akik még soha nem látott egy állványzat akcióban) - a mi projekt tette hozzá a szükséges fájlokat, és miután az alkalmazást futtató tudjuk elvégezni az összes beállított műveletek szifilisz (Create / olvasása / frissítése / törlése) a mi modelleket. Sőt, az alapértelmezett munka diszkrét érvényesítése.
Mint látható, a munka és az érvényesítés még nem tolakodó érvényesítés be a törtszám és a dátum formátumot a magyar lesz elvégzéséhez további gesztusok.
MvcScaffolding - az alapok
az azonos kialakítású lehet használni, hogy időt takarítson meg. Azok, akik arra használják, hogy alaposan ellenőrizze az összes, csak ajánlani tudom, hogy távolítsa el a már létrehozott vezérlők és nézetek, vagy hozzon létre egy új projekt :)
Végrehajtja a konzol parancsot:
PM> Install-csomag MvcScaffolding
Ez a parancs beállítja ugyanabban az időben és T4Scaffolding (csomag tartalmazza az infrastruktúrát az állványzat általában).
PM> Állvány Controller Gyártó -Repository
Ez létrehoz egy vezérlő és nézetek, amelyek támogatják a szifilisz-műveletet. Ebben az esetben két fő különbségek a korábbi verzió (amellett, kozmetikai).
Ahhoz, hogy újra az elrendezés létrehozása és szerkesztése a parciális nézet „_CreateOrEdit.cshtml”. Nem fogok lakni a előnyeiről és hátrányairól egy ilyen megközelítés. Csak azt tudom mondani, hogy egyrészt senki zavar, hogy majd módosítsa a bemutató, másrészt lehetőség van megváltoztatni a sablonok alapján jönnek létre, és még a generátor (többet megmondja később).
Keresztül a „tároló” kiegészítésül generált felület „IManufacturerRepository” és a „ManufacturerRepository” osztályú. Nem írja le azokat részletesen, egyszerűen adja a felület leírása:
Emiatt most már elég könnyen kezelhető felület Injection. például, a készülék teszt.
MvcScaffolding - beállítás
Ha létrehoz prezentáció MvcScaffolding, akkor azt találjuk, hogy diszkrét érvényesítési nekik nem működik. Ennek az az oka, hogy ellentétben a hagyományos állvány (az MVC 3 Tools frissítése), a következő nyilatkozatokat nem szkriptek összekötő vezetékek:
Alternatívaként, felveheti őket a „_Layout.cshtml” (mit, megint megvan a maga előnye és hátránya), de nézzük reprodukálni a viselkedését egy szabványos állvány.
Ehhez futtassa a parancsot a konzolba:
PM> Állvány CustomTemplate MvcScaffolding.RazorView létrehozása
A parancs után „Create.cs.t4” fájl jelenik meg a projekt, amely a sablon T4 és most előállításánál használt (a visszatérés a szabványos, egyszerűen távolítsa el ezt a sablont, vagy átnevezés):
Most csak adj egy pár sort szükséges ezt a fájlt, mentse el, és ezt a parancsot:
PM> Állvány Controller Gyártó -Repository -Force
Az utolsó paraméter azt jelzi, hogy sétálunk a fájlokat felülírhatja.
Ha az alkalmazás újraindítása, azt látjuk, hogy nem feltűnő érvényesítés megszerezte.
Véleményem ennek eredményeként, hogy mindkét változat állványzat egy jó eszköz alkalmazási területei. Nagyon elégedett a lehetőséget, hogy bővítse. És arról, hogyan lehet felhasználni arra, hogy írjon a saját generátorral, megmondom legközelebb.
Szívesen :) választ.
1. valószínűleg nem egyedül. A pontos dátumot még nem lehet nevezni.
2. Röviden - jó, mert nem ismétli, olyan rossz, hogy néha meg kell tennie, hogy létrehozni és szerkeszteni egy kicsit másképp, és ez a megközelítés egy kicsit megáll, hogy vegye fel, és két részre néző (valójában már működik :)