31
ASP.NET Csala Péter ELTE - IK [email protected] http://csalapeter.spaces.live.com 2.0 és 3.5 közötti különbségek 3.5

2 11 12 13 KETTŐŐ + EGY Comming Soon Comming Soon

Embed Size (px)

Citation preview

Page 1: 2 11 12 13 KETTŐŐ + EGY Comming Soon Comming Soon

ASP.NET

Csala PéterELTE - [email protected]://csalapeter.spaces.live.com

2.0 és 3.5 közötti különbségek

3.5

Page 2: 2 11 12 13 KETTŐŐ + EGY Comming Soon Comming Soon

2

TartalomAdatelérés

Új vezérlők

AJAX

SP1 nyúzságok

Page 3: 2 11 12 13 KETTŐŐ + EGY Comming Soon Comming Soon

Adatelérés ADO.NET 2.0-valGuid aid = Guid.Empty;SqlConnection MySqlConnection = Helper.GetConnectionStrings();using (MySqlConnection)using (SqlCommand MySqlCommand = MySqlConnection.CreateCommand()){ MySqlCommand.CommandText = "Select ID From Articles Where Title Like

@title"; MySqlCommand.Parameters.Add("@title", SqlDbType.NText, 200); MySqlCommand.Parameters["@title"].Value = "DataAccess with ADO.NET 2.0"; try { MySqlConnection.Open(); aid = new Guid(MySqlCommand.ExecuteScalar().ToString()); } catch (SqlException sexp) { ExceptionManager.SqlExpectionHandling(sexp.Message,sexp.ErrorCode); } finally { MySqlConnection.Close(); }}

ConnectionString elkérése Connection és Command objektum using-olása

Skalár érték lekérdése külön függvénnyel

Kivé

tel k

ezel

és

Paraméteres lekérdezés használata az SQL

Injection ellen

Page 4: 2 11 12 13 KETTŐŐ + EGY Comming Soon Comming Soon

Adatelérés ADO.NET 3.5-telPortalDataContext pdc = new PortalDataContext();

var newguid = (from article in pdc.Articles where article.Title == "Data Access with ADO.NET 3.5" select new Guid(article.Id)).First();

string url = String.Format("ShowArticle.aspx?ID={0}", newguid.ToString());

LINQ TO SQLLINQ TO ORACLELINQ TO MYSQL

LINQ TO DATASETLINQ TO ENTITIES

LINQ TO ANYTHING

Page 5: 2 11 12 13 KETTŐŐ + EGY Comming Soon Comming Soon

LINQ alapokLanguage INtegtated Query

Nyelvbe ágyazott lekérdezés

http://en.wikipedia.org/wiki/Linq

OO (objektum orientált) elgondolás ihlette

Relációs adatbázisok, táblák objektumokra való leképezése

Előnyei• Kényelmesebb• „Kevesebbet” kell tudnunk magáról az adatbázisról• Biztonságosabb(?) – jó kérdés • Sémák miatt erősen típusosan működik• Nem kell külön BO-kal (busniess object) szenvedni• Hasonló a szintakszisa az összes Linq provider-nek (könnyebb kezelhetőség,

átjárhatóság)• Könnyen kibővíthető, pl.: Linq 2 AD

Page 6: 2 11 12 13 KETTŐŐ + EGY Comming Soon Comming Soon

Linq alapok - Architektúra

Page 7: 2 11 12 13 KETTŐŐ + EGY Comming Soon Comming Soon

Linq egy ORM technológia

Object Relation Mapping

Relációs adatbázisok leképezése az objektumok világába

Employees Table vs List<Employee> • OOP rulezz!!!

Adattábla egy rekordja Egy Entitiás

DB adattípus .NET adattípus

Megszorítások Validáció

Page 8: 2 11 12 13 KETTŐŐ + EGY Comming Soon Comming Soon

Linq alapok - leképezésAdatbázist + a kapcsolatot egy DataContext nevű osztálynak feleltetjük meg

Az adattáblák rekordjaiból entitások lesznek (entity)• Mezők tulajdonságként jelennek meg• .NET típusrendszer

Tárolt eljárások, függvények szintén leképeződnek a .NET világába• Nézetek?

Relációban lévő táblák esetén tulajdonságokon keresztül lehet egymásra keresztbehivatkozni

Változáskövetés (objektum gráf) • kikapcsolása esetén csak lekérdezés!

Sajátos szintaktikája van, de hasonlít az SQL-re (from, where, select sorrend)

Page 9: 2 11 12 13 KETTŐŐ + EGY Comming Soon Comming Soon

Linq alapok – Modell létrehozása

1.) egy Linq To Sql Classes fájlt (dbml-t) létre kell hozni!

2.) Drag & Drop módszerrel be kell húzni a megfelelő táblá(ka)t a Server Explorer-ből

3.) Ennyi!!!

Page 10: 2 11 12 13 KETTŐŐ + EGY Comming Soon Comming Soon

Linq alapok - szintaxis

From, Where, Select itt a sorrend azért, hogy a where-nél legyen IntelliSence!!

Select * From Videos-nak felel meg

Var != nem típusos, épp ellenkezőleg• Jelenesetben ez egy IQueryable<Video> lesz

Lehet anonim típusokat is létrehozni• pl.: select new {Title=v.Title, Url = v.MediaUrl};• emiatt használjuk a var-t

A végén lehet belőle tömböt, vagy akár generikus listát (List<>) is készíteni

var q = from v in vdc.Videos select v;

Page 11: 2 11 12 13 KETTŐŐ + EGY Comming Soon Comming Soon

11

demodemo

Linq To SQL

Page 12: 2 11 12 13 KETTŐŐ + EGY Comming Soon Comming Soon

