Mostrando postagens com marcador WPF. Mostrar todas as postagens
Mostrando postagens com marcador WPF. Mostrar todas as postagens

quinta-feira, 24 de fevereiro de 2011

Cartilha WPF para o Desenvolvedor PowerBuilder: Parte 2

Postado em 22 de junho de 2009 por John Strano, no blog do PowerBuilder no site oficial da Sybase: http://blogs.sybase.com/powerbuilder/2009/06/a-wpf-primer-for-the-powerbuilder-developer-part-two/

Traduzido e adaptado por: Blog PowerBuilder Brasil

Migrando para WPF

O WPF introduziu vários novos conceitos, entre eles: propriedades de dependência, propriedades de anexos, comandos e eventos roteados. Um dos objetivos do projeto da IDE PowerBuilder .NET é abstrair todos os detalhes destes novos conceitos e manter a sua utilização semelhante a IDE PowerBuilder já existente.

O ambiente de desenvolvimento PowerBuilder .NET reduz drasticamente sua curva de aprendizado para o WPF. O objetivo é proporcionar aos desenvolvedores a experiência de criar aplicações WPF através do PowerBuilder.

O WPF tem um modelo de objeto diferente das aplicações Win32 e WinForm. Estamos trabalhando para preservar o modelo PowerBuilder ao incorporar a funcionalidade WPF desejada. Por exemplo, os controles WPF tem uma propriedade “content”. Para as classes/controles apropriados, o PowerBuilder abstrai para a propriedade já conhecida “Text”. Este objetivo é atingido no PowerBuilder através de controles estendidos para WPF. Abaixo temos um pequeno fragmento de XAML, ilustrando esta abstração:

pbwpf:CommandButton PBHeight=”112″ PBWidth=”462″  Name=“cb_save” VerticalAlignment=”Bottom” Text=”Save” />

A arquitetura do WPF também é consideravelmente diferente das arquiteturas Win32 e WinForm. A abordagem de migração é diferente do que tivemos no PowerBuilder 11.x, quando migramos de Win32 para WinForm .NET. Na migração para o WPF, serão necessárias mais alterações de código do que numa migração de Win32 para Windows Forms.


Eventos Personalizados Definidos pelo Usuário

Para o WPF, o modelo de eventos do Win32/WinForm foi alterado. Muitos eventos personalizados do Win32 do WinForms .NET  não possuem eventos correspondentes no WPF e por isso não serão suportados pelas aplicações PowerBuilder WPF. Por exemplo, se você mapeou o evento pbm_erasebkgnd para uma janela no PowerBuilder Clássico (Win32), este evento não existe em uma janela WPF. Você precisará decidir qual a melhor alternativa para contornar este problema e re-escrever o código.



Utilização de Window Handle

