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:
|
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
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:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
NET Core - Padrão Repositório - Macoratti
Conceitos - .NET Framework versus .NET Core - Macoratti
NET Core ou .NET Framework - Macoratti
NET Core 3.0 e Visual Studio 2019 - Macoratti