SlideShare a Scribd company logo
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.htm
)
 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 3
http://msdn.microsoft.com/en-us/library/dd381412%28v=vs.98%
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í cesty
3. 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 projektu
File/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 projektu
5. 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 projektu
9. 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 projektu
10. 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
(UnobtrusiveJavaScriptEn
abled)
 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. ViewsWeb.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.NET
2. 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ům
Standardní 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 entit
ruč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 ano
CBH = 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 Express
Server=.SQLExpress;AttachDbFilename=[PATH]
[DB_FILE].mdf;Database=[DB_NAME];Trusted_C
onnection=Yes;
 SQL Server Express (App_Data)
Server=.SQLExpress;AttachDbFilename=
|DataDirectory|
[DB_FILE].mdf;Database=[DB_NAME];Trusted_C
onnection=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 MVC
http://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 …

More Related Content

Similar to ASP.NET MVC 3 and SQL Server interoperability overview [CZ]

INPTP Rekapitulace
INPTP Rekapitulace INPTP Rekapitulace
INPTP Rekapitulace
Jan Hřídel
 
ADO.NET
ADO.NETADO.NET
ADO.NET
Jan Hřídel
 
Rozšiřitelnost ASP.NET MVC
Rozšiřitelnost ASP.NET MVCRozšiřitelnost ASP.NET MVC
Rozšiřitelnost ASP.NET MVC
topascz
 
2007 Technologie Pro Tvorbu Java Enterprise Aplikací
2007 Technologie Pro Tvorbu Java Enterprise Aplikací2007 Technologie Pro Tvorbu Java Enterprise Aplikací
2007 Technologie Pro Tvorbu Java Enterprise Aplikací
Martin Ptáček
 
2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEE2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEE
Martin Ptáček
 
Lotus Notes 7
Lotus Notes 7Lotus Notes 7
Lotus Notes 7
Martin Humpolec
 
