Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Modernizza le applicazioni ASP.NET Web Forms su AWS - Prontuario AWS

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Modernizza le applicazioni ASP.NET Web Forms su AWS

Creato da Vijai Anand Ramalingam (AWS) e Sreelaxmi Pai (AWS)

Riepilogo

Questo modello descrive i passaggi per modernizzare un'applicazione ASP.NET Web Forms legacy e monolitica portandola su ASP.NET Core su AWS.

Il trasferimento delle applicazioni ASP.NET Web Forms su ASP.NET Core consente di sfruttare le prestazioni, i risparmi sui costi e il robusto ecosistema di Linux. Tuttavia, può essere un notevole sforzo manuale. In questo modello, l'applicazione legacy viene modernizzata in modo incrementale utilizzando un approccio graduale e quindi containerizzata nel cloud AWS.

Prendi in considerazione un'applicazione monolitica legacy per un carrello della spesa. Supponiamo che sia stata creata come applicazione ASP.NET Web Forms e sia costituita da pagine.aspx con un file code-behind (). aspx.cs Il processo di modernizzazione consiste nei seguenti passaggi:

  1. Suddividi il monolite in microservizi utilizzando i modelli di scomposizione appropriati. Per ulteriori informazioni, consulta la guida Decomposizione dei monoliti in microservizi sul sito Web AWS Prescriptive Guidance.

  2. Esegui il port della tua applicazione ASP.NET Web Forms (.NET Framework) legacy su ASP.NET Core in .NET 5 o versione successiva. In questo modello, si utilizza Porting Assistant for .NET per eseguire la scansione dell'applicazione ASP.NET Web Forms e identificare le incompatibilità con ASP.NET Core. Ciò riduce lo sforzo di portabilità manuale.

  3. Risviluppa il livello dell'interfaccia utente di Web Forms utilizzando React. Questo modello non copre la riqualificazione dell'interfaccia utente. Per istruzioni, consulta Creare una nuova app React nella documentazione di React.

  4. Risviluppa il file code-behind di Web Forms (interfaccia aziendale) come API web ASP.NET Core. Questo modello utilizza i NDepend report per aiutare a identificare i file e le dipendenze necessari.

  5. Aggiorna progetti condivisi/comuni, come Business Logic e Data Access, nell'applicazione precedente a .NET 5 o versione successiva utilizzando Porting Assistant for .NET. 

  6. Aggiungi i servizi AWS per completare la tua applicazione. Ad esempio, puoi utilizzare Amazon CloudWatch Logs per monitorare, archiviare e accedere ai log delle tue applicazioni e AWS Systems Manager per archiviare le impostazioni delle applicazioni.

  7. Containerizza l'applicazione ASP.NET Core modernizzata. Questo modello crea un file Docker destinato a Linux in Visual Studio e utilizza Docker Desktop per testarlo localmente. Questo passaggio presuppone che l'applicazione legacy sia già in esecuzione su un'istanza Windows locale o Amazon Elastic Compute Cloud (Amazon EC2). Per ulteriori informazioni, consulta lo schema Esegui un contenitore Docker dell'API Web ASP.NET Core su un'istanza Amazon EC2 Linux.

  8. Distribuisci l'applicazione core ASP.NET modernizzata su Amazon Elastic Container Service (Amazon ECS). Questo modello non copre la fase di implementazione. Per istruzioni, consulta Amazon ECS Workshop.

Nota

Questo modello non copre lo sviluppo dell'interfaccia utente, la modernizzazione del database o le fasi di implementazione dei container.

Prerequisiti e limitazioni

Prerequisiti

Architettura

Modernizzazione dell'applicazione del carrello degli acquisti

Il diagramma seguente illustra il processo di modernizzazione di un'applicazione esistente per il carrello degli acquisti ASP.NET.

Modernizzazione di un'applicazione legacy per il carrello degli acquisti

Architettura Target

