Programação RAD para Windows usando o Visual Studio 2008 Bruno Campagnolo de Paula Sumário • • • • • • • • • A ferramenta Visual Studio 2008; Versões; Edições; Arquitetura de arquivos; Editor de código; Atalhos; Depurador; Win Forms Designer; Estrutura de Menus. Objetivo • Referência à ferramenta e retorno quando necessário; • Apresentação de termos importantes para desenvolvimento visual; • Não é suficiente saber bem uma linguagem de progração, você também deve saber bem como utilizar bem as ferramentas construídas para ela; • Por exemplo, observo POUCOS alunos depurando da maneira certa! • E pior, muitos não conhecem as ferramentas disponíveis. • Na prática: PERCA MENOS TEMPO E SEJA MAIS PRODUTIVO. • IMPRIMA ESTE MATERIAL! Visual Studio 2008 (VS2008) • Ambiente de desenvolvimento integrado (IDE - Integrated Development Environment) da Microsoft para geração rápida de aplicações (RAD - Rapid Application Development). • Voltada ao desenvolvimento de aplicações para: o Windows; o Windows Mobile; • Principais linguagens suportadas: o Visual C#; o Visual Basic; o Visual J#: descontinuado! o Visual C++; o F#, Iron Python, Ruby.Net: outros produtos. • Versões: o Visual Studio 97, Visual Studio 6.0; o Visual Studio .Net (2002), Visual Studio .Net 2003; o Visual Studio 2005, Visual Studio 2008. VS2008 - Edições • Express: limitada, voltada para estudantes, não tem MSDN completa, o Visual Web Developer é usado para programação para Web; • Standard: IDE integrada, diversas funcionalidades a mais. • Professional: Depuração remota, gerenciamento de DB SQL Server. • Tools for Office: Para desenvolvimento voltado ao Office. • Team System: grupos de trabalho; • Mais detalhes na planilha em: o http://tinyurl.com/2dlbdb VS2008 Arquitetura de Arquivos do Projeto • Arquivos (.cs, .vb, .resx, .settings, etc) estão contidos dentro de uma estrutura de pastas denominado Projeto; • Uma solução (solution) é um conjunto de projetos e é representado por um arquivo com a extensão .sln; • Na PUCPR os seus arquivos estão, geralmente na pasta: o C:\Temp\VisualStudio2008\Projects VS2008 Características do Editor de Código (1/3) • Algumas características só se aplicam ao C#; • Syntax Highlighting: cores diferenciadas para elementos do código; • Code Completion (IntelliSense): menu preditivo de comandos, CTRL + ESPAÇO. • Facilidade para refatoração de código; • Background compiling: compilação incremental, permite a correção imediata de erros. VS2008 Características do Editor de Código (2/3) • Documentação integrada à IDE: o MSDN: Microsoft Developer Network; o Própria via comentários XML: http://www.msdnbrasil.com.br/docs/vstudionet/visualstudio_coment sxml.doc • Bookmarks de código; • Delimitação de regiões (outlining) no código a partir da diretiva #region / #endregion; VS2008 Características do Editor de Código (3/3) • Suporte a atalhos de teclado: o Ver poster em: http://tinyurl.com/25sez4 o Ver, principalmente, os atalhos de refatoração (CTRL + R); • Code Snippets: o Fragmentos de código; o Exemplos: cw, if, foreach, switch, while, ; o Digitar o nome do code snippet e clicar TAB 2x ou pelo menu contextual; • Refatoração: VS2008 - Atalhos o CTRL+R, R: renomear campo; • Execução e Depuração: o CTRL+R, M: extrair o F5: Iniciar depuração; método; o F6: Build (sem execução); o CTRL+R, E: o SHIFT + F5: Parar depuração; encapsular campo. o CTRL + F5: Executar sem depurar; • Bookmarks: o F10: Step over; o CTRL + B, T: o F11: Step into; Colocar Bookmark; o CTRL + D, I: Immediate Window; o CTRL + B, N: • Editor: Próximo Bookmark; o CTRL + ESPAÇO: IntelliSense; o CTRL + B, P: o CTRL + E, C: Comentar linhas; Bookmark Anterior; o CTRL + E, U: Descomentar linhas; o CTRL + E, D: Identação do documento; o CTRL + E, F: Identação da seleção; o F7: Modo de Código; o SHIFT + F7: Modo de Design; • • • • VS2008 Características do Depurador • Disassembly (obtenção do código Depuração Tradicional: de máquina)do código, caso não Breakpoints,Watches, Step Into, esteja disponível; Step Over; • Edit and Continue: Edição do Call Stack: pilha de chamadas; código enquanto se depura; Depura programas externos (.exe•e Data Tooltips: mostra o valor das .dll) caso um programa dê erro variáveis quando o usuário passa grave; com o mouse por cima; Código gerenciado e código • Immediate Window: execução de nativo; comandos em tempo de depuração VS2008 Editores Visuais Disponíveis • WinForms Designer: Editor visual da GUI (Graphic User Interface) para aplicações Windows; • Web Designer: Editor visual para aplicações web; Editor de ASP.NET, CSS, Javascript, HTML, CSS; Interface compartilhada com o Expression Studio; • Class Designer: Editor de classes; Não disponível na versão Express; • Data Designer: Editor de bases de dados; • Mapping Designer: Editor de mapeamentos objeto-relacionais; • WPF Designer: voltado para interfaces WPF (Silverlight). VS2008 WinForms Designer • Editor com os estilos de interação WYSIWYG e manipulação direta para criação de aplicações Windows; • WYSIWYG: o What you see is what you get; o O que você vê é o que você obtém); o A representação de manipulação da interface (tempo de projeto), é a mesma representação que a aplicação cria (tempo de execução); o Você "enxerga" o que está programando; o É difícil de representar algumas situações: múltiplas abas; interfaces alternativas. • Manipuração direta: o Usuário age diretamente sobre os objetos da aplicação; o GERALMENTE utiliza-se de mouse para drag & drop. VS2008 WinForms Designer • Interface estilo WIMP e estimulando a criação de interfaces WIMP: o Windows: Janelas, widgets; o Icons: Ícones; o Menus: Menus; o Pointers: Mouses; o Domina a computação a cerca de 15 anos! • Pergunta: o O que não é WIMP hoje em dia? VS2008 WinForms Designer • Widgets, controles ou componentes são elementos de uma interface gráfica com os quais o usuário interage de maneira direta; • Geralmente permitem interação via mouse; • Exemplos de Widgets: o Janelas, Formulários, TextBox, Botão, botão de rádio, caixa de seleção, menu, etc. • Em WinForms os widgets são representados por componentes que podem ser arrastados da Toolbox para dentro de um container, como, por exemplo, dentro de um formulário. VS2008 WinForms Designer • Tipos de componentes: o Visuais: caixas de texto, botões; o Não visuais: dataset, timer, serial port; • No exemplo ao lado temos 3 componentes visuais e 3 componentes não visuais. VS2008 WinForms Designer • Representação dos widgets em código-fonte; • Podemos representar um widget através de linguagens: o Imperativas: Descreve o programa como um conjunto de ordens (ações); Diz como fazer; Poderosas, mas difíceis para "pessoas normais"; Java, C, C++, C#,etc; o Declarativas: Descreve o que deve ser feito, mas não se preocupa com como os procedimentos funcionam; Geralmente mais simples de serem entendidas, mas menos poderosas; Facilidade de criar editor visual; HTML, SQL, XML, etc; VS2008 WinForms Designer • WinForms utiliza C# para representar a interface; • No momento que você arrasta um componente na tela é criado automaticamente um código que gera a interface; • Esse código é criado dentro da função InitializeComponent dentro do arquivo [Nome doForm].Designer.cs; • Observe que em C# uma classe pode estar espalhada por mais de um arquivo. • Cada componente é um objeto de uma classe específica e possui Propriedades, Métodos e Eventos . • Por exemplo, cada Textbox é uma instância da classe System.Windows.Forms.TextBox; VS2008 WinForms Designer • Observe que todos os componentes podem ser modificados em tempo de projeto através da aba de propriedades ou em tempo de execução, via código; • Além disso, você pode associar eventos a um ou mais objetos; • Eventos são ações realizadas quando uma certa condição for satisfeita; • Tal condição pode ser, por exemplo: o O clique de um botão; o O digitar de uma tecla; o O arrastar do componente; o A mudança de valor do componente; VS2008 WinForms Designer • No Visual Studio, ao clicar duas vezes em um componente você gera o evento padrão associado a ele; • Para visualizar os demais eventos, selecione a aba de eventos; • O código do evento é gerado na classe [Nome do Form].cs; • "sender" representa o objeto que chamou o evento; • "e" contém informações sobre o evento chamado. Estrutura de Menus • Em destaque os principais itens de cada menu; • O menu Data será comentado em detalhes quando trabalharmos com Banco de Dados; • Teremos uma aula específica sobre o menu Tools e sobre as opções de um Projeto quando comentarmos sobre instalação de um programa em .Net; Estrutura de Menus - Menu File • Em destaque os principais itens de cada menu; • New Project: Cria um projeto novo; • Open Project: Abre um projeto já existente; • Open File: Abre arquivo; • Close: Fecha arquivo; • Close Solution: Fecha a solução; • Save All: Salva Tudo; • Export Template: Cria um modelo de um projeto ou de um arquivo para reutilização; • Recent Projects: Projetos abertos recentemente. Estrutura de Menus - Menu Edit • Undo, Redo, Cut, Copy, Paste, Delete, Select All: Ações disponíveis em qualquer editor de textos; • Find and Replace: existe a opção Find in Files; • Insert File As Text... : Importa texto; • Advanced: opções de identação, etc; • Bookmarks: gerenciamento de favoritos; • Outlining: gerenciamento das regiões de código; • IntelliSense: opções de code completion; Estrutura de Menus - Menu View • Alterna as diferentes janelas disponíveis: o Code: código; o Designer: formulário associado; o Class View: hierarquia de classes; o Error List: lista de erros; o Output: saída via Console; o Properties Window: Propriedades dos objetos; o Solution Explorer: Projetos da solução; o Task List: Lista de tarefas; o Toolbox: barra de componentes o Toolbars: barra de ferramentas. Estrutura de Menus - Menu Project • Add Windows Form: adiciona um novo formulário ao projeto; • Add User Control: adiciona um novo user control; • Add Class: Cria uma nova classe vazia; • Add New Item: Adiciona um item qualquer dentre os modelos; • Add Existing Item: Adiciona um item a partir de uma arquivo já existente; • Show All Files: Mostra arquivos ocultos do Projeto; • Add Referece: adiciona uma biblioteca; • Add Service Reference: adiciona uma referência a partir de um webservice; • ... Properties: Propriedades do Projeto, teremos aula específica sobre esse item futuramente. Estrutura de Menus - Build e Debug • Build Solution: constrói todos os projetos da solução; • Rebuild Solution: reconstrói a solução; • Publish ... : Permite que se instale o aplicativo em outra máquina, criando um instalador; • Windows: mostra as janelas de saída e immediate; • Start Debugging: inicia a depuração; • Start Without Debugging: executa sem depurar; • Exceptions: Gerencia quais exceções devem ser tratadas pelo IDE ou pelo programa; Estrutura de Menus - Menu Format • Menu exclusivo para trabalho com controles de formulário; • Align: alinhamento de controles; • Make Same Size: deixa os controles com o mesmo tamanho; • Horizontal Spacing: Espaçamento horizontal; • Vertical Spacing: Espaçamento vertica; • Center in Form: centraliza o item em relação ao formulário; • Order: ordem no índice Z, ou seja, se um componente está na frente ou atrás dos outros; • Lock Controls: impede a movimentação de um controle; Resumo • O Visual Studio 2008 é uma ferramenta: o Com estilo de interação WYSIWYG; o Com estilo de interação WIMP; o Orientada a eventos; o Cuja interface em Windows Forms é representada através de uma linguagem imperativa; o Que suporta e estimula refatoração de código; Referências Extras de Souza, C. S.; Leite, J. C.; Prates, R.O. & Barbosa, S.D.J. "Projeto de Interfaces de Usuário: Perspectivas Cognitiva e Semiótica", Anais da Jornada de Atualização em Informática, XIX Congresso da Sociedade Brasileira de Computação, Rio de Janeiro, julho de 1999. - Ver capítulo 1.5 sobre estilos de interação WIMP, manipulação direta, etc. http://www.dimap.ufrn.br/~jair/piu/JAI_Apostila.pdf Event Driven Programming Explica a programação orientada a eventos. http://eventdrivenpgm.sourceforge.net/