ASP.NET 2.0
André Henriksson
Developer Evangelist
Microsoft AB
Services
and APIs
Page
Framework Controls
Nyheter i ASP.NET 2.0
Data
Controls
Login
Controls
Web Parts
Other New
Controls
Master Pages
Themes
and Skins
Improved
Client Scripting
Compilation
& Localization
Membership
Role
Management
Profiles
Configuration
Site
Maps
Health
Monitoring
Other New
Services
Master Pages
 Innehåll genom arv
Master Page
Content Page
Hur fungerar Master Pages
 “Master pages” definierar gemensamt
innehåll och gemensamma “placeholders”
för en sida
 “Content pages” refererar en “Master” och
fyller “placeholders” med innehåll
Site.master
ContentPlaceHolder
default.aspx
Content
http://.../default.aspx
Page.Master
 Ny egenskap i System.Web.UI.Page
 Ger innehållssidor en möjlighet att
programatiskt komma åt “Master pages”
 Kontrollera om sida har en “Master”
 Åtkomst till kontroller definierade i “Master
page”
 Åtkomst till publika metoder och egenskaper i
en “Master page”
 Ger integration mellan “Master pages” och
innehållssidor på kodnivå
Master Pages
André Henriksson
Developer Evangelist
Microsoft AB
Theme
 Katalog i root:en: App_Themes
 Kan innehålla bilder, CSS och Skins
 Möjlighet att byta utseende på en
webbplats
 Mer finkornigt är Master Pages
 Appliceras på servern
 Stylesheets skickas till klienten
 Kan styras i web.config eller i kod
 ”Don’t cascade in the same way as CSS”
 Definition i en Theme gäller över kontrollens
Skin
 Möjlighet att skräddarsy kontrollers
utseende
 Är kontrollbaserad och inte HTML-baserad
 Konfigurera nodbilder i Treeview
 Sätt färger i kalenderkontrollen
 Vilka kolumner ska visas i en GridView
 Varning! Styr inte bredd/höjd denna väg
om du inte måste... Det hör hemma i aspxfilen.
Themes and Skins
André Henriksson
Developer Evangelist
Microsoft AB
Datadriven webbnavigering
 Navigationsgränssnitt tar tid att
implementera
 Speciellt om de innehåller klientscript
 Nya kontroller förenklar navigering
 TreeView och Menu - Navigeringskontroller
 SiteMapDataSource - XML site maps
 SiteMapPath - "Bread crumb“-kontroll
 Publikt site map API är grunden
 Provider-baserad för flexibilitet
Site Navigation Schema
Controls
Menu
TreeView
Site Map API
SiteMap
SiteMapNode
Providers
SiteMapDataSource
SiteMapNode SiteMapNode
XmlSiteMapProvider
Other Site Map
Providers
Web.sitemap
Other
Data Stores
Site Maps
SiteMapPath
XML Site Map
<?xml version="1.0" encoding="utf-8" ?>
<siteMap>
<siteMapNode>
<siteMapNode title="Home" url="~/Default.aspx" />
<siteMapNode title="Tickets" url="~/Tickets.aspx" />
<siteMapNode title="Concert Gear" url="~/Gear.aspx" />
<siteMapNode title="Backstage"
url="~/MembersOnly/Backstage.aspx" />
<siteMapNode title="Preferences"
url="~/MembersOnly/Preferences.aspx" />
</siteMapNode>
</siteMap>
Security Trimming
 Egenskap hos “site map providers”
 Styr gränssnitt efter användarens roller
