Migrare ASP.NET WebForms e ASP classico: quando serve e come farlo per gradi

Migrare ASP.NET WebForms o ASP classico non è sempre urgente: WebForms è ancora supportato, e Microsoft stessa scrive che molte volte non c’è bisogno di spostare un’applicazione funzionante. Conviene farlo quando servono funzioni che la piattaforma non offre, quando è lenta e inutilizzabile da telefono o quando trovare chi ci lavora diventa difficile. Per le applicazioni grandi, la strada consigliata è quella graduale.

Queste applicazioni sono molto comuni: gestionali web, portali interni e aree clienti costruiti tra i primi anni Duemila e la metà degli anni Dieci. Abbiamo lavorato su entrambe le tecnologie. Il problema che si avverte di più, di solito, riguarda il lavoro quotidiano: pagine lente, moduli che su telefono non si usano, modifiche che costano troppo.

Se non sei un tecnico: stai usando una di queste?

Un modo semplice per capirlo è guardare l’indirizzo delle pagine. Se finisce in .aspx, è molto probabile che sia WebForms. Se finisce in .asp, è ASP classico. Non è una regola assoluta, ma è un buon punto di partenza da verificare con chi mantiene l’applicazione.

Le due situazioni non sono uguali

ASP.NET WebFormsASP classico
StatoParte di .NET Framework, che resta nei sistemi WindowsTecnologia degli anni Novanta, non più sviluppata da tempo
Dove giraSolo su Windows, con IISSolo su Windows, con IIS
FuturoNon è stato portato su ASP.NET CoreNessun percorso diretto
Urgenza tipicaMedia: dipende dai limiti che ti creaPiù alta: componenti vecchi e meno persone che li conoscono

WebForms

La situazione è meno drammatica di quanto si legga. La documentazione Microsoft lo dice in modo esplicito: spesso non c’è bisogno di migrare un’applicazione funzionante, e WebForms continuerà a essere supportato per molti anni. Le versioni recenti di .NET Framework seguono il ciclo di vita del sistema operativo, mentre alcune versioni più vecchie sono già fuori supporto. Vale quindi la pena controllare quale usi.

Il punto è un altro: WebForms non evolve, e le novità arrivano sulla piattaforma moderna. Ogni anno aumenta la distanza tra ciò che la tua applicazione può fare e ciò che ti serve.

ASP classico

Qui il margine è minore. I componenti esterni sono spesso molto vecchi, il codice mischia pagine e logica, ed è più difficile trovare sviluppatori disposti a lavorarci. E poiché si tratta di applicazioni raggiungibili via web, la sicurezza richiede attenzione: errori come l’iniezione SQL sono frequenti nel codice scritto a quell’epoca, e vanno controllati anche se non vuoi migrare subito.

Quando conviene muoversi

Valuta un intervento se riconosci almeno uno di questi casi:

  • Da telefono l’applicazione è inutilizzabile, e chi è fuori sede ne ha bisogno.
  • Le pagine sono lente, e i miglioramenti non bastano più.
  • Ogni modifica costa molto e rompe qualcos’altro: è il cosiddetto debito tecnico.
  • Vuoi collegare e-commerce, CRM o un’app, ma l’applicazione non ha interfacce adatte.
  • Il server su cui gira non è più aggiornato, e non puoi spostarla facilmente.
  • Devi passare un controllo di sicurezza di un cliente o di un partner.

Se nessuno di questi vale, è legittimo aspettare. Limita però l’esposizione: applicazione aggiornata, sistema operativo supportato e nessuna parte più accessibile del necessario.

Perché la riscrittura completa è una trappola

La guida di Microsoft sul passaggio ad ASP.NET Core è esplicita: nella maggior parte delle applicazioni in produzione l’aggiornamento non è banale, e una riscrittura completa è difficile e rischiosa. Per questo indica la migrazione incrementale come approccio preferito, soprattutto per i progetti grandi o che devono restare in produzione. Il riferimento è lo stesso metodo che descriviamo in riscrivere da zero o sostituire un pezzo alla volta.

Le difficoltà specifiche di queste applicazioni sono note:

  • Sessioni e login. Vecchio e nuovo devono riconoscere lo stesso utente, senza chiedergli di accedere due volte.
  • Logica dentro le pagine. In WebForms e ancora di più in ASP classico, le regole di calcolo sono spesso nel codice delle pagine. Vanno estratte e capite.
  • Controlli di terze parti. Griglie e report di vecchi produttori possono non avere un equivalente diretto.
  • Stato delle pagine. Molte schermate WebForms si reggono su meccanismi che sulle piattaforme moderne non esistono: vanno ripensate, non tradotte.

Come si fa, per gradi

Poiché vecchio e nuovo sono entrambi applicazioni web, il metodo graduale funziona particolarmente bene:

  1. Mettere un passaggio davanti. Tutte le richieste passano da un unico punto, che decide se servirle con la vecchia applicazione o con la nuova. Per chi usa il sito, l’indirizzo non cambia.
  2. Condividere dati e accesso. Vecchio e nuovo usano lo stesso database e riconoscono lo stesso utente.
  3. Spostare una sezione alla volta. Si parte da quella che crea più problemi, o dalla più semplice per fare esperienza. Una volta collaudata, il passaggio davanti inizia a mandare lì il traffico.
  4. Tornare indietro in pochi minuti. Se la sezione nuova ha un problema, basta rimandare il traffico alla vecchia.
  5. Spegnere il vecchio quando non riceve più richieste.

Rispetto alle applicazioni desktop, c’è un vantaggio notevole: non devi installare nulla sui PC, e gli utenti possono passare al nuovo una sezione alla volta senza accorgersene, o quasi.

Dove arrivare

Per WebForms, la destinazione naturale è ASP.NET Core, specie se hai competenze .NET in casa o una logica in C# da conservare. Microsoft documenta anche il passaggio a Blazor, che ha un modello a componenti più vicino a WebForms. Se però il team è da costruire da zero, o l’applicazione va comunque ripensata, altre tecnologie web moderne possono avere più senso. Per ASP classico non c’è una destinazione “naturale”: il codice va quasi sempre riscritto, quindi puoi scegliere liberamente.

Scegli quella che ti garantirà più facilmente sviluppatori tra dieci anni. Se serve chiarire cosa significa nel tuo contesto, parti da un audit del software. Per il quadro completo, leggi la guida alla modernizzazione del software legacy.

Domande frequenti

WebForms verrà abbandonato da Microsoft?

Non ci sono segnali di un abbandono a breve termine: fa parte di .NET Framework, che è incluso in Windows. Non riceverà però novità importanti, quindi il tema non è “quando smetterà di funzionare” ma “quanto ti limita già oggi”.

Esistono strumenti che convertono automaticamente?

Sì, sia di Microsoft sia di terze parti, e possono ridurre il lavoro meccanico. Non risolvono però le scelte di progettazione: schermate pensate per il desktop del 2005 resteranno tali anche dopo la conversione. Provali su una parte reale prima di decidere.

L’applicazione può restare online durante il lavoro?

Sì, è proprio il punto del metodo graduale. Il momento più delicato è l’inserimento del passaggio davanti all’applicazione, che va pianificato con cura, ma non richiede di fermare il lavoro per giorni.