Date post: | 11-Jan-2017 |
Category: |
Education |
Upload: | vitezslav-simon |
View: | 74 times |
Download: | 1 times |
ASP.NET MVC3 a spolupráce s MS SQL Server
Vítězslav Šimon
24.02.2013 Vítězslav Šimon 2
ASP.NET MVC3
Návrhový vzor MVC Obecné pojednání o MVC 3 Nedostatky ASP.NET WebForms Výhody Nevýhody Historie Novinky
24.02.2013 Vítězslav Šimon 3
MVC
MVC je návrhový vzor architektury, který rozděluje aplikační logiku do 3 prvků (Model, View, Controller)
Vzhledem ke své struktuře podporuje rychlý vývoj aplikací.
V případě testování nebo opravy chyby je možno se zaměřit jen na specifickou část aplikace.
24.02.2013 Vítězslav Šimon 4
ASP.NET MVC3
Postavena na návrhovém vzoru MVC Vychází z MS .NET Framework a MonoRail Alternativa k ASP.NET WebForms Odstraňuje nedostatky WebForms Zdrojový kód je překládán do formátu DLL Nutný .NET Framework verze 4.0 Microsoft Public License (Ms-PL,
http://www.opensource.org/licenses/ms-pl.html)
Microsoft oficiálně dodává pouze svůj kód a schválený kód 3. strany.
24.02.2013 Vítězslav Šimon 5
Nedostatky ASP.NET WebForms
Velikost ViewState Životní cyklus Web stránky (změny
na entitách v run time, PostBack) Nedotažené code behind Omezený přístup k částem HTML
kódu Abstrakce – neúplnost, omezení Horší možnosti testování
24.02.2013 Vítězslav Šimon 6
Výhody ASP.NET MVC3
MVC architektura Abstrakce základního kódu (.NET) Rozšiřitelnost (a nahraditelnost kódu) Testovatelnost (unit testy, OOP, průvodci) Striktní řízení HTML a HTTP (vrstva) ViewState není ve web stránce Routování Integrovaný jQuery Podpora AJAXu MVC3 může být s WebForms v 1 aplikaci
24.02.2013 Vítězslav Šimon 7
Nevýhody ASP.NET MVC3
Překotný vývoj si někdy vynutil (2.0 -> 3.0) zásadnější zásahy do kódu
Slabší podpora některých produktů třetích stran (TinyMCE)
24.02.2013 Vítězslav Šimon 8
Historie ASP.NET MVC3
Říjen 2007 - ALT.NET konference, Austin, Texas, viceprezident Microsoftu Scott Guthrie představil koncept nové platformy pro vývoj WA postavenou na MVC a jádru ASP.NET. Platforma byla od základů nově navržena s ohledem na rozvoj technologií (Ruby on Rails) a nedostatky WebForms.
2009 - ASP.NET MVC 1.0 2010 - ASP.NET MVC 2.0 (WebForms 4.0) 2011 - ASP.NET MVC 3.0
24.02.2013 Vítězslav Šimon 9
Novinky ASP.NET MVC3
Razor View Engine (v předchozích standardní ASPX stránky, má být výchozí pro budoucí vývoj) – lepší podpora JSON, JavaScriptu, jQuery
24.02.2013 Vítězslav Šimon 10
Implementační detaily
Aplikace MVC vzoru v MVC 3 Průběh zpracování požadavku Struktura MVC3 projektu Struktura zdrojových souborů
24.02.2013 Vítězslav Šimon 11
ASP.NET MVC 3http://msdn.microsoft.com/en-us/library/dd381412%28v=vs.98%29.aspx
ASP.NET MVC 3 Framework, Third Edition
24.02.2013 Vítězslav Šimon 12
Průběh zpracování požadavku
Sarang Datye, http://www.dotnetbetaworks.com
24.02.2013 Vítězslav Šimon 13
Průběh zpracování požadavku
1. Přijetí požadavku z prohlížeče
2. Určení cesty3. Aktivace
kontroleru a vyvolání jeho metody
4. Vyrenderování View s použitím obsahu ViewData
1
2
3
4
4
Sarang Datye, http://www.dotnetbetaworks.com
24.02.2013 Vítězslav Šimon 14
Struktura MVC3 projektuFile/New/Project…/Web/1. Properties –informace o
projektu, profilech pro překlad, informace o postupu nasazení.
2. References - seznam všech modulů (assembly), které aplikace požaduje pro svou činnost.
3. AppData – veškeré souborové datové zdroje (soubory databází na disku) se kterými aplikace pracuje (soubory na DB serveru jsou uloženy ve zvláštní složce)
4. Content – veškeré soubory týkající se obsahové části daného webu (CSS styly, obrázky, HTML stránky)
24.02.2013 Vítězslav Šimon 15
Struktura MVC3 projektu5. Controllers – veškeré
kontrolery, které zajišťují práci aplikace (logika zpracování akcí)
6. Models – veškeré modely, které reprezentují data v databázi, která má webová aplikace řídit.
7. Scripts – veškeré Java (a jiné) scripty, které jsou v programu využity.
8. Views – složka obsahující položky s názvy kontrolerů a v nich jsou umístěny Razor šablony (cshtml) pro zobrazování dat zaslaných akcemi kontroleru koncovému uživateli v žádoucí formátu.
24.02.2013 Vítězslav Šimon 16
Struktura MVC3 projektu9. Global.asax(.cs) –
obsahuje odkaz na code behind soubor, název code behind třídy a jazyk daného kódu. Dále obsahuje nastavení chybových filtrů, routování (podle něj se zpracovávají URL a určuje se poté, který kontroler (a jeho funkce) bude danou akci zpracovávat). Volitelně může obsahovat i další věci, například reakci na chybu v aplikaci.
24.02.2013 Vítězslav Šimon 17
Struktura MVC3 projektu10. Web.config – obsahuje
řadu konfiguračních voleb:
Seznam databázových zdrojů a jejich specifických jmen pro aplikaci (sekce connectionStrings)
Nastavení fungování JavaScriptu (UnobtrusiveJavaScriptEnabled)
Nastavení validace na straně klienta (ClientValidationEnabled)
Nastavení kulturních zvyklostí (system.web -> globalization culture)
Seznam přidaných modulů (aplikací a knihoven, (assembly)).
Seznam přidaných jmenných prostorů (Namespaces)
Nastavení způsobu přihlašování a rolí
Konfiguraci Webového serveru (IIS)
11. Views\Web.config - obsahuje řadu konfiguračních voleb zaměřených především na práci se šablonami:
Seznam přidaných jmenných prostorů (Namespaces)
Seznam HTTP handlerů (pravidla pro postup při zpracování URL při přístupu do složky Views)
Volby Razor View Engine
24.02.2013 Vítězslav Šimon 18
Struktura MVC3 projektu
Části 3 – 8 jsou adresáře na disku, které jsou uloženy v adresáři projektu.
Ve výchozím nastavení jsou části 5 a 6 součástí překladu, část 8 (Views) je interpetována a poté částečně překládána do paměti.
Pohled na soubory projektu na disku je na následujícím obrázku.
24.02.2013 Vítězslav Šimon 19
Struktura MVC3 projektu
24.02.2013 Vítězslav Šimon 20
Struktura zdrojových souborůController (C#)
24.02.2013 Vítězslav Šimon 21
Struktura zdrojových souborůView (ASPX)
24.02.2013 Vítězslav Šimon 22
Struktura zdrojových souborůView (Razor)
24.02.2013 Vítězslav Šimon 23
Struktura zdrojových souborůView (Razor)
24.02.2013 Vítězslav Šimon 24
Struktura zdrojových souborůGlobal.asax.cs
24.02.2013 Vítězslav Šimon 25
Struktura zdrojových souborůweb.config
24.02.2013 Vítězslav Šimon 26
ASP.NET MVC3 a MS SQL Server
Metody přístupu k datům v .NET Framework
Connection strings SQL Server 2008 Entity Framework
24.02.2013 Vítězslav Šimon 27
Metody přístupu k datům v .NET
1. ADO.NET2. Language Integrated Query (LinQ)3. ORM rámec - Entity Framework
24.02.2013 Vítězslav Šimon 28
Přístup k datům: ADO.NET
Musí být napsán kód pro (od/při)pojené prostředí; System.Data.Common
–> vlastní vrstva přístupu k datůmStandardní funkce Model
24.02.2013 Vítězslav Šimon 29
Přístup k datům: ADO.NET
Controller
Manipulace(Utilization)
24.02.2013 Vítězslav Šimon 30
Přístup k datům: LinQ
LinQ to Objects, SQL, XML, DataSet
24.02.2013 Vítězslav Šimon 31
Přístup k datům: LinQ
24.02.2013 Vítězslav Šimon 32
Přístup k datům: LinQ
Controller
24.02.2013 Vítězslav Šimon 33
Přístup k datům: Entity Framework
24.02.2013 Vítězslav Šimon 34
Přístup k datům: Entity Framework
Controller
24.02.2013 Vítězslav Šimon 35
Entity Framework
Automatizovaně generovaný, dynamický rámec ORM
Na pozadí vygeneruje dotaz, převezme výsledek a převede jej do kolekcí instancí tříd reprezentujících data.
Zpomalení kvůli dynamickému generování dotazu je kompenzováno metodami: Connection pooling, Lazy load, cílený UPDATE, explicitní uzamykání, úrovně izolace transakcí
24.02.2013 Vítězslav Šimon 36
Porovnání
ADO.NET LinQ Entity Fr
Kód entitručně / Class
Diagram
LinQ Diagram+ CBH
Entity Diagram + CBH
Kód práce s daty ručně autogen. autogen.Data v objektech ručně ano anoCBH = Code behind, kód generovaný na pozadíautogen. = automaticky generovaný, napsat jen volání
24.02.2013 Vítězslav Šimon 37
Connection strings SQL Server 2008 Standard Security
Server=[SERVER_IP_ADDRESS];Database=[DB_NAME];User Id=[USER_NAME];Password=[PASSWORD];
SQL Server ExpressServer=.\SQLExpress;AttachDbFilename=[PATH]\[DB_FILE].mdf;Database=[DB_NAME];Trusted_Connection=Yes;
SQL Server Express (App_Data)Server=.\SQLExpress;AttachDbFilename=|DataDirectory|[DB_FILE].mdf;Database=[DB_NAME];Trusted_Connection=Yes;
Více connection stringů (nejen pro Server 2008) na: http://www.connectionstrings.com/
24.02.2013 Vítězslav Šimon 38
Závěrečné informace
Budoucnost ASP.NET MVC Zdroje Doporučené zdroje pro zájemce
24.02.2013 Vítězslav Šimon 39
Budoucnost ASP.NET MVC
26.10.2012 vydána ASP.NET MVC 4 Beta Zapouzdření a minimalizace (konstrukce <script
src=„scripts/js„></script>, podobně CSS) DB migrace – novější EF Web API – platforma pro HTTP RESTful služby a HTTP
APIs Web pro mobilní zařízení – adaptivní renderování
(CSS), módy zobrazení (dle zařízení), šablony pro mobilní zařízení (jQuery mobile)
Vylepšení Razoru – posíleno zapouzdření HTML Web sockets a asynchronní komunikace –
konstrukty: public async [metoda] { … result = await [inst.metoda]Async(…); }
http://scottgu.blob.core.windows.net/files/ASP.NET_MVC_4.pptx
24.02.2013 Vítězslav Šimon 40
Zdroje
A. Freeman, S. Sanderson: Pro ASP.NET MVC 3 Framework, Third Edition, Apress, 2011 ISBN-13 (pbk.): 978-1-4302-3404-3 ISBN-13 (electr.): 978-1-4302-3405-0 www.apress.com
www.asp.net/mvc/
24.02.2013 Vítězslav Šimon 41
Doporučené zdroje pro zájemce
Tutoriály k ASP.NET MVChttp://www.asp.net/mvc/tutorials
Guthrie, Scott, http://weblogs.asp.net/scottgu/
GALLOWAY, Jon, http://weblogs.asp.net/jgalloway/
HANSELMAN, Scott, http://www.hanselman.com/blog/
WILSON, Brad, http://bradwilson.typepad.com/blog/
Děkuji za pozornost.
Prostor pro dotazy …