Title: ASP'NET Whidbey
1ASP.NET Whidbey
- Overview van vernieuwingen voor web applicaties
in .NET Framework
2Agenda
- Visual Studio.NET Whidbey
- ASP.NET Whidbey en Page Framework
- Master Pages
- Data Sources en Controls
- Site navigatie
- Membership en roles management
- Personalization
- Themes
- Nieuwe controls
3Tools
Client Application Model
Web Service Application Model
Data Systems Application Model
Mobile PC Devices Application Model
Command Line
Compact Framework
System.Console
Win FS
Yukon
Mobile PC Optimized
Avalon
Windows Forms
ASP.NET / Indigo
NT Service
System.Web
System.Windows
System.Windows.Forms
System.Storage
System.Data.SqlServer
System.Windows
System.Windows.Forms
System.ServiceProcess
Communication
Data
Presentation
System.Collaboration
System.Discovery
System.Search
System.Data
System.Messaging
System.Windows
DataSet
SqlClient
RealTimeEndpoint
UI Element
Explorer
Media
Annotations
System.DirectoryServices
ActiveDirectory
Mapping
SqlTypes
TransientDataSession
Animation
Controls
Documents
System.Remoting
Monitoring
SignalingSession
ObjectSpaces
SqlXML
Controls
Dialogs
Text Element
System.Runtime.Remoting
Uddi
Logging
Media
ObjectSpace
OdbcClient
Control
SideBar
Shapes
Relevance
Activities
Query
OleDbClient
Panel
Notification
Shape
Navigation
Schema
System.Web.Services
Design
Ink
OracleClient
System.MessageBus
Transport
Queue
Web.Service
System.Storage
Port
System.Web.UI
PubSub
System.Windows.Forms
Description
Item
Core
Channel
Router
Page
WebControls
Forms
Discovery
Relationship
Contact
Service
Policy
Control
Control
Adaptors
Protocols
Media
Location
Peer Group
Print Dialog
HtmlControls
Design
Audio
Message
Design
MobileControls
Video
Document
System.Net
System.Web
Images
Event
HttpWebRequest
NetworkInformation
System.Help
System.Speech
Personalization
System.Xml
FtpWebListener
Sockets
System.Drawing
Recognition
Synthesis
Caching
Schema
Xpath
SslClientStream
Cache
SessionState
System.NaturalLanguageServices
Serialization
Query
WebClient
Fundamentals
Security
Base Application Services
Configuration
Deployment/Management
System.Web.Configuration
System.Timers
System.Text
System.Windows.TrustManagement
System.Collections
System.Web
System.Security
System.Globalization
System.Design
System.MessageBus.Configuration
Generic
Administration
Authorization
Permissions
System.Web.Security
System.Serialization
System.IO
System.Configuration
Management
System.ComponentModel
AccessControl
Policy
System.Threading
Ports
System.Resources
System.CodeDom
System.MessageBus.Security
Credentials
System.Management
Principal
System.Runtime
System.Reflection
Cryptography
System.Deployment
Token
System.EnterpriseServices
InteropServices
Serialization
System.Diagnostics
System.Transactions
CompilerServices
4Richting van ASP.NET
- Verhogen van productiviteit van programmeur
- Meer met minder code (70 van code uit ASP.NET)
- Zero-code scenarios via out-of-the-box features
- Uitbreidbaarheid
- Services en ingebouwde features zijn aan te
passen of te vervangen - Eenvoudigere administratie en management
- Performance en schaalbaarheid
- 100 backward compatibiliteit
5Visual Studio.NET features
- Overal IntelliSense
- Client-side script, web.config, XML, HTML, CSS,
ASP.NET directives, - Inline en code-beside server-side code
- Eigen web-server (net als Cassini)
- Geen IIS vereist op ontwikkelmachine (wel
ondersteund) - localhost met random poortnummer
- Behoud en validatie van HTML Source
- Toevoegen van controls in Source View
- Nieuwe manieren om eventhandlers toe te voegen
- In code-beside
- Inline
- Smart Tags voor controls
- Beta Collapsable sections en tag navigator
6ASP.NET 2.0 Developer Stack
Membership
Role Manager
Personalization
Site Navigation
Management
Database Caching
7ASP.NET 2.0 Developer Stack
Membership
Role Manager
Personalization
Site Navigation
Management
Database Caching
Provider Model Design Pattern
Windows
SQL Server
Custom
JET (Access)
8ASP.NET 2.0 Developer Stack
9ASP.NET 2.0 Developer Stack
10ASP.NET 2.0 Developer Stack
Master Pages
Themes/Skins
Adaptive UI
11Site anatomie
- Sites nu te openen vanuit willekeurige folder
- Geen .vbproj of .csproj file meer nodig
- Support voor IIS, file systeem, FPSE en FTP
- Nieuwe projecttypen voor websites
- Intranet, Internet, Website, Web Service, Empty
- Dedicated folders
- Code automatische compilatie van .cs, .xsd,
.wsdl enz. via Compilation Build Providers - Themes
- Compilatie per pagina
- Geen project assembly meer
12DEMO
- Rondleiding
- Visual Studio.NET
13ASP.NET features
- Configuration
- ASP.NET Web Application Administration
- System.Web.Configuration namespace
- Configuration en WebConfigurationSectionGroup
klasse - Programmatisch aanpassen van web.config
- URL rewriting
- lturlMappinggt sectie in web.config
- Verplaatsen van URL's zonder 404 errors
- Mooie URL's definiëren i.p.v. lelijke
querystrings
14Nieuwe page framework
- Code-behind is uit, Code-beside is in
- Partial classes vullen .aspx gegenereerde code
aan - Nieuwe _at_page directive attributenCompilesWith
en ClassName - Nieuwe page events
- Pre en Complete voor Init, Load, Render
- Nieuwe page properties en methoden
- Page.Items voor doorgeven van objecten en values
- Page.GetValidators("Groepnaam")
15Nieuwe page framework (2)
- Cross-page postings
- Button, ImageButton, LinkButton postTargetUrl
- Ontvangende pagina kan controls van postende
pagina benaderen_at_PreviousPage
virtualPath"sender.aspx" gt - Context.PreviousHandler en .CurrentHandler
- Page.IsCrossPagePostBack naast IsPostBack
- Client Scripting
- Veel nieuwe Register methoden
- RegisterClientScriptInclude, RegisterClientScriptR
esource - Boolean argument voor toevoegen ltscriptgt tags
- Client Callback
- Via XMLHTTP object voor IE5.5 en NS6.0
16Deployment
- Precompilatie van website
- In-place pre-compilationvia url
http//server/app/precompile.axd - Pre-compilation voor deploymentGebruik van
command-line compiler aspnet_compiler.exe - Beta Nieuwe publish feature
- Ook via FTP publishen van websites
17Master pages
- Eenvoudig maken van templates voor paginas
- Master page bepaalt layout en default content
voor andere webpaginas - ContentPlaceHolder controls bepalen plekken waar
pagina content wordt geplaatst - .master extensie voor master pages
- Content paginas bevatten variable content
- Alleen content binnen Content controls
- lt _at_page master/mymaster.master gt
- Page.Master property refereert master page
(inclusief controls) - Nesting van master pages mogelijk
- Designer support voor werken met master en
content paginas in VS.NET
18DEMO
- Werken met
- Master pages
- Content pages
19Data Sources Controls
- Representeren verschillende typen databronnen
- Access-, Sql-, DataSet-, Xml-, SiteMap-,
ObjectDataSource - Krachtige mogelijkheden voor data
- Sorteren, bladeren, data bewerken
- Bevatten tabel of hierarchische data
- Minder kennis van page-lifecycle meer nodig
- Controls worden geboden op juiste moment
- DataSource en DataBind kunnen nog steeds gebruikt
worden - Cachingopties voor meeste sources
- Cache-invalidation via SQL Server Yukon
Notifications - Eigen data sources ontwikkelen
20Data Controls
- Naast bestaande ook nieuwe controls
- GridView (aka SmartGrid)
- DetailsView
- TreeView
- Aanzienlijk minder code nodig
- Grote hoeveelheid events per control
- Nieuwe data-bound controls kunnen databewerkingen
van Data Source controls gebruiken - Data Sources kunnen parameters bevatten voor CRUD
operaties - Parameters kunnen uit externe waarden komen
- QueryString, Control, Session, Form, Cookie,
21Nieuwe data-bound controls
- GridView
- Verbeterde versie van DataGrid minder code
- Sorteren, bladeren, selecteren, bewerken
- Nieuwe templates NullTemplate, PagerTemplate
- DetailsView
- Geeft enkel record weer
- Bladeren, bewerken
- Treeview
- Kan hierarchische data weergevenXmlDataSource of
SiteMapDataSource - Client-side population voor downloaden van tree
content in delen
22DEMO
- Werken met
- SqlDataSource control
- GridView control
- DetailsView control
23Site navigatie
- Speciale file app.sitemap bevat hierarchische set
van ltsiteMapNodegt elementen - SiteMapDataSource gebruikt app.sitemap file
- TreeView control ideaal voor weergave map
- Nieuwe Breadcrumb control
- Positie/navigatiepad naar page binnen hierarchy
- Aanpasbaar via viertal templatesNode,
CurrentNode, RootNode en PathSeparator - SiteMap class en SiteMapNode classes voor
programmatische access van sitemap - Custom attributen van ltsiteMapNodegt uit te lezen
24DEMO
- Werken met
- Breadcrumb control
- Treeview control
- SiteMapDataSource
25Security Services Stack
Membership
Role Manager
26Membership management
- Administratie van gebruikers
- Aanvulling op authentication via Windows of Forms
- Oplossing voor opslag van credentials van
gebruikers - Secure opslag hashed wachtwoord (met salt)
- Geen complexe authenticatie en security code meer
- Provider design pattern
- Twee providers aanwezig AccessProvider en
SQLProvider - Maak eigen providers, bijvoorbeeld OracleProvider
- Administratie van gebruikers
- Online tool http//localhost/app/webadmin.axd
27Membership management (2)
- Ondersteuning voor anonymous users
- Activeren in web.configltanonymousIdentification
enabled"true" /gt - Ontvangen een GUID in cookie this.Request.Anonymo
usId - Belangrijkste klassen uit Membership API
- Membership
- CreateUser, UpdateUser
- ValidateUser
- GetUser, GetAllUsers
- GetNumberOfUsersOnline
- MembershipUser
- ChangePassword, GetPassword, ResetPassword
28DEMO
- Werken met
- Web Tool ASP.NET Configuration
29Security controls
- Login control
- Kant en klaar login formulier
- Autoformat voor styles
- Veel properties, maar ook templatable
- LoginStatus control
- Geeft hyperlink voor in- of uitloggen
- LoginName control
- Toont naam van ingelogde gebruiker
- LoginView control
- Toont Anonymous of LoggedIn template op basis
status - Eigen templates op basis van role membership
- PasswordRecovery control
30DEMO
- Werken met
- Security Controls
- Login
- LoginView
- LoginStatus
31Role management
- Mappen van users naar rollen
- Zelfde providers Access en SQL Server
- Ook via online tool te beheren of via API
- Statische methoden van Roles en RolePrincipal
class - Roles en users zijn strings
- Rolebased navigatie
- Beta SiteMapNode kan roles attribute hebben met
rollen die node mogen zien - Rolebased templates in LoginView
- Configuratie van SQL Server via aspnet_regsql.exe
tool - Caching van roles in encrypted cookie of in-memory
32Personalisatie
- Opslag van gebruiker-gerelateerde data
- Mogelijkheden tot aanpassen van pagina
- Profiel bevat eigenschappen van gebruiker
- Definitie in web.config ltpersonalizationgtltprofilegt
- Datatypen en default waarden zijn aan te geven
- Opslag complexe typen als XML, string of binary
- Ook voor anonymous gebruikers
- Toegang tot profiel via Profile property van page
of HttpContext - Werken met profieldata via properties van Profile
class lezen en schrijven
33Themes en skins
- Theme bevat globale definitie van control designs
- Skins bevatten controls met make-up
- Toepasbaar op Website, pagina of per control
- Twee globale themes voorhanden in alpha
- SmokeAndGlass en BasicBlue
- Gebruikte stylesheets worden automatisch
toegevoegd aan pagina - Te combineren met Personalization
34Themes en skins (2)
- Skins zijn op individuele controls toepasbaar
- Meerdere skins voor zelfde control hebben ieder
uniek SkinID - Controls hebben een SkinID property
- Custom themes zijn eenvoudig te maken
- Themes folder onder webroot bevat custom themes
- Ieder custom theme heeft eigen subfolder
bijvoorbeeld MyTheme - MyTheme.skin bevat definities van control designs
- CSS files in folder worden automatisch toegevoegd
35DEMO
- Werken met
- Themes
- Skins
- Combinatie met Personalization
36Web Parts
- Personalisatie controls
- Gebruiker kan content toevoegen, verplaatsen,
bewerken en verbergen - Pagina wordt ingedeeld in zones, die Web Parts
bevatten - Vier views voor Web Parts
- Normal en Design WebPartZone, ContentWebPart
- Edit EditorZone, Appearance-, Layout-,
Behavior-, ProperyGridEditorPart - Catalog CatalogZone, PageCatalogPart
- WebPartManager
- Beheert zones en Web Parts
- Onzichtbaar, maar wel verplicht
- Eigen Web Parts zijn afgeleid van
System.Web.UI.WebControls.WebPart klasse - Web parts kunnen data delen via Connection Points
37DEMO
- Werken met
- WebPartManager
- Zone controls
- Web Parts
- Verschillende views
38Nieuwe controls
- MultiView en View
- MultiView is container voor Views
- Vooral handig bij mobile devices
- Wizard
- Beta Wizard voor ontwerpen pagina's van Wizard
- BulletedList, Pager, HiddenField
- DynamicImage
- Nieuwe handler ImageGenerator .asix
- Caching van afbeeldingen op schijf of in-memory
- Properties ImageUrl, ImageGeneratorUrl, ImageFile
- ImageMap
- Hotspots van verschillende vormen cirkel,
rechthoek, polygoon
39Vernieuwde controls
- Input controls
- Focus kan op control geplaatst worden
- Default focus voor formulier op te geven
- Validatie controls
- Control wordt toegewezen aan validatiegroep
- Mogelijkheid tot validatie deel van formulier
- Focus kan op control met error worden geplaatst
- TextBox
- Autocomplete property
40Mobile development
- Geen aparte pagina's meer voor mobiele devices
- Controls gebruiken allen adaptieve rendering
- Aparte folder onder Config directory voor
browsers - .browser files definiëren capabilities van
devices - Device filters voor controls
- ltaspimage imageUrl"me.jpg" netscape"me-ns.jpg"
/gt - PhoneLink control
- MultiView, View en Pager controls bijzonder
geschikt voor kleine displays
41Site counters
- Zes controls kunnen clicks opslaan in tellers
- Button, LinkButton, ImageButton, PhoneLink,
ImageMap en AdRotator - Controls properties
- CounterGroup, CounterName, CountClicks
- Weer dezelfde providers of custom provider
- Report tool nog niet beschikbaar
- Page counters tellen bezoeken aan pagina
- AdRotator kan ook views tellen
42Forms Authentication
- Cookie voor session ticket niet meer vereist
- ltauthentication modeFormsgtltforms
cookielessuseUri/gt - Opties useUri, auto, useCookie, useDeviceProfile
43Interessante links
- http//www.asp.net/whidbey