12

demodemo

Linq To XML (RSS)

Page 13: 2 11 12 13 KETTŐŐ + EGY Comming Soon Comming Soon

13

TartalomAdatelérés

Új vezérlők

AJAX

SP1 nyúzságok

Page 14: 2 11 12 13 KETTŐŐ + EGY Comming Soon Comming Soon

KETTŐŐ+ EGY

Comming Soon

Page 15: 2 11 12 13 KETTŐŐ + EGY Comming Soon Comming Soon

ListView

Sablon alapú vezérlő (Template-driven control)

Teljes kontrollt kapunk a generált HTML kód felett

DataList + Repeater összegyúrva

LayoutTemplate-et, illetve az ItemTemplate-et mindenféleképpen kötelező megadni!!!

LayoutTemplate: alap elrendezés • Pl.: <table>, <ul>, stb.• El kell benne helyezni egy PlaceHolder-t, ahova majd

kerülni fognak az elemek

ItemTemplate: hogyan nézzen ki egy adott elem

Page 16: 2 11 12 13 KETTŐŐ + EGY Comming Soon Comming Soon

ListView + Sort

Header-ben el kell helyezni LinkButton-okat

CommandName = Sort

CommandArgument = PropertyName

És már használhatjuk is

COOOL

Page 17: 2 11 12 13 KETTŐŐ + EGY Comming Soon Comming Soon

DataPager

„Univerzális” lapozó• Minden vezérlővel használható, ami megvalósítja az

IPageableItemContainer interfészt• Alapból csak a ListView tudja ezt

3féle lapozási lehetőség• NextPreviousPageField• NumericPagerField• TemplatePagerField

• MaximumRows, StartIndexRow, TotalRowCount• Read-only-k

Elhelyezhető akár a ListView LayoutTemplate-jén belül is!!!

Page 18: 2 11 12 13 KETTŐŐ + EGY Comming Soon Comming Soon

DataPager + ListView + ACT

http://mattberseth.com/blog/2007/12/data_navigation_with_the_listv.html

Page 19: 2 11 12 13 KETTŐŐ + EGY Comming Soon Comming Soon

demodemo

Listázzunk ki valamit!!!

Page 20: 2 11 12 13 KETTŐŐ + EGY Comming Soon Comming Soon

20

TartalomAdatelérés

Új vezérlők

AJAX

SP1 nyúzságok

Page 21: 2 11 12 13 KETTŐŐ + EGY Comming Soon Comming Soon

AJAX (Extension) + MS Ajax Library

Asynchronous JavaScript and XML

XmlHttpRequest + JavaScript + DHTML

„Az aszinkronítás ma már nem extra funkció, hanem alapkövetelmény egy webalkalmazásnál”

„villanás mentes weboldal”

Aszinkron tudunk szerver oldali kódokat futtatni

Rich Internet Application (RIA) – Silverlight???http://www.msdnkk.hu/Pages/InduloKeszlet/AJAX/

Page 22: 2 11 12 13 KETTŐŐ + EGY Comming Soon Comming Soon

AJAX használata

ScriptManager-t minden oldal tetejére kell• Vagy MasterPage-nél ScriptManagerProxy

UpdatePanel-lel kell körülvenni az aszinkron módon frissíteni kívánt terület• ContentTemplate = tartalom• Triggers = milyen események hatására frissüljön

UpdateProgress = Felhasználó értesítése arról, hogy dolgozunk

Page 23: 2 11 12 13 KETTŐŐ + EGY Comming Soon Comming Soon

demodemo

AJAX

Page 24: 2 11 12 13 KETTŐŐ + EGY Comming Soon Comming Soon

Community Project (MS + külsősök)

+35 „vezérlő”

Az ACT-ben lévő vezérlő típusok:• Extender

• Egy meglévő vezérlő funkcionalitását bővíti ki• TargetControlID a kapocs

• Control• Ön magában is használható (pl.: Rating)

http://www.asp.net/ajax/ajaxcontroltoolkit/samples/

http://devportal.hu/groups/aspnet/pages/ajax-control-toolkit.aspx - 25 ACT-s cikk

Page 25: 2 11 12 13 KETTŐŐ + EGY Comming Soon Comming Soon

demodemo

ACT

Page 26: 2 11 12 13 KETTŐŐ + EGY Comming Soon Comming Soon

27

TartalomAdatelérés

Új vezérlők

AJAX

SP1 nyúzságok

Page 28: 2 11 12 13 KETTŐŐ + EGY Comming Soon Comming Soon

Új technológiák

ASP.NET Dynamic Data

ASP.NET Routing

ASP.NET Ajax History

ASP.NET Ajax Script combining

ADO.NET DataService

ADO.NET Entity Framework

(ASP.NET MVC preview)

( - lesz róla ma szó!)

Page 29: 2 11 12 13 KETTŐŐ + EGY Comming Soon Comming Soon

Hogyan tovább???

http://www.asp.net/learn/3.5-videos/

http://www.asp.net/learn/ajax-videos/

http://www.asp.net/learn/3.5-SP1/

Page 30: 2 11 12 13 KETTŐŐ + EGY Comming Soon Comming Soon

Kérdések és válaszok

0. kérdésMi a Pi 100. számjegye (99. a vessző után)?3.1415926535 8979323846 2643383279 5028841971 6939937510 5820974944 5923078164 0628620899 8628034825 3421170679

1. kérdésMinek a rövidítése a LINQ (, illetve minek az ORM)?

2. kérdésMiért jók az Extender-ek?

Page 31: 2 11 12 13 KETTŐŐ + EGY Comming Soon Comming Soon

© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.

The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after

the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.