.NET Core - Atendendo múltiplos Frameworks

 Neste artigo veremos como podemos atender múltiplos frameworks em uma aplicação .NET Core.

A criação de uma aplicação .NET Core que atenda a vários frameworks é uma das abordagens para o compartilhamento de código.(share code)

Podemos criar uma aplicação .NET Core e configurar vários frameworks de destino para que ela possa ser executada com todas os frameworks de destino configurados.

Para demonstrar isso, vamos criar o aplicativo console .NET Core 3.0 , que pode ser executado com o .NET Core, bem como com o framework .NET tradicional no Visual Studio 2019.

Vamos começar criando um novo projeto no Visual Studio 2019 abrindo a janela Start Window (ou clique em File-> New Project):

Clique em - Create a new project;

A seguir na próxima janela selecione :

Selecione o tipo de projeto : Console App (.NET Core) e clique em Next;

Informe o nome do projeto :  NetCore_MultiplosFrameworks

Selecione a localização em Location e marque a opção : Place Solution and project in the same directory

Clique em Create para criar o projeto.

Veremos o projeto console criado. Vamos editar o arquivo de projeto .csproj.

Clique com o botão direito sobre o projeto e selecione : Edit NetCore_MultiplosFrameworks

Observando vemos que o nosso projeto Console foi criado usando a versão 2.2 do .NET Core (eu ainda não instalei o .NET Core 3.0 SDK preview):

Como você pode ver acima, o framework alvo (<TargetFramework>) é netcoreapp2.2.

Isso significa que atualmente este aplicativo pode ser executado no .NET Core 2.2. Podemos incluir vários frameworks aqui, para atender vários frameworks.

Para atender várias frameworks, vamos alterar  <TargetFramework> para o plural <TargetFrameworks> e incluir informação para atingir frameworks diferentes que desejamos atender separados por ; .

Nesta alteração, vamos dar suporte a mais dois frameworks :

Na tabela abaixo temos uma lista de símbolos para alguns dos frameworks do  .NET Core:

Frameworks Símbolos
.NET Framework NET20, NET35, NET40, NET45, NET451, NET452, NET46, NET461, NET462, NET47, NET471, NET472
.NET Standard NETSTANDARD1_0, NETSTANDARD1_1, NETSTANDARD1_2, NETSTANDARD1_3, NETSTANDARD1_4, NETSTANDARD1_5, NETSTANDARD1_6, NETSTANDARD2_0
.NET Core NETCOREAPP1_0, NETCOREAPP1_1, NETCOREAPP2_0, NETCOREAPP2_1, NETCOREAPP2_2

Portanto, inclua os identificadores:  net45 e net46, respectivamente, conforme mostrado abaixo.

Assim que você salvar o arquivo .csproj acima, o Visual Studio carregará e incluirá as referências para .NET 4.5 e .NET 4.6 na seção Dependencies.

Você vai notar na base da janela a mensagem : Restoring packages for...  , indicando que os pacotes estão sendo restaurados:

Abriando a Solution Explorer e expiando a seção Dependencies vemos as referências incluidas conforme abaixo:

Agora, podemos abrir o arquivo Program.cs  e incluir um código específico de framework usando as condições de pré-processador #if e #elif como mostrado abaixo.

No código acima, definimos o código  uasndo as diretivas de processamento condicionais, que fornecem uma maneira de incluir ou excluir regiões de código a partir da compilação, para realizar o processamento executando o aplicativo para um framework específico: 4.5 , 4.6 ou .NET Core 2.2.

Para executar o aplicativo para um framework específico, clique na lista suspensa de execução e selecione um framework de destino como mostrado abaixo.

Selecionando net46 e executando iremos obter:

Referenciando Frameworks Específicos

Às vezes, você pode precisar incluir referências específicas para um framework específico.

Por exemplo, o pacote do .NET Core 2.2 já inclui as referências para System.Net e System.Threading.Tasks, que não está incluída no .NET 4.5. Portanto, precisamos incluí-lo no arquivo .csproj usando a referência condicional, conforme mostrado abaixo.

Agora, as referências System.Net e System.Threading.Tasks serão adicionadas ao .NET 4.5 e o código específico do dessas referências serão executados para todas os frameworks.

E estamos conversados...

Palavra fiel é esta: que, se morrermos com ele, também com ele viveremos;
Se sofrermos, também com ele reinaremos; se o negarmos, também ele nos negará;
Se formos infiéis, ele permanece fiel; não pode negar-se a si mesmo.

2 Timóteo 2:11-13
Palavra fiel é esta: que, se morrermos com ele, também com ele viveremos;
Se sofrermos, também com ele reinaremos; se o negarmos, também ele nos negará;
Se formos infiéis, ele permanece fiel; não pode negar-se a si mesmo.

2 Timóteo 2:11-13
Palavra fiel é esta: que, se morrermos com ele, também com ele viveremos;
Se sofrermos, também com ele reinaremos; se o negarmos, também ele nos negará;
Se formos infiéis, ele permanece fiel; não pode negar-se a si mesmo.

2 Timóteo 2:11-13

"Palavra fiel é esta: que, se morrermos com ele, também com ele viveremos;
Se sofrermos, também com ele reinaremos; se o negarmos, também ele nos negará;
Se formos infiéis, ele permanece fiel; não pode negar-se a si mesmo."
2 Timóteo 2:11-13

 

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?


Referências:


José Carlos Macoratti