Partilhar via


Windows Web App : Alguns recursos para WPF e Silverlight

Olá pessoal, tudo certo?

Ainda na onda sobre aplicações Web e Silverlight, gostaria de apontar alguns recursos interessantes que tenho visto esses dias sobre interfaces ricas para a Web 2.0. Atendendo a pedidos de alguns colegas (certo Flávio?), vamos lá:

1) Microsoft Silverlight Toolkit

Microsoft Silverlight Toolkit Microsoft Silverlight Toolkit Logo

Ref.: https://www.codeplex.com/Silverlight

COMENTÁRIOS:

Sem comentário!! :) Poderia até explodir alguns rojões nesse ponto do post :) (ok, menos!) É impressionante o nível da interface gerada pelos controles agora disponíveis com o Microsoft Silverlight Toolkit. Vou apenas citá-lo aqui no post mas com certeza, merece um novo post especial só para ele. Aguardem!!!

Entre os componentes disponíveis no Silverlight Toolkit você tem Calendar, DatePicker, DockPanel, ViewBox, uma série de gráficos de barra, Pie, Line, além de controles para entrada de dados, visualização de dados, entre outros. Para todos eles, uma grande riqueza gráfica, que com certeza irá atender as necessidades das interfaces RIA de hoje em dia. Não deixe de conferi!

2) RadControls for Microsoft Silverlight

RadControls RadControlsLogo

Ref.: https://demos.telerik.com/silverlight/default.aspx

COMENTÁRIOS:

O RadControls for Microsoft Silverlight é um pacote interessante, que oferece recursos como gráficos animados, medidores, filtros e grids de dados, componentes para dashboards e uma série de controles de tela para Silverlight e WPF. É um exemplo de pacote comercial que amplia os recursos do .NET 3.5 SP1.

O pacote trial também está disponível e serve de inspiração para quem estiver partindo para suas próprias criações.

3) Microsoft Health Common User Interface

Microsoft Health Common User Interface Microsoft Health Common User Interface Logo

Ref.: https://www.mscui.net/ControlsAndSamples.aspx 

COMENTÁRIOS:

A versão 6.5 do Microsoft Health Common User Interface Control Toolkit é um pacote muito interessante e gratuíto, que consolida os controles e comportamentos de tela que vemos na demo do Patient Journey. Quem ainda não viu essa aplicação, dá uma olhada no link abaixo:

Ref.: https://www.mscui.net/PatientJourneyDemonstrator/PrimaryCare.htm

Esse pacote está disponível no CodePlex da Microsoft (https://www.codeplex.com/mscui) e entre os componentes disponíveis temos:

  • Graphing (new WPF and Microsoft® Silverlight™ controls)
  • MedicationsListView (updated WPF and Microsoft® Silverlight™ controls)

Como pré-requisitos você precisa de Windows® XP SP2, Windows Server® 2003 R2 ou Windows Vista®. E como pacotes de desenvolvimento, você pode usar:

  • Microsoft .NET Framework 2.0 – para aplicações usando apenas AJAX ou WinForms assemblies;
  • Microsoft .NET Framework 3.5 Service Pack 1 – para aplicações com todos os recursos: AJAX, WinForms, Silverlight ou WPF.

E não deixe de conferir o portal de estudo do Silverlight, veja: https://silverlight.net/Learn/

4) Templates de aplicação e interfaces no .NET 3.5 SP1

Solution Explorer image

COMENTÁRIOS:

