[{"data":1,"prerenderedAt":357},["ShallowReactive",2],{"post-\u002Fblog\u002Fmigrare-asp-net-webforms":3,"related-\u002Fblog\u002Fmigrare-asp-net-webforms":350},{"id":4,"title":5,"body":6,"date":334,"description":335,"extension":336,"meta":337,"navigation":338,"order":339,"path":340,"related":341,"seo":345,"seoTitle":346,"sitemap":347,"stem":348,"updated":334,"__hash__":349},"blog\u002Fblog\u002Fmigrare-asp-net-webforms.md","Migrare ASP.NET WebForms e ASP classico: quando serve e come farlo per gradi",{"type":7,"value":8,"toc":315},"minimark",[9,17,20,25,37,41,114,119,136,139,142,145,149,152,179,182,186,199,202,228,232,235,268,271,275,278,290,294,298,301,305,308,312],[10,11,12,16],"p",{},[13,14,15],"strong",{},"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.",[10,18,19],{},"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.",[21,22,24],"h2",{"id":23},"se-non-sei-un-tecnico-stai-usando-una-di-queste","Se non sei un tecnico: stai usando una di queste?",[10,26,27,28,32,33,36],{},"Un modo semplice per capirlo è guardare l’indirizzo delle pagine. Se finisce in ",[29,30,31],"code",{},".aspx",", è molto probabile che sia WebForms. Se finisce in ",[29,34,35],{},".asp",", è ASP classico. Non è una regola assoluta, ma è un buon punto di partenza da verificare con chi mantiene l’applicazione.",[21,38,40],{"id":39},"le-due-situazioni-non-sono-uguali","Le due situazioni non sono uguali",[42,43,44,59],"table",{},[45,46,47],"thead",{},[48,49,50,53,56],"tr",{},[51,52],"th",{},[51,54,55],{},"ASP.NET WebForms",[51,57,58],{},"ASP classico",[60,61,62,76,88,101],"tbody",{},[48,63,64,70,73],{},[65,66,67],"td",{},[13,68,69],{},"Stato",[65,71,72],{},"Parte di .NET Framework, che resta nei sistemi Windows",[65,74,75],{},"Tecnologia degli anni Novanta, non più sviluppata da tempo",[48,77,78,83,86],{},[65,79,80],{},[13,81,82],{},"Dove gira",[65,84,85],{},"Solo su Windows, con IIS",[65,87,85],{},[48,89,90,95,98],{},[65,91,92],{},[13,93,94],{},"Futuro",[65,96,97],{},"Non è stato portato su ASP.NET Core",[65,99,100],{},"Nessun percorso diretto",[48,102,103,108,111],{},[65,104,105],{},[13,106,107],{},"Urgenza tipica",[65,109,110],{},"Media: dipende dai limiti che ti crea",[65,112,113],{},"Più alta: componenti vecchi e meno persone che li conoscono",[115,116,118],"h3",{"id":117},"webforms","WebForms",[10,120,121,122,129,130,135],{},"La situazione è meno drammatica di quanto si legga. La ",[123,124,128],"a",{"href":125,"rel":126},"https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fdotnet\u002Farchitecture\u002Fblazor-for-web-forms-developers\u002Fmigration",[127],"nofollow","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 ",[123,131,134],{"href":132,"rel":133},"https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Flifecycle\u002Fproducts\u002Fmicrosoft-net-framework",[127],".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.",[10,137,138],{},"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.",[115,140,58],{"id":141},"asp-classico",[10,143,144],{},"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.",[21,146,148],{"id":147},"quando-conviene-muoversi","Quando conviene muoversi",[10,150,151],{},"Valuta un intervento se riconosci almeno uno di questi casi:",[153,154,155,159,162,170,173,176],"ul",{},[156,157,158],"li",{},"Da telefono l’applicazione è inutilizzabile, e chi è fuori sede ne ha bisogno.",[156,160,161],{},"Le pagine sono lente, e i miglioramenti non bastano più.",[156,163,164,165,169],{},"Ogni modifica costa molto e rompe qualcos’altro: è il cosiddetto ",[123,166,168],{"href":167},"\u002Fblog\u002Fdebito-tecnico-cos-e","debito tecnico",".",[156,171,172],{},"Vuoi collegare e-commerce, CRM o un’app, ma l’applicazione non ha interfacce adatte.",[156,174,175],{},"Il server su cui gira non è più aggiornato, e non puoi spostarla facilmente.",[156,177,178],{},"Devi passare un controllo di sicurezza di un cliente o di un partner.",[10,180,181],{},"Se nessuno di questi vale, è legittimo aspettare. Limita però l’esposizione: applicazione aggiornata, sistema operativo supportato e nessuna parte più accessibile del necessario.",[21,183,185],{"id":184},"perché-la-riscrittura-completa-è-una-trappola","Perché la riscrittura completa è una trappola",[10,187,188,189,194,195,169],{},"La guida di ",[123,190,193],{"href":191,"rel":192},"https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Faspnet\u002Fcore\u002Fmigration\u002Ffx-to-core\u002F",[127],"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 ",[123,196,198],{"href":197},"\u002Fblog\u002Friscrivere-software-da-zero","riscrivere da zero o sostituire un pezzo alla volta",[10,200,201],{},"Le difficoltà specifiche di queste applicazioni sono note:",[153,203,204,210,216,222],{},[156,205,206,209],{},[13,207,208],{},"Sessioni e login."," Vecchio e nuovo devono riconoscere lo stesso utente, senza chiedergli di accedere due volte.",[156,211,212,215],{},[13,213,214],{},"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.",[156,217,218,221],{},[13,219,220],{},"Controlli di terze parti."," Griglie e report di vecchi produttori possono non avere un equivalente diretto.",[156,223,224,227],{},[13,225,226],{},"Stato delle pagine."," Molte schermate WebForms si reggono su meccanismi che sulle piattaforme moderne non esistono: vanno ripensate, non tradotte.",[21,229,231],{"id":230},"come-si-fa-per-gradi","Come si fa, per gradi",[10,233,234],{},"Poiché vecchio e nuovo sono entrambi applicazioni web, il metodo graduale funziona particolarmente bene:",[236,237,238,244,250,256,262],"ol",{},[156,239,240,243],{},[13,241,242],{},"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.",[156,245,246,249],{},[13,247,248],{},"Condividere dati e accesso."," Vecchio e nuovo usano lo stesso database e riconoscono lo stesso utente.",[156,251,252,255],{},[13,253,254],{},"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.",[156,257,258,261],{},[13,259,260],{},"Tornare indietro in pochi minuti."," Se la sezione nuova ha un problema, basta rimandare il traffico alla vecchia.",[156,263,264,267],{},[13,265,266],{},"Spegnere il vecchio"," quando non riceve più richieste.",[10,269,270],{},"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.",[21,272,274],{"id":273},"dove-arrivare","Dove arrivare",[10,276,277],{},"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.",[10,279,280,281,285,286,169],{},"Scegli quella che ti garantirà più facilmente sviluppatori tra dieci anni. Se serve chiarire cosa significa nel tuo contesto, parti da un ",[123,282,284],{"href":283},"\u002Fblog\u002Faudit-software-aziendale","audit del software",". Per il quadro completo, leggi la ",[123,287,289],{"href":288},"\u002Fblog\u002Fmodernizzazione-software-legacy","guida alla modernizzazione del software legacy",[21,291,293],{"id":292},"domande-frequenti","Domande frequenti",[115,295,297],{"id":296},"webforms-verrà-abbandonato-da-microsoft","WebForms verrà abbandonato da Microsoft?",[10,299,300],{},"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”.",[115,302,304],{"id":303},"esistono-strumenti-che-convertono-automaticamente","Esistono strumenti che convertono automaticamente?",[10,306,307],{},"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.",[115,309,311],{"id":310},"lapplicazione-può-restare-online-durante-il-lavoro","L’applicazione può restare online durante il lavoro?",[10,313,314],{},"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.",{"title":316,"searchDepth":317,"depth":317,"links":318},"",2,[319,320,325,326,327,328,329],{"id":23,"depth":317,"text":24},{"id":39,"depth":317,"text":40,"children":321},[322,324],{"id":117,"depth":323,"text":118},3,{"id":141,"depth":323,"text":58},{"id":147,"depth":317,"text":148},{"id":184,"depth":317,"text":185},{"id":230,"depth":317,"text":231},{"id":273,"depth":317,"text":274},{"id":292,"depth":317,"text":293,"children":330},[331,332,333],{"id":296,"depth":323,"text":297},{"id":303,"depth":323,"text":304},{"id":310,"depth":323,"text":311},"2026-11-01","La tua applicazione è in ASP.NET WebForms o ASP classico? Quando conviene migrarla, cosa dice Microsoft e come sostituirla per gradi senza fermarla.","md",{},true,16,"\u002Fblog\u002Fmigrare-asp-net-webforms",[342,343,344],"riscrivere-software-da-zero","debito-tecnico-cos-e","modernizzazione-software-legacy",{"title":5,"description":335},"Migrare ASP.NET WebForms e ASP classico: la guida | ITnext",{"loc":340,"lastmod":334},"blog\u002Fmigrare-asp-net-webforms","5Jr9scSxgMF2q2fWwDCoV_FSP2Z_Fwdyh0rK2g_HfOw",[351,353,355],{"path":197,"title":352},"Riscrivere il software da zero o sostituirlo un pezzo alla volta?",{"path":167,"title":354},"Debito tecnico: cos’è, spiegato a chi dirige un’azienda",{"path":288,"title":356},"Modernizzazione del software legacy: la guida per le PMI che non possono fermarsi",1793609718895]