Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Há muitas maneiras de modernizar aplicativos de área de trabalho existentes integrando os recursos mais recentes do Windows no 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 WPF existente usando esses recursos:
- .NET Core 3
- Controles UWP XAML com ilhas XAML
- Cartões adaptáveis e notificações do Windows
- Implantação do MSIX
Este tutorial requer as seguintes habilidades de desenvolvimento:
- Experiência no desenvolvimento de aplicativos da área de trabalho do Windows com WPF.
- Conhecimento básico de C# e XAML.
- Conhecimentos básicos de UWP.
Visão geral
Este tutorial fornece o código para um aplicativo de linha de negócios WPF simples chamado Contoso Expenses. No cenário fictício do tutorial, Contoso Expenses é um aplicativo interno usado por gerentes da Contoso Corporation para acompanhar as despesas enviadas por seus relatórios. Os gerentes agora estão equipados com dispositivos habilitados para toque e gostariam de usar o aplicativo Contoso Expenses sem mouse ou teclado. Infelizmente, a versão atual do aplicativo não é sensível ao toque.
A Contoso deseja modernizar esse aplicativo com novos recursos do Windows para permitir que os funcionários criem relatórios de despesas com mais eficiência. Muitos dos recursos poderiam ser facilmente implementados criando um novo aplicativo UWP. No entanto, o aplicativo existente é complexo e é o resultado de muitos anos de desenvolvimento por diferentes equipes. Como tal, reescrevê-lo do zero com uma nova tecnologia não é uma opção. A equipe está procurando a melhor abordagem para adicionar novos 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 para o padrão MVVM.
- Unity, um recipiente de injeção de dependência.
- LiteDb, uma solução NoSQL incorporada para armazenar os dados.
- Bogus, uma ferramenta para gerar dados falsos.
No tutorial, você aprimorará as Despesas da Contoso com novos recursos do Windows:
- Migre um aplicativo WPF existente para o .NET Core 3.0. Isto abrirá novos e importantes cenários no futuro.
- Utiliza Ilhas XAML para alojar os controlos encapsulados InkCanvas e MapControl fornecidos pelas Ferramentas da Comunidade do Windows.
- Use Ilhas XAML para hospedar qualquer controle XAML UWP padrão (neste caso, um CalendarView).
- Integre cartões adaptáveis e notificações do Windows no aplicativo.
- Empacote o aplicativo com MSIX e configure um pipeline de CI/CD no Azure DevOps para que você possa entregar automaticamente novas versões do aplicativo para testadores e usuários assim que estiver disponível.
Pré-requisitos
Para executar este tutorial, seu computador de desenvolvimento deve 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).
Certifique-se de instalar as seguintes cargas de trabalho e recursos opcionais com o Visual Studio 2019:
- Desenvolvimento de desktop .NET
- Desenvolvimento da Plataforma Universal do Windows
- SDK do Windows (10.0.18362.0 ou posterior)
Obtenha 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 criar o código no Visual Studio.
- Baixe o código-fonte da aplicação a partir do separador
Releases no repositório do workshop AppConsult WinAppsModernization . O link direto é https://github.com/microsoft/AppConsult-WinAppsModernizationWorkshop/releases. - Abra o ficheiro zip e extraia todo o conteúdo para a raiz da sua 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ê pode criar, executar e depurar o projeto WPF de Despesas da Contoso pressionando o botão Iniciar ou CTRL + F5.
Introdução
Depois de ter o código-fonte para o aplicativo de exemplo Contoso Expenses e confirmar que pode criá-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 controlo UWP CalendarView através de XAML Islands
- 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 informações básicas para alguns dos principais conceitos discutidos neste tutorial. Se já estiver familiarizado com estes conceitos, pode ignorar esta secção.
Plataforma Universal do Windows (UWP)
No Windows 8, a Microsoft introduziu um novo conjunto de APIs como parte do Tempo de Execução do Windows (WinRT). Ao contrário 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 tempo de execução 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 que aproveitam o mesmo conhecimento em C# e XAML que adquiriram na criação de aplicativos com o .NET Framework.
No Windows 10, a Microsoft introduziu a Plataforma Universal do Windows (UWP), que é construída sobre o WinRT. O recurso mais importante da UWP é que ela oferece um conjunto comum de APIs em todas as plataformas de dispositivos: não importa se o aplicativo está sendo executado em um desktop, em um Xbox One ou em um HoloLens, você pode usar as mesmas APIs.
No futuro, a maioria dos novos recursos do Windows são expostos por meio de APIs do WinRT, incluindo recursos como Linha do tempo, Project Rome e Windows Hello.
Embalagem MSIX
MSIX é o modelo de empacotamento moderno para aplicativos do Windows. O MSIX suporta aplicativos UWP, bem como a criação de aplicativos de área de trabalho usando tecnologias como Win32, WPF, Windows Forms, Java, Electron e muito mais. Quando empacota uma aplicação de ambiente de trabalho num pacote MSIX, pode publicar a sua aplicação na Microsoft Store. Seu aplicativo de área de trabalho também obtém identidade de pacote quando é instalado, o que permite que seu aplicativo de área de trabalho use um conjunto mais amplo de APIs do WinRT.
Para obter mais informações, consulte estes artigos:
Ilhas XAML
A partir do Windows 10, versão 1903, você pode hospedar controles UWP em aplicativos de área de trabalho que não sejam UWP usando um recurso chamado Ilhas XAML . Esse recurso permite que você aprimore a aparência, a sensação e a funcionalidade de seus aplicativos de área de trabalho existentes com os recursos mais recentes da interface do usuário do Windows que só estão disponíveis por meio de controles UWP. Isso significa que você pode usar recursos UWP, como o Windows Ink e controles que oferecem suporte ao Fluent Design System em seus aplicativos WPF, Windows Forms e C++ Win32 existentes.
Para obter mais informações, consulte controles UWP em aplicativos de área de trabalho (Ilhas XAML). Este tutorial orienta você pelo processo de uso de dois tipos diferentes de controles de ilha XAML:
O InkCanvas e MapControl no Kit de Ferramentas da Comunidade do Windows. Esses controles WPF encapsulam a interface e a funcionalidade dos controles UWP correspondentes e podem ser usados como qualquer outro controle WPF no designer do Visual Studio.
O controlo de vista de calendário UWP . Este é um controlo UWP padrão que será hospedado utilizando o controlo WindowsXamlHost no Toolkit da Comunidade do Windows.
.NET Core 3
O .NET Core é uma estrutura de código aberto que implementa uma versão multiplataforma, leve e facilmente extensível do .NET Framework completo. Em comparação com o .NET Framework completo, o tempo de inicialização do .NET Core é muito mais rápido e muitas das APIs foram otimizadas.
Através de suas primeiras versões, o foco do .NET Core era oferecer suporte a aplicativos Web ou back-end. Com o .NET Core, você pode criar facilmente aplicativos Web escaláveis ou APIs que podem ser hospedadas no Windows, Linux ou em arquiteturas de microsserviços, como contêineres do Docker.
O .NET Core 3 é a versão mais recente do .NET Core. O destaque desta versão é o suporte para aplicativos da área de trabalho do Windows, incluindo aplicativos Windows Forms e WPF. Você pode executar aplicativos de á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. Os controlos UWP hospedados em Ilhas XAML também podem ser usados em aplicações Windows Forms e WPF que têm como alvo o .NET Core 3.
Observação
WPF e Windows Forms não estão se tornando multiplataforma, e você não pode executar um WPF ou Windows Forms no Linux e MacOS. Os componentes da interface do usuário do WPF e do Windows Forms ainda dependem do sistema de renderização do Windows.
Para obter mais informações, consulte O que há de novo no .NET Core 3.0.
Windows developer