Modernizzazione .NET

Il .NET legacy, portato avanti senza fermare l’azienda

L’applicazione regge ancora l’azienda, ed è proprio per questo che nessuno vuole toccarla. Portiamo i sistemi WebForms, WCF, VB.NET e .NET Framework su .NET attuale una porzione alla volta, con il vecchio e il nuovo in esecuzione fianco a fianco finché dal lato vecchio non resta più nulla.

Probabilmente siete qui perché

  • Un’applicazione WebForms o WCF regge ancora una parte critica dell’azienda, e chi l’ha scritta se n’è andato.
  • Ogni stima per modernizzarla è tornata come una riscrittura per cui non potete permettervi di congelare la roadmap.
  • Siete bloccati su Windows Server e IIS perché l’applicazione non può girare da nessun’altra parte.
  • Le revisioni di sicurezza e conformità continuano a segnalare una versione del framework non più supportata.

Come modernizziamo

Sempre con lo stesso schema, perché è l’unico che abbiamo visto arrivare in fondo.

Valutare per esperienza, non per ricerca

Abbiamo scritto codice di produzione in ogni stack dell’elenco qui sotto, quindi la valutazione attinge alla memoria invece che a una fase di ricerca pagata da voi.

Sbloccare prima la build

Progetti in stile SDK, librerie condivise multi-target e una pipeline che va da sola. Ripaga prima che la migrazione finisca e rende ripetibile tutto ciò che viene dopo.

Strangler, mai big bang

Il nuovo stack si mette in piedi accanto al vecchio. Le porzioni si spostano dietro gli stessi URL, una alla volta, ciascuna con una via di ritorno.

Lasciare il vostro team in grado di finire

Ogni porzione è documentata come schema. L’obiettivo è che siano i vostri sviluppatori a portare avanti le porzioni successive, con noi in revisione.

Offerte di ingresso a perimetro definito

Un primo passo che un manager può approvare

Ogni incarico può partire da una di queste. Ognuna ha un nome e un perimetro messo per iscritto prima di iniziare, così la prima decisione è piccola e vedete come lavoriamo prima di impegnarvi in qualcosa di più grande.

2 settimane

Valutazione di modernizzazione

Ogni progetto, dipendenza e presupposto di hosting della soluzione, mappato su ciò che diventerà e stimato come piano strangler finanziabile una fase alla volta.

Cosa è incluso

  • Inventario di progetti, pacchetti, controlli di terze parti e interop COM
  • Cosa si porta in modo meccanico, cosa va davvero riscritto e cosa non dovrebbe sopravvivere
  • Piano di migrazione a fasi, ordinato per rischio e con stime
  • Una presentazione dei risultati per chi paga

Cosa vi resta in mano

Un piano a fasi e con i costi, da portare in approvazione del budget e da tenere, che il lavoro lo facciamo noi o meno.

Chiedete informazioni
3 settimane

Modernizzazione di build e pipeline

Progetti in stile SDK, gestione dei pacchetti aggiornata e una pipeline di CI che va da sola. Il passo poco glamour che rende ripetibili tutti quelli successivi.

Cosa è incluso

  • csproj legacy e packages.config convertiti
  • Librerie condivise multi-target in vista del passaggio
  • Build e test in CI a ogni modifica
  • Build e deploy containerizzati dove ha senso

Cosa vi resta in mano

Una soluzione che si compila allo stesso modo ovunque, pronta per l’avvio della migrazione e che ripaga ancora prima che inizi.

Chiedete informazioni
6–8 settimane

Migrazione della prima porzione

Una parte ben delimitata dell’applicazione portata su .NET moderno, in esecuzione accanto al vecchio sistema dietro gli stessi URL, e collaudata in produzione.

Cosa è incluso

  • Porzione scelta in base al valore e a quanto si separa in modo pulito
  • Nuovo stack messo in piedi accanto al vecchio
  • Traffico instradato porzione per porzione, con rollback
  • Lo schema documentato, perché il vostro team possa ripeterlo

Cosa vi resta in mano

Lo schema strangler dimostrato sul vostro sistema, con utenti reali sul lato nuovo, e una stima misurata per il resto.

Chiedete informazioni

Ogni offerta viene quotata a prezzo fisso dopo aver visto il perimetro, e un prezzo fisso resta fisso: se ci mettiamo di più, è un problema nostro, non vostro.

Le domande che ci fanno i clienti

Dobbiamo riscrivere la nostra applicazione WebForms?

Il markup sì: il ciclo di vita delle pagine e il ViewState non hanno equivalenti in .NET moderno. La logica di business sottostante di solito no, e separare le due cose è la maggior parte del lavoro. Per questo la valutazione viene prima.

I nostri servizi WCF possono mantenere i chiamanti attuali?

Spesso sì. Dove i chiamanti sono terze parti che non potete modificare, CoreWCF mantiene in vita il contratto SOAP mentre tutto ciò che sta dietro passa a .NET moderno.

Quanto dura una migrazione da .NET Framework?

Dipende molto più dallo strato dati e dalle dipendenze di terze parti che dalle dimensioni del codice. La valutazione di due settimane esiste proprio per rispondere a questa domanda con una stima a fasi anziché con un’ipotesi.

Lavorate su VB.NET?

Sì. Abbiamo portato in produzione VB.NET e lo leggiamo, lo portiamo o lo incapsuliamo, comprese le parti che nessuno nel team attuale vuole aprire.

Siete ancora su .NET Framework?

Diteci cosa fa l’applicazione e su cosa gira. Vi diremo cosa comporta davvero il passaggio, e quale dovrebbe essere la prima porzione.