Le vostre vecchie applicazioni .NET, WinForms e Web Forms, modernizzate
Le applicazioni scritte per .NET Framework negli anni Duemila e Dieci sono di solito in condizioni migliori dei programmi VB6 o Access, e meritano una risposta più attenta di una riscrittura completa. Stabiliamo cosa si può spostare così com'è e cosa va ricostruito, poi portiamo l'applicazione su ASP.NET Core con gli stessi dati e le stesse regole.
Perché adesso
Il supporto di .NET Framework 4.6.2 termina il 12/01/2027, e le versioni 4.6.1 e precedenti sono già fuori supporto. .NET Framework 4.8 e 4.8.1 seguono il ciclo di vita della versione di Windows su cui sono installati, quindi un'applicazione su 4.8 non corre rischi immediati. Il framework però riceve solo correzioni, mentre nuove librerie, strumenti e opzioni di hosting nascono per il .NET attuale.
ASP.NET Web Forms funziona solo su .NET Framework e non è stato portato in ASP.NET Core. Windows Forms funziona sul .NET attuale, ma resta una tecnologia desktop per Windows e non dà al vostro personale l'accesso da browser.
- Windows 10Fine del supporto Microsoft
- .NET Framework 4.6.2Fine del supporto Microsoft
Cosa modernizziamo
Applicazioni desktop e web costruite su .NET Framework, e i servizi che le circondano.
Applicazioni Windows Forms
Programmi desktop con griglie
DataGridView, DataSet tipizzati e TableAdapter, spesso installati con ClickOnce o un MSI. Diventano applicazioni web, oppure passano al .NET attuale restando programmi desktop quando è la scelta migliore.Siti ASP.NET Web Forms
Pagine con ViewState, postback,
UpdatePanel,GridVieweSqlDataSource, master page e user control. Le ricostruiamo in ASP.NET Core con Razor Pages, MVC o Blazor, a seconda dell'applicazione.Accesso ai dati
Codice ADO.NET, DataSet tipizzati, LINQ to SQL, modelli Entity Framework 6 e stored procedure. Se il database è solido lo teniamo e cambiamo solo il codice che lo interroga.
Servizi e integrazioni
Servizi web WCF e ASMX, .NET Remoting e servizi Windows. Diventano API REST e servizi in background sul .NET attuale.
Autenticazione e configurazione
Forms Authentication, provider Membership di ASP.NET, autenticazione Windows, impostazioni in web.config e app.config. Utenti e ruoli passano su ASP.NET Core Identity, oppure su Microsoft Entra ID o Active Directory se li usate già.
Report
Crystal Reports per Visual Studio, report RDLC in ReportViewer ed esportazioni in Excel. Diventano documenti generati dal server, in PDF o in Excel.
Come diventa la versione web
- Panoramica
- Inquilini
- Immobili
- Pagamenti
- Report
| Mese | Dovuto | Pagato | Pagato il | |
|---|---|---|---|---|
| apr 2026 | € 850,00 | € 850,00 | 01/04/2026 | |
| mag 2026 | € 850,00 | € 850,00 | 02/05/2026 | |
| giu 2026 | € 850,00 | € 850,00 | 03/06/2026 | |
| lug 2026 | € 850,00 | € 400,00 | 08/07/2026 | |
| ago 2026 | € 850,00 | € 850,00 | 04/08/2026 | |
| set 2026 | € 850,00 | – | – |
| Mese | Dovuto | Pagato | Pagato il | Saldo |
|---|---|---|---|---|
| apr 2026 | 850,00 | 850,00 | 01/04/2026 | 0,00 |
| mag 2026 | 850,00 | 850,00 | 02/05/2026 | 0,00 |
| giu 2026 | 850,00 | 850,00 | 03/06/2026 | 0,00 |
| lug 2026 | 850,00 | 400,00 | 08/07/2026 | 450,00 |
| ago 2026 | 850,00 | 850,00 | 04/08/2026 | 450,00 |
| set 2026 | 850,00 | 1.300,00 |
Un registro degli affitti come potrebbe apparire in un programma WinForms, e lo stesso registro come pagina web.
Trascinate il cursore, oppure usate le frecce della tastiera.
Dove finisce ogni parte
- In .NET Framework: Schermate WinForms o pagine .aspx
- Nell'applicazione web: Razor Pages o componenti Blazor
- In .NET Framework: Code-behind e gestori di eventi
- Nell'applicazione web: Servizi e controller coperti da test
- In .NET Framework: DataSet tipizzati, LINQ to SQL
- Nell'applicazione web: Entity Framework Core o Dapper, sullo stesso database
- In .NET Framework: Servizi WCF o ASMX
- Nell'applicazione web: API REST su ASP.NET Core
- In .NET Framework: Membership e Forms Authentication
- Nell'applicazione web: ASP.NET Core Identity o Entra ID
- In .NET Framework: ClickOnce o MSI su ogni PC
- Nell'applicazione web: Un indirizzo, aperto nel browser
Come si svolge la migrazione
Analisi entro 48 ore
Ci mandate la solution con il codice sorgente, un backup o uno script del database e i file di configurazione senza le password di produzione. Entro 48 ore vi rispondiamo con un report scritto: cosa fa oggi il programma, dove sono i rischi, come sarebbe organizzata la versione web, un prezzo fisso per un modulo pilota e una stima per il resto. È gratuita e non vi impegna a nulla.
Modulo pilota
Realizziamo una parte dell'applicazione su una copia dei vostri dati reali, di solito quella che si usa di più. Il vostro personale la usa nel lavoro di tutti i giorni prima che decidiate sul resto.
Test automatici tra vecchio e nuovo
Mandiamo le stesse richieste e gli stessi dati alla vecchia e alla nuova applicazione e confrontiamo i risultati, dai campi calcolati alle risposte delle API e ai documenti generati. Per ogni regola che troviamo scriviamo un test automatico che dà gli stessi dati in ingresso al vecchio programma e alla nuova applicazione e controlla che i risultati coincidano. Ricevete i risultati dei test.
30 giorni in parallelo
Quando l'applicazione completa è pronta, la vecchia applicazione resta in uso accanto a essa per 30 giorni. Ogni differenza emerge mentre il vecchio programma c'è ancora, e la correggiamo all'interno del prezzo concordato.
Gli intoppi tipici, e come li gestiamo
ViewState e logica dei postback
Le pagine Web Forms tengono lo stato nel ViewState e in
Session, e la loro logica è divisa traPage_Load, eventi dei controlli e controlliIsPostBack. In ASP.NET Core non c'è un equivalente. Traduciamo il ciclo di vita della pagina in richieste esplicite, così ogni azione ha un punto d'ingresso chiaro.API che non esistono più
Domini applicazione, .NET Remoting e Code Access Security non sono disponibili sul .NET attuale, e alcune API compilano ma sollevano
PlatformNotSupportedExceptionquando vengono eseguite. Le cerchiamo nel codice durante l'analisi, prima di fissare qualsiasi prezzo.Password del Membership
Gli account creati dal vecchio provider Membership di ASP.NET salvano le password in un formato di hash che ASP.NET Core Identity non usa. Migriamo gli account in modo che le persone accedano con la password attuale e l'hash venga aggiornato al primo accesso, oppure prevediamo un reset se le vecchie impostazioni non lo consentono.
Controlli di terze parti e motori di report
Le suite di controlli per Web Forms e WinForms, come quelle di Telerik, DevExpress o Infragistics, e il runtime di Crystal Reports sono legati a versioni precise del framework. Verifichiamo versioni e licenze e decidiamo controllo per controllo con cosa sostituirli.
Regole in stored procedure e trigger
In molte applicazioni di quel periodo le vere regole di business stanno nel database. Se il database resta, anche quelle procedure restano e vengono coperte dai test di confronto. Se cambia, le spostiamo una alla volta, con criterio.
Stato tenuto in memoria
Le applicazioni che tengono dati in
Session, in variabili statiche o nella cache in-process danno per scontato un unico server che non si riavvia mai. Rendiamo esplicito quello stato, così la nuova applicazione può girare su più istanze e sopravvivere a un riavvio.
Prezzo e pagamento
Analisi
Gratuita
scritta, entro 48 ore
Modulo pilota
1.000–1.500 €
di solito, 50% all'inizio e 50% all'approvazione
L'analisi è gratuita. Se decidete di non andare avanti, il report resta a voi e non dovete nulla.
I prezzi sono fissi e concordati per iscritto prima di iniziare. Se il perimetro cambia, vi mandiamo un nuovo preventivo scritto e aspettiamo la vostra approvazione prima di fare il lavoro in più.
Per una migrazione completa puntiamo a stare dal 40 al 60% sotto il preventivo tipico di un'agenzia. Possiamo farlo perché siamo uno studio piccolo, senza uffici da pagare né rete commerciale.
Prezzi IVA esclusa.
Una migrazione vera, verificata dai test
Northwind è il database di esempio che Microsoft distribuiva con Access, non un nostro cliente. Ne abbiamo migrato una copia pubblica in SQLite e PostgreSQL, confrontato ogni tabella e ogni query con l'originale tramite test automatici e costruito sul risultato un'applicazione web funzionante. Il caso di studio riporta i numeri, il report di equivalenza elenca ogni controllo.
Northwind è un database Access, ma per .NET WinForms e WebForms seguiamo lo stesso metodo: migrare, testare rispetto all'originale, far girare i due in parallelo.
Report di equivalenza (in inglese) · Anteprima cliccabile e analisi di esempio (demo)

