![Page 1: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/1.jpg)
ASP.NET MVC3 a spolupráce s MS SQL Server
Vítězslav Šimon
![Page 2: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/2.jpg)
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
![Page 3: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/3.jpg)
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.
![Page 4: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/4.jpg)
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.
![Page 5: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/5.jpg)
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í
![Page 6: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/6.jpg)
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
![Page 7: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/7.jpg)
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)
![Page 8: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/8.jpg)
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
![Page 9: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/9.jpg)
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
![Page 10: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/10.jpg)
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ů
![Page 11: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/11.jpg)
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
![Page 12: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/12.jpg)
24.02.2013 Vítězslav Šimon 12
Průběh zpracování požadavku
Sarang Datye, http://www.dotnetbetaworks.com
![Page 13: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/13.jpg)
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
![Page 14: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/14.jpg)
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)
![Page 15: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/15.jpg)
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.
![Page 16: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/16.jpg)
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.
![Page 17: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/17.jpg)
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
![Page 18: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/18.jpg)
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.
![Page 19: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/19.jpg)
24.02.2013 Vítězslav Šimon 19
Struktura MVC3 projektu
![Page 20: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/20.jpg)
24.02.2013 Vítězslav Šimon 20
Struktura zdrojových souborůController (C#)
![Page 21: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/21.jpg)
24.02.2013 Vítězslav Šimon 21
Struktura zdrojových souborůView (ASPX)
![Page 22: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/22.jpg)
24.02.2013 Vítězslav Šimon 22
Struktura zdrojových souborůView (Razor)
![Page 23: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/23.jpg)
24.02.2013 Vítězslav Šimon 23
Struktura zdrojových souborůView (Razor)
![Page 24: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/24.jpg)
24.02.2013 Vítězslav Šimon 24
Struktura zdrojových souborůGlobal.asax.cs
![Page 25: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/25.jpg)
24.02.2013 Vítězslav Šimon 25
Struktura zdrojových souborůweb.config
![Page 26: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/26.jpg)
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
![Page 27: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/27.jpg)
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
![Page 28: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/28.jpg)
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
![Page 29: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/29.jpg)
24.02.2013 Vítězslav Šimon 29
Přístup k datům: ADO.NET
Controller
Manipulace(Utilization)
![Page 30: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/30.jpg)
24.02.2013 Vítězslav Šimon 30
Přístup k datům: LinQ
LinQ to Objects, SQL, XML, DataSet
![Page 31: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/31.jpg)
24.02.2013 Vítězslav Šimon 31
Přístup k datům: LinQ
![Page 32: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/32.jpg)
24.02.2013 Vítězslav Šimon 32
Přístup k datům: LinQ
Controller
![Page 33: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/33.jpg)
24.02.2013 Vítězslav Šimon 33
Přístup k datům: Entity Framework
![Page 34: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/34.jpg)
24.02.2013 Vítězslav Šimon 34
Přístup k datům: Entity Framework
Controller
![Page 35: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/35.jpg)
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í
![Page 36: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/36.jpg)
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í
![Page 37: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/37.jpg)
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/
![Page 38: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/38.jpg)
24.02.2013 Vítězslav Šimon 38
Závěrečné informace
Budoucnost ASP.NET MVC Zdroje Doporučené zdroje pro zájemce
![Page 39: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/39.jpg)
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
![Page 40: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/40.jpg)
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/
![Page 41: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/41.jpg)
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/
![Page 42: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]](https://reader035.vdocuments.pub/reader035/viewer/2022070515/5875d6b11a28ab8f438b65d5/html5/thumbnails/42.jpg)
Děkuji za pozornost.
Prostor pro dotazy …