Il diagramma seguente illustra l'architettura dell'applicazione modernizzata per il carrello degli acquisti su AWS. APIs I Web ASP.NET Core vengono distribuiti in un cluster Amazon ECS. I servizi di registrazione e configurazione sono forniti da Amazon CloudWatch Logs e AWS Systems Manager.

Architettura di destinazione per l'applicazione ASP.NET Web Forms su AWS

Strumenti

Servizi AWS

  • Amazon ECS — Amazon Elastic Container Service (Amazon ECS) è un servizio di gestione dei container veloce e altamente scalabile per l'esecuzione, l'arresto e la gestione dei container su un cluster. Puoi eseguire le tue attività e i tuoi servizi su un'infrastruttura serverless gestita da AWS Fargate. In alternativa, per un maggiore controllo sulla tua infrastruttura, puoi eseguire le tue attività e i tuoi servizi su un cluster di EC2 istanze da te gestito.

  • Amazon CloudWatch Logs: Amazon CloudWatch Logs centralizza i log di tutti i sistemi, le applicazioni e i servizi AWS che utilizzi. Puoi visualizzare e monitorare i log, cercarli per codici o modelli di errore specifici, filtrarli in base a campi specifici o archiviarli in modo sicuro per analisi future.

  • AWS Systems Manager ─ AWS Systems Manager è un servizio AWS che puoi usare per visualizzare e controllare la tua infrastruttura su AWS. Utilizzando la console Systems Manager, puoi visualizzare i dati operativi da più servizi AWS e automatizzare le attività operative tra le tue risorse AWS. Systems Manager ti aiuta a mantenere la sicurezza e la conformità scansionando le istanze gestite e segnalando (o adottando azioni correttive) su eventuali violazioni delle policy rilevate.

Strumenti

  • Visual Studio o Visual Studio Code: strumenti per la creazione di applicazioni.NET APIs, Web e altri programmi.

  • AWS Toolkit for Visual Studio: un'estensione per Visual Studio che aiuta a sviluppare, eseguire il debug e distribuire applicazioni.NET che utilizzano i servizi AWS.

  • Docker Desktop: uno strumento che semplifica la creazione e la distribuzione di applicazioni containerizzate.

  • NDepend— Un analizzatore che monitora il codice.NET per individuare dipendenze, problemi di qualità e modifiche al codice.

  • Porting Assistant for .NET: strumento di analisi che analizza il codice.NET per identificare le incompatibilità con .NET Core e stimare lo sforzo di migrazione.

Epiche

AttivitàDescrizioneCompetenze richieste

Aggiorna la tua applicazione.NET Framework legacy a.NET 5.

È possibile utilizzare Porting Assistant for .NET per convertire l'applicazione ASP.NET Web Forms legacy in .NET 5 o versione successiva. Segui le istruzioni contenute nella documentazione di Porting Assistant for .NET.

Sviluppatore di app

Genera NDepend report.

Quando modernizzi l'applicazione ASP.NET Web Forms scomponendola in microservizi, potresti non aver bisogno di tutti i file.cs dell'applicazione precedente. È possibile utilizzarlo NDepend per generare un report per qualsiasi file code-behind (.cs), per ottenere tutti i chiamanti e i chiamanti. Questo rapporto consente di identificare e utilizzare solo i file richiesti nei microservizi.

Dopo l'installazione NDepend (vedi la sezione Prerequisiti), apri la soluzione (file.sln) per l'applicazione precedente in Visual Studio e segui questi passaggi:

  1. Crea l'applicazione legacy in Visual Studio.

  2. Nella barra dei menu di Visual Studio NDepend, scegli Allega nuovo NDepend progetto alla soluzione VS corrente.  

  3. Scegli Analizza gli assiemi.NET

  4. Una volta completata l'analisi, accedi al progetto in Solution Explorer. Fate clic con il pulsante destro del mouse su qualsiasi file code-behind (ad esempiolistproducts.aspx.cs) per il quale desiderate generare il report, quindi scegliete Mostra sul grafico delle dipendenze

  5. Nella barra di navigazione, scegli Chiamanti e chiamanti, quindi scegli Modifica query di codice. 

  6. Nel riquadro di modifica delle interrogazioni e delle regole, scegli la freccia di download, quindi scegli Esporta in Excel.

