2 11 12 13 kettŐŐ + egy comming soon comming soon
TRANSCRIPT
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
2
TartalomAdatelérés
Új vezérlők
AJAX
SP1 nyúzságok
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
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
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
Linq alapok - Architektúra
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ó
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)
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!!!
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;
11
demodemo
Linq To SQL
12
demodemo
Linq To XML (RSS)
13
TartalomAdatelérés
Új vezérlők
AJAX
SP1 nyúzságok
KETTŐŐ+ EGY
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
ListView + Sort
Header-ben el kell helyezni LinkButton-okat
CommandName = Sort
CommandArgument = PropertyName
És már használhatjuk is
COOOL
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!!!
DataPager + ListView + ACT
http://mattberseth.com/blog/2007/12/data_navigation_with_the_listv.html
demodemo
Listázzunk ki valamit!!!
20
TartalomAdatelérés
Új vezérlők
AJAX
SP1 nyúzságok
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/
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
demodemo
AJAX
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
demodemo
ACT
27
TartalomAdatelérés
Új vezérlők
AJAX
SP1 nyúzságok
.NET 3.5 + VS08 SP1
.NET 3.5 SP1• http://www.microsoft.com/downloads/details.aspx?
FamilyId=AB99342F-5D1A-413D-8319-81DA479AB0D7&displaylang=en
• 831mb
VS08 SP1• http://www.microsoft.com/downloads/details.aspx?
FamilyId=FBEE1648-7106-44A7-9649-6D9F6D58056E&displaylang=en
• 231mb
Videók• http://www.asp.net/learn/3.5-SP1/
Ú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ó!)
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/
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?
© 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.