A Lap Around New Enhancements for Web Developers in Visual Studio 2005 Alexander Holy Developer...

Post on 18-Jan-2018

216 views 0 download

description

Master Pages Content by inheritance Master Page Content Page

transcript

A Lap AroundNew Enhancementsfor Web Developers

in Visual Studio 2005

Alexander HolyDeveloper Evangelist, Microsoft EMEAalexholy@microsoft.com

New ASP.NET 2.0 FeaturesCo

ntro

lsPa

geFr

amew

ork

Serv

ices

and

APIs

DataControls

LoginControls Web Parts Other New

Controls

Master Pages Themesand Skins

ImprovedClient Scripting

Compilation& Localization

Membership RoleManagement Profiles Configuration

SiteMaps

HealthMonitoring

Other NewServices

Master Pages• Content by inheritanceMaster Page

Content Page

How Master Pages Work• Master pages define common content and

content placeholders• Content pages reference masters and fill

placeholders with contentSite.master default.aspx

Content

http://.../default.aspx

Content-PlaceHold

er

Page.Master• New property of System.Web.UI.Page• Provides content pages with programmatic

access to master pages– Determine whether page has a master– Access controls defined in master– Access public methods and properties defined in

master• Code-level integration of master pages and

content pages

Master Pages

Data Source Controls

• Declarative ("no-code") data binding

Sql-DataSource

Object-DataSource

Access-DataSource

Xml-DataSource

SiteMap-DataSource

SQLDatabases

AnyData

AccessDatabases

XMLData Site Maps

DataComponent

Site MapProvider

Data Controls

• New data-bound controls• Built-in support for selecting, editing,

paging, sorting, and more

GridView DetailsView FormView

2-Way Data Binding

• Data controls supply editing UIs– AutoGenerateXxxButton properties– Insert/EditRowStyle properties– Inserting/ed, Updating/ed, Deleting/ed events

• Data source controls supply logic– Insert/Update/DeleteCommand properties– Insert/Update/DeleteParameters properties– Inserting/ed, Updating/ed, Deleting/ed events

• Visual Studio supplies the glue

Caching

• Many data source controls provide built-in caching support– EnableCaching - Enables/disables caching– CacheDuration - Length of time (seconds)– CacheExpirationPolicy - Sliding or absolute– CacheKeyDependency/SqlCacheDepedency -

Cache dependencies• No-code data caching!

CacheSync• SQL cache dependencies

– Couple cached items to database entities– Change to underlying data evicts corresponding

item(s) from cache• Works with SQL Server 7, SQL Server 2000,

and SQL Server 2005– Requires database prep for SQL Server 7 and

SQL Server 2000 (Aspnet_regsql.exe)– "Just works" with SQL Server 2005

• Much-requested feature of ASP.NET

Data Access

Membership Service• Manages users and credentials

– Declarative access via Web Site Admin Tool– Programmatic access via Membership API

• Vastly simplifies forms authentication– Provides logic for validating user names and

passwords, creating accounts, and more– Provides data store for storing credentials, e-mail

addresses, and other membership data• Provider-based for flexible data storage

Membership Schema

Membership API

MembershipData

SQL Server OtherData Stores

Membership Providers

ActiveDirectory

Login LoginStatus LoginView Other

Controls

Membership MembershipUser

SqlMembershipProvider

ActiveDirectory-MembershipProvider

Other Providers

Role Manager• Role-based security in a box

– Declarative access via Web Site Admin Tool– Programmatic access via Roles API

• Simplifies adding role-based security to sites that employ forms authentication– Maps users to roles on each request– Provides data store for role information

• Provider-based for flexible data storage

Role Management Schema

Role API

Role Data

SQL Server OtherData Stores

Role Providers

AuthorizationManager

("AzMan")

Login LoginStatus LoginView Other

Controls

Roles

SqlRole-Provider

AuthorizationStore-RoleProvider

Other Providers

WindowsToken-

RoleProvider

Login Controls• UI and logic for security-related tasks

Login

Password-Recovery

LoginStatusLoginName

LoginView CreateUser-Wizard

Change-Password

Membership &Role Management

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

Profiles• Store per-user data persistently

– Strongly typed access (unlike session state)– On-demand lookup (unlike session state)– Long-lived (unlike session state)– Authenticated and anonymous users– Rich type support (including custom types)

• Accessed through dynamically compiled HttpProfileBase derivatives

• Provider-based for flexible data storage

Profile Definition<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>

Data-Driven Site Navigation• Navigation UIs are tedious to implement

– Especially if they rely on client-side script• New controls simplify site navigation

– TreeView and Menu - Navigation UI– SiteMapDataSource - XML site maps– SiteMapPath - "Bread crumb" controls

• Public site map API provides foundation• Provider-based for flexibility

Site Navigation Schema

Site Map API

Site Maps

Web.sitemap OtherData Stores

Controls Menu TreeView SiteMapPathSiteMap-

DataSource

SiteMap

SiteMapNodeSiteMapNode SiteMapNode

XmlSiteMapProvider Other Site MapProviders

Providers

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• Feature of site map providers• Varies navigation UI based on roles<?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

New ASP.NET 2.0 FeaturesCo

ntro

lsPa

geFr

amew

ork

Serv

ices

and

APIs

DataControls

LoginControls Web Parts Other New

Controls

Master Pages Themesand Skins

ImprovedClient Scripting

Compilation& Localization

Membership RoleManagement Profiles Configuration

SiteMaps

HealthMonitoring

Other NewServices

© 2005 Microsoft Corporation. All rights reserved.© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.