Questo processo genera un report per il file code-behind che elenca tutti i chiamanti e i chiamanti. Per ulteriori informazioni sul grafico delle dipendenze, consulta la documentazione. NDepend

Sviluppatore di app

Crea una nuova soluzione.NET 5.

Per creare una nuova struttura.NET 5 (o versione successiva) per il tuo sito Web ASP.NET Core modernizzato: APIs

  1. Apri Visual Studio.

  2. Crea una nuova soluzione vuota.

  3. Crea nuovi progetti destinati a .NET 5 (o versioni successive), in base alla tua applicazione legacy. Per esempi di progetti nuovi e precedenti per un'applicazione per il carrello degli acquisti, consulta la sezione Informazioni aggiuntive.

  4. Utilizzate il NDepend rapporto del passaggio precedente per identificare tutti i file richiesti. Copia questi file dall'applicazione che hai aggiornato in precedenza e aggiungili alla nuova soluzione.

  5. Crea la soluzione e risolvi tutti i problemi.

Per ulteriori informazioni sulla creazione di progetti e soluzioni, consulta la documentazione di Visual Studio.

Nota

Man mano che si crea la soluzione e si verifica la funzionalità, è possibile identificare diversi file aggiuntivi da aggiungere alla soluzione, oltre ai file NDepend identificati.

Sviluppatore di app

Trasferisci la tua applicazione precedente su.NET 5 o versione successiva

AttivitàDescrizioneCompetenze richieste

Aggiorna la tua applicazione.NET Framework legacy a.NET 5.

È possibile utilizzare Porting Assistant for .NET per convertire l'applicazione ASP.NET Web Forms legacy in .NET 5 o versione successiva. Segui le istruzioni contenute nella documentazione di Porting Assistant for .NET.

Sviluppatore di app

Genera NDepend report.

Quando modernizzi l'applicazione ASP.NET Web Forms scomponendola in microservizi, potresti non aver bisogno di tutti i file.cs dell'applicazione precedente. È possibile utilizzarlo NDepend per generare un report per qualsiasi file code-behind (.cs), per ottenere tutti i chiamanti e i chiamanti. Questo rapporto consente di identificare e utilizzare solo i file richiesti nei microservizi.

Dopo l'installazione NDepend (vedi la sezione Prerequisiti), apri la soluzione (file.sln) per l'applicazione precedente in Visual Studio e segui questi passaggi:

  1. Crea l'applicazione legacy in Visual Studio.

  2. Nella barra dei menu di Visual Studio NDepend, scegli Allega nuovo NDepend progetto alla soluzione VS corrente.  

  3. Scegli Analizza gli assiemi.NET

  4. Una volta completata l'analisi, accedi al progetto in Solution Explorer. Fate clic con il pulsante destro del mouse su qualsiasi file code-behind (ad esempiolistproducts.aspx.cs) per il quale desiderate generare il report, quindi scegliete Mostra sul grafico delle dipendenze

  5. Nella barra di navigazione, scegli Chiamanti e chiamanti, quindi scegli Modifica query di codice. 

  6. Nel riquadro di modifica delle interrogazioni e delle regole, scegli la freccia di download, quindi scegli Esporta in Excel.

Questo processo genera un report per il file code-behind che elenca tutti i chiamanti e i chiamanti. Per ulteriori informazioni sul grafico delle dipendenze, consulta la documentazione. NDepend

Sviluppatore di app

Crea una nuova soluzione.NET 5.