Domande frequenti
Dobbiamo riscrivere tutto?
No. Le librerie di classi con la logica di business passano spesso al .NET attuale con modifiche limitate, e il database di solito può restare. Ciò che cambia di più è l'interfaccia, cioè le pagine Web Forms e le schermate WinForms. L'analisi separa ciò che si può spostare da ciò che va ricostruito.
La nostra applicazione WinForms può restare un programma desktop?
Sì. Windows Forms è supportato sul .NET attuale, e passarci allunga la vita del programma con una spesa inferiore a una riscrittura web. Se i vostri utenti hanno bisogno di accedere da browser o da fuori ufficio, la risposta è un'applicazione web. Quando hanno senso entrambe, l'analisi le quota tutte e due.
La nostra applicazione gira su .NET Framework 4.8. È urgente?
Non per il supporto, dato che 4.8 e 4.8.1 seguono il ciclo di vita della versione di Windows su cui girano. I motivi per spostarsi di solito sono altri: accesso da browser, hosting su Linux, librerie che non supportano più .NET Framework, o la difficoltà di trovare sviluppatori Web Forms.
La migrazione si può fare per fasi?
Sì. ASP.NET Core e la vecchia applicazione possono girare affiancate dietro lo stesso indirizzo, spostando un'area alla volta. È lo stesso approccio incrementale che Microsoft descrive nella sua documentazione per le applicazioni ASP.NET.
Usate strumenti di aggiornamento automatico?
Dove servono, per esempio per aggiornare i file di progetto e i riferimenti ai pacchetti. Non decidono però come deve funzionare una pagina Web Forms in ASP.NET Core, e ogni parte convertita passa per gli stessi test di confronto del resto.
Quale database useremo?
Di solito quello che avete già, in genere SQL Server. Cambiare database è una decisione a parte, e la consigliamo solo quando c'è un motivo chiaro.
Gli altri servizi
- Da Microsoft Access ad applicazione webTabelle, query, maschere, report e VBA portati in un'applicazione web su SQL Server o MySQL.
- Da Excel VBA ad applicazione webCartelle di lavoro con macro, UserForm e fogli collegati trasformate in un'applicazione web multiutente.
- Migrazione di applicazioni VB6Programmi Visual Basic 6 portati in C# e sul web, con o senza il codice sorgente.
- Migrazione di applicazioni DelphiProgrammi Delphi su BDE, Paradox o dBase portati in un'applicazione web su database SQL.
- Software su misura e integrazioniNuovi gestionali, integrazioni tramite API REST, migrazione dei dati e manutenzione.
Contatti
Via email:
riccardo@Mandateci il codice sorgente e una copia del database con dati di prova, oppure una breve descrizione dell'applicazione. Vi rispondiamo entro un giorno lavorativo.
Lavoriamo dall'Italia.