

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à.

# Migrazione delle applicazioni .NET
<a name="migrating-net-workloads"></a>

La migrazione delle applicazioni.NET AWS consente di creare carichi di lavoro ad alta disponibilità con funzionalità di scalabilità elastiche, ridurre il sovraccarico operativo e aumentare l'agilità aziendale concentrandosi sul valore distintivo.

Questa sezione si concentra sulle diverse opzioni su cui ospitare le applicazioni.NET. AWSÈ possibile scegliere tra l'utilizzo di una macchina virtuale, una soluzione gestita come [AWS Elastic Beanstalk](https://aws.amazon.com/elasticbeanstalk/)la containerizzazione del codice o il refactoring del codice in un'architettura basata su microservizi o serverless.

## Valutazione
<a name="migrating-net-workloads-assess"></a>

La scelta di un percorso di migrazione per il carico di lavoro .NET si basa sui seguenti fattori chiave:
+ **Individua la versione .NET in uso**: Microsoft supporta due diverse implementazioni .NET: .NET Framework (1.0-4.8) e .NET (.NET Core 1.0-3.1 e .NET 5 e versioni successive). Entrambi condividono molti degli stessi componenti e possono eseguire codice applicativo scritto utilizzando i diversi linguaggi di programmazione.NET (come C\#, F\# e). VB.NET La scelta della strategia di migrazione e del servizio di hosting dipende dal runtime utilizzato poiché .NET Framework viene eseguito su Windows mentre il nuovo .NET è multipiattaforma. Per .NET Framework, è possibile eseguire l'hosting su un sistema operativo Windows o rifattorizzare il codice per utilizzare il nuovo .NET. La versione più recente di .NET può essere ospitata anche su servizi Linux. OS-based Quando si modernizzano i Framework-based carichi di lavoro.NET, è possibile utilizzare [For.NET AWS Transform per](https://docs.aws.amazon.com/transform/latest/userguide/dotnet.html) scansionare il codice e generare un rapporto di valutazione della compatibilità. Scoprendo se il progetto fa riferimento ad API .NET Framework incompatibili, è possibile pianificare la complessità di un progetto di migrazione e decidere se e quando rifattorizzare il codice per utilizzare un runtime più recente.
+ **Rivedi la tua implementazione attuale**: verifica se il carico di lavoro attualmente migrato ha CI/CD pipeline esistenti che possono essere aggiornate per distribuire gli stessi carichi di lavoro nel cloud. L'utilizzo di una pipeline di compilazione e implementazione esistente può ridurre il tempo necessario per implementare l'applicazione nel cloud automatizzando i passaggi necessari per creare, configurare e implementare i carichi di lavoro.
+ **Rivedi la roadmap**: a seconda dello stato attuale del progetto, potresti avere già deciso di riprogettare le tue applicazioni. Ogni iniziativa di modernizzazione dovrebbe tenere in considerazione la roadmap del prodotto. Ad esempio, decisioni come la containerizzazione del codice esistente o la rifattorizzazione di un'architettura monolitica in microservizi rientrano idealmente nella roadmap del prodotto e sono in linea con altre iniziative di sviluppo.

## Mobilitazione
<a name="migrating-net-workloads-mobilize"></a>

Esistono tre diversi percorsi di migrazione da considerare quando si eseguono le migrazioni dei carichi di lavoro.NET verso. AWS Puoi scegliere tra le diverse opzioni in base alla complessità della base di codice esistente, al tempo allocato per la migrazione e alla dimensione del team incaricato di supportare l'iniziativa di migrazione. Quando si considera la modernizzazione come parte della migrazione, è consigliabile allinearsi alla roadmap del prodotto.
+ **Rehosting (lift & shift)**: puoi scegliere questo approccio se la tua priorità è una migrazione più rapida a AWS con modifiche minime o nulle. Puoi reospitare ASP.NET-based i siti Web su Internet Information Services (IIS) in esecuzione su istanze Amazon EC2. [Puoi reospitare le tue applicazioni basate su desktop (come Windows Presentation Foundation, Web Forms e.NET MAUI) su una delle piattaforme di elaborazione per utenti finali come Amazon [Applications WorkSpaces ](https://aws.amazon.com/appstream2/) o Amazon. WorkSpaces](https://aws.amazon.com/workspaces-family/)
+ **Ridefinizione della piattaforma**: la ridefinizione della piattaforma è la soluzione ideale quando si desidera ospitare l'applicazione utilizzando un servizio gestito senza apportare modifiche al codice e al contempo ridurre il sovraccarico operativo per attività di gestione indifferenziate per installazioni, applicazione delle patch, aggiornamenti e istanze. Questa strategia è indicata anche per i team che desiderano passare a carichi di lavoro basati su container. [Puoi ripiattaforma le tue applicazioni esistenti su [Elastic Beanstalk o](https://aws.amazon.com/elasticbeanstalk/) utilizzare contenitori Docker ospitati su [Amazon ECS, Amazon EKS](https://aws.amazon.com/ecs/) o. [AWS App Runner](https://aws.amazon.com/apprunner/)](https://aws.amazon.com/eks/)
+ **Refactor**: scegli questo approccio se puoi investire tempo e impegno nell'apportare modifiche al codice e all'architettura che riducano il sovraccarico operativo e ottengano una migliore scalabilità, alta disponibilità e disaster recovery utilizzando servizi nativi del cloud. AWS La rifattorizzazione prevede la modernizzazione della base di codice mediante il porting delle applicazioni .NET Framework esistenti su .NET (precedentemente .NET Core) o la modernizzazione del codice stesso per migliorarne l'esecuzione nel cloud. Puoi utilizzarlo [AWS SDK per .NET](https://aws.amazon.com/sdk-for-net/)per richiamare molti servizi AWS cloud dall'interno del tuo codice.NET. È possibile utilizzare strumenti come [.NET AWS Transform per](https://docs.aws.amazon.com/transform/latest/userguide/dotnet.html) trasferire la base di codice da .NET Framework a .NET. Effettuando il refactoring dei carichi di lavoro.NET esistenti per l'esecuzione [AWS Lambda](https://aws.amazon.com/lambda/), è possibile utilizzare l'elaborazione serverless per evitare il provisioning e la gestione dell'infrastruttura.

## Migrazione
<a name="migrating-net-workloads-migrate"></a>

Le fasi della migrazione dei carichi di lavoro .NET dipendono dal percorso di migrazione scelto durante la fase di valutazione e dal tipo di applicazione.

### Rehosting di un'applicazione .NET
<a name="net-rehost"></a>

Scegli questo percorso di migrazione se desideri migrare la tua applicazione senza apportare modifiche al codice ma desideri trarre vantaggio dal dimensionamento automatico, dal bilanciamento del carico e dall'elasticità del cloud. Per i Windows-based siti Web, il rehosting in genere significa eseguirli su Internet Information Services (IIS) su. AWS Per le applicazioni basate su desktop, è necessario installare l'applicazione e consentire agli utenti di connettervisi dall'esterno.

### Internet Information Services su AWS
<a name="net-iis"></a>

Internet Information Services (IIS) è un server web di Microsoft che funziona su un sistema operativo Windows e viene utilizzato per ospitare siti e servizi web. IIS può essere installato su qualsiasi istanza Amazon EC2 che esegue Windows Server. Dopo aver abilitato e configurato IIS, puoi distribuire ASP.NET siti Web e servizi utilizzando lo stesso meccanismo di distribuzione utilizzato per gli ambienti locali.

Se ospiti IIS su istanze EC2 Windows, è importante seguire il [AWS Well-ArchitectedFramework](https://aws.amazon.com/architecture/well-architected/) utilizzando il bilanciamento del carico, i gruppi di Auto Scaling e la distribuzione Multi-AZ a seconda del carico di lavoro e delle esigenze HADR. Ti consigliamo di utilizzare the [AWS Launch Wizard](https://docs.aws.amazon.com/launchwizard/latest/userguide/what-is-launch-wizard-iis.html)perché ti guida attraverso il dimensionamento, la configurazione e la distribuzione di un carico di lavoro di Windows Server su cui vengono eseguite risorse IIS. AWS Avvio della procedura guidata implementa un'architettura a disponibilità elevata che si estende su due zone di disponibilità con i componenti di elaborazione, rete e archiviazione necessari per un VPC appena creato o esistente.

### Hosting di applicazioni desktop su AWS
<a name="net-hosting"></a>

Molti client hanno la necessità di accedere ad applicazioni thick client basate su Windows. È possibile scegliere tra tre diverse piattaforme:
+ [Amazon EC2](https://aws.amazon.com/pm/ec2/): scegli questa opzione se desideri che i tuoi utenti si connettano a un Server-based ambiente Windows utilizzando Microsoft Remote Desktop. Con questa opzione, l'applicazione delle patch e la manutenzione del sistema operativo rientrano tra le tue responsabilità. Inoltre, sarà necessario acquistare licenze di accesso client aggiuntive per Remote Desktop Services (RDS CAL) per gli utenti e assicurarsi di avere licenze [Software Assurance (SA) attive](https://aws.amazon.com/windows/resources/licensemobility/). Per ulteriori informazioni, consulta [Microsoft Licensing on AWS](https://aws.amazon.com/windows/resources/licensing/) nella AWS documentazione.
+ [Amazon WorkSpaces](https://aws.amazon.com/workspaces-family/): scegli questa opzione se hai bisogno di un'infrastruttura desktop virtuale (VDI) completamente gestita per i tuoi utenti. Puoi usarla WorkSpaces per fornire un'esperienza Windows Desktop persistente ai tuoi utenti. È inoltre possibile personalizzare WorkSpaces l'ambiente e installare applicazioni.NET utilizzando un'immagine personalizzata oppure utilizzare [AWS Systems Manager](https://aws.amazon.com/systems-manager/)per distribuire le applicazioni.NET nei propri WorkSpaces ambienti. Gli utenti possono connettersi utilizzando il proprio browser o il [ WorkSpacesclient Amazon](https://clients.amazonworkspaces.com/).
+ [ WorkSpaces Applicazioni Amazon](https://aws.amazon.com/appstream2/): scegli questa opzione per fornire un accesso sicuro, affidabile e scalabile alle applicazioni e ai desktop non persistenti da qualsiasi posizione. Puoi utilizzare WorkSpaces Applications per consentire agli utenti di accedere alle tue applicazioni.NET dal Web. [Se disponi già di RDS CAL e SA attivi, puoi utilizzare tali licenze con WorkSpaces Applicazioni utilizzando License Mobility.](https://aws.amazon.com/windows/resources/licensemobility/)

## Conversione piattaforma
<a name="migrating-net-workloads-replatform"></a>

La ridefinizione della piattaforma implica la modifica dell'ambiente di hosting con modifiche minime o nulle al codice. Scegli questa strategia per ridurre il sovraccarico operativo e sfruttare le funzionalità e i servizi del cloud.

### AWS Elastic Beanstalk
<a name="net-beanstalk"></a>

È possibile utilizzarlo [AWS Elastic Beanstalk](https://aws.amazon.com/elasticbeanstalk/)per ripiattaforma i carichi di lavoro.NET Framework. Se si impacchettano le proprie ASP.NET Core-based applicazioni ASP.NET-based o, è possibile distribuire e gestire rapidamente le applicazioni AWS senza dover conoscere l'infrastruttura che esegue tali applicazioni. Ciò riduce la complessità di gestione senza limitare la scelta o il controllo. Basta caricare la tua applicazione perché Elastic Beanstalk gestisca automaticamente tutti i dettagli correlati a provisioning della capacità, bilanciamento del carico, dimensionamento e monitoraggio dello stato dell'applicazione.

Per ulteriori informazioni, consulta le seguenti risorse:
+ [Creazione e distribuzione di applicazioni.NET su Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_NET.html) (documentazione di Elastic Beanstalk)
+ [Utilizzo di.NET Core su Linux (documentazione](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-dotnet-core-linux.html) di Elastic Beanstalk)
+ [Multi-App Support con domini personalizzati per.NET e AWS Elastic Beanstalk](https://aws.amazon.com/blogs/developer/multi-app-support-with-custom-domains-for-net-and-aws-elastic-beanstalk/) (AWS Developer Tools Blog)

### Containerizzazione delle applicazioni esistenti
<a name="net-containerize-existing"></a>

Puoi usare Amazon ECS o Amazon EKS per ospitare le tue applicazioni Docker-based containerizzate. AWS gestisce entrambi i servizi. La scelta tra i due dipende dalle proprie conoscenze e preferenze. Entrambe le opzioni possono eseguire Linux-based contenitori o Windows-based contenitori.

Per ulteriori informazioni, consulta le seguenti risorse:
+ [Contenitori Windows Amazon EC2 (documentazione](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_Windows.html) Amazon ECS)
+ [Abilitazione del supporto Windows per il cluster Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/windows-support.html) (documentazione Amazon EKS)
+ [Esecuzione di contenitori Windows con Amazon ECS su AWS Fargate](https://aws.amazon.com/blogs/containers/running-windows-containers-with-amazon-ecs-on-aws-fargate/) (Blog AWS)
+ [Accelerazione dei tempi di avvio dei container Windows con EC2 Image Builder e Image Cache](https://aws.amazon.com/blogs/containers/speeding-up-windows-container-launch-times-with-ec2-image-builder-and-image-cache-strategy/) Strategy (Blog)AWS 
+ [Avvio rapido: CI/CD per le applicazioni.NET su AWS Fargate](https://aws.amazon.com/quickstart/architecture/dotnet-cicd-fargate/) (documentazione)AWS 

La containerizzazione delle applicazioni basate su .NET dipende dal runtime .NET utilizzato. Considera i seguenti aspetti:
+ ** Framework-based Applicazioni.NET vengono eseguite su contenitori Windows**: l'aggiunta del supporto Docker alle applicazioni esistenti viene effettuata creando un file Docker che descrive come l'applicazione deve essere containerizzata.
+ **.NET o.NET Core**: oltre a eseguire versioni più recenti. NET-based è possibile utilizzare [AWS App Runner](https://aws.amazon.com/apprunner/)anche applicazioni Web su Amazon ECS o Amazon EKS. App Runner è una soluzione serverless e completamente gestita che esegue il codice o l'immagine del container e gestisce il bilanciamento del carico, il dimensionamento automatico, la registrazione, i certificati e le reti.

### Refactor/re-architect codice esistente
<a name="net-refactor"></a>

Scegliete questa opzione se avete una forte esigenza aziendale di aggiungere funzionalità, scalabilità o prestazioni altrimenti difficili da ottenere nell'ambiente corrente dell'applicazione. A seconda della roadmap dell'applicazione, si può decidere di modificare il codice per utilizzare il framework più recente o servizi nativi del cloud oppure riprogettarlo per ottimizzarne l'esecuzione nel cloud.

La prima opzione di rifattorizzazione consiste nel migrare l'applicazione .NET Framework esistente su .NET. Il passaggio a .NET offre il vantaggio di funzionare su Linux anziché su Windows. Ciò riduce il costo totale delle licenze e permette di sfruttare i framework e le versioni dei linguaggi di programmazione .NET più recenti.

### AWS SDK per .NET
<a name="sdk-for-net"></a>

[AWS SDK per .NET](https://aws.amazon.com/sdk-for-net/)semplifica l'utilizzo Servizi AWS fornendo un set di librerie coerenti e familiari agli sviluppatori.NET. L' AWS SDK offre supporto multipiattaforma ed è distribuito tramite. NuGet Gli sviluppatori possono utilizzare l' AWS SDK per richiamare facilmente i servizi cloud dal proprio codice.NET, soddisfacendo i requisiti di archiviazione, accodamento, autenticazione e configurazione dell'applicazione.

### Modernizzazione delle applicazioni .NET Framework
<a name="net-modernize"></a>

È possibile migrare da.NET Framework utilizzando [AWS Transform for .NET](https://docs.aws.amazon.com/transform/latest/userguide/dotnet.html), che analizza i file di codice e crea un report che aiuta a pianificare la roadmap di migrazione del portafoglio di applicazioni. Porting Assistant for .NET può anche ridurre il sovraccarico di porting identificando API e pacchetti .NET Core incompatibili e trovando sostituti noti. La migrazione delle applicazioni.NET Framework in.NET consente di eseguirle su processori ARM64-based Graviton per un miglior rapporto prezzo/prestazioni. Per ulteriori informazioni, [consulta.NET su Graviton on GitHub e Graviton](https://github.com/aws/aws-graviton-getting-started/blob/main/dotnet.md) [e i contenitori nella documentazione di Workshop](https://catalog.workshops.aws/graviton/en-US/amazoncontainers) Studio. AWS 

### Dalle applicazioni monolitiche ai microservizi
<a name="net-monolith"></a>

Molti team di sviluppo desiderano riprogettare le applicazioni monolitiche esistenti adottando i microservizi. Passando ad architetture basate su microservizi, i team di sviluppo possono aumentare l'agilità di sviluppo, ridurre i costi di elaborazione, dimensionare i servizi su base individuale e ridurre i tempi di implementazione. Riconoscendo i vari componenti e categorizzando le funzioni, i team di sviluppo hanno la possibilità di trasferire gradualmente le funzionalità dalle applicazioni monolitiche basate su .NET Framework ai servizi in .NET.

### Rifattorizzazione ad applicazioni serverless
<a name="net-serverless-refactor"></a>

[AWS Lambda](https://aws.amazon.com/lambda/)è un servizio di elaborazione serverless e basato sugli eventi che consente di eseguire codice per praticamente qualsiasi tipo di applicazione o servizio di backend senza dover fornire o gestire server. È possibile estrarre la logica dall'applicazione esistente per creare flussi di lavoro serverless basati su eventi che si dimensionano automaticamente secondo necessità utilizzando .NET e Lambda. I [casi d'uso più comuni di Lambda](https://docs.aws.amazon.com/lambda/latest/dg/applications-usecases.html) includono carichi di lavoro basati su eventi che vengono eseguiti per alcuni secondi o minuti con esigenze di dimensionamento diverse, come elaborazione di file, analisi, siti web e applicazioni per dispositivi mobili. Per ulteriori informazioni, consulta [Creazione di funzioni Lambda con C\#](https://docs.aws.amazon.com/lambda/latest/dg/lambda-csharp.html) nella documentazione di Lambda.

## Risorse aggiuntive
<a name="migrating-net-workloads-resources"></a>
+ [AWS Toolkit per Azure DevOps](https://aws.amazon.com/vsts/)(documentazione)AWS 
+ [Configurazione di una CI/CD pipeline integrando Jenkins con AWS CodeBuild and AWS CodeDeploy](https://aws.amazon.com/blogs/devops/setting-up-a-ci-cd-pipeline-by-integrating-jenkins-with-aws-codebuild-and-aws-codedeploy/) (Blog)AWS DevOps 
+ [Informazioni sul AWS Deploy Tool](https://aws.github.io/aws-dotnet-deploy/) for .NET ()AWS GitHub
+ [.NET on AWS](https://aws.amazon.com/developer/language/net/) (AWS documentazione)
+ [aws/dotnet](https://github.com/aws/dotnet) (GitHub)