Date post: | 18-Jan-2018 |
Category: |
Documents |
Upload: | willis-carroll |
View: | 216 times |
Download: | 0 times |
A Lap AroundNew Enhancementsfor Web Developers
in Visual Studio 2005
Alexander HolyDeveloper Evangelist, Microsoft [email protected]
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.