Eseguire la migrazione di soluzioni .NET per HDInsight basato su Windows a HDInsight basato su LinuxMigrate .NET solutions for Windows-based HDInsight to Linux-based HDInsight

I cluster HDInsight basati su Linux usano Mono (https://mono-project.com) per eseguire le applicazioni .NET.Linux-based HDInsight clusters use Mono (https://mono-project.com) to run .NET applications. Mono consente di usare i componenti .NET, ad esempio applicazioni MapReduce con HDInsight basato su Linux.Mono allows you to use .NET components such as MapReduce applications with Linux-based HDInsight. In questo documento vengono fornite informazioni su come eseguire la migrazione di soluzioni .NET create per fare funzionare i cluster HDInsight basati su Windows con Mono in HDInsight basato su Linux.In this document, learn how to migrate .NET solutions created for Windows-based HDInsight clusters to work with Mono on Linux-based HDInsight.

Compatibilità Mono con .NETMono compatibility with .NET

La versione Mono 4.2.1 è inclusa nella versione 3.6 di HDInsight.Mono version 4.2.1 is included with HDInsight version 3.6. Per altre informazioni sulla versione Mono compresa in HDInsight, vedere Componenti e versioni di Hadoop disponibili in HDInsight.For more information on the version of Mono included with HDInsight, see HDInsight component versions. Per installare una versione specifica di Mono, vedere il documento Install or update Mono (Installare o aggiornare Mono).To install a specific version of Mono, see the Install or update Mono document.

Per altre informazioni sulla compatibilità tra Mono e .NET, vedere il documento sulla compatibilità Mono (http://www.mono-project.com/docs/about-mono/compatibility/).For more information on compatibility between Mono and .NET, see the Mono compatibility (http://www.mono-project.com/docs/about-mono/compatibility/) document.

Importante

Il framework SCP.NET è compatibile con Mono.The SCP.NET framework is compatible with Mono. Per altre informazioni sull'uso di SCP.NET con Mono, vedere Sviluppare topologie C# per Apache Storm in HDInsight tramite gli strumenti Hadoop per Visual Studio.For more information on using SCP.NET with Mono, see Use Visual Studio to develop C# topologies for Apache Storm on HDInsight.

Analisi di portabilità automatizzataAutomated portability analysis

.NET Portability Analyzer può essere usato per generare un rapporto di incompatibilità tra l'applicazione e Mono.The .NET Portability Analyzer can be used to generate a report of incompatibilities between your application and Mono. Per configurare l'analizzatore per il controllo dell'applicazione per la portabilità Mono, usare la procedura seguente:Use the following steps to configure the analyzer to check your application for Mono portability:

  1. Installare .NET Portability Analyzer.Install the .NET Portability Analyzer. Durante l'istallazione, selezionare la versione di Visual Studio da usare.During installation, select the version of Visual Studio to use.

  2. Da Visual Studio 2015, selezionare Analizza > Portability Analyzer Settings (Impostazioni analizzatore portabilità) e assicurarsi che 4.5 sia selezionato nella sezione Mono.From Visual Studio 2015, select Analyze > Portability Analyzer Settings, and make sure that 4.5 is checked in the Mono section.

    4.5 selezionato nella sezione Mono per le impostazioni di analisi

    Selezionare OK per salvare la configurazione.Select OK to save the configuration.

  3. Selezionare Analizza > Analyze Assembly Portability (Analizza portabilità assembly).Select Analyze > Analyze Assembly Portability. Selezionare l'assembly che contiene la soluzione e quindi selezionare Apri per iniziare l'analisi.Select the assembly that contains your solution, and then select Open to begin analysis.

  4. Una volta completata l'analisi, selezionare Analizza > View analysis reports (Visualizza rapporti di analisi).Once analysis is complete, select Analyze > View analysis reports. In Portability Analysis Results (Risultati analisi di portabilità) selezionare Open report (Apri rapporto) per aprire un rapporto.In Portability Analysis Results, select Open report to open a report.

    Finestra di dialogo dei risultati dell'analizzatore di portabilità

Importante

L'analizzatore non può intercettare tutti i problemi con la soluzione.The analyzer cannot catch every problem with your solution. Un percorso di file di c:\temp\file.txt ad esempio viene considerato OK se Mono è in esecuzione su Windows.For example, a file path of c:\temp\file.txt is considered OK if Mono is running on Windows. Lo stesso percorso non è valido in una piattaforma Linux.The same path is not valid on a Linux platform.

Analisi di portabilità manualeManual portability analysis

Eseguire un controllo manuale del codice usando le informazioni nel documento sulla portabilità delle applicazioni (http://www.mono-project.com/docs/getting-started/application-portability/).Perform a manual audit of your code using the information in the Application Portability (http://www.mono-project.com/docs/getting-started/application-portability/) document.

Modificare e compilareModify and build

È possibile continuare a usare Visual Studio per creare soluzioni di .NET per HDInsight.You can continue to use Visual Studio to build your .NET solutions for HDInsight. Tuttavia, è necessario assicurarsi che il progetto sia configurato per usare .NET Framework 4.5.However, you must ensure that the project is configured to use .NET Framework 4.5.

Distribuire e testareDeploy and test

Dopo aver modificato la soluzione con i consigli forniti da .NET Portability Analyzer o da un'analisi manuale, è necessario eseguirne il test con HDInsight.Once you have modified your solution using the recommendations from the .NET Portability Analyzer or from a manual analysis, you must test it with HDInsight. Fare il test della soluzione in un cluster HDInsight basato su Linux può rivelare problemi meno evidenti che devono essere corretti.Testing the solution on a Linux-based HDInsight cluster may reveal subtle problems that need to be corrected. Si consiglia di abilitare l'accesso aggiuntivo dell'applicazione durante l'esecuzione del test.We recommend that you enable additional logging in your application while testing it.

Per altre informazioni sull'accesso ai log, vedere i documenti seguenti:For more information on accessing logs, see the following documents:

Passaggi successiviNext steps