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/
Scarica

ASP.NET 2.0