Finalmente, o próprio Visual Studio 2008 com .NET 3.5 SP1 oferece uma série de recursos e templates para a construção de interfaces ricas para o Web 2.0, assim como aplicações desktop muito sofisticadas. Entre os templates disponíveis encontramos:

  • Windows Forms Application: template para a construção de aplicações no modelo MVP, usando o namespace System.Windows.Forms. A partir do WinForms, construímos interfaces desktop, com diversos recursos gráficos para a usabilidade e nagevação do usuário;

  • Windows Forms Control Library: template que permite a construção customizada de controles para WinForms. Em alguns cenários, é comum customizar controles como grids integrados, caixas de texto com bindings para bancos de dados, combos gráficos especiais, entre outros, que ampliam a usabilidade da interface, facilitando tarefas do usuário. Esse template é o caminho para a geração desses novos assemblies;

  • WPF Application: a partir do .NET 3.0, temos o WPF – Windows Presentation Foundation, que oferece como principal diferencial o mapeamento dos controles gráficos através de uma linguagem de marcação, o XAML – XML Application Markup Language (zamel, se preferir). Com esse template, construímos nossas interfaces XAML, usando recursos gráficos vetoriais, que oferecem uma série rica de recursos para usabilidade e navegação, permitindo interfaces bem atuais, acompanhando o look-and-feel do Windows Vista. O namespace principal de recursos aqui é o System.Windows

  • WPF Browser Application: em alguns casos, podemos aproveitar a presença do .NET 3.x na máquina do usuário e fazer o download da aplicações WPF full pela Web. Isso é feito através de um pacote .XBAP – XAML Browser Application. Como principal namespace usado temos o System.Windows.Controls.

  • WPF User Control Library: assim como fizemos com controles customizados para o WinForms, podemos construir nossos controles personalizados em WPF e empacotá-los em WPF User Control Libraries. Esses pacotes podem ser incorporados tanto em interfaces WPF como em interfaces WinForms. Aqui temos um ponto interessante. Veja a figura abaixo, onde uma interface WinForms consome um controle WPF. Sim, isso é possível e o inverso também… depois eu conto mais! :)

    image 

Um exemplo de código do WPF User Control Library é dado abaixo, apenas para comparar com o próximo template disponível, o WPF Custom Control Library, veja:

    1: using System.Windows.Controls;
    2:  
    3: namespace WpfControlLibrary1
    4: {
    5:     /// <summary>
    6:     /// Interaction logic for UserControl1.xaml
    7:     /// </summary>
    8:     public partial class UserControl1 : UserControl
    9:     {
   10:         public UserControl1()
   11:         {
   12:             InitializeComponent();
   13:         }
   14:     }
   15: }
  • WPF Custom Control Library: a principal diferença entre o User Control Library e o Custom Control Library é que o primeiro é destinado para o enpsulamento de funcionalidades pré-existentes, envelopando outros componentes do toolkit num componente maior. Esse componente User Interface pode, por exemplo, ser importado em outras interfaces WFP ou mesmo WinForms, como vimos acima.

    Já o WPF Custom Control Library Template permite a construção de novos controles gráficos WPF, estendendo a classe Control. Desse modo, partimos da descrição em XAML para o comportamento do novo controle gerado, a partir do arquivo Generic.xaml, que vemos abaixo:

        1: <ResourceDictionary
    
        2:     xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
    
        3:     xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
    
        4:     xmlns:local="clr-namespace:WpfCustomControlLibrary">
    
        5:     <Style TargetType="{x:Type local:CustomControl1}">
    
        6:         <Setter Property="Template">
    
        7:             <Setter.Value>
    
        8:                 <ControlTemplate TargetType="{x:Type local:CustomControl1}">
    
        9:                     <Border Background="{TemplateBinding Background}"
    
       10:                             BorderBrush="{TemplateBinding BorderBrush}"
    
       11:                             BorderThickness="{TemplateBinding BorderThickness}">
    
       12:                     </Border>
    
       13:                 </ControlTemplate>
    
       14:             </Setter.Value>
    
       15:         </Setter>
    
       16:     </Style>
    
       17: </ResourceDictionary>
    
  • O arquivo CustomControl1.cs é dado abaixo, a partir do próprio template:

        1: using System.Windows;
    
        2: using System.Windows.Controls;
    
        3:  
    
        4: namespace WpfCustomControlLibrary
    
        5: {
    
        6:     public class CustomControl1 : Control
    
        7:     {
    
        8:         static CustomControl1()
    
        9:         {
    
       10:             DefaultStyleKeyProperty.OverrideMetadata(typeof(CustomControl1), new FrameworkPropertyMetadata(typeof(CustomControl1)));
    
       11:         }
    
       12:     }
    
       13: }
    
  • Para saber mais sobre a customização de novos controles em WPF, veja o artigo:

Bom, já deu para notar que temos muitas opções disponíveis para nossas interfaces, não é mesmo?

Ainda falta falar de ASP.NET com AJAX, ASP.NET com Silverlight, ASP.NET MVC, entre outros modelos de interface que também são grandes opções. O Silverlight 3 também foi anunciado semana passada, durante o MIX09 e promete grandes novidades.

Mas vamos deixar esses assuntos para um próximo post. Aguardem!

Por enquanto é só! Até o próximo post :)

Waldemir.

Comments