Introdução à escrita de aplicativos do Windows

Concluído

O que vamos cobrir?

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

Em seguida, apresentamos o Windows Template Studio (WTS) e você pode ver a rapidez com que pode produzir o núcleo de um aplicativo moderno com o mínimo de esforço.

Um conto de três plataformas

Ao longo dos anos, diferentes tecnologias e requisitos levaram ao desenvolvimento de muitas maneiras de escrever aplicativos que são executados no Windows. O objetivo sempre foi o mesmo: ajudar os desenvolvedores a criar uma interface de usuário e gerar código clichê essencial, deixando-os adicionar a funcionalidade única que torna seus aplicativos úteis. Ninguém quer escrever código que exiba texto pixel a pixel ou desenhe as formas que compõem um menu ou janela. Os desenvolvedores querem ter um código consistente, comprovado e confiável que lide com todos esses recursos (e muito mais!) já disponível.

Para esse fim, a Microsoft criou muitas ferramentas e bibliotecas. Os três que veremos neste caminho de aprendizado são UWP, WPF e Windows Forms. Todos os 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 Plataforma Universal do Windows (UWP), que fornece uma plataforma de aplicativo comum em todos os dispositivos que executam o Windows. As APIs principais da UWP são as mesmas em todos os dispositivos Windows. Se o seu aplicativo usa apenas as APIs principais, ele é executado em qualquer dispositivo Windows 10, seja um PC desktop, Xbox, um fone de ouvido de realidade mista ou qualquer outra coisa.

A UWP é melhor se você estiver visando o Windows e quiser acesso livre às APIs e recursos do Windows. A UWP também fornece os outros benefícios de uma plataforma de aplicativos moderna. As vantagens incluem:

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

Windows Presentation Foundation

Windows Presentation Foundation (WPF) é uma estrutura de interface do usuário para a criação de aplicativos cliente de área de trabalho. A plataforma de desenvolvimento WPF suporta um amplo conjunto de recursos de desenvolvimento de aplicativos, incluindo:

  • Um modelo de aplicação
  • Recursos
  • Controlos
  • Placa gráfica
  • Esquema
  • Vinculação de dados
  • Documentos
  • Segurança

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

WPF e Windows Forms são melhores se você quiser ter um nível mais alto de produtividade de codificação do que C++ e 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 alguns códigos e bibliotecas do .NET com outras plataformas, incluindo macOS e Linux.

Windows Forms

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

Estas três plataformas são os temas do nosso foco neste módulo de formação. Antes de começarmos, porém, vamos dar uma olhada rápida em duas outras opções: WinUI e Win32.

WinUI e o SDK do Aplicativo Windows

WinUI 3 é o componente de plataforma de interface do usuário nativo que acompanha o SDK do Aplicativo Windows (dissociado do SDK do Windows). O SDK de Aplicativos 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 posteriores e que podem ser publicados na Microsoft Store.

Nota

No momento, há duas gerações da Biblioteca da Interface do Usuário do Windows (WinUI): WinUI 2 para UWP e WinUI 3 no SDK de Aplicativo do Windows. Embora ambos possam ser usados em aplicativos prontos para produção no Windows 10 e posteriores, cada um tem destinos de desenvolvimento diferentes. Consulte Comparação de WinUI 3 e WinUI 2.

Não podemos falar sobre 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. Usando essa API, você pode desenvolver aplicativos que são executados com êxito em todas as versões do Windows e, ao mesmo tempo, aproveitar os recursos exclusivos de cada versão. O Win32 é uma boa escolha se você precisar atingir os mais altos níveis de desempenho ou eficiência, acessar recursos nativos do sistema operacional ou direcionar tecnologias DirectX.

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

Nota

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

O aplicativo que você escreve

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

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

Não vai ganhar nenhum prémio, mas demonstra as semelhanças e diferenças entre as plataformas de desenvolvimento.

Quando tiver preenchido, pode passar a experimentar o Windows Template Studio. Com a WTS, você cria um aplicativo que parece um pouco mais impressionante.

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

Pronto para começar?