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.