Diferenças com o .NET do WPF

Este artigo descreve as diferenças entre Windows Presentation Foundation (WPF) no .NET e .NET Framework. O WPF para .NET é uma estrutura de software livre bifurcada do WPF original para .NET Framework código-fonte.

Há alguns recursos de .NET Framework que o .NET não dá suporte. Para obter mais informações sobre tecnologias sem suporte, consulte .NET Framework tecnologias indisponíveis no .NET.

Importante

A documentação do Guia da Área de Trabalho para .NET 7 e .NET 6 está em construção.

Projetos no estilo de SDK

O .NET usa arquivos de projeto no estilo SDK. Esses arquivos de projeto são diferentes dos arquivos de projeto .NET Framework tradicionais gerenciados pelo Visual Studio. Para migrar seus aplicativos do WPF .NET Framework para o .NET, você deve converter seus projetos. Para obter mais informações, consulte Como atualizar um aplicativo da área de trabalho do WPF para o .NET 7.

Referências do pacote NuGet

Se o aplicativo .NET Framework listar suas dependências do NuGet em um arquivo packages.config, migre para o <PackageReference> formato:

  1. No Visual Studio, abra o painel Gerenciador de Soluções.
  2. No projeto do WPF, clique com o botão direito do mouse empackages.config>Migrar packages.config para PackageReference.

Atualizando para PackageReference.

Uma caixa de diálogo será exibida mostrando dependências do NuGet calculadas de nível superior e perguntando quais outros pacotes NuGet devem ser promovidos para o nível superior. Selecione OK e o arquivo packages.config será removido do projeto e <PackageReference> os elementos serão adicionados ao arquivo de projeto.

Quando o projeto usa , os pacotes não são armazenados <PackageReference>localmente em uma pasta Pacotes , eles são armazenados globalmente. Abra o arquivo de projeto e remova todos <Analyzer> os elementos que se referem à pasta Pacotes . Esses analisadores são incluídos automaticamente com as referências do pacote NuGet.

Segurança de Acesso do Código

O CAS (Segurança de Acesso ao Código) não é compatível com o .NET. Todas as funcionalidades relacionadas ao CAS são tratadas sob a suposição de confiança total. O WPF para .NET remove o código relacionado ao CAS. A superfície de API pública desses tipos ainda existe para garantir que as chamadas para esses tipos sejam bem-sucedidas.

Tipos relacionados ao CAS definidos publicamente foram movidos para fora dos assemblies do WPF e para os assemblies da biblioteca core .NET. Os assemblies do WPF têm o encaminhamento de tipo definido para o novo local dos tipos movidos.

Assembly de origem Assembly de destino Type
WindowsBase.dll System.Security.Permissions.dll MediaPermission
MediaPermissionAttribute
MediaPermissionAudio
MediaPermissionImage
MediaPermissionVideo
WebBrowserPermission
WebBrowserPermissionAttribute
WebBrowserPermissionLevel
System.Xaml.dll System.Security.Permissions.dll XamlLoadPermission
System.Xaml.dll System.Windows.Extension.dll XamlAccessLevel

Observação

Para minimizar o atrito de portabilidade, a funcionalidade para armazenar e recuperar informações relacionadas às propriedades a seguir foi mantida no XamlAccessLevel tipo .

  • PrivateAccessToTypeName
  • AssemblyNameString