Carlos Mattos

Webcast: Dicas práticas de WPF para Desenvolvedores Windows Forms - 18/11/2010

O desenvolvimento de aplicações com interfaces ricas tornou-se uma realidade com Silverlight e WPF. A cada dia observamos um número crescente de soluções baseadas nestas tecnologias. As aplicações Web sairam na frente e o uso do Silverlight cresceu rapidamente. No último ano, o mesmo começou a acontecer com as aplicações Windows Forms. Motivados pela simples possibilidade de explorar os recursos gráficos do WPF em suas aplicações, uma parte significante dos desenvolvedores Windows começaram a investir na nova tecnologia. Contudo, para os desenvolvedores habituados ao ambiente Windows Forms, é necessário algum tempo para adequar-se ao WPF, conhecer o XAML, os novos objetos, novos conceitos e outras diferenças entre as duas tecnologias. Neste webcast, compartilharei com vocês algumas dicas úteis para tornar o caminho dos desenvolvedores WindowsForms até o WPF menos acidentado. Inscrevam-se no MSDN Online http://msdn.microsoft.com/pt-br/events/aa740361.aspx. Não percam!

Webcast Dicas práticas para otimizar o desenvolvimento de aplicações WindowsForms

Na próxima terça-feira, dia 24/08/2010, apresentarei o Webcast Dicas práticas para otimizar o desenvolvimento de aplicações WindowsForms. Neste webcast demonstro como utilizar herança, reflection, arquivos de recursos e outras dicas para aumentar a produtividade no desenvolvimento de aplicações WindowsForms. Muitas dicas serão apresentadas, não perca!

 

SOROCABA completa hoje 356 anos! Parabéns Manchester Paulista!

Hoje é aniversário de Sorocaba! 356 anos! Excelente localização, Infra-estrutura excepcional, Melhor índice de qualidade de vida entre as cidades brasileiras com mais de 500k habitantes! Parabéns! Além disso, descartando as capitais, Sorocaba continua imbatível produção de MVPs! Terra de grandes profissionais que fazem diferença! Terra de gente boa! Já saíram daqui: Francisco Baddini, Danilo Bordini, Paulo Dutra, Pedro Galvão, Mauricio Alegretti (Malegra) e este que vos fala! Parabéns SOROCABA! Parabéns para a Administração Pública! Quem é Sorocabano sabe conhece o trabalho sério que é desenvolvido em toda região e o orgulho que temos em ser Sorocabanos!!

Dica: Fechando Rapidamente os Documentos Abertos no VS2010

Outra dica rápida! No VS2010 a Microsoft mudou o “X” do lado direito das guias (tabs), colocando-o dentro de cada guia (tab). Compare as figuras abaixo:

 Visual Studio 2008

Visual Studio 2010

Abaixo estão algumas formas de fechar os documentos abertos.

Menu Window -> Close All Documents

Fecha todos os documentos abertos solicitando a confirmação do usuário para salvar as alterações.

CTRL+F4

Esse atalho de teclado fecha o documento atual, ou seja, aquele que está em foco. Também solicita a confirmação do usuário para salvar as alterações.

Menu de Contexto (Botão direito do mouse) -> Close All But This

Este último comando, acionado através do menu de contexto, fecha todos os documentos, exceto o documento atual.

Dica: CTRL+E para realizar Buscas nas janelas New Project e Extension Manager

Esta é uma dica rápida para quem quiser usar o novo recurso de busca das janelas New Project e Extension Manager do Visual Studio 2010. Pressionando o atalho de teclado CTRL+E, você posiciona o cursor na caixa de texto Search Box. Agora é só digitar uma palavra-chave para pesquisar entre os diversos Templates de projetos instalados no seu computador. Uma curiosidade é que o atalho CTRL+E pode ser usado para a mesma finalidade no Windows Explorer, Internet Explorer e outras aplicações. Experimente!

Dica: Melhorias na Seleção de Texto do VS2010

Detalhes que fazem diferença. No VS2010, o desenvolvedor pode observar que a apresentação de textos selecionados no Editor de Código foi sensivelmente melhorada. Nas versões anteriores, os textos selecionados são apresentados geralmente com background Azul (Navy) e foreground Branco. O VS2010 tem a capacidade de exibir diferentes camadas (layers) juntas, proporcionando uma qualidade visual muito superior. Confira na imagem abaixo.

Dica: VS2010 ToolBox Search

