Migrazione da ASP a ASP.NET
Fabio Santini
Microsoft Italy
UPGRADE
• Differenze delle tecnologie
– ASP Vs. ASP.NET
• Differenze dei linguaggi
– VB.NET Vs. VBScript
•
•
•
•
Quando usiamo COM ?
Demo Upgrade
Condivisione della sessione
Metodologie di migrazione
2
ASP 2 ASP .NET - Focus
• L'installazione di ASP .NET non impedisce il funzionamento
delle applicazioni ASP esistenti
• Le applicazioni ASP e ASP .NET:
– possono essere eseguite side-by-side (usano estensioni di file
differenti)
– non condividono Session e Application
• Anche se è possibile farlo scrivendo tanto codice
– Sono comunque possibili strategie di migrazione parziale
3
ASP .NET: vantaggi
• Il codice eseguito:
–
–
–
–
–
–
E’ compilato
Può utilizzare tutte le classi di :NET Framework.
È un ambiente “visuale”
Sessioni cookieless e scalabili in una web farm
E’ un ambiente Object Oriented
E’ tipizzato
4
ASP e ASP .NET: analogie
•
•
•
•
Gli oggetti Request e Response sono ancora supportati
Gli include funzionano ancora
Supportano codice applicativo frammisto ad HTML
La direttiva Language è ancora supportata (in realtà viene
sottointeso Page)
• VB .NET sa “imitare” fin troppo bene VBScript
5
ASP .NET: differenze da ASP
• Le pagine ASP .NET supportano un solo linguaggio
• Le pagine ASP .NET supportano più di una direttiva
• è necessario dichiarare le funzioni nelle pagine ASP.NET in
blocchi <script runat=server>
<%
Sub DoSomething()
Response.Write “Ciao a tutti !!!"
End Sub
DoSomething
%>
<script language="VB" runat=server>
Sub DoSomething()
Response.Write (“Ciao a tutti !!!")
End Sub
</script>
<%
DoSomething()
%>
6
ASP .NET: differenze da ASP
• ASP.NET non supporta le funzioni di rendering di pagina
<% Sub RenderSomething() %>
<font color="red"> Sono le ore: <%=Now %> </font>
<% End Sub %>
<%
RenderSomething
RenderSomething
%>
<script language="VB" runat=server>
Sub RenderSomething()
Response.Write("<font color=red> ")
Response.Write(“Sono le ore: " & Now)
End Sub
</script>
<%
RenderSomething()
RenderSomething()
%>
7
ASP .NET: differenze da ASP
• Option Explicit è impostato per default
• è necessario dichiarare le variabili aventi scope page-level
in blocchi <script runat=server>
• le "pagine" ASP .NET si chiamano Web Form
• Molti dei settaggi di IIS per le applicazioni ASP.NET vengono
ignorati
– La configurazione sta in ASP.NET
• Web.config
• Machine.config
8
ASP .NET: da VBScript a VB .NET
• Eliminazione di Set e Let
• Eliminazione delle proprietà predefinite non indicizzate
• Le parentesi sono necessarie per chiamare
procedure/funzioni (anche se non hanno parametri)
• per default, gli argomenti sono passati ByVal
• Possiamo avvalerci della tipizzazione
• VB.NET e C# simili
9
ASP .NET vs. COM
• Il CLR consente agli oggetti .NET di interagire senza
(particolari) difficoltà con i componenti COM tradizionali.
• Un componente può essere istanziato:
– in late binding mediante Server.CreateObject(ProgId)
– in early binding greando un assembly di interoperabilità usando
tblimp.exe o VS .NET
– Mediante il tag <object>
• L’uso di componenti non free-threaded richiede
l’inserimento dell’attributo ASPCompat=“True” nella
direttiva Page
10
COMe complicare le cose
• Le applicazioni ASP “serie” non accedono al db, perché:
– Ci hanno insegnato a implementarle con architettura multi-tier
– Ci hanno detto di incapsulare l’accesso ai dati e le regole di
business in componenti COM
• …e ora?
• Possiamo migrare in 2 fasi:
– Pagine ASP Web Form ASP .NET
– Server COM Assembly .NET
13
ASP 2 ASP .NET: la via alternativa
• Q: Possiamo “capovolgere” il problema: perché non
mantenere un front-end ASP convertendo i componenti
COM in Assembly .NET?
• A: Teoricamente si, ma lascia la “porta” aperta ad alcune
complicazioni
14
Migrazione da ASP a ASP.NET
Demo
15
Condividere le sessioni
• Le sessioni non sono condivise
– Vale anche per l’oggetto Application
• http://msdn.microsoft.com/library/default.asp?url=/library/enus/dnaspp/html/converttoaspnet.asp
– Source code
– Usa SQL Server
– Cambiamenti necessari sia in ASP che in ASP.NET
• http://www.consonica.com/solutions/statestitch/
– Un include all’inizio di ogni pagina ASP
– Non supporta componenti COM
• http://www.sessionbridge.com/
– Cambiamenti nelle pagina ASP
– Utilizza Web service
16
Migrazione da ASP a ASP.NET
Demo
17
Strategie di migrazione
(senza sessione condivisa)
“Da zero” – Riscrivere completamente l’applicazione in ASP.NET
Pro
Contro
• Gli sviluppatori e gli
amministratori possono
avvantaggiarsi di tutte le nuove
caratteristiche del .NET
Framework
• Conoscenza di .NET
• Tempi di migrazione
• Altro rischio di introduzione di
malfunzionamenti proporzionali
alla dimensione del progetto
18
Strategie di migrazione
(senza sessione condivisa)
“La sintassi” – Convertire la sintassi da VBScript a VB.NET
Pro
Contro
• Semplificata l’amministrazione
dell’applicazione
• Compilazione del codice
• Tempi di migrazione
• Poco sfruttamento delle
caratteristiche di .NET
• Altro rischio di introduzione di
malfunzionamenti proporzionali
alla dimensione del progetto
• Poca conoscenza di .NET
19
Strategie di migrazione
(senza sessione condivisa)
“A livelli” – Convertire separatamente i vari livelli
Pro
Contro
• Gli sviluppatori e gli
amministratori possono
avvantaggiarsi di tutte le nuove
caratteristiche del .NET
Framework
• Semplicità di migrazione
• Conoscenza di .NET
• L’applicazione ASP deve essere
già pensata per livelli
20
Strategie di migrazione
(con sessione condivisa)
“Pagina per Pagina” – Convertire una pagina alla volta partendo
da quelle dalle quali si traggono maggiori benefici
Pro
Contro
• Il progetto di migrazione è più
controllabile perchè fatto per
piccoli passi
• Gli sviluppatori e gli
amministratori possono
avvantaggiarsi di tutte le nuove
caratteristiche del .NET
Framework
• Conoscenza di .NET
• Se l’applicazione ASP utilizza del
codice condiviso è necessario
farne una versione anche per
ASP.NET (mantenere il doppio
codice)
• In alcuni casi si potrebbero
introdurre dei malfunzionamenti
senza ottenere dei benefici reali
21
Strategie di migrazione
(con sessione condivisa)
“Vecchio e Nuovo” – Solo le nuove pagine vengono scritte in
ASP.NET
Pro
Contro
• Le nuove pagine sono pensate
per sfruttare il .NET Framework
• Acquisizione della conoscenza di
.NET per passi
• I possibili malfunzionamenti
riguardano eventualmente le
pagine aggiunte
• La strategia è efficace
soprattutto quando non esiste
un budget di migrazione
• Mantiene gran parte del
progetto in ASP
• Se l’applicazione ASP utilizza del
codice condiviso è necessario
farne una versione anche per
ASP.NET (mantenere il doppio
codice)
22
Strategie di migrazione
(con sessione condivisa)
“Pagina per Pagina” + “Vecchio e Nuovo”
Pro
Contro
• Tutti i vantaggi del “Pagina per
Pagina”
• Tutti i vantaggi del “Vecchio e
Nuovo”
• Mantiene gran parte del
progetto in ASP
• Se l’applicazione ASP utilizza del
codice condiviso è necessario
farne una versione anche per
ASP.NET (mantenere il doppio
codice)
23
Strategie di migrazione
Senza condivisione della sessione
Con condivisione della sessione
Da Zero
Pagina
per
pagina
La Sintassi
A livelli
Vecchio e
Nuovo
Pagina per Pagina
+
Vecchio e Nuovo
Non richiede agli
sviluppatori di diventare
esperti immediatamente
Aiuta gli sviluppatori ad
imparare .NET
Crea un progetto di
migrazione gestibile
Il progetto di migrazione
può avvenire anche senza
budget
Mimizza l’introduzione di
malfunzionamenti
Beneficia di tutti i vantaggi
offerti da .NET Framework
24
© 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only.
MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.
25