Em aplicações Win32/WinForm, cada controle é na verdade uma janela e tem o seu próprio handle. No WPF, existe apenas um único handle de janela pai. Um controle em uma janela WPF não terá um handle próprio. Chamadas de API`s que utilizam Window handles não serão suportadas. Para aplicações migradas, não existe outra solução a não ser re-escrever o código.


Seqüência de Eventos

Novamente, o modelo de eventos de aplicações WPF foi alterado em relação a seus predecessores. A seqüência de eventos das aplicações WPF é diferente da seqüência de aplicações WinForm / Win32. Não podemos garantir que a seqüência de eventos das classes WPF será exatamente a mesma. Se algumas partes de suas aplicações migradas são invocadas em uma ordem específica de eventos, que difere no WPF, não existe outra solução a não ser re-escrever o código.


Aparência

A aparência das aplicações WPF é bem diferente das aplicações Win32 e WinForm. Alguns comportamentos básicos serão alterados. Algumas propriedades não possuem um padrão equivalente no WPF. O WPF incentiva os desenvolvedores a usar Styles e Templates para criar bordas em vez de simplesmente usar a propriedade BorderStyle. Curiosamente, na década de 90 a Microsoft defendeu o uso do MDI, mas este agora é visto pela Microsoft com uma série de desvantagens. Nas aplicações PowerBuilder migradas para WPF, as aplicações MDI serão renderizadas em uma interface com abas (tabpages). A área cliente MDI será um tab control e cada uma das sheets MDI será uma página do tab control. O que era um frame MDI será um tab control e o que era uma sheet MDI agora será uma tabpage.


Restrições de Controles

Em aplicações Win32 e WinForm, uma janela pode ser pai de vários controles. Já no WPF, uma janela pode ter apenas um controle filho.

A convenção no WPF é colocar um painel de layout na janela, então este painel atua como o objeto pai de múltiplos controles. O painel de layout “Canvas” será utilizado como default para janelas de aplicações migradas. No WPF, os painéis “Canvas” se aproximam bastante do posicionamento oferecido pelas aplicações Win32 e WinForm. Se utilizássemos painéis Grid para aplicações migradas, a posição dos objetos não seriam satisfatórias. Se nos depararmos com estas situações, vamos entender que o desenvolvedor quer utilizar de forma proveitosa os recursos do WPF.

Todos os conflitos de migração serão marcados em um avançado assistente de migração, e esta ferramenta irá reportar que existem itens dependendo de decisões do desenvolvedor. O log de saída na IDE PowerBuilder .NET é segregado por categorias, em tabs, o que facilita o exame de conflitos após a migração.



Bibliografia

Introduction to Windows Presentation Foundation:
Window Presentation Foundation Unleashed By Adam Nathan - ISBN-13: 9780672328916
CodeProject Guided Tours:
http://www.codeproject.com/KB/WPF/GuidedTourWPF_1.aspx
http://www.codeproject.com/KB/WPF/GuidedTourWPF_2.aspx
http://www.codeproject.com/KB/WPF/GuidedTourWPF_3.aspx
http://www.codeproject.com/KB/WPF/GuidedTourWPF_4.aspx
http://www.codeproject.com/KB/WPF/GuidedTourWPF_5.aspx

domingo, 6 de fevereiro de 2011

Cartilha WPF para o Desenvolvedor PowerBuilder: Parte 1

Postado em 22 de maio de 2009 por John Strano, no blog do PowerBuilder no site oficial da Sybase: http://blogs.sybase.com/powerbuilder

Traduzido e adaptado por: Blog PowerBuilder Brasil

Window Presentation Foundation (WPF) é uma nova tecnologia para construção de interfaces gráficas. Esta tecnologia de renderização foi inicialmente distribuída como parte do .NET 3.0 e está totalmente relacionada à camada de apresentação. O WPF está disponível a partir da versão 3.0 do .NET e pode ser instalada nas plataformas: XP/Vista/Windows 2003/etc. Utilizando a IDE PowerBuilder.NET, os desenvolvedores serão capazes de aproveitar suas habilidades em PowerBuilder para criar aplicativos WPF.
Tecnologia Estratégica de Renderização
A Microsoft afirma que embora aplicativos Win32, .NET Windows Forms e .NET Web Forms ainda serão suportados por muitos anos, estes não podem mais ser considerados estratégicos. O WPF e a tecnologia Silverlight para navegadores são as tecnologias de renderização escolhidas para o Windows de agora em diante.
A IDE PowerBuilder .NET, presente na versão 12 do PowerBuilder, é compatível com a tecnologia WPF, preservando o investimento e habilidades dos desenvolvedores PowerBuilder. Poucas ferramentas de desenvolvimento disponibilizaram este tipo de evolução para seus consumidores.
A propósito, o PowerBuilder 12 será distribuído com duas IDEs. O PowerBuilder Clássico para desenvolvimento de aplicações Win32, aplicações .NET, JEE e componentes não visuais. A IDE PowerBuilder .NET fornece um ambiente de desenvolvimento para aplicações WPF e para objetos não visuais como .NET Assemblies ou .NET Web Services.
Gráficos WPF
O WPF pode dar uma aparência impressionante às aplicações, dando ao usuário uma experiência visualmente deslumbrante. Não são apenas os gráficos que impressionam, mas também a capacidade que o WPF tem de integrar com gráficos 3D, animações, vídeos de alta definição, etc.
A primeira alteração está relacionada à tecnologia subjacente. Historicamente, aplicações Win32 e .NET Window Forms sempre utilizaram GDI+. Já o WPF utiliza DirectX para renderização. O DirectX pode ser renderizado utilizando recursos de hardware, e em alguns casos isso resulta inclusive em ganhos de performance sem o desenvolvedor ter que aprender a acessar cada API de placa gráfica. Uma paleta de cores, gradientes, preenchimentos, texturas e transparência estão todos disponíveis na forma de "escovas".

Gráficos Vetoriais
Interfaces WPF estáticas e animadas são processadas através de gráficos vetoriais. Os gráficos vetoriais vieram à tona no final de década de 90 com o advento do Flash. Lembram-se de quanto custava uma banda de 56k em 1998? Com a utilização de gráficos vetoriais, os arquivos necessários para download de uma interface em Flash eram muito pequenos, minúsculos se comparados ao impacto visual que produziam uma vez processados pelo software cliente. Os “Flash Players” então se tornaram onipresentes e o sentimento dos usuários pode ser traduzido como algo do tipo “Eu não tenho que instalá-lo”. O WPF e o Silverlight são responsáveis pela incursão da Microsoft num espaço até então ocupado pela Macromedia, com o Adobe Flash e Flex.
O WPF é independente de resolução
Por ser um subproduto da tecnologia vetorial, aumentar ou diminuir o zoom em uma interface WPF praticamente não degrada em nada a interface renderizada, mesmo que ultrapasse os limites da usabilidade, conforme podemos ver no exemplo que segue.





Outra vantagem do WPF é o fato de possuir uma rica e unificada API para várias tecnologias. Sua integração ampla abrange gráficos 3D, vídeos em HD, reconhecimento de voz e uma rica visualização de documentos, com uma única tecnologia, um único framework. Não há necessidade de ir à busca de várias APIs para cada um desses recursos.
Texto e Tipografia no WPF
O WPF oferece suporte à fonte OpenType. O OpenType é uma extensão do formato TrueType®. O suporte à fonte PostScript foi adicionado através de um esforço conjunto entre Microsoft e Adobe. A especificação do formato OpenType pode ser encontrada no endereço abaixo:
O ClearType é uma tecnologia de otimização para displays LCD que foi aprimorada para o WPF. Estes aprimoramentos incluem “sub-pixel positioning”, “y-direction anti-aliasing”, e utilizando DirectX, o texto WPF pode aproveitar a velocidade do hardware. Textos internacionais também possuem grande suporte no WPF.
Veja o artigo “Globalization for the Windows Presentation Foundation”:
A integração do texto com mídias, gráficos e animações oferecem uma nova e suave apresentação textual.
A imagem a seguir ilustra a integração entre texto e gráficos para alcançar formas variadas de decoração de textos:



Um subproduto relacionado aos recursos de textos no WPF é o suporte à capacidade de exibição da direita para a esquerda, através da propriedade de layout “FlowDirection”. Qualquer controle capaz de exibir textos terá a funcionalidade “FlowDirection”.



Documentos
O WPF suporta três tipos nativos de documentos: Fixed, Flow e XPS (XML Paper Specification).
Documentos Fixed
…são para exibição WYSIWYG, e preservam o formato e estilo originais do documento. A qualidade varia de acordo com os dispositivos de saída.
Documentos Flow
…podem ser ajustados e redimensionados dinamicamente.

Documentos XPS
…ou XML Paper Specification são baseados nos documentos fixed do WPF.
Eles são abertos em forma de documentos eletrônicos, e podem ser autônomos ou dependentes de navegadores. O XPS compete com o Adobe PDF no campo de documentos eletrônicos.
No próximo post relacionado, continuaremos nossa introdução ao WPF e explorar a migração de aplicações existentes em PowerBuilder para WPF e PowerBuilder.NET.
Bibliografia
Introduction to Windows Presentation Foundation:
Window Presentation Foundation Unleashed By Adam Nathan - ISBN-13: 9780672328916
CodeProject Guided Tours: