Cavone.com: Web & Software Engineering

 Come migrare da ASP ad ASP.NET in maniera indolore

 
 ::Servizi offerti   ::Matilda-CMS SEO   ::Assistenza Tecnica   ::Sviluppo software   ::Pubblicità   ::Contatti   ::Web Ranking   ::RSS Feed  

 Software Engineering

 Cerca

  Tools: SEO & IR

|► Text Mining & Summarization

|► Clustering Keywords MDR

|► Statistiche web ranking

|► Classificazione delle keywords


  Articoli & Tutorial

|► Mobile IPv6 Analyzer

|► Backup su DAT

|► Contatore in Oracle

|► ASP >> ASP.NET

|► Wireless su Linux

|► Siti partners

|► Ing. Paolo Cavone

|► Pubblicazioni ITC


  Blogs

|► I Post più letti

|► WebMaster Blog

|► Windows Blog

|► Linux Blog

|► Oracle Blog

|► Download


  Recensioni

|► sito web seo per agenzie immobiliari

|► Rilevazione Presenze e Controllo Accessi

|► B&B a Lecce

|► Software Internet Point


 Tutorial >> Migrare da ASP ad ASP.NET

 Migrare da ASP ad ASP.NET: Introduzione

Questo articolo non è un tutorial su ASP.NET scritto nello stesso stile di quelli
che si trovano in abbondanza in rete, quasi sempre troppo prolissi sui
concetti fondamentali e poveri di esempi pratici.
 
Spesso abbiamo bisogno di poche righe che ci introducano immediatamente nel
nucleo della materia, lasciandoci così la possibilità di concentrarsi
successivamente sui dettagli implentativi.
A prima vista le operazioni che si devono effettuare per passare da ASP ad
ASP.NET non sono molte né complicate e quello che si ottiene è sbalorditivo.
Sopratutto se, già in ASP, si "pensa" e si scrive codice orientato agli oggetti: OOP
(Object Oriented Programming) e guidato dagli eventi.
Le possibilità offerte dal nuovo framework sono, a dir poco, stupefacenti!

  >> English version on www.asp101.com 

 MS Visual Studio .NET - Nuovo progetto web vuoto

