c# - source - nuget microsoft aspnetcore mvc viewfeatures
Qual a diferença entre os novos TFMs netstandardapp e netcoreapp? (2)
Qual a diferença entre os novos TFMs netstandardapp e netcoreapp?
netstandardapp
está obsoleto, o
netcoreapp
substitui.
Então, o que exatamente deveria ser o netcoreapp?
netcoreapp
é o apelido da estrutura de destino da .NET Core Platform.
Se você adicionar
netcoreapp
à seção de estruturas do seu project.json, uma compilação do seu aplicativo será executada no .NET Core.
Não entendo qual é a diferença entre os hosts de aplicativos NETStandard.Library + e a instalação básica do .NET Core. Alguém poderia me explicar isso?
Os hosts de aplicativos NETStandard.Library + são o pacote NetStandard.App. Não use isso - está morto. Inclui três pacotes de host de aplicativos e a biblioteca padrão.
-
Microsoft.NETCore.DotNetHostPolicy
-
Microsoft.NETCore.Platforms
-
Microsoft.NETCore.Runtime
-
NETStandard.Library
A instalação base do NET Core
é o pacote Microsoft.NetCore.App.
Use isso em seu lugar.
Ele mantém dois dos pacotes acima, retira dois deles e adiciona cerca de 37 pacotes adicionais
Microsoft.*
E
System.*
.
-
Assemblies adicionais
Microsoft.*
-
Microsoft.NETCore.DotNetHostPolicy
-
Microsoft.NETCore.Platforms
<-----
Em abril de 2016, esses dois se tornaram -
Microsoft.NETCore.Runtime
<-------
parte da NETStandard.Library. -
NETStandard.Library
-
System.*
adicionalSystem.*
Montagens
Referências
https://github.com/NuGet/Home/issues/2524 > Indica que o apelido de estrutura de destino netstandardapp "não é mais válido".
https://github.com/dotnet/cli/issues/2482 > Afirma que "Projetos direcionados ao NetStandardApp precisam ser portados para o NetCoreApp. O NetStandardApp não será suportado pelo CLI 1.0.0 RC2".
https://www.myget.org/feed/aspnetvnext/package/nuget/NETStandard.Library > O histórico de pacotes mostra a grande mudança em abril de 2016.
Notei que o NuGet adicionou recentemente suporte para vários novos TFMs relacionados ao .NET Core, incluindo:
-
netstandard
(1.0-1.5) -
netstandardapp
(1.5) -
netcoreapp
(1.0)
netstandard
,
netstandard
é o equivalente do .NET Core a um perfil portátil;
Ele permite que você segmente várias plataformas usando um único apelido, em vez de explicitar explicitamente todas as plataformas suportadas, por exemplo,
portable-net45+netcore45+wp81
.
Enquanto isso, de acordo com
este documento, o
netstandardapp
é mais como um aplicativo de console no .NET Core;
representa algo que qualquer tempo de execução do .NET Core (por exemplo, CoreCLR, CoreRT).
Então, o que exatamente deveria ser o
netcoreapp
?
Encontrei o problema de rastreamento para ele
here,
que inclui um comentário na parte inferior que explica qual é a diferença, mas não entendo qual a diferença entre
Hosts de aplicativos NETStandard.Library +
e
Instalação básica do .NET Core
é. Alguém poderia me explicar isso?
A .NET Standard Library (netstandard) é uma biblioteca consistente entre os modelos de aplicativos. O .NET Core (netcoreapp) é executado no topo da .NET Standard Library e é um AppModel. Na página do github, eles respondem o que é um aplicativo .NET Standard e qual a diferença com o .NET Core ( https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-standard-applications.md ) e ( https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md )
ATUALIZAÇÃO: o .NETStandardapp está obsoleto. O aplicativo NETCore o substitui ( https://github.com/NuGet/Home/issues/2524 )
P: O que é um aplicativo .NET Standard? R: Um aplicativo .NET Standard é um aplicativo que pode ser executado em qualquer tempo de execução do .NET Core: CoreCLR (atual), .NETNative (futuro). Pode ser executado em uma das muitas plataformas principais do .NET (Windows, OSX, Linux). Ele depende do host fornecido pelo tempo de execução especificado. É uma estrutura de composição compilada a partir dos pacotes dos quais o aplicativo depende. Sua política de carregamento de montagem permite versões mais recentes de dependências sem nenhuma configuração de aplicativo (por exemplo: BindingRedirects não são necessários).
P: Como isso é diferente do .NETCore? R: A estrutura de destino do .NETCore representa os aplicativos Windows 8, Windows 8.1 e Universal Windows Platform. Para fins de compatibilidade, esse apelido não pode ser reutilizado para "aplicativos .NET Core". A sobreposição da marca é lamentável.
P: Como isso é diferente do .NETStandard? R: A estrutura de destino NETStandard é uma estrutura de destino abstrata que representa a superfície da API de muitas estruturas e plataformas. Como esses assemblies NETStandard podem ser executados em qualquer plataforma que ofereça suporte ao NETStandard direcionado por esse assembly, por exemplo: .NET Desktop, Windows Phone, aplicativos Universal Windows Platform, aplicativos .NET Standard, etc. NETStandardApplication é uma estrutura de destino concreta que representa uma única plataforma com superfície e implementação de API. Os aplicativos padrão do .NET são executáveis por conta própria. As bibliotecas .NETStandard devem ser publicadas para ou consumidas por uma estrutura de destino concreta específica a ser usada nesse tipo de aplicativo.