Introdução à criação de aplicativos do Windows

Concluído

O que vamos abordar?

Neste módulo, você aprenderá a escrever o mesmo aplicativo de três maneiras diferentes, usando três tecnologias do Windows. Você usará C#, mas o combinará com três estruturas de desenvolvimento: a UWP (Plataforma Universal do Windows), o WPF (Windows Presentation Foundation) e o Windows Forms.

Em seguida, apresentaremos o WTS (Windows Template Studio), e você poderá ver como é possível produzir rapidamente a base de um aplicativo moderno com o mínimo de esforço.

Uma história de três plataformas

Ao longo dos anos, requisitos e tecnologias diferentes levaram ao desenvolvimento de várias maneiras de escrever aplicativos que são executados no Windows. A meta sempre foi a mesma: ajudar os desenvolvedores a criar uma interface do usuário e gerar o código clichê essencial, para que eles possam adicionar as funcionalidades exclusivas que fazem com que os aplicativos sejam úteis. Ninguém quer escrever um código que exiba o texto pixel por pixel ou que desenhe as formas que farão parte de um menu ou janela. Os desenvolvedores querem um código consistente, comprovado e confiável que já esteja disponível e lide com todos esses recursos (e muitos outros).

Para isso, a Microsoft criou várias ferramentas e bibliotecas. As três que vamos examinar neste roteiro de aprendizagem são a UWP, o WPF e o Windows Forms. As três fornecem abordagens semelhantes para a criação de aplicativos básicos.

Diagram that shows some of the development platforms available in Visual Studio, such as UWP, WPF, and Windows Forms.

Plataforma Universal do Windows

O Windows 10 introduziu a UWP (Plataforma Universal do Windows), que fornece uma plataforma de aplicativo comum em cada dispositivo que executa o Windows. As APIs básicas da UWP são as mesmas em todos os dispositivos Windows. Se o aplicativo usar apenas as APIs principais, ele será executado em qualquer dispositivo Windows 10, seja ele um computador desktop, um Xbox, um headset de realidade misturada ou algum outro.

A UWP é a melhor opção quando você está direcionando para o Windows e deseja acesso irrestrito às APIs e aos recursos do Windows. A UWP também fornece os outros benefícios de uma plataforma de aplicativos moderna. Esses benefícios incluem:

  • Um modelo de interface do usuário baseado em XAML (Extensible Application Markup Language) com suporte interno para adaptação a alterações de tamanho de tela e DPI.
  • Um modelo de segurança no qual os usuários permitem explicitamente aos aplicativos acesso aos recursos do dispositivo.
  • Um modelo de empacotamento que dá suporte a instalações limpas e à capacidade de publicação direta na Microsoft Store.

Windows Presentation Foundation

O WPF (Windows Presentation Foundation) é uma estrutura de interface do usuário para criar aplicativos cliente da área de trabalho. A plataforma de desenvolvimento WPF dá suporte a um amplo conjunto de recursos de desenvolvimento de aplicativos, incluindo:

  • Um modelo de aplicativo
  • Recursos
  • Controles
  • Gráficos
  • Layout
  • Vinculação de dados
  • Documentos
  • Segurança

Ele faz parte das bibliotecas específicas do Windows no .NET, portanto, se você já tiver criado aplicativos com o .NET usando o ASP.NET Core ou o Windows Forms, a experiência de programação será familiar. O WPF usa XAML para fornecer um modelo declarativo para programação de aplicativo.

O WPF e o Windows Forms serão a melhor opção se você quiser um nível mais alto de produtividade de codificação do que o C++ e o Win32. Como as partes que não são da interface do usuário do .NET moderno agora são multiplataforma, você também pode compartilhar algumas bibliotecas e códigos do .NET com outras plataformas, incluindo macOS e Linux.

Windows Forms

Windows Forms é uma interface gráfica do usuário de software livre para .NET, um conjunto padrão de bibliotecas e APIs de classe base que simplificam tarefas comuns do aplicativo. Ao usar um ambiente de desenvolvimento como o Visual Studio, você pode criar aplicativos cliente inteligente do Windows Forms que exibem informações, solicitam entrada de usuários e se comunicam com computadores remotos em uma rede. A plataforma do Windows Forms atual é baseada em uma plataforma de interface do usuário do .NET Framework mais antiga e não tem alguns dos recursos fornecidos pelo WPF e pela UWP.

Essas três plataformas são os assuntos em foco neste módulo de treinamento. Antes de começarmos, vamos dar uma olhada rápida em duas outras opções: WinUI e Win32.

WinUI e SDK do Aplicativo Windows

O WinUI 3 é um componente de plataforma da IU nativa fornecido com o SDK do Aplicativo Windows (separado dos SDKs do Windows). O SDK do Aplicativo do Windows fornece um conjunto unificado de APIs e ferramentas que podem ser usadas para criar aplicativos de área de trabalho de produção destinados ao Windows 10 e posterior e podem ser publicados na Microsoft Store.

Observação

Neste momento, há duas gerações da WinUI (Biblioteca de Interface do Usuário do Windows): a WinUI 2 para UWP e a WinUI 3 no SDK do aplicativo do Windows. Embora as duas possam ser usadas em aplicativos prontos para produção no Windows 10 e posterior, cada uma tem diferentes metas de desenvolvimento. Consulte Comparação entre a WinUI 3 e a WinUI 2.

Não dá para falar de escrever aplicativos do Windows sem mencionar mais uma opção: Win32.

Win32 (API do Windows) e C++

A API do Win32 (mais precisamente chamada de API do Windows) permite que os aplicativos usem os recursos do Windows. Com essa API, você pode desenvolver aplicativos que são executados com êxito em todas as versões do Windows, aproveitando as funcionalidades e os recursos exclusivos de cada versão. O Win32 é uma boa opção quando você precisa atingir os mais altos níveis possíveis de desempenho ou de eficiência e acessar recursos nativos do sistema operacional ou direcionar para tecnologias DirectX.

Essa abordagem permite obter o melhor desempenho para o aplicativo assumindo o controle direto sobre a alocação de memória e os recursos de CPU orientados a desempenho, como instruções SSE e AVX. Essa é a melhor maneira de direcionar para tecnologias DirectX para obter acesso a gráficos de alto desempenho e baixo nível. É possível compartilhar o código C++ entre todos os tipos de aplicativos do Windows e também com plataformas que não sejam Windows. A desvantagem é que, por exemplo, em comparação com o C# e o WPF, pode ser necessária uma quantidade razoável de trabalho até mesmo para implementar recursos básicos.

Observação

Para obter mais informações, consulte Gravando aplicativos para Windows: selecionando uma tecnologia de desenvolvimento.

O aplicativo que você escreve

O aplicativo que você criará neste módulo é simples. Ele exibe um texto e altera algumas cores quando você seleciona um botão.

Animation of the Say hello application running with text that repeatedly changes color.

Ele não ganhará nenhum prêmio, mas demonstra as semelhanças e as diferenças entre as plataformas de desenvolvimento.

Depois de entender isso, você poderá experimentar o Windows Template Studio. Com o WTS, você criará um aplicativo um pouco mais interessante.

Screenshot that shows a composite of three different pages of a Weather application: a map, chart, and settings page.

Pronto para começar?