

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Transformar aplicações .NET com o Amazon Q Developer
<a name="transform-dotnet-IDE"></a>

O Amazon Q Developer pode portar suas aplicações .NET baseadas em Windows para aplicações .NET multiplataforma compatíveis com Linux por meio de um fluxo de trabalho de refatoração baseado em IA generativa. O Amazon Q também ajuda a atualizar versões desatualizadas de aplicações .NET multiplataforma para versões mais recentes. 

Para transformar uma solução ou projeto .NET, o Amazon Q analisa sua base de código, determina as atualizações necessárias para portar sua aplicação e gera um plano de transformação antes do início da transformação. Durante essa análise, o Amazon Q divide sua solução ou projeto .NET em grupos de códigos que você pode visualizar no plano de transformação. Um *grupo de códigos* é um projeto e todas as suas dependências que, juntos, geram uma unidade de código compilável, como uma biblioteca de links dinâmicos (DLL) ou um executável. 

Durante a transformação, o Amazon Q fornece step-by-step atualizações em um Transformation Hub, onde você pode monitorar o progresso. Após transformar sua aplicação, o Amazon Q gera um resumo com as alterações propostas em uma visualização de diferenças para que você, opcionalmente, verifique as alterações antes de aceitá-las. Quando você aceita as alterações, o Amazon Q faz atualizações locais em sua solução ou projeto .NET. 

O Amazon Q executa quatro tarefas principais para portar aplicações .NET para o Linux:
+ **Atualiza a versão da linguagem**: substitui versões desatualizadas do código C\$1 por versões C\$1 compatíveis com Linux.
+ **Migra do .NET Framework para o .NET multiplataforma**: migra projetos e pacotes do .NET Framework dependente do Windows para o .NET multiplataforma compatível com Linux.
+ **Reescreve o código para compatibilidade com o Linux**: refatora e reescreve componentes de código obsoletos e ineficientes.
+ **Gera um relatório de disponibilidade de compatibilidade com Linux**: para tarefas abertas em que a intervenção do usuário é necessária para compilar e executar o código no Linux, o Amazon Q fornece um relatório detalhado das ações necessárias para configurar a aplicação após a transformação.

Para obter mais informações sobre como o Amazon Q realiza transformações .NET, consulte [How it works](how-dotnet-transformation-works.md). 