Per creare una nuova struttura.NET 5 (o versione successiva) per il tuo sito Web ASP.NET Core modernizzato: APIs

  1. Apri Visual Studio.

  2. Crea una nuova soluzione vuota.

  3. Crea nuovi progetti destinati a .NET 5 (o versioni successive), in base alla tua applicazione legacy. Per esempi di progetti nuovi e precedenti per un'applicazione per il carrello degli acquisti, consulta la sezione Informazioni aggiuntive.

  4. Utilizzate il NDepend rapporto del passaggio precedente per identificare tutti i file richiesti. Copia questi file dall'applicazione che hai aggiornato in precedenza e aggiungili alla nuova soluzione.

  5. Crea la soluzione e risolvi tutti i problemi.

Per ulteriori informazioni sulla creazione di progetti e soluzioni, consulta la documentazione di Visual Studio.

Nota

Man mano che si crea la soluzione e si verifica la funzionalità, è possibile identificare diversi file aggiuntivi da aggiungere alla soluzione, oltre ai file NDepend identificati.

Sviluppatore di app
AttivitàDescrizioneCompetenze richieste

Implementa APIs il web con ASP.NET Core.

Supponiamo che uno dei microservizi che hai identificato nella tua precedente applicazione per il carrello degli acquisti Monolith sia Products. Hai creato un nuovo progetto di API web ASP.NET Core per Products nell'epopea precedente. In questo passaggio, identifichi e modernizzi tutti i moduli Web (pagine.aspx) correlati ai prodotti. Supponiamo che Products sia composto da quattro moduli Web, come illustrato in precedenza nella sezione Architettura:

  • Elenca prodotti

  • Visualizza prodotto

  • Aggiungi/Modifica prodotto

  • Elimina prodotto

È necessario analizzare ogni modulo Web, identificare tutte le richieste inviate al database per eseguire una logica e ottenere risposte. È possibile implementare ogni richiesta come endpoint dell'API Web. Dati i suoi moduli web, Products può avere i seguenti endpoint possibili:

  • /api/products

  • /api/products/{id}

  • /api/products/add

  • /api/products/update/{id}

  • /api/products/delete/{id}

Come accennato in precedenza, puoi anche riutilizzare tutti gli altri progetti che hai aggiornato a.NET 5, inclusi Business Logic, Data Access e progetti condivisi/comuni.

Sviluppatore di app

Configura Amazon CloudWatch Logs.

Puoi usare Amazon CloudWatch Logs per monitorare, archiviare e accedere ai log della tua applicazione. Puoi accedere ai dati in Amazon CloudWatch Logs utilizzando un SDK AWS. Puoi anche integrare applicazioni.NET con CloudWatch Logs utilizzando i più diffusi framework di logging.NET come NLogLog4Net e il framework di registrazione ASP.NET Core.

Per ulteriori informazioni su questo passaggio, consulta il post di blog Amazon CloudWatch Logs e.NET Logging Frameworks.

Sviluppatore di app

Configura AWS Systems Manager Parameter Store.

Puoi utilizzare AWS Systems Manager Parameter Store per archiviare le impostazioni dell'applicazione, come le stringhe di connessione, separatamente dal codice dell'applicazione. Il NuGet pacchetto Amazon.Extensions.Configuration. SystemsManagersemplifica il modo in cui l'applicazione carica queste impostazioni da AWS Systems Manager Parameter Store nel sistema di configurazione .NET Core. 

Per ulteriori informazioni su questo passaggio, consulta il post del blog .NET Core configuration provider for AWS Systems Manager.

Sviluppatore di app

Aggiorna il codice dell'applicazione

AttivitàDescrizioneCompetenze richieste

Implementa APIs il web con ASP.NET Core.