Com um grande número de controles na sua ToolBox, encontrar o controle desejado nem sempre é uma tarefa prática. No Visual Studio 2010, você pode fazer uma busca nos controles da sua ToolBox. Como? É simples, clique na sua ToolBox, em qualquer controle ou ponto dela. Comece a digitar o nome do controle que você está procurando, por exemplo, para encontrar o controle XamMonthCalendar, digite ‘xammont’ e observe que o Visual Studio muda o controle selecionado da ToolBox de acordo com sua digitação. Veja a figura abaixo:

Dica: Zoom no Editor de Código do VS2010

Todos sabem que é possível utilizar as macros do Visual Studio para aumentar ou diminuir o tamanho da fonte do Editor de Código. Esse recurso é muito útil, principalmente numa apresentação ou treinamento. No VS2010 você pode controlar o Zoom do Editor de Código (sem aumentar/diminuir o tamanho da fonte). Para aplicar o Zoom In/Out mantenha a tecla CTRL pressionada e movimente a roda do seu mouse. Outra forma, ainda mais prática, são os atalhos CTRL+SHIFT+(ponto) para Zoom In e CTRL+SHIFT+(vírgula) para Zoom Out. Experimente!

Dica: Como usar o Clipboard Ring do Visual Studio

Este recurso é realmente muito útil quando precisamos copiar vários fragmentos de código de diferentes procedimentos para criar ou completar um novo procedimento.  Se você copiar (CTRL+C) vários fragmentos de código no Editor de Texto do Visual Studio, você pode usar o atalho de teclado CTRL+SHIFT+V para acionar o recurso de Clipboard Ring e percorrer a coleção de fragmentos copiados.  

Você também pode criar seus snippets, copiando os fragmentos de código e colando-os na ToolBox para poder reutilizá-los a qualquer momento. Você pode simplesmente colar (CTRL+V) o fragmento diretamente na ToolBox ou selecionar o fragmento desejado no Editor de Código e arrastá-lo para a ToolBox.

 Uma vez na ToolBox, você pode renomear os itens copiados para um nome mais sugestivo, facilitando seu trabalho na hora de recuperar esses itens.

 

Dica: CTRL+C e CTRL+V no Editor de Código do Visual Studio

Os comandos Copiar e Recortar do Visual Studio são muito úteis quando estamos trabalhando no Editor de Código. Mesmo sem selecionar nenhum texto, se você invocar um desses comandos, o Visual Studio copiará o conteúdo a linha atual (linha onde está o cursor). Isso é prático e muito útil para o desenvolvedor. Contudo, você pode invocar os comandos Copiar/Recortar acidentalmente e isso poderia substituir o conteúdo da sua Área de Transferência (Clipboard). Para evitar esse problema, acesse o menu Tools -> Options e na seção Text Editor -> All Languages -> General, desmarque a opção Apply Cut or Copy commands to a blank lines when there is no selection (Figura 1).

Microsoft® Visual Studio® 2010 and Team Foundation Server® 2010 Release Candidate virtual image for Windows Virtual PC

A Microsoft liberou hoje, 20/03/2010, o download da máquina virtual contendo o VS2010 e o Team Foundation Server (TFS) 2010 RC1. Você pode baixar os arquivos neste link: http://www.microsoft.com/downloads/details.aspx?FamilyID=509c3ba1-4efc-42b5-b6d8-0232b2cbb26e&displaylang=en

 

Community Launch 2010 Sorocaba/Votorantim foi um sucesso!

Confira algumas fotos do evento!

Microsoft Community Launch 2010 em Sorocaba!

No dia 20 de março, a comunidade técnica SORBR.net, com o apoio da Microsoft – Portais MSDN e Technet, realizará o evento Community Launch 2010 em Votorantim/SPContamos com a sua presença neste grande encontro onde vamos capacitar e engajar a comunidade técnica da nossa cidade e aproximar os profissionais dos novos produtos e tecnologias Microsoft.

WPF: O Método PerformClick()

Para os desenvolvedores habituados com as aplicações WindowsForms, o método PerformClick() é um velho conhecido, largamente usado na camada de apresentação para disparar um click num botão existente provocando a execução do código associado a este evento. Contudo, os controles do tipo Button das aplicações WPF não implementam o método PerformClick(), o que frustra o desenvolvedor num primeiro momento. A boa notícia é que este método pode ser facilmente implementado com apenas algumas linhas de código. Observe o código a seguir. 

private void PerformClick(Button btnObject)

{

btnObject.RaiseEvent(

new System.Windows.RoutedEventArgs(

System.Windows.Controls.Button.ClickEvent, btnObject));

} 

A linha de código abaixo demonstra como disparar o evento Click do botão chamado btnCancelar:

 private void Whatever()