**Topics**
+ [Cotas](#quotas-dotnet-transformation)
+ [Portar uma aplicação .NET com o Amazon Q Developer no Visual Studio](port-dotnet-application.md)
+ [Como o Amazon Q Developer transforma aplicações .NET](how-dotnet-transformation-works.md)
+ [Solucionar problemas com transformações .NET no IDE](troubleshooting-dotnet-transformation-IDE.md)

## Cotas
<a name="quotas-dotnet-transformation"></a>

As transformações .NET com o Amazon Q no IDE mantêm as seguintes cotas: 
+ **Linhas de código por trabalho**: o número máximo de linhas de código que o Amazon Q pode transformar em um determinado trabalho de transformação. Esse também é o limite total mensal para transformações .NET. 
+ **Trabalhos simultâneos**: o número máximo de trabalhos de transformação que podem ser executados ao mesmo tempo. Essa cota se aplica a todas as transformações no IDE, incluindo as [transformações Java](transform-java.md).


| Recurso | Cotas | 
| --- | --- | 
| Linhas de código por trabalho | 100.000 linhas de código | 
| Tarefas simultâneas |  1 trabalho por usuário 2 trabalhos por AWS conta  | 

# Portar uma aplicação .NET com o Amazon Q Developer no Visual Studio
<a name="port-dotnet-application"></a>

Conclua estas etapas para portar uma aplicação .NET baseada em Windows para uma aplicação .NET multiplataforma compatível com Linux com o Amazon Q Developer no Visual Studio. 

## Etapa 1: pré-requisitos
<a name="transform-dotnet-prerequisites"></a>

Antes de continuar, certifique-se de que você concluiu as etapas em [Configurar o Amazon Q no IDE](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/q-in-IDE.html).

Verifique se os seguintes pré-requisitos para sua aplicação foram atendidos antes de iniciar um trabalho de transformação .NET:
+ Sua aplicação contém somente projetos .NET escritos em C\$1.
+ Seu aplicativo só tem dependências de pacotes de autoria da Microsoft NuGet 
+ Sua aplicação usa somente caracteres UTF-8. Se sua aplicação usar caracteres não UTF-8, o Amazon Q ainda tentará transformar seu código.
+ Se sua aplicação depender do Internet Information Services (IIS), somente as configurações padrão do IIS serão usadas.
+ O Amazon Q avaliará o tipo do projeto que você selecionou e suas dependências para criar um grupo de códigos. O grupo de códigos só pode ter os seguintes tipos de projeto:
  + Aplicação de console
  + Biblioteca de classes 
  + API Web
  + Serviço WCF
  + Camadas de lógica de negócios do controlador de visualização de modelo (MVC) e da aplicação de página única (SPA)
  + Projetos de teste

**nota**  
O Amazon Q não oferece suporte à transformação de componentes da camada de interface do usuário, como Razor visualizações ou arquivos WebForms ASPX. Se o Amazon Q detectar componentes da camada de interface do usuário em sua solução ou projeto, ele realizará uma transformação parcial, excluindo-os, e talvez você precise refatorar ainda mais para tornar seu código compilável na versão .NET de destino.

## Etapa 2: transformar sua aplicação
<a name="transform-dotnet-app"></a>

Para transformar sua solução ou projeto .NET, realize o seguinte procedimento:

1. Abra uma solução ou projeto baseado em C\$1 no Visual Studio que você deseja transformar. 

1. Abra qualquer arquivo de código C\$1 no editor. 

1. Selecione o **Gerenciador de Soluções**.

1. No Gerenciador de Soluções, clique com o botão direito do mouse em uma solução ou projeto que deseja transformar e, em seguida, selecione **Portar com o Amazon Q Developer**.

1. A janela **Portar com o Amazon Q Developer** é exibida. 

   A solução ou projeto que você selecionou será escolhido no menu suspenso **Escolher uma solução ou projeto para transformar**. Você pode expandir o menu para selecionar uma solução ou projeto diferente para transformar. 

   No menu suspenso **Escolher um destino .NET**, selecione a versão do .NET para a qual você deseja atualizar.

1. Clique em **Confirmar** para começar a transformação.

1. O Amazon Q começa a transformar o código. Você pode visualizar o plano de transformação gerado para obter detalhes sobre como ele transformará sua aplicação.

   Um **Hub de transformação** é aberto, onde você pode monitorar o progresso durante a transformação. Depois que o Amazon Q concluir a etapa de **inicialização da transformação de trabalhos em espera**, você poderá sair do projeto ou da solução durante a transformação.

1. Depois que a transformação for concluída, navegue até o **Hub de transformação** e selecione **Exibir diferenças** para revisar as alterações propostas do Amazon Q em uma visualização de diferenças. 

1. Selecione **Exibir resumo da transformação do código** para obter detalhes sobre as alterações feitas pelo Amazon Q. Você também pode baixar o resumo da transformação selecionando **Baixar resumo como .md.** 

   Se algum dos itens na tabela **Grupos de códigos** exigir entrada no status de portabilidade do Linux, você deverá atualizar manualmente alguns arquivos para executar sua aplicação no Linux. 

   1. No menu suspenso **Ações**, selecione **Baixar relatório de disponibilidade do Linux**. 

   1. Um arquivo .csv é aberto com todas as alterações em seu projeto ou solução que você deve concluir antes que sua aplicação seja compatível com Linux. Ele inclui o projeto e o arquivo que precisam ser atualizados, uma descrição do item a ser atualizado e uma explicação do problema. Use a coluna **Recomendação** para obter ideias sobre como resolver um problema de disponibilidade do Linux. 

1. Para atualizar seus arquivos no local, selecione **Aceitar alterações** no menu suspenso **Ações**. 

# Como o Amazon Q Developer transforma aplicações .NET
<a name="how-dotnet-transformation-works"></a>

Consulte as seções a seguir para obter detalhes sobre como a transformação .NET com o Amazon Q Developer funciona. 

## Analisar a aplicação e gerar um plano de transformação
<a name="analyzing-app-generating-plan"></a>

Antes do início de uma transformação, o Amazon Q compila o código localmente para garantir que ele possa ser compilado e configurado corretamente para transformação. Em seguida, o Amazon Q carrega seu código em um ambiente de compilação seguro e criptografado AWS, analisa sua base de código e determina as atualizações necessárias para portar seu aplicativo. 

Durante essa análise, o Amazon Q divide a solução ou projeto .NET em grupos de código. Um grupo de códigos é um projeto e todas as suas dependências que, juntos, geram uma unidade de código compilável, como uma biblioteca de links dinâmicos (DLL) ou um executável. Mesmo que você não tenha selecionado todas as dependências do projeto para serem transformadas, o Amazon Q determina as dependências necessárias para criar os projetos selecionados e as transforma também, para que a aplicação transformada possa ser compilada e esteja pronto para uso.

Após analisar o código, o Amazon Q gera um plano de transformação que descreve as alterações propostas que serão feitas, incluindo uma lista de grupos de código e suas dependências que serão transformadas. 

## Transformar a aplicação
<a name="transforming-app"></a>

Para iniciar a transformação, o Amazon Q compila o código novamente no ambiente de compilação seguro para garantir que ele possa ser compilado remotamente. Em seguida, o Amazon Q inicia a portabilidade da aplicação. O processo funciona de baixo para cima, começando com a dependência de nível mais baixo. Se o Amazon Q encontrar um problema ao portar uma dependência, ele interromperá a transformação e fornecerá informações sobre o que causou o erro. 

A transformação inclui as seguintes atualizações na aplicação: 
+ Substituição de versões desatualizadas do código C\$1 por versões C\$1 compatíveis com Linux
+ Atualização do .NET Framework para o .NET multiplataforma, incluindo: 
  + Identificação e substituição iterativa de pacotes, bibliotecas e APIs
  + Atualizando e substituindo NuGet pacotes e APIs
  + Transição para o runtime multiplataforma
  + Configuração do middleware e atualização das configurações de runtime
  + Substituição de pacotes privados ou de terceiros 
  + Manipulação de componentes do IIS e do WCF 
  + Depuração de erros de compilação
+ Reescrita de código para compatibilidade com Linux, incluindo refatoração e reescrita de código obsoleto e ineficiente para portar o código existente 

## Revisão do resumo da transformação e aceitação das alterações
<a name="reviewing-summary-accepting-changes"></a>

Após a conclusão da transformação, o Amazon Q fornece um resumo da transformação com informações sobre as atualizações propostas feitas em seu aplicativo, incluindo o número de arquivos alterados, pacotes atualizados e APIs alterados. Ele sinaliza qualquer transformação malsucedida, incluindo arquivos ou partes de arquivos afetados e os erros encontrados durante uma tentativa de compilação. Você também pode ver um resumo da compilação com logs de compilação para saber mais sobre quais alterações foram feitas. 

O resumo da transformação também fornece um status de portabilidade do Linux, que indica se a entrada adicional do usuário é necessária ou não para tornar a aplicação compatível com o Linux. Se algum dos itens em um grupo de códigos exigir uma entrada da sua parte, baixe um relatório de disponibilidade do Linux que contenha considerações específicas do Windows que o Amazon Q não conseguiu abordar no momento da compilação. Se a entrada for necessária para qualquer grupo de código ou arquivo, revise o relatório para obter detalhes sobre o tipo de alteração que ainda precisa ser feita e, se aplicável, para obter recomendações sobre como atualizar o código. Essas alterações devem ser feitas manualmente antes que a aplicação possa ser executada no Linux. 

Você pode revisar as alterações propostas feitas pelo Amazon Q em uma visualização de diferenças antes de aceitá-las como atualizações locais em seus arquivos. Após atualizar os arquivos e abordar todos os itens no relatório de disponibilidade do Linux, a aplicação estará pronta para ser executada no .NET multiplataforma.

# Solucionar problemas com transformações .NET no IDE
<a name="troubleshooting-dotnet-transformation-IDE"></a>

Use as seções a seguir para solucionar problemas comuns com transformações .NET no IDE com o Amazon Q Developer.

## Como posso saber se um trabalho está progredindo?
<a name="job-progressing"></a>

Se o Amazon Q parecer estar gastando muito tempo em uma etapa no Hub de transformação, você pode verificar se o trabalho continua ativo nos logs de saída. Se mensagens de diagnóstico estiverem sendo geradas, o trabalho ainda estará ativo. 

Para verificar as saídas, selecione a guia **Saída** no Visual Studio. No menu **Mostrar saída de:**, selecione **Amazon Q Language Client**.

A captura de tela a seguir mostra um exemplo das saídas que o Amazon Q gera durante uma transformação.

![\[Captura de tela do Amazon Q Developer Code Transformation Hub, mostrando a saída do Amazon Q Language Client.\]](http://docs.aws.amazon.com/pt_br/amazonq/latest/qdeveloper-ug/images/code-transform-troubleshoot4.png)


## Por que alguns projetos não são selecionados para transformação?
<a name="projects-not-selected"></a>

O Amazon Q só pode transformar tipos de projetos compatíveis na linguagem C\$1. Atualmente, o Amazon Q não é compatível com a portabilidade de componentes da camada de interface de usuário ou projetos escritos nas linguagens VB.NET ou F\$1. Para obter uma lista dos tipos de projetos compatíveis e outros pré-requisitos para transformar seus projetos .NET, consulte [Etapa 1: pré-requisitos](port-dotnet-application.md#transform-dotnet-prerequisites).

## Como posso obter suporte se meu projeto ou solução não estiver se transformando?
<a name="get-support"></a>

Se você não conseguir solucionar problemas sozinho, entre em contato com Conta da AWS nossa equipe Suporte para enviar um caso de suporte. 

Para obter suporte, forneça o ID do trabalho de transformação para que AWS possa investigar um trabalho com falha. Para encontrar um ID de trabalho de transformação, selecione a guia **Saída** no Visual Studio. No menu **Mostrar saída de:**, selecione **Amazon Q Language Client**.

## Como posso evitar que meu firewall interfira nos trabalhos de transformação?
<a name="firewall-inteference"></a>

Se sua organização usa um firewall, ele pode interferir nas transformações no Visual Studio. Você pode desabilitar temporariamente as verificações de segurança no Node.js para solucionar problemas ou testar o que está impedindo a execução da transformação. 

A variável de ambiente `NODE_TLS_REJECT_UNAUTHORIZED` controla verificações de segurança importantes. `NODE_TLS_REJECT_UNAUTHORIZED`Definir como “0" desativa a rejeição de certificados não TLS/SSL autorizados pelo Node.js. Isso significa que:
+ Certificados autoassinados serão aceitos
+ Certificados expirados serão permitidos
+ Certificados com nomes de host incompatíveis serão permitidos
+ Quaisquer outros erros de validação de certificado serão ignorados

Se seu proxy usa um autocertificado, você pode definir as seguintes variáveis de ambiente em vez de desabilitar `NODE_TLS_REJECT_UNAUTHORIZED`:

```
NODE_OPTIONS = —use-openssl-ca
NODE_EXTRA_CA_CERTS = Path/To/Corporate/Certs
```

Caso contrário, você deve especificar os certificados de CA usados pelo proxy para desabilitar `NODE_TLS_REJECT_UNAUTHORIZED`.

**Como desabilitar o NODE\$1TLS\$1REJECT\$1UNAUTHORIZED no Windows:**

1. Abra o menu Iniciar e pesquise **Variáveis de ambiente**.

1. Selecione **Editar as variáveis de ambiente do sistema**.

1. Na janela **Propriedades do sistema**, selecione **Variáveis de ambiente**.

1. Em **Variáveis do sistema**, selecione **Novo**.

1. Defina **Nome da variável** como NODE\$1TLS\$1REJECT\$1UNAUTHORIZED e **Valor da variável** como 0.

1. Clique em **Ok** para salvar as alterações.

1. Reinicie o Visual Studio.