Supponiamo che uno dei microservizi che hai identificato nella tua precedente applicazione per il carrello degli acquisti Monolith sia Products. Hai creato un nuovo progetto di API web ASP.NET Core per Products nell'epopea precedente. In questo passaggio, identifichi e modernizzi tutti i moduli Web (pagine.aspx) correlati ai prodotti. Supponiamo che Products sia composto da quattro moduli Web, come illustrato in precedenza nella sezione Architettura:

  • Elenca prodotti

  • Visualizza prodotto

  • Aggiungi/Modifica prodotto

  • Elimina prodotto

È necessario analizzare ogni modulo Web, identificare tutte le richieste inviate al database per eseguire una logica e ottenere risposte. È possibile implementare ogni richiesta come endpoint dell'API Web. Dati i suoi moduli web, Products può avere i seguenti endpoint possibili:

  • /api/products

  • /api/products/{id}

  • /api/products/add

  • /api/products/update/{id}

  • /api/products/delete/{id}

Come accennato in precedenza, puoi anche riutilizzare tutti gli altri progetti che hai aggiornato a.NET 5, inclusi Business Logic, Data Access e progetti condivisi/comuni.

Sviluppatore di app

Configura Amazon CloudWatch Logs.

Puoi usare Amazon CloudWatch Logs per monitorare, archiviare e accedere ai log della tua applicazione. Puoi accedere ai dati in Amazon CloudWatch Logs utilizzando un SDK AWS. Puoi anche integrare applicazioni.NET con CloudWatch Logs utilizzando i più diffusi framework di logging.NET come NLogLog4Net e il framework di registrazione ASP.NET Core.

Per ulteriori informazioni su questo passaggio, consulta il post di blog Amazon CloudWatch Logs e.NET Logging Frameworks.

Sviluppatore di app

Configura AWS Systems Manager Parameter Store.

Puoi utilizzare AWS Systems Manager Parameter Store per archiviare le impostazioni dell'applicazione, come le stringhe di connessione, separatamente dal codice dell'applicazione. Il NuGet pacchetto Amazon.Extensions.Configuration. SystemsManagersemplifica il modo in cui l'applicazione carica queste impostazioni da AWS Systems Manager Parameter Store nel sistema di configurazione .NET Core. 

Per ulteriori informazioni su questo passaggio, consulta il post del blog .NET Core configuration provider for AWS Systems Manager.

Sviluppatore di app
AttivitàDescrizioneCompetenze richieste

Utilizza un cookie condiviso per l'autenticazione.

La modernizzazione di un'applicazione monolitica legacy è un processo iterativo e richiede la coesistenza del monolito e della sua versione modernizzata. È possibile utilizzare un cookie condiviso per ottenere un'autenticazione senza interruzioni tra le due versioni. L'applicazione ASP.NET legacy continua a convalidare le credenziali dell'utente ed emette il cookie, mentre l'applicazione ASP.NET Core modernizzata convalida il cookie. 

Per istruzioni e codice di esempio, consulta il progetto di esempio. GitHub

Sviluppatore di app

Aggiungi autenticazione e autorizzazione

AttivitàDescrizioneCompetenze richieste

Utilizza un cookie condiviso per l'autenticazione.

La modernizzazione di un'applicazione monolitica legacy è un processo iterativo e richiede la coesistenza del monolito e della sua versione modernizzata. È possibile utilizzare un cookie condiviso per ottenere un'autenticazione senza interruzioni tra le due versioni. L'applicazione ASP.NET legacy continua a convalidare le credenziali dell'utente ed emette il cookie, mentre l'applicazione ASP.NET Core modernizzata convalida il cookie. 

Per istruzioni e codice di esempio, consulta il progetto di esempio. GitHub

Sviluppatore di app
AttivitàDescrizioneCompetenze richieste

Crea un'immagine Docker usando Visual Studio.

In questo passaggio, crei un file Docker utilizzando l'API web di Visual Studio for .NET Core.

  1. Apri Visual Studio. 

  2. In Solution Explorer, dal menu contestuale (con il tasto destro del mouse) del progetto, scegli Aggiungi, Docker Support.

  3. Seleziona Linux come sistema operativo di destinazione.

