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 aplicativos de á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 WPF existente usando estes recursos:
- .NET Core 3
- Controles XAML da UWP com Ilhas XAML
- Notificações de Adaptive Cards e Windows
- Implantação de MSIX
Este tutorial requer as seguintes habilidades de desenvolvimento:
- Experiência no desenvolvimento de aplicativos da área de trabalho Windows com 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 WPF simples 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 esse aplicativo com novos recursos de 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, a Contoso Expenses tem como destino 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 de NoSQL inserida para armazenar os dados.
- Bogus, uma ferramenta para gerar dados falsos.
No tutorial, você aprimora as Despesas da Contoso com novos recursos de Windows:
- Migre um aplicativo WPF existente para .NET Core 3.0. Isso possibilitará cenários novos e importantes no futuro.
- Use Ilhas XAML para hospedar os controles InkCanvas e MapControl encapsulados, fornecidos pelo Kit de Ferramentas da Comunidade Windows.
- Use as ilhas do XAML para hospedar qualquer controle padrão do UWP XAML (neste caso, um CalendarView).
- Integre as notificações Adaptive Cards e Windows ao 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 ele estiver disponível.
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.
- .NET SDK do Core 3 (instale a versão mais recente).
Instale as seguintes cargas de trabalho e recursos opcionais com Visual Studio 2019:
- Desenvolvimento Desktop .NET
- Desenvolvimento de Universal Windows Platform
- Windows SDK (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 certifique-se de criar o código em 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 Visual Studio 2019 e clique duas vezes no arquivo C:\WinAppsModernizationWorkshop\Lab\Exercise1\01-Start\ContosoExpenses\ContosoExpenses.sln para abrir a solução.
- Verifique a possibilidade de compilar, executar e depurar o projeto WPF Contoso Expenses pressionando o botão Start ou CTRL + F5.
Introdução
Depois de ter o código-fonte do aplicativo de exemplo Contoso Expenses e confirmar se você pode compilá-lo no Visual Studio, você estará pronto para iniciar o tutorial:
- Part 1: migrar o aplicativo Contoso Expenses para .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: Adicione atividades e notificações do usuário no 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.
Universal Windows Platform (UWP)
Em Windows 8, a Microsoft introduziu um novo conjunto de API como parte do Windows Runtime (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 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 que aproveitam o mesmo conhecimento C# e XAML adquiridos na criação de aplicativos com o .NET Framework.
Em Windows 10, a Microsoft introduziu o Universal Windows Platform (UWP), que é criado com base no WinRT. O recurso mais importante da UWP é que ele oferece um conjunto comum de APIs em todas as plataformas de dispositivos: independentemente de o aplicativo estar em execução em uma área de trabalho, em um Xbox One ou em um HoloLens, você poderá usar as mesmas APIs.
Daqui para frente, a maioria dos novos recursos de Windows são expostos por meio de APIs do WinRT, incluindo recursos como Linha do Tempo, Project Rome e Windows Hello.
Empacotamento MSIX
MSIX é o modelo de empacotamento moderno para aplicativos 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 usar 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 XAML Islands. 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 da interface do usuário Windows disponíveis apenas por meio de controles UWP. Isso significa que você pode usar recursos UWP, como Windows Ink e controles que dão suporte ao Sistema de Design Fluente em seus aplicativos existentes WPF, Windows Forms e C++ Win32.
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 InkCanvas e MapControl no kit de ferramentas da comunidade 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 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 kit de ferramentas da comunidade Windows.
.NET Core 3
.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 tempo de inicialização do .NET Core é muito mais rápido e muitas das APIs foram otimizadas.
Por meio de suas primeiras versões, o foco do .NET Core era dar suporte a aplicativos Web ou back-end. Com o .NET Core, você pode criar facilmente aplicativos Web escalonáveis ou APIs que podem ser hospedadas em Windows, Linux ou em arquiteturas de microatendimento, como contêineres do Docker.
.NET Core 3 é a versão mais recente do .NET Core. O destaque desta versão é o suporte para aplicativos de desktop do Windows, incluindo aplicativos Windows Forms e WPF. Você pode executar aplicativos novos e existentes Windows desktop no .NET Core 3 e aproveitar todos os benefícios que .NET Core tem a oferecer. Os controles UWP hospedados em XAML Islands também podem ser usados em aplicativos Windows Forms e WPF direcionados .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 no MacOS. Os componentes de interface do usuário de WPF e Windows Forms ainda têm uma dependência do sistema de renderização Windows.
Para obter mais informações, consulte O que há de novo no .NET Core 3.0.
Windows developer