{

PerformClick(btnCancelar);

}

Posted: Mon, Mar 15 2010 20:43 by Carlos Mattos | with no comments
Filed under: , ,
WPF: Startup, StartupUri, Application_Startup, MainWindow, ShutdownMode

Esta dica de WPF, daria quase um artigo completo, pois ela ficou muito extensa. Contudo, o conteúdo abordado é formado por tópicos relacionados aos processos de inicialização e finalização de uma aplicação WPF que precisam ser compreendidos pelos desenvolvedores. Nas aplicações WindowsForms, tínhamos o método Main() da classe Program onde inseríamos nosso código para inicialização da nossa aplicação. As aplicações WPF possuem o arquivo App.xaml, que contém a propriedade StartupUri que pode ser utilizada para indicarmos o objeto que será carregado quando a aplicação for executada. Esta propriedade é definida automaticamente quando você cria um novo projeto WPF Application, nela o nome do objeto Window1.xaml é colocado (veja a Figura 1).

Podemos atribuir o nome de qualquer objeto da aplicação à propriedade StartupUri. Você pode defini-la através da linguagem declarativa XAML como mostrado na Figura 1, ou programaticamente, como mostra a Figura 2 logo abaixo.

A propriedade StartupUri atende é prática em alguns cenários, mas quando consideramos o desenvolvimento de uma aplicação comercial, os processos de inicialização, em geral, implementam outras instruções, instanciam objetos, verificam configurações entre outras ações. Neste caso, o evento Startup é a solução mais adequada, através deste evento podemos implementar nosso código de inicialização. Para utilizar este evento, no arquivo App.xaml, o desenvolvedor deve remover a propriedade StartupUri e substituí-la pelo evento Startup, o próprio IntelliSense auxilia o desenvolvedor criando a estrutura do novo procedimento de evento. Veja a Figura 3.

O nome padrão “Application_Startup” dado a este procedimento de evento pode ser alterado de acordo com o gosto do desenvolvedor. Você pode criar um procedimento com um nome qualquer, por exemplo, MinhaAplicacao_Startup e atribuir este nome ao evento Startup no arquivo App.xaml. Abaixo a Figura 4 mostra o código deste procedimento de evento.

Observe a Linha 18 em destaque na Figura 4. A propriedade MainWindow foi carregada com a instância do objeto Window1. Esta propriedade trabalha em conjunto com outra propriedade das aplicações WPF, a propriedade ShutdownMode. Juntas, essas duas propriedades definem o modo de finalização da sua aplicação WPF. A propriedade MainWindow, como padrão, sempre é carregada com o primeiro objeto Window instanciado pela aplicação, mas o desenvolvedor pode atribuir uma nova janela para esta propriedade a qualquer momento, usando o mesmo código apresentado na Linha 18 da Figura 4 

A definição do modo de finalização (ShutdownMode) é importante pois as aplicações WPF, diferentemente das aplicações WindowsForms, não possuem formulários do tipo MDI (Multiple Document Interface), e o desenvolvedor precisa tratar o processo de encerramento da sua aplicação, o que pode ser feito explicitamente, definindo o ShutdownMode como OnExplicitShutdown, neste caso seria necessário implementar um procedimento para finalizar a aplicação, ou ainda, o desenvolvedor poderia optar pelos dois outros modos disponíveis: OnLastWindowClose que faria com que a aplicação fosse finalizada no momento em que o usuário fechasse todas as janelas abertas, e o modo OnMainWindowClose, mais adequado para implementação do modelo MDI, neste caso, quando a janela definida como MainWindow for fechada, a aplicação será finalizada. Veja a Figura 5 que mostra a enumeração da propriedade ShutdownMode.

 O fato das aplicações WPF não possuírem um formulário do tipo MDI, não significa que as novas aplicações não utilizarão este modelo, passaremos a utilizar novos conceitos de aplicações MDI, como por exemplo, a interface dos aplicativos do Microsoft Office ou mesmo o Visual Studio que organizam diversos documentos utilizando guias ou controles do tipo container. A Figura 6 apresenta a interface de uma aplicação comercial, criada com WPF, e que utiliza o conceito de MDI implementado com o auxilio de um controle TabControl e OutlookBar.

Posted: Mon, Mar 15 2010 19:23 by Carlos Mattos | with 2 comment(s)
Filed under: , ,
WPF: Executando Vídeos