Petr Nikolas Prokop - Symfony framework (0. sraz přátel Symfony v Hradci Král...
Petr Nikolas Prokop - Symfony framework (0. sraz přátel Symfony v Hradci Král...Petr Nikolas Prokop - Symfony framework (0. sraz přátel Symfony v Hradci Král...
Petr Nikolas Prokop - Symfony framework (0. sraz přátel Symfony v Hradci Král...
Péhápkaři
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
danielkolman
 
Spusťte si existující VMware infrastrukturu v Cloudu bez jakékoliv změny
Spusťte si existující VMware infrastrukturu v Cloudu bez jakékoliv změnySpusťte si existující VMware infrastrukturu v Cloudu bez jakékoliv změny
Spusťte si existující VMware infrastrukturu v Cloudu bez jakékoliv změny
MarketingArrowECS_CZ
 
20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitněJiří Mareš
 
View5 technicka 2011
View5 technicka 2011View5 technicka 2011
View5 technicka 2011
Vladan Laxa
 
Jira Service Management Cloud best practice
Jira Service Management Cloud best practiceJira Service Management Cloud best practice
Jira Service Management Cloud best practice
Onlio
 
2010 Web Technologie 1
2010 Web Technologie 12010 Web Technologie 1
2010 Web Technologie 1
Martin Ptáček
 
ASP.NET - Make Web not War
ASP.NET - Make Web not WarASP.NET - Make Web not War
ASP.NET - Make Web not War
Aleš Roubíček
 
MoroSystems na ostravském CZJUGu o Apache Wicket
MoroSystems na ostravském CZJUGu o Apache WicketMoroSystems na ostravském CZJUGu o Apache Wicket
MoroSystems na ostravském CZJUGu o Apache Wicket
Tomáš Páral
 
Rozšiřitelnost ASP.NET MVC
Rozšiřitelnost ASP.NET MVCRozšiřitelnost ASP.NET MVC
Rozšiřitelnost ASP.NET MVC
topascz
 

Similar to ASP.NET MVC 3 and SQL Server interoperability overview [CZ] (20)

ASP.NET 3.5 / futures
ASP.NET 3.5 / futuresASP.NET 3.5 / futures
ASP.NET 3.5 / futures
 
TechEd 2014 - MVC5
TechEd 2014 - MVC5TechEd 2014 - MVC5
TechEd 2014 - MVC5
 
INPTP Rekapitulace
INPTP Rekapitulace INPTP Rekapitulace
INPTP Rekapitulace
 
ADO.NET
ADO.NETADO.NET
ADO.NET
 
Rozšiřitelnost ASP.NET MVC
Rozšiřitelnost ASP.NET MVCRozšiřitelnost ASP.NET MVC
Rozšiřitelnost ASP.NET MVC
 
2007 Technologie Pro Tvorbu Java Enterprise Aplikací
2007 Technologie Pro Tvorbu Java Enterprise Aplikací2007 Technologie Pro Tvorbu Java Enterprise Aplikací
2007 Technologie Pro Tvorbu Java Enterprise Aplikací
 
2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEE2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEE
 
Lotus Notes 7
Lotus Notes 7Lotus Notes 7
Lotus Notes 7
 
Petr Nikolas Prokop - Symfony framework (0. sraz přátel Symfony v Hradci Král...
Petr Nikolas Prokop - Symfony framework (0. sraz přátel Symfony v Hradci Král...Petr Nikolas Prokop - Symfony framework (0. sraz přátel Symfony v Hradci Král...
Petr Nikolas Prokop - Symfony framework (0. sraz přátel Symfony v Hradci Král...
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Spusťte si existující VMware infrastrukturu v Cloudu bez jakékoliv změny
Spusťte si existující VMware infrastrukturu v Cloudu bez jakékoliv změnySpusťte si existující VMware infrastrukturu v Cloudu bez jakékoliv změny
Spusťte si existující VMware infrastrukturu v Cloudu bez jakékoliv změny
 
20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně
 
View5 technicka 2011
View5 technicka 2011View5 technicka 2011
View5 technicka 2011
 
Jira Service Management Cloud best practice
Jira Service Management Cloud best practiceJira Service Management Cloud best practice
Jira Service Management Cloud best practice
 
TNPW2-2012-05
TNPW2-2012-05TNPW2-2012-05
TNPW2-2012-05
 
2010 Web Technologie 1
2010 Web Technologie 12010 Web Technologie 1
2010 Web Technologie 1
 
ASP.NET - Make Web not War
ASP.NET - Make Web not WarASP.NET - Make Web not War
ASP.NET - Make Web not War
 
MoroSystems na ostravském CZJUGu o Apache Wicket
MoroSystems na ostravském CZJUGu o Apache WicketMoroSystems na ostravském CZJUGu o Apache Wicket
MoroSystems na ostravském CZJUGu o Apache Wicket
 
Rozšiřitelnost ASP.NET MVC
Rozšiřitelnost ASP.NET MVCRozšiřitelnost ASP.NET MVC
Rozšiřitelnost ASP.NET MVC
 
QualysGuard InfoDay 2014 - WAS
QualysGuard InfoDay 2014 - WASQualysGuard InfoDay 2014 - WAS
QualysGuard InfoDay 2014 - WAS
 

ASP.NET MVC 3 and SQL Server interoperability overview [CZ]

  • 1. ASP.NET MVC3 a spolupráce s MS SQL Server Vítězslav Šimon
  • 2. 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
  • 3. 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.
  • 4. 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.htm )  Microsoft oficiálně dodává pouze svůj kód a schválený kód 3. strany.
  • 5. 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í
  • 6. 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
  • 7. 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)
  • 8. 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
  • 9. 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
  • 10. 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ů
  • 11. 24.02.2013 Vítězslav Šimon 11 ASP.NET MVC 3 http://msdn.microsoft.com/en-us/library/dd381412%28v=vs.98% ASP.NET MVC 3 Framework, Third Edition
  • 12. 24.02.2013 Vítězslav Šimon 12 Průběh zpracování požadavku Sarang Datye, http://www.dotnetbetaworks.com
  • 13. 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í cesty 3. 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
  • 14. 24.02.2013 Vítězslav Šimon 14 Struktura MVC3 projektu File/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)
  • 15. 24.02.2013 Vítězslav Šimon 15 Struktura MVC3 projektu 5. 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.
  • 16. 24.02.2013 Vítězslav Šimon 16 Struktura MVC3 projektu 9. 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.
  • 17. 24.02.2013 Vítězslav Šimon 17 Struktura MVC3 projektu 10. 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 (UnobtrusiveJavaScriptEn abled)  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. ViewsWeb.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
  • 18. 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.
  • 19. 24.02.2013 Vítězslav Šimon 19 Struktura MVC3 projektu
  • 20. 24.02.2013 Vítězslav Šimon 20 Struktura zdrojových souborů Controller (C#)
  • 21. 24.02.2013 Vítězslav Šimon 21 Struktura zdrojových souborů View (ASPX)
  • 22. 24.02.2013 Vítězslav Šimon 22 Struktura zdrojových souborů View (Razor)
  • 23. 24.02.2013 Vítězslav Šimon 23 Struktura zdrojových souborů View (Razor)
  • 24. 24.02.2013 Vítězslav Šimon 24 Struktura zdrojových souborů Global.asax.cs
  • 25. 24.02.2013 Vítězslav Šimon 25 Struktura zdrojových souborů web.config
  • 26. 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
  • 27. 24.02.2013 Vítězslav Šimon 27 Metody přístupu k datům v .NET 1. ADO.NET 2. Language Integrated Query (LinQ) 3. ORM rámec - Entity Framework
  • 28. 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ům Standardní funkce Model
  • 29. 24.02.2013 Vítězslav Šimon 29 Přístup k datům: ADO.NET Controller Manipulace (Utilization)
  • 30. 24.02.2013 Vítězslav Šimon 30 Přístup k datům: LinQ  LinQ to Objects, SQL, XML, DataSet
  • 31. 24.02.2013 Vítězslav Šimon 31 Přístup k datům: LinQ
  • 32. 24.02.2013 Vítězslav Šimon 32 Přístup k datům: LinQ Controller
  • 33. 24.02.2013 Vítězslav Šimon 33 Přístup k datům: Entity Framework
  • 34. 24.02.2013 Vítězslav Šimon 34 Přístup k datům: Entity Framework Controller
  • 35. 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í
  • 36. 24.02.2013 Vítězslav Šimon 36 Porovnání ADO.NET LinQ Entity Fr Kód entit ruč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 ano CBH = Code behind, kód generovaný na pozadí autogen. = automaticky generovaný, napsat jen volání
  • 37. 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 Express Server=.SQLExpress;AttachDbFilename=[PATH] [DB_FILE].mdf;Database=[DB_NAME];Trusted_C onnection=Yes;  SQL Server Express (App_Data) Server=.SQLExpress;AttachDbFilename= |DataDirectory| [DB_FILE].mdf;Database=[DB_NAME];Trusted_C onnection=Yes;  Více connection stringů (nejen pro Server 2008) na: http://www.connectionstrings.com/
  • 38. 24.02.2013 Vítězslav Šimon 38 Závěrečné informace  Budoucnost ASP.NET MVC  Zdroje  Doporučené zdroje pro zájemce
  • 39. 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
  • 40. 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/
  • 41. 24.02.2013 Vítězslav Šimon 41 Doporučené zdroje pro zájemce  Tutoriály k ASP.NET MVC http://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/

Editor's Notes

  1. MonoRail – od roku 2003, open source (zcela mimo Redmond), součást Castle projektu MonoRail byl prototypem pro ASP.NET MVC 1.0. Po vydání ASP.NET MVC 1.0 (a nástupnických) již o MonoRailu není (tak) slyšet.