+ All Categories
Home > Education > ASP.NET MVC 3 and SQL Server interoperability overview [CZ]

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

Date post: 11-Jan-2017
Category:
Upload: vitezslav-simon
View: 74 times
Download: 1 times
Share this document with a friend
42
ASP.NET MVC3 a spolupráce s MS SQL Server Vítězslav Šimon
Transcript
Page 1: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]

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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

24.02.2013 Vítězslav Šimon 19

Struktura MVC3 projektu

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

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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

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 42: ASP.NET MVC 3 and SQL Server interoperability overview [CZ]

Děkuji za pozornost.

Prostor pro dotazy …


Recommended