Esta dica apresenta o objeto MediaElement. Este objeto do WPF permite a execução de arquivos de áudio e vídeo em diversos formatos. Sua construção é bastante simples. Depois de inserir o MediaElement na interface da sua aplicação, é preciso definir a propriedade Source com o nome do arquivo que deseja executar. Esta propriedade pode ser definida através do XAML, como demonstrado na figura a seguir, ou se o desenvolvedor preferir, isto pode ser feito programaticamente. Certifique-se que o path e o nome do arquivo sejam informados corretamente. Importante: é necessário definir a propriedade LoadedBehavior como Manual para que o MediaElement permita a utilização dos métodos Play, Pause e Stop pela aplicação.

Depois de configurar o MediaElement usando o XAML, vamos acrescentar o código para os botões Play, Pause e Stop. Esse código é muito simples, o controle MediaElement expõe os métodos homônimos em sua interface, assim, basta invocar os métodos correspondentes como apresentado a seguir.

Confira a seguir, o nosso player em execução.

Posted: Sun, Mar 14 2010 20:06 by Carlos Mattos | with no comments
Filed under: , ,
WPF: ToolTip com Negrito e Imagem

Outra novidade que acompanha os controles WPF é o novo ToolTip. Este recurso, até agora, só podia ser usado com texto sem formatação, exceto claro se você buscasse soluções de terceiros ou utilizasse APIs para esta finalidade, mas o ponto aqui é utilizar o ToolTip com seus recursos nativos. No WPF, como já vimos nas dicas anteriores, utilizando controles do tipo container, como o StackPanel, é possível inserir conteúdos diferentes num controle, e o ToolTip não é exceção, nesta dica utilizei um controle Image e dois controles TextBlock, assim temos uma imagem para ilustrar o ToolTip, um título em negrito e o texto explicativo, com o detalhe que esse texto pode utilizar a propriedade TextWrapping do controle TextBlock para ajustar o texto ao tamanho do StackPanel. A abaixo apresenta o código XAML, confira!

A seguir obser o ToolTip em tempo de execução.

Posted: Sun, Mar 14 2010 20:01 by Carlos Mattos | with no comments
Filed under: , ,
WPF: Botões com Imagens

Outra dica para modificar os botões de comando é como inserir uma imagem nos controles Button. Diferentemente das aplicações WindowsForms, os botões de comando do WPF não possuem uma propriedade Picture, mas assim como outros controles do WPF, o desenvolvedor pode inserir praticamente tudo dentro de um botão. Desta forma, podemos construir nosso botão com imagem e texto facilmente.  

Observe atentamente que utilizei um StackPanel para agrupar os controles Image e Label. Isto é necessário porque a propriedade Content do botão, que é responsável por armazenar o conteúdo que será exibido, não suporta mais de um controle, porém, o StackPanel é visto como um único controle do tipo container e dentro dele você pode colocar todo conteúdo desejado. Você também pode alterar a propriedade Orientation do StackPanel para Horizontal colocando assim a imagem ao lado do texto e não sobre ele como mostra o exemplo. A figura a seguir apresenta o código XAML para esta dica.

Na seqüência observe o botão em execução.

Posted: Sun, Mar 14 2010 19:28 by Carlos Mattos | with 3 comment(s)
Filed under: , ,
WPF: Botões com Sombras usando BitmapEffect e Effect

Uma dica simples para modificar a aparência dos botões de comando (Button), é a aplicação de efeitos de sombra. Neste exemplo, demonstro duas formas diferentes de aplicar o mesmo efeito. A primeira forma utiliza o elemento Button.Effect (Framework 3.5) para aplicar a sombra laranja ao botão de comando. Esta é a forma recomendada para este tipo de efeito, pois sua renderização é mais eficiente quando comparamos com o elemento Button.BitmapEffect (Framework 2.0). Veja na figura abaixo o código XAML para aplicação deste efeito.

Na seqüência, observe os botões em tempo de execução.

Posted: Sun, Mar 14 2010 19:18 by Carlos Mattos | with no comments
Filed under: , ,
WPF: Alterando a aparência de um controle em toda aplicação

Com a utilização de estilos e templates de controles dentro da seção Application.Resources, você pode alterar a aparência de um tipo de controle, por exemplo, alterar a aparência de todas as caixas de texto da sua aplicação, para que fiquem personalizadas. Como na dica número 3 onde acrescentamos o código para alterar a aparência das caixas de texto de uma janela, colocar o mesmo código na seção Application.Resources fará com que todas as caixas de texto da sua aplicação tenham a mesma aparência. A figura a seguir mostra o código XAML.

Posted: Sun, Mar 14 2010 19:15 by Carlos Mattos | with no comments
Filed under: , ,
More Posts « Previous page - Next page »