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

Post on 11-Jan-2017

74 views 1 download

transcript

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/

Děkuji za pozornost.

Prostor pro dotazy …