Visual Web Developer 2005 Express Edition Sviluppare applicazioni web con ASP.NET 2.0 Daniele Bochicchio – Content Manager ASPItalia.com [email protected] – http://blogs.aspitalia.com/daniele/ Chi sono? • Content Manager di ASPItalia.com – Porto avanti la più grande community italiana di sviluppatori ASP ed ASP.NET, con 30.000 iscritti • Scrivo, scrivo, scrivo :) – Articoli su riviste italiane (VBJ, ioProgrammo, Internet Magazine, etc) – Libro “ASP 3 per Esempi” – Articoli, script, blog, forum, newsgroup • Consulenze – Corsi, training, mentoring, progettazione, sviluppo – Speaker a conferenze per Microsoft Italia • Microsoft ASP.NET MVP Agenda • • • • • • Le novità di VWD 2005 Architettura di ASP.NET 2.0 Membership, roles e management APIs Master Pages, Themes e Skins SqlDependency CrossPagePostBack Cos’è VWD 2005 • E’ la parte web di Visual Studio 2005, isolata in un prodotto a parte • Supporta VB e C# • E’ pensato ad un pubblico di hobbisti e studenti • E’ completamente funzionante e non è limitante nella distribuzione delle applicazioni create VWD 2005 e gli standard • Niente modifiche arbitrarie del codice tra Design View e Code View • Completo supporto degli standard e dei linguaggi di MarkUp – HTML 3.2 e 4.0, XHTML 1.0 Strict e Transitional • Validazione inline in base al browser e/o alla versione – Diversi profili: IE, Netscape, Opera, XHTML • Completo supporto dei CSS • Completo supporto per l’accessibilità • Validazione secondo le raccomandazioni e le linee guida del W3C (WCAG 1.0) Le novità di VWD 2005 • Intellisense migliorato • Supporto di intellisense nel code-beside e nel code-inline • Supporto di intellisense anche per HTML, XHTML, CSS, Web.Config, XML • HTML Tag Navigator and Tag Outlining – Consentono di orientarsi all’interno del codice in maniera più semplice raggruppando intere parti del codice Gestione dei progetti • Pubblicazione e aggiornamento – non più richieste le estensioni di FP, basta il File System, IIS o FTP • Solution Less – non più necessario file di progetto • Single File Solution – Modifica di un singolo file • Nuovo concetto di code-beside e separazione del codice – Nuova directory (APP_CODE) dove poter inserire tutti i sorgenti delle classi utilizzate nell’applicazione • Dopo la RTM, una nuova modalità con soluzione, ma solo per VS 2005 Uno sguardo a VWD 2005 ASP.NET 2.0 Developer Stack ASP.NET 2.0 “Building Block” API Membership Role Manager Personalization Site Navigation Database Caching Management Provider Model Design Pattern Providers Windows SQL Server JET (Access) Custom ASP.NET 2.0 Developer Stack ASP.NET 2.0 “Building Block” API Membership Role Manager Personalization Site Navigation Database Caching Management ASP.NET 2.0 Developer Stack Nuovo Page Framework Master Pages Themes/Skins Adaptive UI ASP.NET 2.0 “Building Block” API Membership Role Manager Personalization Site Navigation Database Caching Management ASP.NET 2.0 Developer Stack Nuovi Controlli (Oltre 40) Security Data Navigation Web Parts Nuovo Page Framework Master Pages Themes/Skins Adaptive UI ASP.NET 2.0 “Building Block” API Membership Role Manager Personalization Site Navigation Database Caching Management Master Pages • Site.Master – Definisco contenuto generale • <asp:ContentPlaceHolder id=“Pippo” ... /> • @Page MasterPageFile = Site.Master – <asp:Content ContentPlaceHolderId=“Pippo”> Contenuto della pagina – </asp:Content> Theme & Skins • Directory App_Themes – MioTema1 • Label.Skin – Background Blu – Foreground Bianco • TextBox.skin – Background Bianco – Foreground Verde – MioTema2 • Label.Skin • TextBox.Skin • @Page Theme=“MioTema1” Master Pages e Themes Altre novità per Page • • • • • Cross-page Posting Validation Group Url Rewriting Precompilazione Ajax dopo la RTM, con Atlas – http://atlas.asp.net/ • Security per risorse non ASP.NET – Attraverso un HttpHandler specifico Cross Page Post Back Il nuovo control LoginView • Visualizzazione di template diversi in base all’utente (anonymous, logged, roles) • Introdotti i role-groups e i template basati sui roles • Consente diversi template – <anonymoustemplate> – <loggedintemplate> – <rolegroups> Membership API • Membership – Interfaccia per gestione dati di login • Non per i dati dell’Utente (Nome etc) -> Personalization – Layer per eliminare codice ripetivo – Indipendente dallo store • Secure Credential Storage Services – Algoritmi di Hashing per le credenziali – Elimina codice ripetitivo • Gestione utenti Membership API • Gestione User – Validate – Create, Delete, Update • Finding/Getting User – Per Username / Email – Utenti online • Gestione Password – Password reset – Question/Answer Membership Configuration Sezione connStrings Proteggere un’applicazione in 2 minuti Role Manager • Role Manager – Mappa gli utenti sui ruoli – Elimina il codice per fare tutto questo – Costruito sulla API Role di ASP.NET 1.X • Non legato a Membership – Role Manager può essere utilizzato da solo ASP.NET 1.x Stored Procedures Data Access Layer (DAL) Business Logic Layer (BLL) diventa…. Stessa Logica Roles Class • Gestione Ruoli – Create, Delete, Update – IsUserInRole / RolesForUser • Aggiunta/Rimozione – AddUser[s]ToRole – AddUser[s]ToRole[s] • Ricerca User-to-role – GetRolesForUser – GetUsersInRole ASP.NET 2.0 Profile • • • • Memorizza le informazioni per ogni utente Astrazione rispetto allo store Elimina codice ripetitivo Utente e Dati – Informazioni sull’utente – Personalizzazione del contenuto • SQL Server (o altro) back-end – Si cambia back-end, la logica di accesso è sempre la stessa – Provider Model Design Pattern: astrazione dell’accesso ad una funzionalità a prescindere dal provider utilizzato Roles e Profile APIs Provider Model: Recall • Type-Safe e Strongly-Typed – Non basato su Dictionary – Nessun Cast richiesto – Proprietà esposte e “rintracciabili” • Recupero dei dati Smart – On-demand Data Retrieval • Accesso allo store solo quando utilizzato – Dati Partizionabili • Basato su Provider Model – Altri store pluggable – Estendibile con altre funzionalità SqlDependency – Una nuova classe per l’ottimizzazione della cache relativamente alla base dati – Crea una dipendenza verso una fonte dati (Sql Server) che verrà aggiornata solo se tale dipendenza viene aggiornata – Le versioni di MS SQL Server supportate sono 7.0, 2000 e 2005 – Disponibile per l’oggetto Cache e per il fragment caching (OutputCache) – Semplice da aggiungere al codice esistente, si aggancia alle funzionalità già esistenti SqlDependency – SQL 7 e SQL 2000 • Table Change Dependency – Niente Row-Level • Richiesto Setup • Polling Model • Trigger (su Table) + SP (Check) – SQL Server 2005 • • • • Result Set Dependency Supportato da SqlCommand Nessun Setup Notification Model Come funziona in SQL Svr 7 & 2000 ASP.NET Cache SQL Server Northwind Database SqlCacheDependency Products table z Page trigger DataSet N n1 dat a ChangeNotification table tableN change a ame Id aspnet_regsqlcache.exe products 3 1 Con SQL Server 2005 • Notifiche più granulari – Esempi: • “Modifica dati in una tabella” • “quando il resultset di una SP cambia” • Sfrutta caratteristiche di SQL Server 2005 – Nessun Trigger o servizi da installare – Invio Modifiche ai subscriber tramite HTTP.sys di IIS 6 SQL Server 2005 in azione ASP.NET SQL Server ‘Yukon’ SqlCommand Northwind Cache Modifica SqlCacheDependency Page DataSet HttpListener IIS Http.sys TCP Port 80 Notification Delivery Service Precompilazione Ci sono due nuovi sistemi per precompilare le pagine: • HttpHandler: precompile.axd • Riga di comando: aspnet_compiler.exe Rendono immediata la consultazione delle risorse. Community Booth • Ricevi risposte alle tue domande • Vieni a trovarci: – Padiglione 12 – COM 2 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY. Content created by Daniele Bochicchio. Domande? [email protected] http://forum.aspitalia.com/