Ecco, dunque, l'elenco dei passi operativi per migrare da Classic ASP ad ASP.NET dopo che l'installazione del Framework .Net e Visual Studio .NET (oppure Visual Web Developer Express) è stata completata:
  • 1. Creare una copia della directory (es. /MYSITE) contente il sito in ASP e rinominarla (es. /MYSITE_NET);
  • 2. Creare, tramite IIS o PWS, una directory virtuale che punti ad /MYSITE_NET;
  • 3. Aprire l'ambiente di sviluppo .NET e creare un nuovo progetto Web vuoto (es. /MYSITE_NET/myPrjNet.vbproj) nella directory /MYSITE_NET, dopodiché aggiungere a questo i file .asp del nostro sito (dal box "Soluzioni" click col tasto destro del mouse su myPrjNet.vbp e scegliere "Aggiungi elemento esistente": si aprirà la finestra per selezionare i file; per visualizzare gli ASP selezionare il filtro "File Web") puntata già sulla directory di lavoro.
  •  Avvio dell applicazione .NET

    Impostiamo, prima di tutto, un file di default (ovvero il primo file che verrà eseguito): lo selezioniamo dal box "Soluzioni", click col tasto destro del mouse "Imposta come Default".

    Sia ad esempio /MYSITE_NET/default.asp; a questo punto potremmo già eseguire la nostra applicazione: infatti, se avviamo con CTRL+F5 e se il browser è in modalità "In linea", se non lo fosse, accertarsi che il IIS (Internet Information Server) sia avviato e poi da Explorer -> Menu File -> In Linea. Tutto dovrebbe funzionare come sempre. Sorpresi?

    ASP.NET è perfettamente compatibile con ASP e con esso può convivere benissimo, ma se per esperimento proviamo a rinominare un nostro file ASP con l'estensione ASPX le cose cambiano e non di poco...

    Prima di fare tutto questo però passiamo ad un'altra meraviglia di questo ambiente di sviluppo: il Debugger.

     Il Debugger di Visual Studio .NET

    Provate ad eseguire l'applicazione (dimenticavo, ogni tanto salvate!) in modalità 'Debug' (F5). Molto probabilmente riceverete un messaggio del tipo: "Per i progetti ASP.NET verificare che esista il file web.config per l'URL specificato e che l'opzione 'debug' sia impostata a TRUE in quel file". Per ovviare a questo piccolo inconveniente procedere con Avvio -> Trova File -> web.config".

    Insieme al vostro Framework almeno un esempio di questo file esiste già: non vi resta che farne una copia sulla vostra directory /MYSITE_NET/web.config e riprovare. Aprendo il file (XML) web.config con un editor di testo si scoprono altre cose interessanti, ma lascio al lettore la cura di analizzarlo.

    Un altro modo per impostare il debug lato server di un singolo file ASP, ma non dell'intera applicazione, è quello di inserire come prima riga, la seguente direttiva:

    < % @ Page Language=’vb’ Debug=’true’ % >

    In questa riga di codice compare una delle nuove, fondamentali, direttive di ASP.NET: @Page, descritta nel paragrafo successivo.

    Importante: l'esecuzione di applicazioni in modalità di debug causa un sovraccarico della memoria e una riduzione delle prestazioni. Assicurarsi che il debug di un'applicazione sia disattivato prima di distribuirla.

     Da ASP ad ASPX (e CodeBehind...)

    A questo punto possiamo provare a fare l'esperimento precedente; scegliamo un file asp in cui sia definito un form: converrà prima escluderlo dal progetto ([Gestione Soluzioni] -> myform.asp -> click col tasto destro del mouse -> "Escludi dal progetto") poi gli cambiamo l'estensione da .asp a .aspx e, quindi, lo riaggiungiamo al progetto.

    Sicuramente otterrete un messaggio del tipo: "Il progetto non contiene un file di classe associato al web-form myform.aspx, crearne uno ora?".
    Ovviamente la vostra risposta non potrà che essere affermativa.

    Il framework, a questo punto, farà due cose:
  • 1. Inserirà la seguente riga all'inizio di myform.aspx:

    < % @ Page CodeBehind=”myform.aspx.vb” Language=”vb” Inherits=”myPrjNet.myform” % >

    Questa direttiva al compilatore (le pagine ASP.NET non sono interpretate, ma compilate; la descrizione del processo di compilazione però esula dagli scopi di questo articolo, pertanto vi rimando alla documentazione ufficiale fornita dalla casa di Redmond o agli innumerevoli tutorial di cui sopra), che deve essere unica per ciascun file .aspx, informa quest'ultimo su molti parametri di compilazione.
  •  La classe VB.NET e parametri di compilazione

  • 2. Il framework genererà un file di classe: myform.aspx.vb

    Effettivamente quello che faremo è spostare tutto (o quasi) il codice scritto nella pagina myform.asp originaria nel file myform.aspx.vb, in particolare tutte le Function e Sub definite nel .asp diverranno, dopo aver specificato il corretto modificatore di classe (Public, Protected o Private), i nostri metodi della classe.

    Tutte le classi generate in questo modo derivano dalla classe padre system.web.ui.page e possiedono due metodi principali privati: Page_Init() e Page_Load(), il cui significato mi sembra evidente.

    Maggiori dettagli sui parametri di tali metodi li lascio scoprire al lettore.
    Parametri di compilazione, i principali sono:
  • 1. [CodeBehind]: dove trovare il codice, ovvero la classe, che sta "dietro" la pagina .aspx, in questo caso nel file generato dal framework myform.aspx.vb;
  • 2. [Language]: il linguaggio utilizzato: vb, C#, ecc.;
  • 3. [Inherits]: la classe padre da cui eredita attributi e metodi (Public o Protected );
  • 4. [Debug]: se eseguire o meno la pagina in modalità debug: True/False. Questa opzione, come già accennato, non deve essere settata se si utilizza il file web.config per il progetto corrente.
  •  Alcune novità di VB.NET

    A questo punto, dopo aver spostato tutti gli eventuali metodi nel file myform.aspx.vb (il codice "operativo", cioè quello che richiama i metodi della classe e che effettuano il rendering dei contenuti della pagina .asp rimane nel .aspx), se riproviamo ad eseguire in modalità Debug scopriremo la potenza di quest'ultimo.

    Alcuni degli errori di sintassi più comuni nascono dalle novità di VB.NET, alcune delle quali sono:
    1. Tutte le variabili devono essere necessariamente dichiarate ed eventualmente tipizzate (il tipo Variant non esiste più, se non si specifica il tipo di default sarà: Object);
    2. Tutte le chiamate dei Metodi (Response.Write(), myRecordSet.Open(), ecc...) devono necessariamente essere dotate delle parentesi: non è possibile, ad esempio, scrivere:

      Response.Write "Hello .NET!"

      ma si scriverà:

      Response.Write("Hello .NET!")
    3. Le istruzioni Set e Let non sono più necessarie (tutto è ad oggetti!);
    4. Il costrutto: While [...] Wend diventa: While [...] End While.

     Variabili di sessione tra asp ed aspx

    Ovviamente non è necessario trasformare tutte le pagine .asp in aspx: infatti, come già detto, i due ambienti possono tranquillamente convivere (almeno in fase di migrazione...).

    Se però dichiariamo delle variabili di sessione in una pagina .aspx, questa non sarà visibile alle pagine .asp, pertanto sarà necessario convertire queste ultime in .aspx con il metodo descritto (oppure 'duplicare' le variabili ...sconsigliato..).

     Conclusioni: perchè passare ad ASP.NET

    A questo punto vi chiederete: "Perché passare ad ASP.NET se la mia applicazione ASP funziona già a dovere?".
    Il motivo principale per cui passare ad ASP.NET è che tutto il cuore di un'applicazione web viene compilata in una DLL, pertanto se dovrete distribuire la vostra applicazione non fornirete i vostri codici sorgenti ma bensì solo le librerie compilate e le pagine ASPX, ASP, HTML... che utilizzano oggetti, con il loro attributi e metodi, definti all'interno delle DLL.
    Altre motivazioni che si possono trovare sono numerose:
    • Programmazione completamente Object Oriented, e quindi tutti gli innumerevoli vantaggi di quest'ultima:
      • Ereditarietà singola e multipla
      • Polimorfismo
      • Incapsulamento
      • Maggiore manutenibilità
      • Riutilizzo del codice
      • Documentazione del codice automatica da Reverse Enginering
    • Per non parlare poi dell'ottimo e, secondo me, bellissimo Debugger
    • controlli server ASP.NET, di cui magari parlerò in articoli successivi.

        Link utili:

     Contesto e variabili di Sessione in C# e vb.net

    Come accedere al valore dello stato di sessione da una propria classe (c# o vb.net business class) ?
    Risposta: E' necessario adoperare HttpContext.Current per rilevare l'oggetto Context e poi accedere a Context.Session.

    [Visual Basic]
    Imports System
    Imports System.Web

       Public Class MiaClasse
       
          Public Sub MioMetodo()
            
             ' leggi il contesto della richiesta HTTP
             Dim _context As HttpContext = HttpContext.Current
            
             ' legge l'oggetto intrinseco Session
             Dim _value As Object = _context.Session("nome-variabile-di-sessione")

          End Sub

       End Class

    [C#]
    using System;
    using System.Web;

       public class MiaClasse
       {

            public void MioMetodo() {
           
                // legge il contesto di elaborazione della richiesta HTTP
                HttpContext _context = HttpContext.Current;

                // legge la variabile di sessione (intrinseca al contesto)
                object _value = _context.Session["nome-variabile-di-sessione"];
            }
        }


    Approfondimenti:

     Pubblicato su www.aspcode.it
      >> www.aspcode.it
     Published on www.asp101.com
      >> Active Server Pages 101
     Tutorial sulla validazione di web form asp.net
      >> Web form asp.net tutorial

     FeedBack >> Migrare da ASP ad ASP.NET

     18/11/2003 - Arthur (New Zeland)

    > Hi there
    > Your article (
    ASP2ASP.NET) are really good.
    > I have one question though, about session variables.
    > Here we go, is there any way that I can send a session variables from asp.net to asp vice versa?
    > Thanks.
    > Arthur

    Hy Arthur! No, you cannot directy send Session Variable from ASP.NET <-> to Classic ASP. You should try to 1) Duplicate Session Variable (with different name) 2) Use hidden field to pass Session variable values from an enviroment to another. By!

     17/04/2003 - Hitesh (India)

    Hello sir! i am hitesh from india and i read your article ASP2ASP.NET from asp101.com and i should say it was really a very informative topic! I want to learn ASP.NET but i wanted to know whether it is good to learn from certification books. i have no plans of doing a certification at present but in the near future i might think about it. so just to play safe is it ok to practice from certification books, like from books on mcsd,mcp,mcad etc. if yes then which book is good, and if no then does that mean that there is a whole lot of difference between these certification books and the normal asp.net books??? i mean from which of these do u get to know real asp.net which is used or will be used in the industry. please do reply me sir. any other suggestions from u will be a hearty welcome.
    Hello Hitesh! I think You should using everything you can find on Internet! But a good Asp.Net Book should don't missing in your Library. Bye

     05/02/2002 - Michael Smith (Baltimora, USA)

    ASP2ASP.NET from www.asp101.com: Great Article!

     05/03/2002 - Jason Stevens (South Africa)

    ASP2ASP.NET: Great article....I probably learned more simple truths from your article than all the jargon-related ones on the web....nice and simple.... Can I ask a question? I am a solid ASP programmer that may move into a webmaster position at a small company with an SQL 2000 driven database. Although I want to learn ASP.NET (asp + vb) I am concerned by the technical server/network challenges to be overcome.... I mean what kind of a system - realistically - do you need for .NET?.. Many thanks Jason
    Hy Jason,
    to work fine with .NET your server challennes should be: 512 Mb Ram, a 2GHz Processor, Win 2000 Server, bye!

     05/12/2002 - Richard Ponton (New York, USA)

    A tip for ASP2 ASP.NET: One thing that took me a loooooong time to find out (and isn't obvious from the MS documentation) is how to "import" directories recursively. First, you start the blank project, as in your article. Next, From the menu "Project" click on "show all files". Finally, right-click on the folders you want to import and do "include in project". If you are doing this over Web Folders and you have a lot of files, go get a smoke or something because it's going to take a while...:-) Bye!

     27/10/2002 - Scott Roberts (USA)

    Hy Paolo! I really enjoyed your ASP2ASP.NET article! Bye Scoot!

     30/09/2004 - Alberto (Effetto.Net)

    Ciao Alberto!
    ti consiglio di leggerti (come credo avrai già fatto) il mio
    articolo.
    Poi per quanto riguarda la gestione di database tramite ADO.NET cerca i relativi articoli su
    www.asp101.com

    Asp101.com mi sembra veramente fatto bene è sempre aggiornato ti consiglio di iscriverti alla loro newsletter.

    Ogni tanto dai uno sguardo al sito "Madre"
    www.asp.net su cui c'è tutto!!
    Buon Lavoro
    > Ciao, vorrei chiederti se mi sai indicare un percorso per poter incominciare a programmare con .net . e' da circa 4 anni che programmo in asp per applicazioni web e sono un po' in difficoltà nel capire .net.


      Recensioni

    |► sito web seo per agenzie immobiliari

    |► Rilevazione Presenze e Controllo Accessi

    |► B&B a Lecce

    |► Software Internet Point


     Link


     Sezioni

     ::Servizi offerti   ::Matilda-CMS SEO   ::Assistenza Tecnica   ::Sviluppo software   ::Pubblicità   ::Contatti   ::Web Ranking   ::RSS Feed  

    Copyright - 2002-2024. Via G. Arditi 15, 73100 Lecce, P.IVA: 04066160757
    RSS - Powered by Matilda-cms. Tutti i diritti riservati. I marchi registrati sono di proprietà dei rispettivi proprietari.
    Questo sito non rappresenta una testata giornalistica, viene aggiornato senza alcuna periodicità, esclusivamente sulla base di appunti e scritti dell'autore.