<?xml version="1.0" encoding="utf-8" ?>
<siteMap>
<siteMapNode roles="*">
<siteMapNode title="Home" url="~/Default.aspx" />
<siteMapNode title="Tickets" url="~/Tickets.aspx" />
<siteMapNode title="Concert Gear" url="~/Gear.aspx" />
<siteMapNode title="Backstage" roles="Members"
url="~/MembersOnly/Backstage.aspx" />
<siteMapNode title="Preferences" roles="Members"
url="~/MembersOnly/Preferences.aspx" />
</siteMapNode>
</siteMap>
Site Navigation
André Henriksson
Developer Evangelist
Microsoft AB
Datakällskontroller
 Deklarativ (“ingen kod") data bindning
SqlDataSource
ObjectDataSource
AccessDataSource
XmlDataSource
Data
Component
SQL
Databases
Any
Data
SiteMapDataSource
Site Map
Provider
Access
Databases
XML
Data
Site Maps
Datakontroller
 Nya databundna kontroller
 Inbyggt stöd för bl a att kunna välja rad,
editering, “paging”, sortering, osv
GridView
DetailsView
FormView
2-vägs Data Bindning
 Datakontroller ger editerbart gränssnitt
 AutoGenerateXxxButton properties
 Insert/EditRowStyle properties
 Inserting/ed, Updating/ed, Deleting/ed events
 Datakällskontrollerna ger logiken
 Insert/Update/DeleteCommand properties
 Insert/Update/DeleteParameters properties
 Inserting/ed, Updating/ed, Deleting/ed events
 Visual Studio hjälper till med det sista
Caching
 Många datakällskontroller har inbyggt stöd
för caching
 EnableCaching - Av/På caching
 CacheDuration – Längd i sekunder
 CacheExpirationPolicy – Slide:ing eller absolut
 CacheKeyDependency/SqlCacheDepedency Cache dependencies
 OBS! Ingen kod behövs för caching!
Cache Dependency
 SQL cache dependencies
 Binder cache:ade objekt till databasentiteter
 Förändringar i underliggande data invaliderar
det cache:ade objektet
 Fungerar med SQL Server 7, SQL Server
2000 och SQL Server 2005
 Kräver att databasservern prepareras för SQL
Server 7 and SQL Server 2000
(Aspnet_regsql.exe)
 “Fungerar direkt" med SQL Server 2005
 Starkt efterfrågad funktion i ASP.NET
Data Access
André Henriksson
Developer Evangelist
Microsoft AB
Membership Service
 Hanterar användare och deras
inloggningsuppgifter
 Deklarativ åtkomst via Web Site Admin Tool
 Programmatisk åtkomst via Membership API
 Förenklar forms authentication
 Ger logik för validering av användare och
lösenord, skapande av nya användare osv
 Ger implicit lagring av användaruppgifter, epostadress och annat data som väljs att lagra
 Provider-baserad för flexibel lagring
Membership Schema
Controls
Login
LoginStatus
LoginView
Other
Membership API
Membership
MembershipUser
Membership Providers
SqlMembershipProvider
ActiveDirectoryMembershipProvider
Membership
Data
SQL Server
Active
Directory
Other
Providers
Other
Data Stores
Role Manager
 Rollbaserad säkerhet “in the box”
 Deklarativ åtkomst via Web Site Admin Tool
 Programmatisk åtkomst via Roles API
 Förenklar hantering av roller på
webbplatser som använder “forms
authentication”
 Mappar användare till roller vid varje anrop
 Ger implicit lagring av rollinformation
 Provider-baserad för flexibel lagring
Role Management Schema
Controls
Login
LoginStatus
LoginView
Other
Role API
Roles
Role Providers
SqlRoleProvider
AuthorizationStoreRoleProvider
WindowsTokenRoleProvider
Other
Providers
Role Data
SQL Server
Authorization
Manager
("AzMan")
Other
Data Stores
Login Controls
 UI och logik för säkerhetsrelaterade saker
Login
LoginName
LoginView
ChangePassword
LoginStatus
Membership &
Role Management
CreateUserWizard
PasswordRecovery
LoginView
<asp:LoginView ID="LoginView1" Runat="server">
<AnonymousTemplate>
<!-- Content seen by unauthenticated users -->
</AnonymousTemplate>
<LoggedInTemplate>
<!-- Content seen by authenticated users -->
</LoggedInTemplate>
<RoleGroups>
<asp:RoleGroup Roles="Administrators">
<ContentTemplate>
<!-- Content seen by administrators -->
</ContentTemplate>
</asp:RoleGroup>
...
</RoleGroups>
</asp:LoginView>
Membership and Roles
André Henriksson
Developer Evangelist
Microsoft AB
Profiler
 Spara användardata “för evigt”
 Starkt typad åtkomst (ej i session)
 Hämta användarprofil (ej i session)
 Överlever sessionen (ej i session)
 Autenticerade och anonyma användare
 Stödjer olika datatyper (även custom types)
 Åtkomst via dynamiskt kompilerad klass
baserad på HttpProfileBase
 Provider-baserad för flexibel lagring
Definition av Profil
<profile>
<properties>
<!-- String property -->
<add name="MyName" />
<!-- Int32 property with default value -->
<add name="MyFavoriteNumber" type="System.Int32"
defaultValue="0" />
<!-- DateTime property -->
<add name="MyBirthday" type="System.DateTime" />
<!-- Custom type; auth. and anon. users -->
<add name="MyItems" type="ShoppingCart"
serializeAs="binary" allowAnonymous="true" />
</properties>
</profile>
Profiles
André Henriksson
Developer Evangelist
Microsoft AB
© 2005 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.