Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Há muitas maneiras de modernizar os aplicativos da área de trabalho existentes integrando os recursos mais recentes do Windows ao código-fonte existente em vez de reescrever os aplicativos do zero. Neste tutorial, exploraremos várias maneiras de modernizar um aplicativo de linha de negócios existente do WPF usando estes recursos:
- .NET Core 3
- Controles XAML da UWP com Ilhas XAML
- Cartões Adaptáveis e notificações do Windows
- Implantação de MSIX
Este tutorial requer as seguintes habilidades de desenvolvimento:
- Experiência no desenvolvimento de aplicativos da área de trabalho do Windows com o WPF.
- Conhecimento básico de C# e XAML.
- Conhecimento básico da UWP.
Visão geral
Este tutorial fornece o código para um aplicativo de linha de negócios simples do WPF chamado Contoso Expenses. No cenário fictício do tutorial, o Contoso Expenses é um aplicativo interno usado pelos gerentes da Contoso Corporation para manter o controle das despesas enviadas por seus subordinados. Agora, os gerentes estão equipados com dispositivos habilitados para toque e gostariam de usar o aplicativo Contoso Expenses sem mouse e teclado. Infelizmente, a versão atual do aplicativo não é amigável para controle por toque.
A Contoso deseja modernizar o aplicativo com novos recursos do Windows para permitir que os funcionários criem relatórios de despesas com mais eficiência. Muitos dos recursos podem ser facilmente implementados com a criação de um novo aplicativo UWP. No entanto, o aplicativo existente é complexo e é resultado de muitos anos de desenvolvimento por equipes diferentes. Sendo assim, reescrevê-lo do zero com uma nova tecnologia não é uma opção. A equipe está buscando a melhor abordagem para adicionar recursos à base de código existente.
No início do tutorial, o Contoso Expenses tem como alvo o .NET Framework 4.7.2 e usa as seguintes bibliotecas de terceiros:
- MVVM Light, uma implementação básica do padrão MVVM.
- Unity, um contêiner de injeção de dependência.
- LiteDb, uma solução NoSQL inserida para armazenar os dados.
- Bogus, uma ferramenta para gerar dados falsos.
No tutorial, você aprimorará o Contoso Expenses com novos recursos do Windows:
- Migrar um aplicativo do WPF para o .NET Core 3.0. Isso possibilitará cenários novos e importantes no futuro.
- Usar Ilhas XAML para hospedar os controles encapsulados InkCanvas e MapControl fornecidos pelo Windows Community Toolkit.
- Use as ilhas do XAML para hospedar qualquer controle padrão do UWP XAML (neste caso, um CalendarView).
- Integrar Cartões Adaptáveis e notificações do Windows ao aplicativo.
- Empacote o aplicativo com MSIX e configure um pipeline de CI/CD no Azure DevOps para que você possa fornecer automaticamente novas versões do aplicativo para testadores e usuários assim que elas estiverem disponíveis.
Pré-requisitos
Para executar este tutorial, o computador de desenvolvimento precisará ter estes pré-requisitos instalados:
- Windows 10, versão 1903 (build 18362) ou uma versão posterior.
- Visual Studio 2019.
- SDK do .NET Core 3 (instale a versão mais recente).
Instale as seguintes cargas de trabalho e recursos opcionais com o Visual Studio 2019:
- Desenvolvimento de área de trabalho do .NET
- Desenvolvimento para a Plataforma Universal do Windows
- SDK do Windows (10.0.18362.0 ou posterior)
Obter o aplicativo de exemplo Contoso Expenses
Antes de começar o tutorial, baixe o código-fonte do aplicativo Contoso Expenses e verifique se você pode compilar o código no Visual Studio.
- Baixe o código-fonte do aplicativo na guia Versões do Repositório do workshop AppConsult WinAppsModernization. O link direto é https://github.com/microsoft/AppConsult-WinAppsModernizationWorkshop/releases.
- Abra o arquivo zip e extraia todo o conteúdo na raiz da unidade C:\. Ele criará uma pasta chamada C:\WinAppsModernizationWorkshop.
- Abra o Visual Studio 2019 e clique duas vezes no arquivo C:\WinAppsModernizationWorkshop\Lab\Exercise1\01-Start\ContosoExpenses\ContosoExpenses.sln para abrir a solução.
- Verifique se você consegue compilar, executar e depurar o projeto Contoso Expenses WPF pressionando o botão Iniciar ou CTRL + F5.
Introdução
Quanto tiver o código-fonte do aplicativo de exemplo Contoso Expenses e confirmar que pode compilá-lo no Visual Studio, você estará pronto para iniciar o tutorial:
- Parte 1: Migrar o aplicativo Contoso Expenses para o .NET Core 3
- Parte 2: Adicionar um controle UWP InkCanvas usando ilhas XAML
- Parte 3: Adicionar um controle CalendarView UWP usando ilhas XAML
- Parte 4: Adicionar atividades e notificações do usuário do Windows 10
- Parte 5: Empacotar e implantar com MSIX
Conceitos importantes
As seções a seguir fornecem o contexto de alguns dos principais conceitos discutidos neste tutorial. Se já estiver familiarizado com esses conceitos, ignore esta seção.
Plataforma Universal do Windows (UWP)
No Windows 8, a Microsoft apresentou uma nova configuração de API como parte do WinRT (Windows Runtime). Diferente do .NET Framework, o WinRT é uma camada nativa de APIs que são expostas diretamente aos aplicativos. O WinRT também introduziu projeções de linguagem, que são camadas adicionadas sobre o runtime para permitir que os desenvolvedores interajam com ele usando linguagens como C# e JavaScript além de C++. As projeções permitem que os desenvolvedores criem aplicativos sobre o WinRT aproveitando os mesmos conhecimentos sobre o C# e o XAML adquiridos na criação de aplicativos com o .NET Framework.
No Windows 10, a Microsoft introduziu o
No futuro, a maioria dos novos recursos do Windows serão expostos por meio de APIs do WinRT, incluindo recursos como Linha do Tempo, Projeto Roma e Windows Hello.
Empacotamento MSIX
MSIX é o modelo de empacotamento moderno para aplicativos do Windows. O MSIX dá suporte a aplicativos UWP, bem como à criação de aplicativos da área de trabalho usando tecnologias como Win32, WPF, Windows Forms, Java, Electron e muito mais. Quando você empacota um aplicativo da área de trabalho em um pacote MSIX, é possível publicá-lo na Microsoft Store. Seu aplicativo da área de trabalho também obtém o identificador de pacote quando é instalado, o que permite ele use um conjunto mais amplo de APIs do WinRT.
Para obter mais informações, consulte estes artigos:
- Empacotar aplicativos da área de trabalho
- Os bastidores de seu aplicativo da área de trabalho empacotado
Ilhas XAML
A partir do Windows 10, versão 1903, você pode hospedar controles UWP em aplicativos de área de trabalho não UWP usando um recurso chamado Ilhas XAML. Esse recurso permite que você aprimore a aparência e a funcionalidade de seus aplicativos da área de trabalho existentes, com os recursos mais recentes de interface do usuário do Windows que só estão disponíveis por meio dos controles UWP. Isso significa que você pode usar recursos UWP, como o Windows Ink e controles que dão suporte ao Sistema Fluent Design em seus aplicativos WPF, Windows Forms e C++ Win32 existentes.
Para obter mais informações, consulte controles UWP em aplicativos desktop (Ilhas XAML). Este tutorial orienta você no processo de usar dois tipos diferentes de controles de Ilha XAML:
O do InkCanvas e MapControl no Kit de Ferramentas da Comunidade do Windows. Esses controles do WPF encapsulam a interface e a funcionalidade dos controles da UWP correspondentes e podem ser usados como qualquer outro controle do WPF no designer do Visual Studio.
O controle de exibição de calendário da UWP. Este é um controle UWP padrão que você hospedará usando o controle
WindowsXamlHost no Windows Community Toolkit.
.NET Core 3
do .NET Core é uma estrutura de software livre que implementa uma versão multiplataforma, leve e facilmente extensível do .NET Framework completo. Em comparação com o .NET Framework completo, o runtime do .NET Core é muito mais rápido e muitas das APIs foram otimizadas.
Nas primeiras versões, o foco do .NET Core era o suporte a aplicativos Web ou de back-end. Com o .NET Core, você pode criar facilmente aplicativos Web ou APIs escalonáveis que podem ser hospedados no Windows, no Linux ou em arquiteturas de microsserviço, como contêineres do Docker.
O .NET Core 3 é a versão mais recente do .NET Core. O destaque dessa versão é o suporte para aplicativos da área de trabalho do Windows, incluindo aplicativos Windows Forms e WPF. Você pode executar aplicativos da área de trabalho do Windows novos e existentes no .NET Core 3 e aproveitar todos os benefícios que o .NET Core tem a oferecer. Controles da UWP que são hospedados nas ilhas de XAML também podem ser usados em aplicativos do Windows Forms e WPF destinados ao .NET Core 3.
Observação
O WPF e o Windows Forms não estão se tornando multiplataforma e você não pode executar um WPF ou Windows Forms no Linux e no MacOS. Os componentes da interface do usuário do WPF e do Windows Forms ainda têm dependência do sistema de renderização do Windows.
Para obter mais informações, confira as novidades no .NET Core 3.0.
Windows developer