Visual Studio crea un file Docker per il tuo progetto. Per un file Docker di esempio, vedi Visual Studio Container Tools for Docker sul sito Web di Microsoft.

Sviluppatore di app

Crea ed esegui il contenitore utilizzando Docker Desktop.

Ora puoi creare, creare ed eseguire il contenitore in Docker Desktop.

  1. Apri una finestra del prompt dei comandi. Vai alla cartella della soluzione in cui si trova il file Docker. Esegui il seguente comando per creare l'immagine Docker:

    docker build -t aspnetcorewebapiimage -f Dockerfile .
  2. Esegui il comando seguente per visualizzare tutte le immagini Docker:

    docker images
  3. Esegui il comando seguente per creare ed eseguire un contenitore:

    docker run -d -p 8080:80 --name aspnetcorewebapicontainer aspnetcorewebapiimage
  4. Apri Docker Desktop, quindi scegli Contenitori/App. Puoi vedere un nuovo contenitore chiamato running. aspnetcorewebapicontainer 

Sviluppatore di app

Crea ed esegui il contenitore localmente

AttivitàDescrizioneCompetenze richieste

Crea un'immagine Docker usando Visual Studio.

In questo passaggio, crei un file Docker utilizzando l'API web di Visual Studio for .NET Core.

  1. Apri Visual Studio. 

  2. In Solution Explorer, dal menu contestuale (con il tasto destro del mouse) del progetto, scegli Aggiungi, Docker Support.

  3. Seleziona Linux come sistema operativo di destinazione.

Visual Studio crea un file Docker per il tuo progetto. Per un file Docker di esempio, vedi Visual Studio Container Tools for Docker sul sito Web di Microsoft.

Sviluppatore di app

Crea ed esegui il contenitore utilizzando Docker Desktop.

Ora puoi creare, creare ed eseguire il contenitore in Docker Desktop.

  1. Apri una finestra del prompt dei comandi. Vai alla cartella della soluzione in cui si trova il file Docker. Esegui il seguente comando per creare l'immagine Docker:

    docker build -t aspnetcorewebapiimage -f Dockerfile .
  2. Esegui il comando seguente per visualizzare tutte le immagini Docker:

    docker images
  3. Esegui il comando seguente per creare ed eseguire un contenitore:

    docker run -d -p 8080:80 --name aspnetcorewebapicontainer aspnetcorewebapiimage
  4. Apri Docker Desktop, quindi scegli Contenitori/App. Puoi vedere un nuovo contenitore chiamato running. aspnetcorewebapicontainer 

Sviluppatore di app

Risorse correlate

Informazioni aggiuntive

Le tabelle seguenti forniscono esempi di progetti di esempio per un'applicazione legacy per il carrello degli acquisti e i progetti equivalenti nell'applicazione ASP.NET Core modernizzata.

Soluzione legacy:

Nome progetto

Modello di progetto

Framework Target

Interfaccia aziendale

Libreria di classi

.NET Framework

BusinessLogic

Libreria di classi

.NET Framework

WebApplication

Applicazione Web ASP.NET Framework

.NET Framework

UnitTests

NUnit Progetto di test

.NET Framework

Condiviso -> Comune

Libreria di classi

.NET Framework

Condiviso -> Framework

Libreria di classi

.NET Framework

Nuova soluzione:

Nome progetto

Modello di progetto

Framework Target

BusinessLogic

Libreria di classi

.NET 5.0

<WebAPI>

API Web ASP.NET Core

.NET 5.0

<WebAPI>. UnitTests

NUnit Progetto 3 Test

.NET 5.0

Condiviso -> Comune

Libreria di classi

.NET 5.0

Condiviso -> Framework

Libreria di classi

.NET 5.0

PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.