Vous êtes sur la page 1sur 476

Nvel II - Intermedirio Autor: Elzevir Jr.

Outubro, 2006

Apostila Visual Studio 2005

NDICE
CONHECENDO O VISUAL STUDIO .NET ......................................................................................................... 10 GERENCIANDO O AMBIENTE DE DESENVOLVIMENTO ................................................................................................... 10 CONHECENDO AS JANELAS DO AMBIENTE DE DESENVOLVIMENTO ................................................................................ 12 Janela Solution Explorer ................................................................................................................................ 12 Janela Toolbox ................................................................................................................................................ 13 Janela Properties............................................................................................................................................. 14 Janela OutPut ................................................................................................................................................ 14 Janela Object Browser .................................................................................................................................... 15 Janela Class View ........................................................................................................................................... 16 Janela Web Browser ....................................................................................................................................... 17 Janela Favorites .............................................................................................................................................. 18 Janela Server Explorer ................................................................................................................................... 18 Macro Explorer ................................................................................................................................................ 19 Task List ............................................................................................................................................................ 20 Command Window ........................................................................................................................................... 21 CRIANDO APLICAES BASEADOS EM TEMPLATES ...................................................................................................... 21 OCULTAMENTO DO TEXTO ....................................................................................................................................... 22 INTELLISENSE......................................................................................................................................................... 22 OBTENDO AJUDA...................................................................................................................................................... 23 Filtros de Ajuda do Visual Studio ................................................................................................................ 32 Online, Ajuda, Ambiente, caixa de dilogo Opes ................................................................................. 36 IDE - INTEGRADA AMBIENTE DE DESENVOLVIMENTO DO VISUAL STUDIO ............................................................. 37 Introduo ao solues, projetos, e itens.................................................................................................. 37 Solues como contineres ........................................................................................................................... 39 Projects como contineres............................................................................................................................ 40 PASSO-A-PASSO: CRIANDO E USANDO UM SERVIO DA WEB ASP.NET NO VISUAL WEB DEVELOPER ................... 48 EXPLICAO PASSO A PASSO: CRIANDO PGINAS WEB PARA DISPOSITIVOS MVEIS............................................ 56 CONSTRUINDO SITES WEB PROFISSIONAIS.............................................................................................................. 70 USANDO A IDE DO VISUAL C# ........................................................................................................................... 93 INTRODUO IDE (VISUAL C#)........................................................................................................................... 93 FERRAMENTAS VISUAL C# ..................................................................................................................................... 93 Como a IDE expe as ferramentas............................................................................................................... 94 Janelas do Editor e do Windows Form Designer ....................................................................................... 94 Gerenciador de Solues e Designer de Project ....................................................................................... 94 Janela do Compilador, do Depurador, e de Lista de Erros ..................................................................... 95 PERSONALIZANDO A IDE ........................................................................................................................................ 95 CRIANDO UM PROJECT (VISUAL C#) ....................................................................................................................... 95 Modificando Propriedades de Project (Visual C#) .................................................................................... 98 Projetando uma interface de usurio (Visual C#) .................................................................................. 100 Editando cdigo (Visual C#)........................................................................................................................ 102 O IntelliSense .................................................................................................................................................. 103 Refatorao ................................................................................................................................................... 104 Trechos de cdigo......................................................................................................................................... 104 Sublinhado ondulado.................................................................................................................................... 105 AJUDA DE LEGIBILIDADE ...................................................................................................................................... 105 Navegando e Procurando (Visual C#) ........................................................................................................ 106 Criando e Depurando (Visual C#)............................................................................................................... 108 Modelagem e Anlise de Cdigo (Visual C#)............................................................................................ 111 Adicionando e editando recursos (Visual C#) .......................................................................................... 114 Obtendo Ajuda (Visual C#).......................................................................................................................... 115 Pesquisa F1 ..................................................................................................................................................... 116 Ajuda Dinmica ............................................................................................................................................. 118 Como adicionar arquivos de configurao de aplicativos a projetos C#:........................................... 118 REFATORAO ...................................................................................................................................................... 119 HOW TO: Refactor Code with mtodo extrao ..................................................................................... 121 COMO: Usar trechos de cdigo (C#) .......................................................................................................... 127 Como restaurar C# Refactoring trechos: ................................................................................................. 129 Cdigo Colorization...................................................................................................................................... 130

Apostila Visual Studio 2005

Metadados como fonte ................................................................................................................................ 133 Configuraes da IDE Visual C#.................................................................................................................. 134 A AJUDA NO VISUAL STUDIO .......................................................................................................................... 136 CONVENES DE DOCUMENTO (VISUAL STUDIO) ................................................................................................. 136 ELEMENTOS EM TPICOS DA AJUDA ..................................................................................................................... 137 ESTRATGIAS PARA USAR A AJUDA ...................................................................................................................... 137 Verses localizadas da documentao em ingls ............................................................................................ 140 COMO: Baixar arquivos de exemplo nos tpicos da Ajuda.................................................................... 140 Filtros de Ajuda do Visual Studio .............................................................................................................. 141 Ajuda, Ambiente, caixa de dilogo Options ............................................................................................. 144 Online, Ajuda, Ambiente, caixa de dilogo Opes ........................................................................................ 145 Comunidade Codezone ................................................................................................................................ 146 COMO: Copiar os Help Favorites para outro computador....................................................................... 146 APPLICATION BLOCKS ..................................................................................................................................... 148 INTRODUO ........................................................................................................................................................ 148 ESCOLHENDO ENTRE O CLICKONCE E O WINDOWS INSTALLER................................................................... 151 INTRODUO ........................................................................................................................................................ 151 VISO GERAL DO WINDOWS INSTALLER ............................................................................................................... 151 Produtos, recursos e componentes............................................................................................................ 152 Recursos do Windows Installer................................................................................................................... 153 VISO GERAL DO CLICKONCE............................................................................................................................... 154 Uso do Windows Installer e do ClickOnce ................................................................................................ 161 WINFORMS COM O CLICKONCE ........................................................................................................................... 164 INTRODUO ........................................................................................................................................................ 164 Por que o Windows Forms?.......................................................................................................................... 164 .NET Framework 1.x: usando HREF para .EXEs ....................................................................................... 165 Um aplicativo do ClickOnce ........................................................................................................................ 168 DEPURAO NO VISUAL STUDIO.................................................................................................................. 175 GERAES PREDETERMINADAS E PESSOALIZADAS ................................................................................................ 175 O NOVO NO DEPURADOR DE VS.NET 2003........................................................................................................... 187 TUTORIAL: DEPURAR UM PROJETO DE COMPLEMENTO .......................................................................................... 187 CONFIGURAES DEBUG E RELEASE .................................................................................................................... 193 CONFIGURAO DO PROJETO PARA UMA CONFIGURAO DE DEPURAO DE C# ................................................. 193 PREPARAO DA DEPURAO: TIPOS DO PROJETOS DE C# E VISUAL BASIC ......................................................... 195 PREPARAO DA DEPURAO: APLICAES DE CONSOLA .................................................................................... 196 PREPARAO DA DEPURAO: BIBLIOTECAS DE CONTROLES DE WINDOWS ......................................................... 200 Preparao da depurao: aplicaes Web ASP.NET.............................................................................. 201 PREPARAO DA DEPURAO: PROJETOS DE SERVIO WEB ASP.NET ............................................. 201 PREPARAO DA DEPURAO: SERVIOS DE WINDOWS ....................................................................... 203 UTILIZAR O DEPURADOR ....................................................................................................................................... 203 FUNDAMENTOS DA DEPURAO .................................................................................................................... 205 FUNDAMENTOS DA DEPURAO: JANELA DESENSAMBLADOR .............................................................................. 206 Fundamentos da depurao: janela Memoria ......................................................................................... 207 FUNDAMENTOS DA DEPURAO: JANELA REGISTROS.............................................................................. 208 GRUPOS DE REGISTROS ......................................................................................................................................... 209 FUNDAMENTOS DA DEPURAO: PONTOS DE INTERRUPO .................................................................. 209 FUNDAMENTOS DA DEPURAO: INSPEO RPIDA ................................................................................ 211 Depurao Just-In-Time .............................................................................................................................. 212 Habilitar a depurao Just-In-Time .......................................................................................................... 212 HABILITAR A DEPURAO JUST-IN-TIME PARA FORMULARIOS WINDOWS FORMS ........................ 213 Iniciar o depurador automticamente...................................................................................................... 213 FERRAMENTAS DE DEPURAO PARA INSPECIONAR UM PROGRAMA .................................................... 214 Utilizar o quadro de dilogo Inspeo rpida ......................................................................................... 215 AVALIAR UMA EXPRESO NO QUADRO DE DILOGO INSPEO RPIDA ............................................. 216 EDITAR UM VALOR NO QUADRO DE DILOGO INSPEO RPIDA ......................................................... 217 AGREGAR UMA EXPRESO DE INSPEO RPIDA JANELA INSPEO ............................................... 217

Apostila Visual Studio 2005

O PROCESSO DE COMPILAO NO C# ............................................................................................... 219 ASSEMBLIES ...................................................................................................................................................... 219 AMBIENTE GERENCIADO................................................................................................................................. 219 VERIFICABILIDADE .......................................................................................................................................... 220 EXAMINANDO OS ASSEMBLIES...................................................................................................................... 220 NOTA SOBRE DESCOMPILAO ...................................................................................................................... 221 EXECUTANDO PROGRAMAS ............................................................................................................................ 222 PR-COMPILAO............................................................................................................................................ 222 O EXECUTVEL CONTINUA EXIGINDO O .NET FRAMEWORK PRESENTE NO CLIENTE; ...................... 223 VANTAGENS E DESVANTAGENS ...................................................................................................................... 224 OPES DE COMPILAO ............................................................................................................................... 224 VERIFICAES EM TEMPO DE COMPILAO................................................................................................ 225 XML (EXCLUSIVO C#) .................................................................................................................................. 226 INCLUINDO ........................................................................................................................................................ 226 EXTRAINDO A DOCUMENTAO EM ARQUIVO PARTE ............................................................................ 227 APLICANDO UMA STYLE SHEET XSL ........................................................................................................... 228 GERANDO PGINAS HTML NO VISUAL STUDIO .NET............................................................................ 228 INTRODUO ........................................................................................................................................................ 230 Notas sobre traduo e terminologia ....................................................................................................... 231 Antecedentes: Christopher Alexander...................................................................................................... 231 Motivao: Engenharia de Software, Reuso e Software Pattern ......................................................... 232 Software Pattern .......................................................................................................................................... 233 Formas para Software Pattern................................................................................................................... 236 FORMA ALEXANDER ............................................................................................................................................. 236 FORMA COPLIEN .................................................................................................................................................. 237 FORMA GAMMA .................................................................................................................................................... 237 Exemplos de Design Patterns para Software Orientado a Objetos ..................................................... 237 EXEMPLO DO DESIGN PATTERN COMPOSITE .................................................................................................... 239 EXEMPLO DO DESIGN PATTERN ONE-FOR-MANY ............................................................................................. 239 Exemplos de Software Patterns para Organizaes e Processos.......................................................... 240 Como saber mais sobre Patterns ............................................................................................................... 242 CRIANDO DLLS NO MS.NET............................................................................................................................ 244 EARLY BIDING ..................................................................................................................................................... 246 LATE BIDING ....................................................................................................................................................... 248 Segurana e DLL Hell ................................................................................................................................... 248 Concluso ....................................................................................................................................................... 249 INTRODUO ........................................................................................................................................................ 250 MICROSOFT ENTERPRISE LIBRARY ....................................................................................................................... 250 CONCLUSO ....................................................................................................................................................... 251 ENTERPRISE LIBRARY 1.0 - CRYPTOGRAPHY APPLICATION BLOCK ...................................................................... 251 MACROS NO VISUAL STUDIO................................................................................................................... 257 VSTO - VISUAL STUDIO TOOLS FOR OFFICE ............................................................................................. 260 INTRODUO (FERRAMENTAS DO VISUAL STUDIO DO OFFICE) ............................................................................ 260 O QUE H DE NOVO NO FERRAMENTAS DO VISUAL STUDIO DO OFFICE ................................................................ 260 Sistema do projeto....................................................................................................................................... 261 Designer Visual.............................................................................................................................................. 261 Controles........................................................................................................................................................ 261 O Outlook suporte Add-ins.......................................................................................................................... 261 Suporte painel Aes ................................................................................................................................... 261 Suporte marcas inteligentes....................................................................................................................... 261 Programao de dados................................................................................................................................. 262 Programao do lado do servidor .............................................................................................................. 262 Dados de cache.............................................................................................................................................. 262 Implantao ................................................................................................................................................... 262 COMO INSTALAR FERRAMENTAS DO VISUAL STUDIO PARA OFFICE:..................................................................... 262 O Visual Studio 2005 Tools for Office............................................................................................................. 262 Para configurar as ferramentas de design no computador de desenvolvimento .............................. 264

Apostila Visual Studio 2005

Produtos System Team Studio Visual........................................................................................................ 264 Para configurar as ferramentas de design no computador de desenvolvimento .............................. 265 Guia de Introduo....................................................................................................................................... 265 COMO INSTALAR O FERRAMENTAS DO VISUAL STUDIO PARA RUNTIME OFFICE:.................................................. 266 Para instalar o Runtime .............................................................................................................................. 266 COMO: INSTALAR ASSEMBLIES DE INTEROPERABILIDADE PRIMRIO DO OFFICE ................................................... 266 Para instalar conjuntos de interoperabilidade primrias Office .................................................................... 267 VISO GERAL DO OFFICE SOLUTIONS DEVELOPMENT........................................................................................... 268 O Visual Studio 2005 Tools para o sistema Microsoft Office................................................................. 268 Cdigo para trs Word e Excel gerenciados............................................................................................. 269 Gerenciado suporte Add-ins para Outlook............................................................................................... 269 Implantao e manuteno......................................................................................................................... 269 Segurana....................................................................................................................................................... 269 Acesso offline no Word e Excel.................................................................................................................. 269 Modelos de objeto do Office ...................................................................................................................... 269 Assemblies de Interoperabilidade Primrios........................................................................................... 270 DOCUMENTOS DO OFFICE EM VISO GERAL DE AMBIENTE VISUAL STUDIO ......................................................... 270 Superfcie de design..................................................................................................................................... 270 O Modo Design............................................................................................................................................... 270 Code View ...................................................................................................................................................... 271 Excel................................................................................................................................................................ 271 O Word............................................................................................................................................................ 271 Barras de ferramentas................................................................................................................................. 272 Solution Explorer............................................................................................................................................. 272 Janela Properties ........................................................................................................................................... 272 Janela de fontes de dados .......................................................................................................................... 273 Impresso ....................................................................................................................................................... 273 MENUS DO OFFICE NO AMBIENTE DO VISUAL STUDIO .......................................................................................... 273 Itens de menu do Office.............................................................................................................................. 273 Menus de atalho............................................................................................................................................ 273 Mapeamento de atalhos do teclado .......................................................................................................... 273 Objetos incorporados e vinculados ................................................................................................................. 274 WALKTHROUGHS DESEVOLVIMENTO DE ESCRITRIO ........................................................................................... 274 GUIA DE INTRODUO PROGRAMAO PARA EXCEL ........................................................................................ 274 O modelo de aplicativo de documento nico................................................................................................... 274 Usando controles host ................................................................................................................................. 275 Usando ligao de dados ............................................................................................................................. 275 Prximas etapas............................................................................................................................................ 275 GUIA DE INTRODUO PROGRAMAO PARA WORD......................................................................................... 275 O modelo de aplicativo de documento nico .......................................................................................... 275 Usando controles host ................................................................................................................................. 275 Usando ligao de dados ............................................................................................................................. 276 Prximas etapas............................................................................................................................................ 276 GUIA DE INTRODUO WRITING CODE ................................................................................................................. 276 Abrir o modo de exibio do cdigo.......................................................................................................... 276 Exemplos de cdigo do Office .................................................................................................................... 277 Adicionando descries Office ao IntelliSense................................................................................................ 277 TRECHOS DE CDIGO INTELLISENSE EM FERRAMENTAS DO VISUAL STUDIO DO OFFICE...................................... 277 Tarefas trecho............................................................................................................................................... 278 USANDO MEU FERRAMENTAS DO VISUAL STUDIO EM PARA PROJETOS DO OFFICE ............................................... 278 Meus objetos na Ferramentas do Visual Studio para projetos do Office ........................................... 278 Application ................................................................................................................................................... 278 Usurio.......................................................................................................................................................... 278 Computer ..................................................................................................................................................... 279 WebServices ............................................................................................................................................... 279 Configuraes............................................................................................................................................. 279 Recursos....................................................................................................................................................... 279 VBA E COMPARADOS EXTENSES CDIGO GERENCIADO ...................................................................................... 279 Comparao ................................................................................................................................................... 279 CRIAR SOLUES DO OFFICE NO VISUAL STUDIO ................................................................................................. 280 COMO CRIAR FERRAMENTAS DO VISUAL STUDIO PARA PROJETOS DO OFFICE: ..................................................... 280 Para criar um projeto Word ou Excel ....................................................................................................... 281

Apostila Visual Studio 2005

Para criar um projeto do Outlook ............................................................................................................. 282 FERRAMENTAS DO VISUAL STUDIO PARA OVERVIEW DE MODELOS DO OFFICE PROJECT ..................................... 283 Documento do Word..................................................................................................................................... 283 Modelo do Word............................................................................................................................................ 283 Pasta de trabalho do Excel ......................................................................................................................... 283 Modelo do Excel............................................................................................................................................ 284 O Outlook Add-in .......................................................................................................................................... 284 FERRAMENTAS DO VISUAL STUDIO PARA EVENTOS OFFICE PROJECT ................................................................... 284 Eventos de inicializao .............................................................................................................................. 284 Eventos de desligamento ............................................................................................................................ 284 Declarao mtodo do manipulador de eventos..................................................................................... 285 Declarao mtodo do manipulador de eventos do Word......................................................... 285 Declarao mtodo do manipulador de eventos do Excel......................................................... 285 PROPRIEDADES EM FERRAMENTAS DO VISUAL STUDIO PARA PROJETOS DO OFFICE ............................................. 286 Confiar local conjuntos ............................................................................................................................... 286 CacheInDocument ......................................................................................................................................... 286 Namespace para item host ......................................................................................................................... 287 Valor2 ............................................................................................................................................................. 287 ARQUIVOS DOCUMENTO OU MODELO .................................................................................................................... 287 Comparao ................................................................................................................................................... 287 O Word.......................................................................................................................................................... 288 Excel .............................................................................................................................................................. 288 LIMITAES DE MODELOS GLOBAIS E SUPLEMENTOS ............................................................................................ 288 Modelos do Word .......................................................................................................................................... 288 Excel Add-ins ................................................................................................................................................. 289 O Outlook Add-ins ........................................................................................................................................ 289 Word e Excel Add-ins ................................................................................................................................... 289 RECURSOS DO EXCEL COM VSTO 2 .................................................................................................................... 290 INTRODUO ........................................................................................................................................................ 290 CONCLUSO ......................................................................................................................................................... 295 WINDOWS WORKFLOW FOUNDATION (.NET FRAMEWORK 3.0) ........................................................ 296 UM PONTO DE PARTIDA PARA A ADIO DO SUPORTE AO FLUXO DE TRABALHO PLATAFORMA WINDOWS 296 CRIANDO O PRIMEIRO FLUXO DE TRABALHO ..................................................................................................... 297 RECEBENDO E CONSUMINDO DADOS ................................................................................................................. 304 O TEMPO DE EXECUO DO FLUXO DE TRABALHO ............................................................................................ 311 FLUXOS DE TRABALHO E ATIVIDADES ................................................................................................................ 311 PLANEJANDO UM FLUXO DE TRABALHO MAIS REALISTA .................................................................................... 320 INTRODUO AO MANAGED DIRECTX COM C# NO VS .NET 2003 ............................................................... 334 REQUERIMENTOS .................................................................................................................................................. 334 A INSTALAO ..................................................................................................................................................... 335 PREPARANDO O VISUAL STUDIO E INICIANDO O DIRECTX.................................................................................... 336 GERENCIANDO ARQUIVOS NO .NET................................................................................................................ 346 SYSTEM.IO NAMESPACE ....................................................................................................................................... 346 INCREMENTANDO O PROJETO COM COPY, PASTE E DELETE .................................................................................. 354 EXPLICAES PASSO-A-PASSO DO VISUAL STUDIO .............................................................................. 357 WALKTHROUGHS DE APLICATIVOS CLIENTE RICH ................................................................................................ 357 WALKTHROUGH: CRIANDO UM APLICATIVO CLIENTE RICH COM MFC ................................................................. 357 Para criar o aplicativo MFC........................................................................................................................... 358 Para implementar suporte a banco de dados .................................................................................................. 358 Para modificar o formulrio ........................................................................................................................... 359 Para exibir os resultados da consulta ............................................................................................................. 359 Para criar o controle personalizado ............................................................................................................... 359 Para criar o evento Click ................................................................................................................................ 360 Para hospedar o controle ................................................................................................................................ 360 Para exibir a caixa de dilogo de controle host.............................................................................................. 361 Para implementar a caixa dilogo DHTML.................................................................................................... 361

Apostila Visual Studio 2005

Para exibir a caixa de dilogo DHTML.......................................................................................................... 362 Para criar o servio da Web XML................................................................................................................... 363 Para adicionar uma referncia da Web para o aplicativo do cliente.............................................................. 363 Para adicionar uma caixa de dilogo de validao........................................................................................ 363 Para validar o usurio .................................................................................................................................... 364 Para exibir a caixa de dilogo de validao inicialmente .............................................................................. 364 Para criar um projeto de instalao ............................................................................................................... 365 WALKTHROUGHS APPLICATION DE FORMULRIOS DA WEB ................................................................................. 365 EXPLICAO PASSO A PASSO: CRIANDO UMA PGINA WEB BSICA NO VISUAL WEB DEVELOPER ..................... 366 Para criar um site Web do sistema de arquivos .............................................................................................. 367 Um Tour do Visual Web Developer................................................................................................................. 368 Para se familiarizar com o designer da Web em Visual Web Developer ........................................................ 368 Criando uma Nova Pgina Web Forms........................................................................................................... 369 Para adicionar uma pgina ao site Web ......................................................................................................... 369 Adicionando HTML pgina .......................................................................................................................... 369 Para adicionar texto para a pgina ................................................................................................................ 369 Executando a Pgina....................................................................................................................................... 370 Para executar a pgina ................................................................................................................................... 370 Para adicionar controles para a pgina ......................................................................................................... 371 Definindo as Propriedades do Controle.......................................................................................................... 371 Para definir as propriedades de controle........................................................................................................ 371 Programando o Controle Button..................................................................................................................... 372 Para adicionar um manipulador de eventos padro para o controle button .................................................. 372 Executando a Pgina....................................................................................................................................... 373 Para executar a pgina ................................................................................................................................... 373 Para adicionar um controle Calendar ............................................................................................................ 374 Programando o Controle Calendar................................................................................................................. 374 Para programar o controle Calendar ............................................................................................................. 374 Executando a Pgina....................................................................................................................................... 375 Para executar a pgina ................................................................................................................................... 375 PASSO-A-PASSO: ACESSO A DADOS BSICO EM PGINAS DA WEB ....................................................................... 376 Para criar um site do sistema de arquivos ...................................................................................................... 376 Para adicionar e configurar um controle GridView para exibir dados .......................................................... 377 Para testar a pgina........................................................................................................................................ 382 Para adicionar classificao e paginao ...................................................................................................... 382 Para adicionar a caixa de texto para especificar uma cidade ........................................................................ 383 Para modificar a consulta com um filtro parametrizados............................................................................... 383 Para testar a filtragem .................................................................................................................................... 385 PASSO-A-PASSO: LIGAO DE DADOS PARA UM OBJETO CORPORATIVO PERSONALIZADO ..................................... 385 Para criar um site do sistema de arquivos ...................................................................................................... 386 Para criar o arquivo XML............................................................................................................................... 386 Para criar uma pasta App_Code..................................................................................................................... 387 Para criar o componente Business .................................................................................................................. 388 Para criar um controle ObjectDataSource que referencia o componente ...................................................... 389 Para exibir dados do componente ................................................................................................................... 389 Para modificar o componente Business para permitir insero ..................................................................... 390 Para adicionar um controle para inserir dados.............................................................................................. 390 Para configurar o controle da fonte de dados para inserir dados .................................................................. 391 Para testar a insero ..................................................................................................................................... 391 EXPLICAO PASSO A PASSO: DEPURAO DE PGINAS DA WEB NO VISUAL WEB DEVELOPER ........................... 392 Para criar um site no sistema de arquivos ...................................................................................................... 392 Criando uma pgina para depurao ............................................................................................................. 393 Para adicionar uma pgina ao site ................................................................................................................. 393 Para adicionar controles e cdigo para depurao........................................................................................ 393 Para alterar a legenda do controle Label ....................................................................................................... 394 Teste a pgina ................................................................................................................................................. 395 Para executar a pgina ................................................................................................................................... 395 Para definir pontos de interrupo ................................................................................................................. 395 Para executar o depurador.............................................................................................................................. 396 Para corrigir o erro e testar novamente.......................................................................................................... 398 PASSO-A-PASSO: CRIANDO E USANDO PGINAS MESTRAS DO ASP.NET NO VISUAL WEB DEVELOPER ............... 399 Para criar um site do sistema de arquivos ...................................................................................................... 399

Apostila Visual Studio 2005

Para criar a pgina mestra ............................................................................................................................. 400 Para criar uma tabela de layout para a pgina mestra .................................................................................. 401 Para adicionar contedo esttico para a pgina mestra ................................................................................ 402 Para adicionar um espao reservado de contedo.......................................................................................... 402 Para criar a Home Page ................................................................................................................................. 403 Para adicionar contedo para a Home Page.................................................................................................. 403 Para criar a pgina Sobre............................................................................................................................... 404 Para testar as pginas..................................................................................................................................... 404 Para adicionar uma propriedade pgina mestra ......................................................................................... 404 Para referenciar a propriedade CompanyName na pgina de contedo........................................................ 405 Para testar a referncia para a propriedade da pgina mestra...................................................................... 406 Anotaes ........................................................................................................................................................ 406 Para fazer uma cpia da pgina mestra.......................................................................................................... 407 Para adicionar botes para selecionar uma pgina mestra alternativa ......................................................... 408 Escrever cdigo para selecionar a pgina mestra dinamicamente ................................................................. 408 Para testar as pginas mestras dinmicas ...................................................................................................... 409 Anotaes ........................................................................................................................................................ 409 PASSO-A-PASSO: PERSONALIZANDO UM SITE USANDO TEMAS NO VISUAL STUDIO ................................................ 410 Para criar um site do sistema de arquivos ...................................................................................................... 411 Para colocar controles na pgina ................................................................................................................... 411 Para criar um novo tema................................................................................................................................. 412 Para testar temas............................................................................................................................................. 412 Para usar um tema de folhas de estilo e consultar ordem de prioridade ........................................................ 413 Para basear um tema personalizado em controles existentes ......................................................................... 414 Para configurar um tema para um site............................................................................................................ 415 EXPLICAO PASSO A PASSO: CRIANDO UMA PGINA WEB PARTS NO VISUAL WEB DEVELOPER ........................ 416 Para criar um novo site ................................................................................................................................... 417 Para criar uma pgina para conter controles Web Parts ............................................................................... 417 Para criar contedo para a zona principal ..................................................................................................... 418 Para criar um controle de usurio .................................................................................................................. 419 Para adicionar controles Web Parts zona da barra lateral ......................................................................... 420 Para testar a pgina ................................................................................................................................ 420 Para criar um controle de usurio que permita modificaes do layout da pgina......... 421 Para permitir que os usurios alterem o layout............................................................................ 423 Para testar alteraes de layout ......................................................................................................... 424 Para permitir que os usurios adicionem Web Parts em tempo de execuo ................................................. 425 Para testar o catlogo Web Parts ....................................................................................................... 426 EXPLICAO PASSO A PASSO: CRIANDO UM SITE WEB COM ASSOCIAO E LOGIN DE USURIO (VISUAL STUDIO) .............................................................................................................................................................................. 427 Para criar um site Web local no IIS ................................................................................................................ 428 Para adicionar uma nova pasta ao site Web................................................................................................... 428 Para criar um usurio da associao ............................................................................................................. 429 Para configurar as regras de acesso para o subdiretrio MemberPages....................................................... 430 Para configurar o aplicativo para usar um servidor SMTP especfico........................................................... 430 Para criar uma pgina com um boto de login............................................................................................... 431 Para criar uma pgina de login ...................................................................................................................... 431 Exibindo os Erros de Login ............................................................................................................................. 432 Para exibir erros de login detalhados ............................................................................................................. 432 Exibindo Informaes para os Usurios Autorizados ..................................................................................... 432 Para personalizar a exibio para usurios conectados ................................................................................ 432 Testando o Login ............................................................................................................................................. 432 Para testar o login........................................................................................................................................... 432 Para criar a pgina Exclusiva......................................................................................................................... 433 Para adicionar um link para a pgina exclusiva ............................................................................................ 433 Testando a Pgina Exclusiva .......................................................................................................................... 434 Para testar a pgina Excluvisa ....................................................................................................................... 434 Para criar uma pgina de registro.................................................................................................................. 434 Para criar um link de registro na home page.................................................................................................. 435 Para testar o registro ...................................................................................................................................... 435 Para criar uma pgina de alterao de senha ................................................................................................ 436 Para criar um link de alterao de senha na home page ................................................................................ 436 Para testar a alterao de senha..................................................................................................................... 437

Apostila Visual Studio 2005

Para adicionar recuperao de senha ............................................................................................................ 438 Para testar a recuperao de senha................................................................................................................ 438 PASSO-A-PASSO: CRIANDO E USANDO UM SERVIO DA WEB ASP.NET NO VISUAL WEB DEVELOPER ................. 439 Para criar um servio da Web......................................................................................................................... 440 Para criar o servio da Web............................................................................................................................ 441 Para criar os mtodos de converso ............................................................................................................... 441 Para testar o servio da Web .......................................................................................................................... 441 Para criar um site para usar o servio da Web............................................................................................... 442 Para criar uma referncia para o servio da Web .......................................................................................... 442 Para chamar os mtodos do servio da Web................................................................................................... 444 Para ativar a depurao no site de servios da Web ...................................................................................... 445 Para ativar a depurao do site ...................................................................................................................... 445 Para depurar a pgina e o servio da Web ..................................................................................................... 446 CRIANDO E ACESSANDO EXPLICAES PASSO A PASSO DE XML WEB SERVICES ................................................ 447 EXPLICAO PASSO A PASSO: CRIANDO UM XML WEB SERVICES USANDO VISUAL BASIC OU VISUAL C# ......... 448 Para criar um ASP.NET Web Service Project................................................................................................. 448 Para adicionar um mtodo de XML Web Service............................................................................................ 449 Para usar um ponto de interrupo e iniciar o XML Web Services com depurao ...................................... 450 Para implantar o XML Web Services usando um projeto Web Setup.............................................................. 451 Para implantar o XML Web Services, copiando o projeto.............................................................................. 452 PASSO-A-PASSO: CRIANDO UM XML WEB SERVICE USANDO C++ E O CLR......................................................... 452 Para criar um projeto Servio da Web ASP.NET com C++ ........................................................................... 452 Para adicionar um mtodo de XML Web Service............................................................................................ 453 Para usar um ponto de interrupo e iniciar o XML Web Services com depurao ...................................... 455 Para implantar o XML Web Services usando um projeto Web Setup.............................................................. 455 WALKTHROUGH: CRIANDO UM SERVIO DA WEB XML USANDO ATL SERVER ................................................... 457 Para criar um projeto do servio da Web ATL Server .................................................................................... 457 Para adicionar um mtodo de XML Web Service............................................................................................ 458 Para implantar o XML Web Services usando um projeto Web Setup.............................................................. 459 PASSO-A-PASSO: ACESSANDO UM XML WEB SERVICE USANDO C++ E O CLR .................................................... 460 Para criar um aplicativo de console ............................................................................................................... 461 Adicionar uma referncia da Web................................................................................................................... 461 Acessar o XML Web Services .......................................................................................................................... 462 Para utilizar um ponto de interrupo e iniciar o aplicativo com depurao ................................................ 463 PASSO-A-PASSO: ACESSANDO UM XML WEB SERVICE USANDO C++ .................................................................. 463 Para criar um aplicativo do cliente do servio XML da Web ......................................................................... 464 Adicionar uma referncia da Web................................................................................................................... 465 Acessar o XML Web Services .......................................................................................................................... 465 Para utilizar um ponto de interrupo e iniciar o aplicativo com depurao ................................................ 467 PASSO-A-PASSO: CRIANDO UM APLICATIVO DISTRIBUDO ..................................................................................... 468 Criar o objeto Business Tier intermediria-.................................................................................................... 469 Para criar um projeto Servio da Web ASP.NET............................................................................................ 469 Para criar um adaptador conexo e dados de banco de dados....................................................................... 470 Para configurar a autenticao integrada do Windows.................................................................................. 471 Adicionar mtodos para o servio da Web XML............................................................................................. 471 Crie a interface de usurio.............................................................................................................................. 472 Para criar o aplicativo Windows..................................................................................................................... 473 Para adicionar os controles ao formulrio ..................................................................................................... 473 Para adicionar cdigo para o LoadData e SaveData botes.......................................................................... 474 Para executar o aplicativo .............................................................................................................................. 475

Apostila Visual Studio 2005

CONHECENDO O VISUAL STUDIO .NET


Nesta matria estaremos apresentando a IDE (Integrated Development Environment) do Visual Studio .NET. A Microsoft incluiu nesta verso da ferramenta de desenvolvimento todos os que j vinha procurando aplicar e alguns novos visando o RAD (rapid application development). A IDE a mesma para todas as linguagens do Visual Studio .NET. Algumas modificaes de valores para propriedades de projetos e configuraes de build podem ocorrer, mas voc contar com o mesmo arsenal de palhetas e janelas em qualquer linguagem que voc estiver utilizando para desenvoltar uma aplicao, ou seja, a mesma interface para projetos em Visual Basic ou C#.

Gerenciando o ambiente de desenvolvimento


O ambiente de desenvolvimento do Visual Studio .NET (IDE) composto por inmeras janelas ou caixas com recursos para auxili-lo no desenvolvimento rpido de aplicativos. Essas janelas se enquadram em duas categorias bsicas: janelas de ferramentas e janelas de documentos. As janelas de ferramentas so listadas no menu View, sendo que muitas outras encontram-se no seu sub-menu Other Windows. Algumas dessas janelas de ferramentas so: Solution Explorer, Toolbox e Properties. J as janelas de documentos so criadas dinamicamente quando abrimos ou quando criamos arquivos ou outros itens. A lista de janelas de documento abertas aparece no menu Window na mesma ordem em que se encontram no ambiente de desenvolvimento, sendo a janela em primeiro plano na tela listada primeiro. Algumas janelas de documentos so o Code Editor e o Form Designer.

Na imagem anterior, a janela Form1.cs seria a janela de documento Form Design e a janela Form1.cs seria o Code Editor. interessante observar que voc pode escolher entre dois modos de trabalhar com as janelas de documentos: o novo modo com abas, no qual as janelas exibem

Apostila Visual Studio 2005

10

abas na parte superior para serem selecionadas (como na imagem anterior) e o modo MDI, antigo conhecido, no qual a janela em primeiro plano, quando maximizada, apresenta os botes Minimizar, Restaurar e Fechar no canto superior esquerdo do ambiente de desenvolvimento, logo abaixo da barra de ttulos do mesmo. Inicialmente, o Visual Studio .NET vem configurado para exibir as janelas no modo com abas, mas voc pode mudar para o modo MDI selecionando a opo Options no menu Tools e definindo a opo MDI Environment na opo General da pasta Environment.

Como as janelas so muitas, foram implementados alguns excelentes recursos de gerenciamento de janelas. Por exemplo, as janelas de ferramentas podem ser arranjadas no IDE para aparecerem e desaparecerem automaticamente, ficarem ligadas a outras janelas de ferramentas com abas para seleo, ancorarem nas extremidades da IDE ou de outras janelas, flutuarem sobre o IDE, se comportarem como janelas-filha MDI ou at serem exibidas em outro monitor. Voc pode posicionar essas janelas arrastando-as com o mouse e observando seu comportamento. Todas as janelas de ferramentas da IDE podem assumir trs tipos de comportamento: Docktable (ancorvel), Floating (flutuante) e MDI (Multiple Document Interface Interface de Documentos Mltiplos). Para definir qual deve ser o comportamento de uma determinada janela, basta selecion-la e ativar ou desativar, no menu Window, opes Docktable e Floating. Com a opo Docktable ativa, a janela poder ser ancorada na borda da IDE ou em outras janelas Docktable. Com a opo. Com a opo Floating ativa, a janela ficar flutuando sobre o ambiente, e com as opes Floating e Docktable desativadas, ela se comporta como uma janela-filha MDI, podendo ser arranjada lado a lado horizontal, ou verticalmente em relao as outras janelas MDI, minimizada ou maximizada dentro da IDE. Como se pode notar, h uma enorme flexibilidade no modo como podemos gerenciar nossas janelas. Mas isto no tudo!

Apostila Visual Studio 2005

11

Quando a janela est definida como Docktable e ancorada no IDE, ela tambm se torna passvel de ser Auto Hide, ou auto-ocultvel. Voc ver em sua barra de ttulo ). Este alfinete permite que voc ative ou desative a um cone de alfinete ( ocultao automtica da janela. Quando voc d um clique no cone do alfinete de uma janela que est em exibio, ela ser escondida logo que voc tirar o mouse de cima da mesma, ficando uma guia (ou paleta) na borda da tela com o nome da janela oculta. Passando o mouse sobre esta guia, a janela ser exibida novamente e se voc quiser deix-la fixa na tela, basta dar um clique sobre o alfinete novamente.

Qualquer que seja o modo de exibio de uma janela, voc pode ocult-la definitivamente dando um clique no X que existe no seu canto superior direito. Depois, para re-exibir a janela, voc deve selecion-la no menu View da IDE. Nos prximos tpicos conheceremos especificamente algumas dessas janelas.

Conhecendo as janelas do ambiente de desenvolvimento


Agora que voc j sabe como gerenciar as janelas da IDE, vamos dar uma olhada mais de perto em algumas delas.

Janela Solution Explorer


Todos os projetos criados dentro do Visual Studio .NET ficam dentro de uma soluo. O Solution Explorer uma interface simples entre voc e sua soluo. Ele lhe d informaes em tempo real sobre itens da soluo e permite administrar esses itens visualmente. Por exemplo, voc pode monitorar os estados atuais de arquivos-fonte gerenciados, arrastar itens de um projeto para outro e visualizar as propriedades da soluo, de um projeto ou de um arquivo. Muitas das tarefas mais comuns relacionadas com a manuteno de arquivos e projetos podem ser realizados por meio do Solution Explorer.

Apostila Visual Studio 2005

12

O Solution Explorer tem uma barra de ferramentas que pode exibir alguns cones de acordo com o item que voc seleciona sua rvore. Por exemplo, se voc seleciona um Form, tal como o Form1.cs do nosso projeto, sero exibidos cinco cones com as seguintes finalidades. View Code: Abre o arquivo selecionado para edio no Code Editor; View Designer: Abre o arquivo no Forms Designer para visualizao e alterao; Refresh: Atualiza a exibio do item selecionado no Solution Explorer. Este boto tambm pega a ltima verso de um arquivo que est sendo usado por outros programadores em modo compartilhado de rede. Show All Files: Exibe todas as pastas e arquivos da Soluo, incluindo aqueles que foram excludos do projeto atual e os que esto ocultos. Properties: Exibe na janela Properties as propriedades do item selecionado no Solution Explorer

Janela Toolbox
A janela Toolbox (ou Caixa de Ferramentas) pode ser aberta pelo menu View > Toolbox. ela que comporta os controles (componentes) que podem ser inseridos nos projetos. Esta janela contm vrias abas que podem ser estendidas com um clique do mouse. Outras abas tambm podem aparecer dinamicamente de acordo com o tipo de projeto em que voc est trabalhando.

Apostila Visual Studio 2005

13

Para utilizar esta janela, basta clicar no componente desejado e clicar depois em algum lugar dentro do form. Desta forma se o componente for visual, aparecer na regio do form que acabou de clicar.

Janela Properties
A janela Properties (ou Propriedades) pode ser acessada por meio do menu View > Properties Window. Algumas propriedades possuem o smbolo de mais (+), pois esto agrupadas em categorias. Clicando sobre este sinal voc pode acessar a lista de propriedades que compem estas categorias. Quando voc escolhe um componente e coloca-o em seu form, nesta janela que voc deve configurar os valores iniciais das propriedades deste componente. Por exemplo, o prprio form que voc utiliza obrigatoriamente em um projeto do tipo WinForms, se voc deseja alterar o ttulo do mesmo, basta ir na janela Properties e alterar a propriedade Text, colocando o ttulo desejado. Veja a imagem a seguir:

Alterando a propriedade Text conforme sugere a imagem, a palavra Form1 no mais ir aparecer no ttulo do seu form.

Janela OutPut
A janela OutPut (ou Sada de Informaes) acessvel pelo menu View > Other Windows > OutPut. Como o prprio nome diz, esta janela exibe as sadas de informaes do ambiente de desenvolvimento do Visual Studio .NET. Durante o processo de compilao, por exemplo, o Visual Studio.NET coloca informaes de cada etapa do procedimento que est sendo executado. Voc tambm pode forar uma sada de informaes nesta janela utilizando o mtodo WriteLine( ) do objeto Debug.

Apostila Visual Studio 2005

14

Janela Object Browser


A janela Object Browser (ou Navegador de Objetos) aberta pelo menu View > Other Windows > Object Browser. Ela apresenta a estrutura hierrquica de cada objeto disponvel, bem como a lista de membros pertencentes a cada objeto selecionado. Os objetos so apresentados na caixa Objects em uma estrutura de rvore, com ns que podem ser expandidos ou compactados por meio de um clique em seu sinal de adio (+) ou subtrao (-). Isso nos d uma viso bem ampla dos recursos contidos em cada objeto. Devido ao suporte aprimorado da orientao a objetos, a janela Object Browser tambm foi melhorada para mostrar todos os detalhes dos objetos. Selecionando um objeto na caixa Objects desta janela, voc poder ver os membros desse objeto na caixa Members e uma descrio do mesmo na parte inferior da janela. interessante tambm que nesta janela voc pode ver o nome da assembly (DLL) onde esto contidos certos recursos, e at o caminho dessa assembly em seu computador.

Apostila Visual Studio 2005

15

Janela Class View


A janela Class View (ou Visualizador de Classes) mais uma implementao visando facilitar o trabalho com o modelo de programao orientada a objetos e pode ser acessada atravs do menu View > Class View. Por meio desta janela, voc pode ver toda a estrutura de classes existente em seu projeto. Clicando duas vezes com o mouse em cima de mtodo (item representado por uma caixa em rosa), o code editor aberto automaticamente e o cursor de edio de texto disponibilizado na primeira linha do cdigo do mtodo. Conforme voc vai notar na imagem seguinte, os mtodos pblicos so representados pela imagem de uma caixa rosa, os mtodos privados so representados pela caixa rosa e um cadeado, os mtodos protegidos so representados por uma caixa rosa e uma chave e finalmente os mtodos internos a classe so representados por uma caixa rosa com um envelope de carta em amarelo.

Apostila Visual Studio 2005

16

Janela Web Browser


A janela Web Browser (ou Navegador de Internet) um navegador Web disponvel dentro da IDE do Visual Studio .NET. Normalmente, quando voc inicia o Visual Studio .NET, a janela Web Browser aparece exibindo a sua pgina inicial, a Visual Studio Start Page.Toda vez que uma janela WebBrowser exibida, a barra de ferramentas Web tambm aparece permitindo acesso rpido aos recursos de navegao pela Internet. Para acess-la, voc deve apontar o menu View > Web Browser > Show Browser.

Voc pode configurar qual pgina deseja que aparea inicialmente quando o Visual Studio.NET ativado no menu Tools > Options > Enviroment > General, conforme a imagna seguir.

Apostila Visual Studio 2005

17

Janela Favorites
A janela Favorites (ou Favoritos) exibe a lista dos sites apontados nos favoritos do seu navegador Internet Explorer, permitindo que voc adicione novos endereos a essa lista, ou at a organize. Essas opes so disponibilizadas por meio de View > Other Windows > Favorites.

Janela Server Explorer


O Server Explorer (ou Explorador de Servidores) um gerenciador de servidores do Visual Studio .NET. Ele apresenta uma lista com as conexes de dados e todos os servidores disponveis em sua rede. Com ele voc pode examinar e manipular os servidores de bancos de dados, bem como os dados que estes contm. Voc pode, por exemplo, us-lo para se conectar a uma base de dados para um Form de sua aplicao, para um diagrama de banco de dados ou para uma consulta SQL. A janela Server Explorer pode ser acessada pelo menu View > Server Explorer.

Apostila Visual Studio 2005

18

Alm de permitir facilmente a visualizao de tabelas, views e stored procedures, voc tambm tem acesso ao event logs (do Event Viewer), a filas MSMQ, Services e ao Performance Monitor entre outros.

Nota: Estes itens s podero ser visualizados se voc estiver desenvolvendo em uma mquina instalada com o sistema operacional Windows 2000 Server o Advanced Server.

Macro Explorer
O Visual Studio .NET possui agora suporte a macros, para agilizar a execuo de tarefas repetitivas, como ocorre com aplicativos como o Microsoft Word e Excel. A janela Macro Explorer (ou Explorador de Macros) lista todas as macros disponveis no ambiente e sua ferramenta principal para ver e executar macros. Para acessar esta janela voc deve apontar para View > Other Windows > MacroExplorer.

Apostila Visual Studio 2005

19

Task List
A janela Task List (ou Lista de Tarefas) ajuda voc a organizar e administrar o trabalho de construir sua soluo. Excelente hbito para desenvolvimentos muito extensos, aonde voc deixa algumas tarefas para serem ajustadas depois com o objetivo de no atrasar o cronograma. Para exibi-la selecione a opo Show Tasks no menu View e ento escolha a categoria da mensagem que deseja ver, ou selecione Other Windows no menu View e escolha Task List.

Voc tambm pode configurar qual o tipo de informao que deseja apresentar nesta janela. Para fazer isto, clique com o boto direito do mouse e selecione no menu que ir surgir o tipo de informao desejada. Na imagem anterior de exemplo, estamos visualizando User defined tasks. A opo default desta janela Build Errors.

Apostila Visual Studio 2005

20

Command Window
A janela Command Window (ou Janela de Comando) tem dois modos diferentes: Comando e Imediato. O modo Comando usado para executar rapidamente comandos diretamente no ambiente Visual Studio .NET, evitando o sistema de menus, ou para executar comandos que no aparecem em qualquer menu. J o Modo Imediato usado para propsitos de depurao e igual ao das verses anteriores do Visual Studio. Para acessar esta janela, aponte o menu View > Other Windows > Command Window.

Criando Aplicaes baseados em Templates


O Visual Studio .NET possui dezenas de templates que facilitam muito no desenvolvimento de aplicativos. Para acess-los, clique sobre o menu File > New > Project. Por exemplo, se voc deseja construir uma aplicao do tipo WindowsForm, o Visual Studio.NET parte do pressuposto que pelo menos um form dever existir em sua soluo e ele traz isto definido para voc. Voc no precisa se preocupar em adicionar o Main form ou escrever a estrutura de seu cdigo (como a namespace e a classe principal que vai conter o mtodo static Main( );).

Apostila Visual Studio 2005

21

Como pode observar na imagem anterior, existem vrios templates disponveis nas linguagens que voc possui em seu Visual Studio.NET. Imagine a facilidade de criar um Web Services ou Mbile Web App atravs destes templates. Basta selecion-lo e toda a tarefa pesada como declaraes e diretivas de compilao especificas j esto prontas. Crie um projeto qualquer e note que existe uma grande quantidade de cdigo j escrita bem como indicaes (em) de como o cdigo pode ser colocado. Esta uma funcionalidade que promove um grande ganho de produtividade para seu desenvolvimento.

Ocultamento do Texto
Este novo recurso nos permite ter uma viso hierrquica e resumida de todo nosso cdigo. Consiste numa funcionalidade do code editor em colocar uma linha vertical do lado esquerdo do cdigo e, em pontos especficos, como no incio de funes, classes, etc., inserir um sinal de subtrao (ou adio), indicando que aquela linha pode ser expandida ou ocultada. possvel tambm ocultar e re-exibir qualquer bloco de cdigo por meio das opes disponveis no sub-menu Outlining do menu Edit.

Com este recurso novo voc pode muito bem minimizar regies do texto que no esto sendo trabalhadas em um determinado momento e se preocupar com o que realmente relevante para o momento. Para os desenvolvedores que conhecem XML, inevitvel a comparao. , sem dvida, um diferencial impressionante que far voc optar pelo code editor do Visual Studio.NET em comparao com qualquer outro editor de textos.

Intellisense

O Intellisense uma engenhosidade que lhe fornece uma lista de facilidades enquanto digita o cdigo fonte no code editor do Visual Studio.NET. O Intellisense fornece as seguintes funcionalidades:

Apostila Visual Studio 2005

22

List Members (Lista de membros): Quando voc digita o nome de um objeto seguido de um ponto, o Intellisenser aberto uma caixa de listagem com todos os membros deste objeto (propriedades, mtodos, eventos, variveis, etc) e voc poder escolher aquele que deseja usar. Auxilia na fixao dos nomes dos membros;

Parameter Info (Informaes de parmetros): Quando voc digita o nome de uma funo e abre parentes, o Intellisense exibe rapidamente a lista de sobrecargas do mtodo e a lista de parmetros que cada sobrecarga necessita;

Quick Info (Informaes Rpidas): Quando voc passa o mouse sobre um especificador o Intellisense exibe a declarao completa deste especificador; Complete Word (Completar palavra): Quando voc est digitando o nome de um membro e pressiona CTRL + ESPACO, o Intellisense completa a palavra (nome do membro) ou exibe uma lista de membros com nomes que iniciam com as letras j digitadas.

Obtendo Ajuda
O sistema de ajuda do Visual Studio.NET a referncia mais completa sobre a ferramenta, seguida pelos manuais do usurio cedidos juntos com o sistema. Uma das funcionalidades mais interessantes que o Visual Studio .NET possui o Dynamic Help, que serve como uma espcie de ajudante do programador. Sua tarefa buscar informaes e referncias sobre o objeto que voc est utilizando dinamicamente enquanto esta digitando o cdigo.

Apostila Visual Studio 2005

23

O Help tradicional ativado a partir da tecla F1 tambm esta presente na ferramenta de desenvolvimento. Quando voc pressiona a tecla F1, o Visual Studio.NET no procura uma combinao exata da palavra embaixo do cursor na lista Help Search. Em vez disso, ele tenta adivinhar o que voc est precisando. Por exemplo, se voc pressionar F1 quando o cursor de texto estiver sobre a palavra button1 no cdigo fonte, o sistema Help do Visual Studio.NET abrir automaticamente a descrio da classe button, uma vez que isto o que provavelmente voc esta procurando. interessante notar que no existe apenas um nico arquivo Help no Visual Studio.NET. Na maioria das vezes, voc invocar o Help do Visual Studio.NET, mas este arquivo complementado pelo Help do framework.

Introduo ao Visual Studio


Como j sabemos, o Visual Studio um conjunto completo de ferramentas de desenvolvimento para criar aplicativos da Web ASP.NET, XML Web Services, aplicativos desktop, e aplicativos mveis. Visual Basic, Visual C++, Visual C#, e Visual J# usam todos o mesmo ambiente de desenvolvimento integrado (IDE), que permite que eles compartilhem ferramentas e facilita na criao de solues de linguagens mistas. Alm disso, essas linguagens aproveitam a funcionalidade do .NET Framework, que fornece acesso s tecnologias chave que simplificam o desenvolvimento de aplicativos da Web ASP e XML Web Services.

Ferramentas do Visual Studio para Office


Microsoft Visual Studio 2005 Tools for the Microsoft Office System ajudam voc a criar solues, estendendo documentos do Word 2003 e pastas de trabalho do Excel 2003 usando o Visual Basic e Visual C#. Visual Studio Tools for Office inclui novos projetos Visual Studio para criar cdigo em documentos do Word, modelos do Word, pastas de trabalho do Excel, e modelos do Excel. Para maiores informaes, Viso geral do Office Solutions Development (http://msdnwiki.microsoft.com/pt-br/mtpswiki/hy7c6z9k(VS.80).aspx).

Visual Web Developer Apostila Visual Studio 2005 24

Visual Studio apresenta um novo designer de pginas da Web denominado Visual Web Developer que inclui vrios aprimoramentos para criar e editar pginas da Web ASP.NET e pginas HTML. Ele fornece uma forma mais simples, mais rpida de criar pginas de Web Forms que no Visual Studio .NET 2003. Visual Web Developer apresenta melhorias em todas as reas de desenvolvimento de sites da Web. Voc pode criar e manter sites da Web como pastas locais, no Internet Information Services (IIS) ou em um servidor FTP ou SharePoint. O designer Visual Web Developer oferece suporte a todos os aprimoramentos ASP.NET, incluindo quase duas dzias de novos controles que simplificam muitas tarefas de desenvolvimento da Web. Para maiores informaes, O que h de novo no desenvolvimento da Web para Visual Studio.

Aplicativos de Dispositivos Inteligentes


O ambiente integrado do Visual Studio inclui ferramentas direcionadas para dispositivos como PDAs e Smartphones. As melhorias incluem ferramentas Visual C++ e runtimes de dispositivo nativo, designers gerenciados que fornecem WYSIWYG aprimorado especfico de plataforma e amplo suporte de forma fsica, um novo emulador, ferramentas de tratamento de dados semelhantes rea de trabalho, e projetos de implantao de usurio final que eliminam a edio de arquivos .inf manualmente.

Web Forms
Web Forms so uma tecnologia ASP.NET que voc usa para criar pginas da Web programveis. Web Forms processam-se como HTML e script compatveis com o navegador, que permite a qualquer navegador em qualquer plataforma exibir as pginas. Usando Web Forms, voc cria pginas da Web arrastando e soltando controles no designer e adicionando cdigo, semelhante maneira que voc cria formulrios do Visual Basic.

Windows Forms
Windows Forms so para a criao de aplicativos do Microsoft Windows sobre o .NET Framework. Esta estrutura fornece um conjunto claro, extensvel e orientado a objetos de classes que permitem que voc desenvolva ricos aplicativos do Windows. Alm disso, Windows Forms podem atuar como a interface de usurio local em uma soluo multi-camadas distribuda.

XML Web Services


XML Web Services so aplicativos que podem receber solicitaes e dados usando XML via HTTP. XML Web Services no esto vinculados a uma tecnologia de componente em particular ou conveno de chamada de objeto, e portanto podem ser acessados por qualquer linguagem, modelo de componente, ou sistema operacional. No Visual Studio, voc pode criar e incluir XML Web Services usando Visual Basic, Visual C#, JScript, ou servidor ATL rapidamente.

Suporte XML
XML oferece um mtodo para descrever dados estruturados. XML um subconjunto da SGML que otimizado para entregas atravs da Web. O W3C (World Wide Web Consortium) define padres XML para que dados estruturados se tornem uniformes e independentes de aplicativos. Visual Studio oferece suporte total a XML,

Apostila Visual Studio 2005

25

fornecendo o XML Designer para tornar mais fcil editar XML e criar esquemas XML. Para obter mais informaes, XML Designer.

Sistema de Equipe Visual Studio


Visual Studio 2005 Team System uma plataforma de ferramentas de ciclo de vida e de desenvolvimento de software produtiva, integrada, e extensvel que ajuda equipes de software melhorando a comunicao e a colaborao em todo o processo de desenvolvimento de software. Consiste no seguinte: Foundation equipe um servidor de colaborao de equipe extensvel que fornece acompanhamento de itens de trabalho, controle de origem, relatrios, e orientaes de projetos. Edition Team para Arquitetos um conjunto de ferramentas de design de aplicativo integrado para desenvolvimento orientados a servios. Edition equipe para desenvolvedores fornece qualidade de cdigo e ferramentas de desempenho que permitem que equipes criem aplicativos e servios confiveis, e de misso crtica. Edition equipe para Testers fornece avanadas ferramentas de carregamento de teste que permitem equipes verificar o desempenho de aplicativos antes da implantao.

O .NET Framework
O .NET Framework um ambiente multi-linguagem para compilao, implantao e execuo de XML Web Services e aplicativos. Ele consiste em trs partes principais: Common Language Runtime Apesar do nome, o runtime na verdade tem uma funo tanto em tempo de execuo de um componente quanto em experincias em tempo de desenvolvimento. Enquanto o componente executado, o runtime responsvel por gerenciar alocao de memria, nicializando e parando segmentos e processos, e reforando diretivas de segurana, bem como satisfazendo as dependncias que o componente pode ter sobre outros componentes. Em tempo de desenvolvimento, a funo do runtime se altera ligeiramente; como ele automatiza tanto (por exemplo, gerenciamento de memria), o Runtime torna a experincia do desenvolvedor bastante simples, especialmente quando comparado com COM como ele est atualmente. Em particular, recursos como reflexo reduzem significativamente a quantidade de cdigo que um desenvolvedor deve digitar a fim de transformar lgica corporativa em um componente reutilizvel.

Classes de programao unificada A estrutura fornece aos desenvolvedores um conjunto unificado, orientado a objetos, hierrquico, e extensvel de bibliotecas classe (APIs). Atualmente, os desenvolvedores C++ usam Microsoft Foundation Classes e desenvolvedores Java usam Windows Foundation Classes. A estrutura unifica esses modelos diferentes e fornece tambm aos programadores de Visual Basic e JScript acesso a bibliotecas de classe. Atrvs da criao de um conjunto comum de APIs em todas as linguagens de programao, o Common Language Runtime permite herana entre linguagens, manipulao de erros, e depurao. Todas as linguagens de programao, de JScript at C++, tm acesso semelhante estrutura e desenvolvedores so livres para escolher a linguagna qual desejam usar.

Apostila Visual Studio 2005

26

ASP.NET ASP.NET compila sobre as classes de programao do .NET Framework, fornecendo um modelo de aplicativo da Web com um conjunto de controles e infraestrutura que tornam mais simples criar aplicativos da Web. ASP.NET inclui um conjunto de controles que encapsulam elementos HTML de interface de usurio comuns, como caixas de texto, botes e caixas de listagem. Esses controles executam no servidor Web, no entanto, e processam sua interface de usurio como HTML para o navegador. No servidor, os controles expem um modelo de programao orientada a objetos que traz a riqueza da programao orientada a objeto para o desenvolvedor da Web. ASP.NET tambm fornece servios de infraestrutura, como gerenciamento de estado e processo de reciclagem, que mais adiante reduzna quantidade de cdigo que o desenvolvedor deve digitar e aumentam a confiabilidade do aplicativo. Alm disso, ASP.NET usa esses mesmos para permitir que desenvolvedores entreguem software como um servio. Usando recursos XML Web Services, os desenvolvedores ASP.NET podem escrever suas lgicas corporativas e usar a infra-estrutura ASP.NET para enviar esse servio atravs de SOAP. Para maiores informaes, Introduo programao servios XML da Web no cdigo gerenciado. Para obter mais informaes, Viso Geral Sobre o .NET Framework e Dentro do .NET Framework.

Usando a Ajuda no Visual Studio


A coleo de Ajuda do Visual Studio apresenta informaes sobre linguagens, designers, e tecnologias em uma variedade de formas. Use os seguintes links para ler mais sobre como voc pode obter a ajuda que precisa, quando voc necessitar.

Convenes de documento (Visual Studio)


Este conjunto de documentaes usa as seguintes convenes tipogrficas. xemplo escrio

Sub TextRangeExample()End Sub Esta fonte e esta cor so usadas para cdigo.

tup

Na sintaxe, as palavras que voc instrudo a digitar aparecem em negrito. No texto, negrito usado para identificar os nomes de menus, opes, caixas de dilogo, e outros itens nomeados na interface do usurio. Na sintaxe e no texto, letras em itlico podem indicar espaos reservados para informaes que voc fornecer. Na sintaxe, itens dentro de colchetes so opcionais. Na sintaxe, itens sublinhados so variveis. Na sintaxe, chaves e uma barra vertical indicam uma escolha entre dois ou mais itens. Voc deve escolher um dos itens a menos que todos os itens tambm estejam colocados entre colchetes.

variable

[expressionlist] variable {While | Until}

Apostila Visual Studio 2005

27

ENTER

Letras maisculas so usadas para os nomes de teclas e seqncias de teclas, como ENTER e CTRL+R. Um sinal de mais (+) entre nomes de teclas indica uma combinao de teclas. Por exemplo, ALT + F1 significa manter pressionada a tecla ALT enquanto pressiona a tecla F1. Outras teclas de navegao so chamadas pelos seus nomes especficos. Teclas de direo individuais so referenciadas pela direo da seta na parte superior da tecla (esquerda, direita, cima, ou baixo). A frase "teclas de direo" usada para descrever estas teclas coletivamente.

ALT + F1

BACKSPACE, HOME SETA PARA BAIXO

C:\MyProjects\MyWebPage.htm Caminhos e nomes de arquivo so fornecidos com letras maisculas e minsculas misturadas.

Elementos em Tpicos da Ajuda


, Recolher tudo, e opes de Filtro de linguagem aparecem no cabealho acima do ttulo de um tpico. Esses elementos permitem que voc visualize rapidamente informaes relacionadas, exiba somente ttulos de cabealho, ou escolha tpicos especficos nas opes de filtro de linguagem, respectivamente. ara Localizar tpicos relacionados Exibir somente ttulo de tpicos Recolher tudo emento escrio Navega para o fim do tpico onde uma lista de tpicos que contm informaes relacionadas ao tpico atual aparece. Oculta todo contedo dentro de um tpico. Exibe uma lista de linguagens, como Visual Basic. Selecionando um dos filtros de linguagem o contedo do tpico ser especfico para aquela linguagem. Selecione Todas para exibir todas as informaes no tpico, independentemente de qual linguagem se aplique.

Mostrar apenas Filtro de informaes linguagem relacionadas a uma linguagem especfica.

Estratgias para usar a Ajuda


A Ajuda do Visual Studio est totalmente integrada com o ambiente de desenvolvimento (IDE), em um esforo para prover as informaes necessrias com base no contexto de seu esforo de desenvolvimento. Para aumentar sua eficincia no uso da IDE, voc pode considerar as situaes gerais em que a Ajuda pode benefici-lo e onde voc pode buscar a Ajuda em cada situao.

Ajuda disponvel quando voc precisar dela Apostila Visual Studio 2005

28

Voc pode encontrar ajuda que adequada sua situao atual. Quando voc abre a caixa pela primeira vez e deseja informaes sobre a instalao e as ltimas melhorias no produto ou na documentao, o Leiame contm notcias de ltimo minuto e observaes sobre o produto. Voc tambm encontra as ltimas notcias e atualizaes em Microsoft.com.

Enquanto trabalha no ambiente de desenvolvimento integrado (IDE), a janela de Ajuda Dinmica pode exibir uma escolha de links para tpicos relacionados ao seu trabalho atual. Os tpicos podem conter procedimentos para completar uma tarefa, um explicao passo a passo projetada para introduzir novas tecnologias, ou prticas de programao para concluir partes de um esforo de desenvolvimento. Outras categorias de Ajuda Dinmica incluem exemplos e tpicos de treinamento relacionados. Voc pode exibir a janela da Ajuda Dinmica digitando Help.DynamicHelp na Janela de comando. Obviamente, a Ajuda atravs de F1 exibe os tpicos de referncia com base nos elementos de interface de usurio que voc selecionar ou nas mensagens de erro exibidas. Voc pode especificar um contexto para a janela da Ajuda Dinmica, selecionando vrios pontos no ambiente de desenvolvimento integrado. A Ajuda atravs de F1 exibe os tpicos de referncia baseados nos elementos de UI que voc selecionar ou nas mensagens de erro exibidas. Enquanto voc estiver criando objetos e codificando suas funcionalidades, os editores podem oferecer a concluso de uma instruo que apresenta as informaes de sintaxe de palavras-chave, propriedades e mtodos que voc precisa. Se voc deseja examinar a funcionalidade de uma biblioteca ou de um objeto mais detalhadamente, voc pode utilizar o Pesquisador de Objetos. Se voc desejar ainda mais informaes sobre o uso e os recursos de um elemento em um idioma especfico, voc pode usar a Ajuda atravs de F1 para exibir o tpico de referncia de idiomas.

Quando a janela Dynamic Help e a ajuda atravs de F1 no atendem s suas necessidades, voc pode usar o ndice de Palavras-Chave, a Busca por Texto Completo, a pgina Como fao, e o Sumrio fornecidos pelo Microsoft Document Explorer. Usando a MSDN Library, voc pode pesquisar por vrias tecnologias novas. A biblioteca inclui peridicos e artigos tcnicos. Alm disso, voc tambm pode optar por procurar fontes de Ajuda on-line, como o Code Wise Community e a MSDN on-line.

Tipos de Ajuda e onde localiz-la


Embora os tpicos da Ajuda apresentem informaes em uma variedade de formas, cada uma foi desenvolvida para permitir que voc atinja um dos os seguintes objetivos:

Localizar sintaxe, referncia da linguagem e componentes Atingir uma meta ou executar uma tarefa Pesquisar e compreender

Localizar sintaxe, referncia da linguagem, e componentes


Se voc estiver procurando informaes ao escrever seu cdigo, voc pode tentar as sugestes a seguir. e voc deseja Usar uma palavra-chave especfica e aprender ente Concluso de instruo do editor

Apostila Visual Studio 2005

29

sobre sua sintaxe

Pesquisador de objetos Referncia da linguagem (F1) ndice Pesquisa Sumrio Concluso de instruo do editor Referncia da linguagem Exemplos Referncia da interface de usurio (Shift + F1)

Localizar uma palavra-chave que fornece uma certa funcionalidade Ler sobre um editor ao editar um documento

Atingir uma meta ou executar uma tarefa


Se voc sabe o que deseja fazer e estiver procurando por idias sobre como fazlo, voc pode tentar as sugestes a seguir. e voc deseja Criar algo novo ente Janela de Ajuda Dinmica Tpicos com explicao passo a passo Exemplos ndice

Usar janelas, caixas de dilogo, designers Ajuda atravs de F1 e ferramentas Janela de Ajuda Dinmica Janela de contedos Resolver problemas indicados por mensagens de erro Ajuda atravs de F1 Tpicos de mensagem de erro Artigos na KB (http://support.microsoft.com)

Pesquisando e entendendo
Se voc estiver interessado em mais descries e explicaes para que voc possa compreender melhor o que est disponvel, recomendado, ou como algo funciona, tente as seguintes sugestes. e voc desejar obter mais informaes sobre Uma tecnologia especfica e seus usos ente Tpicos O que h de novo Janela de ndice Janela de pesquisa Janela de Ajuda Dinmica Exemplos Tpicos O que h de novo Janela de Ajuda Dinmica Janela de ndice Janela de pesquisa Janela de contedos Janela de Ajuda Dinmica Janela de ndice

Tecnologias existentes, o que for novo e o que foi alterado.

Modificando e atualizando esforos de desenvolvimento existentes

Apostila Visual Studio 2005

30

Janela de pesquisa Exemplos Aprendendo a programar usando o Visual Studio Exemplos de referncia da linguagem Exemplos Janela de contedos Links Janela de contedos Janela de ndice Janela de pesquisa

Informaes relacionadas ao tpico aberto no momento

COMO: Baixar arquivos de exemplo nos tpicos da Ajuda


Voc pode usar o Sample Viewer para copiar arquivos-fonte para obter um exemplo para o seu computador que possa ser aberto no Visual Studio posteriormente. Voc tambm pode ver exemplos de arquivos-fonte no-binrios diretamente na Ajuda. Observao Os exemplos so armazenados em arquivos .zip. necessrio ter um software instalado em seu computador para descompactar os arquivos. O Windows 2000 no inclui um utilitrio descompactador por padro, mas as verses posteriores do Windows o possuem.

Copiando arquivos de exemplo


Voc pode copiar arquivos de exemplo para o seu computador de forma que voc possa abrir e editar os exemplos no ambiente de desenvolvimento integrado (IDE).

Para copiar os arquivos-fonte de um exemplo para o seu computador


1. Na janela de documento, clique no boto Download Sample localizado na parte superior da janela lista Sample Files. 2. Descompacte o arquivo de exemplo. Observao Dependendo da verso do sistema operacional, os arquivos de exemplo podem ser descompactados automaticamente para voc; voc tambm pode ser solicitado para descompactar os arquivos usando um utilitrio. Em outros casos, talvez seja necessrio descompactar os arquivos manualmente Os arquivos so copiados para a localidade que voc especificou. Voc pode abrir o exemplo posteriormente, diretamente a partir da IDE ou da localidade que voc especificou.

Abrindo arquivos de exemplo no IDE


Depois que voc tiver copiado os arquivos de exemplo no seu computador ou compartilhamento de rede, voc pode abrir os arquivos no IDE.

Para abrir arquivos de exemplo no IDE


1. Inicie o Visual Studio. 2. No menu File, clique em Open Project. 3. Na caixa de dilogo Open Project, procure a localidade onde voc salvou os arquivos de exemplo e selecione *.SLN or *.* proj file para encontrar o exemplo.

Apostila Visual Studio 2005

31

4. Clique em Open. A soluo, o projeto, e os arquivos relacionados so exibidos no Solution Explorer. Agora voc pode editar e criar os arquivos de exemplo.

Abrindo arquivos-fonte no-binrios


Voc pode abrir arquivos-fonte no-binrios diretamente do Sample Viewer.

Para exibir um arquivo-fonte no-binrio


1. Na janela lista Sample Files, selecione o arquivo que voc deseja exibir. 2. Clique no boto Open localizado na parte superior da janela lista Sample Files. O contedo do arquivo exibido na janela do documento.

Filtros de Ajuda do Visual Studio


A documentao do Visual Studio inclui vrios filtros predefinidos que ajudam a definir os itens que aparecem nas janelas Contedo e ndice. Esses filtros no afetam a Busca. Voc pode alterar seu filtro atual na lista Filtered by drop-down encontrada nas janelas Index e Contents da Ajuda.

Filtros de Contedo e ndice


O Visual Studio inclui filtros predefinidos para uso nas janelas Contedo e ndice. Esses filtros no afetam a Busca.

Filtros de produto e tecnologia


Os filtros a seguir esto disponveis no MSDN Library para as janelas Contedo e ndice. ermo NET Framework escrio Inclui a documentao principal para o .NET Framework SDK e referncias de idioma mas exclui informaes especficas ao desenvolvimento no ambiente de desenvolvimento do Visual Studio. Inclui Documentao do Exchange Server, Biztalk Server, Commerce Server e do SQL Server, entre outros. Inclui a documentao principal para ferramentas do Visual Studio do Microsoft Office System mais o Visual Basic, Visual C# e os conjuntos de documentao .NET Framework SDK, entre outros. Inclui documentao sobre IIS, COM, DirectX, ADO, MSDE, DHTML, XML, Microsoft Management Console, OLE DB, da API do Win32, e uma variedade de outras tecnologias a nvel de sistema. Inclui a documentao principal para o subconjunto do .NET Framework SDK disponveis nos tpicos .NET Compact Framework e tpicos sobre Visual Studio, Visual Basic, ,Visual C#, Visual C++, ATL, e MFC relacionados ao Smart Device Development, entre outros.

Enterprise Severs Desenvolvimento Office

Platform SDK

Smart Device Development

Apostila Visual Studio 2005

32

Team Explorer Visual Basic

Inclui a documentao principal do Visual Studio Team System mais Microsoft Document Explorer Help. Projetado para desenvolvedores que codificam aplicativos Windows ou aplicativos Web com o Visual Basic. O ncleo do .NET Framework SDK, ASP.NET, Visual Web Developer e conjuntos de documentao Win32 e COM so includos, entre outros. No inclui tpicos no MSDN que se aplicam a verses anteriores do Visual Basic. Projetado para desenvolvedores que codificam aplicativos do Windows ou aplicativos Web em C#. Os conjuntos principais de documentao .NET Framework SDK, DHTML (Hypertext Markup Language, linguagem de marcao de hipertexto), ASP.NET, Visual Web Developer, e XML so includas, entre outros. Inclui a documentao principal do Visual C++ , a documentao do Platform SDK, e a documentao do .NET Framework, entre outros. No inclui material do C#. Projetado para desenvolvedores que codificam aplicativos do Windows ou aplicativos Web em J#. Os conjuntos principais de documentao do .NET Framework SDK, Visual Web Developer, ASP.NET e DHTML so includos, entre outros Inclui a documentao principal do Visual Studio Team System mais documentao geral do Visual Studio, a documentao principal do .NET Framework SDK, documentao selecionado sobre desenvolvimento da Web e documentao do SQL Server, entre outros. Inclui a principal documentao do Visual Web Developer mais os conjuntos ASP.NET, HTML, CSS, DHTML (Dynamic Hypertext Markup Language, linguagem de marcao de hipertexto dinmica), e a documentao .NET Framework, entre outros

Visual C#

Visual C++

Visual J#

Visual Studio Team System

Desenvolvimento Web (.NET)

Desenvolvimento de Inclui a documentao principal do Windows Forms, dados, formulrios Windows depurao e documentao para os compiladores do Visual Basic, Visual C#, Visual J#, e Visual C++, entre outros.

Filtro para edio Express


Os filtros a seguir esto disponveis para Contedo e ndice somente se voc tiver instalado o MSDN Express Library. ermo Visual Basic Express Visual C# Express escrio Inclui a documentao principal do Visual Basic alm da documentao do .NET Framework SDK. Inclui a documentao principal do Visual C# alm da documentao do .NET Framework SDK.

Apostila Visual Studio 2005

33

Visual Express J# Visual C++ Express Visual Web Developer Express

Inclui a documentao principal Visual J# alm da documentao do .NET Framework SDK. Inclui a documentao principal do Visual C++ alm da documentao do .NET Framework SDK. Inclui a documentao principal do Visual Web Developer e a documentao do ASP.NET.

Filtros de pesquisa de Comunidade


Os filtros listados abaixo so acessadas clicando no Menu Community e em seguida, clicando em Community Search. Esses filtros no afetam os filtros para as janelas Contedo e ndice . ltro Ajuda escrio Inclui How-Tos, Knowledge Base, e tpicos Contains Code. Observao Opes adicionais para linguagens e tecnologia podem ser selecionados com base nas configuraes que voc estiver usando. Inclui modelos de projeto e kits para Iniciantes. Observao Opes adicionais para linguagens e tecnologia podem ser selecionadas com base nas configuraes que voc estiver usando. Inclui apenas itens de modelos. Observao Opes adicionais para linguagens e tecnologia podem ser selecionadas com base nas configuraes voc estiver usando. Inclui apenas trechos de cdigo. Observao Opes adicionais para linguagens e tecnologia podem ser selecionadas com base nas configuraes que voc estiver usando. Inclui apenas exemplos. Observao Opes adicionais para linguagens e tecnologia podem ser selecionadas com base nas configuraes que voc estiver usando. Inclui somente controles. Observao Opes adicionais para linguagens e tecnologia podem ser selecionadas com base nas configuraes que voc estiver usando. Nenhum filtro aplicado.

Kits para Iniciantes

Itens de Modelos

Trechos de cdigo

Exemplos

Controles

Unfiltered

Ajuda, Ambiente, caixa de dilogo Options


Apostila Visual Studio 2005 34

Esta pgina da caixa de dilogo Options permite a voc escolher conjuntos de documentaes e se quer exibir tpicos internamente no ambiente de desenvolvimento integrado (IDE) ou externamente em uma janela separada. Para acessar esta caixa de dilogo, no menu Tools clique em Options. Na pasta Environment clique em Help. Se esta pgina no aparecer na lista, selecione Show all settings na caixa de dilogo Options. Informaes sobre como alterar o tamanho da fonte dos tpicos da Ajuda ou para alterar as cores usadas no visualizador da Ajuda podem ser encontradas na documentao do Microsoft Document Explorer. Observao As caixas de dilogo e comandos de menu que voc v podem diferir das descritas na Ajuda dependendo das configuraes ativas ou da edio do Visual Studio. Para alterar as configuraes, escolha Import e Export Settings no menu Tools. Para mais informaes, Configuraes do Visual Studio.

Configuraes
Observao As alteraes feitas nas opes desta pgina no tero efeito at que o ambiente seja reiniciado.

Show Help using - Especifica como a Ajuda ser exibida. Escolha External Help Viewer para exibir os tpicos em uma janela flutuante externa. Escolha Integrated Help Viewer para exibir os tpicos da Ajuda em uma janela do navegador da Web encaixada dentro da IDE. Search results per page - Especifica o nmero de tpicos que so exibidos em uma nica pgina de resultados de pesquisa. Show topic abstracts - Especifica se um resumo para cada tpico mostrado nos resultados de pesquisa. Reuse topic window - Quando selecionado, especifica que tpicos da Ajuda exibir na mesma janela para que voc possa navegar entre os tpicos usando os botes Back e Forward. Quando desmarcada, especifica que uma nova janela aberta para cada tpico. Highlight search terms - Especifica se as seqncias de pesquisa so realadas nos tpicos dos resultados de pesquisa para obter Ajuda local. Include partial matches in local search results - When selected, specifies that search results include topics that have any of the words in the search string. Search results do not need to include all of the words in the search string.
When unselected, specifies that search results include only topics that contain all of the words in the search string.

Online topic language - Especifica o idioma no qual pesquisar e exibir resultados de pesquisa apenas para fontes de Ajuda online.
Os idiomas disponveis dependem da fonte de Ajuda. Por exemplo, o MSDN online suporta vrios idiomas, mas alguns sites da Codezone Community podem no oferecer suporte para qualquer idioma diferente de ingls.

Also show English topics - Especifica que se os resultados da pesquisa contiverem informaes em ingls, estes resultados tambm sero exibidos. Apostila Visual Studio 2005 35

Online, Ajuda, Ambiente, caixa de dilogo Opes


Use essa pgina da caixa de dilogo Options para especificar que fontes de Ajuda voc pretende usar para pesquisas da Ajuda e F1. Voc pode acessar essa caixa de dilogo, selecionando Options a partir do menu Tools, selecionando Help a partir da pasta Environment, e, em seguida, escolhendo Online. Se essa pgina no aparecer na lista, selecione Show all settings na caixa de dilogo Options. Observao As caixas de dilogo e comandos de menu que voc v podem diferir das descritas na Ajuda dependendo das configuraes ativas ou edio. Para alterar as configuraes, escolha Import and Export Settings no menu Tools. Para mais informaes, Configuraes do Visual Studio.

Ao carregar o contedo da Ajuda


Essas opes se aplicam a pesquisa de texto completo e Ajuda F1.

Try online first, then local - Exibe contedo do MSDN Online, se disponvel. Se nenhuma Ajuda for encontrada no MSDN Online, o contedo da Ajuda instalada localmente exibido. Try local first, then online - Exibe contedo de fontes instaladas em seu computador. Se nenhuma Ajuda for encontrada localmente, o contedo do MSDN Online ser exibido. Try local only, not online - Exibe o contedo somente de fontes instaladas em seu computador. Se nenhuma Ajuda for encontrada, um tpico de erro aparece. Comunidade Codezone - Lista os sites possveis de Comunidades Codezone que podem ser includas em pesquisas da Ajuda. Provider details - Exibe uma descrio sucinta para cada provedor selecionado na lista Codezone Community. Pesquisar esses provedores
Essas opes afetam procuras de texto completo. Marcando ou desmarcando um provedor, voc est adicionando ou removendo o provedor da lista de resultados de pesquisa. A ordem na qual os provedores so listados em Search these providers determina a ordem na qual os resultados de pesquisa para o provedor so exibidos na pgina de pesquisa da Ajuda.

Ajuda local - Contedo da Ajuda instalado no seu computador local. MSDN Online - Contedo do MSDN Online na Web. Comunidade Codezone - Contedo de sites selecionados na opo Codezone Community. Perguntas - Contedo de grupos de discusso online, fruns, etc.

COMO: Copiar os Help Favorites para outro computador


Voc pode copiar os links do tpico de Ajuda e pesquisar os que esto listados na janela Help Favorites para um arquivo. Este arquivo pode, em seguida, ser

Apostila Visual Studio 2005

36

compartilhado para outro computador e importado pelo Visual Studio para uso nesse computador.

Para copiar os Help Favorites para um arquivo


1. No Visual Studio, no menu Tools, clique em Import and Export Settings. 2. Selecione Export selected environment settings e clique em Next. 3. No Which settings do you want to export, clique em All settings para desmarcar todas as caixas de seleo. 4. Expanda Help Filters and Favorites e selecione a Caixa de seleo Favorites. 5. Clique em Next. 6. Em What do you want to name your settings file, digite um nome de arquivo personalizado. 7. Em Store my settings file in this directory, especifique um compartilhamento de rede ou uma unidade compartilhada em um computador onde voc pretende importar as configuraes. 8. Clique em Finish e clique em Close.

Para importar Help Favorites


1. Copie o arquivo *.vssettings contendo os Help Favorites para o computador onde voc pretende utiliz-los, ou coloque o arquivo em um compartilhamento de rede acessvel a esse computador. 2. Inicie o Visual Studio. 3. No menu Tools, clique em Import and Export Settings. 4. Selecione Import selected environment settings e clique em Next. 5. Decida se deseja ou no salvar as configuraes atuais, e clique em Next. 6. Na pgina Choose a Collection of Settings to Import, clique em Browse e localize o arquivo *.vssettings que contm as informaes dos Help Favorites. 7. Clique em Next. 8. Clique em Finish.

IDE - Integrada Ambiente de desenvolvimento do Visual Studio


Visual Studio fornece as ferramentas necessrias para projetar, desenvoltar, depurar e implantar aplicativos da Web, XML Web Services, e aplicativos cliente tradicionais. Esta seo mostra como voc pode usar o Visual Studio para realizar cada uma destas etapas no processo de desenvolvimento.

Introduo ao solues, projetos, e itens


Fornece Visual Studio dois recipientes para ajud-lo com eficincia gerenciar os itens que so exigidos por seu esforo de desenvolvimento, como referncias, conexes de dados, pastas e arquivos. Esses recipientes so chamados solues e projetos. Alm disso, Visual Studio fornece Solution Folders para organizar projetos

Apostila Visual Studio 2005

37

relacionados em grupos e executar aes em esses grupos de projetos. Solution Explorer uma interface para exibir e gerenciar esses recipientes e seus itens associados, parte do o ambiente de desenvolvimento integrados (IDE).

Solues e projetos recipientes:


Solues e projetos contm itens que representam as referncias, conexes de dados, pastas, e arquivos que voc precisa para criar seu aplicativo. Uma soluo pode conter vrios projetos e um projeto normalmente contm vrios itens. Esses recipientes permitem voc para tirar proveito de o IDE no das seguintes maneiras: Gerenciar configuraes para a soluo como um todo ou para projetos individuais.

Use Solution Explorer para manipular os detalhes de gerenciamento de arquivos enquanto voc concentrar nos itens que tornam o seu esforo de desenvolvimento. Adicionar itens que so teis para vrios projetos na soluo ou para a soluo sem referncia o item em cada projeto.

Trabalhar em diversos arquivos que so independentes de solues ou projetos.

Conexes de dados arquivos, referncias, itens:


Itens podem ser arquivos e outras partes do seu projeto como referncias, conexes de dados, ou pastas. No Solution Explorer, itens podem ser organizadas das maneiras a seguir: Como itens que so itens que compe seu projeto, como formulrios, arquivos de origem, e classes dentro de um projeto no Solution Explorer Projeto. A organizao e exibio depende da o modelo de projeto voc selecionar bem como as modificaes feitas.

Como soluo itens para arquivos que so aplicveis a sua soluo como um todo na pasta Solution Items do Solution Explorer.

Como diversos arquivos para arquivos que no estejam associados um projeto ou uma soluo e que podem ser exibidos em uma pasta Miscellaneous Files. Para informaes mais detalhadas ou para aprender a ser usado Solution Explorer, os tpicos a seguir: Para obter mais informaes Solues e projetos Solues como Containers Projetos como Containers Gerenciar solues, projetos, e Arquivos HOW TO: criar pastas para solues Explorer soluo

Executar tarefas de gerenciamento de arquivo comuns Solues e estruturas de diretrio Explorer soluo no ambiente de desenvolvimento integrados (IDE)

Apostila Visual Studio 2005

38

Gerenciando mltiplos projetos em uma soluo Itens que so referenciadas por vrios projetos e includas em compilaes soluo Project-Independent

Solues multi-Project Itens soluo

Usurio Solution-related elementos da interface em o IDE Solues, interface de usurio elementos Trabalhar fora projetos e solues Desenvolvendo e gerenciando scripts Windows Scripting Arquivos variados Windows Script Host

Solues como contineres


O Visual Studio implementa contineres conceituais chamados solues e projetos para permitir ao ambiente de desenvolvimento integrado (IDE) aplicar sua grande variedade de ferramentas, designers, modelos, e configuraes. Alm disso, o Visual Studio fornece pastas da soluo para organizar projetos relacionados em grupos e executar aes nesses grupos de projetos. Um projeto inclui um conjunto de arquivos fonte, mais metadados relacionados como referncias de componente e instrues de construo. Os projetos geralmente produzem uma ou mais sadas de arquivos quando criados. Uma soluo inclui um ou mais projetos, mais arquivos e metadados que ajudam a definir a soluo como um todo:

O Visual Studio gera automaticamente uma soluo quando voc cria um novo projeto. Conforme necessrio, voc pode adicionar outros projetos soluo. O Solution Explorer fornece um modo de exibio grfico da soluo inteira que ajuda a gerenciar seus projetos e arquivos a medida que voc desenvolve seu aplicativo. Voc tambm pode criar solues em branco sem projetos, permitindo a voc usar editores e designers do Visual Studio para modificar arquivos autnomos. O Solution Explorer fornece pastas especificas para itens que no so do projeto

Solues
As solues gerenciam a maneira que o Visual Studio configura, cria e implanta conjuntos de projetos relacionados. Uma soluo do Visual Studio pode incluir apenas um projeto ou vrios projetos em conjunto construdos por uma equipe de desenvolvimento. Um aplicativo complexo pode exigir vrias solues.

Apostila Visual Studio 2005

39

Use configuraes de criao de soluo para especificar como criar e implantar verses do seu aplicativo para grupos de usurios especficos. Por exemplo, voc pode configurar compilaes de depurao para desenvolvedores e testadores, e criaes comerciais para parceiros e os usurios finais. Para obter mais informaes sobre criao e utilizao de configuraes de criao de solues, Caixa de dilogo Configuration Manager e Criando no Visual Studio.

Vantagens
As solues permitna voc se concentrar no desenvolvimento e implantao de seus projetos, em vez de se preocupar com todos os detalhes de gerenciamento de arquivos de projeto, componentes e objetos. Cada soluo do Visual Studio permite a voc:

Trabalhar em vrios projetos dentro da mesma instncia da IDE.

Trabalhar em itens usando as configuraes e opes que se aplicam a um conjunto inteiro de projetos. Usar o Solution Explorer para ajudar a desenvoltar e implantar seu aplicativo. Gerenciar arquivos adicionais abertos fora do contexto de uma soluo ou projeto.

Arquivos de definio
O Visual Studio armazena a definio de uma soluo em dois arquivos: .SLN e .suo. Em verses anteriores do Visual Studio, voc talvez tenha observado o grupo (.vbg) ou arquivos do espao de trabalho (.dsw) no Visual Basic e Visual C++, respectivamente. O arquivo de definio de soluo (.SLN) armazena os metadados que define sua soluo:

Projetos que esto associados soluo.

Itens disponveis no nvel da soluo que no estejam associados a um projeto especfico. Configuraes de criao da soluo que definem quais configuraes de projeto aplicar a cada tipo de criao. Os metadados armazenados no arquivo .suo a medida que voc constri uma soluo e define suas propriedades usado para personalizar a IDE sempre que a soluo est ativa. Por exemplo, o Solution Explorer exibe uma pasta de arquivos de vrios tipos (Miscellaneous Files) para uma soluo se voc ativar essa opo, e ferramentas apropriadas para os tipos de projetos includos na soluo ficam disponveis na caixa de ferramentas. Observao O arquivo .SLN pode ser compartilhado entre os desenvolvedores de uma equipe de desenvolvimento. O arquivo .suo um arquivo especfico de usurio, e no pode ser compartilhado entre os desenvolvedores.

Projects como contineres


Para ajudar voc a organizar e executar tarefas comuns nos itens que voc est desenvolvendo, os projetos do Visual Studio so usados como contineres dentro de uma soluo para gerenciar, criar e depurar os itens que compem o aplicativo

Apostila Visual Studio 2005

40

logicamente. A sada de um projeto geralmente um programa executvel (.exe), uma biblioteca de link dinmico (.dll) ou um mdulo, entre outros.

Um projeto pode ser to simples ou complexo quanto necessrio para atender s suas necessidades. Um projeto simples pode consistir de um formulrio ou documento HTML, arquivos de cdigo fonte e um arquivo de projeto. Projetos mais complexos podem consistir desses itens mais scripts de bancos de dados, procedimentos armazenados e referncias a XML Web Services existentes.

Modelos de projetos
Todos os produtos de desenvolvimento do Visual Studio fornecem um nmero de modelos de projetos predefinidos. Voc pode usar um dos muitos modelos de projetos para criar o continer de projeto bsico e um conjunto preliminar de itens que talvez sejam necessrios para desenvoltar seu aplicativo, classe, controle ou biblioteca. Por exemplo, se voc escolheu criar um aplicativo do Windows, o projeto oferece um item de formulrio do Windows para voc personalizar. Da mesma forma, se voc escolheu criar um aplicativo da Web, o projeto oferece um item de formulrio da Web. Para obter mais informaes sobre os tipos de projetos e modelos da sua linguagem, Caixa de dilogo New Project. Os projetos e seus modelos permitem que voc se concentre nas funcionalidades especficas que voc deseja implementar enquanto o projeto trata do gerenciamento comum e cria tarefas para voc. Para mais informaes, Itens de projeto. Voc pode trabalhar com as configuraes padres fornecidas ou voc pode personalizar suas configuraes de compilao. Para mais informaes, Configuraes de compilao. Alm disso, voc pode criar seus prprios modelos. Para mais informaes, Modelos do Visual Studio.

Arquivos de projeto
Cada modelo de projeto cria e mantm um arquivo de projeto para armazenar os metadados especficos para o projeto. Esse arquivo de projeto criado e mantido para voc enquanto voc trabalha dentro do ambiente de desenvolvimento integrado (IDE). A extenso para o arquivo de projeto e o contedo real determinado pelo tipo do projeto que ele define, ento, uma descrio completa no est dentro do escopo deste tpico. Em geral, o arquivo de projeto armazena a configurao e as configuraes de compilao que voc especifica para o projeto e seu conjunto de itens. Alguns projetos mantm uma lista dos arquivos associados ao projeto e a localidade do arquivo. Quando um item adicionado a um projeto, a localidade do seu arquivo fonte fsico no disco tambm adicionada ao arquivo de projeto. Quando o vnculo removido

Apostila Visual Studio 2005

41

do projeto, essa informao excluda do arquivo de definio. Cada modelo de projeto determina os comandos que esto disponveis para cada item. Para mais informaes, Gerenciamento de itens em projetos.

Itens de projeto
Itens de projeto podem ser arquivos, referncias a bibliotecas, conexes de dados e pastas que esto dentro do continer do projeto. Alguns itens representam um item fsico que voc pode alocar no armazenamento. Outros itens so links e representam ponteiros para outros itens que podem residir em um servio, mdulo, ou outro componente.

Entretanto, a maior parte do seu trabalho provavelmente est nos arquivos que voc usa para determinar as partes do seu aplicativo. A maneira como esses arquivos so gerenciados em um projeto determinada pelo prprio projeto. O Solution Explorer exibe o arquivo ou conjunto de arquivos necessrios para desenvoltar esse item. Para obter mais informaes sobre como projetos gerenciam itens, Gerenciamento de item em projetos. Para informaes sobre gerenciamento de item em um tipo especfico de projeto, a documentao para a linguagem ou tipo de projeto de seu interesse. Todos os produtos de desenvolvimento do Visual Studio fornecem um nmero de modelos de itens pr-definidos. Voc pode usar um dos muitos modelos para criar os itens que voc pode precisar para desenvoltar seu aplicativo, classe, controle, ou biblioteca. Por exemplo, se voc escolher criar um Windows form, o projeto oferece um item de Windows form para voc adicionar e personalizar. Da mesma forma, se voc escolher para criar um aplicativo da Web, o projeto oferece um item de Web form. Para obter mais informaes sobre tipos de projeto e modelos para a sua linguagem, Caixa de dilogo Add New Item.

ara obter mais informaes Arquivos autnomos que so excludos da compilao de solues e projetos. Todos os tipos de arquivo com suporte no Visual Studio .NET. Fornece uma descrio curta de cada tipo e links para descries detalhadas de novos ou importantes tipos de arquivo. Arquivos variados

Tipos de arquivo e extenses de arquivo no Visual Studio

Apostila Visual Studio 2005

42

Itens independentes de projeto que podem ser compartilhados por vrios projetos e includos nas compilaes de solues. Realizando tarefas de gerenciamento de arquivo.

Itens de soluo

Gerenciando solues, projetos, e arquivos Solues como continers Projetos como continers

Introduo ao conceito de soluo.

Viso geral conceitual de projetos.

Gerenciamento de item em projetos


Visual Studio oferece uma grande variedade de modelos de projeto para fornecer os itens necessrios para criar seu aplicativo. Esta variedade significa que os comandos e recursos disponveis no Solution Explorer varia dependendo do modelo de projeto que voc selecionar e como o projeto gerencia os itens. Embora voc possa controlar onde voc quer os arquivos salvos e armazenados, o modelo de projeto determina se a localidade significativa na compilao e gerenciando dos arquivos.

Duas associaes possveis com arquivos


Os itens no Solution Explorer geralmente representam um arquivo especfico e esse arquivo pode ser associado a um projeto em uma destas duas maneiras. Tanto o item representa um link para o arquivo ou representa o arquivo propriamente. Links so semelhantes mas no iguais a um atalho no Windows Explorer. Trabalhando em um nico projeto, voc poder observar as diferenas de comportamento entre itens que representam links e itens que representam o arquivo propriamente dito. Entretanto, ao executar tarefas entre projetos, a pasta Solution Items, e a pasta Miscellaneous Files, voc pode obter resultados inesperados. mais provvel que voc observe as diferenas ao trabalhar simultaneamente com projetos Visual C++ e Web. Para compreender melhor as diferenas, considere os cenrios que ilustram como os arquivos esto associados a um projeto.

Projects que Gerenciam Links


Alguns projetos no exigem que os arquivos residam na estrutura de diretrios do projeto e nem que o projeto gerencie somente links para o arquivo. Links servem como proxies para arquivos no disco fsico. Esses projetos no requerem o intervalo completo de tarefas de gerenciamento de arquivos.

Apostila Visual Studio 2005

43

Por exemplo, ao gerenciar somente o link para um arquivo voc pode remover o link, mas remov-lo no exclui o arquivo do armazenamento. Essas associaes permitem que voc crie e mantenha um nico arquivo que pode ser usado em vrios projetos. Itens tais como os dos projetos Visual C++ e a pasta Solution Items so links. Nos projetos que utilizam itens como links, voc pode armazenar os arquivos em qualquer lugar de um disco e ainda inclu-los em uma compilao. Voc pode adicionar itens que so links para arquivos em outros projetos. Vincular arquivos que foram criados fora de um projeto permite que voc compartilhe arquivos entre projetos para que voc possa capturar alteraes contnuas em um arquivo sem atualizar uma cpia sempre que as alteraes so feitas. Entretanto, voc pode vincular um arquivo que acidentalmente tenha sido excludo, como por exemplo, um arquivo pertencente a outro usurio. Se voc no desejar compartilhar o arquivo atravs de um link, voc pode criar um cpia dele e adicionar a cpia ao seu projeto. O item no projeto ainda pode ser um link, mas ele se vincula sua prpria verso do arquivo.

Projects que Gerenciam Arquivos


Alguns projetos, tais como projetos da Web, exigem que todos os seus arquivos residam dentro ou sob o mesmo diretrio fsico. Esta pasta chamada de diretrio do projeto e para cada item que aparece no projeto no Solution Explorer, existe um arquivo fsico no diretrio do projeto. Essa associao permite que tanto a estrutura de pastas como o arquivo de projeto identifiquem quais arquivos esto disponveis e gerenciados pelo projeto. Tal projeto tambm usa todos os itens na compilao.

Apostila Visual Studio 2005

44

Projects que Gerenciam ambos Arquivos e Links


Alguns projetos, como Visual Basic e Visual C#, gerenciam os arquivos usando uma combinao de ambas as associaes. Alguns itens que aparecem na pasta do projeto no Solution Explorer so como links para o arquivo. Outros itens so gerenciados como um arquivo prprio. Esses projetos geralmente indicam itens que so links com uma pequena seta no cone.

Quando voc est trabalhando em um projeto que permite os dois tipos de associaes, voc pode notar que arquivos para itens podem ser armazenados em qualquer lugar. O arquivo de projeto controla arquivos contidos no projeto, informaes de controle de origem, e outros metadados.

Itens e Comandos Comuns no Solution Explorer


Geralmente voc pode identificar como o projeto gerencia um item, com base no modelo do projeto. Por exemplo, os projetos em Visual C++ permitem que os arquivos residam em qualquer local. Portanto, os itens mostrados no projeto so sempre links para o arquivo; quando voc gerencia itens em um projeto Visual C++, voc est na realidade gerenciando os links. Quando voc est trabalhando

Apostila Visual Studio 2005

45

em um projeto Web, os projetos exigem que os arquivos residam no diretrio do projeto para que seus hiperlinks relativos sejam prontamente mantidos no servidor Web. Portanto, o projeto mantm o item como se ele fosse o prprio arquivo. Dica Os projetos em Visual C++, os itens de soluo e os arquivos diversos contm somente links. Os projetos Web em Visual C# e Visual Basic contm somente itens fsicos de projeto. Por exemplo, voc pode criar um arquivo qualquer, decidir adicion-lo a um projeto, e ento supor que voc est adicionando uma nova cpia do arquivo e no apenas um link. Se voc excluir o seu arquivo original e o item de projeto for realmente um link para o original, voc pode perder o seu trabalho.

Movendo e Copiando Itens


O projeto de destino sempre determina o resultado das operaes de arrastar ou recortar e colar no Solution Explorer. Para mais informaes, HOW TO: Mover Itens.

Salvando Itens de Project


Os efeitos do uso do comando Save As para itens de projeto dependem da associao do item com o projeto. Projetos que Gerenciam os Links O comando Save As cria um novo arquivo fora da hierarquia do projeto. O arquivo aparecer em Miscellaneous Files, se a opo Show Miscellaneous Files in Solution Explorer estiver ativada. mais informaes em Documents, Environment, Caixa de Dilogo Options. Projetos que Gerenciam Somente Arquivos O comando Save As substitui o arquivo atual. O arquivo antigo removido e um novo criando em seu lugar. Projetos que Gerenciam Arquivos e Links O comando Save As substitui o arquivo atual se a nova cpia estiver salva no mesmo diretrio. Caso contrrio, Save As substitui o arquivo atual como um link.

Removendo Itens de Project


A associao que o projeto mantm com seus itens determina os mtodos que voc pode utilizar para remover o item de um projeto em um determinado contexto. Remove Este comando est disponvel nos projetos que gerenciam os arquivos e links, assim como nos projetos que gerenciam somente links. Quando voc remove um arquivo do seu projeto, o arquivo desligado do projeto e desaparece do Solution Explorer. Arquivos excludos no so removidos permanentemente do depsito. Os projetos que gerenciam somente arquivos no aceitam o comando Remove. Delete Este comando est disponvel nos projetos que gerenciam os arquivos e links, assim como nos projetos que gerenciam somente arquivos. Itens excludos so removidos permanentemente do depsito de arquivos e desligados do projeto. Os projetos que gerenciam somente links no aceitam o comando Delete. Exclude

Apostila Visual Studio 2005

46

Este comando est disponvel nos projetos que gerenciam os arquivos e links, assim como nos projetos que gerenciam somente links. Com o comando Exclude, voc pode remover temporariamente um item do projeto compilado e depois inserlo novamente com Show All Files Observao Adicionar um arquivo a um diretrio de projeto no Windows Explorer, no o adiciona automaticamente para o projeto; o arquivo aparecer no Solution Explorer no modo de exibio Show All Files, mas no ser parte do projeto at voc selecionar Include in Project a partir do menu Project.

Referncias da Web
Para simplificar o desenvolvimento de aplicaes de cliente de XML Web Service, o Visual Studio oferece o conceito de referncias da Web. Referncias da Web diferem de referncias tradicionais e componentes; ao invs de referenciar um componente e / ou uma biblioteca de classes instalada no computador local, uma referncia da Web fornece acesso a um recurso que est disponvel utilizando um protocolo da Internet como o SOAP ou HTTP. Na prtica, uma referncia da Web uma classe proxy gerada que representa localmente a funcionalidade exposta de um XML Web service. A classe proxy define mtodos que representam os mtodos reais expostos por um XML Web Services. Quando seu aplicativo cria uma instncia da classe proxy, seu aplicativo poder chamar os mtodos do XML Web Services como se o XML Web Service fosse um componente localmente disponvel. Para obter instrues sobre como criar uma referncia da Web, COMO: Adicionar e Remover Referncias da Web. Observao Para tornar XML Web Services fora de um firewall disponveis para o navegador Web, voc deve especificar explicitamente o endereo e porta de servidor proxy da sua rede ao criar uma referncia da Web no Visual Studio. A linguagem de programao de uma classe proxy gerada ser a mesma linguagem de programao do servio da Web que a classe proxy representa. Se voc criar a classe proxy independentemente do Visual Studio (por exemplo, usando uma ferramenta do .NET Framework), a linguagem de programao depender da ferramenta que voc usar. Por exemplo, se voc usar WSDL.exe, voc especifica a linguagem de programao na linha de comando como C# ou Visual Basic. Se voc utilizar SProxy.exe, a linguagem de programao ser Visual C++. Para obter mais informaes, a Ferramenta de Descrio de Linguagens de Servios Web (WSDL.exe) e o SPROXY.EXE: Gerador de Proxy de Servios Web XML. Em tempo de design, a classe proxy permite que voc utilize concluso da instruo para os mtodos do XML Web Service. Em tempo de execuo, uma chamada para um mtodo do objeto proxy processada e codificada como uma mensagem de solicitao SOAP se houver suporte ao protocolo SOAP. Se o XML Web Service no der suporte para o SOAP, a classe proxy utiliza HTTP GET e POST. Em seguida, a mensagem enviada para o servio da Web destino para processamento. Se a descrio do servio define uma mensagem de resposta, o objeto proxy processa esta mensagem e retorna uma resposta para seu aplicativo.

Gerenciando referncias da Web

Apostila Visual Studio 2005

47

Voc pode renomear ou modificar referncias da Web de acordo com suas necessidades, ou atualiz-las se o servio da Web referenciado for alterado. Para obter detalhes, COMO: Renomear uma Referncia Web do Projeto e COMO: Atualizar uma Referncia da Web do Projeto.

Propriedade URLBehavior
Cada referncia da Web em seu projeto interage com uma classe proxy que usada para acessar os contedos do servio da Web. Voc pode utilizar a propriedade URL de referncia da Web para especificar a URL para o XML Web Service. Uma referncia da Web pode usar um URL esttico ou um URL dinmico. Quando voc cria uma referncia da Web no Visual Studio usando a caixa de dilogo Add Web Reference , esta propriedade definida por padro como o URL do XML Web Service que voc selecionou, que um URL esttico. Se voc deixar o comportamento do URL definido com o valor padro esttico, a classe proxy define a propriedade URL usando uma URL embutida em cdigo quando voc criar uma instncia da classe. Se voc definir o comportamento da URL da referncia da Web como sendo dinmico, o aplicativo obtm a URL em tempo de execuo a partir do elemento appSettings (Esquema de configuraes gerais) do arquivo de configurao do seu aplicativo. Para mais informaes, Localizando XML Web Services.

Passo-a-passo: Criando e usando um servio da Web ASP.NET no Visual Web Developer


Alm de permitir que voc crie pginas da Web, o Microsoft Visual Studio tambm deixa que voc crie servios da Web que usem ASP.NET XML. A criao de um servio da Web no Visual Studio semelhante a criar uma pgina da Web. Voc tambm pode usar a ferramenta de desenvolvimento Web do Microsoft Visual Web Developer para referenciar e usar servios da Web que esto em uma soluo do Visual Web Developer em seu computador local ou em um diretrio UDDI local ou externo. Nesta explicao passo a passo, voc ir criar o servio da Web em uma soluo e us-lo em outra. As tarefas ilustradas nesta explicao passo a passo incluem:

Criar um XML Web Service simples no Visual Web Developer. Criar um site em separado que usa o servio da Web. Pr-requisitos

Para concluir esta explicao passo a passo, ser necessrio: Servios de Informaes da Internet da Microsoft (IIS) instalado localmente em seu computador.

Criando um servio da Web na raiz do IIS Crie um novo servio e uma pgina da Web seguindo estas etapas. Observao Voc deve usar um site do IIS para esta explicao passo a passo.

Para criar um servio da Web


1. Abra o Visual Web Developer.

Apostila Visual Studio 2005

48

2. No menu File, clique em New Web Site. A caixa de dilogo New Web Site aparece. 3. Em Visual Studio installed templates, clique em ASP.NET Web Service. 4. Clique em Browse. 5. Clique em Local IIS. 6. Clique em Default Web Site. 7. Clique em Create New Web Application. O Visual Web Developer cria um novo aplicativo da Web do IIS. 8. Digite o nome TemperatureWebService. 9. Clique em Open. A caixa de dilogo New Web Site aparece com o nome do novo site no canto mais a direita da lista Location. A localidade inclui o protocolo (http://) e a localidade (localhost). Isso Indica que voc est trabalhando com um site local do IIS. 10.Na lista Language, clique na linguagem de programao com a qual voc prefere trabalhar. A linguagem de programao que voc escolher ser o padro para o site. Entretanto, voc pode usar mais de uma linguagem no mesmo aplicativo da Web, criando pginas e componentes em linguagens de programao diferentes. Para obter mais informaes sobre como criar componentes usando diferentes linguagens, Pastas de cdigo compartilhadas em sites do ASP.NET. 11.Clique em OK. O Visual Web Developer cria o novo servio da Web e abre uma nova classe chamada Service, que o servio da Web padro. Entretanto, no procedimento a seguir ser criado um novo servio da Web com um nome diferente e no voc usar a classe Service. 12.Feche a classe Service. Criando o servio da Web Voc criar um servio da Web que converte a temperatura de Fahrenheit para Celsius e vice-versa.

Para criar o servio da Web


1. No Solution Explorer, clique com o boto direito do mouse no nome do site (http://localhost/TemperatureWebService), e clique em Add New Item. 2. Em Visual Studio installed templates, clique em Web Service, e na caixa Name, digite Convert. 3. Certifique-se de que a caixa de seleo Place code in separate file est selecionada e clique em Add. O Visual Web Developer cria um novo servio da Web que composto de dois arquivos. O arquivo Convert.asmx o arquivo que pode ser chamado para chamar os mtodos do servio da Web e ele aponta para o cdigo do servio da Web. O cdigo propriamente dito est em um arquivo de classe (Convert.vb, Convert.cs, ou Convert.jsl, dependendo da linguagem de programao) na pasta App_Code. O arquivo de cdigo contm um modelo para um servio da Web. O arquivo de cdigo inclui um cdigo para um mtodo do servio da Web.

Apostila Visual Studio 2005

49

Voc criar dois mtodos no servio da Web. O primeiro mtodo converte temperaturas Fahrenheit para Celsius, e o segundo mtodo converte temperaturas Celsius para Fahrenheit.

Para criar os mtodos de converso


1. Adicione o seguinte cdigo dentro a classe, aps o mtodo HeleWorld: Visual Basic
<System.Web.Services.WebMethod()> _ Public Function FahrenheitToCelsius(ByVal Fahrenheit As Double) _ As Double Return ((Fahrenheit - 32) * 5) / 9 End Function <System.Web.Services.WebMethod()> _ Public Function CelsiusToFahrenheit(ByVal Celsius As Double) _ As Double Return ((Celsius * 9) / 5) + 32 End Function

C#
[System.Web.Services.WebMethod()] public double FahrenheitToCelsius(double Fahrenheit) { return ((Fahrenheit - 32) * 5) / 9; } [System.Web.Services.WebMethod()] public double CelsiusToFahrenheit(double Celsius) { return ((Celsius * 9) / 5) + 32; }

Observe que os nomes das funes so precedidos com um atributo ([System.Web.Services.WebMethod()] ou <System.Web.Services.WebMethod()>) como parte da declarao da funo 2. Depois que voc inseriu as funes, salve o arquivo. Agora voc pode testar o servio da Web no Visual Web Developer.

Para testar o servio da Web


1. No Solution Explorer, clique em Convert.asmx e pressione CTRL+F5. O servio da Web chamado e aparece uma pgina no navegador que mostra os mtodos que so expostos pelo servio da Web. 2. Clique em CelsiusToFahrenheit, que chama esse mtodo. Aparece uma pgina que solicita que voc entre os valores dos parmetros para o mtodo CelsiusToFahrenheit. 3. Na caixa Celsius, digite 100 e clique em Invoke. Uma nova janela aparece exibindo o XML que o servio da Web retorna quando o mtodo CelsiusToFahrenheit chamado. O valor 212 aparece no XML. 4. Feche o navegador que contm os resultados do mtodo.

Apostila Visual Studio 2005

50

5. No navegador original, clique em Back para retornar para a lista de mtodos. 6. Clique em FahrenheitToCelsius e teste para certificar-se de que o mtodo est retornando os resultados que voc espera. Se voc digitar 212, o mtodo FahrenheitToCelsius retornar 100. 7. Feche o navegador. Voc terminou de criar o servio da Web; a prxima etapa us-lo. Usando o servio da Web Agora que voc tem um servio da Web, voc ir criar um site onde voc ir referenciar e usar o servio da Web que voc criou. Para a explicao passo a passo, voc ir criar um site separado que tenha uma pgina onde voc inicia os mtodos do servio da Web recm-criado.

Para criar um site para usar o servio da Web


1. No menu File, clique em New Web Site. 2. Em Visual Studio installed templates, clique em ASP.NET Web Site. 3. Clique em Browse. 4. Clique em Local IIS. 5. Clique em Default Web Site. 6. Clique em Create New Web Application. O Visual Web Developer cria um novo aplicativo da Web do IIS. 7. Digite o nome TemperatureWeb. 8. Clique em Open. 9. Na lista Language, clique na linguagem de programao com a qual voc prefere para trabalhar. 10.Clique em OK. O Visual Web Developer cria um novo site local do IIS e uma nova pgina chamada Default.aspx. Adicionando o servio da Web como um componente O servio da Web um componente que voc pode referenciar no seu aplicativo. Portanto, voc deve criar uma referncia a ele.

Para criar uma referncia para o servio da Web


1. No Solution Explorer, clique com o boto direito do mouse no nome do site e clique em Add Web Reference. A caixa de dilogo Add Web Reference aparece, como mostrado no seguinte instantneo: Caixa de dilogo Add Web Reference

2. Na lista URL, digite a seguinte URL para o servio da Web e, em seguida, clique em Go: http://localhost/TemperatureWebService/Convert.asmx

Apostila Visual Studio 2005

51

Quando o Visual Web Developer encontra o servio da Web, as informaes sobre o servio da Web aparecem na caixa de dilogo Add Web References. Observao Se voc no puder adicionar uma referncia para um servio da Web, pode ser que o servidor proxy no esteja configurado corretamente. No Microsoft Internet Explorer, no menu Ferramentas, clique em Opes da Internet, clique em Conexes e clique em Configuraes de LAN. Selecione a caixa de seleo Ignorar servidor de proxy para endereos locais. Alm disso, defina o endereo do servidor proxy com o nome exato do servidor proxy em vez de permitir que o Internet Explorer detecte o servidor proxy. Para obter mais informaes, contate o administrador de rede. 3. Clique em um dos links dos mtodos. A pgina de teste para o mtodo aparece. 4. Clique em Add Reference. O Visual Web Developer cria uma pasta App_WebReferences e lhe adiciona uma pasta para a nova referncia da Web. Por padro, so atribudas s referncias da Web um namespace correspondente ao seu nome de servidor (neste caso, localhost). Anote o nome do namespace para a referncia da Web. Na pasta, o Visual Web Developer adiciona um arquivo .WSDL que referencia o servio da Web. Ele tambm adiciona arquivos de suporte, como arquivos de busca (.disco e .discomap), que incluem informaes sobre onde o servio da Web est localizado. Observao Se o nome do servidor para o servio da Web contiver caracteres que no podem ser usados para um nome de classe, como um hfen (-), o Visual Web Developer converte os caracteres em um caractere sublinhado (_). Portanto, o namespace no Visual Web Developer para o servio da Web pode no corresponder exatamente ao nome do servidor. Agora voc pode usar o servio da Web. Nesta explicao passo a passo, voc ir adicionar controles ao Default.aspx, e depois programar os controles para converter uma temperatura especificada em Fahrenheit e em Celsius. Quando a pgina estiver sendo executada, ela parecer com a seguinte ilustrao. Temperature conversion page

Para chamar os mtodos do servio da Web


1. Abra a pgina Default.aspx e alterne para o modo Design. 2. A partir do grupo Standard na caixa de ferramentas, arraste os seguintes controles para a pgina e definia suas propriedades conforme o indicado: ontroleropriedades extbox utton bel IDTemperatureTextbox Text: (vazio) IDConvertButton Text: Convert IDFahrenheitLabel

Apostila Visual Studio 2005

52

Text: (vazio) bel IDCelsiusLabel Text: (vazio)

3. Opcionalmente, adicione texto pgina nas legendas. O layout de pgina para esta explicao passo a passo no importante. 4. Clique duas vezes em ConvertButton para criar um manipulador de eventos para o evento Click. 5. Verifique se o cdigo do seu manipulador de eventos corresponde ao cdigo de exemplo a seguir: Visual Basic Copy Code
Dim wsConvert As New localhost.Convert() Dim temperature As Double temperature = System.Convert.ToDouble(TemperatureTextbox.Text) FahrenheitLabel.Text = "Fahrenheit To Celsius = " & _ wsConvert.FahrenheitToCelsius(temperature).ToString() CelsiusLabel.Text = "Celsius To Fahrenheit = " & _ wsConvert.CelsiusToFahrenheit(temperature).ToString()

C#

Copy Code

protected void ConvertButton_Click(object sender, EventArgs e) { localhost.Convert wsConvert = new localhost.Convert(); double temperature = System.Convert.ToDouble(TemperatureTextbox.Text); FahrenheitLabel.Text = "Fahrenheit To Celsius = " + wsConvert.FahrenheitToCelsius(temperature).ToString(); CelsiusLabel.Text = "Celsius To Fahrenheit = " + wsConvert.CelsiusToFahrenheit(temperature).ToString(); }

6. Pressione CTRL+F5 para executar a pgina. 7. Na caixa de texto, digite um valor, como 100, e clique em Convert. A pgina exibe o resultado da converso do valor da temperatura em Fahrenheit e em Celsius. Depurando o servio da Web Voc pode depurar um servio da Web da mesma maneira que voc depura pginas da Web. Observao O Visual Web Developer Express Edition e o Visual Studio Standard Edition no oferecem suporte passo a passo por dentro das chamadas em um servio da Web de uma pgina que o referencia. Se voc estiver usando o Visual Web Developer Express Edition ou o Visual Studio Standard Edition, ignore esta seo e as seguintes. Para obter mais informaes sobre como depurar sites da Web, Passo-apasso: Depurando pginas da Web no Visual Web Developer. Para iniciar, voc deve configurar o site que contm o servio da Web para ativar a depurao.

Apostila Visual Studio 2005

53

Para ativar a depurao no site de servios da Web


1. No menu File, clique em Open Web Site. 2. Clique em Local IIS. 3. Clique em TemperatureWebService e clique em Open. 4. No menu Website, clique em ASP.NET Configuration para abrir o Web Site Administration Tool. Observao Se esta for a primeira vez que voc tiver executado o Web Site Administration Tool, pode demorar um pouco antes de ele aparecer. 5. Clique em Application e clique em Application Configuration. 6. Em Debugging and Tracing, clique em Configure debugging and tracing. 7. Selecione a caixa de seleo Enable debugging. O Web Site Administration Tool cria um arquivo Web.config para o site e define uma opo de configurao para ativar a depurao. Observao Para consultar o arquivo Web.config no Solution Explorer, clique no nome do site e, na barra de ferramentas do Solution Explorer, clique em Refresh. 8. Feche o Web Site Administration Tool. Agora voc deve ativar a depurao para o site que usa o servio da Web.

Para ativar a depurao do site


1. Abra o site TemperatureWeb. 2. No menu Website, clique em ASP.NET Configuration para abrir o Web Site Administration Tool. 3. Clique em Application, clique em Application Configuration em Debugging and Tracing, clique em Configure debugging and tracing e selecione a caixa de seleo Enable debugging. 4. Feche o Web Site Administration Tool. Observao Para consultar o arquivo Web.config no Solution Explorer, selecione o nome do site e clique em Refresh na barra de ferramentas do Solution Explorer. 5. No Solution Explorer, clique com o boto direito do mouse em Default.aspx e clique em View Code. O Visual Web Developer abre o arquivo de cdigo para a pgina. 6. Posicione o ponteiro do mouse na seguinte linha: Visual Basic C# Copy Code
temperature = System.Convert.ToDouble(TemperatureTextbox.Text)

Copy Code

double temperature = System.Convert.ToDouble(TemperatureTextbox.Text);

Apostila Visual Studio 2005

54

7. Pressione F9 para definir um ponto de interrupo na linha. Testando a depurao O site e o servio da Web esto configurados para a depurao, para que voc agora possa comear a depurar. Voc ir iniciar na pgina Default.aspx e depurar o cdigo at que o cdigo chame o servio da Web. O depurador alternar para o servio da Web e continuar a depurao atravs do cdigo.

Para depurar a pgina e o servio da Web


1. Pressione F5 para executar a pgina Default.aspx usando depurao. A pgina aparece no navegador. 2. Na caixa, digite um valor, como 100, e clique em Convert. O Visual Web Developer comea a executar o cdigo da pgina, mas pra e reala a linha com o ponto de interrupo sobre ele. 3. Pressione F11 para ir para a prxima linha. 4. Pressione F11 novamente. Como a linha seguinte chama o servio da Web, o depurador vai para o servio da Web, parando na primeira linha do mtodo FahrenheitToCelsius. 5. Continue pressionando F11. O depurador avana atravs do restante do mtodo e retorna para a pgina que chamou o mtodo. Se voc continuar a depurao, o depurador ir de volta para o servio da Web e para o mtodo CelsiusToFahrenheit. 6. Feche o navegador, que tambm fecha o depurador. Prximas etapas Esta explicao passo a passo ilustrou os princpios bsicos de criao de um servio da Web muito simples e de us-lo em um aplicativo ASP.NET. Voc pode desejar experimentar servios da Web com recursos adicionais e mais complexos. Sugestes para exploraes adicionais incluem o seguinte: Compreender o processamento que ocorre quando voc faz uma chamada XML Web Service.

Para mais informaes, Anatomia do tempo de vida de um XML Web Service.

Entender como usar XML Web Services.

Para mais informaes, Cenrios do XML Web Service. Criar XML Web Services que oferecem funcionalidades mais sofisticadas do que o servio da Web simples desta explicao passo a passo. Voc pode criar e encadear chamadas de mtodos de servios da Web assncronas, usar transaes, proteger os servios da Web, configurar servios da Web para autenticao do Microsoft Windows, e assim por diante.

Para mais informaes, XML Web Services utilizando ASP.NET . Aprender sobre os recursos especficos da linguagem e da tecnologia fornecidos pelo XML Web Service.

Para obter mais informaes, XML Web Services no Visual FoxPro, Introduo programao de XML Web Services em cdigo gerenciado, Servios da Web (como fao no Visual Basic), XML Web Services criados com o servidor ATL e Explicaes passo a passo sobre a criao e o acesso a XML Web Services.

Apostila Visual Studio 2005

55

Explicao Passo a Passo: Criando Pginas Web para Dispositivos Mveis


O desenvolvimento para dispositivos mveis no ASP.NET no difere muito do desenvolvimento Web baseado em navegador do ASP.NET tradicional; entretanto, o ASP.NET oferece duas abordagens para solues mveis. Primeiro, o ASP.NET expe um namespace System.Web.Mobile dedicado especificamente para o desenvolvimento Web. Voc pode criar uma pgina Web a partir da classe base MobilePage e adicionar controles a partir do namespace System.Web.Mobile. Segundo, a arquitetura de desenho adaptativa de controle unificado da verso 2.0 do ASP.NET permite que adaptadores de dispositivo personalizados possam ser criados por controles de servidor ASP.NET regular, o que permite seu uso por dispositivos mveis. Usando a arquitetura de processamento adaptvel, voc pode usar pginas.aspx regulares que so herdadas da classe base Page e criam adaptadores de dispositivo personalizados para os controles de servidor ASP.NET que so especficos para os dispositivos que acessam o seu aplicativo. Em ambos os casos, o desenvolvimento mvel segue o modelo orientado a eventos do .NET Framework padro no qual o seu aplicativo responde s requisies de usurios, cliques de boto e assim por diante. Nesta explicao passo a passo, voc criar duas pginas Web herdadas da classe MobilePage e que so criadas para um dispositivo mvel. A primeira pgina ter um calculador de hipoteca que voc pode usar para determinar informao de emprstimo. A segunda pgina exibe informaes do banco de dados em um formato que seja de fcil paginao por um dispositivo pequeno. As tarefas ilustradas nesta explicao incluem: Criando uma pgina Web do ASP.NET que exibe a sada em um dispositivo como um telefone celular.

Adicionando paginao para que os usurios com dispositivos pequenos possam mover-se efetivamente atravs de listas longas. Testando pginas com um emulador de dispositivo. Pr-requisitos Para concluir esta explicao passo a passo, ser necessrio: Capacidade para executar a pgina em um dispositivo como um telefone. Como alternativa, voc pode escolher um entre uma srie de emuladores. Nesta explicao, assume-se que voc tem um emulador disponvel no mesmo computador como o seu servidor Web.

Para obter mais informaes sobre emuladores disponveis, a seo " Mobile " do site Web do ASP.NET. Observao Voc pode executar esta explicao passo a passo mesmo que voc tenha apenas um navegador na rea de trabalho. Entretanto, um emulador permitir, mais diretamente, que voc veja a funcionalidade dos controles utilizados. Acesso ao Internet Information Services (IIS) da Microsoft e permisso para criar um novo aplicativo no IIS. recomendvel que voc use uma cpia local do IIS para as pginas do aplicativo, o que o torna mais fcil para ser testado

Apostila Visual Studio 2005

56

com o seu emulador. Entretanto, se voc no conseguir criar um aplicativo usando o IIS, voc ainda poder usar um emulador com o servidor Web do Visual Web Developer da Microsoft. Para obter detalhes, a seo " Next Steps " no final desta explicao. Criando o Site Web Se voc j criou um site Web em Visual Web Developer (por exemplo, seguindo as etapas da Explicao Passo a Passo: Criando uma Pgina Web Bsica no Visual Web Developer), voc pode usar esse site Web e ir para a prxima seo, " Criando a Calculadora de Hipoteca". Caso contrrio, crie um novo site Web e uma nova pgina Web, seguindo estas etapas.

Como criar um novo site Web do IIS local sob a raiz do IIS
1. Abra o Visual Web Developer. 2. No menu File, escolha New, e depois escolha Web Site. A caixa de dilogo New Web Site aparece. 3. No Visual Studio installed templates, selecione ASP.NET Web Site. 4. Clique em Browse. A caixa de dilogo Choose Location aparece. 5. Clique no guia Local IIS. 6. Selecione Default Web Site. 7. Clique no boto Create New Web Application. Um novo aplicativo adicionado no Default Web Site. 8. Na caixa para o novo site Web, digite DeviceWalkthrough e em seguida, clique em Open. Voc retornada para a caixa de dilogo New Web Sitecom a caixa Location preenchida com http://localhost/DeviceWalkthrough. 9. Na lista Language, selecione a linguagem de programao que voc prefere para trabalhar. A linguagem de programao que voc escolheu ser o padro para seu site Web. Entretanto, voc pode usar vrios idiomas no mesmo aplicativo Web, criando pginas e componentes em diferentes linguagens de programao. 10.Clique em OK. O Visual Web Developer cria o novo site Web e abre uma nova pgina chamada Default.aspx. Criando a Calculadora de Hipoteca Para a explicao passo a passo, voc criar uma pgina herdada a partir da classe MobilePage e que contm uma calculadora de hipoteca simples. A calculadora solicita que o usurio digite uma quantidade de emprstimo, um termo de emprstimo em anos e a taxa de juros. A calculadora pode determinar o pagamento mensal para este emprstimo. Nesta explicao passo a passo, voc usar controles do namespace System.Web.Mobile que so projetados especificamente para dispositivos que no podem exibir tanta informao como um navegador comum. Em vez disso, os

Apostila Visual Studio 2005

57

controles apresentam informao em modos separados para que os usurios possam alternar entre eles. Para comear, voc excluir a pgina Default.aspx e criar uma pgina mvel em seu lugar.

Para adicionar uma pgina mvel


1. Clique com o boto direito do mouse a pgina Default.aspx no Solution Explorer e escolha Delete. 2. Clique em OK na caixa de dilogo. 3. Clique com o boto direito do mouse o aplicativo no Solution Explorer e escolha Add New Item. 4. Escolha Mobile Web Form no Visual Studio installed templates. 5. Nomeie a pgina Web mvel como MobileWebForm.aspx e depois clique em Add. Uma pgina Web herdada a partir da classe MobilePage criada e adicionada ao seu site Web. Basicamente, somente os controles no namespace System.Web.Mobile podem ser usados em uma pgina herdada a partir da classe MobilePage. Entretanto, os controles no namespace System.Web.UI.WebControls podem ser usados se eles forem colocados em um modelo. Agora que voc tem uma pgina mvel, voc adicionar controles que permitiro aos usurios inserir as informaes da hipoteca.

Para adicionar os controles para inserir informaes da hipoteca


1. Na pgina MobileWebForm.aspx que voc criou no ltimo procedimento, certifique-se de estar no modo Design. Voc ver um controle Form com o nome padro de form1. 2. Criar um ttulo na pgina com o texto Calculadora de Hipoteca. 3. Da pasta Mobile Web Forms do Toolbox, arraste os controles para form1 e defina suas propriedades como observado na tabela seguinte ontrole TextBox TextBox TextBox Command onfiguraes de propriedade = IDtextPrincipal = TextPrincipal = IDtextTerm = TextTerm = IDtextRate = TextRate = IDCalculate Text = Calculate

Aps voc ter criado o Form onde os usurios inserem suas informaes de emprstimo, voc criar outra Form que mostrar os resultados.

Para criar um formulrio para exibir os resultados do clculo da hipoteca.


1. Da pasta Mobile Web Forms do Toolbox, arraste um controle Form para a superfcie do design.

Apostila Visual Studio 2005

58

Ao controle Form associado o ID padro do Form2. 2. Da pasta Mobile Web Forms do Toolbox, arraste os controles para o Form2 e defina suas propriedades como observado na tabela seguinte. ontrole Label Label Command onfiguraes de propriedade = IDlabeleanDetails = TextLoan Details = IDlabelPayment = TextPayment = IDReturnToCalculator = TextReturn to Calculator

Agora voc pode criar o cdigo que calcular as informaes do emprstimo e exib-las.

Para calcular as informaes da hipoteca e exibir os resultados


Se estiver usando C#, adicione uma referncia ao namespace Microsoft.VisualBasic para que voc possa usar o mtodo Pmt para calcular as informaes de pagamento. Siga estas etapas: 1. No Solution Explorer, clique com o boto direito do mouse no nome do site Web e escolha Property Pages. 2. Clique em Add Reference. 3. No guia NET, selecione Microsoft.VisualBasic.dll e depoi clique em OK 4. Na caixa de dilogo Property Pages, clique em OK. 2. No controle form1, clique duas vezes o boto Calculate para criar um manipulador de evento Click, e em seguida, adicione o seguinte cdigo destacado. Visual Basic Copy Code
Protected Sub Calculate_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles Calculate.Click Dim principal As Long = CType(textPrincipal.Text, Long) Dim apr As Decimal = CType(textRate.Text, Decimal) Dim monthlyInterest As Decimal = apr / (12 * 100) Dim termInMonths As Double = CType(CInt((textTerm.Text)) * 12, _ Double) Dim monthlyPayment As Double monthlyPayment = (Microsoft.VisualBasic.Pmt(monthlyInterest, _ termInMonths, -principal, 0, DueDate.BegOfPeriod)) Me.ActiveForm = Me.Form2 labelLoanDetails.Text = principal.ToString("C0") & " @ " & apr & _ "% for " & textTerm.Text & " years" labelPayment.Text = monthlyPayment.ToString("C") End Sub

C#

Copy Code

protected void Calculate_Click(object sender, System.EventArgs e) {

Apostila Visual Studio 2005

59

Double principal = Convert.ToDouble(textPrincipal.Text); Double apr = Convert.ToDouble(textRate.Text); Double monthlyInterest = (Double)(apr / (12 * 100)); Double termInMonths = Convert.ToDouble(textTerm.Text) * 12; Double monthlyPayment; monthlyPayment = Microsoft.VisualBasic.Financial.Pmt( monthlyInterest, termInMonths, -principal, 0, Microsoft.VisualBasic.DueDate.BegOfPeriod); this.ActiveForm = this.Form2; labelLoanDetails.Text = principal.ToString("C0") + " @ " + apr.ToString() + "% for " + textTerm.Text + " years"; labelPayment.Text = monthlyPayment.ToString("C"); }

O cdigo rene os valores das caixas de texto, converte-os para tipos de dados apropriados, e, em seguida, utiliza-os como parmetros para a funo Pmt do Visual Basic para calcular o custo mensal da hipoteca. (Voc pode utilizar a funo do Visual Basic em qualquer linguagem se voc qualificar totalmente a funo de chamada com o namespace.) Aps calcular a quantidade mensal, o cdigo alterna para o segundo controle Form e exibe os resultados nos respectivos controles Label. 3. No controle Form2, clique duas vezes no controle Command para criar um manipulador de evento Click, e em seguida, adicione o seguinte cdigo destacado. Visual Basic Copy Code
Protected Sub ReturnToCalculator_Click(sender As Object, e As EventArgs) Handles ReturnToCalculator.Click Me.ActiveForm = Me.Form1 End Sub

C#

Copy Code

protected void ReturnToCalculator_Click(object sender, System.EventArgs e) { this.ActiveForm = this.Form1; }

Testando a Calculadora
Agora voc est pronto para testar a calculadora. Voc pode testar a calculadora em um navegador da rea de trabalho. Entretanto, um teste mais interessante usar o seu emulador de dispositivo.

Para testar a calculadora


1. Inicie o seu emulador ou navegador e conecte na URL http://localhost/DeviceWalkthrough/Default.aspx. 2. Quando a pgina aparecer no emulador, insira um montante de emprstimo de 100000, o nmero de anos como 30 e uma taxa percentual de 5, e depois clique em Calculate. A calculadora substituda pelo modo de exibio de resultados, com o resultado 534.59. Adicionando Paginao

Apostila Visual Studio 2005

60

Muitos dispositivos possuem reas de exibio pequenas, tornando-os impraticveis para exibir listas longas. O ASP.NET fornece um controle ObjectList criado para dispositivos mveis que pode automaticamente exibir uma tela inteira de informaes de uma vez e que fornecem links para que os usurios possam mover para frente e para trs na lista. Nessa seo da explicao, voc criar uma lista de dados que exibe mais informaes do que pode ser mostrado em uma tela qualquer, at mesmo de um navegador comum. Adicionando um controle ObjectList voc adicionar, automaticamente, a funcionalidade de paginao para a sada, dimensionada de acordo com o navegador que o usurio possui. A primeira coisa que voc precisa fazer criar uma pgina Web Form mvel e adicionar um controle ObjectList para ela.

Para adicionar uma pgina Web Form mvel e criar um controle ObjectList para ela
1. Clique com o boto direito do mouse o aplicativo no Solution Explorer e escolha Add New Item. 2. Escolha Mobile Web Form no Visual Studio installed templates. 3. Nomeie a pgina como Paging.aspx e depois clique em Add. Uma pgina Web herdada da classe MobilePage criada e adicionada ao seu projeto. A pgina inclui um controle Form chamado form1. Voc pode usar somente controles no namespace System.Web.Mobile em uma pgina herdada da classe MobilePage. 4. A partir da pasta Mobile Web Forms do Toolbox. arraste um controle ObjectList para a superfcie de design e coloque-o no form1. Um controle ObjectList adicionado a sua pgina. Ele mostra um conjunto de dados genricos que fornece a voc uma idia de como o controle parecer quando ele for processado no cliente. Depois que o controle ObjectList criado, voc precisa criar dados que preenchero o controle.

Para criar os dados


1. Na pgina Paging.aspx, alterne para modo Design e clique duas vezes a superfcie vazia de design para criar um manipulador de evento vazio para o evento Load. 2. No manipulador vazio, adicione o seguinte cdigo. Visual Basic
Private Handles Dim For

Copy Code

Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Form1.Load ListItems(25) As String i As Integer = 0 To 24 ListItems(i) = "This is item " & i & "."

Next Me.ObjectList1.DataSource = ListItems Me.ObjectList1.DataBind() End Sub

C#

Copy Code

protected void Page_Load(object sender, EventArgs e)

Apostila Visual Studio 2005

61

{ string[] ListItems = new string[25]; for(int i = 0; i < 25; i++) { ListItems[i] = "This is item " + i + "."; } this.ObjectList1.DataSource = ListItems; this.ObjectList1.DataBind(); }

O cdigo cria uma matriz de objetos string e a preenche com strings. Depois, esta matriz associada ao controle ObjectList. Agora voc pode testar a pgina.

Para testar a pgina


1. Pressione CTRL+F5 para executar a pgina. A pgina exibida com uma lista extensa de itens numerados. 2. Inicie o seu emulador de dispositivo e digite a URL (http://localhost/DeviceWalkthrough/paging.aspx). Observe que os dados so exibidos em uma lista longa.

Adicionando Paginao
Agora que voc tem uma pgina que exibe dados, voc pode adicionar paginao para que a exibio seja dimensionada automaticamente para o tamanho da tela no dispositivo.

Para adicionar paginao


1. Na pgina Paging.aspx, alterne para o modo Design e depois selecione form1. 2. Na janela Properties, defina a propriedade Paginate para true. 3. Selecione o controle ObjectListe, na janela Properties, defina a propriedade ItemsPerPage para 5. Agora voc pode testar a paginao.

Para testar a paginao


1. Pressione CTRL+F5 para executar a pgina no Internet Explorer. A pgina exibida com uma pgina de dados e um controle de navegao. 2. Use os links Previous e Next para se mover atravs dos dados. 3. No seu emulador de dispositivo, insira a URL da pgina. O emulador exibe uma pgina de dados (5 itens). Se necessrio, voc pode rolar a pgina para cima ou para baixo. 4. Use os links para se mover para outras pginas. Prximas Etapas Nesta explicao passo a passo, voc criou uma pgina que adequada para dispositivos tirando proveito dos controles projetados para dispositivos com reas de exibio limitadas. O ASP.NET e o Visual Web Developer incluem recursos para criar aplicativos para uma ampla variedade de dispositivos e navegadores.

Apostila Visual Studio 2005

62

Voc tambm pode querer explorar os seguintes aspectos dos dispositivos: Dependendo de qual emulador voc usa, voc pode ser capaz de integrar o emulador para o Visual Web Developer. No Solution Explorer, clique com o boto direito do mouse na pgina da calculadora de hipoteca e escolha Browse With. Clique em Add e digite a informao para o seu emulador adicion-la lista de navegadores. Depois voc pode usar o comando Browse With para exibir a pgina no emulador. Observe que nem todos os emuladores so suportados.

Passo a passo: Usando recursos para localizao com o ASP.NET


Uma maneira eficaz para criar pginas da Web localizadas usar recursos para a pgina de texto e controles com base no idioma e cultura do usurio. Usando propriedades colocadas em objetos de recurso, o ASP.NET pode selecionar a propriedade correta em tempo de execuo de acordo com o idioma e cultura do usurio. O processo simples:

Um arquivo de recursos (.resx) armazena valores.

Na sua pgina, voc indica que controles devem usar recursos para seus valores de propriedade. Em tempo de execuo, os valores das propriedades dos controles so derivados do arquivo de recursos. Observao Na prtica, voc pode armazenar valores em objetos de recursos personalizados, como um banco de dados. Entretanto, nesta explicao passo a passo voc usar um arquivo .resx para armazenar valores. O Visual Web Developer permite a voc gerar recursos para controles, propriedades de controle, e HTML para sem escrever nenhum cdigo. Tarefas ilustradas nesta explicao passo a passo incluem:

Ativao da localizao de pginas ASP.NET.

Gerao de um arquivo de recursos e associao implcita de seus valores com os controles em seu aplicativo. Criao de arquivos de recurso de localizao e referncia explcito em suas pginas usando expresses declarativas. Pr-requisitos Para concluir esta explicao passo a passo, sero necessrios:

Visual Web Developer (Visual Studio). .NET Framework. Criando um site da Web

Se voc j criou um site no Visual Web Developer (Passo a passo: Criando uma pgina da Web bsica no Visual Web Developer), voc pode usar esse site e v para a prxima seo, "Localizao implcita com o ASP.NET". Caso contrrio, crie um novo site e pgina da Web usando as etapas no procedimento a seguir.

Para criar um site do sistema de arquivos Apostila Visual Studio 2005 63

1. Abra o Visual Web Developer. 2. No menu File, clique em New Web Site. A caixa de dilogo New Web Site aparece. 3. Em Visual Studio installed templates, clique em ASP.NET Web Site. 4. Na caixa Location, insira o nome da pasta onde voc deseja manter as pginas do seu site. Por exemplo, digite o nome da pasta C:\WebSites. 5. Na lista Language, clique na linguagem de programao que voc preferir para trabalhar. 6. Clique em OK. O Visual Web Developer cria a pasta e uma nova pgina chamada Default.aspx. Localizao implcita com o ASP.NET , voc ir trabalhar com a localizao implcita. Na localizao implcita, voc especifica que propriedades de controle devem automaticamente ser lidas a partir de um arquivo de recursos, mas voc no precisa especificar quais propriedades so localizadas explicitamente. Em seguida, voc cria um arquivo de recursos com os valores localizados das propriedades especficas. Em tempo de execuo, o ASP.NET examina os controles da pgina. Se o controle estiver marcado para usar localizao implcita, o ASP.NET procurar atravs do arquivo de recursos para a pgina. Se encontrar as configuraes de propriedade para o controle marcado, o ASP.NET substitui os valores contidos no controle por aqueles contidos no arquivo de recursos. No exemplo de localizao implcita, voc usa uma combinao do designer e do editor de recursos para gerar um arquivo de recursos padro que voc usar como um ponto de partida para localizao em dois idiomas. O Visual Web Developer ir gerar um arquivo de recursos com base somente em controles na sua pgina. Por esse motivo, uma boa idia gerar o arquivo de recursos aps a concluso do layout de controle da sua pgina, incluindo controles como botes, rtulos e caixas de texto simples.

Para colocar controles em uma pgina


1. No Solution Explorer, clique com o boto direito do mouse em Default.aspx, clique Rename, e digite Sample.aspx. Isso ajudar a evitar confuso no restante da explicao passo a passo em relao a arquivos de recursos padro porque nomes de arquivo de recursos implcito usam nomes de pgina. 2. Abra o Sample.aspx, e alterne para o modo Design. 3. Na caixa de ferramentas, na seo Standard, arraste um controle Button, um Label, e um TextBox para a pgina. 4. Para cada controle, defina Text como English Button, English Label, e English TextBox, respectivamente. Aps criar a pgina e adicionar os controles, voc pode usar um comando do Visual Web Developer para gerar um arquivo de recursos local para essa pgina. O arquivo de recursos local conter as seqncias de recursos para os controles da pgina. O Visual Web Developer gera uma seqncia de recurso para cada propriedade que esteja designada internamente no controle como localizvel. Cada

Apostila Visual Studio 2005

64

controle pode ter diferentes propriedades designadas como localizveis, embora a maioria das propriedades texto estejam marcadas dessa forma.

Para gerar automaticamente um arquivo de recursos


1. Clique na superfcie do designer ou em um controle. 2. No menu Tools, clique em Generate Local Resource. O Visual Web Developer cria uma nova pasta chamada App_LocalResources, e dentro da pasta App_LocalResources, um novo arquivo chamado Sample.aspx.resx. Se voc nomeou a pgina diferentemente de Sample.aspx, o arquivo .resx ir refletir o nome escolhido. Ao usar localizao implcita, nomes de arquivo de recursos so baseados nos nomes de pgina individual. 3. Alterne para o modo fonte para ver as alteraes para as declaraes de controle. O Visual Web Developer adicionou um atributo para os controles para recuperar seus valores de seu arquivo de recursos recm criado. Por exemplo, a marcao do controle Button tem um novo atributo meta:resourcekey.
<asp:Button ID="Button1" Runat="Server" meta:resourcekey="ButtonResource1" Text="English Button" />

Quando um navegador envia uma solicitao ao servidor Web, a solicitao pode incluir informaes sobre o idioma atual e cultura. Por exemplo, um navegador pode enviar a seqncia "en-us" para indicar que foi definido usar ingls americano; outro navegador pode enviar a seqncia "en-gb" para indicar que foi definido usar ingls britnico. Observao Configuraes de idioma e cultura em uma solicitao do navegador no so uma maneira completamente confivel para detectar o idioma preferencial do usurio. As configuraes indicam somente como o navegador est definido ou que o herdou do sistema operacional. Para esta explicao passo a passo, voc ir contar com o idioma e configuraes de cultura, mas em um aplicativo de produo voc tambm deve incluir uma maneira para os usurios selecionarem um idioma e cultura manualmente. O arquivo de recursos usado como o arquivo de recursos padro para todas as solicitaes. (Ele o arquivo de recursos para a cultura de retorno.) Se nenhuma cultura for especificada pelo navegador, ou se a solicitao do navegador inclui um idioma ou cultura a qual no oferecido suporte, valores de recursos so recebidos a partir desse arquivo padro. Agora que o arquivo de recursos criado, voc pode colocar o texto localizado dentro dele usando o editor de recursos.

Para editar o arquivo de recurso, usando o editor de recursos


1. No Solution Explorer, abra o Sample.aspx.resx. No editor de recursos, sob Value, esto as propriedades Text para cada um dos controles que voc inseriu em sua pgina. Alterando o valor ir alterar o valor para a cultura padro. 2. Defina ButtonResource1.Text como Edited English Text. 3. Salve o arquivo. Agora voc pode testar a pgina.

Apostila Visual Studio 2005

65

Para testar a pgina

Pressione CTRL+F5 para executar a pgina.

O texto fornecido no editor de recursos mostrado como o rtulo para o Button1. Ao usar localizao implcita, a sintaxe de propriedades em arquivos de recurso substituiro propriedades especificadas na prpria pgina. Adicionando outras Culturas Cada combinao de linguagem e cultura requer um arquivo de recursos exclusivo. Para adicionar outras culturas, voc pode usar o arquivo padro como um ponto inicial. Voc pode criar arquivos de recursos para diferentes culturas e localidades criando novos arquivos de recurso nos quais os cdigos de idioma ISO fazem parte do nome de arquivo (por exemplo, en-en, fr-ca, e en-gb). Esses cdigos ISO so colocados entre o nome da pgina e a extenso de nome do arquivo .resx, como Sample.aspx.en-us.resx. Para especificar uma linguagem culturalmente neutra, voc deve eliminar o cdigo do pas, como Sample.aspx.fr.resx para o idioma francs. Observao Ao usar a sintaxe de localizao implcita, voc deve criar uma srie de arquivos de recurso separados para cada pgina.

Para criar um arquivo do idioma francs culturalmente neutro


1. No Solution Explorer, clique com o boto direito do mouse no arquivo Sample.aspx.resx e clique em Copy. 2. Clique com o boto direito do mouse na pasta App_LocalResources e clique em Paste. O Visual Web Developer criar um arquivo chamado Copy of Sample.aspx.resx. 3. Clique com o boto direito do mouse no arquivo Copy of Sample.aspx.resx, e clique em Rename e ento digite Sample.aspx.fr.resx. Sample.aspx.fr.resx indica um arquivo para texto do idioma francs culturalmente neutro. 4. Abra o Sample.aspx.fr.resx. 5. Para o controle do Button, do Label, e do TextBox, defina o Text para French Button, French Label, e French TextBox, respectivamente. 6. Salve o arquivo.

Testando uma configurao alternativa de idiomas


Antes de ver se esse novo arquivo de recursos utilizado pelo ASP.NET, voc deve alterar suas configuraes de navegador para solicitar a cultura desejada.

Para alterar as configuraes de idioma do seu navegador


1. No Microsoft Internet Explorer, no menu Tools, clique em Internet Options. 2. Clique em Languages. 3. Na caixa de dilogo Language Preference, clique em Add. 4. Na caixa de dilogo Add Language, em Languages, clique em French (France) [fr], e ento clique em OK. 5. Clique em Add e adicione Spanish (Mexico) [es-mx] a lista de idiomas.

Apostila Visual Studio 2005

66

6. Clique em Add e adicione Arabic (Egypt) [ar-eg] a lista de idiomas. Voc usar para teste posteriormente nesta explicao passo a passo espanhol e rabe. 7. Na caixa de dilogo Language Preference, em Language, clique em French (France) [fr], clique em Move Up, e em seguida, clique em OK. Agora o Internet Explorer est definido para passar fr como a configurao de idioma para qualquer solicitao. Com a cultura definida para auto na pgina Sample.aspx, o ASP.NET tentar localizar um arquivo de recursos e seus valores correspondentes para montar a pgina de acordo com seu idioma e preferncias de cultura.

Para testar a pgina

No Visual Web Developer, pressione CTRL+F5 para executar a pgina.

A pgina atualizada com valores do arquivo do idioma francs localizados em vez da verso em ingls. Observao Voc pode redefinir as configuraes de idioma no Internet Explorer retornando a caixa de dilogo Language Preference e movendo sua linguagem escolhida para cima na lista. Localizao explcita com o ASP.NET Na primeira parte desta explicao passo a passo, voc usou localizao implcita do ASP.NET para ter exibio de texto localizado em controles. Voc gerou um arquivo de recursos com valores de propriedade, e no processo, voc adicionou um atributo a cada controle que o instruiu a preencher seus valores de propriedade, se houvesse, a partir do arquivo de recurso. Localizao implcita funciona automaticamente, pois voc no precisa especificar propriedade por propriedade como ler informaes de um arquivo de recurso. Entretanto, s vezes voc deseja ter um controle mais direto sobre como propriedades so definidas. Para isso, em vez de usar a localizao implcita, voc pode usar a localizao explcita. Com a localizao explcita, voc define o valor de uma propriedade, utilizando uma expresso apontando para um arquivo de recursos. Quando a pgina executada, a expresso avaliada, o valor lido do arquivo de recursos especificado, e o valor usado para definir a propriedade. A localizao explcita til quando voc tem grande corpo de texto ou mensagens que voc deseja localizar, alm de controles e rtulos personalizados. Por exemplo, voc pode desenvoltar uma srie de boas-vindas e mensagens de obrigado localizadas para um site de comrcio eletrnico, e usar expresses declarativas explcitas para colocar esse texto em suas pginas. Alm disso, a localizao explcita permite a voc manter um nico conjunto de arquivos de recurso localizado em vez de manter um conjunto separado de arquivos para cada pgina. , voc criar arquivos de recursos manualmente e os referenciar usando sintaxe de expresso declarativa do ASP.NET. Voc criar um arquivo de recursos para uma mensagem de agradecimento simples. Diferentemente que usando o designer, um arquivo de recursos separado no necessrio para cada pgina ASP.NET. O nome base de seu arquivo de recursos poder ser LocalizedText. Para cada idioma que voc deseja localizar, voc criar outro arquivo com o cdigo do idioma apropriado (e opcionalmente o cdigo de cultura) como parte do nome do arquivo. Por exemplo, para ingls (e.u.a.) voc deve criar um arquivo denominado

Apostila Visual Studio 2005

67

LocalizedText.resx. Para o idioma francs no Canad, voc deve criar um arquivo denominado LocalizedText.fr-ca.resx. Ambos os arquivos devem ser colocados no diretrio de recursos do seu aplicativo da Web. Diferentemente do exemplo implcito anteriormente, voc no precisa manter um arquivo de recursos para cada pgina.aspx; em vez disso, voc pode manter uma nica srie de arquivos para cada linguagem ou cultura que oferecido suporte.

Para criar um arquivo de recursos


1. No Solution Explorer, clique com o boto direito do mouse na raiz de seu site, clique em Add ASP.NET Folder, e em seguida, clique em App_GlobalResources. 2. Clique com o boto direito do mouse na pasta App_GlobalResources, e em seguida, clique em Add New Item. 3. Em Visual Studio installed templates, clique em Resource File. 4. Na caixa Name, digite LocalizedText.resx e clique em Add. O arquivo LocalizedText.resx ir atuar como o recurso para a cultura de retorno. 5. Crie um segundo arquivo .resx e denomine-o LocalizedText.fr.resx. A seqncia "fr" identifica o arquivo como o recurso para usar se o idioma do navegador definido como francs (independentemente da cultura). 6. Crie um terceiro arquivo .resx e denomine-o LocalizedText.es-mx.resx. A seqncia "es-mx" identifica o arquivo como arquivo de recursos para usar se o idioma do navegador estiver definido para Espanhol (Mxico). 7. Abra o arquivo LocalizedText.resx. 8. Na primeira linha na coluna Name digite Msg1. 9. Na primeira linha abaixo da coluna Value, digite Hele. 10.Salve o arquivo e feche-o. 11.Abra o arquivo LocalizedText.fr.resx, crie uma seqncia de recurso chamada Msg1, atribua o valor Bon jour. Quando voc tiver terminado, salve e feche o arquivo. 12.Abra o arquivo LocalizedText.es-mx.resx, crie uma seqncia de recurso chamada Msg1, e atribua o valor Buenos das. Quando tiver terminado, salve e feche o arquivo. Observao Para inserir a letra com acento (), digite ALT+0237 no teclado numrico com Num Lock ligado. 13.Voc criou trs valores para o recurso chamado Msg1. O ASP.NET ler o valor do arquivo de recursos apropriado com base no idioma definido no navegador. Agora que seu arquivo de recursos est criado, voc pode retornar a pgina e adicionar controles que referenciaro o recurso.

Para adicionar um controle de rtulo a pgina


1. Alterne para o arquivo Sample.aspx, e alterne para modo Design. 2. Arraste um outro controle de Label para a pgina.

Apostila Visual Studio 2005

68

3. Clique com o boto direito do mouse no controle de Label, clique em Properties, e clique no boto reticncias () na caixa Expressions. A caixa de dilogo Expressions aparece. 4. Na lista Bindable Properties, clique em Text. 5. Na lista Expression Type, selecione Resources. 6. Em Expression Properties, defina ClassKey para LocalizedText e ResourceKey para Msg1. 7. Clique em OK. 8. Alterne para modo fonte. O atributo de texto do seu rtulo agora tem uma expresso explcita informando de qual arquivo base recuperar o recurso e a chave para selecionar.
<asp:Label ID="Label2" Runat="Server" Text="<%$ Resources:LocalizedText, Msg1 %>">

Observao O atributo LocalizedText no tem nenhum indicador de idioma, indicador de cultura, ou extenso .resx porque ele no o nome do arquivo real. Em vez disso, LocalizedText representa a classe de recurso base. O ASP.NET dependendo da cultura enviada pelo navegador, seleciona o recurso no arquivo com a linguagem apropriada ou cdigo de cultura em seu nome de arquivo, como LocalizedText.fr.resx, LocalizedText.es-mx.resx, ou se nenhum idioma correspondente for localizado, com o LocalizedText.resx. Com o arquivo de recursos concludo, e a expresso declarativa adicionada, voc pode testar a pgina. Aps o ltimo teste, o navegador foi definido para relatar francs como seu idioma de preferncia. Durante o teste, voc ir alterar o idioma do navegador vrias vezes.

Para testar a pgina


1. Pressione CTRL+F5 para executar a pgina. A verso em idioma francs do texto fornecido no editor de recursos mostrada como o texto para o controle do Label. 2. No Microsoft Internet Explorer, no menu Tools, clique em Internet Options. 3. Clique em Languages. 4. Na caixa de dilogo Language Preference, mova Spanish (Mexico) [esmx] para a parte superior da lista de idiomas. Quando voc tiver terminado, clique em OK e feche a caixa de dilogo Internet Options. 5. Pressione F5 para atualizar o navegador. A verso espanhol do texto exibida. 6. Altere o idioma para rabe e pressione F5 para atualizar a pgina novamente. Nesse momento, o texto exibido no idioma que voc usou no arquivo de recursos de retorno. Devido a voc no criar um arquivo LocalizedText.ar-eg.resx, o ASP.NET no foi capaz de localizar o texto que corresponde ao idioma e cultura relatado pelo navegador, ento foi usado o arquivo de recursos de retorno.

Apostila Visual Studio 2005

69

7. Quando voc tiver terminado de testar a pgina, defina o idioma de volta para seu idioma preferencial. Prximas etapas A localizao pode ser uma tarefa complexa. Esta explicao passo a passo ilustrou alguns dos recursos no Visual Web Developer que podem facilitar alguns trabalhos. Convm aprender mais sobre a localizao e o ASP.NET. Por exemplo, voc pode desejar: Aprender mais sobre utilizao de recursos em seus aplicativos. Para obter detalhes, Recursos em aplicativos. Usar classes que definem informaes relacionadas a cultura, incluindo o idioma, pas ou regio, calendrios em uso, padro de formato para datas, moeda, nmeros e ordem de classificao para seqncias de caracteres. Para obter detalhes, System.Globalization. Aprender mais sobre as prticas recomendadas para usar quando codificando para um pblico global. Para obter detalhes, Prticas recomendadas para desenvolvimento de aplicativos prontos para o mundo.

Construindo Sites Web Profissionais


Os tpicos incluem explicaes passo a passo que ilustram como usar diagnsticos de sistema com pginas Web do ASP.NET e mostram como distribuir um site Web para um servidor Web de produo.

Explicao Passo a Passo: Integrando Rastreamento ASP.NET com Rastreamento System.Diagnostics


Esta explicao passo a passo descreve como integrar as tcnicas de rastreamento do ASP.NET com as tcnicas de rastreamento do System.Diagnostics e gravar todas as mensagens de rastreamento em uma sada rastreamento nico. Voc pode usar o rastreamento para controlar o fluxo de execuo de seu aplicativo, para exibir dados em pontos crticos durante um ciclo de vida de um formulrio Web, e para descobrir como os formulrios Web interagem com vrios outros componentes de seu aplicativo. Usando o rastreamento, voc pode examinar os parmetros das solicitao HTTP que so enviadas para seu aplicativo, a quantidade de memria que est sendo utilizada no armazenamento do estado da exibio para um determinado formulrio Web, e outras informaes teis do perfil. O mecanismo de rastreamento no ASP.NET grava as mensagens que so exibidas nas pginas Web ASP.NET e no visualizador do rastreamento ASP.NET (Trace.axd), enquanto a classe Trace usada para gravar as mensagens de rastreamento na sada padro de rastreamento no .NET Framework (normalmente uma janela de console). Para tornar mais fcil o controle como os formulrios da Web interagem com objetos de negcio e outros componentes, voc pode integrar o rastreamento de sada do ASP.NET com rastreamento do System.Diagnostics para rotear mensagens de rastreamento para uma desses sadas. Cenrios que comumente usam ambos rastreamentos o ASP.NET e a classe Trace incluem formulrios Web que usam camadas intermedirias de objetos de negcios

Apostila Visual Studio 2005

70

para interagir com dados e regras de negcio, e formulrios que usam servios corporativos, como transaes e filas. Nessas situaes, componentes de negcio e corporativos so partes chave no sucesso da execuo da pgina e do monitoramento do fluxo de execuo das pginas em vrias camadas do seu aplicativo usando uma sada com rastreamento nico desejvel. Neste explicao passo a passo voc trabalhar com o rastreamento. Voc ir modificar uma pgina da Web e um objeto de negcios para escrever mensagens de rastreamento, e ento rotear todas as mensagens de sada de um rastreamento. Tarefas ilustradas nesta explicao passo a passo incluem o seguinte: Criando um componente de negcios personalizado que pode retornar dados em uma pgina da Web. O componente l dados de um arquivo XML.

Criar uma pgina da Web que faz referncia a objeto de negcios personalizado como uma fonte de dados. Ativar o rastreamento para a pgina da Web que referncia do objeto de negcios. Gravando mensagens de rastreamento para a pgina da Web que referncia do objeto de negcio. Gravando mensagens Trace em um objeto de negcios personalizado. Configurando um aplicativo ASP.NET para gravar todas as mensagens de rastreamento em uma nica sada. Sada do rastreamento de leitura. Pr-requisitos A fim de concluir este explicao passo a passo, necessrio o seguinte:

O Microsoft .NET Framework e um site da Web ASP.NET existente.

Observao Este explicao passo a passo no assume que voc est usando um designer, como a ferramenta de desenvolvimento Microsoft Visual Web Developer Web ou Microsoft Visual Studio. Criar uma pgina da Web e um objeto de negcios Nesta explicao passo a passo voc ir criar a pgina Web Default.aspx, um objeto de negcios AuthorClass, e o arquivo de dados XML Authors.xml que necessrio para etapas posteriores nesta explicao passo a passo que envolve rastreamento. Voc pode copiar e colar o cdigo fonte em arquivos em seu diretrio ASP.NET. Isso criar a pgina Web Default.aspx com o objeto de negcios , AuthorClass e arquivo Authors.xml.

Para criar a pgina Default.aspx


1. Abra um editor de texto, como o Bloco de notas, e crie um novo arquivo. 2. Insira o cdigo a seguir no arquivo. Visual Basic Copy Code
<%@ Page Language="VB" %> <html> <form runat="Server"> <asp:objectdatasource

Apostila Visual Studio 2005

71

id="AuthorsObjectDataSource" runat="Server" typename="PubsClasses.AuthorClass" selectmethod="GetAuthors"/> <asp:gridview id="GridView1" runat="Server" datasourceid="AuthorsObjectDataSource" /> </form> </html>

C#

Copy Code

<%@ Page Language="C#" %> <html> <form runat="Server"> <asp:objectdatasource id="AuthorsObjectDataSource" runat="Server" typename="PubsClasses.AuthorClass" selectmethod="GetAuthors"/> <asp:gridview id="GridView1" runat="Server" datasourceid="AuthorsObjectDataSource" /> </form> </html>

3. Salve o arquivo no diretrio raiz do aplicativo ASP.NET como Default.aspx. A pgina Default.aspx usa um objeto de negcios chamado AuthorClass para interagir com os dados XML.

Para criar o objeto de negcios AuthorClass


1. Abaixo do diretrio raiz do aplicativo, crie um Diretrio chamado App_Code. 2. Em um editor de texto, como o Bloco de notas, abra um novo arquivo. 3. Insira o cdigo a seguir para o arquivo. Visual Basic Copy Code
Imports Microsoft.VisualBasic Imports System Imports System.Web Imports System.Data Namespace PubsClasses Public Class AuthorClass Private dsAuthors As DataSet = _ New System.Data.DataSet("ds1") Private filePath As String = _ HttpContext.Current.Server.MapPath("~/App_Data/authors.xml") Public Sub New() dsAuthors.ReadXml(filePath, Data.XmlReadMode.ReadSchema)

Apostila Visual Studio 2005

72

End Sub Public Function GetAuthors() As DataSet Return dsAuthors End Function End Class End Namespace

C#

Copy Code

using System; using System.Web; using System.Data; namespace PubsClasses { public class AuthorClass { private DataSet dsAuthors = new DataSet("ds1"); private String filePath = HttpContext.Current.Server.MapPath("~/App_Data/authors.xml"); public AuthorClass() { dsAuthors.ReadXml (filePath, XmlReadMode.ReadSchema); } public DataSet GetAuthors () { return dsAuthors; } } }

4. No Diretrio App_Code, salve o arquivo como AuthorClass.cs (para C#) ou AuthorClass.vb (para Microsoft Visual Basic). O arquivo que usa AuthorClass Authors.xml dados.

Para ativar rastreamento e exibir mensagens do rastreamento ASP.NET


1. Abaixo do diretrio raiz do aplicativo, crie um Diretrio chamado App_Data. 2. Em um editor de texto, como o Bloco de notas, abra um novo arquivo. 3. Insira os seguintes dados XML para o arquivo. O arquivo XML inclui informaes do esquema que identifica a estrutura de banco de dados dos dados. Isso inclui uma restrio de chave primria para a chave. Observao Componentes de negcios podem trabalhar com dados de qualquer forma adequada para seu aplicativo. Este explicao passo a passo usa um arquivo XML para sua convenincia.
<?xml version="1.0" standalone="yes"?> <dsPubs xmlns="http://www.tempuri.org/dsPubs.xsd"> <xs:schema id="dsPubs" targetNamespace="http://www.tempuri.org/dsPubs.xsd" xmlns:mstns="http://www.tempuri.org/dsPubs.xsd"

Apostila Visual Studio 2005

73

xmlns="http://www.tempuri.org/dsPubs.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemasmicrosoft-com:xml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified"> <xs:element name="dsPubs" msdata:IsDataSet="true"> <xs:complexType> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="authors"> <xs:complexType> <xs:sequence> <xs:element name="au_id" type="xs:string" /> <xs:element name="au_lname" type="xs:string" /> <xs:element name="au_fname" type="xs:string" /> <xs:element name="au_phone" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> <xs:unique name="Constraint1" msdata:PrimaryKey="true"> <xs:selector xpath=".//mstns:authors" /> <xs:field xpath="mstns:au_id" /> </xs:unique> </xs:element> </xs:schema> <authors> <au_id>172-32-1176</au_id> <au_lname>White</au_lname> <au_fname>Gerry</au_fname> <au_phone>408 496-7223</au_phone> </authors> <authors> <au_id>213-46-8915</au_id> <au_lname>Green</au_lname> <au_fname>Marjorie</au_fname> <au_phone>415 986-7020</au_phone> </authors> </dsPubs>

4.

No Diretrio App_Data, salve o arquivo como Authors.xml, e feche-o.

Adicionando mensagens de rastreamento a uma pgina da Web e a objetos de negcios Quando voc criar a pgina Default.aspx, o arquivo de dados Authors.xml, e o objeto de negcios AuthorClass, voc pode iniciar o trabalho de rastreamento. Antes de adicionar as mensagens de rastreamento ao seu cdigo, ative o rastreamento para a pgina Default.aspx.

Para ativar rastreamento e exibir as mensagens de rastreamento ASP.NET


1. Em um editor de texto, como o Bloco de notas, abra a pgina Default.aspx. Adicione um atributo Trace para a diretiva @ PAGE, e defina Trace para true.

Apostila Visual Studio 2005

74

A declarao permite ao ASP.NET o rastreamento de pginas da Web. Para obter mais informaes, Como Habilitar Rastreamento para uma Pgina ASP.NET. O rastreamento de pginas est ativado e quando voc exibe a pgina em um navegador da Web, voc ver que o controle GridView seguido pelo rastreamento de sada. A segunda tabela de rastreamento exibida, Trace Information, mostra a voc informaes detalhadas sobre o caminho de execuo da pgina da Web. Para obter mais informaes sobre como ler a sada do rastreamento, o tpico Lendo Informaes de Rastreamento ASP.NET. Gravando mensagens de rastreamento Para melhor entender onde ocorrem algumas aes bsicas do ASP.NET, a medida os dados so vinculados ou so executados pelo controle GridView na pgina Default.aspx, adicione as mensagens de rastreamento pgina da Web e ao objeto de negcios AuthorClass.

Para gravar o rastreamento de mensagens de um formulrio da Web


Na pgina da Web Default.aspx, insira o cdigo a seguir aps a diretiva @ PAGE mas antes da marca <html> . Visual Basic Copy Code
<script runat="Server"> Private Sub Page_Load(sender As Object, e As EventArgs) Trace.WriteLine("ASP.NET TRACE","page_load called.") Trace.WriteLine("ASP.NET TRACE","page_load finished.") End Sub ' Page_Load </script>

C#

Copy Code

<script runat="Server"> private void page_load(object sender, EventArgs e) { Trace.WriteLine("ASP.NET TRACE","page_load called."); Trace.WriteLine("ASP.NET TRACE","page_load finished."); } </script>

Observao Talvez seja necessrio incluir um atributo de linguagem em sua diretiva @ PAGE, dependendo da linguagem que voc usar. O rastreamento de mensagens so gravados na sada do rastreamento ASP.NET, e quando voc visualizar a pgina Default.aspx novamente, voc ver as mensagens de rastreamento na seo Trace Information, entre "Begin Load" e "End Load". "Begin Load" e "End Load" esto associados o mtodo Page_Load. Agora, voc adicionar mensagens rastreamento para o objeto de negcios AuthorClass.

Para gravar o rastreamento de mensagens para o objeto de negcios AuthorClass


1. Insira o cdigo a seguir para o construtor AuthorClass.

Apostila Visual Studio 2005

75

Visual Basic

Copy Code

System.Diagnostics.Trace.Write("AuthorClass is created.", "AUTHORCLASS TRACE")

C#

Copy Code

System.Diagnostics.Trace.Write("AuthorClass is created.", "AUTHORCLASS TRACE");

2. Insira o cdigo a seguir para o mtodo AuthorClass.GetAuthors. Visual Basic C# Copy Code
System.Diagnostics.Trace.Write("GetAuthors called.","AUTHORCLASS TRACE")

Copy Code

System.Diagnostics.Trace.Write("GetAuthors called.","AUTHORCLASS TRACE");

Observao Quando voc usar mtodo System.Web.TraceContext.Write ASP.NET, a categoria do rastreamento vem na frente da mensagem de rastreamento na lista de parmetros para o mtodo. Entretanto, quando voc usa o mtodo de rastreamento Write do .NET Framework, a mensagem rastreamento vem na frente da categoria de rastreamento. Se o seu objeto de negcios tna opo de compilao TRACE, os rastreamentos das mensagens so gravados na sada de rastreamento do sistema. As mensagens de rastreamento no so gravadas na pgina Default.aspx, como so as mensagens de rastreamento ASP.NET. Para testar isso, exiba a pgina Default.aspx e verifique que somente as mesmas mensagens "ASP.NET TRACE" aparecem na tabela Trace Information que voc viu antes. Na prxima seo, voc aprender como configurar seu aplicativo ASP.NET a automaticamente compilar com a opo TRACE ativada e para rotear mensagens de rastreamento para a pgina da Web. Roteando todas as sadas de rastreamento para o formulrio da Web O roteando as mensagens do Trace que estejam contidas no objeto de negcios AuthorClass para a sada do rastreamento ASP.NET, podem mostrar a voc quando criada e manipulada a AuthorClass durante processamento e fornecer a voc uma exibio mais holstica do que seu aplicativo est fazendo. Para rotear as mensagens Trace para um pgina da Web do ASP.NET, voc deve adicionar um objeto WebPageTraceListener. Voc pode adicionar um ouvinte de rastreamento seja por configurao (recomendado) ou atravs de programao. Para obter mais informaes sobre como adicionar um ouvinte de rastreamento por configurao, <listeners> Element for <trace>. Para o prximo procedimento, ser necessrio um arquivo Web.config. Se voc j tiver um arquivo Web.config, ignore o prximo procedimento e v para o prximo, na qual voc ir adicionar um objeto WebPageTraceListener.

Para criar um arquivo Web.config


1. Abra um editor de texto, como o Bloco de notas, e crie um novo arquivo. 2. Digite o seguinte texto para o arquivo.
<!-- Web.Config Configuration File --> <configuration> <system.web>

Apostila Visual Studio 2005

76

<customErrors mode="Off"/> </system.web> </configuration>

3. Salve o arquivo no mesmo diretrio que o Default.aspx como Web.config. Em seguida, voc adicionar um objeto WebPageTraceListener para o seu aplicativo rotear as mensagens Trace para a sada do rastreamento do ASP.NET .

Para adicionar um WebPageTraceListener em seu aplicativo por configurao


1. Abra o arquivo Web.config em seu aplicativo. 2. Coloque o cdigo a seguir no seu arquivo Web.config aps a seo <system.web>.
<system.diagnostics> <trace> <listeners> <add name="WebPageTraceListener" type="System.Web.WebPageTraceListener, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> </listeners> </trace> </system.diagnostics>

Esta seo configurao adiciona um objeto WebPageTraceListener coleo de ouvintes de rastreamento para seu aplicativo. Adicionando o WebPageTraceListener usando o arquivo de configurao para seu aplicativo o mtodo recomendado de adicionar um ouvinte de rastreamento. Entretanto, voc tambm pode adicionar o ouvinte de rastreamento programaticamente, que especialmente til, se voc estiver usando lgicas de rastreamento complexas e tipos diferentes de ouvintes de rastreamento para rastrear seu aplicativo, e o WebPageTraceListener apenas um dos muitos. Se voc deseja adicionar um ouvinte de rastreamento em seu aplicativo programaticamente, crie um arquivo Global.asax e adicione o ouvinte seguindo estas etapas.

Para criar um arquivo Global.asax e adicionar um ouvinte de rastreamento programaticamente


1. Abra um editor de texto, como o Bloco de notas, e crie um novo arquivo. 2. Inserir aps cdigo no arquivo. Visual Basic Copy Code
<%@ Application Language="VB" %> <%@ Import Namespace="System.Web" %> <script runat="Server"> Sub Application_Start(sender As Object, e As EventArgs) ' Code that runs when the application is started. End Sub Sub Application_End(sender As Object, e As EventArgs) ' Code that runs when the application shuts down. End Sub

Apostila Visual Studio 2005

77

</script>

C#

Copy Code

<%@ Application Language="C#" %> <%@ Import Namespace="System.Web" %> <script runat="Server"> void Application_Start(Object sender, EventArgs e) { // Code that runs when the application is started. } void Application_End(Object sender, EventArgs e) { // Code that runs when the application shuts down. } </script>

3. No diretrio raiz de seu aplicativo, salve o arquivo como Global.asax. Isso cria um GLOBAL.asax bsico, que um mdulo compilado que contm cdigo que executado sempre que o aplicativo iniciado ou interrompido. 4. Insira o cdigo a seguir para o mtodo Application_Start de seu arquivo Global.asax. Visual Basic Copy Code
' Create a trace listener for Web forms. Dim gbTraceListener As New WebPageTraceListener() ' Add the event log trace listener to the collection. System.Diagnostics.Trace.Listeners.Add(gbTraceListener)

C#

Copy Code

// Create a trace listener for Web forms. WebPageTraceListener gbTraceListener = new WebPageTraceListener(); // Add the event log trace listener to the collection. System.Diagnostics.Trace.Listeners.Add(gbTraceListener);

Isso programaticamente adiciona um WebPageTraceListener coleo de ouvintes de rastreamento para o aplicativo 5. No mesmo Diretrio que o Default.aspx, salve o arquivo como Global.aspx. Com estas etapas, voc adicionou um WebPageTraceListener coleo de ouvintes de rastreamento para seu aplicativo. Embora o ASP.NET exiba mensagens de rastreamento sempre que o rastreamento esteja ativado para uma pgina, o System.Diagnostics rastreia as mensagens que apenas so gravadas quando o cdigo no qual as mensagens de rastreamento residem compilado, usando uma opo de compilao explcita - a opo TRACE. Em outras palavras, se voc no compilar o AuthorClass usando a opo TRACE, voc no ver explicitamente as mensagens de rastreamento, mesmo adicionando o WebPageTraceListener. Voc pode configurar seu aplicativo para compilar automaticamente usando a opo TRACE, adicionando uma nova seo ao seu arquivo Web.config.

Para compilar o aplicativo automaticamente com o rastreamento ativado


1. Abra o arquivo Web.config para seu aplicativo.

Apostila Visual Studio 2005

78

2. Coloque o cdigo a seguir em seu arquivo Web.config aps a seo <system.diagnostics>.


<system.codedom> <compilers> <compiler language="C#;cs;csharp" extension=".cs" compilerOptions="/d:TRACE" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="1" /> <compiler language="VB" extension=".vb" compilerOptions="/d:Trace=true" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> </compilers> </system.codedom>

Por padro, esta seo de configurao disponibiliza a compilao de seu aplicativo a todos os mdulos com a opo TRACE. Se voc exibir agora a pgina Default.aspx, voc ir ver ambos ASP.NET e o System.Diagnostics rastrearem as mensagens. Se as mensagens de rastreamento ASP.NET e aSystem.Diagnostics no aparecerem, talvez seja necessrio compilar novamente o objeto AuthorClass. A partir das informaes de rastreamento, voc pode ver que o objeto AuthorClass criado e seu mtodo GetAuthorsfoi chamado durante o mtodo PreRender do ciclo de vida pgina da Web. Voc tambm pode ver que no existe um retardo de tempo significativo quando o objeto AuthorClass criado; a diferena no tempo entre a mensagem " PreRender iniciar " e a mensagem " AuthorClass ser criada. " significativo. Isso ocorre porque o AuthorClass abre o arquivo Authors.xml e inicializa seu DataSet. durante a criao, que uma operao relativamente dispendiosa. Na prxima seo, voc aprender como configurar sua aplicao Web ASP.NET a rotear todas mensagens de rastreamento para o rastreamento de sada do .NET Framework . Roteando todas as sadas do rastreamento para rastreamento do .NET Framework Convm rotear o rastreamento mensagens ASP.NET para a sada padro das mensagens Trace, que pode ser uma janela do console, disco, o log de eventos do Windows, ou todas as outras sadas de mensagem de rastreamento. Voc pode ativar a mensagem de roteamento no arquivo de configurao Web.config.

Para rotear todas mensagens de rastreamento ASP.NET para o sistema de sada do rastreamento
1. Abra o arquivo Web.config em seu aplicativo. 2. Adicione um novo atributo, writeToDiagnosticsTrace, no elemento de rastreamento em <system.web>, e depois definidos writeToDiagnosticsTrace para true.
<system.web> <trace writeToDiagnosticsTrace="true"/>

Apostila Visual Studio 2005

79

<customErrors mode="Off"/> </system.web>

Este atributo de configurao instrui o rastreamento ASP.NET para o roteamento das mensagens de rastreamento ASP.NET para o sistema padro de rastreamento do mecanismo de sada. Para exibir o ASP.NET e o System.Diagnostics rastrear mensagens em um contexto fora de uma pgina ASP.NET, use um objeto TextWriterTraceListener para gravar as mensagens de rastreamento em um arquivo. O objeto TextWriterTraceListener deve ser configurado para gravar em um arquivo especfico. Voc pode fazer isso usando o atributo initializeData do <add> Element for <listeners> for <trace>. 3. Use as mesmas etapas que voc seguiu para adicionar o objeto WebPageTraceListener no segundo procedimento em " Roteando todo rastreamento para sada do formulrio da Web ", anteriormente nesta explicao passo a passo, para adicionar um objeto TextWriterTraceListener ao seu arquivo Web.config e configurar o TextWriterTraceListener para gravar em um arquivo no diretrio raiz do aplicativo chamado Asptesttrace.log Supondo que voc no adicionou um WebPageTraceListener: programaticamente no arquivo Global.asax, a seo <system.diagnostics> do arquivo Web.config ficar semelhante ao seguinte
<system.diagnostics> <trace autoflush="true"> <listeners> <add name="WebPageTraceListener" type="System.Web.WebPageTraceListener, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> <add name="TestTracer" type="System.Diagnostics.TextWriterTraceListener, System, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="<app root directory>\Asptesttrace.log" /> </listeners> </trace> </system.diagnostics>

Observao O atributo initializeData na etapa anterior tem um valor de espao reservado para o diretrio raiz do aplicativo ASP.NET. Se voc tentar gravar mensagens de rastreamento para um arquivo em outro diretrio na raiz de seu aplicativo, voc poder receber uma exceo de segurana. Por padro, o ASP.NET no permite gravar nos arquivos locais no disco que estejam fora do diretrio raiz do aplicativo, como C:\. Alm disso, voc pode ter que conceder permisso de gravao para o log do rastreamento para a conta do processo ASP.NET. Por padro, voc deve aguardar para preencher o buffer de rastreamento antes dos dados de rastreamento serem gravados no fluxo de destino. 4. Para ver os dados do rastreamento no log de rastreamento imediatamente aps a solicitao em sua pgina ASP.NET, libere o buffer com cada gravao do rastreamento, definindo o atributo autoflush para true como voc fez na etapa anterior. O valor padro para o atributo autoflush false.

Apostila Visual Studio 2005

80

Para liberar o buffer com as informaes de rastreamento programaticamente, chame o mtodo Flush. Observao Para o objeto de negcios que voc desenvolveu nesta explicao passo a passo, se voc chamar o mtodo Flush no mtodo Page_Load e o atributo autoflush for false, o log de rastreamento no ir mostrar os dados do rastreamento porque o objeto de negcios processado aps a ocorrncia do evento Load na pgina. Prximas etapas Esta explicao passo a passo ilustrada como trabalhar com ASP.NET e os recursos de rastreamento System.Diagnostics para rotear mensagens de rastreamento para uma sada simples. Convm experimentar mais ouvintes de rastreamento e sada e recursos de instrumentao no ASP.NET. Por exemplo, convm para fazer o seguinte: Adicionar um objeto EventLogTraceListener a seu aplicativo. Para fazer isso, voc deve adicionar um objeto EventLogTraceListener atravs de programao ou usando o arquivo de configurao que usa o mesmo procedimento para o WebPageTraceListener. Voc pode abrir o log de eventos para rever as mensagens de rastreamento que seu aplicativo grava no log de eventos. Alterar o componente de negcio para trabalhar com dados de banco de dados em vez de com um arquivo XML. No preciso ter que fazer qualquer alterao nos controles na pgina.

Passo-a-passo: Copiando um site usando a ferramenta Copy Web Site


Esta explicao passo a passo mostra como usar a ferramenta Copy Web Site para copiar arquivos entre o seu Web site corrente e outro Web site. Durante esta explicao passo a passo, voc aprender a fazer o seguinte:

Copiar arquivos entre sites.

Sincronizar dois sites para que eles tenham a mesma verso de cada arquivo. Observao Se voc copiar um aplicativo que contm uma referncia a um componente personalizado que registrado no GAC, o componente no ser copiado com o aplicativo. Para mais informaes, COMO: adicionar uma referncia a um componente .NET ou COM em um site. Pr-requisitos Para concluir esta explicao passo a passo, ser necessrio o seguinte:

Visual Web Developer O Framework .NET Criar o site Web compartilhado

Nesta explicao passo a passo voc trabalhar com dois sites compartilhado e locail como provvel em um ambiente de produo. Um cenrio tpico quando o

Apostila Visual Studio 2005

81

site compartilhado est em outro servidor, como um servidor de teste ou servidor de produo. Quando voc quer trabalhar no site, voc criar uma verso local do site e copia os arquivos a partir do servidor compartilhado para seu computador. Quando voc tiver terminado as atualizaes, voc copia os arquivos locais de volta para o servidor compartilhado. Esta explicao passo a passo tambm permitir que voc o que pode ser semelhante ao trabalho em um ambiente no qual h mais de um desenvolvedor. Se existissem outros desenvolvedores trabalhando no site, eles poderiam tambm fazer download de arquivos, edit-los localmente, e copiar os arquivos de volta para o servidor compartilhado. Portanto, no apenas voc deve copiar arquivos do site local para o site compartilhado, mas voc tambm pode precisar copiar verses atualizadas dos arquivos no site compartilhado para o site local. Esta explicao passo a passo emula este cenrio fazendo com que voc crie dois sites. Em vez de residir em computadores separados, os dois sites residem no computador local. Isto permite voc trabalhar com a ferramenta Copy Web Site omo voc faria em um ambiente de produo mas sem precisar usar um segundo computador. Todas as tarefas que voc executar neste trabalho explicao passo a passo exatamente quando o site compartilhado est em outro computador. Voc ir emular as edies feitas por outros desenvolvedores usando o Bloco de notas para alterar arquivos.

Para criar um site do sistema de arquivos


1. Abra o desenvolvedor Visual Web. 2. No menu File, clique New Web Site. A caixa de dilogo New Web Site aparece. 3. Em Visual Studio installed templates, clique em ASP.NET Web Site. 4. Na lista Location mais a esquerda, clique File System, e na lista Location mais a direita, digite C:\SharedWebSite Observao Procedimentos posteriores na explicao passo a passo presumem que voc est trabalhando com um site denominado SharedWebSite. 5. Na lista Language, clique na linguagem de programao que voc preferir para trabalhar. 6. Clique OK. Visual Web Developer cria a pasta e uma nova pgina chamado Default.aspx.

Criando pginas de teste


Para esta explicao passo a passo, voc ir criar algumas pginas simples com nomes conhecidos. Observao Para testar copiar pginas da Web, no importante que voc tenha pginas especficas. Entretanto, depois na explicao passo a passo voc ir editar as pginas que voc criar no prximo procedimento.

Para criar pginas de teste


1. No Solution Explorer, clique com o boto direito do mouse no nome do site, e clique Add New Item.

Apostila Visual Studio 2005

82

2. Em Visual Studio installed templates, clique em Web Form. 3. Na caixa Name, digite Services.aspx. 4. Na lista Language, clique na linguagem de programao que voc preferir para trabalhar. 5. Clique em Add. A nova pgina aparece no editor. 6. Alternar para o modo Design. 7. Na pgina, tipo Services, realce para selecionar o texto que acabou de inserir, e depois na barra de ferramentas de Formatao, clique em Heading 1 <H1>. 8. Posicione o ponteiro no final do texto. 9. Pressione ENTER para criar um novo pargrafo, e digite This page lists the services that we offer. 10.Salvar a pgina. 11.Repita as etapas 1 a 9 para criar uma pgina chamada Products.aspx com um ttulo de Products e o texto This page lists the products that we sell. 12.Abra a Default.aspx pgina e alterne para modo Design. 13.Na pgina, digite o ttulo Home e o texto Welcome to our Web site. Agora voc ir adicionar controles na home page (Default.aspx) para vincular as pginas que voc acabou de criar.

Para adicionar links na Home page


1. Abra a pgina Default.aspx e alterne para modo Design. 2. A partir do grupo Standard na caixa de ferramentas, arraste um controle Hyperlink para a pgina. 3. Defina o Text para Products e NavigateUrl para ~/Products.aspx. 4. Arraste um outro controle Hyperlink para a pgina, e defina Text para Services e NavigateUrl a ~/Services.aspx. 5. Salve os arquivos.

Teste o site da Web


Agora voc testar que o site funciona da forma esperada.

Para testar o site


1. Na Solution Explorer, clique com o boto direito do mouse Default.aspx, e clique View in Browser. A pgina aparece no navegador. 2. Clique em Products e Services para confirmar que os links funcionam. 3. Feche o navegador. Criando um site de origem Nesta parte da explicao passo a passo, voc ir criar um segundo site que voc pode usar para copiar arquivos dele e para ele. Conforme explicado em " Creating the Shared Web Site ", anteriormente nesta explicao passo a passo, ambos os sites esto no seu computador, mas o primeiro site funciona como o site

Apostila Visual Studio 2005

83

compartilhado. O site que voc ir criar nesta parte da explicao passo a passo funciona como o site que voc deve usar para editar arquivos.

Para criar o site de origem


1. No menu File, clique Close Project para fechar SharedWebSite. 2. No menu File, clique New Web Site. 3. Em Visual Studio installed templates, clique em ASP.NET Web Site. 4. Na lista Location mais a esquerda, clique File System, e ento na lista Location mais a direita, digite C:\LocalWebSite 5. Clique em OK. Copiando arquivos do site compartilhado para o site local Nesse ponto, um site compartilhado existe em seu computador e voc tem um novo site aberto. Se voc for um novo desenvolvedor em um projeto, primeiro deve obter todos os arquivos do site compartilhado e copiar os arquivos no seu site local.

Para copiar todos os arquivos do site compartilhado para o site local


1. No menu Website, clique em Copy Web Site. A ferramenta Copy <Websitename> aparece. 2. Clique em Connect. A caixa de dilogo Open Web Site aparece. 3. Clique em File System. 4. Na caixa Folder, digite C:\SharedWebSite. Se o site compartilhado estivesse em outro computador, voc digitaria a URL do servidor. 5. Clique em Open. Os arquivos a partir do site compartilhado so listados em Remote Web Site. Muitos dos arquivos tm smbolos ao lado que indicam o seu status. O smbolo da seta mostra a direo que um arquivo ser copiado, se voc sincronizar os sites. Atualmente, os arquivos Services.aspx e Products.aspx na lista Remote Web Site apontam para a lista Source Web Site, porque se voc sincronizar os sites, os arquivos Services.aspx e Products.aspx sero copiados do site compartilhado para o site local. Os arquivos Default.aspx possuem pontos de interrogao (?) ao lado. Isso indica que o arquivo tem o mesmo nome em sites, mas dados diferentes de carimbo de data / hora e nenhuma informao sobre a ltima vez que os arquivos foram copiados. 6. Em Remote Web site, realce para selecionar todos os arquivos e pastas. Nesse caso, voc deseja obter cpias de todos os arquivos do site compartilhado. Voc est emulando um cenrio em voc um novo desenvolvedor em um site existente e voc quer obter as verses mais atuais dos arquivos do site. Porque voc criou um novo site local, voc no tem que copiar os arquivos a partir do site local para o site compartilhado 7. Clique no boto da seta da esquerda para copiar os arquivos selecionados a partir do site compartilhado para o site local.

Apostila Visual Studio 2005

84

A boto da seta da esquerda no est com label a menos que voc mova o ponteiro sobre ela, e nesse caso, uma ferramenta de dica aparece. A seta est apontando para Source Web Site. Visual Web Developer inicia a copia de arquivos. Quando ele obtm o arquivo Default.aspx, ele solicita sua confirmao para sobrescrever a cpia local do arquivo com o arquivo do site compartilhado. 8. Na caixa de dilogo Confirm File Overwrite, selecione caixa de seleo Apply to all, e clique Yes. Nesse caso, seguro sobrescrever todas as verses locais de quaisquer arquivos que tenham nomes de arquivo duplicados, pois voc deseja as verses de arquivo do site compartilhado. Quando o processo de cpia concludo, as listas em Source Web Site e Remote Web Site so as mesmas. Observao A ferramenta Copy Web Site no mescla arquivos, ela apenas reescreve-os. Copiar pginas individuais Voc~e pode usar a ferramenta Copy Web Site para copiar todos os arquivos ou arquivos individuais. Nesta parte da explicao passo a passo, voc criar uma nova pgina Web no site de origem, e em seguida, copiar o novo arquivo na pgina da Web para o site compartilhado.

Para criar e copiar um arquivo individual


1. Na Solution Explorer, clique com o boto direito do mouse no nome do site, e clique Add New Item. 2. Em Visual Studio installed templates, clique em Web Form. 3. Na caixa Name, digite Extra.aspx. 4. Clique em Add. Voc no tem que adicionar qualquer contedo para a pgina. 5. Feche a pgina. A nova pgina exibida no Source Web Site com setas ao lado apontando para Remote Web Site. Se voc a sincronizar agora, os arquivos sero copiados do site local para o site compartilhado. 6. Na guia Copy Web, realce para selecionar a nova pgina ou pginas. 7. Clique o boto de seta direita/esquerda para copiar os arquivos selecionados do site local para o site compartilhado. Este boto no tem label a menos que voc mova o ponteiro sobre ele, nesse caso, uma ferramenta de dica aparece. A nova pgina ser copiada para o site compartilhado e a lista em Remote Web Site atualizada. Sincronizando sites da Web Sincronizar significa copiar a verso mais atual de cada arquivo para que dois sites tenham as mesmas cpias de todos os arquivos. Use a sincronizao, se os arquivos no site compartilhado podem ser atualizados por algum que no seja voc. Nesta parte da explicao passo a passo, voc ir primeiro alterar sites locais e compartilhados, e depois voc sincronizar as alteraes entre os sites.

Apostila Visual Studio 2005

85

Para alterar os sites locais e compartilhado


1. Na guia Copy <Websitename>, em Source Web site, clique em Extra.aspx e clique no boto Excluir. 2. Quando solicitado para confirmao para excluir o arquivo, clique em Yes. Os arquivos para a pgina excluda aparecem na Source Web Site com um smbolo ao lado deles, que indica que os arquivos foram excludos. Observao Certifique-se de que a caixa de seleo Show deleted files since the last copy operation est marcada. 3. No Windows, inicie o Bloco de notas, e depois abra C:\SharedWebSite\Products.aspx. 4. Adicione espaos extras ou outros caracteres para o arquivo, salve o arquivo, e feche o Bloco de notas. Voc est alterando o arquivo para emular o que ocorreria se outro desenvolvedor alterasse o arquivo no site compartilhado. 5. No Visual Web Developer, na guia Copy <Websitename> , clique em Refresh Remote Web Site. Uma seta aparece ao lado do arquivo Products.aspx apontando para Source Web Site. 6. Em Remote Web Site, realce para selecionar todos os arquivos e pastas, e clique no boto sincronizao para sincronizar o arquivo selecionado entre os mesmos caminhos relativos no LocalWebSite tanto e SharedWebSite. Este boto no tem rtulo a menos que voc mova o ponteiro sobre ele. O boto tem uma seta direita e esquerda, para indicar ambos os painis. 7. Quando solicitado para excluir o arquivo Extra.aspx no site remoto que, em efeito, est propagando a excluso para o site remoto, clique em Yes. A pgina Products.aspx copiada do site remoto para o site de origem. Observao Se voc selecionou todos os arquivos e pastas em Source Web Site e sincronizou os arquivos e pastas, os resultados seriam iguais. Prximas etapas Esta explicao passo a passo ilustrou as tarefas bsicas que voc pode fazer com a ferramenta Copy Web Site. Embora os sites que voc trabalhou continham apenas alguns arquivos, voc pode aplicar as tcnicas que so usadas nesta explicao passo a passo para sites de qualquer tamanho. Talvez voc deseje experimentar maneiras adicionais de copiar arquivos para computadores remotos. Por exemplo, convm fazer o seguinte: Trabalhar com um site FTP Web, que permite voc abrir e editar arquivos diretamente em um servidor que est configurado para permitir conexes FTP.

Para obter informaes detalhadas, Passo-a-passo: edio de sites com FTP em Visual Web Developer. Aprenda como Publicar sites da Web, que precompila o contedo do site. Em seguida, voc pode implantar a sada para o servidor de produo.

Apostila Visual Studio 2005

86

Para obter informaes detalhadas, Passo-a-passo: Publicando um site.

Passo-a-passo: Publicando um site


Fornece instrues passo a passo sobre como usar o utilitrio Publish Web Site da ferramenta de desenvolvimento Web, Microsoft Visual Web Developer, para compilao de um site, e seguida, copiar a sada para um site ativo. Se desejar implantar um site concludo em um servidor, pode usar o utilitrio Publish Web Site que est includo com a ferramenta de desenvolvimento Web, Microsoft Visual Web Developer. O utilitrio Publish Web Site pr-compila as pginas e os cdigos que esto no site e grava o resultado do compilador em uma pasta que voc especificar. Voc pode ento copiar a sada para o servidor de Web destino e executar o aplicativo a partir da. Observao O utilitrio Publish Web Site no est disponvel na edio Express Visual Web Developer. Tarefas ilustradas nesta explicao passo a passo incluem o seguinte:

Usando o utilitrio Publish Web Site para criar sada pr-compilada. Pr-requisitos

Para concluir esta explicao passo a passo, ser necessrio o seguinte:

O Visual Web Developer.

A edio Express Visual Web Developer no d suporte para o utilitrio Publish Web Site. Acessar aos Servios de Informaes da Internet da Microsoft (IIS) para que voc possa testar o resultado de publicar um site.

Nesta explicao passo a passo, presume-se que voc tenha o IIS em execuo no seu prprio computador. Como alternativa, voc pode usar qualquer instncia do IIS na qual voc tenha permisso para criar um diretrio virtual. Criando o site da Web Se voc j criou um site no Visual Web Developer completando o Passo-a-passo: Criando uma pgina da Web bsica em Visual Web Developer, voc pode usar esse site e ir para a prxima seo. Caso contrrio, crie um novo site e pgina seguindo estas etapas. Para esta explicao passo a passo, voc ir criar um site do sistema de arquivos.

Para criar um site do sistema de arquivos


1. Abra Visual Web Developer. 2. No menu File, clique em New Web Site. A caixa de dilogo New Web Site aparece. 3. Em Visual Studio installed templates, clique em ASP.NET Web Site. 4. Na lista Location mais a esquerda, clique em File System 5. Na lista Location no canto mais a direita, digite o nome da pasta onde voc deseja manter as pginas do site

Apostila Visual Studio 2005

87

Por exemplo, digite o nome da pasta C:\WebSites. 6. Na lista Language, clique na linguagem de programao que voc preferir trabalhar. 7. Clique em OK. O Visual Web Developer cria a pasta e uma nova pgina chamada Default.aspx. Criando uma pgina e classe de teste Para esta explicao passo a passo, voc criar uma pgina da Web com alguns controles. Voc tambm criar um arquivo de classe que voc usar na pgina da Web. Criar uma pgina da Web e tambm uma classe separada permitir que voc veja como o processo de publicao pr-compila o contedo do site. Voc comear criando uma nova pgina, e seguida, adicionando um boto e rtulo para a pgina.

Para criar a pgina e adicionar controles


1. No Solution Explorer, clique com o boto direito do mouse no nome do site e clique em Add New Item. 2. Em Visual Studio installed templates, clique em Web Form. 3. Na caixa Name, digite SamplePage.aspx. 4. Na lista Language, clique na linguagem de programao que voc preferir trabalhar. 5. Clique em Add. 6. Alterne para modo Design. 7. A partir do grupo Standard, em Tollbox, arraste um controle Label para a pgina. 8. A partir do grupo Standard, em Toolbox, arraste um controle Button para a pgina e posicione-o ao lado do controle Label. Em seguida, voc criar o cdigo fonte para uma classe simples que tenha uma nica propriedade nela. Voc usar a classe no cdigo para sua pgina.

Para criar uma classe


1. Em Solution Explorer, clique com o boto direito do mouse no nome do site, aponte para Add ASP.NET Folder, e clique App_Code. Uma nova pasta denominada App_Code aparece no seu aplicativo no Solution Explorer. A pasta App_Code uma pasta especial reservada do aplicativo ASP.NET. Para mais informaes, Layout de Site da Web ASP.NET. 2. Clique com o boto direito do mouse na posta App_Code pasta e clique Add New Item. 3. Em Visual Studio installed templates, clique em Class. 4. Na caixa Name, digite TestClass. 5. Na lista Language, clique na linguagem de programao que voc preferir trabalhar. Observao A linguagem de programao que voc selecionar no precisa ser a mesma que a linguagem de programao que voc usar na pgina.aspx.

Apostila Visual Studio 2005

88

6. Clique em Add. O Visual Web Developer cria um arquivo de classe de esqueleto na linguagem de programao que voc especificou. Observe que a extenso do nome do arquivo da classe corresponde a linguagem que voc selecionou. Por exemplo, se voc estiver criando uma classe no Microsoft Visual Basic, o extenso do nome do arquivo .vb.. 7. Crie uma propriedade chamada TestProperty. Quando voc tiver terminado, o arquivo da classe completa ter o aspecto semelhante ao seguinte: Visual Basic Copy Code
Imports Microsoft.VisualBasic Public Class TestClass Private TestPropertyValue As String Public Property TestProperty() As String Get Return TestPropertyValue End Get Set(ByVal value As String) TestPropertyValue = value End Set End Property End Class

C#

Copy Code

using System; public class TestClass { public TestClass() { } private string TestPropertyValue; public string TestProperty { get{ return TestPropertyValue; } set{ TestPropertyValue = value; } } }

Agora, voc pode usar a classe na pgina. Observe que voc no tem que compilar o arquivo da classe antes de us-lo.

Para usar a classe no cdigo da pgina


1. Abra SamplePage.aspx and switch to Design view. 2. Clique duas vezes no controle Button para criar um manipulador Click para ele. 3. No manipulador Click, crie uma instncia da TestClass que voc criou no procedimento anterior, atribua um valor para a propriedade TestProperty, e em seguida, exiba o valor da TestProperty no controle Label. O cdigo completo ter o aspecto semelhante a este: Visual Basic Copy Code
Protected Sub Button1_Click(ByVal sender As Object, _

Apostila Visual Studio 2005

89

ByVal e As System.EventArgs) Dim testClass As New TestClass testClass.TestProperty = "Hello" Label1.Text = testClass.TestProperty End Sub

C#

Copy Code

protected void Button1_Click(object sender, EventArgs e) { TestClass testClass = new TestClass(); testClass.TestProperty = "Hello"; Label1.Text = testClass.TestProperty; }

Testando o site
Antes de publicar o site, voc pode testar ele para certificar-se de que o site funciona da maneira que voc espera.

Para testar o site


1. Abra a pgina SamplePage.aspx. 2. Pressione CTRL+F5. A pgina aparece no navegador. 3. Clique em Button e certifique-se de que o texto aparece no controle Label. 4. Feche o navegador. Publicando o site da Web Agora que voc tem um site, voc poder public-lo. Voc pode publicar o site em qualquer localidade que voc tem acesso no computador local ou em uma rede que estiver usando qualquer protocolo de conexo que seja suportado pelo Visual Web Developer. Voc tem as seguintes opes para copiar o site: Usar um compartilhamento UNC para copiar para uma pasta compartilhada que esteja em outro computador na rede.

Usar FTP para copiar para um servidor.

Usar o protocolo HTTP para copiar para um servidor que suporta o FrontPage 2002 Server Extensions da Microsoft. Nesta Parte da explicao passo a passo, voc ir publicar o site em uma pasta local.

Para publicar o site


1. No menu Build, clique em Publish Web Site. A caixa de dilogo Publish Web Site aparece. 2. Na caixa Target Location, digite c:\CompiledSite. Cuidado Todos os dados na pasta de destino e suas subpastas sero excludos. Certifique-se de que voc no digitou o nome de uma pasta que contm dados ou contm subpastas com dados.

Apostila Visual Studio 2005

90

3. Para o propsito desta explicao passo a passo, voc est publicando em uma pasta local. Voc tambm poderia publicar para um compartilhamento UNC. Se voc quiser publicar um site remoto usando HTTP ou FTP, a caixa Target Location onde deve ser especificado o URL do servidor remoto. A opo Allow this precompiled site to be updatable especifica que todos os cdigos de programa so compilados em mdulos (assemblies), mas que os arquivos .aspx (incluindo pginas da Web de arquivos nicos do ASP.NET) so copiados como so para a pasta de destino. Nesta explicao passo a passo, voc no vai selecionar essa opo. Para obter informaes detalhadas, Publicando Sites. 4. Clique em OK. O Visual Web Developer pr-compila o contedo do site e grava a sada para a pasta que voc especificou. A janela Output exibe mensagens de andamento. Se ocorrer um erro durante compilao, ele relatado na janela Output . 5. Se ocorrer erros durante a publicao, corrija os erros, e repita a etapa 1.

Examinando a sada do comando Publish Web Site


til para examinar a sada do comando Publish Web Site para que voc possa ver o que o Visual Web Developer fez com os arquivos do site.

Para examinar a sada do comando Publish Web Site


1. No Windows Explorer, mova para a pasta que voc especificou como o destino para o comando Publish Web Site. 2. Usando um editor de texto, como o Bloco de notas, abra o arquivo SamplePage.aspx. Observe que o arquivo no contm a marcao que voc que originalmente tinha no arquivo. Em vez disso, a pgina.aspx apenas um espao reservado que pode ser usado como parte de um URL. 3. V para a pasta Bin. A pasta contm dois tipos de arquivos:
o o

arquivos .compiled, que correspondem s pginas.

arquivos .dll, que contm o cdigo executvel do site, como o arquivo de classe que voc criou. Lembre-se de que a pgina, seu cdigo, e o arquivo classe separado que voc criou, foram todos compilados em cdigo executvel. Testando o site da Web publicado Agora voc pode testar o site publicado executando-o.

Para testar o site publicado


1. Crie um diretrio virtual IIS que aponta para a pasta de destino. Voc pode usar as ferramentas administrativas do IIS ou como alternativa, utilizar as seguintes etapas: 1. No Windows Explorer, clique com o boto direito do mouse no nome da pasta de destino, e clique Sharing and Security. 2. Na guia Web Sharing, clique em Share this Folder. A caixa de dilogo Edit Alias aparece.

Apostila Visual Studio 2005

91

3.

Se desejar, altere o nome do alias.

As permisses padres permitem acesso de leitura e permitem executar scripts, como pginas ASP.NET. 4. Clique OK para fechar a caixa de dilogo Edit Alias, e ento clique OK para fechar a caixa de dilogo Properties. 2. Abra o navegador e digite a seguinte URL: http://localhost/CompiledSite/SamplePage.aspx A pgina SamplePage.aspx aparece. No entanto, neste momento voc est exibindo a verso da pgina que foi criada pelo o pr-compilador para implantao. Prximas etapas Esta explicao passo a passo mostrou os procedimentos bsicos para publicar um site pr-compilado. Sugestes para explorar mais o assunto incluem o seguinte: Fazer testes usando a ferramenta Copy Web, que copia a Web Site como (como cdigo-fonte) para uma pasta de destino.

Para mais informaes, Copiando sites da Web com a ferramenta Copy Web Site.

Publicar o site em um site da Web do IIS remoto.

Apostila Visual Studio 2005

92

Usando a IDE do Visual C#


Esta seo lhe apresenta ao ambiente de desenvolvimento integrado (IDE) do Visual C# e descreve como ele usado em todas as fases do ciclo de desenvolvimento, indo desde como configurar um projeto at distribuir o aplicativo concludo para usurios finais.

Introduo IDE (Visual C#)


O ambiente de desenvolvimento integrado (IDE) do Visual C# uma coleo de ferramentas de desenvolvimento expostas por meio de uma interface de usurio comum. Algumas das ferramentas so compartilhados com outras linguagens do Visual Studio, e algumas, como o compilador C#, so exclusivas para Visual C#. A documentao fornece uma viso geral de como usar as ferramentas mais importantes do Visual C# enquanto voc trabalha na IDE em vrias fases do processo de desenvolvimento. Observao Se voc estiver desenvolvendo um aplicativo ASP.NET 2.0, voc ir usar a IDE Visual Web Developer, que uma parte totalmente integrada do Visual Studio 2005. Entretanto, se suas pginas code-behind estiverem em Visual C#, voc estar utilizando o Editor de Cdigos do Visual C# dentro do Visual Web Developer. Portanto, alguns tpicos , como Projetando uma interface de usurio (Visual C#), talvez no sejam completamente aplicveis a aplicativos da Web.

Ferramentas Visual C#
A seguir esto as mais importantes ferramentas e janelas no Visual C#. As janelas para a maioria dessas ferramentas podem ser abertas a partir do menu View.

O Editor de Cdigos, para escrever cdigo fonte.

O compilador C#, para converter cdigo fonte C# em um programa executvel. O depurador do Visual Studio, para testar seu programa. O Toolbox (Caixa de Ferramentas) e o Designer, para o desenvolvimento rpido de interfaces de usurio usando o mouse. Solution Explorer (Gerenciador de Solues) para exibir e gerenciar arquivos de projeto e configuraes. Designer de Project, para configurar opes do compilador, caminhos de implantao, recursos, e mais. Modo de Exibio de Classe, para navegar atravs de cdigo fonte de acordo com tipos, no arquivos. Janela Properties (Janela de Propriedades), para configurar propriedades e eventos nos controles na sua interface de usurio. Pesquisador de objetos para exibir os mtodos e as classes disponveis em bibliotecas de vnculo dinmico incluindo assemblies do .NET Framework e objetos COM.

Apostila Visual Studio 2005

93

Gerenciador de Documento, para navegao e pesquisa de documentao do produto em sua mquina local e na Internet.

Como a IDE expe as ferramentas


Voc interage com as ferramentas atravs de janelas, menus, pginas de propriedades, e assistentes na IDE. A IDE bsica tem mais ou menos esta aparncia:

Rapidamente voc pode acessar qualquer janela de ferramenta aberta ou arquivos, pressionando CTRL + TAB. Para mais informaes, Navegando e procurando (Visual C#).

Janelas do Editor e do Windows Form Designer


A janela principal usada pelo Editor de Cdigos e pelo Windows Forms Designer. Voc pode alternar entre o modo Cdigo e o modo Design pelo pressionamento da tecla F7, ou clicando em Code ou Designer no menu View. Enquanto estiver no modo Design, voc pode arrastar controles da Caixa de Ferramentas para a janela , que voc poder tornar visvel clicando na guia Toolbox na margem esquerda. Para obter mais informaes sobre o Editor de Cdigos, Editando Cdigo (Visual C#). Para obter mais informaes sobre o Windows Forms Designer, O Windows Forms Designer. A janela Properties no canto inferior direito povoada somente no modo Design. Ela permite a voc definir propriedades e ligar eventos a controles de interface de usurio como botes, caixas de texto, e assim por diante. Quando voc define esta janela como Ocultar Automaticamente, ela ser colapsada na margem direita sempre que voc alternar para o Modo Cdigo. Para obter mais informaes sobre a janela Properties e o Designer, Projetando uma interface de usurio (Visual C#).

Gerenciador de Solues e Designer de Project


A janela na parte superior direita a do Gerenciador de Solues, que mostra todos os arquivos em seu projeto em um modo de exibio de rvore hierrquica. Quando voc usa o menu Project para adicionar novos arquivos ao seu projeto, voc os ver refletidos no Gerenciador de Solues. Alm dos arquivos, o Gerenciador de Solues tambm exibe as configuraes do projeto, e referncias a bibliotecas externas exigidas pelo seu aplicativo. As pginas de propriedades do Designer de Project so acessadas com o boto direito do mouse no n Properties no Gerenciador de Solues, e clicando Open. Use essas pginas para modificar opes de compilao, requisitos de segurana, detalhes de implantao, e muitas outras propriedades do projeto. Para obter mais informaes sobre o Gerenciador de Solues e o Designer de Project, Criando um Projeto (Visual C#).

Apostila Visual Studio 2005

94

Janela do Compilador, do Depurador, e de Lista de Erros


O compilador C# no tem nenhuma janela porque ele no uma ferramenta interativa, mas voc pode definir opes do compilador no Designer de Project. Quando voc clica em Build no menu Build , o compilador C# chamado pela IDE. Se a compilao for bem sucedida, o painel de status exibe uma mensagem compilao bem sucedida. Se houver erros de compilao, a janela Error List aparece abaixo da janela Editor/Designer com uma lista de erros. D um duplo clique em um erro para ir para a linha com problema no seu cdigo fonte. Pressione F1 para consultar a documentao de Ajuda para o erro realado. O Depurador tem vrias janelas que exibem valores de variveis e informaes de tipo quando o seu aplicativo est sendo executado. Voc pode usar a janela do Editor de Cdigos durante a depurao para especificar uma linha na qual pausar a execuo, e depurar o cdigo linha a linha. Para mais informaes, Criando e Depurando (Visual C#).

Personalizando a IDE
Toda janela no Visual C# pode ser feita ancorvel ou flutuante, oculta ou visvel, ou pode ser movida para novos locais. Para alterar o comportamento de uma janela, clique nos cones da seta para baixo ou push-pin na barra de ttulo e selecione dentre as opes disponveis. Para mover uma janela ancorada para um novo local ancorado, arraste a barra de ttulo at que os cones de conta-gotas da janela apaream. Mantendo pressionado o boto esquerdo do mouse, mova o ponteiro do mouse sobre o cone no novo local. Posicione o ponteiro sobre os cones esquerda, direita, superior ou inferior para encaixar a janela no lado especificado. Posicione o ponteiro sobre o cone meio para tornar a janela uma janela com guias. Como voc posiciona o ponteiro, um retngulo azul semi-transparente aparece, o qual indica onde a janela ser ancorada no novo local.

Voc pode personalizar muitos outros aspectos da IDE clicando em Options no menu Tools. Para mais informaes, Opes de Caixa de Dilogo do Visual Studio.

Criando um Project (Visual C#)


Quando voc estiver pronto para iniciar a codificao, a primeira etapa configurar um projeto. O projeto contm todos os materiais processados para seu aplicativo, incluindo no apenas arquivos de cdigo fonte, mas tambm arquivos de recursos como cones, referncias a arquivos externos que seu programa depende, e dados de configurao como configuraes do compilador. Quando voc cria um projeto, Visual C# chama o compilador C# e outras ferramentas internas para criar um conjunto executvel usando os arquivos em seu projeto.

Criando um novo projeto


Voc cria um novo projeto, clicando no menu File, apontando para New, e clicando em Project. Observao Se voc selecionar Web Site em vez de Project, a IDE (ambiente de desenvolvimento integrado) Visual Web Developer abre. Este um ambiente

Apostila Visual Studio 2005

95

separado e distinto dentro do Visual Studio para criar aplicativos ASP.NET. A IDE Visual Web Developer usa o editor de cdigo do Visual C# para edio de arquivos code-behind no C#. Se voc estiver criando aplicativos da Web, voc deve usar a documentao do Visual Web Developer principalmente, mas Editando cdigo (Visual C#) para obter informaes sobre o editor C#. A ilustrao a seguir mostra a caixa de dilogo New Project. Voc pode ver que Visual C# est selecionado por padro na janela em esquerda, e direita, voc tna opo de seis ou mais modelos de projeto para escolher. Se voc expandir o Smart Device ou o n Other Project Types esquerda, voc pode ver que diferentes tipos de projeto aparecem no lado direito.

Starter Kits so outros tipos de modelo de projeto. Se voc instalar um Starter Kit, voc o ver listado na caixa de dilogo New Project. Para mais informaes, Starter Kits (http://msdnwiki.microsoft.com/ptbr/mtpswiki/dfcw7sd5(VS.80).aspx). Depois que voc selecionar um modelo de projeto e clicar OK, Visual Studio cria o projeto e voc est pronto para comear a codificao. Arquivos de projeto, referncias, configuraes, e recursos esto visveis na janela Solution Explorer (Gerenciador de Solues) direita.

Apostila Visual Studio 2005

96

O que h em seu projeto? Propriedades


O n Properties representa definies de configurao que se aplicam a seu projeto inteiro e so armazenados no arquivo .csproj na sua pasta soluo. Essas configuraes incluem opes de compilao, segurana, configuraes de implantao e muito mais. Voc faz modificaes em seu projeto usando o Designer de Project, que um conjunto de Pginas de Propriedades que voc acessa clicando com o boto direito do mouse em Properties, e selecionando Open. Para mais informaes, Modificando propriedades de projeto (Visual C#).

Referncias
No contexto de um projeto, uma referncia simplesmente identifica um arquivo binrio que seu aplicativo requer para executar. Normalmente, uma referncia identifica um arquivo DLL como um dos arquivos de biblioteca de classe do .NET Framework. Ele tambm pode fazer referncia um assembly .NET (chamado de um shim) que permite seu aplicativo chamar mtodos em um objeto COM ou DLL Win32 nativa. Se seu programa cria uma instncia de uma classe que est definida em algum outro assembly, voc deve adicionar uma referncia a esse arquivo em seu projeto antes de voc compilar o projeto. Para adicionar uma referncia, clique em Add Reference no menu Project. Todos os projetos C# por padro incluem uma referncia mscorlib.dll, que contm as classes principais do .NET Framework. Voc pode adicionar referncias a DLLs adicionais do .NET Framework e outros arquivos, clicando no menu Project, e selecionando Add Reference. Observao No confunda o conceito de uma referncia de projeto com o conceito de tipos referncia em C# ou outras linguagens de programao. O primeiro refere-se a um arquivo e seu local esperado no disco. O ltimo refere-se a tipos C#, que so declarados usando a palavra-chave class.

Apostila Visual Studio 2005

97

Recursos
Um recurso um dado que est includo no seu aplicativo mas pode ser armazenado de tal forma que pode ser modificado independentemente de outro cdigo fonte. Por exemplo, voc pode armazenar todas as suas seqncias como recursos em vez de embut-las no cdigo fonte. Voc pode converter as seqncias em diferentes idiomas mais adiante, e adicion-las pasta do aplicativo que voc entrega a clientes sem precisar recompilar seu assembly. Os cinco tipos de recursos definidos pelo Visual C# so: seqncias, imagens, cones, udio, e arquivos. Voc adiciona, remove ou edita recursos usando o Designer de Recursos, que acessado na guia Resources no Designer de Project.

Formulrios
Quando voc cria um projeto Windows Forms, o Visual C# adiciona um formulrio no projeto por padro e chama-o Form1. Os dois arquivos que representam o formulrio so chamados Form1.cs e Form1.designer.cs. Voc escreve seu cdigo no Form1.cs; o arquivo designer.cs onde o Windows Forms Designer escreve o cdigo que implementa todas as aes que voc realizou arrastando e soltando controles da Caixa de Ferramentas. Voc pode adicionar um novo formulrio, clicando no item de menu Project, e selecionando Add Windows Form. Cada formulrio tem dois arquivos associados a ele. Form1.cs, ou qualquer outro nome que voc d, contm o cdigo fonte que voc escreveu para configurar o formulrio e seus controles, como caixas de listagem e caixas de texto, e responde a eventos como clique de boto e pressionamento de tecla. Em projetos simples do Windows Forms, voc faz a maioria ou toda a sua codificao nesse arquivo. O arquivo Designer.cs contm o cdigo fonte que o Forms Designer escreve quando voc arrasta controles para o formulrio, define propriedades na janela Properties, e assim por diante. Normalmente, voc no deve editar esse arquivo manualmente. Observao Obviamente, se voc criar um projeto de aplicativos de console, ele no conter arquivos cdigo fonte para Windows Forms.

Outros arquivos de cdigo fonte


Um projeto pode incluir qualquer nmero de arquivos .cs adicionais que pode ou no estar associado a um Windows Form especfico. Na ilustrao anterior do Gerenciador de Solues, program.cs contm o ponto de entrada para o aplicativo. Um nico arquivo .cs pode conter qualquer nmero de definies de classe e estrutura. Voc pode adicionar arquivos novos ou existentes ou classes no seu projeto, clicando em Add New Item ou Add Existing Item no menu Project.

Modificando Propriedades de Project (Visual C#)


Aps voc criar um projeto, voc pode usar o Designer de Project para realizar tarefas como alterar o nome do arquivo executvel, personalizar o processo de compilao, adicionar uma referncia a uma DLL, ou fortalecer as configuraes de

Apostila Visual Studio 2005

98

segurana. Voc pode acessar o Designer de Project no menu Project clicando em Properties, ou clicando com o boto direito o item Properties no Gerenciador de Solues. O Designer de Project ir aparecer na janela Editor/Designer como mostrado na ilustrao a seguir:

Propriedades de projeto so agrupadas em 10 pginas no Designer de Project. As pginas de propriedades do Designer de Project esto localizadas no mesmo painel do meio usado pelo Windows Forms Designer e o editor de cdigo. Observao Visual Studio Team System inclui uma pgina de propriedades adicional para Anlise de Cdigo. Na ilustrao acima, a pgina de propriedade Application (Aplicativo) exibida. Clicando nos rtulos na guia esquerda (Build, Build Events, Debug, etc) voc pode acessar a pgina de propriedades correspondente. As informaes especficas de projeto que so inseridas aqui so armazenadas em um arquivo .csproj que no est visvel no Gerenciador de Solues mas est localizado na pasta do projeto na unidade. Enquanto voc estiver trabalhando no Visual C#, voc pode acessar ajuda para qualquer uma das pginas de propriedades, posicionando o cursor do mouse na pgina e pressionando F1. A tabela a seguir fornece uma breve descrio de cada pgina no Designer de Project: gina de Propriedades

escrio Altera o nome do assembly, o tipo do projeto, informaes de montagem incluindo nmero da verso e outras opes de recurso. Para mais informaes, Pgina Aplicativo, Designer de Projeto (C#). Altera o local em que o assembly compilado

Application (Aplicativo)

Build (Compilar)

Apostila Visual Studio 2005

99

armazenado, opes de compilao condicional, como erros e avisos so tratados, e outras configuraes. Para mais informaes, Pgina Compilar, Designer de Project (C#). Build Events (Criar Eventos)

Cria e modifica as etapas de composio personalizada. Para mais informaes, Pgina Criar Eventos, Designer de Projeto (C#, J#). Especifica os argumentos de linha de comando a executar sob o depurador, e outras configuraes. Para mais informaes, Pgina Depurar, Designer de Projeto. Adiciona seqncias, cones, imagens ou outros tipos de arquivos no seu projeto como recursos. Para mais informaes, Pgina Recursos, Designer de Projeto. Armazena configuraes como seqncias de conexo para um banco de dados ou esquema de cor que um usurio especfico deseja usar . Estas configuraes podem ser recuperadas dinamicamente em tempo de execuo. Para mais informaes, Pgina Configuraes, Designer de Projeto. Especifica o caminho onde esto localizados assemblies referenciados no seu projeto. Para mais informaes, Pgina Caminhos de Referncia, Designer de Projeto (C#, J#). Especifica opes do certificado ClickOnce, e fornece nome forte para seu assembly. Para obter mais informaes, Pgina Assinatura, Designer de Projeto e Viso Geral da Implantao ClickOnce Especifica configuraes de segurana que seu aplicativo requer para executar. Para mais informaes, Pgina Segurana, Designer de Projeto. Especifica opes para distribuir seu aplicativo para um site, Servidor FTP, ou arquivo local. Para mais informaes, Pgina Publicar, Designer de Projeto. Opes para ferramentas que analisam seu cdigo fonte buscando possveis problemas de segurana, conformidade com as diretrizes de design do .NET Framework, e muito mais. Para mais informaes, Anlise de Cdigo, Designer de Projeto.

Debug (Depurar)

Resources (Recursos)

Settings (Configuraes)

Reference Paths (Caminhos de Referncia)

Signing (Assinatura)

Security (Segurana)

Publish (Publicar)

Code Analysis (Anlise de Cdigo - somente Visual Studio Team System)

Projetando uma interface de usurio (Visual C#)


No Visual C#, a maneira mais rpida e conveniente de criar sua interface de usurio (UI) faz-la visualmente, usando o Windows Forms Designer e o Toolbox. H trs etapas bsicas para criar todas as interfaces de usurio:

Apostila Visual Studio 2005

100

Adicionar controles a superfcie de criao. Definir propriedades iniciais para os controles. Escrever manipuladores para eventos especificos.

Embora voc tambm possa criar sua UI escrevendo seu prprio cdigo, designers permitem que voc realize este trabalho muito mais rapidamente que na codificao manual. Observao Voc pode usar Visual C# para criar aplicativos de console que possuem uma interface simplesmente baseada em texto. Para mais informaes, Criando aplicativos de console (Visual C#).

Adicionando controles
No designer, voc usa o mouse para arrastar, por exemplo botes e caixas de texto, para uma superfcie de projeto que representa o formulrio. A ilustrao a seguir mostra uma caixa de combinao que foi arrastado da janela Toolbox para um formulrio no Windows Forms Designer.

Enquanto voc trabalha visualmente, o designer converte suas aes em cdigo fonte C# e os grava em um arquivo de projeto chamado <nome>designer.cs onde <nome> o nome que voc deu para o formulrio. Quando seu aplicativo executado, esse cdigo fonte ir posicionar e dimensionar os elementos de UI para que elas apaream da mesma maneira que na superfcie de projeto. Para mais informaes, O Windows Forms Designer.

Definindo propriedades
Aps voc adicionar um controle ao seu formulrio, voc pode usar a janela Properties para definir suas propriedades, como cor do plano de fundo e texto padro. Os valores que voc especificar na janela Properties so simplesmente os valores iniciais que sero atribudos a essa propriedade quando o controle criado

Apostila Visual Studio 2005

101

em tempo de execuo. Em muitos casos, esses valores podem ser acessados ou alterados programaticamente em tempo de execuo simplesmente obtendo ou definindo a propriedade na instncia da classe de controle em seu aplicativo. A janela Properties til em tempo de criao porque ela permite que voc procure por todas as propriedades, eventos e mtodos suportados por um controle. Para mais informaes, Janela Properties.

Tratamento de eventos
Programas com interfaces de usurio grficas so principalmente direcionadas a eventos. Elas aguardam at que um usurio faa algo como inserir texto em uma caixa de texto, clicar em um boto, ou alterar uma seleo em uma caixa de listagem. Quando isso acontece, o controle, que apenas uma instncia de uma classe do .NET Framework, envia um evento para seu aplicativo. Voc pode optar por manipular um evento escrevendo um mtodo especial em seu aplicativo que ser chamado quando o evento recebido. Voc pode usar a janela Properties para especificar que eventos deseja tratar em seu cdigo; selecione um controle no designer e clique no boto Events, com o cone de um raio, na barra de ferramentas da janela Properties para ver os seus eventos. O diagrama a seguir mostra o boto de eventos.

Quando voc adiciona um manipulador de eventos atravs da janela Properties, o designer automaticamente escrever para voc o corpo do mtodo como vazio, e fica por sua conta escrever o cdigo para que o mtodo faa algo til. A maioria dos controles geram um nmero grande de eventos, mas na maioria dos casos, um aplicativo somente precisar manipular alguns deles, ou mesmo somente um. Por exemplo, voc provavelmente precisa manipular um evento de Click de boto, mas no necessrio manipular seu evento Paint a menos que voc deseje personalizar a aparncia de alguma maneira avanada.

Prximas Etapas
Para obter mais informaes sobre interfaces de usurio do Windows Forms, os seguintes tpicos: Criando aplicativos baseados no Windows Passo a passo: Criando um formulrio do Windows simples Elementos de interface de usurio do Windows Forms Designer Na biblioteca de classe do. NET Framework, System.Windows.Forms e namespaces relacionados contm as classes usadas no desenvolvimento do Windows Forms.

Editando cdigo (Visual C#)


O Editor de cdigos do Visual C# um processador de texto para escrever cdigo fonte. Assim como o Microsoft Word fornece suporte abrangente para frases, pargrafos, e gramtica, o editor de cdigos C# faz o mesmo para sintaxe C# e para o .NET Framework. Este suporte pode ser agrupado em cinco categorias principais:

Apostila Visual Studio 2005

102

O IntelliSense: Documentao continuamente atualizada sobre as classes .NET Framework e os mtodos bsicos medida que voc digita no editor, e a gerao de cdigo automtica.

Refactoring: reestruturao inteligente de sua base de cdigo medida que ela evolui durante o perodo de um projeto de desenvolvimento.

Trechos de cdigo: Voc pode procurar uma biblioteca que contm padres de cdigo repetidos freqentemente. Sublinhado ondulado: Notificaes visuais de palavras incorretas, erro de sintaxe e situaes de aviso conforme voc digita. Auxlios de legibilidade: Estrutura de tpicos e colorizao.

O IntelliSense
IntelliSense o nome de um conjunto de recursos relacionados que so criados para minimizar o tempo gasto procurando por ajuda e para ajudar voc a inserir cdigo de forma mais precisa e eficiente. Todos esses recursos fornecem informaes sobre palavras-chave de linguagem, tipos .NET Framework e assinaturas de mtodo medida que voc digita no editor. As informaes so exibidas em dicas de ferramentas, caixas de listagem, e marcas inteligentes. Observao Muitos dos recursos do IntelliSense so compartilhados com outras linguagens do Visual Studio e esto documentadas com ilustraes no n Ajuda de Codificao da biblioteca do MSDN. As sees a seguir fornecem uma viso geral sobre o IntelliSense, com links para a documentao mais completa.

Listas de concluso
Quando voc insere cdigo-fonte no editor, o IntelliSense exibe uma caixa de listagem que contm todas as palavras-chave C# e classes .NET Framework. Se ele encontrar uma correspondncia na caixa de listagem para o nome que voc est digitando, ele seleciona o item. Se o item selecionado for o que voc deseja, simplesmente voc pode teclar TAB e o IntelliSense terminar a digitao do nome ou palavra-chave para voc. Para mais informaes, Listas de concluso no C#.

Apostila Visual Studio 2005

103

Informaes rpidas
Quando voc passa o cursor sobre um tipo .NET Framework, o IntelliSense exibir um Quick Info ToolTip que contm a documentao sobre esse tipo bsico. Para mais informaes, Informaes rpidas.

Membros da lista
Quando voc inserir um tipo .NET Framework no Editor de Cdigos, e ento digitar o operador ponto ( . ), o IntelliSense exibe uma caixa de listagem que contm os membros do mesmo tipo. Quando voc fizer uma seleo e pressionar TAB, o IntelliSense insere o nome membro. Para mais informaes, Membros da lista.

Informaes de parmetro
Quando voc inserir um nome do mtodo no Editor de cdigos, e digitar um parnteses de abertura, o IntelliSense exibir um parmetro Info ToolTip que mostra a ordem e tipos de parmetros do mtodo. Se o mtodo estiver sobrecarregado, voc pode rolar para baixo atravs de todas as assinaturas sobrecarregadas. Para mais informaes, Informaes de parmetro.

Adicionando diretivas 'using'


s vezes, voc pode tentar criar uma instncia de uma classe .NET Framework sem um nome suficientemente qualificado. Quando isso acontece, o IntelliSense exibe uma marca inteligente aps o identificador no resolvido. Quando voc clicar a marca inteligente, o IntelliSense exibir uma lista de diretivas using que permitir que o identificador seja resolvido. Quando voc seleciona um da lista, o IntelliSense adiciona a diretiva para a parte superior de seu arquivo de cdigo fonte e voc pode continuar a codificao em sua localidade atual. Para mais informaes, Adicionar diretivas 'using'.

Refatorao
Como uma base de cdigo cresce e evolui durante o perodo de um projeto de desenvolvimento, s vezes desejvel fazer alteraes para torn-lo mais legvel para humanos ou mais portvel. Por exemplo, convm dividir alguns mtodos de backup em mtodos menores ou alterar parmetros do mtodo, ou renomear identificadores. O recurso Refactoring, que acessvel clicando no Editor de cdigos, faz tudo isso de uma maneira que muito mais conveniente, inteligente, e completa que as ferramentas tradicionais como pesquisa e substituio. Para mais informaes, Refatorao.

Trechos de cdigo
Trechos de cdigo so unidades de uso comum em cdigo fonte C# que voc pode inserir rapidamente com preciso e com o pressionamentos de apenas algumas teclas. O menu trecho de cdigo acessado clicando no Editor de Cdigos. Voc pode navegar entre os muitos trechos fornecidos com o Visual C#, e voc tambm pode criar seus prprios trechos. Para mais informaes, Trechos de cdigo (C#).

Apostila Visual Studio 2005

104

Sublinhado ondulado
Sublinhado ondulado fornece instantneos sobre erros em seu cdigo enquanto voc digita. Um sublinhado ondulado vermelho identifica um erro de sintaxe como ponto-e-vrgula ausente ou chaves no correspondentes. Um sublinhado ondulado verde identifica um aviso de compilao em potencial, e azul identifica um problema Editar e Continuar. A ilustrao a seguir mostra um sublinhado ondulado vermelho:

Ajuda de Legibilidade
Estrutura de tpicos
Automaticamente o Editor de Cdigos trata namespaces, classes e mtodos como regies que voc pode recolher para facilitar a localizao e leitura de outras partes do arquivo de cdigo fonte. Voc tambm pode criar suas prprias regies recolhveis, envolvendo o cdigo com as diretivas #region e #endregion

Apostila Visual Studio 2005

105

Colorizao
O editor oferece diferentes cores a vrias categorias de identificadores em um arquivo de cdigo fonte C#. Para mais informaes, Colorizao de Cdigo .

Navegando e Procurando (Visual C#)


O Visual C# fornece as seguintes ferramentas para ajud-lo a navegar e pesquisar o cdigo fonte, arquivos de projeto e janelas abertas.

Exibio de classe Barras de navegao Navegao CTRL+TAB Localizao em arquivos

Exibio de classe
A janela Class View fornece uma exibio do seu projeto com base nas classes em vez de usar arquivos, como no Solution Explorer. Voc pode usar a Class View para navegar rapidamente para qualquer classe ou membro da classe em seu projeto. Para acessas a Class View, clique em Class View no menu View.

Apostila Visual Studio 2005

106

Navegao CTRL+TAB
A qualquer momento voc pode ter vrias janelas ativas em um projeto no Visual C#. Para navegar rapidamente para uma janela, pressione CTRL+TAB para exibir uma janela que lista todas as ferramentas ativas e janelas do cdigo fonte. Mova as teclas de seta mantendo pressionada a tecla CTRL para selecionar a janela a exibir.

Barras de navegao Apostila Visual Studio 2005 107

Na parte superior de cada janela de cdigo do editor est a barra de navegao, que consiste em duas caixas de listagem. A da esquerda lista todas as classes definidas no arquivo atual, e a da direita lista todos os membros para a classe que est selecionado na caixa da lista esquerda. Voc pode ir diretamente para um mtodo selecionando-o na caixa de listagem da direita.

Localizar em arquivos
Pressionando CTRL+SHIFT+F voc pode abrir a caixa de dilogo Find in Files para executar pesquisa e substituir operaes em um projeto inteiro. Observao Para renomear mtodos ou tipos, ou alterar os parmetros do mtodo, use o recurso Refactoring, que mais completo e inteligente do que pesquisar e substituir. Para mais informaes, Refactorao.

Criando e Depurando (Visual C#)


No Visual C# voc criar um aplicativo executvel clicando em Build no menu Build (ou pressionando CTRL+SHIFT+B). Voc pode criar e iniciar o aplicativo em uma operao pressionando F5 ou clicando em Run no menu Debug. O desenvolvimento implica a introduo dos seus arquivos de projeto no compilador C#, que converte seu cdigo fonte no Microsoft Intermediate Language (MSIL) e depois associa o MSIL com os metadados, recursos, manifesto e outros mdulos, se houver algum, para criar um assembly. Um assembly um arquivo executvel que normalmente tem uma extenso .exe ou.dll. medida que voc desenvolve seu aplicativo, voc pode criar uma verso de depurao para test-lo e ver como ele executa. Finalmente, quando tudo est correto, voc criar um verso de lanamento para implantar aos clientes. Para obter mais informaes sobre assemblies, Viso Geral Sobre assemblies.

Criar configuraes Apostila Visual Studio 2005 108

Para especificar vrias configuraes de criao, clique com o boto direito do mouse no item de projeto no Solution Explorer e selecione o painel Build no Project Designer. Para obter mais informaes, Introduo ao Project Designer e Opes de Compilao C#. O Visual Studio usa a ferramenta MSBuild para criar assemblies. O MSBuild tambm pode ser executado a partir da linha de comando e pode ser personalizado de vrias maneiras. Para mais informaes, MSBuild.

Construir erros
Se no h erros na sintaxe C#, ou identificadores que no podem ser resolvidos em um tipo conhecido ou membro, ento a compilao no ter xito e voc ver uma lista de erros em que aparece, por padro, diretamente abaixo do editor de cdigo. Voc pode dar um clique duplo com o mouse na mensagem de erro para ir para a linha do seu cdigo onde ocorreu o erro.

As mensagens de erro do compilador C# so geralmente muito claras e descritivas, mas se voc no puder descobrir o problema, voc pode ir para a pgina de Ajuda da mensagem, pressionando F1 com a mensagem de erro selecionada na lista de erro. A pgina de Ajuda contm informaes adicionais teis. Se voc ainda no puder resolver o problema, ento, a prxima etapa fazer sua pergunta em um dos grupos de notcias ou fruns do C#. Para acessar o fruns, clique em Ask A Question no menu Community. Observao Se voc encontrar uma pgina de ajuda de erro de compilao que no foi til para o seu erro especfico, voc pode ajudar a Microsoft melhorar a documentao, enviando uma descrio do problema. Para enviar o email, clique no link na parte inferior da pgina de Ajuda que contm o erro.

Configuraes Verso vs. Depurao


Enquanto voc estiver trabalhando ativamente em seu projeto, voc geralmente criar seu aplicativo usando a configurao de depurao, porque essa configurao permite que voc exiba o valor de variveis e controle a execuo no depurador. Voc tambm pode criar e testar compilaes na verso de configurao para

Apostila Visual Studio 2005

109

garantir que no introduziu quaisquer erros que somente s se manifestam em um tipo de compilao ou outro. Na programao do .NET Framework, esses erros so muito raros, mas eles pode acontecer. Quando voc estiver pronto para distribuir seu aplicativo para usurios finais, crie uma verso de compilao, que ser muito menor em tamanho e geralmente no ter melhor desempenho que a correspondente configurao de depurao. Voc pode definir a configurao de compilao no painel Build do Project Designer, ou na barra de ferramentas Build. Para mais informaes, Compilar configuraes.

Depurao
A qualquer momento que voc estiver trabalhando no editor de cdigo, voc pode definir um ponto de interrupo (breakpoint) em uma linha de cdigo, pressionando F9. Quando voc pressionar F5 para executar seu aplicativo no depurador do Visual Studio, o aplicativo ir parar naquela linha e voc poder examinar o valor de qualquer varivel, ou observar como ou quando a execuo se liberta de um loop, passar pelo cdigo linha a linha pressionando F10, ou configurar pontos de parada adicionais.

Voc tambm pode definir pontos de interrupo condicionais (tracepoints), que s iro parar a execuo se uma condio especificada for satisfeita. Tracepoints so semelhantes aos pontos de interrupo exceto que eles no param a execuo, mas simplesmente gravam o valor da varivel especificada para a janela de sada. Para mais informaes, Pontos de interrupo e Tracepoints. Quando a execuo interrompida em um ponto de interrupo, voc pode focalizar sobre qualquer varivel no escopo para exibir informaes sobre essa varivel. A ilustrao a seguir mostra uma dica de dados no depurador:

Apostila Visual Studio 2005

110

Voc pode depurar seu cdigo uma linha por vez pressionando F10 aps o depurador ser interrompido em um ponto de interrupo. Voc pode at corrigir determinados tipos de erros em seu cdigo, e continuar a depurao sem precisar parar e recompilar o aplicativo O depurador do Visual Studio uma ferramenta poderosa e vlido levar um tempo para ler a documentao para compreender diferentes como Edit e Continue, Exibir Dados no Depurador, Depurao Just-In-Time e Visualizadores.

Modelagem e Anlise de Cdigo (Visual C#)


No incomum para desenvolvedores de software trabalhar com cdigo fonte cuja arquitetura bsica desconhecida, pois ele foi escrito por outra pessoa, ou porque ele foi escrito h tanto tempo que seus criadores originais no mais recordam como ele funciona. Outro cenrio comum a necessidade de entender o contedo de uma biblioteca que s est disponvel no formato binrio. Visual C# fornece as seguintes ferramentas para ajudar voc a modelar, analisar e compreender tipos e relacionamentos de tipos em cdigo fonte como tambm em mdulos binrios (assemblies): Classe Designer, para representar visualmente relacionamentos de herana e associao entre tipos.

Pesquisador de Objetos, para examinar os tipos, mtodos e eventos exportados pelos assemblies do .NET Framework, e DLLs nativas incluindo os objetos COM. Metadados como fonte, para exibir informaes de tipo em mdulos (assemblies) gerenciados como se fosse cdigo fonte em seu prprio projeto.

Alm das ferramentas listadas acima, Visual Studio Team System inclui a ferramenta Anlise de Cdigo para Cdigo Gerenciado que inspeciona seu cdigo para uma variedade de problemas potenciais.

Classe Designer Apostila Visual Studio 2005 111

A classe Designer uma ferramenta grfica para modelagem visual da relao entre tipos em um aplicativo de software ou componente; voc tambm pode usla para criar novos tipos e refazer ou excluir tipos existentes. A ilustrao a seguir mostra a criao de uma classe simples:

Para adicionar um diagrama de classe a um projeto, clique em Add New Item no menu Project , e em seguida, clique em Add Class Diagram. Para mais informaes, Projetando e exibindo classes e tipos.

Pesquisador de Objetos
O Pesquisador de Objetos permite que voc veja informaes de tipo em DLLs nativas e gerenciadas, incluindo objetos COM. Embora as informaes que voc v no Pesquisador de Objetos sejam semelhantes as que voc v no Class View, voc pode usar o Pesquisador de Objetos para examinar qualquer DLL em seu sistema, no apenas aquelas referenciadas no seu prprio projeto. Alm disso, o Pesquisador de Objetos tambm exibe da documentao XML para o tipo selecionado. A ilustrao a seguir mostra como o Pesquisador de Objetos exibe informaes de tipo em arquivos binrios.

Apostila Visual Studio 2005

112

Para mais informaes, Pesquisador de Objetos

Os metadados como fonte:


O recurso Metadata As Source (Metadados como fonte) permite que voc veja informaes de tipo das classes em mdulos (assemblies) gerenciados como se eles fossem cdigo fonte em seu prprio projeto. Essa uma maneira conveniente para exibir as assinaturas para todos os mtodos pblicos em uma classe quando voc no tem acesso ao cdigo fonte real. Por exemplo, se voc inserir a instruo System.Console.WriteLine() no editor de cdigo, coloque o ponto de insero no Console e clique com o boto direito do mouse e selecione Go To Definition, voc ver algo parecido com um arquivo de cdigo fonte que contm a declarao da classe Console. Essa declarao construda a partir dos metadados no assembly usando Reflexo, e embora no exponha a implementao de todos os mtodos, mostra da documentao XML que esto presentes. Voc tambm pode usar o recurso Metadata As Source, selecionando um tipo gerenciado no Pesquisador de Objetos, e clicando em Code Definition Window no menu View. Para obter mais informaes e uma ilustrao, Os metadados como fonte:

Anlise de cdigo para cdigo gerenciado


A ferramenta de anlise de cdigo para cdigo gerenciado analisa informaes de assemblies gerenciados e relatrios assim como possveis problemas de segurana, e violaes de regras de programao e projeto definidas nas diretrizes de projeto do Microsoft .NET Framework. Essas informaes so apresentadas como avisos.

Apostila Visual Studio 2005

113

Voc acessa a ferramenta no Designer de Projeto clicando com o boto direito do mouse em Properties no Solution Explorer, e selecionando Open.

Adicionando e editando recursos (Visual C#)


Aplicativos do Visual C# geralmente incluem dados que no esto no cdigo fonte. Esses dados so conhecidos como um project resource (recurso de projeto) e ele pode incluir dados binrios, arquivos de texto, arquivos de udio ou vdeo, tabelas de seqncia de caracteres, cones, imagens, arquivos XML ou qualquer outro tipo de dados que seu aplicativo requer. Dados de recurso de projetos so armazenados em formato XML no arquivo resx. (chamado Resources.resx por padro) que pode ser aberta no Solution Explorer.

Adicionando Recursos a Projects


Voc pode adicionar recursos a um projeto clicando em Add Existing Item no menu Project, ou clicando no boto Add Resource na pgina Resources no Project Designer. Voc pode adicionar recursos ao seu projeto como recursos vinculados, que so arquivos externos, ou como recursos incorporados, que so incorporados diretamente ao arquivo .resx. Quando voc adiciona um recurso vinculado, o arquivo resx. que armazena suas informaes de recurso de projeto inclui apenas um caminho relativo para o arquivo de recurso no disco. Se voc adicionar imagens, vdeos ou outros arquivos complexos como recursos vinculados, voc pode edit-los usando um editor padro no qual voc associa a esse tipo de arquivo no Resource Designer.

Quando voc adiciona um recurso incorporado, os dados so armazenados diretamente no arquivo de recurso (.resx) do projeto. Somente seqncias de caracteres podem ser armazenadas como recursos incorporados.

Editando Recursos
O Resource Designer permite que voc adicione e modifique recursos de projeto durante o desenvolvimento ao associar um aplicativo padro para editar cada recurso. Voc acessa o Resource Designer clicando com o boto direito do mouse em Properties no Solution Explorer, clicando em Open e clicando na guia Resources em Project Designer. Para mais informaes, Pginas de Recursos, Project Designer. A ilustrao a seguir mostra as opes de menu Resource Designer:

Para editar recursos incorporados, voc deve trabalhar diretamente no arquivo .resx para manipular os caracteres individuais ou bytes. Isto porque ele mais conveniente para armazenar tipos de arquivos complexos como recursos vinculados durante o desenvolvimento. Voc pode usar o Binary Editor para editar arquivos de

Apostila Visual Studio 2005

114

recursos, incluindo o arquivo .resx, no nvel binrio em formato hexadecimal ou ASCII. Voc pode usar a Image Editor para editar cones e cursores assim como arquivos JPEG e GIF, que so armazenados como recursos vinculados. Voc tambm pode escolher outros aplicativos como editores para esses tipos de arquivo.

Compilando Recursos em Assemblies


Quando voc cria seu aplicativo, o Visual Studio chama a ferramenta resgen.exe para converter os recursos do aplicativo em uma classe interna chamada Resources. Essa classe est contida no arquivo Resources.Designer.cs que est aninhado no arquivo Resources.resx no Solution Explorer. A classe Resources encapsula todos os recursos do projeto em propriedades get, somente-leitura estticas, como uma forma de fornecer recursos fortemente tipados em tempo de execuo. Quando voc constri atravs do Visual C# IDE, todos os dados de recurso encapsulados, incluindo os dois recursos que foram incorporados ao arquivo .resx e os arquivos vinculados, so compilados diretamente para o aplicativo assembly (o arquivo .exe ou .dll). Em outras palavras, o Visual C# IDE sempre usa a opo /resource de compilador. Se voc constri a partir da linha de comando, voc pode especificar a opo de compilador /linkresource que permitir implantar recursos em um arquivo separado do aplicativo assembly principal. Este um cenrio avanado e s necessrio em certas situaes raras. Uma situao mais comum para implantao de recursos separadamente do aplicativo assembly principal usar assemblies satlites conforme discutido abaixo.

Acessando Recursos em Tempo de Execuo


Para acessar um recurso em tempo de execuo, simplesmente referencie-o como voc faria para qualquer outro membro da classe. O exemplo a seguir mostra como recuperar um recurso bitmap que voc nomeou para Image01.
System.Drawing.Bitmap bitmap1 = Resources.Image01;

Internamente a propriedade get utiliza a classe ResourceManager para criar uma nova instncia do objeto.

Recursos em Assemblies Satlites


Se voc estiver criando aplicativos que sero localizados (traduzidos) em vrios idiomas, voc pode armazenar cada conjunto de seqncia de caracteres especficos de cada cultura como um recurso em seu prprio assembly satlite. Quando voc distribuir seu aplicativo, voc incluir o aplicativo assembly principal junto com qualquer montagem satlite adequada. Voc pode adicionar assemblies satlite ou modificar arquivos existentes sem recompilar o aplicativo assembly principal.

Obtendo Ajuda (Visual C#)


A documentao da ajuda do Visual Studio est contida na Biblioteca MSDN, que voc pode instalar localmente em seu prprio computador ou rede, e que tambm est disponvel na Internet em http://msdn.microsoft.com/Library. A verso local da biblioteca consiste em uma coleo de compactada arquivos HTML com o formato.hxs. Voc pode optar por instalar a biblioteca em sua mquina total ou parcialmente; a instalao completa do MSDN fica prxima de 2 GB em tamanho e inclui documentao para muitas tecnologias Microsoft. Voc pode exibir a documentao MSDN local e online usando o navegador do Visual Studio Help chamado Microsoft Document Explorer.

Apostila Visual Studio 2005

115

Existem seis maneiras para acessar a ajuda enquanto trabalha no Visual C#:

Pesquisar F1 Pesquisa ndice ndice Analtico Como Eu Ajuda Dinmica

Ajuda Online versus Local


Na pgina de propriedades Help Options no menu Options, voc pode especificar as seguintes opes para o comportamento da pesquisa, inclusive a pesquisa F1: Tente a Biblioteca MSDN on-line primeiro, depois a documentao local se nenhuma coincidncia for encontrada.

Tente a Biblioteca MSDN local primeiro, depois a documentao on-line se nenhuma coincidncia for encontrada. Tente somente a Biblioteca MSDN local. Essas opes tambm sero exibidas na primeira vez voc chamar qualquer pesquisa. A documentao MSDN on-line pode conter atualizaes mais recentes que a documentao local. Portanto, se voc tiver uma conexo Internet enquanto trabalha no Visual C#, recomendvel que voc escolha a opo de pesquisa para testar a Biblioteca MSDN on-line primeiro. De tempos em tempos, atualizaes para a documentao local podem ser disponibilizadas para download.

Pesquisa F1 F1 fornece recursos de pesquisa contextual. No editor de cdigo, voc pode acessar a documentao da Ajuda para palavras-chave C# e classes do Framework .NET posicionando o cursor de insero sobre ou imediatamente aps a palavra-chave ou membro da classe e pressionando F1. Quando uma caixa de dilogo ou qualquer outra janela tiver o foco, voc pode pressione F1 para obter ajuda sobre essa janela. Uma pesquisa F1 retorna no mais de uma pgina. Se nenhuma correspondncia for encontrada, ser exibida uma pgina informativa que fornece algumas dicas de soluo de problemas.

Pesquisa
Use a interface de pesquisa para retornar todos os documentos que correspondam a qualquer termo especificado ou conjunto de termos. A interface de pesquisa tem esta aparncia:

Apostila Visual Studio 2005

116

Voc tambm pode usar a pgina Help Options no menu Options para especificar se voc deseja para procurar sites Codezone alm da Biblioteca MSDN. Sites Codezone so mantidos por parceiros da Microsoft e fornecem informaes teis sobre o C# e o .NET Framework. Somente contedo Codezone estar disponvel on-line. As mesmas opes de busca online versus pesquisa local se aplicam s pesquisas F1 e comum. Na interface de pesquisa voc pode restringir ou expandir sua pesquisa especificando quais tipos de documentos incluir. Existem trs opes, Linguagem, Tecnologia, e Tipo de Tpico. Voc geralmente obter os melhores resultados marcando somente as opes que se aplicam a seu cenrio desenvolvimento atual.

ndice
O ndice fornece uma maneira rpida para localizar documentos na sua Biblioteca MSDN local. No se trata de uma pesquisa do texto completo; ele procura somente as palavras-chave ndice que tiverem sido atribudas a cada documento. Uma pesquisa por ndice geralmente mais rpida e mais relevante que uma pesquisa de texto completo. Se mais de um documento contiver a palavra-chave que voc especificar na a caixa de pesquisa de ndice, depois uma janela de resoluo de ambigidade abre e permite que voc selecione dentre as opes possveis. A janela ndice estar localizada, como padro, no lado esquerdo do Document Explorer. Voc pode acess-la a partir do menu Help do Visual C#.

ndice Analtico
O ndice analtico da Biblioteca MSDN mostra todos os tpicos na biblioteca numa estrutura hierrquica num modo de exibio de rvore. Ele uma ferramenta til para navegar atravs da documentao para ter uma idia do que est contido na biblioteca, e para explorar documentos que voc talvez no localize atravs do ndice ou da pesquisa. Freqentemente, quando voc encontrar um documento pelo F1, ndice ou pesquisa, til saber onde ele est localizado no ndice analtico para que voc possa ver qual outra documentao relacionada existe para um determinado tpico. Clique no boto Sync with Table of Contents na barra de

Apostila Visual Studio 2005

117

ferramentas Document Explorer para ver onde a pgina atualmente exibida est localizada na Biblioteca MSDN.

Como Fazer
Como Fazer uma exibio filtrada da Biblioteca MSDN que principalmente inclui documentos chamados Como ou Explicao Passo-a-passo que mostram como realizar uma tarefa especfica. Voc pode acessar a ajuda Como Fazer na barra de ferramentas Document Explorer ou no menu Help, ou na pgina inicial. Cada linguagem no Visual Studio tem sua prpria pgina Como Fazer, e a pgina que voc v depender do tipo de projeto que est atualmente ativo.

Ajuda Dinmica
A janela de ajuda dinmica exibe links para a documentao de referncia do Framework .NET e a linguagem C# baseada na posio atual do ponto de insero no editor de cdigo.

Implantando aplicativos C#
Implantao o processo pelo qual voc distribui um aplicativo concludo ou componente para ser instalado em outros computadores. Para aplicativos de console, ou aplicativos Smart Client com base em Windows Forms, duas opes de implantao esto disponveis: ClickOnce e o Windows Installer.

Implantao ClickOnce
Implantao ClickOnce permite a voc publicar aplicativos do Windows para um servidor Web ou para uma rede de compartilhamento de arquivos para instalao simplificada. Para a maioria dos cenrios, ClickOnce a opo recomendada para implantao porque permite a auto atualizao de aplicativos baseados no Windows que podem ser instalados e executados com a mnima interao do usurio. Para configurar propriedades de implantao ClickOnce, voc pode usar o Assistente de publicao (acessvel no menu Build) ou a pgina Publicar no Designer de Project.

O Windows Installer
Implantao do Windows Installer permite a voc criar pacotes de instalao a serem distribudos aos usurios; o usurio executa o arquivo de instalao e segue passos com um assistente para instalar o aplicativo. Isso feito, adicionando um projeto de instalao sua soluo; quando criado, ele cria um arquivo de instalao que voc distribui para os usurios; o usurio executa o arquivo de instalao e etapas com um assistente para instalar o aplicativo.

Como adicionar arquivos de configurao de aplicativos a projetos C#:


Voc pode personalizar como o Common Language Runtime localiza e carrega arquivos do conjunto, adicionando arquivos configurao Aplicativo (arquivos App.config) para seus projetos C#. Para obter mais informaes sobre arquivos de configurao de aplicativos, Como o tempo de execuo localiza conjuntos de mdulos (assemblies). Quando voc cria seu projeto, o ambiente de desenvolvimento cria uma cpia de seu arquivo App.config, altera o nome de arquivo para que ele tem o mesmo nome de seu executvel, de arquivo e move o novo arquivo.config no diretrio bin do automaticamente.

Apostila Visual Studio 2005

118

Para adicionar um arquivo de configurao do aplicativo ao seu projeto C#


1. No menu Project, clique em Add New Item. A Add New Item caixa de dilogo ser exibida. 2. Selecione o Application Configuration File modelo e clique em Add. Um arquivo chamado App.config adicionado ao seu projeto.

Recursos do Code Editor do Visual C#


Fornece ferramentas que ajudam a editar e navegar pelo seu cdigo Visual C#.

Refatorao
Refatorao o processo de melhorar seu cdigo depois ele foi gravado, alterando a estrutura interna do cdigo sem alterar o comportamento do cdigo externo. Visual C# fornece os seguintes comandos refactoring sobre o menu Refactoring: Extrair o mtodo Renomear Encapsular o campo Extrair a interface Promover varivel local para parmetro Remover parmetros Reordenar parmetros

Multi-Project Refactoring
O Visual Studio oferece suporte multi-Project refatorao. Todas as operaes que Corrigir referncias em arquivos refactoring corrigir essas referncias em todos os projetos de mesmo idioma. Isso funciona para quaisquer referncias projeto projeto-para-. Por exemplo, se voc tiver um aplicativo de console que referencia uma biblioteca de classes, quando voc renomeia um tipo de biblioteca (usando a Rename operao refactoring), classe as referncias para o tipo de biblioteca de classe no aplicativo do console tambm sero atualizadas.

Caixa de dilogo Alteraes de visualizao


Muitas operaes refactoring fornecem uma oportunidade para voc a revisar todas as alteraes de referncia que uma operao refactoring deve executar no seu cdigo, antes de confirmar a essas alteraes. Uma preView reference changes opo para estas operaes refactoring, ser exibido na caixa de dilogo refactoring. Aps selecionar essa opo e aceitar a operao refactoring, o Caixa de dilogo Alteraes de visualizao ser exibido. Observe que a PreView Changes caixa de dilogo tem duas exibies. A exibio inferior exibir seu cdigo com todas as atualizaes de referncia devido operao refactoring. Na caixa PreView Changes de dilogo pressionando Cancel ir parar a operao refactoring, e nenhuma alterao ser feita para o seu cdigo.

Tolerant erros Refactoring Apostila Visual Studio 2005 119

Refatorao erro falhas. Em outras palavras, voc pode executar um refatorao em um projeto que no possvel criar. O processo refactoring no Entretanto, nesses casos pode atualizar referncias ambguas corretamente.

Extrair o mtodo
Extract Method Uma Refatorao operao que oferece uma maneira fcil para criar um novo mtodo de um fragmento de cdigo em um membro existente. Usando Extract Method, voc pode criar um novo mtodo ao extrair uma seleo de cdigo de dentro do bloco de cdigo de um membro existente. O novo mtodo criado contendo o cdigo selecionado, e o cdigo selecionado em Membro existente ser substitudo por uma chamada para o novo mtodo. Transformar um fragmento do cdigo em seu prprio mtodo oferece voc a capacidade para rpida e precisa reorganizar cdigo para reutilizao melhor e legibilidade. Possui Extract Method os seguintes benefcios: Incentiva prticas Melhor codificao por enfatizando mtodos distintas, reutilizveis.

Incentiva Self-documenting cdigo atravs de organizao boa. Quando nomes descritivos so mtodos usado, de alto nvel podem ler mais como uma srie de .

Incentiva a criao de mtodos grained finer-para simplificar substituindo. Reduz Duplicao de cdigo.

Quando voc usar o Extract Method comando, o novo mtodo inserido aps o membro de origem na mesma classe. Tipos parcial Se a classe um tipo parcial, ento Extract Method gerar o novo mtodo imediatamente aps o membro de origem. Determina Extract Method a assinatura do novo mtodo, criando um mtodo esttico quando nenhum dado da instncia referido pelo cdigo no novo mtodo. Parmetros genricos tipo Quando voc extrai um mtodo que possui um parmetro de tipo genrico irrestrita, o cdigo gerado no adicionar o modificador " REF " para esse parmetro a menos que um valor atribudo a ele. Se ser o mtodo extrado suporte tipos de referncia como o argumento tipo genrico, depois voc deve adicionar o modificador " REF " para o parmetro na assinatura do mtodo manualmente. Mtodos annimo Caso voc tentar se extrair parte de um mtodo annimo que inclui uma referncia a uma varivel local que seja declarado ou referncia fora do mtodo Annimo, ento Visual Studio avisar voc sobre possveis alteraes semnticas. Especificamente, os minutos de quando o valor da varivel local passado para o mtodo annimo sero diferentes. Quando um mtodo annimo usa o valor de uma varivel local, o valor obtido no momento o mtodo annimo executado. Quando um mtodo annimo extrado no outro mtodo, o valor da varivel local obtido no momento da chamada para o mtodo extrado.

Apostila Visual Studio 2005

120

O exemplo a seguir ilustra essa alterao semntica. Se esse cdigo executado, ento 11 ser impressa para o console. Se voc usar mtodo extrair para extrair a regio da cdigo que marcado por de cdigo em seu prprio mtodo e executar o cdigo refactored, ento 10 ser impresso ao console.
class Program { delegate void D(); D d; static void Main(string[] args) { Program p = new Program(); int i = 10; /*begin extraction*/ p.d = delegate { Console.WriteLine(i++); }; /*end extraction*/ i++; p.d(); } }

Para contornar essa situao, faa as variveis locais que so usadas no mtodo Annimo, campos de classe.

Extrair caixa de dilogo Mtodo


Utilize esta caixa de dilogo para especificar o nome do novo mtodo que mtodo extrair ir gerar, e para verificar extrair mtodo que ir construir a nova assinatura mtodo conforme pretendido. Para acessar esta caixa de dilogo, selecione o Extract Method comando a partir do Refactor menu. Esta caixa de dilogo s estar disponvel quando a seleo de cdigo vlida para extrao para um mtodo. New method name Digite o nome do novo mtodo que gera mtodo extrair. PreView method signature Exibe uma visualizao da nova assinatura mtodo. A assinatura determinada automaticamente pelo mecanismo refactoring com base no cdigo selecionado, e ele no pode ser modificado na caixa de texto.

HOW TO: Refactor Code with mtodo extrao


O procedimento a seguir descreve como criar um novo mtodo de um fragmento de cdigo de um membro existente. Use este procedimento para executar a Extrair mtodo operao refactoring.

Para usar extrair mtodo


1. Crie um aplicativo de console conforme descrito no exemplo abaixo. Para obter mais informaes, Aplicativo de console. Na Editor de Cdigo, selecione o fragmento de cdigo que voc deseja extrair:
double area = PI * radius * radius.

Apostila Visual Studio 2005

121

Selecione Extract Method no menu Refactor. O Extrair caixa de dilogo Mtodo aparece. Voc tambm pode digitar o atalho de teclado CTRL + R, CTRL+M para exibir a caixa de dilogo Mtodo extrair. Voc pode clique com o boto direito do mouse no cdigo selecionado tambm, aponte para Refactor no menu de contexto, e, em seguida, clique Extract Method para exibir a caixa de dilogo Mtodo extrair 2. Especifique um nome para o novo mtodo na caixa New Method Name de texto, como CircleArea. Uma visualizao da nova assinatura mtodo aparece abaixo PreView Method Signature. 3. Clique no OK boto.

Exemplo
Para configurar neste exemplo, criar um aplicativo de console chamado ExtractMethod, e seguida, substitua Class1 com o cdigo a seguir. Para obter mais informaes, Aplicativo de console.
class A { const double PI = 3.141592; double { // // // // // // // CalculatePaintNeeded(double paintPerUnit, double radius) Select any of the following: 1. The entire next line of code. 2. The right-hand side of the next line of code. 3. Just "PI *" of the right-hand side of the next line of code (to see the prompt for selection expansion). 4. All code within the method body. ...Then invoke Extract Method.

double area = PI * radius * radius; return area / paintPerUnit; } }

Trechos de cdigos (C#)


O Visual Studio fornece um novo recurso chamado trechos . de cdigo Voc pode usar trechos de cdigo para digitar um alias curta, e ento expandi-lo em uma construo de programao comuns. Por exemplo, o for trecho de cdigo cria um loop vazia for. Alguns trechos de cdigo so surround-com trechos de cdigo, que permitem que voc se selecionar linhas de cdigo, escolha um trecho de cdigo que ir incorporar as linhas de cdigo selecionadas. Por exemplo, selecionar linhas de cdigo depois ativar o for trecho de cdigo cria um for loop com essas linhas de cdigo dentro do bloco loop. Trechos de cdigo podem tornar programa escrever cdigo mais rpido, mais fcil, e mais confivel.

Usando trechos de cdigo Apostila Visual Studio 2005 122

Trechos de Cdigo normalmente so usados no Editor do cdigo digitando um nome curto para o alias um atalho trecho de cdigo e pressionar TAB. O menu IntelliSense tambm oferece um Insert Code Snippet Comando de menu, fornecendo uma lista de trechos de cdigo disponvel para ser inserida no Editor de Cdigo. Voc pode ativar a lista trecho de cdigo, digitando Ctrl+K, depois X. Para obter mais informaes, COMO: Usar trechos de cdigo (C#) e COMO: Usar trechos de cdigo circunscritos. Aps um trecho de cdigo tenha sido escolhido, o texto do trecho de cdigo inserido automaticamente na posio do cursor. Nesse ponto, os campos editveis no trecho de cdigo so realados em amarelo, e o primeiro campo editvel selecionado automaticamente. O campo selecionado no momento Boxed em vermelho. No for trecho de cdigo, por exemplo, os campos editveis esto a varivel inicializador (i por padro (length). e a expresso comprimento) por padro Quando um campo selecionado, os usurios podem digitar um novo valor para o campo. Pressionar TAB percorre os campos do trecho de cdigo editveis; pressionando SHIFT + TAB ciclos atravs de em ordem inversa. Clicar em um campo coloca o cursor no campo, e duas vezes em um campo selecion-lo. Quando um campo estiver realado, uma dica de ferramenta pode ser exibida, oferecendo uma descrio do campo. Somente a primeira instncia de um determinado campo editvel; quando esse campo estiver realado, as outras instncias do campo so descritas. Quando voc alterar o valor de um campo editvel, esse campo alterado em todos os lugares ele usado no trecho de cdigo. Pressionar ENTER ou ESC ser cancelar a edio de campo e retorne o editor de cdigo para Normal. As cores padro para campos trecho, cdigos editveis podem ser alteradas, modificando a Code Snippet Field configurao no painel Fonts and Colors da caixa Options de dilogo.

Criar trechos de cdigo


Voc pode criar e utilizar trechos de cdigo personalizado, juntamente com os trechos de cdigo que esto includos com o Visual Studio por padro. Observao Para trechos de cdigo C#, os caracteres que so vlidos para especificar o < atalho > campo so: caracteres alfanumricos, sinal numrico (#), o caractere til (~), o caractere de sublinhado (_), e o hfen trao caractere (-). Para obter mais informaes sobre trechos de cdigo que esto includos na Visual C# por padro, Trechos de cdigo padro (http://msdnwiki.microsoft.com/ptbr/mtpswiki/z41h7fat(VS.80).aspx).

Trechos de cdigo padro


O Code Snippet Inserter insere um trecho de cdigo no local do cursor, ou insere um trecho de cdigo com surround-ao redor o cdigo atualmente selecionado. Do Insert Code Snippet o Code Snippet Inserter chamado atravs de ou Surround With comandos no menu IntelliSense, ou usando os atalhos de teclado CTRL+K, e X e CTRL+K, e S respectivamente.

Apostila Visual Studio 2005

123

O Code Snippet Inserter exibe o nome trecho de cdigo para todos os trechos de cdigo de cdigo disponveis. O Code Snippet Inserter tambm inclui uma caixa de entrada dilogo onde voc pode digitar o nome do trecho de cdigo, ou parte do nome trecho do cdigo. O Code Snippet Inserter reala a correspondncia mais prxima ao nome trecho de cdigo. Pressionar TAB a qualquer momento descartar o Code Snippet Inserter e inserir o trecho de cdigo atualmente selecionado. Digitando ESC ou clicar o mouse no Editor do cdigo ir descartar o Code Snippet Inserter sem inserir um trecho de cdigo.

Trechos de cdigo padro


Os trechos de cdigo a seguir so includos no Visual Studio por padro. ome (ou alho) #IF #Region ~ attribute escrio Cria uma #IF diretiva e uma #endif diretiva. Cria uma #Region diretiva e uma #endregion diretiva. Cria um destruidor para a classe que contm. Cria uma declarao de uma classe que deriva de Attribute. ara inserir trecho locais lidos Qualquer lugar. Qualquer lugar. Em uma classe. Dentro de um namespace (incluindo o namespace global), uma classe, ou uma estrutura. Dentro de um mtodo, um indexador, um acessador Propriedade, ou um assessor de evento. Dentro de um namespace (incluindo o namespace global), uma classe, ou uma estrutura. Em uma classe. Dentro de um mtodo, um indexador, um acessador Propriedade, ou um assessor de evento. Dentro de um mtodo, um indexador, um acessador Propriedade, ou um assessor de evento.

Marcada

Cria um Marcada bloco.

Classe

Cria uma declarao de classe.

Construtor cW

Cria um construtor para a classe que contm. Cria uma chamada para WriteLine.

Fazer

Cria um Fazer pouco loop.

Apostila Visual Studio 2005

124

Pessoa

Cria um Pessoa bloco.

Dentro de um mtodo, um indexador, um acessador Propriedade, ou um assessor de evento. Dentro de um namespace (incluindo o namespace global), uma classe, ou uma estrutura. Dentro de uma classe ou uma estrutura. Dentro de um namespace (incluindo o namespace global), uma classe, ou uma estrutura. Dentro de um mtodo, um indexador, um acessador Propriedade, ou um assessor de evento. Dentro de um mtodo, um indexador, um acessador Propriedade, ou um assessor de evento. Dentro de um mtodo, um indexador, um acessador Propriedade, ou um assessor de evento. Dentro de um mtodo, um indexador, um acessador Propriedade, ou um assessor de evento. Dentro de uma classe ou uma estrutura. Dentro de um namespace (incluindo o namespace global), uma classe, ou uma estrutura. Dentro de um mtodo,

Enum

Cria uma Enum Declarao.

igual a

Cria uma declarao de mtodo que substitui o Equals mtodo definido na classe Object. Cria uma declarao de uma classe que deriva de uma exceo (Exception por padro.)

Exceo

Para

Cria um Para loop.

foreach

Cria um foreach loop.

forr

Cria um Para loop que decrements a varivel loop aps cada iterao.

Se

Cria um Se bloco.

Indexador Interface

Cria uma declarao indexador. Cria uma Interface Declarao.

Chamar

Cria um bloco com segurana que invoca

Apostila Visual Studio 2005

125

um evento.

um indexador, um acessador Propriedade, ou um assessor de evento. Dentro de uma classe ou uma estrutura. Dentro de uma classe ou uma estrutura. Dentro de um mtodo, um indexador, um acessador Propriedade, ou um assessor de evento. Dentro de um mtodo, um indexador, um acessador Propriedade, ou um assessor de evento. No namespace (incluindo o namespace global). Dentro de uma classe ou uma estrutura. Dentro de uma classe ou uma estrutura. Dentro de uma classe ou uma estrutura. Dentro de um namespace (incluindo o namespace global), uma classe, ou uma estrutura. Dentro de uma classe ou uma estrutura. Dentro de um mtodo, um indexador, um acessador Propriedade, ou um assessor de evento. Dentro de um mtodo, um indexador, um acessador Propriedade, ou um assessor de

iterador iterindex

Cria um iterador. Cria um par iterador e indexador " nomeado ", utilizando uma classe aninhada. Cria um Bloqueio bloco.

Bloqueio

mbox

Cria uma chamada para System.Windows.Forms.MessageBox.Show. Voc talvez precise adicionar uma referncia ao System.Windows.Forms.dll. Cria uma Namespace Declarao.

Namespace

prop propg

Cria uma declarao de propriedade e um campo fazendo. Cria uma declarao de propriedade com apenas um acessador " GET " e um campo fazendo. Cria uma Esttico Int declarao de mtodo principal. Cria uma struct Declarao.

Sim struct

svm Alternar

Cria uma Esttico Void declarao de mtodo principal. Cria um Alternar bloco.

Tente

Cria um Catch try- bloco.

Apostila Visual Studio 2005

126

evento. tryf Cria um finally try- bloco. Dentro de um mtodo, um indexador, um acessador Propriedade, ou um assessor de evento. Dentro de um mtodo, um indexador, um acessador Propriedade, ou um assessor de evento. Dentro de um mtodo, um indexador, um acessador Propriedade, ou um assessor de evento. No namespace (incluindo o namespace global). Dentro de um mtodo, um indexador, um acessador Propriedade, ou um assessor de evento.

desmarcada

Cria um desmarcada bloco.

No seguro

Cria um No seguro bloco.

Usando

Cria uma Usando diretiva.

Tempo

Cria um Tempo loop.

Atalhos permitem IntelliSense para preencher automaticamente sem usar um menu trechos de cdigo no Editor do cdigo.

COMO: Usar trechos de cdigo (C#)


Os procedimentos a seguir descrevem como usar trechos de cdigo. Trechos de Cdigo esto disponveis em cinco maneiras: por um atalho do teclado, atravs do IntelliSense Preenchimento Automtico, atravs do IntelliSense Concluir lista Palavra, atravs do menu Editar, e atravs do menu de contexto.

Para usar trechos de cdigo atravs de atalho de teclado


1. No Visual Studio IDE, abra o arquivo que voc pretende editar. 2. No Editor do cdigo, coloque o cursor onde voc deseja inserir o trecho de cdigo. 3. Digite Ctrl+K, CTRL+X. 4. Selecionar o trecho de cdigo a inserter trecho de cdigo e pressione TAB ou ENTER. Como alternativa, voc pode digitar o nome do trecho de cdigo, e pressione TAB ou ENTER.

Para usar trechos de cdigo atravs do IntelliSense preenchimento automtico


1. No Visual Studio IDE, abra o arquivo que voc pretende editar.

Apostila Visual Studio 2005

127

2. No Editor do cdigo, coloque o cursor onde voc deseja inserir o trecho de cdigo. 3. Digite o atalho para o trecho de cdigo que voc deseja adicionar ao seu cdigo. 4. Tipo TAB, TAB para invocar o trecho de cdigo.

Para usar trechos de cdigo atravs da lista Word concluda IntelliSense


1. No Visual Studio IDE, abra o arquivo que voc pretende editar. 2. No Editor do cdigo, coloque o cursor onde voc deseja inserir o trecho de cdigo. 3. Comece a digitar o atalho para o trecho de cdigo que voc deseja adicionar ao seu cdigo. Se o preenchimento automtico estiver ativado, a lista palavra completa do IntelliSense ser exibida. Se ele no aparecer, seguida, pressione CTRL + ESPAO para ativ-la. 4. Selecione o trecho de cdigo na lista Palavra completa. 5. Tipo TAB, TAB para invocar o trecho de cdigo.

Para usar trechos de cdigo atravs do menu Editar


1. No Visual Studio IDE, abra o arquivo que voc pretende editar. 2. No Editor do cdigo, coloque o cursor onde voc deseja inserir o trecho de cdigo. 3. No menu Edit, selecione IntelliSense e selecione o Insert Snippet comando. 4. Selecionar o trecho de cdigo a inserter trecho de cdigo e pressione TAB ou ENTER. Como alternativa, voc pode digitar o nome do trecho de cdigo, e pressione TAB ou ENTER.

Para usar trechos de cdigo atravs do menu de contexto


1. No Visual Studio IDE, abra o arquivo que voc pretende editar. 2. No Editor do cdigo, coloque o cursor onde voc deseja inserir o trecho de cdigo. 3. Clique com o boto direito do mouse o cursor e selecione o Insert Snippet Comando do menu de contexto. 4. Selecionar o trecho de cdigo a inserter trecho de cdigo e pressione TAB ou ENTER. Como alternativa, voc pode digitar o nome do trecho de cdigo, e pressione TAB ou ENTER.

COMO: Usar trechos de cdigo circunscritos


Os procedimentos a seguir descrevem como usar surround-com trechos de cdigo. Surround-com trechos de cdigo esto disponveis trs maneiras: por um atalho do teclado, atravs do menu Editar, e atravs do menu de contexto.

Para usar trechos de cdigo atravs de atalho do teclado com surround1. No Visual Studio IDE, abra o arquivo que voc pretende editar.

Apostila Visual Studio 2005

128

2. No Editor do cdigo, selecione Texto para cercar. 3. Digite Ctrl+K, CTRL+S. 4. Selecione o trecho de cdigo a partir da lista trecho de cdigo usando o mouse, ou, digitando o nome do trecho de cdigo e pressionando TAB ou ENTER.

Para usar trechos de cdigo atravs do menu Editar com surround1. No Visual Studio IDE, abra o arquivo que voc pretende editar. 2. No Editor do cdigo, selecione Texto para cercar. 3. No menu Edit, selecione IntelliSense e selecione o Surround With comando. 4. Selecionar o trecho de cdigo a inserter trecho de cdigo e pressione TAB ou ENTER. Como alternativa, voc pode digitar o nome do trecho de cdigo, e pressione TAB ou ENTER.

Para usar trechos de cdigo atravs do menu de contexto com surround1. No Visual Studio IDE, abra o arquivo que voc pretende editar. 2. No Editor do cdigo, selecione Texto para cercar. 3. Clique com o boto direito do mouse no texto selecionado e selecione o Surround With Comando do menu de contexto. 4. Selecionar o trecho de cdigo a inserter trecho de cdigo e pressione TAB ou ENTER. Como alternativa, voc pode digitar o nome do trecho de cdigo, e pressione TAB ou ENTER.

Como restaurar C# Refactoring trechos:


Operaes refactoring C# dependem trechos de cdigo encontrados no seguinte diretrio: \Refactoring \Snippets\ language ID # \Microsoft Installation directory 8\VC Visual Studio Se nesse diretrio Refactoring, ou quaisquer arquivos neste diretrio so excludo ou corrompido, depois C# refatorao operaes no funcione no IDE. Os procedimentos a seguir podem ajud-lo restaurar C# refatorao trechos de cdigo.

Para verificar C# trechos refactoring esto disponveis atravs do Gerenciador trechos de cdigo
1. No menu Tools, selecione Code Snippet Manager. 2. Na caixa Code Snippet Manager de dilogo, selecione Visual C# Na lista Language drop-down. Uma Refactoring pasta deve aparecer na lista de pastas Modo de rvore.

Para restaurar refactoring trechos no Gerenciador trechos de cdigo


1. No menu Tools, selecione Code Snippet Manager.

Apostila Visual Studio 2005

129

2. Na caixa Code Snippet Manager de dilogo, selecione Visual C# Na lista Language drop-down. 3. Clique em Add. A Code Snippets Directory caixa de dilogo, que ajuda a localizar e especificar a pasta para adicionar volta para o gerenciador trechos de cdigo, ser exibida. 4. Localize a Refactoring pasta cujo caminho de diretrio : \Refactoring \Snippets\ language ID # \Microsoft Installation directory 8\VC Visual Studio 5. Na caixa Code Snippets Directory de dilogo, clique Open em OK no Code Snippets Manager.

Para reparar Refactoring diretrio trechos de cdigo


1. Na caixa Code Snippet Manager de dilogo, clique em Search Online. 2. Digite refatorao, e clique em Search. Resultados da pesquisa de deve incluir um site que permite que voc fazer o download do arquivo que voc pode usar para reinstalar a pasta Refactoring.VSI.

Cdigo Colorization
Editor de Cdigo analisa tokens e cdigo constri para que sejam facilmente reconhecvel e distinguishable de outros contedos de cdigo no Editor de Cdigo. Aps o Editor de Cdigo analisa seu cdigo, ele colorizes construes de cdigo adequadamente.

Smbolos
Editor de Cdigo colorizes o seguinte token tipos. Comment Cdigo excludo Identificador Keyword Nmero Operador Palavra-chave pr-processamento String Seqncia (C# @ Verbatim) Tipos de usurio Usurio tipos (tipos valor) Tipos de usurio (interface) Usurio tipos (enums)

Apostila Visual Studio 2005

130

Usurio tipos (representantes) Seo CDATA XML Comentrio XML Atributo doc XML Comentrio XML doc Marca doc XML Voc pode modificar colorization padro da configurao usando o Fontes e cores, Ambiente, caixa de dilogo Opes.

Palavras-chave contextuais
Editor de Cdigo colorizes palavras-chave contextuais adequadamente. O exemplo a seguir, o tipo yield est colorized turquesa, enquanto a palavra yield est azul colorized.

Brace Colorization correspondncia


Editor de Cdigo facilita colorization negrito ou colorization de realce para Brace correspondncia.

Negrito Colorization
Quando voc editar qualquer uma dos pares construo de cdigo a seguir a seqncia, ou pares construo de cdigo rapidamente so exibidos em negrito para indicar uma associao entre elas: "" @" " #if, #endif #region, #endregion Uma seqncia Uma seqncia verbatim Pr-processamento diretivas para sees condicionais Pr-processamento diretivas para sees condicionais

Apostila Visual Studio 2005

131

case, break default, break for, break for, continue foreach, break foreach, continue while, break while, continue

Palavras-chave instruo controle Palavras-chave instruo controle Palavras-chave expresso avaliao Palavras-chave expresso avaliao Palavras-chave expresso avaliao Palavras-chave expresso avaliao Palavras-chave expresso avaliao Palavras-chave expresso avaliao

Voc pode desativar este recurso por unselecting a Automatic delimiter highlighting propriedade no Geral, editor de texto, caixa de dilogo Opes.

Realar Colorization
Quando o cursor est posicionado imediatamente antes um delimitador inicial, ou imediatamente aps um delimitador de trmino, retngulos cinza aparecem para realar tanto inicial e final delimitadores para indicar uma associao entre eles. Esse recurso est disponvel para os seguintes pares correspondentes: {} [] () Chaves Colchetes Parntese

Exemplo
Para ilustrar Brace correspondncia colorization, digite fazer (No copie e cole) o cdigo a seguir no Editor de Cdigo.
class A { public A() { if(true) int x =0; else int x =1; } }

Configuraes colorization
Configuraes colorization so persistentes atravs de Configuraes do Visual Studio.

Apostila Visual Studio 2005

132

Metadados como fonte


Metadados como fonte permite-lhe Exibir metadados que aparece como C# cdigofonte em um buffer somente leitura. Isso permite que um modo de exibio das declaraes dos tipos e membros (com nenhum implementaes). Voc pode exibir metadados como origem ao executar o Go To Definition Comando para tipos ou membros cujo cdigo de fonte no est disponvel do seu projeto ou soluo. Observao Quando voc tenta executar o Go To Definition Comando para tipos ou membros marcados como internos, o IDE (ambiente de desenvolvimento integrado) no exibe seus metadados como fonte, independentemente do se o conjunto de referncia um amigo ou no. Voc pode exibir metadados como fonte no Editor de Cdigo ou a Code Definition janela.

Exibindo metadados como no Editor do cdigo fonte


Quando voc executa o Go To Definition comando para um item cujo cdigo de fonte no estiver disponvel, um documento que contm uma exibio de metadados, esse item exibido como fonte, com guias exibida no editor do cdigo. O nome do tipo, seguido por [from metadata], aparecer na guia do documento. Por exemplo, se voc executar o Go To Definition comando para Console metadados de Console aparece no Editor do cdigo como cdigo fonte C# que parea como sua declarao, mas com nenhum implementao.

Exibindo metadados como fonte no Code Definition Window

Apostila Visual Studio 2005

133

Quando a Code Definition janela estiver ativa ou visvel, o IDE executa automaticamente o Go To Definition Comando para itens sob o cursor no Editor do cdigo e para itens que esto selecionados no Class View ou o Object Browser. Se o cdigo fonte no est disponvel para esse item, o IDE exibir metadados do item como origem na janela Code Definition. Por exemplo, se voc colocar o cursor dentro a palavra Console no Editor do cdigo, metadados para Console aparecer como fonte na janela Code Definition. A fonte procura algo como a Console declarao, mas com nenhum implementao. Se voc deseja ver a Declarao de um item que aparece na janela Code Definition, voc deve usar o Go To Definition comando porque a Code Definition janela apenas um nvel de profundidade explicitamente

Configuraes da IDE Visual C#


Visual configuraes C# so uma configurao de janelas de ferramentas, menus e atalhos de teclado predefinida. Essas configuraes so parte do recurso Configuraes do Visual Studio, que voc pode personalizar para ajustar seus hbitos de trabalho.

Windows e modos de exibio


ecurso
Class View

xibido por adro? No

bservaes Exibir de classe est disponvel no menu View. Filtragem est ativada.

Janela de Comando Dynamic Help Window

No No Pressionar a tecla F1 no exibe a janela da Ajuda dinmica. No exibida membros herdados por padro.

Pesquisador de objetos Janela Output Solution Explorer Start Page Lista de tarefas (Visual Studio) Toolbox

No No Sim Sim, quando voc inicia o IDE No Sim, quando voc cria um aplicativo do Windows Forms

Explorer de soluo aparece encaixado no lado direito de IDE. A pgina inicial Exibe artigos na alimentao RSS MSDN no Visual C#.

A caixa de ferramentas aparece como uma janela que encaixada no lado esquerdo de IDE recolhida.

Apostila Visual Studio 2005

134

Teclado
ecurso omportamento

Teclas de atalho Essas configuraes de chave de atalho oferece suporte Visual C#: Emulao breve Emulao Emacs Visual C++ 2,0 padro teclas de atalho Teclas de atalho padro Studio 6.0 Visual

Apostila Visual Studio 2005

135

A Ajuda no Visual Studio


A coleo de Ajuda do Visual Studio apresenta informaes sobre linguagens, designers, e tecnologias em uma variedade de formas. Use os seguintes links para ler mais sobre como voc pode obter a ajuda que precisa, quando voc necessitar.

Convenes de documento (Visual Studio)


Este conjunto de documentaes usa as seguintes convenes tipogrficas. xemplo escrio

Sub TextRangeExample()End Sub Esta fonte e esta cor so usadas para cdigo.

tup

Na sintaxe, as palavras que voc instrudo a digitar aparecem em negrito. No texto, negrito usado para identificar os nomes de menus, opes, caixas de dilogo, e outros itens nomeados na interface do usurio. Na sintaxe e no texto, letras em itlico podem indicar espaos reservados para informaes que voc fornecer. Na sintaxe, itens dentro de colchetes so opcionais. Na sintaxe, itens sublinhados so variveis. Na sintaxe, chaves e uma barra vertical indicam uma escolha entre dois ou mais itens. Voc deve escolher um dos itens a menos que todos os itens tambm estejam colocados entre colchetes. Letras maisculas so usadas para os nomes de teclas e seqncias de teclas, como ENTER e CTRL+R. Um sinal de mais (+) entre nomes de teclas indica uma combinao de teclas. Por exemplo, ALT + F1 significa manter pressionada a tecla ALT enquanto pressiona a tecla F1. Outras teclas de navegao so chamadas pelos seus nomes especficos. Teclas de direo individuais so referenciadas pela direo da seta na parte superior da tecla (esquerda, direita, cima, ou baixo). A frase "teclas de direo" usada para descrever estas teclas coletivamente.

variable

[expressionlist] variable {While | Until}

ENTER

ALT + F1

BACKSPACE, HOME SETA PARA BAIXO

C:\MyProjects\MyWebPage.htm Caminhos e nomes de arquivo so fornecidos com letras maisculas e minsculas misturadas.

Apostila Visual Studio 2005

136

Elementos em Tpicos da Ajuda


, Recolher tudo, e opes de Filtro de linguagem aparecem no cabealho acima do ttulo de um tpico. Esses elementos permitem que voc visualize rapidamente informaes relacionadas, exiba somente ttulos de cabealho, ou escolha tpicos especficos nas opes de filtro de linguagem, respectivamente. ara Localizar tpicos relacionados Exibir somente ttulo de tpicos Recolher tudo emento escrio Navega para o fim do tpico onde uma lista de tpicos que contm informaes relacionadas ao tpico atual aparece. Oculta todo contedo dentro de um tpico. Exibe uma lista de linguagens, como Visual Basic. Selecionando um dos filtros de linguagem o contedo do tpico ser especfico para aquela linguagem. Selecione Todas para exibir todas as informaes no tpico, independentemente de qual linguagem se aplique.

Mostrar apenas Filtro de informaes linguagem relacionadas a uma linguagem especfica.

Estratgias para usar a Ajuda


A Ajuda do Visual Studio est totalmente integrada com o ambiente de desenvolvimento (IDE), em um esforo para prover as informaes necessrias com base no contexto de seu esforo de desenvolvimento. Para aumentar sua eficincia no uso da IDE, voc pode considerar as situaes gerais em que a Ajuda pode benefici-lo e onde voc pode buscar a Ajuda em cada situao.

Ajuda disponvel quando voc precisar dela


Voc pode encontrar ajuda que adequada sua situao atual. Quando voc abre a caixa pela primeira vez e deseja informaes sobre a instalao e as ltimas melhorias no produto ou na documentao, o Leiame contm notcias de ltimo minuto e observaes sobre o produto. Voc tambm encontra as ltimas notcias e atualizaes em Microsoft.com.

Enquanto trabalha no ambiente de desenvolvimento integrado (IDE), a janela de Ajuda Dinmica pode exibir uma escolha de links para tpicos relacionados ao seu trabalho atual. Os tpicos podem conter procedimentos para completar uma tarefa, um explicao passo a passo projetada para introduzir novas tecnologias, ou prticas de programao para concluir partes de um esforo de desenvolvimento. Outras categorias de Ajuda Dinmica incluem exemplos e tpicos de treinamento relacionados. Voc pode exibir a janela da Ajuda Dinmica digitando Help.DynamicHelp na Janela de comando. Obviamente, a Ajuda atravs de F1 exibe os tpicos de referncia com base nos elementos de interface de usurio que voc selecionar ou nas mensagens de erro exibidas. Voc pode especificar um contexto para a janela da Ajuda Dinmica,

Apostila Visual Studio 2005

137

selecionando vrios pontos no ambiente de desenvolvimento integrado. A Ajuda atravs de F1 exibe os tpicos de referncia baseados nos elementos de UI que voc selecionar ou nas mensagens de erro exibidas. Enquanto voc estiver criando objetos e codificando suas funcionalidades, os editores podem oferecer a concluso de uma instruo que apresenta as informaes de sintaxe de palavras-chave, propriedades e mtodos que voc precisa. Se voc deseja examinar a funcionalidade de uma biblioteca ou de um objeto mais detalhadamente, voc pode utilizar o Pesquisador de Objetos. Se voc desejar ainda mais informaes sobre o uso e os recursos de um elemento em um idioma especfico, voc pode usar a Ajuda atravs de F1 para exibir o tpico de referncia de idiomas.

Quando a janela Dynamic Help e a ajuda atravs de F1 no atendem s suas necessidades, voc pode usar o ndice de Palavras-Chave, a Busca por Texto Completo, a pgina Como fao, e o Sumrio fornecidos pelo Microsoft Document Explorer. Usando a MSDN Library, voc pode pesquisar por vrias tecnologias novas. A biblioteca inclui peridicos e artigos tcnicos. Alm disso, voc tambm pode optar por procurar fontes de Ajuda on-line, como o Code Wise Community e a MSDN on-line.

Tipos de Ajuda e onde localiz-la


Embora os tpicos da Ajuda apresentem informaes em uma variedade de formas, cada uma foi desenvolvida para permitir que voc atinja um dos os seguintes objetivos:

Localizar sintaxe, referncia da linguagem e componentes Atingir uma meta ou executar uma tarefa Pesquisar e compreender

Localizar sintaxe, referncia da linguagem, e componentes


Se voc estiver procurando informaes ao escrever seu cdigo, voc pode tentar as sugestes a seguir. e voc deseja Usar uma palavra-chave especfica e aprender sobre sua sintaxe ente Concluso de instruo do editor Pesquisador de objetos Referncia da linguagem (F1) ndice Pesquisa Sumrio Concluso de instruo do editor Referncia da linguagem Exemplos Referncia da interface de usurio (Shift + F1)

Localizar uma palavra-chave que fornece uma certa funcionalidade Ler sobre um editor ao editar um documento

Atingir uma meta ou executar uma tarefa


Se voc sabe o que deseja fazer e estiver procurando por idias sobre como fazlo, voc pode tentar as sugestes a seguir.

Apostila Visual Studio 2005

138

e voc deseja Criar algo novo

ente Janela de Ajuda Dinmica Tpicos com explicao passo a passo Exemplos ndice

Usar janelas, caixas de dilogo, designers Ajuda atravs de F1 e ferramentas Janela de Ajuda Dinmica Janela de contedos Resolver problemas indicados por mensagens de erro Ajuda atravs de F1 Tpicos de mensagem de erro Artigos na KB (http://support.microsoft.com)

Pesquisando e entendendo
Se voc estiver interessado em mais descries e explicaes para que voc possa compreender melhor o que est disponvel, recomendado, ou como algo funciona, tente as seguintes sugestes. e voc desejar obter mais informaes sobre Uma tecnologia especfica e seus usos ente Tpicos O que h de novo Janela de ndice Janela de pesquisa Janela de Ajuda Dinmica Exemplos Tpicos O que h de novo Janela de Ajuda Dinmica Janela de ndice Janela de pesquisa Janela de contedos Janela de Ajuda Dinmica Janela de ndice Janela de pesquisa Exemplos Exemplos de referncia da linguagem Exemplos Janela de contedos Links Janela de contedos Janela de ndice Janela de pesquisa

Tecnologias existentes, o que for novo e o que foi alterado.

Modificando e atualizando esforos de desenvolvimento existentes

Aprendendo a programar usando o Visual Studio

Informaes relacionadas ao tpico aberto no momento

Apostila Visual Studio 2005

139

Verses localizadas da documentao em ingls Alm de ingls, a documentao do Visual Studio est disponvel em oito idiomas on-line. ioma Francs Italiano Alemo Espanhol te http://msdn.microsoft.com/Library/fre/ http://msdn.microsoft.com/Library/ITA/ http://msdn.microsoft.com/Library/deu/ http://msdn.microsoft.com/Library/SPA/

COMO: Baixar arquivos de exemplo nos tpicos da Ajuda


Voc pode usar o Sample Viewer para copiar arquivos-fonte para obter um exemplo para o seu computador que possa ser aberto no Visual Studio posteriormente. Voc tambm pode ver exemplos de arquivos-fonte no-binrios diretamente na Ajuda. Observao Os exemplos so armazenados em arquivos .zip. necessrio ter um software instalado em seu computador para descompactar os arquivos. O Windows 2000 no inclui um utilitrio descompactador por padro, mas as verses posteriores do Windows o possuem.

Copiando arquivos de exemplo


Voc pode copiar arquivos de exemplo para o seu computador de forma que voc possa abrir e editar os exemplos no ambiente de desenvolvimento integrado (IDE).

Para copiar os arquivos-fonte de um exemplo para o seu computador


3. Na janela de documento, clique no boto Download Sample localizado na parte superior da janela lista Sample Files. 4. Descompacte o arquivo de exemplo. Observao Dependendo da verso do sistema operacional, os arquivos de exemplo podem ser descompactados automaticamente para voc; voc tambm pode ser solicitado para descompactar os arquivos usando um utilitrio. Em outros casos, talvez seja necessrio descompactar os arquivos manualmente Os arquivos so copiados para a localidade que voc especificou. Voc pode abrir o exemplo posteriormente, diretamente a partir da IDE ou da localidade que voc especificou.

Abrindo arquivos de exemplo no IDE


Depois que voc tiver copiado os arquivos de exemplo no seu computador ou compartilhamento de rede, voc pode abrir os arquivos no IDE.

Apostila Visual Studio 2005

140

Para abrir arquivos de exemplo no IDE


5. Inicie o Visual Studio. 6. No menu File, clique em Open Project. 7. Na caixa de dilogo Open Project, procure a localidade onde voc salvou os arquivos de exemplo e selecione *.SLN or *.* proj file para encontrar o exemplo. 8. Clique em Open. A soluo, o projeto, e os arquivos relacionados so exibidos no Solution Explorer. Agora voc pode editar e criar os arquivos de exemplo.

Abrindo arquivos-fonte no-binrios


Voc pode abrir arquivos-fonte no-binrios diretamente do Sample Viewer.

Para exibir um arquivo-fonte no-binrio


3. Na janela lista Sample Files, selecione o arquivo que voc deseja exibir. 4. Clique no boto Open localizado na parte superior da janela lista Sample Files. O contedo do arquivo exibido na janela do documento.

Filtros de Ajuda do Visual Studio


A documentao do Visual Studio inclui vrios filtros predefinidos que ajudam a definir os itens que aparecem nas janelas Contedo e ndice. Esses filtros no afetam a Busca. Voc pode alterar seu filtro atual na lista Filtered by drop-down encontrada nas janelas Index e Contents da Ajuda.

Filtros de Contedo e ndice


O Visual Studio inclui filtros predefinidos para uso nas janelas Contedo e ndice. Esses filtros no afetam a Busca.

Filtros de produto e tecnologia


Os filtros a seguir esto disponveis no MSDN Library para as janelas Contedo e ndice. ermo NET Framework escrio Inclui a documentao principal para o .NET Framework SDK e referncias de idioma mas exclui informaes especficas ao desenvolvimento no ambiente de desenvolvimento do Visual Studio. Inclui Documentao do Exchange Server, Biztalk Server, Commerce Server e do SQL Server, entre outros. Inclui a documentao principal para ferramentas do Visual Studio do Microsoft Office System mais o Visual Basic, Visual C# e os conjuntos de documentao .NET Framework SDK, entre outros. Inclui documentao sobre IIS, COM, DirectX, ADO, MSDE,

Enterprise Severs Desenvolvimento Office

Platform SDK

Apostila Visual Studio 2005

141

DHTML, XML, Microsoft Management Console, OLE DB, da API do Win32, e uma variedade de outras tecnologias a nvel de sistema. Smart Device Development Inclui a documentao principal para o subconjunto do .NET Framework SDK disponveis nos tpicos .NET Compact Framework e tpicos sobre Visual Studio, Visual Basic, ,Visual C#, Visual C++, ATL, e MFC relacionados ao Smart Device Development, entre outros. Inclui a documentao principal do Visual Studio Team System mais Microsoft Document Explorer Help. Projetado para desenvolvedores que codificam aplicativos Windows ou aplicativos Web com o Visual Basic. O ncleo do .NET Framework SDK, ASP.NET, Visual Web Developer e conjuntos de documentao Win32 e COM so includos, entre outros. No inclui tpicos no MSDN que se aplicam a verses anteriores do Visual Basic. Projetado para desenvolvedores que codificam aplicativos do Windows ou aplicativos Web em C#. Os conjuntos principais de documentao .NET Framework SDK, DHTML (Hypertext Markup Language, linguagem de marcao de hipertexto), ASP.NET, Visual Web Developer, e XML so includas, entre outros. Inclui a documentao principal do Visual C++ , a documentao do Platform SDK, e a documentao do .NET Framework, entre outros. No inclui material do C#. Projetado para desenvolvedores que codificam aplicativos do Windows ou aplicativos Web em J#. Os conjuntos principais de documentao do .NET Framework SDK, Visual Web Developer, ASP.NET e DHTML so includos, entre outros Inclui a documentao principal do Visual Studio Team System mais documentao geral do Visual Studio, a documentao principal do .NET Framework SDK, documentao selecionado sobre desenvolvimento da Web e documentao do SQL Server, entre outros. Inclui a principal documentao do Visual Web Developer mais os conjuntos ASP.NET, HTML, CSS, DHTML (Dynamic Hypertext Markup Language, linguagem de marcao de hipertexto dinmica), e a documentao .NET Framework, entre outros

Team Explorer Visual Basic

Visual C#

Visual C++

Visual J#

Visual Studio Team System

Desenvolvimento Web (.NET)

Desenvolvimento de Inclui a documentao principal do Windows Forms, dados, formulrios Windows depurao e documentao para os compiladores do Visual Basic, Visual C#, Visual J#, e Visual C++, entre outros.

Filtro para edio Express Apostila Visual Studio 2005 142

Os filtros a seguir esto disponveis para Contedo e ndice somente se voc tiver instalado o MSDN Express Library. ermo Visual Basic Express Visual C# Express Visual Express J# Visual C++ Express Visual Web Developer Express escrio Inclui a documentao principal do Visual Basic alm da documentao do .NET Framework SDK. Inclui a documentao principal do Visual C# alm da documentao do .NET Framework SDK. Inclui a documentao principal Visual J# alm da documentao do .NET Framework SDK. Inclui a documentao principal do Visual C++ alm da documentao do .NET Framework SDK. Inclui a documentao principal do Visual Web Developer e a documentao do ASP.NET.

Filtros de pesquisa de Comunidade


Os filtros listados abaixo so acessadas clicando no Menu Community e em seguida, clicando em Community Search. Esses filtros no afetam os filtros para as janelas Contedo e ndice . ltro Ajuda escrio Inclui How-Tos, Knowledge Base, e tpicos Contains Code. Observao Opes adicionais para linguagens e tecnologia podem ser selecionados com base nas configuraes que voc estiver usando. Inclui modelos de projeto e kits para Iniciantes. Observao Opes adicionais para linguagens e tecnologia podem ser selecionadas com base nas configuraes que voc estiver usando. Inclui apenas itens de modelos. Observao Opes adicionais para linguagens e tecnologia podem ser selecionadas com base nas configuraes voc estiver usando. Inclui apenas trechos de cdigo. Observao Opes adicionais para linguagens e tecnologia podem ser selecionadas com base nas configuraes que voc estiver usando. Inclui apenas exemplos. Observao Opes adicionais para linguagens e tecnologia podem ser

Kits para Iniciantes

Itens de Modelos

Trechos de cdigo

Exemplos

Apostila Visual Studio 2005

143

selecionadas com base nas configuraes que voc estiver usando. Controles Inclui somente controles. Observao Opes adicionais para linguagens e tecnologia podem ser selecionadas com base nas configuraes que voc estiver usando. Nenhum filtro aplicado.

Unfiltered

Ajuda, Ambiente, caixa de dilogo Options


Esta pgina da caixa de dilogo Options permite a voc escolher conjuntos de documentaes e se quer exibir tpicos internamente no ambiente de desenvolvimento integrado (IDE) ou externamente em uma janela separada. Para acessar esta caixa de dilogo, no menu Tools clique em Options. Na pasta Environment clique em Help. Se esta pgina no aparecer na lista, selecione Show all settings na caixa de dilogo Options. Informaes sobre como alterar o tamanho da fonte dos tpicos da Ajuda ou para alterar as cores usadas no visualizador da Ajuda podem ser encontradas na documentao do Microsoft Document Explorer. Observao As caixas de dilogo e comandos de menu que voc v podem diferir das descritas na Ajuda dependendo das configuraes ativas ou da edio do Visual Studio. Para alterar as configuraes, escolha Import e Export Settings no menu Tools. Para mais informaes, Configuraes do Visual Studio.

Configuraes
Observao As alteraes feitas nas opes desta pgina no tero efeito at que o ambiente seja reiniciado. Show Help using Especifica como a Ajuda ser exibida. Escolha External Help Viewer para exibir os tpicos em uma janela flutuante externa. Escolha Integrated Help Viewer para exibir os tpicos da Ajuda em uma janela do navegador da Web encaixada dentro da IDE. Search results per page Especifica o nmero de tpicos que so exibidos em uma nica pgina de resultados de pesquisa. Show topic abstracts Especifica se um resumo para cada tpico mostrado nos resultados de pesquisa. Reuse topic window

Apostila Visual Studio 2005

144

Quando selecionado, especifica que tpicos da Ajuda exibir na mesma janela para que voc possa navegar entre os tpicos usando os botes Back e Forward. Quando desmarcada, especifica que uma nova janela aberta para cada tpico. Highlight search terms Especifica se as seqncias de pesquisa so realadas nos tpicos dos resultados de pesquisa para obter Ajuda local. Include partial matches in local search results When selected, specifies that search results include topics that have any of the words in the search string. Search results do not need to include all of the words in the search string. When unselected, specifies that search results include only topics that contain all of the words in the search string. Online topic language Especifica o idioma no qual pesquisar e exibir resultados de pesquisa apenas para fontes de Ajuda online. Os idiomas disponveis dependem da fonte de Ajuda. Por exemplo, o MSDN online suporta vrios idiomas, mas alguns sites da Codezone Community podem no oferecer suporte para qualquer idioma diferente de ingls. Also show English topics Especifica que se os resultados da pesquisa contiverem informaes em ingls, estes resultados tambm sero exibidos.

Outros recursos

Online, Ajuda, Ambiente, caixa de dilogo Opes Use essa pgina da caixa de dilogo Options para especificar que fontes de Ajuda voc pretende usar para pesquisas da Ajuda e F1. Voc pode acessar essa caixa de dilogo, selecionando Options a partir do menu Tools, selecionando Help a partir da pasta Environment, e, em seguida, escolhendo Online. Se essa pgina no aparecer na lista, selecione Show all settings na caixa de dilogo Options. Observao As caixas de dilogo e comandos de menu que voc v podem diferir das descritas na Ajuda dependendo das configuraes ativas ou edio. Para alterar as configuraes, escolha Import and Export Settings no menu Tools. Para mais informaes, Configuraes do Visual Studio.

Ao carregar o contedo da Ajuda


Essas opes se aplicam a pesquisa de texto completo e Ajuda F1. Try online first, then local

Apostila Visual Studio 2005

145

Exibe contedo do MSDN Online, se disponvel. Se nenhuma Ajuda for encontrada no MSDN Online, o contedo da Ajuda instalada localmente exibido. Try local first, then online Exibe contedo de fontes instaladas em seu computador. Se nenhuma Ajuda for encontrada localmente, o contedo do MSDN Online ser exibido. Try local only, not online Exibe o contedo somente de fontes instaladas em seu computador. Se nenhuma Ajuda for encontrada, um tpico de erro aparece.

Comunidade Codezone
Providers Lista os sites possveis de Comunidades Codezone que podem ser includas em pesquisas da Ajuda. Provider details Exibe uma descrio sucinta para cada provedor selecionado na lista Codezone Community.

Pesquisar esses provedores


Essas opes afetam procuras de texto completo. Marcando ou desmarcando um provedor, voc est adicionando ou removendo o provedor da lista de resultados de pesquisa. A ordem na qual os provedores so listados em Search these providers determina a ordem na qual os resultados de pesquisa para o provedor so exibidos na pgina de pesquisa da Ajuda. Ajuda local Contedo da Ajuda instalado no seu computador local. MSDN Online Contedo do MSDN Online na Web. Comunidade Codezone Contedo de sites selecionados na opo Codezone Community. Perguntas Contedo de grupos de discusso online, fruns, etc.

COMO: Copiar os Help Favorites para outro computador


Voc pode copiar os links do tpico de Ajuda e pesquisar os que esto listados na janela Help Favorites para um arquivo. Este arquivo pode, em seguida, ser compartilhado para outro computador e importado pelo Visual Studio para uso nesse computador.

Para copiar os Help Favorites para um arquivo


9. No Visual Studio, no menu Tools, clique em Import and Export Settings.

Apostila Visual Studio 2005

146

10.Selecione Export selected environment settings e clique em Next. 11.No Which settings do you want to export, clique em All settings para desmarcar todas as caixas de seleo. 12.Expanda Help Filters and Favorites e selecione a Caixa de seleo Favorites. 13.Clique em Next. 14.Em What do you want to name your settings file, digite um nome de arquivo personalizado. 15.Em Store my settings file in this directory, especifique um compartilhamento de rede ou uma unidade compartilhada em um computador onde voc pretende importar as configuraes. 16.Clique em Finish e clique em Close.

Para importar Help Favorites


9. Copie o arquivo *.vssettings contendo os Help Favorites para o computador onde voc pretende utiliz-los, ou coloque o arquivo em um compartilhamento de rede acessvel a esse computador. 10.Inicie o Visual Studio. 11.No menu Tools, clique em Import and Export Settings. 12.Selecione Import selected environment settings e clique em Next. 13.Decida se deseja ou no salvar as configuraes atuais, e clique em Next. 14.Na pgina Choose a Collection of Settings to Import, clique em Browse e localize o arquivo *.vssettings que contm as informaes dos Help Favorites. 15.Clique em Next. 16.Clique em Finish.

Apostila Visual Studio 2005

147

Application Blocks
Introduo
At pouco tempo atrs, haviam e falavam-se pouco sobre Application Blocks, mas ultimamente, eles esto se tornado bastante conhecidos e mais comentados entre os grupos de usurio, pelo menos sob o ponto de vista de arquitetura. Os blocks so uma combinao de exemplos, componentes reutilizveis, e muitas vezes, possuem um guia e outras documentaes. O Cdigo de exemplo e a documentao dos blocks, explicam o conjunto de do .NET, mas de uma maneira diferente de um exemplo padro, e alm do mais, disponibiliza componentes j prontos para serem utilizados em aplicaes. Os cdigos esto disponveis para ambas as linguagens, VB.NET e C# para a maioria deles. Vrios destes Application Blocks esto associados aos Workspaces do GotDotNet, permitindo que voc participe, e claro, se beneficie de vrias maneiras com o desenvolvimento destes componentes. Os blocks esto disponveis no site da microsoft, at o momento em: http://www.microsoft.com/resources/practices/default.mspx Estaremos fazendo uma breve descrio sobre cada um deles a seguir.

Application Block - User Interface Process Ver 2


Este block disponibiliza uma framework ainda simples mas extensvel para desenvolvimento de processos da UI (Interface de usurio). Foi projetado para abstrair o fluxo de controle e gerenciamento de estado da camada de apresentao (UI) dentro da camada de interface de processos de usurio. Ajuda voc a escrever cdigo genrico para o controle do fluxo e gerenciamento de estado para diferentes tipos de aplicaes (Ex.: Web e Windows) e ajuda a gerenciar tarefas de usurios em senrios mais complexos.

Application Block - Smart Client Offline


Este block serve como modelo para desenvolvedores que querem expandir suas aplicaes smart client, permitir que o usurio utilize as aplicaes no modo offline to bem quanto online. Detectar o comportamento de uma rede; Colocar os dados em Cach para o funcionamento em modo offline; Sincronizar o estado da aplicao cliente e/ou dados com o servidor quando a aplicao fica online outra vez.

Application Block - Updater Apostila Visual Studio 2005

148

Este block serve para empresas de mdio a grande porte, comum querer deixar todas as instncias de uma aplicao desktop prontas para receber a mais recente verso de executveis, bibliotecas e outros arquivos. Este block disponibiliza uma framework extensvel para que as empresas possam criar aplicaes atualizveis.

Application Block - Logging Ver 2


Este block disponibiliza extenses para arquitetura EIF que ajuda a enderear cenrios comuns para autenticao. Inclui: Formatao de informaes de eventos; Nveis de Log configurreis; Aprimorar informaes nos eventos publicados; Login assncrono; Autenticao confivel; Login centralizado; Request tracing para web services; Metering para web services; EIF publisher para o Block Exception Management

Application Block - Exception Management


Este block disponibiliza uma framework ainda simples mas extensvel para manipular Exceptions. Com uma nica linha de cdigo voc pode facilmente por em log a informao de excees no Event log ou at mesmo criar seus prprios componentes que armazenam logs com os detalhes de excees para outros data sources ou operadores de notificao, sem afetar seu cdigo de aplicao. Este block pode facilmente ser usado como um buiding block em sua prpria aplicao .NET

Application Block - Data Access Ver 2


Este block basicamente encapsula as melhores prticas de performance e gerenciamento de recursos para acesso ao SQL Server. Pode ser facilmente usado como um building block em suas prprias aplicaes .NET. Reduz expressivamente as linhas de cdigo.

Application Block - Configuration Management


Este block uma framework ainda simples mas extensvel que disponibiliza de forma eficiente um mecanismo de ler e escrever aplicaes de configurao de dados. Suporte padro disponibilizado para armazenamento de configurao de dados no SQL Server, registro do Windows, e arquivos XML. Contudo, a extensvel arquitetura deste block permite que voc, de modo seguro, armazene qualquer tipo de aplicao de configurao de dados em qualquer data store com o mnimo de tempo em desenvolvimento.

Applilcation Block - Caching


Este block basicamente uma extenso da Framework .NET que facilmente permite o armazenamento em cach, dos dados dos service providers e outros sistemas. Este block disponibiliza um ambiente RAD (Rapid Application Development) para ajudar a construir aplicaes escalonveis usando o VS .NET. Est disponvel como uma biblioteca .NET

Application Block - Authorization and Profile Apostila Visual Studio 2005 149

Este block disponibiliza uma infraestrutura para autorizao baseada em regras e acesso informao de perfil. O block permite que voc: Autorize um usurio em uma aplicao ou sistema; Use mltiplos provedores de armazenamento de autorizao; Mapeie mltiplas identidades para um nico usurio; Ligue regras de negcio para aes de validao; Acesse informao de perfil que pode ser armazenado em mltiplos profile stores.

Application Block - Persistent Asynchronous Invocation


Este block gerencia comunicaes assncronas entre um cliente Web e um ou mais service providers (FSP) externos. Um FSP pode ser um .NET web service, um Java web service, ou algum outro tipo de servio. (autorizao de carto de crdito por exemplo).

Application Block - Aggregation


Este block uma extenso da .NET Framework, permite que voc facilmente gerencie e junte informaes de vrios service providers e outros sistemas, e apresente estas informaes para os usurios. Este block disponibiliza ambiente RAD (rapid application development) para ajud-lo a construir aplicaes escalonveis de forma rpida usando o VS .NET. Est disponvel como uma .NET class library. (Biblioteca) certificado MCAD, atualmente colaborador da Politec Informtica, trabalha como arquiteto e desenvolvedor de aplicaes em C#. Participou de grandes projetos, citando como exemplo, sistemas para o Banco do Brasil, Caixa Econmica Federal, Agncia Nacional de Energia Eltrica, Banco Central do Brasil entre outros. Vem participando de projetos em .NET desde o incio de 2003. Atualmente est envolvido na criao e implementao da arquitetura em camadas para os sistemas do Governo do Distrito Federal, tambm com .NET - C#. Tem publicado vrios artigos sobre arquitetura, padres, segurana, .NET Framework e C#. Fonte: - MSDN/Microsoft Patterns & Practice - GotDotNet - DNAUG Dot Net Architect User Group

Apostila Visual Studio 2005

150

Escolhendo entre o ClickOnce e o Windows Installer


Introduo
Um dos recursos mais interessantes demonstrados no PDC de 2004 foi a nova tecnologia de implantao ClickOnce. Com um conjunto de recursos impressionante, o ClickOnce com certeza uma tcnica popular para implantao de aplicativos; mas e sobre o Windows Installer? Neste artigo, sero discutidos os recursos do ClickOnce e destacadas as diferenas principais entre as duas tecnologias. Finalmente, forneceremos orientaes sobre quando cada tecnologia de implantao deve ser usada. (Este artigo tambm contm links para pginas em ingls.)

Viso geral do Windows Installer


A Microsoft apresentou o Windows Installer em 1999 em resposta aos de clientes sobre os desafios enfrentados ao implantar aplicativos. Especificamente, eles apontaram as seguintes falhas nas tecnologias de instalao existentes: Elas no foram capazes de gerenciar recursos compartilhados, como componentes COM, controles ActiveX e assim por diante. Essa questo geralmente chamada de "DLL Hell". Elas no foram capazes de fornecer recursos padro de personalizao. Elas no forneceram uma maneira de um aplicativo reparar ou fazer manuteno de si prprio depois de instalado. Elas no forneceram um mecanismo que permitisse que partes de um aplicativo fossem instaladas por demanda. Elas no conseguiram fornecer um mecanismo consistente para a instalao interagir com o sistema operacional. O Windows Installer um componente de nvel de sistema includo em todos os sistemas operacionais a partir do Windows 2000. Enquanto as tecnologias tradicionais de instalao confiaram em scripts proprietrios e formatos de arquivo, o Windows Installer usou um formato aberto semelhante a um banco de dados para descrever um aplicativo, seus recursos e as operaes necessrias para instal-lo com xito. A estrutura interna do formato de banco de dados, incluindo a tabela padro e as definies de colunas, podem ser encontradas na seo Windows Installer do SDK de plataforma. A verso mais recente do SDK pode ser encontrada em http://www.microsoft.com/msdownload/platformsdk/sdkupdate/ (em ingls). Os pacotes do Windows Installer so armazenados em um arquivo com uma extenso de arquivo "msi". Embora o formato desses arquivos seja uma implementao proprietria baseada no armazenamento estruturado OLE, o

Apostila Visual Studio 2005

151

contedo de um arquivo msi facilmente acessvel pelas ferramentas fornecidas com o SDK de plataforma. A ferramenta principal de edio de msi fornecida pelo SDK de plataforma chamada de "Orca". Conforme visto na Figura 1 abaixo, a estrutura lgica de um arquivo msi muito semelhante a de um banco de dados relacional.

Figura 1. Exibio do contedo de um arquivo msi usando Orca

Alm das ferramentas fornecidas pelo SDK de plataforma, existem diversas ferramentas de terceiros que facilitam muito a tarefa de criao e administrao de msi. Alguns dos maiores fornecedores so (alguns podem estar em ingls): InstallShield (http://www.installshield.com/) Wise (http://www.wise.com/) Zero G (http://www.zerog.com/)

Produtos, recursos e componentes


Os pacotes do Windows Installer dependem de uma estrutura lgica de produtos, recursos e componentes para dividir o aplicativo em unidades de funcionalidade coesas. Recursos so a entidade de nvel mais baixo com a qual o usurio pode interagir com a instalao, enquanto componentes so a entidade de nvel mais baixo com a qual o desenvolvedor trabalha. Por exemplo, um aplicativo grfico pode ser composto por dois recursos: um recurso central de aplicativo que instala o arquivo executvel do aplicativo (.exe) e um recurso de clip-art que instala uma coleo opcional de clip-arts. O recurso central da nossa instalao fictcia pode ser composto de dois componentes. O primeiro componente pode funcionar como um recipiente do arquivo executvel principal do aplicativo e das entradas do Registro das quais ele depende para iniciar corretamente. O segundo componente do recurso central pode incluir uma .dll compartilhada e as informaes de registro do COM, que podem ser gravadas no Registro para que o subsistema COM possa reconhec-las.

Apostila Visual Studio 2005

152

Recursos do Windows Installer


O Windows Installer uma tecnologia complexa com um nmero significativo de recursos de personalizao e configurao. Explorar todos os recursos do Windows Installer est alm do escopo deste artigo. Em vez disso, vamos analisar rapidamente alguns dos recursos mais significativos. Programao O Windows Installer fornece um conjunto robusto de APIs e uma interface de automao completa que permite que os aplicativos interajam com o Windows Installer como parte do processo de criao e tambm como parte do processo de instalao e manuteno. Personalizao O comportamento de um pacote de instalao em tempo de execuo pode ser personalizado de vrias maneiras diferentes. Por exemplo, a instalao pode ser desenvolvida com suporte para configurao de opes especficas na linha de comando, ou um arquivo especial de transformao pode ser criado para que realmente modifique o contedo do arquivo msi no momento da instalao, alterando, portanto, o comportamento da instalao. O SDK de plataforma e a maioria dos fornecedores de ferramentas oferecem suporte para a criao de arquivos de transformao. Instalao por demanda O Windows Installer d suporte a um conceito conhecido como divulgao, que permite que partes individuais de um aplicativo (ou o aplicativo inteiro) sejam instaladas somente quando o usurio precisar. Atravs de uma integrao profunda com o sistema operacional, o Windows Installer capaz de detectar quando um aplicativo, ou um determinado recurso de um aplicativo, necessrio. Por exemplo, se for instalado um aplicativo capaz de editar arquivos .foo, o Windows Installer verificar se o aplicativo deve ser instalado e o instalar somente se for necessrio, quando o usurio clicar duas vezes no arquivo .foo no Windows Explorer. Resilincia Da mesma maneira que o Windows Installer capaz de instalar um aplicativo ou recurso por demanda, ele tambm capaz de reparar um aplicativo enquanto o usurio interage com ele. Por exemplo, quando um usurio inicia a execuo de um aplicativo clicando no atalho do menu Iniciar, ou clicando duas vezes no arquivo associado, o Windows Installer capaz de interceptar a solicitao e verificar se os elementos apropriados do aplicativo esto instalados corretamente. Se um problema for detectado, um reparo ocorrer antes que o aplicativo seja executado. Instalao transacional Muito do funcionamento interno do Windows Installer dedicado a garantir que a execuo de uma instalao no prejudique o sistema se algum erro crtico ocorrer durante a instalao. O Windows Installer consegue fazer isso criando um "script" interno contendo exatamente o que deve ser feito para instalar o aplicativo corretamente. Se algo der errado durante a instalao, o script poder basicamente

Apostila Visual Studio 2005

153

reverter qualquer ao que tenha sido tomada, deixando o sistema no estado original. Resilincia de origem Um aspecto importante da habilidade do Windows Installer de reparar um aplicativo depois da instalao que, de vez em quando, ele precisar acessar uma cpia da fonte de instalao original. Por exemplo, se o Windows Installer determinar que um arquivo importante est faltando ou est corrompido, ele precisar obter uma cpia ntegra daquele arquivo. Resilincia de origem um mecanismo que permite que o Windows Installer procure em vrios locais at encontrar a instalao original ou solicite a mdia ao usurio se a instalao original no puder ser encontrada. Locais de origem podem ser o sistema de arquivos local, uma rede compartilhada ou uma URL da Internet. O Windows Installer 3.0 tambm aperfeioou esses recursos, permitindo que os administradores gerenciem locais de origem mais facilmente. Atualizaes e patches Um ciclo de vida de produto no termina depois que o aplicativo instalado com xito. Por melhor que seja o aplicativo, a realidade que a maioria dos aplicativos precisa ser atualizada e receber patches para implantar correes ou novos recursos. O Windows Installer d suporte criao e distribuio de patches no nvel de byte para implantar hotfixes e atualizaes de verso de aplicativos mais abrangentes. O Windows Installer 3.0 apresentou melhorias significativas por fornecer suporte ao seqenciamento de patches e habilidade de desinstal-los. Suporte a ambientes gerenciados Em ambientes corporativos de grande porte, os sistemas so geralmente bloqueados para evitar que os usurios instalem aplicativos no autorizados e arrisquna integridade do sistema. O Windows Installer inclui diversos recursos que permitem que determinadas instalaes baseadas em msi sejam "abenoadas" pelo administrador do sistema para que sejam executadas em ambientes bloqueados desse tipo.

Viso geral do ClickOnce


O ClickOnce uma nova tecnologia de implantao que acompanha a verso 2.0 do .NET Framework e foi apresentada na PDC de 2004 em Los Angeles. O ClickOnce foi projetado para conferir simplicidade a implantaes de aplicativos da Web para aplicativos cliente inteligentes, fornecendo um ambiente seguro de tempo de execuo. Para implantar um aplicativo com o ClickOnce, basta colocar os arquivos do aplicativo em um servidor Web, em um compartilhamento de arquivos ou em um sistema de arquivos local, e fornecer ao usurio um link para o manifesto de aplicativo. Se voc estiver desenvolvendo com o Visual Studio 2005, publicar um aplicativo usando o ClickOnce uma tarefa trivial, graas ao Publish Wizard (Assistente de publicao). Para acessar o Publish Wizard, clique com o boto direito do mouse no nome do projeto no Solution Explorer e selecione Publish (Publicar) no menu de contexto. Voc tambm pode acessar o assistente pela guia Publish da caixa de dilogo Project Properties (Propriedades do projeto).

Apostila Visual Studio 2005

154

Figura 2. Assistente de publicao do Visual Studio 2005

Uma implantao do ClickOnce controlada pelo uso de dois arquivos XML de manifesto: um manifesto de implantao e um manifesto de aplicativo.

Manifesto de implantao
O manifesto de implantao usado para descrever a implantao do aplicativo. Ele inclui o local do manifesto de aplicativo, arquivos descritos no manifesto de aplicativo e a verso mais recente que os clientes devem estar executando. <?xml version="1.0" encoding="utf-8"?> <asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns="urn:schemasmicrosoft-com:asm.v2" xmlns:asmv1="urn:schemas-microsoftcom:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <assemblyIdentity name="My Test App.application" version="1.0.0.20" publicKeyToken="7726c4d654f5bf83" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft -com:asm.v1" /> <description asmv2:publisher="Xambi Solutions" asmv2:product="My Test App" asmv2:supportUrl="http://michael -dev2/WindowsApplication1/Support.htm" xmlns="urn:schemas -microsoft-com:asm.v1" /> <deployment install="true"> <subscription> <update> <expiration maximumAge="3" unit="days" /> </update> </subscription> <deploymentProvider

Apostila Visual Studio 2005

155

codebase="http://michael_dev2/WindowsApplication1/My%20Test%20App .application" /> </deployment> <dependency> <dependentAssembly codebase="My Test App_1.0.0.20\My Test App.exe.manifest" size="4908"> <assemblyIdentity name="My Test App.exe" version="1.0.0.20" publicKeyToken="7726c4d654f5bf83" language="neutral" processorArchitecture="msil" /> <hash> <dsig:Transforms> <dsig:Transform Algorithm="urn:schemas-microsoft -com:HashTransforms.Identity" /> </dsig:Transforms> <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <dsig:DigestValue>GANTD3FaR5KJiqnEluecM05wtss=</dsig:DigestValue> </hash> </dependentAssembly> </dependency> <Signature Id="StrongNameSignature" xmlns="http://www.w3.org/2000/09/xmldsig#" /> <!-- Details Omitted for Brevity --> </asmv1:assembly>

Manifesto de aplicativo
O manifesto de aplicativo usado para descrever o aplicativo, conjuntos de mdulos (assemblies), arquivos, recursos e permisses necessrios para que o aplicativo funcione corretamente. Alm disso, o manifesto de aplicativo tambm indica o local onde devem ficar as atualizaes. <?xml version="1.0" encoding="utf-8"?> <asmv1:assembly manifestVersion="1.0" xsi:schemaLocation="urn:schemas-microsoft -com:asm.v1 assembly.adaptive.xsd" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns="urn:schemas -microsoft-com:asm.v2" xmlns:asmv1="urn:schemas-microsoft -com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <asmv1:assemblyIdentity name="My Test App.exe" version="1.0.0.20" publicKeyToken="7726c4d654f5bf83" language="neutral" processorArchitecture="msil" type="win32" /> <asmv2:configuration configFile="My Test App.exe.config" xmlns="urn:schemas-microsoft-com:asm.v1" /> <entryPoint> <assemblyIdentity name="My Test App" version="1.0.0.0" publicKeyToken="7726C4D654F5BF83" language="neutral" processorArchitecture="msil" /> <commandLine file="My Test App.exe" parameters="" /> </entryPoint> <trustInfo>

Apostila Visual Studio 2005

156

<security> <applicationRequestMinimum> <PermissionSet class="System.Security.PermissionSet" version="1" ID="Custom"> <IPermission class="System.Security.Permissions.EnvironmentPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" /> <IPermission class="System.Security.Permissions.FileDialogPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Access="Open" /> <IPermission class="System.Security.Permissions.IsolatedStorageFilePermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Allowed="DomainIsolationByUser" UserQuota="10240" /> <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="Execution" /> <IPermission class="System.Security.Permissions.UIPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Window="SafeTopLevelWindows" Clipboard="OwnClipboard" /> <IPermission class="System.Windows.Forms.WebBrowserPermission, System, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Level="Restricted" /> <IPermission class="System.Drawing.Printing.PrintingPermission, System.Drawing, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" version="1" Level="SafePrinting"/> </PermissionSet> <defaultAssemblyRequest permissionSetReference="Custom" /> </applicationRequestMinimum> </security> </trustInfo> <dependency> <dependentAssembly codebase="My Test App.exe" size="12288"> <assemblyIdentity name="My Test App" version="1.0.0.0" publicKeyToken="7726C4D654F5BF83" language="neutral" processorArchitecture="msil" /> <hash> <dsig:Transforms> <dsig:Transform Algorithm="urn:schemas-microsoft -com:HashTransforms.Identity" /> </dsig:Transforms> <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <dsig:DigestValue>xx4Nai4Nr7Bp5R7xtyqO8gAVsSk=</dsig:DigestValue> </hash> </dependentAssembly> </dependency> <dependency> <dependentAssembly preRequisite="true"> <assemblyIdentity name="Microsoft-Windows-CLRCoreComp" version="2.0.3600.0" /> </dependentAssembly> </dependency> <file name="My Test App.exe.config" size="1222">

Apostila Visual Studio 2005

157

<hash> <dsig:Transforms> <dsig:Transform Algorithm="urn:schemas-microsoft -com:HashTransforms.Identity" /> </dsig:Transforms> <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <dsig:DigestValue>BdHEVcmEBWqRZGitWdDZ/vAGGmQ=</dsig:DigestValue> </hash> </file> <Signature Id="StrongNameSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"> <!-- Details Omitted for Brevity --> </Signature> </asmv1:assembly> Aps a criao dos manifestos de aplicativo e implantao, eles simplesmente devem ser copiados para o local de implantao, junto com os arquivos de aplicativo necessrios. importante observar que o manifesto de implantao precisa ser armazenado no mesmo local que o manifesto de aplicativo. Por exemplo, o manifesto de implantao pode ser enviado em um disco fsico. Quando ativado, o manifesto de implantao dir ao mecanismo do ClickOnce onde encontrar o manifesto de aplicativo. Esse um recurso importante do ClickOnce, porque ele garante que os usurios obtenham a verso mais recente do aplicativo logo na primeira instalao, em vez de instalar uma verso do disco e imediatamente exigir uma atualizao. Quando o usurio iniciar o aplicativo, o ClickOnce instalar ou atualizar o aplicativo de acordo com as configuraes contidas no manifesto de implantao. Se o aplicativo exigir um nvel elevado de permisses, o usurio dever conceder as permisses necessrias:

Figura 3. O usurio deve informar as permisses necessrias

Clique no link More Information (Mais informaes) no canto inferior direito dessa caixa de dilogo para abrir a caixa de dilogo de informaes mostrada a seguir.

Apostila Visual Studio 2005

158

Figura 4. Mais informaes sobre os avisos de segurana E, finalmente, quando o aplicativo estiver funcionando, ser possvel ver na barra de ttulos de onde o aplicativo foi implantado e um cone especial sobrepondo os cones de aplicativos. Ao passar o ponteiro do mouse sobre esse cone, podemos ver uma mensagem especial indicando o contexto de segurana no qual o aplicativo est sendo executado.

Figura 5. Mensagem de informaes sobre o ambiente de segurana

Observao: ao escrever aplicativos .NET que sero executados em um ambiente seguro, muito importante que as excees de segurana sejam tratadas explicitamente para garantir que o aplicativo permanea estvel e que o usurio entenda o problema perfeitamente quando ocorrer uma exceo de segurana.

Principais diferenas Apostila Visual Studio 2005 159

Agora que voc j conhece os recursos do Windows Installer e do ClickOnce, perceber que cada tecnologia possui objetivos bastante diferentes. Para ilustrar esse tpico ainda mais, considere a seguinte matriz: arefa Instalar arquivos Criar atalhos Associar extenses de arquivo Instalar servios Instalar no GAC Gerenciar ODBC Gerenciar COM+ Gravar no Registro Divulgao Auto-reparo Permisses de arquivo/pasta/Registro Interao de usurio no tempo de instalao Instalar para todos os usurios Personalizar aes de instalao/desinstalao Condies de instalao/interrogao de sistema Atualizar e programar automaticamente Atualizaes foradas Proteo de segurana Baixar/instalar conjuntos de mdulos (assemblies) por demanda Reverter para a verso anterior x x x x x ickOnce indows Installer X X X X X X x x x x x x x x x x x x

Como foi mencionado anteriormente, cada uma dessas tecnologias foi criada e desenvolvida com um conjunto de objetivos completamente diferente. Nenhum tna inteno de substituir o outro. O ClickOnce oferece um conjunto de recursos bem interessante, a maioria dos quais no encontrada na tecnologia Windows Installer. Esses recursos so destinados especificamente a desenvolvedores que compilam aplicativos cliente inteligentes baseados em .NET Framework que no possuem requisitos sofisticados de configurao. O Windows Installer uma tecnologia de implantao muito mais ampla, inerentemente criada para ser abrangente e capaz de lidar com qualquer desafio de implantao, incluindo aplicativos .NET.

Como escolher? Apostila Visual Studio 2005 160

Quando se pode escolher a tecnologia de implantao, voc no precisa limitar-se a apenas uma opo. O importante escolher a ferramenta certa para o trabalho certo. Embora no haja regra nica nem resposta simples, h algumas diretrizes gerais que voc pode usar para tomar a melhor deciso para suas necessidades. O aplicativo instala algum componente COM?

O aplicativo exige registro de algum componente para interoperabilidade com COM? O aplicativo instala algum servio? O aplicativo precisa ser instalado em um local especfico ou no GAC (Cache de conjunto de mdulos global)? O aplicativo possui algum componente que esteja instalado condicionalmente, com base no sistema operacional ou no ambiente de tempo de execuo? O aplicativo exige entrada do usurio no momento da instalao? O aplicativo exige configurao de servios de nvel de sistema como o Active Directory ou COM+? Aps o aplicativo ser instalado, ele cria arquivos, grava no Registro ou afeta o sistema de alguma maneira que prejudicar algum recurso se o aplicativo for removido? Se voc respondeu Sim para alguma dessas perguntas, ento, hoje, o Windows Installer a melhor escolha para as suas necessidades. No entanto, se voc no precisa lidar com os cenrios descritos na lista acima, o ClickOnce um candidato excelente para sua soluo de implantao. Se voc deseja aproveitar os benefcios diferenciados fornecidos pelo ClickOnce, importante compreender os recursos do ClickOnce logo no incio do processo de design do aplicativo. O planejamento cuidadoso evita dificuldades de atualizao no futuro, por exemplo, no caso de voc implantar uma verso recente de um aplicativo usando o ClickOnce e mais tarde perceber a necessidade de mudar para o Windows Installer.

Uso do Windows Installer e do ClickOnce


Sim, isso a! Voc entendeu certo. Agora que eu expliquei o quanto essas duas tecnologias so diferentes na implementao, vou mexer com a sua cabea dizendo como voc pode us-los juntos. O Windows Installer fornece recursos avanados para interao com o usurio durante a instalao. Muitas vezes, esse um passo crtico no processo de implantao. A instalao precisa ter a habilidade de interrogar o sistema de destino para ter certeza de que ele possui os requisitos mnimos do aplicativo. Alm disso, a maioria dos aplicativos costuma ter alguma interao com o ambiente operacional. Isso pode incluir gravar arquivos de log em disco, armazenar dados no Registro, etc. Um comportamento esperado que o aplicativo seja capaz de excluir esses dados especficos do aplicativo quando for removido do sistema. Tudo isso so de implantao importantes ausentes no paradigma do ClickOnce. Em contraste, o Windows Installer possui um histrico de atualizao e instalao de patches, mas no to bem-acabado e fcil de gerenciar quanto o ClickOnce.

Apostila Visual Studio 2005

161

Com um pouco de imaginao, planejamento e habilidade, possvel aproveitar as duas tecnologias para criar um modelo de implantao com o melhor dos dois mundos. Fazendo o design da instalao do Windows Installer O conceito bsico aqui criar uma instalao externa com base na tecnologia do Windows Installer. Essa instalao externa assume a responsabilidade de inspecionar e interrogar o sistema antes de o aplicativo ser instalado. Ela pode interagir com o usurio, e obter e armazenar informaes de configurao, instalar conjuntos de mdulos (assemblies) compartilhados no GAC e assim por diante. Quando for preciso desinstalar, ela tambm assume a responsabilidade de limpar os recursos que normalmente teriam sido esquecidos pelo aplicativo. Por exemplo, ela pode desinstalar arquivos, excluir arquivos de log criados em tempo de execuo, desinstalar servios, remover conjuntos de mdulos (assemblies) do GAC e assim por diante. Conectar o aplicativo ClickOnce na instalao mais uma vez uma tarefa bastante simples. Como os aplicativos ClickOnce podem ser ativados por uma URL de Internet ou de intranet, possvel simplesmente criar um atalho no sistema de destino que aponte para o manifesto de aplicativo. Para isso, podemos usar o Windows Installer para criar um arquivo .url rapidamente no momento da instalao. Um arquivo .url um tipo especial de atalho compatvel com o formato padro de arquivo .ini. [InternetShortcut] URL=http://www.myServer.com/myapp/v1_0/myapp.application Usando o Windows Installer para criar esse arquivo INI, s necessrio adicionar uma nica linha na tabela IniFile.

ome da oluna IniFile FileName

alor URLShortcut1 My App.url

bservaes Chave primria O nome do arquivo .url. A parte principal desse nome o que o usurio ver. Nesse caso, o atalho exibir "My App". O nome da chave primria de um diretrio definido na instalao. Identifica o local onde o atalho ser criado. A seo principal que est sendo gravada no arquivo ini. Poro principal do par chave/valor.

DirPropert MyShortcutFolder y Section Key Value InternetShortcut URL

http://www.myServer A URL real para o manifesto de aplicativo. .com/myapp/v1_0/m yapp.application

Apostila Visual Studio 2005

162

ome da oluna Action Compone nt

alor 0 MyComponent

bservaes Um valor 0 indica que o valor deve ser criado ou atualizado se j existir. Uma referncia para o componente que responsvel pela instalao/desinstalao do atalho.

Uma implementao bem projetada dessa tcnica exigir modificaes posteriores ao arquivo msi para garantir que a instalao realize todas as tarefas necessrias ao aplicativo. Entretanto, eu espero que este artigo tenha dado uma idia do que possvel quando voc aproveita as melhores partes de cada tecnologia de implantao.

Concluso
Para aplicativos que no se restringna suas limitaes funcionais, o ClickOnce uma excelente tecnologia de implantao que fornece benefcios valiosos e um modelo de atualizao que antes estava disponvel somente para aplicativos baseados na Web. Para aplicativos com requisitos mais sofisticados, o Windows Installer continua sendo a melhor tecnologia de implantao. Cada uma dessas tecnologias de implantao possui o objetivo comum de instalar aplicativos de forma confivel, mas as semelhanas terminam a. Voc pode ter certeza de que os recursos do ClickOnce crescero no futuro, mas pode estar certo tambm de que o Windows Installer veio para ficar. Enquanto isso, seja criativo e aprenda a amar os dois!

Apostila Visual Studio 2005

163

WinForms com o ClickOnce


Introduo
O ClickOnce uma nova tecnologia de implantao do Windows Forms que ser fornecida com o Visual Studio 2005. Ela permite a instalao e a atualizao simples de aplicativos da Web com clientes inteligentes. A implantao de aplicativos do Windows Forms por HTTP est disponvel desde a primeira verso do .NET Framework, e vem evoluindo a partir de ento. Este artigo discute as vantagens dos aplicativos do Windows Forms e a evoluo dessa tecnologia at o ClickOnce. Tambm mostrarei um exemplo simples usando a verso Beta 1 pblica do Visual Studio 2005.

Por que o Windows Forms?

Desde o surgimento da World Wide Web, a maioria dos usurios e desenvolvedores tem tido mais interesse pelos aplicativos da Web do que pelos aplicativos "regulares" do Windows. Alm de ser mais atraente, um aplicativo da Web possui algumas caractersticas interessantes e especiais: Um aplicativo da Web pode ser acessado a partir de qualquer local do mundo em que haja uma conexo com a Internet; o cliente nem mesmo precisa estar executando o Windows. Um aplicativo da Web "puro" uma tecnologia muito boa quando seu aplicativo precisa ser acessado exatamente de qualquer lugar. Um aplicativo da Web simples de implantar e atualizar: basta copiar os arquivos do aplicativo para um diretrio de um servidor Web e todos os seus clientes podero comear a usar o novo aplicativo imediatamente. Nada de problemas com DLLs, nada de entradas do Registro a serem manipuladas, nada de classes COM a serem registradas; ele simplesmente funciona! O foco deste artigo est no segundo item descrito acima: implantao. O protocolo HTTP usado pelos aplicativos da Web tem vrias vantagens em relao implantao de aplicativos tradicionais do Windows. Por outro lado, por mais que eu adore a Web, difcil dizer que a experincia do usurio na Web maravilhosa. Quando comparada aos aplicativos do Windows, a Web possui diversas desvantagens:

Sua interface de usurio bastante pobre. Tudo o que podemos esperar de um aplicativo do Windows, como o recurso arrastar e soltar e o clique direito do mouse, muito difcil ou mesmo impossvel de se obter em um aplicativo da Web.
E, mesmo quando conseguimos executar alguns truques mais complexos de interface, isso geralmente requer uma quantidade insana de scripts no cliente, um tipo de cdigo que particularmente difcil de criar e depurar. Um aplicativo da Web consome muitos recursos do servidor, muita largura de banda e uma boa dose da pacincia do usurio, porque a maioria das

Apostila Visual Studio 2005

164

coisas precisa ser feita no servidor, envolvendo viagens de ida e volta e um pouco de espera. A impresso limitada "tecnologia print screen", fornecendo pouco controle sobre recursos como quebras de pgina, devido s diferenas de fontes, margens e tamanhos de papel. Alguns dos problemas acima podem ser minimizados com o uso de plugins ou controles ActiveX, mas eles, por sua vez, tendna apresentar os mesmos problemas de implantao que os velhos aplicativos no-Web costumavam ter. E se pudssemos combinar a facilidade de distribuio dos aplicativos da Web com a avanada funcionalidade de cliente dos aplicativos do Windows? Bem, ns podemos. O .NET Framework, desde a sua primeira verso, permite a distribuio de aplicativos do Windows Forms por HTTP e sem os costumeiros problemas. Esse tipo de aplicativo especialmente interessante nos cenrios de intranet/extranet, nos quais o acesso onipresente no necessrio e nos quais podemos supor que o computador do usurio ter tanto o Internet Explorer quanto o .NET Framework instalados.

.NET Framework 1.x: usando HREF para .EXEs

As verses 1.0 e 1.1 do .NET Framework foram fornecidas com o recurso de implantao de aplicativos do Windows Forms por HTTP. Basicamente, voc usa uma marca "HREF" para apontar para um .EXE gerenciado. O Internet Explorer e o .NET Framework em tempo de execuo podem baixar e executar no s o executvel, mas tambm as DLLs que ele possa exigir, por demanda. Esse tipo de implantao foi apelidado de "href para EXEs". Este um exemplo de uma dessas marcas: <a href="MainProject.exe">Call MainProject</a> Isso bastante simples de se fazer e j foi discutido nos seguintes artigos recomendados:

Security and Versioning Models in the Windows Forms Engine Help You
Create and Deploy Smart Clients (em ingls), de Chris Sells; veja tambm um outro artigo de Chris, smart client Wahoo! sample (em ingls)

Death of the Browser? (em ingls), de Billy Hollis Meu artigo, Deploy Windows Forms on the Web (em ingls) Using Windows Forms Controls in Internet Explorer (em ingls)
Como o mdulo (assembly) do .NET (.EXE ou .DLL) a unidade bsica de implantao, convm dividir o aplicativo em um .EXE principal e vrias DLLs. Dessa forma, se voc fizer alteraes simples em uma nica DLL, apenas essa DLL precisar ser baixada. Por mais simples que isso parea, ainda so necessrios alguns truques para que tudo funcione corretamente:

O .NET Framework deve ter sido instalado previamente no cliente (embora


voc possa baixar um plug-in do endereo

Apostila Visual Studio 2005

165

http://msdn.microsoft.com/vstudio/downloads/Tools/bootstrapper/, que pode facilitar a instalao do Framework e de seu aplicativo). Seu aplicativo ser executado no cliente como cdigo parcialmente confivel. Por um lado, isso bom porque o aplicativo executado em um modo seguro, e tem limites quanto ao que pode fazer no computador cliente. Por outro lado, se voc precisar de funcionalidades como a abertura de arquivos locais ou a chamada de um objeto COM, ter que configurar, de alguma forma, uma diretiva de segurana no cliente, o que no nada simples de se fazer. Por padro, bastante provvel que seu executvel tente carregar vrias DLLs com recursos de localizao; devido a alguns problemas da implementao atual, o desempenho ser prejudicado, principalmente em conexes lentas com a Internet. As atualizaes so feitas arquivo por arquivo. No h como garantir, por exemplo, que todos os seus 10 arquivos atualizados sejam realmente baixados; seu cliente pode acabar ficando com um aplicativo "meio atualizado". Seu aplicativo s estar disponvel offline se o usurio configurar manualmente a opo "Trabalhar Offline" no Internet Explorer; o aplicativo em si no tem nenhum controle sobre isso.

Por padro, o arquivo .config associado ao programa no est disponvel


(veja aqui: http://www.sellsbrothers.com/askthewonk/secure/default.aspx?content=howcan anapplication.confi.htm como fazer isso). Seu aplicativo no ter um atalho na rea de trabalho ou no menu Iniciar.

Updater Application Block

Para resolver alguns dos problemas descritos acima, a Microsoft criou o UAB (Updater Application Block). O bloco atualizador uma biblioteca que pode ser adicionada ao seu aplicativo para gerenciar o download de suas partes por http. Ele tem algumas vantagens sobre a implementao original do Framework: Ele executado como um aplicativo local e est disponvel o tempo todo, sem prejudicar o desempenho. As atualizaes so feitas por transao, ou seja, todos os arquivos de uma nova verso precisam ser baixados com xito para que a nova verso seja disponibilizada. Todos os arquivos do aplicativo so listados em um manifesto. Ele executado como um aplicativo totalmente confivel; no preciso mexer com a diretiva de segurana do cliente. Seu aplicativo pode ter atalhos no menu Iniciar.

Por outro lado, existem tambm algumas desvantagens: preciso alterar substancialmente o aplicativo a fim de utiliz-lo.

Apostila Visual Studio 2005

166

Como ele usa BITS para baixar as partes do aplicativo, ele no executado no Windows 98/ME; necessrio o Windows 2000 ou posterior. Ele executado como um aplicativo local totalmente confivel, por isso, na maioria das vezes, ignora a segurana de acesso a cdigo. Ele no tem suporte da Microsoft.

Para obter mais informaes sobre o UAB, o artigo .NET Application Updater Component (em ingls), de Jamie Cool. Voc tambm pode verificar a home page do UAB na Gotdotnet. O UAB no tem suporte "oficial", embora haja um frum em http://www.gotdotnet.com/. De qualquer forma, o UAB fornecido com o cdigofonte completo, e voc pode alter-lo para corrigir algumas de suas restries, como a exigncia de BITS e do Windows 2000.

ClickOnce

O UAB obviamente uma medida paliativa, enquanto a Microsoft desenvolve uma soluo definitiva. Essa soluo chama-se ClickOnce. Basicamente, o ClickOnce tem todas as vantagens do UAB, com alguns de seus problemas, mais alguns recursos adicionais. Na minha opinio, uma das principais vantagens do ClickOnce que ele restaura a segurana de acesso a cdigo. Quando comparado aos HREF EXEs, um aplicativo do ClickOnce tem as seguintes vantagens: As atualizaes so feitas por transao (ou seja, so feitas por completo ou no so feitas). O aplicativo no s funciona offline, como tambm tem um certo grau de controle sobre isso; existem APIs, para que o aplicativo possa saber se est online ou offline; ele tambm pode controlar seu prprio processo de atualizao. Ele tem uma boa integrao com o Visual Studio .NET, incluindo a capacidade de gerar os arquivos e as ferramentas extras apropriadas que ajudam a descobrir de quais privilgios de segurana seu aplicativo necessita para ser executado. Ele vem com um executvel de inicializao (bootstraper) Win32 capaz de baixar os componentes necessrios, at mesmo o prprio .NET Framework. Os arquivos do aplicativo podem ser baixados por demanda ou em lotes. Ele pode ter atalhos no menu Iniciar.

O ClickOnce um recurso do Visual Studio 2005, antes conhecido pelo codinome "Whidbey", e do .NET Framework 2.0. Vamos explorar um exemplo usando a verso "Community PreView Beta 1" (Framework verso 2.0.40607).

Apostila Visual Studio 2005

167

Um aplicativo do ClickOnce
Vamos criar um aplicativo simples do ClickOnce seguindo estas etapas. 1. Inicie o Visual Studio 2005. 2. Selecione File (Arquivo) e clique em New Project (Novo projeto). 3. Escolha um idioma (C# ou Visual Basic .NET) e selecione Windows Application (Aplicativo do Windows). 4. D ao projeto o nome MyClickOnceApp e clique em OK. 5. Adicione um boto ao formulrio e altere sua propriedade Text para About. 6. Clique duas vezes no boto. Na janela de cdigo, insira o cdigo a seguir. Visual Basic .NET: MsgBox("My First ClickOnce Application") C#: MessageBox.Show("My First ClickOnce Application"); Pressione F5 para executar e testar o aplicativo. Todos os aplicativos do Windows sob o Visual Studio 2005 tm uma pgina Publish (Publicar) sob Project | MyClickOnceApp Properties (Projeto | Propriedades de MyClickOnceApp) para controlar detalhes da implantao:

Figura 1. Definindo as configuraes de publicao

Publishing Location (Local de publicao) indica o local a partir do qual o aplicativo ser implantado. Pode ser um local em um servidor Web (HTTP), como mostrado acima, mas tambm pode ser um caminho de rede regular.

Apostila Visual Studio 2005

168

Install Mode and Settings (Modo de instalao e configuraes) controla diversos detalhes da implantao, como: Se o aplicativo estar disponvel online apenas ou tambm offline. Application Files (Arquivos do aplicativo): o local onde os arquivos individuais sero instalados. Prerequisites (Pr-requisitos): o local onde o programa de instalao deve instalar outros componentes, como Windows Installer 2.0, .NET Framework 2.0, J# Redistributable Package, SQL Server 2005 Express, Crystal Reports e Microsoft Data Access Components 2.8.

Figura 2. Configurando os pr-requisitos

Updates (Atualizaes): controla quando o aplicativo deve verificar se existem atualizaes e como elas sero transferidas para o cliente.

Apostila Visual Studio 2005

169

Figura 3. Configurando as atualizaes

Options (Opes): ajusta detalhes como o idioma do aplicativo, o nome do recurso no menu Iniciar, a pgina HTML usada para a implantao na Web e o tquete da diretiva de implantao.

Figura 4. Configurando as opes de publicao

Publish Version (Verso da publicao) ajusta o nmero de verso do aplicativo; ele pode ser aumentado automaticamente em cada implantao. Publish Wizard (Assistente de publicao) permite configurar vrias opes de publicao. Este assistente tambm chamado pelo menu Build | Publish (Compilar | Publicar). Todos os aplicativos do ClickOnce devem ter assinatura criptografada; o assistente solicita uma chave existente (recomendvel) ou pode gerar uma nova.

Apostila Visual Studio 2005

170

Figura 5. Assinando seu aplicativo

Depois de executar o assistente uma vez, voc pode clicar em Publish Now (Publicar agora) para publicar atualizaes. Em nosso exemplo, ser mostrada uma pgina da Web.

Figura 6. Aplicativo publicado

Esta pgina da Web contm um script que verifica qual pacote de pr-requisitos extra precisa ser instalado antes da instalao de nosso aplicativo. Se algum prrequisito no estiver presente, ele ser instalado na primeira vez em que o aplicativo for executado. Depois que o usurio clicar no link Install (Instalar), vrias caixas de dilogo podero exigir a interveno do usurio, pelo menos na primeira vez em que ele for executado:

Avisos do Windows XP SP2 Contratos de licenas de software Falta de verificao da assinatura do editor

Detalhes da implantao

Apostila Visual Studio 2005

171

O Visual Studio .NET 2005 criar uma nova Web para nosso aplicativo, com vrios arquivos e pastas.

Figura 7. Pastas da implantao

A pasta dotnetfx contm o redistribuvel do .NET Framework, atualmente um executvel de 25 MB. Por padro, o Visual Studio aumentar o nmero da verso sempre que o aplicativo for implantado; cada verso receber uma nova pasta com o nmero de verso maior correspondente. O arquivo .application o destino do link mostrado na pgina HTML publish.htm. Ele um arquivo XML que contm informaes, como a pasta correspondente verso atual do aplicativo e as assinaturas digitais. Publish.htm uma pgina da Web que contm no s o link para o arquivo .application, mas tambm um script de cliente que faz a mesma verificao de verso e mostra as mensagens apropriadas. Por exemplo, se o seu computador no tiver o .NET Framework, a mensagem mostrada sob Install MyClickOnceApp (Instalar MyClickOnceApp) ser diferente. O Setup.exe um executvel Win32 capaz de instalar no apenas o seu aplicativo, como tambm todos os componentes necessrios, como o prprio .NET Framework e o MDAC 2.8 na ordem correta. Cada pasta do aplicativo contm os arquivos do aplicativo e tambm um arquivo de manifesto. O manifesto um arquivo XML com, basicamente, as seguintes informaes: A identidade precisa de todos os arquivos do aplicativo. Essa identidade compreende o nome do arquivo, o nmero da verso, a cultura e a arquitetura de processador ("msil", em nosso caso). Todas as permisses que o aplicativo requer. Assinaturas digitais.

Executando o aplicativo
Aps baixado o aplicativo, voc pode execut-lo sem precisar baix-lo novamente. Em nosso exemplo, o aplicativo pode ser iniciado clicando-se no link para a pgina

Apostila Visual Studio 2005

172

da Web ou no atalho do menu Iniciar. Em ambos os casos, a existncia de uma nova verso verificada de acordo com as configuraes das opes do projeto Application Updates (Atualizaes de aplicativo). baixada uma nova verso, se necessrio. Para verificar esse recurso de atualizao, execute o seguinte procedimento: Faa uma alterao visvel no aplicativo, como na localizao do boto da parte inferior do formulrio. Compile-o e implante-o novamente. Execute o aplicativo e verifique o processo de download.

Por fim, importante notar que essas informaes baseiam-se na verso Beta 1 do Visual Studio .NET; as verses mais recentes podem ter Outros recursos.

Grfico comparativo

HREF AB ickOnce EXE Nenhuma alterao necessria no aplicativo Isolamento do aplicativo Suporte total Baixo impacto sobre o sistema Segurana de acesso a cdigo preservada Download de arquivos por demanda Manifestos para listar de forma declarativa os arquivos necessrios Manifestos assinados por criptografia Download de arquivos em lotes Trabalhar offline Instalaes por transao Desempenho otimizado Windows 2000 ou posterior necessrio Integrao com o shell do Windows Bom controle sobre o processo de atualizao API para trabalhar offline e controlar o processo de download Instalao automtica de pacotes opcionais (*) X X X X X X X X X X X X X X X X X X X X X X X X X X (**) X X X X

Apostila Visual Studio 2005

173

Concluso
O ClickOnce uma tecnologia muito poderosa para a implantao de aplicativos. Ele uma evoluo natural dos modelos de implantao anteriormente disponveis, e une robustez, segurana, desempenho e flexibilidade avanada funcionalidade de cliente dos aplicativos do Windows Forms.

Apostila Visual Studio 2005

174

Depurao no Visual Studio


Gerar, depurar e testar
Gerar, depurar e testar so as atividades chave no desenvolvimento e a finalizao de aplicaes slidas, componentes e servios. As ferramentas proporcionadas com Visual Studio .NET esto desenhadas para que se possa controlar configuraes de gerao, identificar e resolver erros de forma eficaz e testar as geraes de varias maneras. Os seguintes temas no somente abarcam ou uso das ferramentas sino que tambm ofrecem recomendaes e instrues.

Geraes predeterminadas e pessoalizadas


Visual Studio .NET proporciona uma plataforma para testar e depurar de manera continuada as aplicaes a medida que geradon. Conforme criado cada projeto de Visual Studio, se define seu configurao predeterminada e se assinalam configuraes de gerao de solues predeterminadas para proporcionar contexto quando stas se geren. Os equipes de desenvolvimento podem modificar as configuraes do projeto e a soluo predeterminadas e criar otras novas a partir de copias modificadas das predeterminadas.

Geraes durante o desenvolvimento de uma aplicao


As solues junto com seus distintos projetos se suelem gerar e testar em uma verso de depurao. Os programadores compilaram uma verso de depurao repetidas vezes, em cada passo do processo de desenvolvimento. A depurao um processo que consta de dos passos. Em primer lugar, se corrignos erros de gerao. Estos erros podem deverse a uma sintaxis incorrecta, a palabras chave mal escritas ou a divergencias entre os tipos. A continuao, se utiliza o depurador para detectar e corregir problemas tales como erros lgicos e semnticos detectados em tiempo de execuo. Quando um projeto ou uma soluo esto totalmente desenvolvidos e suficientemente depurados, seus componentes se compilam em uma verso de lanamento. De forma predeterminada, uma verso de lanamento implica varias otimizaes. As verses que se otimizam esto concebidas para que seu tamanho seja menor e seu execuo mais rpida que as que no se otimizan. Para obter mais informao sobre a otimizao.

Selecionar e Editar configuraes de gerao


Utilize o quadro de dilogo pginas de propriedades do projeto para definir configuraes do projeto, que so conjuntos de propriedades para cada combinao de gerao e plataforma admitida (por exemplo, Debug .NET ou Release Win32). Cada configurao do projeto ser anexado s propriedades do projeto comuns das distintas propriedades de configurao especficas de um tipo de gerao e plataforma. Estas propriedades determinam que componentes do projeto vo gerar e implementar e como vai ser otimizar ou projeto. Utilize o quadro de dilogo pginas de propriedades de Soluo para definir as propriedades comuns e de configurao da soluo. As propriedades comuns incluem valores para o projeto de inicio e as dependencias do projeto. As

Apostila Visual Studio 2005

175

propriedades de configurao incluem mens de lista desplegable que enumeram tipos de configuraes do projetos e plataformas disponiveis, e abas de verificao para ativar aqueles projetos que vo gerar e (se ativa) implementar. A combinao da configurao do projeto e a plataforma Selecionada determina a configurao de gerao do projeto que vai ser utilizar. Utilize a lista desplegable Configuraes de soluo da barra de ferramentas padro para selecionar a configurao de gerao da soluo ativa e para abrir o quadro de dilogo Administrador de configurao. Tambm pode obter acesso ao Administrador de configurao desde o quadro de dilogo pginas de propriedades de Soluo e os quadros de dilogo pginas de propriedades de <nomedo projeto>. Utilize este quadro de dilogo para selecionar e editar as configuraes de gerao da soluo e para mudar o nome das configuraes do projeto ou eliminarlas. Pode criar geraes especiais proprias, como uma configurao de gerao de controle de qualidade destinada a os encarregados de testar a soluo ou uma configurao de gerao pessoal para testar cdigo preliminar.

Implementar solues
Quando j possa compilar os componentes da soluo e distribuir a aplicao acabada a os usuarios, posible que deseje agregar um projeto de inicio ou implementao. Este tipo do projeto ana toda a soluo dentro de um arquivo de Microsoft Windows Instalher para que a instalao da aplicao resulte mais sencilA a os usuarios. Cada projeto de implementao pode ser tam selectivo como se deseje, identificando determinados componentes para a implementao (por exemplo, para distribuirlos a um servidor de prova) e dejando outros no equipe de origem.

Configuraes de gerao
As configuraes de gerao proporcionam um meio de selecionar os componentes que vo gerar, excluir os que no vo gerar e determinar como vo gerar os projetos selecionados e em que plataforma. Podem definir dos nveis de configuraes de gerao no Visual Studio, as configuraes de gerao de solues e as configuraes do projetos.

Configuraes de gerao de solues


Em uma configurao de gerao de solues se especifica o modo em que vo gerar e (se ativa) implementar determinados projetos de uma soluo. Para definir uma nova configurao de gerao de solues, abra o quadro de dilogo Administrador de configurao e selecione Nova no men Configurao de solues ativas. Cada entrada de uma configurao de gerao de solues inclui um nome do projeto, listas desplegaveis de tipos de geraes do projetos (Configuraes) e Plataformas disponiveis, as como as abas de verificao Gerar e Implementar (se ativa) para selecionar aqueles projetos que vo gerar. A combinao de um tipo de gerao e plataforma Selecionada determina a configurao do projeto que vai ser utilizar. Pode criar tantas configuraes de gerao de solues como deseje, cada uma delas com um nome distinto. ou entorno de desenvolvimento integrado (IDE) de Visual Studio assinala automticamente configuraes de gerao de solues siempre que:

Apostila Visual Studio 2005

176

Adiciona uma plataforma do projeto com a aba Criar tambm configuraes de solues novas ativada. Adiciona uma configurao do projeto com a aba Criar tambm configuraes de solues novas ativada.

Adiciona um novo projeto que vai ser implementado em varias plataformas, sendo uma delas nova.

Para determinar o modo de criar ou mudar o nome de configuraes de gerao de solues quando adiciona novas configuraes do projeto e plataformas, a IDE segue umas regras de nomenclatura para as configuraes de gerao de solues. Esta nomenclatura adota a forma <project configuration name> <platform name>. No nome de configurao de gerao da soluo se omite o nome da plataforma quando todos os projetos so gerados para uma nica plataforma. As configuraes de gerao de solues tambm proporcionam informao geral do contexto do projeto ao IDE. Por exemplo, se na configurao de gerao de solues ativa se especifica que um projeto vai ser gerado em um dispositivo mvel, no quadro de ferramentas somente so mostrados os elementos do projeto que podem utilizar em um projeto de dispositivo mvel enquanto se trabalha em dito projeto.

Configuraes do projetos
No quadro de dilogo pginas de propriedades do projeto so mostradas as propriedades comuns e de configurao do projeto Selecionado. As listas desplegaveis situadas na parte superior deste quadro de dilogo indicam os tipos de geraes do projetos disponiveis (por exemplo, Debug ou Release) e as plataformas disponiveis (por exemplo .NET ou Win32). Para cada combinao de gerao e plataforma, existe uma configurao do projeto, dizer, um conjunto de propriedades do projeto definidas. A maiora dos projetos do linguagem de programao de Visual Studio .NET empiezam com as configuraes do projeto Debug e Release. Todos os projetos de Visual Studio tm pelo menos uma configurao do projeto predeterminada. Cada configurao do projeto ser anexado s propriedades comuns das distintas propriedades de configurao do projeto especficas de um tipo de gerao e plataforma (por exemplo, Debug .NET ou Release Win32). Pode definir as propriedades dependentes da configurao em cada configurao do projeto que necesite. As propriedades do projeto se utilizam para determinar, por exemplo, que elementos do projeto vo incluir em uma determinada gerao, que arquivos de resultados vo criar, dnde vo colocar estos arquivos e como vo otimizar. Quando gerado uma soluo, Visual Studio aplica a configurao de gerao de solues ativa, que especifica as configuraes do projeto que vo utilizar para cada projeto que vai ser gerar. As configuraes do projeto podem diferir considervelmente. As propriedades de uma configurao do projeto poderiam, por exemplo, especificar que seu arquivo de resultados se otimizara para que o binario resultante ocupara o mnimo espao, enquanto que outro projeto podra otimizarse de tal forma que seu executvel se executara velocidade mxima. Um tercer projeto podra no ter nenhum tipo de otimizao. As configuraes do projeto no se almacenam por usuario, sino por soluo, para que possa compartirlas um equipe. Aunque as dependencias do projeto seam independentes da configurao, somente so gerados os projetos especificados na configurao de gerao da soluo ativa.

Mudar configuraes de gerao de solues Apostila Visual Studio 2005 177

A configurao de gerao da soluo ativa se mostra em um men desplegable na barra de ferramentas padro da IDE. Para criar, mudar de nome ou eliminar configuraes de gerao de solues, Utilize o quadro de dilogo Administrador de configurao. Pode mudar a configurao ativa diretamente desde a lista desplegable Configuraes de soluo da barra de ferramentas padroou desde o Administrador de configurao. As configuraes de gerao de solues atualizadas so mostrados no quadro de dilogo pginas de propriedades de Soluo. Pode mudar os projetos que vo ser gerados ou (se ativa) implementados por uma configurao de gerao de solues desde qualquer interface de usuario. Por exemplo, se desativa a aba de verificao Gerao de um projeto no quadro de dilogo pginas de propriedades de Soluo y, a continuao, abre o quadro de dilogo Administrador de configurao para editar a misma configurao de gerao de solues, a aba de verificao Gerao de ese projeto tambm se desativar.

Como assinala a IDE as configuraes do projeto que vo gerar


Quando criado uma nova configurao de gerao de solues (em lugar de copiar uma existente), a IDE determina as configuraes do projeto predeterminadas para os projetos que vo gerar utilizando os seguintes criterios de seleo para cada projeto (com a prioridade que se indica): 1. A nova configurao de gerao de solues gerar uma configurao do projeto cujo nome coincida exatamente com o seu prprio. nos nomes de configuraes no se distingue entre maisculas e minsculas. 2. Se no existe nenhum nome que coincida exatamente, a nova configurao de gerao de solues gerar uma configurao do projeto cujo nome coincida com a parte de configurao de seu nome, independentemente de se coincide ou no a parte de plataforma do nome. Lembre-se que a regra de nomenclatura <configuration name> <platform-name>. 3. Se tampoco se encontra nenhuma coincidencia, a nova configurao de soluo gerar a primera configurao incluida para um projeto.

Como assinala a IDE configuraes de gerao de solues


Quando criado uma configurao do projeto e se ativa a aba Criar tambm nova configurao para o projeto, a IDE busca uma configurao de gerao de solues com nome apropriada para gerar o projeto em cada uma das plataformas compatveis. Em alguns casos, a IDE mudar o nome das configuraes de gerao de solues existentes ou criar novas configuraes. A IDE determina como se assinalam as configuraes de gerao de solues a partir dos seguintes criterios de seleo:
Se uma configurao do projeto no especifica nenhuma plataforma ou especifica somente uma, se buscar ou agregar uma configurao de gerao de solues cujo nome coincida com o da nova configurao do projeto. Neste caso, o nome da configurao de gerao da soluo predeterminada no incluir o nome de plataforma, sino que adotar a forma <project configuration name>. Se um projeto admite varias plataformas, se buscar ou agregar uma configurao de gerao de solues para cada configurao do projeto, para gerar cada projeto em cada uma das plataformas compatveis. o nome da configurao de gerao de solues incluir tanto o nome de configurao do projeto como o nome da plataforma; tendr a forma <project configuration name> <platform name>.

Apostila Visual Studio 2005

178

Considere, por exemplo, os projetos P1 e P2. P1 somente admite a plataforma .NET. P2 se pode gerar em dos plataformas, .NET e PPC. A continuao, adiciona uma nova configurao de gerao de solues denominada Exemplo e se ativa a aba Criar tambm nova configurao para o projeto no quadro de dilogo Configurao de soluo nova. Em P1, criado uma nica configurao do projeto denominada Exemplo. Em P2, a IDE cria dos novas configuraes do projeto denominadas Exemplo .NET e Exemplo PPC. Adems, assinala o nome Exemplo .NET primera configurao de gerao de solues e cria uma segunda configurao denominada Exemplo PPC. A configurao de gerao de solues Exemplo .NET gerar ahora ambos projetos na plataforma .NET: P1 utilizar seu configurao do projeto Exemplo e P2 utilizar seu configurao do projeto Exemplo.NET. A configurao de gerao de solues Exemplo PPC agregada gerar P2 na plataforma PPC utilizando seu configurao do projeto Exemplo.PPC, pero seguir gerando P1 na plataforma .NET utilizando seu configurao do projeto Exemplo (ya que sta a nica configurao do projeto disponible para P1). A continuao, se lo deseja, pode editar a configurao de gerao de solues Exemplo PPC no quadro de dilogo Administrador de configurao para, por exemplo, desativar a aba de verificao Gerar para P1.

Preparar e administrar geraes


Visual Studio .NET ofrece uma gram variedade de formas de organizar os arquivos que vo incluir em uma gerao de uma soluo ou de um projeto, de definir ou conjunto de propriedades do projeto que se aplicaram enquanto se realiza a gerao e de garantizar que os projetos se gerem no ordem correcto. A continuao, se incluem alguns procedimentos comuns de Visual Studio para preparar e administrar geraes. Para gerar o voltar a gerar uma soluo completa 1. No Solution Explorer, selecione ou abra a soluo que deseje. 2. No men Gerar, escolha Gerar soluo ou Voltar a gerar soluo.
Escolha Gerar o Gerar soluo para compilar somente os arquivos do projeto e componentes modificados desde a ltima gerao.

Nota ou comando Gerar cambia a Gerar soluo quando uma soluo inclui mais de um projeto.

Escolha Voltar a gerar soluo para "limpiar" primero a soluo y, a continuao, gerar todos os arquivos e componentes do projeto.

Nota ao "limpiar" uma soluo ou projeto se eliminam os arquivos intermedios e de resultados, quedando somente os arquivos do projeto e dos componentes, a partir dos cuales podem gerar posteriormente novas instancias de arquivos intermedios e de resultados. Para gerar o voltar a gerar um solo projeto 1. No Solution Explorer, selecione ou abra o projeto que deseje. 2. No men Gerar, escolha Gerar [nome do projeto] ou Voltar a gerar [nome do projeto].

Apostila Visual Studio 2005

179

Escolha Gerar [nome do projeto] para gerar somente os componentes do projeto modificados desde a ltima gerao. Escolha Voltar a gerar [nome do projeto] para "limpiar" primero ou projeto y, a continuao, gerar todos os arquivos e componentes do projeto.

Para gerar somente ou projeto inicial e seus dependencias 1. No men Ferramentas, escolha Opes. 2. No quadro de dilogo Opes, expanda a pasta Entorno e escolha Projects e solues. Ser aberto o quadro de dilogo Projetos e solues, Entorno, Opes 3. Em Opes para gerar e executar, selecione a opo para Gerar projetos de inicio e dependencias nicamente ao executar. Se esta opo est Selecionada, somente ou projeto inicial e seus dependencias so gerados quando se elige um dos seguintes comandos:

Escolha Iniciar (F5) no men Depurar

O bem

Escolha Gerar soluo (CTRL+MAYS+b) no men Executar.

Com esta opo desativada, qualquera dos comandos anteriores gerar todos os projetos, seus dependencias e os arquivos de solues. De forma predeterminada, esta opo no est Selecionada, pero se ativa quando se Seleciona ou perfil "Programador de Visual C++" na ficha Mi perfil da Pgina de inicio. Nota inicio). Para obter mais informao sobre perfiles de usuario, veja
Mi perfil (Pgina de

Para gerar somente ou projeto Selecionado de C++ A submen somente projeto do men Gerar mostra tres comandos especficos de um projeto, diponiveis somente para os projetos de Visual C++:

Gerar somente <nome do projeto> (CTRL+F7) Voltar a gerar somente <nome do projeto> (CTRL+ALT+F7) Limpiar somente <nome do projeto> (CTRL+MAYS+F7)

Estos tres comandos geran, limpiam e geram ou limpiam ou projeto de C++ que est Selecionado no Solution Explorer, sem gerar o limpiar dependencias do projeto ou arquivos da soluo. Para gerar por lotes varias configuraes do projeto Utilize o comando Gerao por lotes para gerar simultneamente todas as configuraes do projeto Selecionadas. somente geradoram os projetos Selecionados. 1. No men Gerar, escolha Gerao por lotes. 2. Ative as abas de verificao das configuraes do projeto que deseje gerar. 3. Escolha Gerar o Voltar a gerar. Para fazer que um projeto dependa de outro

Apostila Visual Studio 2005

180

As dependencias do projeto determinam ou ordem em que so gerados os projetos. Si, por exemplo, um projeto P2 necesita recursos do projeto P1, ste ltimo deve gerarse antes que P2. Utilize o quadro de dilogo Dependencias do projeto para fazr que P2 dependa de P1. 1. Agregue pelo menos dos projetos soluo. 2. No Solution Explorer, selecione um projeto. 3. No men Project, escolha Dependencias do projeto. Ser aberto o quadro de dilogo Dependencias do projeto. 4. Mude ou projeto na lista Projeto se deseja establecer as dependencias de um projeto diferente. 5. No campo Depende de, selecione outro projeto para que se gere antes que o atual. 6. Para ver o ordem resultante em que geradoram os projetos, d um clic na ficha Ordem de gerao. Para establecer ou ordem em que so gerados os projetos Quando estabelea as dependencias no quadro de dilogo Dependencias do projeto, selecione os projetos em ordem inverso, comeando com projeto que deseje gerar em ltimo lugar. 1. Abra o quadro de dilogo Dependencias do projeto. 2. No men desplegable Projects, selecione ou projeto que deseja gerar em ltimo lugar. 3. No campo Depende de, selecione os projetos que deseja que se gerem antes que o projeto Selecionado no men Projects. 4. Vuelva ao men Projects e selecione projeto que deseja gerar em penltimo lugar. 5. Em Depende de, selecione os projetos que deseja que se gerem antes que o projeto Selecionado no men Projects. 6. Contine com este processo hasta que somente quednos projetos que no tm dependencias do projeto. 7. Selecione a ficha Ordem de gerao no quadro de dilogo Dependencias do projeto para ver o ordem em que vo gerar os projetos. Para editar propriedades do projeto As propriedades do projeto podem variar em virtude da configurao do projeto, ou ser independentes das configuraes do projeto. Utilize o quadro de dilogo Pginas de propriedades de <nome do projeto> para mostrar as propriedades relacionadas com a configurao. Utilize a janela Propriedades para mostrar as propriedades que no esto relacionadas com a configurao. 1. No Solution Explorer, selecione um projeto. 2. No men Project, escolha Propriedades. Ser aberto o quadro de dilogo pginas de propriedades de <nome do projeto>.

Apostila Visual Studio 2005

181

3. Selecione as propriedades que deseje editar e escreva os valores que deseje. Para establecer as Opes para guardar nos comandos de gerao As opes para guardar projetos e solues determinam se os cambios que no se ham guardado durante a edio vo incluir quando se genernos projetos e solues. 1. No men Ferramentas, escolha Opes. 2. No quadro de dilogo Opes, expanda a pasta Entorno e escolha Projects e solues. Ser aberto o quadro de dilogo Projects e solues, Entorno, Opes. 3. Em Opes para gerar e executar, selecione uma opo para guardar: Guardar cambios, Preguntar se guardam os cambios ou no guardar cambios. Para mostrar comentarios sobre as geraes As opes de presentao do projetos e solues determinam a informao que vai ser mostrar quando se genernos projetos e solues. 1. No men Ferramentas, escolha Opes. 2. No quadro de dilogo Opes, expanda a pasta Entorno e escolha Projects e solues. Ser aberto um quadro de dilogo. 3. Se deseja que a janela Resultados aparezca na parte superior e que muestre ou progreso das geraes, selecione Mostrar janela de resultados quando empiece a gerao. 4. Se deseja ver todos os erros de uma gerao na Lista de tareas, uma vez finalizada a gerao, selecione Mostrar janela de lista de tareas se a gerao termina com erros.

Criar e editar configuraes


As configuraes de gerao de solues permitem selecionar que projetos foram includas nas diferentes geraes de um projeto ou soluo. As configuraes do projetos incluem opes detalladas de gerao e depurao para cada combinao de configurao e plataforma de gerao de solues. A criao de configuraes de gerao de solues e projetos pode ajud-lo a coordinar ou processo de desenvolvimento e as necessidades dos diversos grupos de usuarios, tanto dentro como fora da organizao.

Para abrir o quadro de dilogo Administrador de configurao


1. No Solution Explorer, selecione a soluo. 2. No men Gerar, escolha Administrador de configurao. Ser aberto o quadro de dilogo pginas de propriedades do projeto. O bem 1. No Solution Explorer, selecione a soluo. 2. No men Ver, selecione pginas de propriedades.

Apostila Visual Studio 2005

182

3. No panel esquerdo, selecione ou nodo Propriedades de configurao. 4. Selecione ou boto Administrador de configurao. Ser aberto o quadro de dilogo Administrador de configurao. A lista desplegable Configurao de solues ativas mostra o nome da configurao de gerao de solues atual. o panel Contextos do projeto mostra os projetos da soluo, as configuraes do projetos e a plataforma especificadas, e as abas de verificao que indicam se um projeto se incluir ao gerar o implementar a soluo utilizando esta configurao.

Para abrir o quadro de dilogo pginas de propriedades do projeto.


1. No Solution Explorer, selecione um projeto. 2. No men Project, escolha Propriedades. Ser aberto o quadro de dilogo pginas de propriedades do projeto. Por cada combinao de Configurao e Plataforma Selecionada, so mostrados diferentes conjuntos de Propriedades comuns e Propriedades de configurao.

Trabalhar com configuraes do projeto


Estes so alguns procedimentos habituais para criar e administrar configuraes do projeto:

Para criar uma configurao do projeto


1. Abra o quadro de dilogo Administrador de configurao. 2. No Administrador de configurao, selecione um projeto na coluna Project. 3. Selecione ou men desplegable Configurao de ese projeto e escolha Novo. Ser aberto o quadro de dilogo Nova configurao do projeto. 4. No quadro de texto nome da configurao do projeto, escreva o nome da nova configurao. 5. Para utilizar as mismas opes de propriedades que as especificadas em uma configurao do projeto existente, selecione uma configurao na lista desplegable Copiar configurao de. 6. Para criar uma configurao de soluo nova ao mismo tiempo, ative a aba de verificao Criar tambm configuraes de solues novas.

Para mudar o nome de uma configurao do projeto


1. Abra o quadro de dilogo Administrador de configurao. 2. Selecione ou projeto a cuya configurao do projeto deseja mudar o nome. 3. Na lista desplegable Configurao de ese projeto, selecione Editar. Ser aberto o quadro de dilogo Editar configuraes do projeto. 4. Selecione o nome da configurao do projeto que deseja mudar. 5. Selecione Editar e escreva ou novo nome da configurao.

Para selecionar e editar uma configurao do projeto


1. Abra o quadro de dilogo pginas de propriedades do projeto.

Apostila Visual Studio 2005

183

2. Selecione a Configurao e Plataforma que deseje nos mens desplegaveis situados na parte superior do quadro de dilogo. 3. Expanda ou nodo Propriedades de configurao no panel esquerdo. As propriedades que so mostrados no panel direito so especficas da combinao de Configurao e Plataforma Selecionada. 4. Selecione as propriedades individuales e selecione ou escreva os valores que deseje.

Trabalhar com configuraes de gerao de solues


Estes so alguns procedimentos habituais para criar e administrar configuraes de gerao de solues:

Para criar uma configurao de gerao de solues


1. Abra o quadro de dilogo Administrador de configurao. 2. Na lista desplegable Configurao de solues ativas, selecione Nova. Ser aberto o quadro de dilogo Configurao de soluo nova. 3. Escreva o nome da nova configurao de gerao de solues no quadro de texto nome da configurao de solues. 4. Para utilizar as mismas opes que otra configurao de gerao de solues, seleoeA na lista desplegable do quadro de texto Copiar configurao de. 5. Se deseja criar uma ou varias configuraes do projeto ao mismo tiempo, ative a aba de verificao Criar tambm nova configurao para o projeto.

Para mudar o nome a uma configurao de gerao de solues


1. Abra o quadro de dilogo Administrador de configurao. 2. Na lista desplegable Configurao de solues ativas, selecione Editar. Ser aberto o quadro de dilogo Editar configuraes de solues. 3. Selecione o nome da configurao de gerao de solues que deseja mudar. 4. Selecione Mudar nome e escreva ou novo nome da configurao.

Para selecionar e editar uma configurao de gerao de solues


1. Abra o quadro de dilogo Administrador de configurao. 2. Selecione a configurao de gerao de solues que deseje no men desplegable Valores da configurao ativa situado na parte superior do quadro de dilogo. Os painis Contexto do projeto mostram as propriedades da configurao de gerao de solues ativa. 3. Selecione os projetos disponiveis na soluo. 4. Selecione a Configurao e Plataforma que deseje para o projeto. Juntas, estas dos opes especificam a configurao do projeto que vai ser utilizar. 5. Se ou projeto vai ser incluir ao gerar esta configurao de gerao de solues, ative a aba de verificao Gerar.

Apostila Visual Studio 2005

184

6. Se ou projeto se pode implementar e vai a utilizar esta configurao de gerao de solues para implementarlo, ative a aba de verificao Implementar.

Criar e quitar dependencias do projeto


Quando gerado uma soluo, a vezes necessrio gerar determinados projetos primero, para gerar o cdigo que utilizam outros projetos. Quando um projeto utiliza cdigo executvel gerado por outro projeto, faz referencia ao projeto que gera o cdigo como uma dependencia do projeto do projeto que utiliza o cdigo. Estas relaes de dependencia podem definir no quadro de dilogo Dependencias do projeto. Para assinalar dependencias a projetos A soluo deve constar de mais de um projeto para poder criar dependencias do projeto. 1. No Solution Explorer, selecione um projeto. 2. No men Project, escolha Dependencias do projeto. Ser aberto o quadro de dilogo Dependencias do projeto. 3. Na ficha Dependencias, selecione um projeto do men desplegable Project. 4. No campo Depende de, ative a aba de verificao de todos os projetos que devem gerarse antes que o atual. Para quitar dependencias do projetos 1. No Solution Explorer, selecione um projeto. 2. No men Project, escolha Dependencias do projeto. Ser aberto o quadro de dilogo Dependencias do projeto. 3. Na ficha Dependencias, selecione um projeto do men desplegable Project. 4. No campo Depende de, desative as abas de verificao de todos os projetos que j no mantm relaes de dependencia com o projeto atual.

Agregar e quitar referencias do projeto


A quadro de dilogo Agregar referencia se pode utilizar para agregar ou para eliminar referencias do projeto. posible ter acesso a este quadro de dilogo desde o men Project. Para agregar uma referencia do projeto 1. No Solution Explorer, selecione ou projeto. 2. No men Project, escolha Agregar referencia. Ser aberto o quadro de dilogo Agregar referencia. 3. Escolha a ficha da categora que deseja agregar uma referencia.

Apostila Visual Studio 2005

185

4. Escolha Examinar e busque o componente que deseje na unidade local; a continuao, d um clic em Aceptar. A componente adiciona ao campo Componentes Selecionados. 5. Para agregar a referencia Selecionada ficha atual, selecione Agregar. Para quitar referencias do projeto 1. No Solution Explorer, selecione ou projeto. 2. No men Project, escolha Agregar referencia. Ser aberto o quadro de dilogo Agregar referencia. 3. D um clic na ficha da categora que contm as referencias que deseja quitar. 4. Selecione todas as referencias que deseja quitar e d um clic em selecionar para colocarlas no campo Componentes Selecionados. 5. Para quitar as referencias Selecionadas, escolha Quitar.

Editar propriedades do projeto


Para mostrar todas as propriedades independentes da configurao de um projeto, como por exemplo o nome e a caminho de acesso do projeto, utilize a janela Propriedades. Para mostrar as propriedades do projeto dependentes da configurao, como ou nivel de otimizao do compilador e o tipo de arquivo de resultados, Utilize o quadro de dilogo pginas de propriedades do projeto. Para selecionar um conjunto de propriedades no quadro de dilogo pginas de propriedades do projeto, escolha um tipo de gerao e uma plataforma nos mens desplegaveis situados na parte superior. Para cada combinao de tipo de gerao (por exemplo, Debug ou Release) e plataforma (por exemplo, .NET ou Win32), existe uma configurao do projeto, dizer, um conjunto de propriedades definidas. Cada configurao do projeto ser anexado s propriedades comuns das distintas propriedades de configurao do projeto especficas de um tipo de gerao do projeto e plataforma. Para muchos tipos do projetos, cada propriedade de configurao afeta a todos os elementos que pertenecna ese projeto. sem embargo, em alguns tipos do projetos podem definir propriedades dependentes da configurao para cada um de seus elementos. Pode selecionar um nico projeto e mostrar todas seus propriedades, ou selecionar varios projetos e mostrar solamente as propriedades que tm em comn. Para editar as propriedades de um projeto ou projetos 1. No Solution Explorer, selecione ou projeto ou os projetos que deseje. 2. No men Project, escolha Propriedades. Ser aberto o quadro de dilogo pginas de propriedades, no que so mostrados as Propriedades comuns e Propriedades de configurao. Para cada combinao de configurao de gerao da soluo e plataforma existe uma configurao do projeto, dizer, um conjunto de propriedades do projeto. se Seleciona varios projetos, somente se mostraram as propriedades compartidas por todos os projetos.

Apostila Visual Studio 2005

186

Nota Tambm podem definir dependencias do projeto que determinno ordem de gerao de um grupo do projetos. Para obter mais informao, veja Criar e quitar dependencias do projeto.

Depurao
Tem criado seu aplicao e tem resuelto os erros de gerao. Ahora deve corregir os erros lgicos que possam impedir a correcta execuo da aplicao ou dos procedimentos almacenados. Pode fazr esto com as funes de depurao do entorno de desenvolvimento integrado. Dichas funes permitem deter o programa nas ubicaes de procedimentos, inspecionar a memoria e os valores dos registros, mudar variaveis, observar o trfico de mensagens e obter um melhor conocimento de por que o cdigo funciona ou no funciona.

O novo no depurador de VS.NET 2003


Tem melhorado o depurador de Visual Studio .NET 2003 com as seguintes caractersticas novas: Melhoras de segurana, incluida uma nova restrio em Depurao Just-InTime que aumenta a seguranae evitando a depurao Just-In-Time entre equipes.
Depurao remota mediante canalizaes, uma alternativa nova e mais segura depurao mediante transporte TCP/IP.

Capacidade de cargar volcados que contm informao administrada. Os volcados administrados podem depurarse com a ferramenta de depurao SOS, que se executa desde a janela Comando.

Execuo passo a passo automtica de servios Web XML.

Compatibilidade com a descarga automtica de smbolos de depurao desde um servidor de smbolos. Mensagens de error melhorados, especialmente para erros que se producem ao depurar aplicaes Web.

Una nova pseudovarivel, $exception, para recuperar informao sobre excepes de C#.

Tutorial: depurar um projeto de complemento


Os complementos so aplicaes compiladas que utilizam ou modelo de objetos de automatizao de Visual Studio para manipular ou automatizar ou entorno de desenvolvimento integrado (IDE). Para obter mais informao, veja Grupos de automatizao funcional. Com este tutorial aprender a:

Criar um projeto de complemento sencillo no Visual Studio .NET.

Utilizar pontos de interrupo para depurar ou projeto de complemento de Visual Studio.

Apostila Visual Studio 2005

187

Para criar um projeto de complemento sencillo no Visual Studio 1. No men Arquivo, escolha Novo e d um clic em Project. Aparecer ou quadro de dilogo Novo projeto. 2. No panel Tipos do projeto, expanda ou nodo Outros projetos e selecione Projects de extensibilidad. No panel Moldes, selecione Complemento de Visual Studio .NET. 3. Em campo nome, escreva SimpleAddIn como nome do projeto de complemento. D um clic em Aceptar. Aparecer ou Asistente para complementos. 4. Na pgina Asistente para complementos, d um clic em Seguinte. 5. Na pgina Selecione um linguagem de programao, escolha Criar um complemento utilizando Visual C# e despus d um clic em Seguinte. 6. Na pgina Selecione uma aplicao host, mantenga as opes predeterminadas e despus d um clic em Seguinte. 7. Na pgina Especifique um nome e uma descripo, escreva Complemento sencillo como nome do complemento e escreva Se utiliza para ilustrar a forma de depurar um complemento sencillo como descripo do complemento. D um clic em Seguinte. 8. Na pgina Escolha as opes do complemento, ative a opo S, criar um elemento de men Ferramentas, e despus d um clic em Seguinte. 9. Na pgina Seleo de informao para Ajuda - Acerca de, ative a opo S, me gustara que mi complemento ofreciera informao no quadro Acerca de e despus d um clic em Seguinte. 10.Na pgina Resumen, d um clic em Finalizar. A Asistente para complementos gera o novo projeto de complemento e abre a IDE com o foco no arquivo Connect.cs. 11.Agregue uma referencia ao ensamblado para permitir ou uso de tipos no espao de nomes System.Windows.Forms. No Solution Explorer, d um clic com o boto secundario do mouse no nodo References e selecione Agregar referencia. Aparecer ou quadro de dilogo Agregar referencia. 12.Na pgina da ficha .NET, d um duplo clic no componente System.Windows.Forms.dll. o nome deste componente aparecer no panel Componentes Selecionados. 13.D um clic em Aceptar. Em Solution Explorer, aparecer uma referencia ao espao de nomes System.Windows.Forms bajo ou nodo References. 14.Agregue uma diretiva using para permitir ou uso de um objeto MessageBox. Agregue a Connect.cs a seguinte instruo, ao principio do mbito de SimpleAddIn: using System.Windows.Forms;

Apostila Visual Studio 2005

188

15.Agregue um objeto MessageBox ao complemento. Agregue a lnea de cdigo em negrita ao mtodo Exec de Connect.cs: public voide Exec(string commandName, EnvDTE.vsCommandExecOption executeOption, ref object varIn, ref object varOut, ref bool handled) { handlede = false; if(executeOption == EnvDTE.vsCommandExecOption.vsCommandExecOptionDoDefault) { if(commandName == "MyAddin1.Connect.MyAddin1") { handlede = true; MessageBox.Show("Debugging a Simple Add-in"); return; } } } 16.D um clic no boto Guardar todo para guardar ou trabajo. Para depurar ou projeto de complemento de Visual Studio 1. Em Connect.cs, d um clic no margem esquerdo junto instruo: MessageBox.Show("Debugging a Simple Add-in") Aparece um ponto rojo (interrupo) e o texto da lnea queda resaltado em color rojo. 2. No men Depurar, escolha Iniciar. A sesso atual de Visual Studio (A sesso de depurao) perder ou foco e ser aberto o programa que se est depurando (una instancia de Visual Studio .NET). 3. Na IDE de Visual Studio que se est depurando, abra o men Ferramentas. SimpleAddIn est ao principio da lista de elementos de men. 4. Selecione ou comando SimpleAddIn para executar ou complemento. Esto le lhevar lnea na que estableci ou ponto de interrupo na sesso de depurao de Visual Studio. Esta lnea aparece resaltada em amarillo. 5. No men Depurar da sesso de depurador, escolha Passo a passo por instrues. ou foco mudar de novo ao programa que se est depurando. Ser aberto o quadro de mensagem para indicar que se tem executado ou complemento. 6. D um clic em Aceptar para fechar o quadro de mensagem. 7. Na sesso do depurador, selecione Continuar no men Depurar. A sesso de Visual Studio recuperar ou foco. 8. Feche a sesso de Visual Studio depurada. 9. Em Connect.cs, d um clic no ponto de interrupo que estableci junto instruo MessageBox para quitarA do cdigo fonte.

Preparao e configurao de depurao Apostila Visual Studio 2005

189

se descreve a preparao e a configurao que se devem realizar para depurar o programa com o depurador de Visual Studio. criado o programa no Visual Studio, mediante as moldes do projeto, estos valores se habilitam automticamente na configurao Debug. Para obter mais informao, veja Configuraes Debug e Release. Especificar a configurao do depurador Proporciona instrues para configurar as opes do depurador. Estas opes controlan, entre otras cosas, a forma em que so mostrados as variaveis, se presentam certas advertencias ou no, como se establecnos pontos de interrupo e como estes afetam execuo dos programas. Esta seo tambm inclui temas que cubrno establecimento dos permisses de depurao; as configuraes de verso de depurao e verso de lanamento, a configurao do projeto para uma configurao de depurao de C ou de C++, configuraes de depurao de C#, configuraes de depurao de Visual Basic, descripes de arquivos PDB e DBG, as como a instalao de smbolos de depurao do sistema. Preparao para a depurao: tipos do projetos de Visual C++ Proporciona vnculos a temas que descrevem como depurar os tipos do projetos bsicos criados mediante as moldes do projeto de Visual C++. Os vnculos son: Aplicaes para Windows de Visual C++, Aplicaes de consoA criadas no Visual C++, Arquivos DLL de MFC, Servios Web das P.NET criados com extenses administradas para C++, Aplicaes de consoA criadas com extenses administradas para C++ e Bibliotecas de clases criadas com extenses administradas para C++. Preparao da depurao: tipos do projetos de C# e Visual Basic Proporciona vnculos a temas que descrevem como depurar os tipos do projeto de C# e Visual Basic criados mediante as moldes do projeto de Visual Studio. Os vnculos son: aplicaes para Windows, bibliotecas de clases, bibliotecas de controles de Windows, aplicaes Web ASP.NET, projetos de servio Web ASP.NET, aplicaes de consoA e servios de Windows. Instalao da depurao remota Descreve a depurao remota e proporciona vnculos a temas sobre a instalao da depurao remota, erros, configurao de DCOM para a depurao remota, depurao remota em otra cuenta de usuario, depurao remota em dominios, e coexistencia com o depurador de Visual Studio 6.0. Depurar um executvel que no forme parte de uma soluo de Visual Studio Proporciona instrues para depurar um arquivo executvel que no forma parte de um projeto de Visual Studio. Depurar a pgina principal Proporciona vnculos a sees mais amplias da documentao relativa depurao. Inclui: novedades do depurador, configurao e preparao, pontos de interrupo, controle de excepes, editar e continuar, depurar cdigo administrado, depurar projetos de Visual C++, depurar COM e AtiveX, depurar arquivos DLL, depurar SQL e as referencias interface de usuario.

Apostila Visual Studio 2005

190

Depurar sequncias de comandos no cliente Trata das sequncias de comandos de prova e do cliente em pginas ASP.NET. Entre as tareas que podem realizar ao depurar sequncias de comandos do cliente em uma pgina Web esto: ver o cdigo fonte, controlar ou ritmo de execuo das sequncias de comandos com pontos de interrupo e execuo passo a passo, ver e mudar os valores de variaveis e propriedades e ver e controlar ou flujo das sequncias de comandos com a janela PiA de chamadas.

Especificar a configurao do depurador


Em Visual Studio, podem especificar diversas configuraes para o comportamento do depurador, incluidas a forma em que so mostrados as variaveis, se presentam certas advertencias, como se establecnos pontos de interrupo e como estes afetam execuo de programas. (A configurao do depurador se especifica no quadro de dilogo Opes). Para establecer opes do depurador 1. No men Ferramentas, escolha Opes. 2. No quadro de dilogo Opes, abra a pasta Depurar. 3. Na pasta Depurar, escolha a categora de opes que deseje. (As opes mais comuns se encontram na categora Geral. Para obter mais informao, veja Geral, Depurar, Opes (Quadro de dilogo).) 4. Ative ou desative as opes que deseje. Presione F1 para obter ajuda sobre estas opes. Certos valores de configurao do projeto tambm afetam depurao. Estos valores determinan, por exemplo, que directorios consulta o depurador, ou comando e os argumentos do comando que se utilizam para iniciar o programa e o tipo de informao de depurao criada para o programa. Esta configurao se pode mudar no quadro de dilogo pginas de propriedades. Para obter informao detallada, veja Configuraes Debug e Release.

Establecer os permisses de depurao


Os seguintes procedimentos mostram como establecer permisses para depurar. Depurao remota Depurar um servio do sistema Depurao de sesso cruzada e servidores terminales Ative Directory

Depurao remota
Para poder depurar em um equipe remoto, deve instalar em dito equipe os componentes de depurao remota. (Veja Instalao da depurao remota.) Quando intenta depurar em um equipe remoto, o depurador faz dos cosas:

Apostila Visual Studio 2005

191

Em primer lugar, intenta conectar com os componentes de depurao remota. Para poder conectar com estos componentes, deve pertenecer ao grupo Usuarios do depurador no equipe remoto ou ser um Administrador do equipe remoto. A continuao, o depurador intenta asociarse ao processo. Deve ter os permisso correctos para depurar ese processo.

O programa de instalao de Visual Studio .NET agrega automticamente o usuario que est instalando ao grupo Usuarios do depurador. se no instal Visual Studio ni os componentes remotos, posible que tenga que agregarse ao grupo Usuarios do depurador. Para obter informao detallada, veja Agregar usuarios do depurador.

Depurar um servio do sistema


Para depurar um servio do sistema ou depurar um programa de terceros em seu prprio equipe:

Deve ser o propietario do processo ou ter privilegios de administrador. (Sequncias de comandos e cdigo administrado)

O bem Deve figurar na lista da diretiva de grupo local para as verses de depurao. (C/C++ nativo)

Para ter acesso diretiva de grupo local


1. No men Inicio, escolha Panel de control. 2. No Panel de control, d um duplo clic em Ferramentas administrativas. 3. Na janela Ferramentas administrativas, d um duplo clic em Diretiva de seguranae local. 4. Na janela Configurao de seguranae local, expanda a pasta Diretivas locais. 5. D um clic nassinalao de direitos de usuario. 6. Na coluna Diretiva, d um duplo clic em Depurar programas para ver as assinalaes atuales da diretiva de grupo local no quadro de dilogo Configurao da diretiva de seguranae local. 7. Para agregar novos usuarios, d um clic no boto Agregar usuario ou grupo.

Depurao de sesso cruzada e servidores de terminales


Somente em C/C++ nativo Windows 2000 no admite a depurao de sesso cruzada mediante um servidor de terminal.

Ative Directory
Se utiliza Ative Directory, a ajuda de Windows para obter informao sobre a administrao e configurao de usuarios. Para obter mais informao, veja ou Manual do programador de Ative Directory em Platform SDK.

Apostila Visual Studio 2005

192

Configuraes Debug e Release


Um projeto de Visual Studio tiene configuraes diferentes para as verses de lanamento e depurao do programa. Como se desprende dos nomes, a verso de depurao gerado para a depurao e a verso de lanamento para a distribuo final de lanamento. Se cria o programa no Visual Studio, Visual Studio cria automticamente estas configuraes e establece as opes predeterminadas apropriadas e outros valores. com a configurao predeterminada:

A verso de depurao do programa se compila sem otimizar e com toda a informao de depurao simblica. (A otimizao complica a depurao, j que a relao entre o cdigo fonte e as instrues geradas mais complexa.) A configurao Release do programa totalmente otimizada e no contm informao de depurao simblica. A informao de depurao se pode gerar em arquivos PDB distintos.

Para mudar entre as verses de lanamento e depurao pode utilizar a barra de ferramentas Padro. Para mudar configurao Debug (o Release)

Na barra de ferramentas Padro, escolha Debug (o Release) no quadro de lista Configuraes de solues.

Pode mudar os valores de uma configurao mediante o quadro de dilogo pginas de propriedades de <Projeto>. Para mudar os valores da configurao de Debug (o Release) 1. No Solution Explorer, selecione ou projeto. 2. No men Ver, d um clic em pginas de propriedades. 3. No quadro de dilogo pginas de propriedades de <Project>, no quadro de lista Configurao, escolha Debug (o Release). 4. Abra a pasta Propriedades de configurao e busque os valores que deseje mudar. 5. Edite os valores na cuadrcuA de propriedades.

Configurao do projeto para uma configurao de depurao de C#


Se pode mudar a configurao do projeto para uma configurao de depurao de C# no quadro de dilogo pginas de propriedades, como se descreve em Configuraes Debug e Release. nas seguintes tablas se mostra dnde encontrar valores relacionados com o depurador no quadro de dilogo pginas de propriedades.

Apostila Visual Studio 2005

193

Pasta Propriedades de configurao (categora Depurao) onfigurao abilitar depurao ASP abilitar depurao SP.NET abilitar depurao sem dministrar escripo Habilita a depurao de pginas Ative Server (ASP). Deve especificar uma direo URL em Direo URL de inicio. Habilita a depurao de pginas de servidor escritas para a plataforma de desenvolvimento ASP .NET. Deve especificar uma direo URL em Direo URL de inicio. Permite depurar chamadas a cdigo nativo (sin administrar) Win32 desde uma aplicao administrada. Esto tiene ou mismo efecto que selecionar Mixto para Tipo de depurador em um projeto de Visual C++. Permite a depurao de procedimentos SQL. Especifica que vai ser depurar: um projeto, que forma parte de uma soluo de Visual Studio; uma direo URL de uma aplicao Web; ou um programa que no pertenece a um projeto de Visual Studio. Especifica ou comando para iniciar o programa que deseja depurar. Especifica a ubicao da aplicao Web que deseja depurar. Especifica a pgina Web donde deseja iniciar a depurao. Especifica os argumentos do comando especificado arriba. Especifica ou directorio de trabajo do programa que se depura. No Visual C#, ou directorio de trabajo ou directorio desde o que se inicia a aplicao: \bin\debug de manera predeterminada. Da instrues ao depurador para que utilize Internet Explorer como explorador para as aplicaes de Internet, em lugar do explorador predeterminado de Internet que tem configurado para Visual Studio. Permite a depurao remota no equipe especificado em Equipe de depurao remoto. A nome do equipe remoto no que se executar a aplicao para depurarla. A ubicao do arquivo EXE no equipe remoto se especifica mediante a propriedade caminho de acesso dos resultados da pasta Propriedades de configurao da categora Gerar. A ubicao deve ser um directorio que se possa compartir no equipe remoto.

abilitar depurao de QL Server odo de depurao

plicao de inicio reo URL de inicio gina de inicio rgumentos da lnea de omandos rectorio de trabajo

sar siempre Internet plorer

abilitar depurao mota quipe de depurao moto

Pasta Propriedades de configurao (categora Gerar)

Apostila Visual Studio 2005

194

onfigurao onstantes de ompilao condicional

escripo A continuao se definem as constantes DEBUG e TRACE. Estas constantes permitna compilao condicional de Debug (clase) e Trace (clase). com a definio destas constantes, os mtodos de clase Debug e Trace geram resultados em Resultados (janela). sem estas constantes, os mtodos de clase Debug e Trace no se compilam e no so gerados resultados. Normalmente Debug se define na verso de depurao de um programa e no se define na verso de lanamento. Normalmente Trace se define na verso de depurao. Tambm se pode definir na verso de lanamento, se deseja incluir esa funcionalidade em esa versso. A menos que encontre um error que somente aparece em cdigo otimizado, deve dejar esta configurao desativada na verso de depurao. ou cdigo otimizado mais difcil de depurar, puesto que as instrues no se correspondem diretamente com as instrues das janelas de cdigo fonte. Esta configurao (equivalente opo do compilador /debug), que normalmente somente se establece na verso de depurao de um programa, cria informao de depurao em tiempo de gerao. o depurador utiliza esta informao para mostrar nomes de variaveis e otra informao em formato til durante a depurao. se compila o programa sem esta informao, a funcionalidade do depurador ser limitada. Para obter mais informao, veja /debug (emitir informao de depurao). Normalmente se establece em bin\Debug para a depurao.

timizar cdigo

erar informao de epurao

ota de acesso dos sultados

Preparao da depurao: tipos do projetos de C# e Visual Basic


Preparao da depurao: aplicaes para Windows
A molde do projeto Aplicao para Windows cria uma aplicao para Windows tradicional mediante C# ou Visual Basic e Common Language Runtime. A depurao deste tipo de aplicao no Visual Studio muy sencilla. Para obter mais informao, veja Criar um projeto de aplicao para Windows.

Para depurar uma aplicao para Windows de C# ou Visual Basic


1. Abra o projeto no Visual Studio.

Apostila Visual Studio 2005

195

2. No men Depurar, escolha Iniciar. Realice a depurao utilizando as tcnicas explicadas em Utilizar o depurador. Quando criado um projeto de aplicao para Windows com a molde do projeto, Visual Studio cria automticamente a configurao requerida para as configuraes Debug e Release. se fora necessrio, pode mudar esta configurao. Para obter mais informao, veja Configuraes Debug e Release.

Para mudar a configurao de depurao predeterminada


Estabelea o modo de Depurao em Project (normalmente) o programa (se no tiene um projeto de Visual Studio para a aplicao para Windows).

Defina as constantes DEBUG e TRACE, que permitem utilizar na aplicao as clases Debug e Trace. Ative Gerar informao de depurao. Estabelea caminho de acesso dos resultados em bin\Debug\.

Em C#, estabelea Otimizar cdigo em false. (A cdigo otimizado mais difcil de depurar, puesto que as instrues geradas no se correspondem diretamente com as instrues de cdigo fonte. se detecta que seu programa tiene um error que somente aparece em cdigo otimizado, pode ativar esta configurao, pero lembre-se que o cdigo mostrado na janela Desensamblador gerado a partir do cdigo otimizado que pode no coincidir com lo que aparece nas janelas de cdigo fonte. Otras caractersticas, como a execuo passo a passo, pode que no funcionem como se espera.)

Asociao
Outra forma de depurar uma aplicao para Windows consiste em iniciarA fora de Visual Studio e asociarA ao depurador. se asocia a aplicao para Windows de C# ou Visual Basic, asegrese de que est ativada a aba de verificao Common Language Runtime no quadro de dilogo Asociar ao processo. Para obter mais informao, veja Asociar o depurador a um programa o programas em execuo, Asociar ao processo (Quadro de dilogo) e Formularios Windows Forms.

Preparao da depurao: aplicaes de consola


Preparar a depurao de um projeto de aplicao de consoA de C# ou Visual Basic similar a preparar a depurao de um projeto de aplicao para Windows, com algunas consideraes adicionales: Para obter mais informao, veja Preparao da depurao: aplicaes para Windows. Pode ter que especificar argumentos de lnea de comandos para a aplicao de consola. Para obter mais informao, veja Configurao do projeto para uma configurao de depurao de Visual Basic ou Configurao do projeto para uma configurao de depurao de C#. Ao igual que todas as propriedades do projeto, estos argumentos persistem entre seses de depurao e entre seses de Visual Studio. Por tanto, se a aplicao de consoA uma que j tem depurado anteriormente, lembre-se que pode haber argumentos de seses anteriores no quadro de dilogo pginas de propriedades de <Projeto>.

Para depurar uma aplicao de consola, tal vez necesite iniciar a aplicao desde o Smbolo do sistema em vez de fazrlo desde Visual Studio. Em ese caso,

Apostila Visual Studio 2005

196

pode iniciar a aplicao desde o Smbolo do sistema y, a continuao, asociar misma o depurador de Visual Studio. Para obter mais informao, veja Asociar o depurador a um programa o programas em execuo
Una aplicao de consoA utiliza a janela de consoA para aceptar entradas e mostrar mensagens de salida. Para escrever em uma janela de consola, a aplicao deve utilizar ou objeto Console em lugar do objeto Debug. Para escrever na janela Resultados de Visual Studio, Utilize o objeto Debug da manera habitual. Asegrese de que a aplicao escreve donde deseja; de lo contrario, podra estar buscando mensagens no lugar incorrecto. Para obter mais informao, veja Console (clase), Debug (clase) e Resultados (janela).

Quando se inicia uma aplicao de consoA desde Visual Studio, a janela de consoA a vezes aparece detrs da janela de Visual Studio. se intenta iniciar a aplicao de consoA desde Visual Studio e parece que no ocurre nada, pruebe a mover a janela de Visual Studio.

Preparao da depurao: bibliotecas de clases


A molde do projeto Biblioteca de clases cria um arquivo DLL. Para obter mais informao, veja Molde Biblioteca de clases. Como a biblioteca de clases um arquivo DLL, no se pode executar diretamente. necessrio utilizar uma aplicao para chamarA (normalmente um arquivo EXE). A aplicao que faz a chamada pode gerarse em outro projeto da misma soluo de Visual Studio que contm ou arquivo DLL, pode ser um programa existente j implementado em um equipe de prova ou de trabajo, ou podestar ubicada no Web e obter acesso a eA mediante uma direo URL. Neste tema se incluem as seguintes sees, que tratam de consideraes relativas preparao da depurao de bibliotecas de clases: A aplicao que faz a chamada Gerar uma verso de depurao A projeto de biblioteca de clases Depurao em modo mixto Mudar as configuraes predeterminadas

A aplicao que faz a chamada


Para depurar uma biblioteca de clases, antes deve iniciar a depurao da aplicao que faz a chamada. Existem tres formas para fazrlo: Pode abrir o projeto de biblioteca de clases, escrever o nome e a ubicao da aplicao que faz a chamada no quadro de dilogo pginas de propriedades de <Projeto> (veja as instrues seguintes) e despus iniciar a execuo desde o men Depurar. Esta operao iniciar ou executvel especificado. Para obter mais informao, veja Iniciar a execuo. Se tiene um projeto para a aplicao que faz a chamada, pode abrirlo e iniciar a execuo desde o men Depurar. Para obter mais informao, veja Iniciar a execuo. Se a aplicao que faz a chamada j se est executando, pode asociar misma o depurador. Utilize este mtodo se a biblioteca de clases um controle que se

Apostila Visual Studio 2005

197

encontra em Internet Explorer. Para obter mais informao, veja Asociar o depurador a um programa o programas em execuo Antes de iniciar a depurao da aplicao que faz a chamada, normalmente desejar establecer um ponto de interrupo na biblioteca de clases. Quando se visita ou ponto de interrupo, se pode executar passo a passo ou cdigo, observando a ao em cada lnea hasta aislar ou problema. Para obter mais informao, veja Pontos de interrupo e Executar instrues passo a passo.

Gerar uma verso de depurao


Independentemente de como inicie a depurao, gere primero a verso de depurao da biblioteca de clases e despus asegrese de que dicha verso est na ubicao na que a aplicao espera encontrarla. Esto pode parecer uma obviedad, pero, se olvida este passo, a aplicao podra encontrar e cargar uma verso diferente da biblioteca de clases. Neste caso, o programa seguira executndose e nunca lhegara ao ponto de interrupo.

A projeto de biblioteca de clases


Para iniciar a depurao desde o projeto Biblioteca de clases (y no desde a aplicao que faz a chamada), deve escrever alguna informao no quadro de dilogo pginas de propriedades de <Projeto>. Esta informao indica ao projeto Biblioteca de clases como buscar e invocar a aplicao que faz a chamada. Selecione e siga um dos seguintes procedimentos.

Invocar uma aplicao que faz uma chamada, que consiste em um programa existente
Para invocar uma aplicao que faz uma chamada, que consiste em um programa existente (C#) 1. No Solution Explorer, selecione ou projeto Biblioteca de clases. 2. No men Ver, escolha pginas de propriedades. 3. No quadro de dilogo pginas de propriedades de <Project>, no quadro de lista desplegable Configurao, escolha Debug. 4. Na pasta Propriedades de configurao, selecione a categora Depurao. 5. Em Ao de inicio na cuadrcuA de propriedades, estabelea a propriedade Modo de depurao em Programa. 6. No quadro Aplicao de inicio, d um clic no boto de pontos suspensivos para buscar a aplicao. 7. Escreva os argumentos de programa necessrios no quadro Argumentos da lnea de comandos. Para invocar uma aplicao que faz uma chamada, que consiste em um programa existente (Visual Basic) 1. No Solution Explorer, selecione ou projeto Biblioteca de clases. 2. No men Ver, escolha pginas de propriedades. 3. No quadro de dilogo pginas de propriedades de <Project>, selecione a pasta Propriedades de configurao. 4. No quadro de lista desplegable Configurao, escolha Debug. 5. Na pasta Propriedades de configurao, selecione a categora Depurao.

Apostila Visual Studio 2005

198

6. Em Ao de inicio, escolha Programa externo de inicio e d um clic no boto de pontos suspensivos para buscar a aplicao. 7. Em Opes de inicio, escreva os argumentos de programa necessrios no quadro Argumentos da lnea de comandos.

Invocar a aplicao que faz a chamada em uma direo URL Para invocar a aplicao que faz a chamada em uma direo URL (C#)
1. No Solution Explorer, selecione ou projeto Biblioteca de clases. 2. No men Ver, escolha pginas de propriedades. 3. No quadro de dilogo pginas de propriedades de <Project>, selecione a pasta Propriedades de configurao. 4. No quadro de lista desplegable Configurao, escolha Debug. 5. Na pasta Propriedades de configurao, selecione a categora Depurao. 6. Em Ao de inicio na cuadrcuA de propriedades, estabelea a propriedade Modo de depurao em URL. 7. No quadro Direo URL de inicio, escreva a direo URL; por exemplo, ou arquivo:///C:\MisProjetos\ProjetoNovo/Llamador.exe. Para invocar a aplicao que faz a chamada em uma direo URL (Visual Basic) 1. No Solution Explorer, selecione ou projeto de Biblioteca de clases. 2. No men Ver, escolha pginas de propriedades. 3. No quadro de dilogo pginas de propriedades de <Project>, selecione a pasta Propriedades de configurao. 4. No quadro de lista desplegable Configurao, escolha Debug. 5. Na pasta Propriedades de configurao, selecione a categora Depurao. 6. Em Ao de inicio, escolha Direo URL de inicio e d um clic no boto de pontos suspensivos para buscar a aplicao.

Depurao em modo mixto


A aplicao que faz a chamada biblioteca de clases pode escreverse em cdigo administrado ou em cdigo no administrado. se chama biblioteca de clases mediante cdigo no administrado, os depuradores administrado e no administrado debnestar habilitados. Pode comtestarlo no quadro de dilogo pginas de propriedades de <Projeto>. A forma de fazrlo depende de se inicia a depurao desde o projeto Biblioteca de clases ou desde o projeto de aplicao que faz a chamada.

Para habilitar a depurao em modo mixto (administrada e no administrada) desde uma aplicao que faz a chamada escrita em C ou C++
1. No Solution Explorer, selecione ou projeto C ou C++. 2. No men Ver, escolha pginas de propriedades. 3. No quadro de dilogo pginas de propriedades de <Project>, no quadro de lista desplegable Configurao, escolha Debug.

Apostila Visual Studio 2005

199

4. Na pasta Propriedades de configurao, selecione a categora Depurao. 5. Estabelea ou Tipo de depurador em Mixto ou em Automtico. Para habilitar a depurao em modo mixto (administrada e no administrada) desde uma Biblioteca de clases (C# ou Visual Basic) 1. No Solution Explorer, selecione ou projeto Biblioteca de clases. 2. No men Ver, escolha pginas de propriedades. 3. No quadro de dilogo pginas de propriedades de <Project>, selecione a pasta Propriedades de configurao. 4. No quadro de lista desplegable Configurao, escolha Debug. 5. Na pasta Propriedades de configurao, selecione a categora Depurao. 6. No grupo de depuradores, selecione Habilitar depurao sem administrar.

Mudar as configuraes predeterminadas


Quando criado um projeto Biblioteca de clases com a molde do projeto, Visual Studio cria automticamente a configurao requerida para as configuraes Debug e Release. se fora necessrio, pode mudar esa configurao. Para obter mais informao, veja Configuraes Debug e Release. Para mudar a configurao de depurao predeterminada Defina as constantes DEBUG e TRACE, que permitem utilizar na aplicao as clases Debug e Trace.

Ative Gerar informao de depurao.

Em Visual C#, estabelea a caminho de acesso dos resultados em bin\Debug\. No Visual Basic, estabelea a caminho de acesso dos resultados em bin\. Em Visual C#, estabelea Otimizar cdigo em false. (A cdigo otimizado mais difcil de depurar, puesto que as instrues mquina geradas no se correspondem diretamente com as instrues de cdigo fonte. se detecta que seu programa tiene um error que somente aparece em cdigo otimizado, pode ativar esta configurao, pero lembre-se que o cdigo mostrado na janela Desensamblador gerado a partir do cdigo otimizado que pode no coincidir com lo que aparece nas janelas de cdigo fonte. Otras caractersticas, como a execuo passo a passo, pode que no funcionem como se espera.)

Para obter informao detallada, veja Configurao do projeto para uma configurao de depurao de C# ou Configurao do projeto para uma configurao de depurao de Visual Basic.

Preparao da depurao: bibliotecas de controles de Windows


Depurar uma biblioteca de controles de Windows similar a depurar um projeto de biblioteca de clases. na maiora dos casos, ou controle de Windows se chama desde outro projeto. Quando se depura ou projeto que faz a chamada, se pode executar

Apostila Visual Studio 2005

200

passo a passo ou cdigo do controle de Windows, establecer pontos de interrupo e realizar otras operaes de depurao. Para obter mais informao, veja Preparao da depurao: bibliotecas de clases e Controles de formularios Windows Forms.

Preparao da depurao: aplicaes Web ASP.NET


A molde do projeto de aplicaes Web cria um formulario Web Forms. Para obter mais informao, veja Pginas de formularios Web Forms. Quando criado um projeto de aplicao Web, Visual Studio cria a configurao do projeto predeterminada para a depurao. Quando se elige Iniciar no men Depurar, esta configurao faz que Visual Studio inicie ou explorador Selecionado nas pginas de propriedades de <Projeto> e asocie o depurador ao explorador e ao processo de trabajo das P.NET (aspnet_wp.exe em Windows 2000 e Windows XP, ou w3wp.exe em Windows Server 2003). Para depurar ou formulario Web Forms Estabelea um ou varios pontos de interrupo nos controladores de funes e eventos. Para obter mais informao, veja Pontos de interrupo. Quando se visita um ponto de interrupo, se pode executar passo a passo ou cdigo dentro da funo e observar a execuo do cdigo hasta que se asA ou problema. Para obter mais informao, veja Executar instrues passo a passo. Para obter mais informao, veja Depurar sequncias de comandos e aplicaes Web.

Mudar as configuraes predeterminadas


Se necesita mudar as configuraes predeterminadas Debug e Relea criadodas por Visual Studio, pode fazrlo. Para obter mais informao, veja Configuraes Debug e Release. Para mudar a configurao de depurao predeterminada
Defina as constantes DEBUG e TRACE, que permitem utilizar na aplicao as clases Debug e Trace.

Ative Gerar informao de depurao.

Em Visual C#, estabelea a caminho de acesso dos resultados em bin\Debug\. No Visual Basic, estabelea a caminho de acesso dos resultados em bin\. Em Visual C#, estabelea Otimizar cdigo em false. (A cdigo otimizado mais difcil de depurar, puesto que as instrues mquina geradas no se correspondem diretamente com as instrues de cdigo fonte. se detecta que seu programa tiene um error que somente aparece em cdigo otimizado, pode ativar esta configurao, pero lembre-se que o cdigo mostrado na janela Desensamblador gerado a partir do cdigo otimizado que pode no coincidir com lo que aparece nas janelas de cdigo fonte. Otras caractersticas, como a execuo passo a passo, pode que no funcionem como se espera.) Estabelea a propriedade Habilitar depurao ASP.NET em True.

Preparao da depurao: projetos de servio Web ASP.NET

Apostila Visual Studio 2005

201

A molde do projeto de servio Web ASP.NET cria os valores predeterminados do projeto para a depurao. Para obter mais informao, veja Criar projetos de servio Web ASP.NET. Quando se elige Iniciar no men Depurar, esta configurao faz que Visual Studio inicie ou explorador Selecionado nas pginas de propriedades de <Projeto> e gere dinmicamente uma pgina de prova. na pgina de prova, pode escrever comandos e observar os datos que devuelve ou servio Web XML. Habilitar a depurao ASP.NET Mudar as configuraes predeterminadas

Habilitar a depurao ASP.NET


Se necesita depurar uma chamada da aplicao de cliente ao servio Web XML, deve habilitar a depurao ASP.NET em dicha aplicao. Para habilitar a depurao ASP.NET em uma aplicao de C# 1. No Solution Explorer, selecione ou projeto C#. 2. No men Ver, escolha pginas de propriedades. 3. No quadro de dilogo pginas de propriedades de <Project>, no quadro de lista Configurao, escolha Debug. 4. Abra a pasta Propriedades de configurao e selecione a categora Depurao. 5. Na cuadrcuA de propriedades, bajo ou encabezado Depuradores, estabelea Habilitar depurao ASP.NET em True. Para habilitar a depurao ASP.NET em uma aplicao de Visual Basic 1. No Solution Explorer, selecione ou projeto de Visual Basic. 2. No men Ver, escolha pginas de propriedades. 3. No quadro de dilogo pginas de propriedades de <Project>, no quadro de lista Configurao, escolha Debug. 4. Na pasta Propriedades de configurao, selecione a categora Depurao. 5. Bajo ou encabezado Depuradores, selecione Depurao ASP.NET. Al iniciar a depurao da aplicao de cliente, o depurador se asocia aplicao e ao processo de trabajo das P.NET (aspnet_wp.exe em Windows 2000 e Windows XP, ou w3wp.exe em Windows Server 2003). Despus, quando a aplicao de cliente faz uma chamada ao servio Web XML, o depurador realiza um seguimento da chamada SOAP e segue a cadena da piA de chamadas hasta ou processo do servio Web XML. Para obter mais informao, veja Servios Web XML no cdigo administrado e Depurar servios Web XML no cdigo administrado.

Mudar as configuraes predeterminadas


Se necesita mudar as configuraes predeterminadas Debug e Relea criadodas por Visual Studio, pode fazrlo. Para obter mais informao, veja Configuraes Debug e Release. Para mudar a configurao de depurao predeterminada

Apostila Visual Studio 2005

202

Defina as constantes DEBUG e TRACE, que permitem utilizar na aplicao as clases Debug e Trace.

Ative Gerar informao de depurao.

Em Visual C#, estabelea a caminho de acesso dos resultados em bin\Debug\. No Visual Basic, estabelea a caminho de acesso dos resultados em bin\. Em Visual C#, estabelea Otimizar cdigo em false. (A cdigo otimizado mais difcil de depurar, puesto que as instrues mquina geradas no se correspondem diretamente com as instrues de cdigo fonte. se detecta que seu programa tiene um error que somente aparece em cdigo otimizado, pode ativar esta configurao, pero lembre-se que o cdigo mostrado na janela Desensamblador gerado a partir do cdigo otimizado que pode no coincidir com lo que aparece nas janelas de cdigo fonte. Otras caractersticas, como a execuo passo a passo, pode que no funcionem como se espera.) Estabelea a propriedade Habilitar depurao ASP.NET em True.

Preparao da depurao: servios de Windows


Um servio de Windows um programa que se executa em segundo plano bajo Microsoft Windows NT, Windows 2000 ou Windows XP. Para obter mais informao, veja Criar servios de Windows. Como exemplos podem citarse ou servio Telnet e o servio de hora de Windows (que atualiza ou reloj visible do equipe). Um servio de Windows no se pode executar desde Visual Studio; deve executarse dentro do contexto do Administrador de controle de servios. Para obter informao detallada, veja Depurar aplicaes de servios de Windows e Aplicaes de servios de Windows.

Utilizar o depurador
A depurador de Visual Studio .NET uma eficaz ferramenta que permite observar o comportamento de um programa em tiempo de execuo e localizar erros semnticos. o depurador aprovecha a funcionalidade integrada nos linguagems de programao e seus bibliotecas asociadas. com o depurador, posible interrumpir a execuo do programa para examinar ou cdigo, avaliar e modificar variaveis do programa, ver registros, ver as instrues criadas a partir do cdigo fonte, e observar o espao de memoria que a aplicao utiliza. A depurador de Visual Studio ofrece comandos de men, janelas e quadros de dilogo para o acesso a todas seus ferramentas. Pode obter ajuda em qualquer janela, quadro de dilogo ou controle Selecionando ou elemento e presionando a tecA F1. Tambm posible usar a tcnica de arrastrar e colocar para trasladar informao de depurao de umas janelas a otras. Fundamentos da depurao Proporciona uma introduo a os tipos de erros que o cdigo pode conter, a importancia das provas e o processo de depurao. Esta seo tambm inclui descripes de diversas caractersticas do depurador: a janela Desensamblador, a janela Memoria, a janela Registros, os pontos de interrupo e o quadro de dilogo Inspeo rpida. Controle de execuo

Apostila Visual Studio 2005

203

Inclui vnculos com temas que descrevnos comandos do depurador que pode usar para controlar a execuo de uma aplicao. com estos comandos poder iniciar (o continuar) a execuo, interrumpirA ou deterla, recorrer a aplicao passo a passo, executar a aplicao hasta um ponto determinado, e establecer ou ponto de execuo. Asociar o depurador a um ou varios programas em execuo Descreve o modo das ociar o depurador a programas que se executam em processos externos a Visual Studio. Gracias a esta funcionalidad, posible depurar um programa no criado com Visual Studio, depurar simultneamente varios programas, depurar um programa que se executa em um equipe remoto, depurar uma DLL que se executa em um processo independente e no pode iniciarse sencillamente desde Visual Studio, e iniciar o depurador automticamente quando um programa se bloquea enquanto se executa fora de Visual Studio. Depurao Just-In-Time Explica a depurao Just-In-Time, que uma tcnica para depurar um programa iniciado fora de Visual Studio. Este tema tambm proporciona instrues para habilitar a depurao Just-In-Time. Iniciar o depurador automticamente Proporciona instrues para configurar uma aplicao de modo que inicie Visual Studio quando a aplicao se inicie desde Windows. Visual Studio carregar a aplicao, e a dejar preparada para a depurao, pero a depurao em s no comear hasta que se especifique um comando de execuo. Esta forma de iniciar o depurador resulta til para depurar servios e servidores COM fora de processo. Volcados Descreve os arquivos de volcado, e inclui instrues para guardarlos e abrirlos. Os volcados podem ser tiles quando se prova um programa em um equipe que no tiene instalados os arquivos de cdigo fonte ou PDB. Quando se produce um bloqueo, pode guardar um arquivo de volcado para depurarlo mais adelante no equipe que tiene os arquivos de cdigo fonte e PDB. Pontos de interrupo Descreve que so os pontos de interrupo, os tipos que existen, seus propriedades (recuento de visitas e condio), e inclui instrues para habilitar, deshabilitar, quitar, insertar e modificar os pontos de interrupo em distintas janelas do depurador. ou primer tema desta seo tambm informa das precaues a adotar ao establecer pontos de interrupo em componentes do sistema quando se depura em modo mixto (cdigo nativo e administrado). Ferramentas de depurao para inspecionar um programa Ofrece informao acerca de diversas ferramentas de depurao que permitem inspecionar e modificar ou estado de um programa. A maiora destas ferramentas somente funcionam no modo de interrupo. Controlar excepes Descreve as excepes, o modo em que o depurador reaciona ante elas e como mudar esta reao, como averiguar dnde se tem producido a excepo e ver o contenido das variaveis, as limitaes para as excepes sem tratamento no cdigo administrado, e a soluo das excepes no cdigo nativo (C++). Editar e continuar

Apostila Visual Studio 2005

204

Descreve Editar e continuar, uma ferramenta que permite mudar o cdigo fonte enquanto o programa se encontra em modo de interrupo e aplicar os cambios sem ter que terminar a sesso de depurao e gerar de novo o programa; e inclui instrues para habilitar ou deshabilitar esta funo. Expreses no depurador Descreve ou avaliador de expreses nativo do depurador de Visual Studio. Esta seo inclui vnculos com temas que descrevna sintaxis especfica do linguagem que pode utilizarse para especificar expreses no depurador (C++, C#, extenses administradas para C++ e Visual Basic). Sees relacionadas Visual Studio Debugger Modo Proporciona material de referencia em cuanto a os objetos, propriedades, mtodos, enumeradores, eventos e cdigos de error do modelo de objetos do depurador, com os cuales poder automatizar muchas de seus funes. Pgina principal de depurao Proporciona vnculos a sees mais amplias da documentao relativa depurao. Inclui: novedades do depurador, configurao e preparao, pontos de interrupo, controle de excepes, editar e continuar, depurar cdigo administrado, depurar projetos de Visual C++, depurar COM e AtiveX, depurar arquivos DLL, depurar SQL e as referencias interface de usuario. Fundamentos da depurao Como qualquer obra humana, os programas informticos so a menudo imperfectos. ou cdigo pode conter diversos tipos de erros.

Erros
Os erros podem ser sintcticos, semnticos ou lgicos. A tipo de error mais obvio ou sintctico, que se produce quando se escreve cdigo de uma forma no admitida por as regras do linguagem. Os erros de sintaxis so detectados case siempre por ou compilador ou intrprete, que mostra um mensagem de error que informa do problema. No Visual Studio, estos mensagens de error aparecem na janela de resultados. Os mensagens indicam a ubicao do error de sintaxis (nmero de lnea e arquivo), e mostram uma breve descripo do problema. Normalmente, a determinao da causa de um error de sintaxis um processo sencillo quando se conocnestas descripes. Para obter mais informao, veja Janela de resultados. Os erros semnticos so mais sutiles. Um error semntico se produce quando a sintaxis do cdigo correcta, pero a semntica ou significado no ou que se pretenda. A construo obedece as regras do linguagem, e por ele ou compilador ou intrprete no detectam os erros semnticos. Os compiladores e intrpretes somente se ocupam da estructura do cdigo que se escreve, e no de seu significado. Um error semntico pode fazr que o programa termine de forma anormal, com o sem um mensagem de error. Hablando em trminos coloquiales, pode fazr que o equipe se quede "colgado". Sin embargo, no todos os erros semnticos se manifiestam de uma forma tam obvia. Um programa pode continuar em execuo despus de haberse producido erros semnticos, pero seu estado interno pode ser distinto do esperado. Quiz as variaveis no contengam os datos correctos, ou bem posible que o programa siga

Apostila Visual Studio 2005

205

um camino distinto do pretendido. Eventualmente, a consequncia ser um resultado incorrecto. Estos erros se denominam lgicos, j que aunque o programa no se bloquea, a lgica que representam contm um error.

Provas
A nica forma de detectar os erros lgicos testar o programa, j seja manual ou automticamente, e comtestar que o resultado ou esperado. Para obter mais informao, veja Testar e otimizar. As provas devem ser uma parte integrante do processo de desenvolvimento de software. Desgraciadamente, aunque as provas podem indicar que o resultado de um programa incorrecto, normalmente no proporcionaram nenhuma pista acerca de que parte do cdigo tem causado realmente ou problema. aqu donde comienza a depurao.

Depurao
Normalmente, aunque no siempre, a depurao implicar ou uso de um depurador, uma eficaz ferramenta que permite observar o comportamento do programa em tiempo de execuo e determinar a ubicao dos erros semnticos. Tambm posible utilizar certas funes de depurao integradas no linguagem e seus bibliotecas asociadas. Muchos programadores tm seu primer contacto com a depurao quando intentam aislar um problema agregando ao cdigo chamadas a funes de salida, como printf ou MsgBox. Esta tcnica de depurao perfectamente legtima, pero faz que uma vez encontrado e resuelto ou problema seja necessrio voltar a recorrer ou cdigo para eliminar as chamadas a funes adicionales. Ocasionalmente, pode encontrarse uma situao na que, ao agregar cdigo novo ( incluso uma simple chamada a printf ou MsgBox), ou comportamento do cdigo que se intenta depurar cambia. Com um depurador pode examinar ou contenido das variaveis do programa sem ter que insertar chamadas adicionales a funes que lo muestren. Pode insertar um ponto de interrupo no cdigo para deter a execuo no ponto que le interese. Quando o programa est detenido (em modo de interrupo), pode examinar as variaveis locais u outros datos relevantes a travs de medios tales como a janela Inspeo, o quadro de dilogo Inspeo rpida e a janela Memoria. Para obter mais informao, veja Janela Inspeo, Quadro de dilogo Inspeo rpida ou Memoria (Janela). No modo de interrupo no somente pode ver o contenido, se no tambm modificarlo ou mudarlo, se lo deseja. na maiora dos casos, ou ponto de interrupo se establece em uma janela de cdigo fonte de Visual Studio, na que se escreve e se modifica ou cdigo. Em otras ocases pode encontrar mais conveniente establecer ou ponto de interrupo na janela Desensamblador. A janela Desensamblador mostra as instrues criadas a partir do cdigo fonte. Para obter mais informao, veja Janela Desensamblador. A diferencia de printf ou MsgBox, quando se establece um ponto de interrupo no adiciona uma chamada funcional ao cdigo fonte. Por ele, poco testable que o establecimento de um ponto de interrupo mude ou comportamento do programa que se intenta depurar. Para obter mais informao, veja Interrumpir a execuo. Pero estas no so as nicas posibilidades que o depurador ofrece. D um clic nos elementos de Veja tambm para obter mais informao.

Fundamentos da depurao: janela Desensamblador


A janela Desensamblador mostra as instrues bsicas criadas a partir do cdigo fonte. Em lugar de fazrle leer os cdigos de instruo em formato binario ou hexadecimal, as instrues so mostrados com o formato do linguagem

Apostila Visual Studio 2005

206

ensamblador. (A trmino Desensamblador proviene da ferramenta de programao do mismo nome. Um ensamblador um programa que toma cdigo em linguagem ensamblador e lo ensambA para formar instrues de mquina executvels. Um desensamblador faz lo contrario: toma ou cdigo mquina e lo convierte de novo ao linguagem ensamblador. Os desensambladores tm diversas aplicaes, entre as que se cuenta gerar um linguagem ensamblador legible a partir de um programa cujo cdigo fonte original se tem perdido). A cdigo em linguagem ensamblador consta de mnemnicos, que so abreviaturas de nomes de instrues, e smbolos que representam variaveis, registros e constantes. Cada instruo de cdigo mquina se representa com um mnemnico de linguagem ensamblador, normalmente seguido de uma ou mais variaveis, registros ou constantes. A janela Desensamblador est disponible tanto para o cdigo administrado como para o no administrado. No est disponible para a depurao de sequncias de comandos ni de SQL. Se no conoce ou linguagem ensamblador, pero deseja aprovechar ao mximo a janela Desensamblador, hgase com um buem libro acerca da programao em ensamblador. A programao em linguagem ensamblador no est hecha para os timoratos, pero tampoco tam terrible como alguns piensan. Em qualquer caso, queda fora do alcance desta breve introduo janela Desensamblador. Debido a que o cdigo ensamblador se refiere continuamente a os registros do procesador (o, no caso do cdigo administrado, a os registros de Common Language Runtime), a menudo ser til usar a janela Desensamblador conjuntamente com a janela Registros, que permite observar o contenido dos registros. Para obter mais informao, veja Fundamentos da depurao: Janela Registros. Testablemente, nunca sentir ou deseo de ver as instrues de cdigo mquina com seu formato puro, numrico, em lugar do linguagem ensamblador. sem embargo, se as lo deseja, pode usar a janela Memoria com este fin, ou escolher Bytes de cdigo no men contextual da janela Desensamblador.

Fundamentos da depurao: janela Memoria


A janela Memoria permite ver o espao de memoria que utiliza a aplicao. com a janela Inspeo, Inspeo rpida, e as janelas Automtico e Variaveis locais posible ver o contenido das variaveis, que se encontram em ubicaes especficas da memoria, pero a janela Memoria mostra a viso a gram escala. Esta viso pode ser conveniente para examinar grandes conjuntos de datos (bferes de cadenas largas, por exemplo), que no so mostrados adecuadamente nas dems janelas. sem embargo, a janela Memoria no se limita a mostrar datos. Por definio, a janela Memoria mostra todo lo que hay no espao de memoria, j seja datos, cdigo, ou bits aleatorios da memoria no assinalada. A janela Memoria est disponible tanto para o cdigo administrado como para o no administrado. Quando examine ou contenido da memoria na janela Memoria, poder desplazarse por a memoria com a barra de desplazamento que forma parte da interface de usuario da janela, ou escrever diretamente uma direo de memoria para dirigirse a ela. se conoce a direo de um dato que deseja ver, normalmente lo mais sencillo ser escreverA diretamente. Tambm pode especificar um puntero a um elemento que deseja ver, ou uma expreso que Utilize o operador direo-de para obter a direo do elemento.

Apostila Visual Studio 2005

207

A janela Memoria pode pessoalizarse para que muestre os datos com diversos formatos, como hexadecimal ou decimal. Para obter mais informao, veja Pessoalizar a presentao da janela Memoria. A janela Memoria no est disponible para sequncias de comandos ni SQL, j que estos linguagems no reconocno concepto de memoria. Fundamentos da depurao: janela Registros Os registros so ubicaes especiais dentro de um procesador (CPU) nas que se almacenam pequeas cantidades de datos com os que o procesador trabalha de forma ativa em cada momento. Quando ou cdigo fonte se compila ou se interpreta, so gerados instrues que transfierem datos da memoria a os registros e viceversa, segn seja necessrio. ou acesso a os datos dos registros muy rpido em comparao com o acesso memoria, de modo que o cdigo que permite ao procesador manter datos em um registro para o acesso repetido a eles suele executarse mais rpidamente que o cdigo que requiere que o procesador cargue e descargue constantemente os registros. Para facilitar ou que o compilador mantenga os datos nos registros e realice otras otimizaes, deve evitar ou uso de variaveis globales e usar variaveis locais siempre que seja posible. Do cdigo escrito deste modo se dice que tiene uma buena loqualidade de referencia. Em alguns linguagems, como C/C++, o programador pode declarar uma varivel de registro, lo que indica ao compilador que haga lo posible por manter a varivel em um registro em todo momento. Para obter mais informao, veja Palabra chave Register. Os registros podem dividirse em dos tipos: de propsito geral e de propsito especial. Os registros de propsito geral albergam datos para operaes gerales, como sumar dos nmeros ou referirse a um elemento de uma matriz. Os registros de propsito especial tm um fin especfico e um significado especializado. Um buem exemplo ou registro puntero de pila, que o procesador utiliza para fazr um seguimento da piA de chamadas do programa. Como programador, testablemente no controlar diretamente ou puntero de pila. sem embargo, este registro esencial para o correcto funcionamento do programa, j que sem ou puntero de piA ou procesador no sabra a dnde regresar ao terminar uma chamada a uma funo. A maiora dos registros de propsito geral somente contm um dato (por exemplo, um valor entero, um nmero em coma flotante, ou um elemento de uma matriz). Alguns dos procesadores mais atuales cuentam com unos registros de maior tamanho, chamados registros vectoriales, que podem conter uma pequea matriz de datos. Debido a seu maior capacidad, os registros vectoriales permitem realizar operaes com matrices a gram velocidad. Os registros vectoriales comearon a utilizarse em equipes de gram tamanho, caros e de alto rendimento, pero comienzam a estar disponiveis nos microprocesadores, donde se usam com gram provecho nas operaes grficas intensivas. Normalmente, um procesador tiene dos conjuntos de registros de propsito geral, unos otimizado para operaes em coma flotante, e outros para operaes com nmeros enteros. Como lgico, os registros de estos grupos recibem o nome de registros de coma flotante e registros de enteros, respectivamente. A cdigo que se executa em Common Language Runtime (cdigo administrado) se compila para gerar cdigo nativo com acesso a os registros fsicos do microprocesador. A janela Registros mostra estos registros fsicos para o cdigo nativo ou Common Language Runtime. A janela Registros no mostra informao

Apostila Visual Studio 2005

208

para as aplicaes de sequncia de comandos ou SQL, j que estos linguagems no contemplam ou concepto de registros. Para obter informao acerca do uso da janela Registros, veja Utilizar a janela Registros. Quando examine a janela Registros, poder ver informao como a mostrada neste exemplo: EAX = 003110D8 A smbolo esquerda do sinal = o nome do registro (neste caso, EAX). ou nmero direita do sinal = representa ou contenido do registro. A janela Registros permite algo mais que simplemente ver o contenido de um registro. Quando o programa est em modo de interrupo no cdigo nativo, pode fazr clic no contenido de um registro e modificar ou valor. Esto no algo que deba fazrse ligera. se no comprende a funo do registro que modifica e os datos que contm , ou resultado do cambio ser testablemente ou bloqueo do programa, u otra consequncia no desejada. Desgraciadamente, uma explicao detallada dos conjuntos de registros dos diversos procesadores Intel e compativeis queda muy lejos do alcance desta breve introduo. se realmente deseja conocer ou conjunto de registros e aprovecharlos ao mximo, dever consultar um buem libro sobre programao em linguagem ensamblador. Grupos de registros Por motivos de claridad, os registros se organizam em grupos na janela Registros. faz clic com o boto secundario na janela Registros, ver um men contextual com uma lista de grupos que pode mostrar u ocultar segn seu conveniencia. Para obter mais informao acerca dos grupos individuales, veja Janela Registros. Para obter mais informao sobre como controlar a presentao dos grupos, veja Mostrar u ocultar os grupos de registros.

Fundamentos da depurao: pontos de interrupo


Um ponto de interrupo uma seal que indica ao depurador que deve suspender temporalmente a execuo do programa em um ponto determinado. Quando a execuo se suspende em um ponto de interrupo, se dice que o programa se encontra em modo de interrupo. ou passo ao modo de interrupo no significa ou fin da execuo do programa. A execuo pode continuarse em qualquer momento. A modo de interrupo em certo modo anlogo a um tiempo muerto em uma competio deportiva. Todos os jugadores permanecem na pista (las funes, variaveis e objetos permanecem na memoria), pero seus movimentos e atividades se suspenden. Durante o tiempo muerto ou rbitro (se usted) pode examinar seus posies e estados e determinar se hay algo incorrecto (um error). ou rbitro tiene a capacidade de fazr ajustes nos jugadores durante o tiempo muerto. Ustede tambm pode fazr ajustes no programa durante o modo de interrupo. Por exemplo, pode mudar o valor de uma varivel. Tambm pode mover o ponto de execuo, com lo cual se modifica a instruo que se executar a continuao quando prosiga a execuo. Em C++, pode incluso mudar o prprio cdigo no modo de interrupo (una eficaz funo denominada Editar e continuar). Os pontos de interrupo so uma til ferramenta que permite suspender a execuo donde e quando seja preciso. Em lugar de recorrer ou cdigo lnea a lnea ou instruo a instruo, pode dejar que o programa se execute hasta encontrar

Apostila Visual Studio 2005

209

um ponto de interrupo, e entonces comear a depurao. com ele, ou processo de depurao se acelera enormemente. sem esta capacidad, sera prcticamente no posible depurar um programa de gram tamanho. Numerosos linguagems de programao cuentam com instrues ou construes que suspendna execuo e dejam o programa em modo de interrupo. Visual Basic, por exemplo, inclui a instruo Stop. Os pontos de interrupo so distintos destas instrues, j que no so cdigo fonte que haya que agregar ao programa. No hay que escrever uma instruo de ponto de interrupo em uma janela de cdigo fonte. Os pontos de interrupo se solicitam a travs da interface do depurador, e o depurador ou que os establece automticamente. Para insertar um ponto de interrupo em uma lnea, somente tiene que fazr clic no margem gris junto lnea em cuestin. Tambm posible agregar pontos de interrupo mais complejos a travs da janela Pontos de interrupo. Os pontos de interrupo presentam numerosas ventajas frente s construes de depurao, como a instruo Stop de Visual Basic. Os pontos de interrupo podem eliminarse ou mudarse sem ter que modificar ou cdigo fonte do programa. Debido a que no so instrues, nunca geram cdigo adicional quando criado uma verso de distribuo do programa. se utiliza instrues Stop em um programa, dever eliminarlas manualmente antes de gerar a verso de distribuo, ou bem tendr que usar instrues condicionales (como se mostra a continuao): #If DEBUG Then Stop #Ende If Se deseja deshabilitar uma instruo Stop temporalmente, tendr que buscarA no cdigo e marcarA como comentario: ' Stop Esto no ser um problema se somente tiene uma instruo Stop. sem embargo, se tiene que depurar um programa de gram tamanho com muchas instrues Stop, buscar todas e marcarlas como comentario pode lhevar mucho tiempo. Os pontos de interrupo podem selecionarse, deshabilitarse ou habilitarse fcilmente desde a janela Pontos de interrupo. Por ltimo, os pontos de interrupo tiene uma gram ventaja sobre as instrues Stop em seu flexibilidad. Uma instruo Stop faz que a execuo se detenga na lnea na que se encontra. Um ponto de interrupo situado em uma lnea do cdigo fonte tendr ou mismo efecto. sem embargo, um ponto de interrupo tambm podestablecerse em uma funo ou em uma direo de memoria, lo que no posible com as instrues Stop. Adems de estos pontos de interrupo asociados a uma ubicao, o depurador de Visual Studio ofrece pontos de interrupo de datos (somente para C/C++ nativo). Os pontos de interrupo de datos se establecem para uma varivel global ou local, e no para um ponto especfico do cdigo. ou ponto de interrupo de datos faz que se detenga a execuo do programa quando ou valor da varivel cambia. Para lograr uma flexibilidade an maior, o depurador de Visual Studio permite establecer dos propriedades que modificam ou comportamento dos pontos de interrupo:

A Recuento de visitas permite determinar cuntas vezes se deve pasar por um ponto de interrupo antes de deter a execuo. De forma predeterminada, o depurador detiene a execuo cada vez que se lhega ao ponto de interrupo. Podestablecer um recuento de visitas para indicar ao depurador que detenga a

Apostila Visual Studio 2005

210

execuo cada dos vezes que se lhegue ao ponto de interrupo, ou cada 10 vezes, ou cada 512 vezes, qualquer nmero que deseje. Os recuentos de visitas resultam tiles, porque alguns erros no aparecna primera vez que o programa executa um bucle, chama a uma funo, ou tiene acesso a uma varivel. Em ocasiones, pode que o error no se manifieste hasta a iterao nmero 100 ou 1000. Para depurar estos problemas, podestablecer um ponto de interrupo com um recuento de visitas de 100 ou 1000. A Condio uma expreso que determina se ou ponto de interrupo tiene efecto ou no. Quando o depurador lhega ao ponto de interrupo, evala a condio. ou ponto de interrupo somente detiene a execuo se a condio se cumple. Pode utilizar uma condio com um ponto de interrupo de ubicao para deter a execuo em um lugar determinado nicamente se a condio se cumple. Por exemplo, supongamos que vai a depurar um programa em um banco, e que no se permite que o saldo de uma cuenta seja inferior a cero. Podestablecer pontos de interrupo em lugares especficos do cdigo e asociar a cada um a condio saldo < 0. Quando se execute o programa, a execuo se interrumpir em esos pontos se ou saldo inferior a cero. Entonces poder examinar as variaveis e o estado do programa na ubicao do primer ponto de interrupo, continuar a execuo hasta ou segundo, etc.

Sugesto uma tcnica especialmente til consiste nestablecer pontos de interrupo na janela PiA de chamadas. na janela PiA de chamadas, podestablecer um ponto de interrupo em uma chamada a uma funo especfica. Esto pode ser muy conveniente quando se depura uma funo recursiva (una funo que se chama a s misma). se detiene a execuo despus de um certo nmero de chamadas, poder usar a janela PiA de chamadas para establecer um ponto de interrupo em alguna das chamadas anteriores, da que an no se tem vuelto. o depurador encontrar ese ponto de interrupo e detendr a execuo durante o camino de regreso desde as chamadas atuales.

Fundamentos da depurao: inspeo rpida


A quadro de dilogo Inspeo rpida resultar familiar a os usuarios de Visual C++. Os usuarios de Visual Basic observaram uma interface distinta, e funes adicionales. Como seu nome implica, Inspeo rpida ofrece um modo de observar e avaliar rpidamente variaveis e expresiones. Debido a que Inspeo rpida um quadro de dilogo modal, necessrio fecharlo para poder continuar com a depurao. Por ele, posible que alguns usuarios de Visual Basic se preguntem por que Inspeo rpida pode ser til. Por que no agregar simplemente a varivel ou expreso janela Inspeo? Ele sera posible, pero supongamos que somente deseja fazr um clculo rpido com uma ou mais variaveis. No conveniente lhenar a janela Inspeo com este tipo de clculos. Aqu donde Inspeo rpida entra em juego. Otra caracterstica prctica do quadro de dilogo Inspeo rpida que seu tamanho se pode mudar. se deseja ver os miembros de um objeto de gram tamanho, a menudo resulta mais sencillo expandir ou rbol de Inspeo rpida que fazrlo nas janelas Inspeo, Variaveis locais ou Automtico. Nota Algunas expreses producem efectos secundarios que cambiam ou valor de uma varivel ou cambiam ou estado do programa quando se executan. A avaliao de uma expreso na janela Inspeo rpida surtir ou mismo efecto que executar a

Apostila Visual Studio 2005

211

expreso no cdigo. Esto pode producir resultados inesperados se no se consideram os posiveis efectos secundarios da expresso. Sugesto no Visual Studio pode ver rpidamente ou valor de uma varivel se sita ou cursor encima dela. Aparecer um pequeo requadro chamado "informao sobre datos" com o valor.

Depurao Just-In-Time
Pode executar um programa criado no Visual Studio fora do entorno de Visual Studio. A depurao Just-In-Time uma tcnica para depurar um programa que se inicia fora de Visual Studio. se tem ativado a depurao Just-In-Time, o programa abrir um quadro de dilogo quando se produzca um bloqueo. Neste quadro de dilogo se le preguntar se deseja depurar o programa e que depurador deseja utilizar.

Habilitar a depurao Just-In-Time Habilitar a depurao Just-In-Time para formularios Windows Forms

Nota ao depurar uma verso de lanamento no otimizada de uma aplicao escrita em Extenses administradas para C++, a depurao Just-in-Time podra interrumpirse em uma ubicao distinta da que inici a excepo. Para corregir esto, agregue ou cdigo seguinte ao arquivo AssemblyInfo.cpp da aplicao: [assembly:System::Diagnostics::DebuggableAttribute(true, true)]; Se compila com a opo /Zi e sem a opo /Og, ou compilador establece este atributo automticamente. Para obter mais informao, veja DebuggableAttribute (Constructor).

Habilitar a depurao Just-In-Time


Para ativar a depurao Just-In-Time 1. 2. 3. No men Ferramentas, selecione Opes. No quadro de dilogo Opes, selecione a pasta Depurao. Na pasta Depurao, selecione a pgina Just-In-Time.

4. No quadro Habilitar a depurao Just-In-Time de estos tipos de programa, selecione os tipos de programa que deseje depurar (veja a tabA seguinte). 5. D um clic em Aceptar.

Para depurar
Visual Basic C# C/C++ Extenses administradas para C++

Escolha
Common Language Runtime Common Language Runtime Cdigo nativo Common Language Runtime

Apostila Visual Studio 2005

212

ASP Script ASP.NET Script

Sequncias de comandos Sequncia de comandos, Common Language Runtime

Habilitar a depurao Just-In-Time para formularios Windows Forms


Para habilitar a depurao Just-In-Time para Windows Forms
Estabelea true em jitDebugging no arquivo machine.config ou application.exe.config (seo system.windows.forms). Por exemplo: <configuration> <system.windows.forms jitDebugging="true" /> </configuration>

Adems, os formularios Windows Forms criados com as Extenses administradas para C++ devem ter ou atributo DebuggableAttribute establecido em um arquivo .config ou no cdigo. se compila com a opo /Zi e sem a opo /Og, ou compilador establece este atributo automticamente. sem embargo, se deseja depurar uma verso de lanamento no otimizada, deve establecer ou atributo agregando a lnea seguinte ao arquivo AssemblyInfo.cpp da aplicao:

[assembly:System::Diagnostics::DebuggableAttribute(true, true)];

Iniciar o depurador automticamente


Es posible fazr que uma aplicao inicie automticamente Visual Studio ao iniciarA desde Windows. Visual Studio carregar a aplicao e a dejar lista para a depurao, pero no a comear hasta que se especifique um comando de execuo. A capacidade de fazr que Visual Studio inicie o depurador desta forma resulta til para os servios de depurao e os servidores COM fora de processo. Para configurar uma aplicao de modo que inicie automticamente o depurador 1. Inicie ou Editor do Registro (RegEdit). 2. No Editor do Registro, abra a pasta HKEY_LOCAL_MACHINE. 3. Sitese em HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\currentversion\image file execution Options. 4. Na pasta Image File Execution Options, busque o nome da aplicao que deseje depurar (por exemplo, myapp.exe). se no encontra a aplicao que deseja depurar: a. D um clic com o boto secundario na pasta Image File Execution Options e escolha Nova chave no men contextual. b. D um clic com o boto secundario na nova chave e selecione Mudar nome no men contextual. c. Mude o nome da chave por ou da aplicao, por exemplo,
myapp.exe.

Apostila Visual Studio 2005

213

5. D um clic com o boto secundario na pasta myapp.exe e escolha Novo valor de cadena no men contextual. 6. D um clic com o boto secundario no novo valor de cadena e escolha Mudar nome no men contextual. 7. Mude o nome por
debugger.

8. D um clic com o boto secundario no novo valor de cadena e escolha Modificar no men contextual. Aparecer o quadro de dilogo Modificar cadena. 9. No quadro Datos, escreva devenv /debugexe. 10.D um clic em Aceptar. 11.No men Registro, escolha Salir. A directorio que contm devenv.exe deve estar incluido na caminho de acesso do sistema. Ahora pode usar qualquer mtodo para iniciar a aplicao. Visual Studio .NET se iniciar e a carregar. Nota se a aplicao administrada, Visual Studio se inicia com tipo Automtico em Tipo de depurador. Antes de comear a depurao, mude Tipo de depurador de Automtico a Mixto no quadro de dilogo Flhas de propriedades. Ferramentas de depurao para inspecionar um programa O objetivo fundamental de qualquer depurador mostrar informao sobre ou estado do programa que se est depurando y, em algunas ocasiones, modificar ese estado. o depurador de Visual Studio proporciona uma gram variedade de ferramentas para inspecionar e modificar ou estado dos programas. A maiora destas ferramentas somente funcionam no modo de interrupo.

Informao sobre datos


Una das ferramentas menos perceptiveis o quadro de informao desplegable de sugestos sobre os datos. Quando o depurador est em modo de interrupo, se pode ver o valor de uma varivel dentro do mbito atual colocando ou puntero do mouse sobre a varivel de uma janela de cdigo fonte. Aparece um quadro desplegable de sugestos sobre os datos. Para ver o valor de uma expresso, seleoela. A informao desplegable de sugestos sobre os datos no est disponible para as expreses que esto fora do mbito atual ou que no so vlidas, como a diviso por cero, ni para as expreses que impliquna avaliao de funes. Para obter mais informao, veja Expreses no depurador.

Janelas e quadros de dilogo do depurador


Para inspecionar com maior detalhe o programa, o depurador de Visual Studio proporciona uma serie de janelas e quadros de dilogo. Para o formato numrico empregado nas janelas do depurador pode escolher entre decimal ou hexadecimal.

Prova
Utilizar a janela Automtico

Para ver

Variaveis na instruo atual e na

Apostila Visual Studio 2005

214

anterior Utilizar a janela Variaveis locais Utilizar a janela This (Me)


Variaveis locais

Objeto asociado ao mtodo atual (llamado This em C++ e C# ou Me no Visual Basic) Variaveis Contenido de registros Qualquer expreso vlida reconocida por o depurador.

Utilizar o quadro de dilogo Inspeo rpida

Utilizar a janela Inspeo

Variaveis Contenido de registros Qualquer expreso vlida reconocida por o depurador. Contenido de registros Contenido da memoria nomes de funes da piA de chamadas Tipos de parmetros Valores de parmetros

Utilizar a janela Registros Utilizar a janela Memoria Utilizar a janela PiA de chamadas

Utilizar a janela Desensamblador Utilizar a janela Subprocessos

Cdigo ensamblador gerado por ou compilador do programa Informao sobre os subprocessos (sequncias consecutivas de execuo) criados por o programa Mdulos (arquivos DLL e EXE) utilizados por o programa Una lista de documentos, cdigo de sequncias de comandos, cargados no processo atual.

Utilizar a janela Mdulos Documentos em execuo (Janela)

Nota a capacidade de inspecionar o programa depender de se ste se tem gerado com informao de depurao, de se o usuario tiene acesso ao cdigo fonte do programa, e de se ou compilador JIT de Common Language Runtime faz um seguimento da informao de depurao. se o depurador de Visual Studio no encontra informao de depurao para o programa, mostrar ou mensagem "no se encontra informao simblica". A informao de depurao gerado de forma predeterminada quando se define a configurao de depurao do programa. Pode instalar smbolos de depurao do sistema como ajuda para depurar as chamadas ao sistema.

Utilizar o quadro de dilogo Inspeo rpida


Como indica seu nome, o quadro de dilogo Inspeo rpida permite avaliar rpidamente uma varivel ou expresso.

Apostila Visual Studio 2005

215

Tambm pode utilizar Inspeo rpida para modificar ou valor de uma varivel ou um registro. (Os valores dos registros somente podem mostrarse e modificarse para as aplicaes de C++ com cdigo nativo). Inspeo rpida um quadro de dilogo modal. No pode dejarlo abierto para inspecionar uma varivel ou expreso enquanto executa passo a passo o programa. se lo necesita, pode agregar a varivel ou expreso janela Inspeo. Para abrir o quadro de dilogo Inspeo rpida No men Depurar, escolha Inspeo rpida. (A depurador deve hallarse em modo de interrupo).

Em uma janela de cdigo fonte, d um clic no nome de uma varivel com o boto secundario do mouse e escolha Inspeo rpida no men contextual. Desta forma, a varivel se colocar automticamente no quadro de dilogo Inspeo rpida. (A depurador deve hallarse em modo de interrupo).

Pode mudar o tamanho do quadro de dilogo Inspeo rpida. Para mudar o tamanho do quadro de dilogo Inspeo rpida

D um clic na esquina inferior direita do quadro de dilogo e arrstrela.

Avaliar uma expreso no quadro de dilogo Inspeo rpida


A quadro de dilogo Inspeo rpida permite avaliar rpidamente uma varivel ou expresso. Para avaliar uma varivel, registro ou expreso 1. No quadro de dilogo Inspeo rpida, escreva ou pegue a varivel, registro ou expreso no quadro de texto Expresso. (Os registros somente esto disponiveis para o cdigo nativo). Sugesto se o nome de registro coincide com um nome de smbolo, use ou smbolo @ como prefijo do mismo. somente para cdigo nativo. Sugesto Pode mudar o formato de presentao escreviendo um especificador de formato detrs da expresso. somente para cdigo nativo. Sugesto Pode utilizar ou operador de contexto para especificar ou contexto exacto de uma varivel ou expresso. Esto pode ser til, por exemplo, se deseja inspecionar uma varivel fora do mbito atual. somente para cdigo nativo. 2. D um clic em Atualizar. 3. A valor aparece no quadro Valor atual. 4. Se escreveu o nome de uma matriz ou varivel de objeto no quadro Expresso, aparecer um controle de rbol junto ao nome no quadro Valor atual. D um clic no sinal mais (+) ou menos () da coluna nome para expandir ou contraer a varivel.

Apostila Visual Studio 2005

216

Para no ter que voltar a escrever uma expreso anterior, pode selecionarA da lista desplegable asociada ao quadro Expresso. Para voltar a escrever uma expreso anterior 1. D um clic na seta hacia abajo situada direita do quadro Expresso. 2. Selecione a expreso da lista desplegable. 3. D um clic em Atualizar. Os valores de registro somente podem mostrarse para as aplicaes de cdigo nativo.

Editar um valor no quadro de dilogo Inspeo rpida


Pode utilizar Inspeo rpida para modificar ou valor de uma varivel ou um registro. Para mudar o valor de uma varivel ou de um registro 1. Escreva o nome da varivel ou registro no quadro de texto Expresso. (Os registros somente podem utilizar no cdigo nativo). 2. D um clic em Atualizar. 3. Se escreveu o nome de uma matriz ou varivel de objeto no quadro Expresso, aparecer um controle de rbol junto ao nome no quadro Valor atual. D um clic no sinal mais (+) ou menos () da coluna nome para expandir ou contraer a varivel e encontrar ou elemento cujo valor deseja modificar. 4. D um duplo clic na coluna Valor do quadro Valor atual para selecionar ou valor. 5. Utilize o mouse e o teclado para modificar ou valor. 6. Presione ENTRAR. Precauo a modificao de valores de ponto flotante pode dar lugar a ligeras imprecises debido converso de decimal a binario dos componentes fracionarios. Incluso uma operao de edio aparentemente inocua pode causar cambios em um dos bits menos significativos de uma varivel de ponto flotante. Sugesto se o nome de registro coincide com um nome de smbolo, use ou smbolo @ como prefijo do mismo. somente para cdigo nativo.

Agregar uma expreso de inspeo rpida janela Inspeo


Para agregar uma varivel ou expreso janela Inspeo 1. No quadro de dilogo Inspeo rpida, escreva a varivel ou expreso no quadro Expresso.

Apostila Visual Studio 2005

217

2. D um clic no boto Agregar inspeo. Com ele adicionar a varivel ou expreso janela Inspeo1.

Apostila Visual Studio 2005

218

O Processo de Compilao no C#
Os fontes em C# tem extenso cs. Todos os fontes em um projeto so compilados diretamente para um nico assembly (.EXE ou .DLL). No existe um arquivo intermedirio (.OBJ ou .DCU) como no Delphi. Qualquer fonte pode referenciar outro fonte no projeto com a sintaxe namespace.classe.membro. Note que podemos incluir namespaces dentro de namespaces. No necessrio declarar previamente os identificadores ou usar using. Mais uma vez, insisto em que voc entenda que using em C# no igual a uses no Delphi. importante compreender isto para permitir um aprendizado coerente da linguagem C#. Se o namespace vai gerar um .EXE, uma de suas classes deve ter um mtodo public static int Main(string[] args) que ser o ponto de entrada do executvel.

Assemblies
Os executveis .NET so arquivos .EXE ou .DLL no formato PE, o mesmo formato usado no Windows 32, mas com algumas diferenas. Eles so chamados coletivamente de Assemblies e contm basicamente o seguinte:
Informaes de verso detalhadas tanto sobre o prprio mdulo como os

demais mdulos referenciados (Manifest);


Informaes detalhadas de todos os tipos implementados no arquivo (Metadata); Cdigo MSIL Microsoft Intermediate Language. Este cdigo compilado em tempo de carga (ou instalao) para a CPU do computador;

Um executvel ou DLL pode tanto chamar classes da biblioteca ou de outros executveis como tambm criar classes derivadas de classes localizadas em outros executveis. Este um sonho antigo da orientao a objetos que nunca foi realmente realizado, apesar de vrias tentativas (Taligent e Next, dentre outras). A menor unidade de instalao / distribuio (deployment) em .NET o assembly. Como os assemblies so autodescritores, o mtodo mais fcil de instal-los copiar o assembly para a pasta de destino desejada. Ento, ao tentar executar um aplicativo contido no assembly, o manifest instruir o run-time .NET quanto aos mdulos que esto contidos no assembly. Alm disso, o assembly contm referncias a quaisquer assemblies externos que so necessrios para o aplicativo.

Ambiente Gerenciado
Todo cdigo desenvolvido para .NET Framework dito gerenciado. As principais caractersticas deste ambiente gerenciado so:
O executvel no contm cdigo Intel x86 e sim cdigo MSIL com chamadas biblioteca de classes; O gerenciamento de memria feito automaticamente com o uso de um

coletor de lixo (garbage colhector);


As atribuies tm o tipo validado; a princpio o sistema de tipos inviolvel;

Apostila Visual Studio 2005

219

Operaes que podem comprometer a segurana, como abrir um arquivo,

exigem permisses especiais. As qualidades acima permitem rodar programas de origem duvidosa, por exemplo da Internet, sem que estes programas possam comprometer a segurana e integridade do sistema.

Verificabilidade
Todo programa criado pelo compilador C# dito verificvel. Isto quer dizer que o compilador JIT pode, em tempo de execuo / compilao, verificar e garantir que o programa no faa nenhuma operao que possa comprometer a segurana e integridade do sistema. Pode parecer estranho, mas existem instrues MSIL capazes de abrir brechas na segurana do sistema, como por exemplo, para manuseio direto de ponteiros ou casts inseguros. Estas instrues so necessrias em alguns casos, como por exemplo para que a prpria biblioteca chame a API do Windows. Programas que contm estas instrues so ditos no-verificveis. O compilador C# pode criar programas no-verificveis, incluindo manipulao direta de ponteiros, com a opo /unsafe. J o compilador C++ sempre gera cdigo no-verificvel. Evidentemente necessrio um privilgio especial de segurana para rodar programas no-verificveis. perfeitamente possvel criar programas bastante teis sem violar os critrios de verificabilidade e, conseqentemente, segurana.

Examinando os Assemblies
Voc pode observar o contedo de um executvel .NET com a ferramenta ILDASM.EXE. Observe as informaes de tipo exibidas. No caso temos uma classe chamada Module1 com um mtodo Main dentro:

Veja o Manifest, com informaes de verso tanto do prprio executvel (embaixo, verso 0.0.0.0), como de outros assemblies (DLLs) referenciadas pelo programa.

Apostila Visual Studio 2005

220

Voc pode visualizar o cdigo IL clicando sobre o mtodo Main:

Nota sobre descompilao


Qualquer programa, escrito para qualquer linguagem e voltado para qualquer CPU pode ser descompilado, dada uma quantidade de esforo maior ou menor. Por descompilado queremos dizer que podemos criar um fonte em linguagem de alto nvel que uma vez compilado funciona da mesma forma que o programa executvel que dispnhamos anteriormente. Isto pode ser feito com executveis Windows, mas os programas .NET (e tambm Java) podem ser descompilados mais facilmente. Uma das grandes vantagens dos executveis .NET que eles podem rodar em um ambiente gerenciado, onde os programas no podem causar danos ao computador do usurio. Este ambiente gerenciado depende basicamente do seguinte para funcionar:
Cdigo em linguagem intermediria (MSIL). Este cdigo pode ser

verificado em tempo de execuo pelo compilador JIT, de forma que no possa causar danos ao computador do cliente ou efetuar operaes no permitidas pelas configuraes de segurana, como ler um arquivo qualquer do disco ou estabelecer comunicao via Internet com um site no autorizado.
Informao de tipo em tempo de execuo (metadata) de forma a validar os

casts e manter a integridade do sistema de tipos.

Apostila Visual Studio 2005

221

A primeira compilao (C# para IL) no deve otimizar o cdigo, pois as

otimizaes podem impedir que o compilador JIT verifique o cdigo como tambm atrapalhar outras otimizaes a serem feitas pelo JIT. Evidentemente, os fatores acima facilitam a descompilao dos programas. Note que estes recursos tm como efeito principal o aumento da segurana para os usurios finais e tambm uma caracterstica do Java. Dito isto, como impedir que algum que tenha os executveis possa descompillos? Existem vrias maneiras: 1. Colocar parte da funcionalidade do aplicativo em WebServices ou mesmo servidores de aplicativos (COM+/remoting). Como os usurios no tm acesso aos executveis, no h como descompil-los. Esta maneira absolutamente garantida. 2. Escrever parte do programa como cdigo no gerenciado, quer como DLL, objeto COM ou mesmo em cdigo no-gerenciado dentro de programas C++ .NET. 3. Escrever parte do cdigo nassembler IL usando recursos que dificultam a descompilao, como o uso de identificadores no suportados pelas linguagens C# ou VB.NET. 4. Usar um obfuscator como o Demeanor (http://www.wiseowl.com) ou o DotFuscator (http://www.preemptive.com/) para alterar o cdigo de forma a impedir a descompilao. A grande viso do .NET que teremos servidores de aplicativos acessados atravs da Web ou de aplicativos SmartClients (WinForms) e no os aplicativos Client/Server atuais. Na medida em que os aplicativos passna depender de servios para o seu funcionamento, a questo da descompilao do cliente deixa de ser muito relevante. Alis, se formos comparar com a Web, os WinForms esto substituindo aplicativos escritos em HTML e JavaScript, que enviam o fonte para o cliente de qualquer forma, sem possibilidade de uso de obfuscators.

Executando Programas
Em tempo de execuo (ou instalao, em alguns casos), o cdigo do assembly finalmente compilado, mtodo a mtodo, para o ambiente final com um JIT- Just In Time Compiler. Isto traz as seguintes vantagens:
Independncia de CPUs e sistema operacional: basta que exista um runtime

do .NET para o programa rodar.


O sistema de runtime pode fazer verificaes de segurana impossveis caso o

cdigo fosse realmente executvel. Os programas podem rodar em uma espcie de caixa de areia e no danificar o sistema hospedeiro. O cdigo executvel chamado de managede code. interpretados.
A compilao final traz performance melhor que a obtida em ambientes

Pr-Compilao
possvel - embora no recomendvel - compilar previamente um arquivo executvel para cdigo nativo com o comando NGEN:

Apostila Visual Studio 2005

222

O executvel ser colocado em um local chamado Global Assembly Cache:

Ao chamarmos o programa do diretrio original, a verso do GAC ser usada. Observe alguns pontos importantes:
A compilao somente poder ser feita no computador no qual o programa ser executado. No existe a possibilidade de executar esta compilao no computador do desenvolvedor e depois instalar a imagem executvel no computador do cliente;

O executvel continua exigindo o .NET Framework presente no cliente;


Nem tudo pode ser compilado; alguns trechos podem ser deixados em IL para serem compilados em tempo de execuo; A imagem nativa nunca gerenciada automaticamente; este sempre um processo manual feito com o utilitrio NGEN.EXE (veja as opes /delete e /show); Normalmente s podemos colocar programas com strong names no GAC,

mas o runtime cria um nome mais ou menos forte baseado em um checksum e data para coloc-lo no GAC. Quando um assembly compilado com o NGEN.EXE, diversas informaes so registradas:
Tipo da CPU;

Apostila Visual Studio 2005

223

Verso do sistema operacional; Identificao do assembly, uma espcie de checksum + data e hora. Uma

recompilao muda esta identidade;


Exata identificao de todos os assemblies referenciados; Fatores de segurana.

Se qualquer uma destas informaes mudarem, a imagem nativa deixar de ser usada e o programa ser compilado com JIT. A imagem nativa nunca atualizada automaticamente.

Vantagens e desvantagens
A nica vantagem de compilar previamente um executvel que sua carga e execuo sero um pouco mais rpidas. Por outro lado, a chance da imagem nativa ser ignorada relativamente grande, especialmente por mudanas no ambiente de segurana e privilgios dos usurios. interessante observar que a instalao do .NET Framework pr-compila alguns, mas no todos assemblies, como pode ser observado em C:\WINNT\assembly:

A minha recomendao que voc NO deve se preocupar em pr-compilar os executveis, a princpio. Nos casos que a execuo mostrar-se lenta, voc pode experimentar a pr-compilao.

Opes de Compilao
Em project / Properties existem diversas opes de compilao para os projetos. Conforme a imagna seguir, voc pode clicar do lado direito e observar as diversas opes que voc pode configurar.

Apostila Visual Studio 2005

224

Outra forma de acessar as propriedades do projeto atravs do Toolbox Solution Explorer, clique em cima do seu projeto com o boto direito do mouse e selecione Properties.

Verificaes em tempo de compilao


Durante a compilao so feitas diversas verificaes no fonte, no s sintticas como tambm semnticas. O compilador detecta erros de:
Uso de variveis no atribudas; Parmetro out no atribudo na funo de chamada; Parmetro ref no atribudo na funo de chamada; Existncia de cdigo inatingvel; Possibilidade de uma funo no receber o valor de retorno; Switch/Case sem break nas opes;

Os so textos livres colocados dentro do programa, usados para explicar o que o cdigo faz.

Delphi O Delphi tem as seguintes maneiras de especificar : Entre { e } Entre (* e *) Aps // e at o final da linha Os no podem ser aninhados (comentrio dentro de comentrio) { Programa escrito para mostrar como funcionam os Este o comentrio com chaves }

Apostila Visual Studio 2005

225

(*Este o comentrio com parnteses e asterisco. Note que ambos podem varar a linha *) // Este comentrio funciona apenas at o final da linha C# O C# tem as seguintes maneiras de especificar : Entre /* e */ Aps // e at o final da linha Os no podem ser aninhados (comentrio dentro de comentrio) /* Este o comentrio com barra e asterisco. Note este pode varar a linha */ // Este comentrio funciona apenas at o final da linha

XML (Exclusivo C#)


O C# permite que se escreva comentrio de uma maneira estruturada, em XML. Enquanto os em C# so iniciados com //,os iniciados com /// indicam documentao que pode ser extrada pelo compilador e manipulada. Esta manipulao inclui:
Usar o arquivo XML diretamente em um programa, por exemplo inserindo em uma base de dados Aplicar uma style sheet para exibir o texto formatado;

O prprio Visual Studio pode tambm criar pginas HTML a partir dos em XML.

Incluindo
Os em XML so colocados antes de elementos como:
Tipos, incluindo classes; Variveis; Mtodos; Propriedades; Delegates.

Note o seguinte:
A documentao comea com ///; O Visual Studio .NET cria automaticamente um esqueleto apropriado ao se

digitar /// antes do elemento;

O documento deve ser bem formatado; isto basicamente significa que as tags devem estar equilibradas, com incio e fim; A tag <param> descreve parmetros; A tag <summary> usada pelo editor do Visual Studio para fornecer informao de tipo ou de um membro; As tags com significado especial so: <c>, <param>, <see>, <code>, <paramref>, <seealso>, <example>, <permission>, <summary>, <exception>, <remarks>, <value>, <list>, <returns>.

Veja um exemplo de classe com em XML:

Apostila Visual Studio 2005

226

namespace BizObj { /// <summary> /// Do simple arithimetic /// </summary> public class Contas { double _N1; double _N2; /// <summary> /// Default constructor /// </summary> public Contas() { _N1 = 0; _N2 = 0; } /// <summary> /// Assign two values /// </summary> /// <param name="x">One value</param> /// <param name="y">Another value</param> public voide Assign(double x, double y) { _N1 = x; _N2 = y; } /// <summary> /// Adde the numbers /// </summary> /// <returns></returns> public double Add() { return _N1 + _N2; } /// <summary> /// Multiply the numbers /// </summary> /// <returns></returns> public double Multiply() { return _N1 * _N2; } /// <summary> /// Get the first number /// </summary> public double N1 { get { return _N1; } } /// <summary> /// Get the seconde number /// </summary> public double N2 { get { return _N2; } } } }

Extraindo a documentao em arquivo parte


Para extrair a documentao em um arquivo parte, rode o compilador de linha de comando em uma sesso em modo console, por exemplo: C>csc Class1.cs /doc:Class1.xml A opo /doc indica a extrao do arquivo XML. Veja o arquivo XML gerado a partir do programa acima:

Apostila Visual Studio 2005

227

<?xml version="1.0"?> <doc> <assembly> <name>Class1</name> </assembly> <members> <member name="T:BizObj.Contas"> <summary> Do simple arithimetic </summary> </member> <member name="M:BizObj.Contas.#ctor"> <summary> A class that is going to be wrappede as COM must have a public constructor without parameters </summary> </member> <member name="M:BizObj.Contas.Assign(System.Single,System.Single)"> <summary> Assign two values </summary> <param name="x">One value</param> <param name="y">Another value</param> </member> <member name="M:BizObj.Contas.Add"> <summary> Adde the numbers </summary> <returns></returns> </member> <member name="M:BizObj.Contas.Multiply"> <summary> Multiply the numbers </summary> <returns></returns> </member> <member name="P:BizObj.Contas.N1"> <summary> Get the first number </summary> </member> <member name="P:BizObj.Contas.N2"> <summary> Get the seconde number </summary> </member> </members> </doc>

Aplicando uma Style Sheet XSL


Para associar um schema XML (arquivo XSL), colocando um cdigo parecido com o seguinte na segunda linha do arquivo XML gerado, como por exemplo: <?xml-stylesheet type="text/xsl" href="Doc.xsl"?>

Gerando pginas HTML no Visual Studio .NET


Voc pode tambm criar a documentao em HTML atravs do menu Tools | Builde Comment Web Pages do Visual Studio .NET. Veja uma pgina criada para o exemplo anterior, visto de dentro do Visual Studio .NET:

Apostila Visual Studio 2005

228

Apostila Visual Studio 2005

229

Introduo ao Software Patterns


Introduo
Software Pattern tem emergido como uma das mais promissoras abordagens para a melhoria da qualidade de software. Nos ltimos quatro anos tem havido uma grande quantidade de conferncias, cursos, artigos e livros sobre patterns. O principal veculo desta exploso tem sido o livro Design Patterns: Elements of Reusable Object-Oriented Software (Design Patterns: Elementos de Software Reusvel Orientado a Objetos) [GHJV95] que descreve um catlogo com vinte e trs design patterns. To importante quando o livro em si, foi a forma que o livro foi escrito, com revises e discusses do seu contedo pela comunidade antes de sua publicao. Esta forma de trabalho uma das caractersticas mais importante desta abordagem. Da mesma forma que esta exploso tem ocorrido, interpretaes erradas, ou apenas no abrangentes, tem tambm ocorrido. Estas distores ocorrem tanto em aspectos acidentais (como por exemplo, achar que software pattern uma abordagem apenas para orientao a objetos), quanto em aspectos mais fundamentais (achar que software pattern pode ser tratado com os paradigmas atuais de pesquisa em engenharia de software). Software Pattern ganhou maior visibilidade com o livro j citado sobre uma aplicao da abordagem para orientao a objetos. Software Pattern baseado em pressupostos diferentes daqueles assumidos por grande parte da comunidade de pesquisa em engenharia de software. Ao invs de valorizar os aspectos meta de software, tais como, modelos, teorias, formalismos e ferramentas para a produo (ou qualquer outro aspecto) de software, Software Pattern enfatiza a identificao e comunicao entre pessoas de elementos dos melhores exemplos e prticas em software. Software Pattern no substitui as abordagens correntes, mas sim as complementa, com o preenchimento de lacunas que no estavam sendo tratadas adequadamente. A principal lacuna a deficincia no compartilhamento dos melhores exemplos e prticas em software. O enfoque nestes aspectos meta tem gerado um grande nmero de solues para os problemas do software que no tem tido os resultados prticos esperados, agravando o que conhecido como a crnica crise do software. Por outro lado existem tambm vrias boas solues prticas geradas pela imensa comunidade de desenvolvedores de software. Estas boas solues so criadas muitas vezes independentemente das orientaes da tecnologia, e s vezes at contrrias a elas. Estas boas solues no tem sida IDEntificadas e registradas de forma apropriada e isto tem prejudicado sua disseminao na comunidade. Este artigo apresenta uma introduo software patterns e uma relao das principais referncias sobre o assunto e sobre cada uma delas. O artigo est organizado em oito sees, das quais esta a primeira. Esta primeira seo introduz brevemente o assunto e o artigo. complementada com consideraes sobre a traduo para o portugus de alguns termos da abordagem. A Seo 2 descreve as propostas de Cristhopher Alexander para arquitetura. Software Pattern fortemente baseado nestas propostas. A Seo 3 apresenta uma srie de consideraes sobre engenharia de software, com o objetivo de indicar quais os problemas que a abordagem software patterns trata. A Seo 4 introduz a abordagem atravs da descrio dos principais e uma srie de exemplos. A Seo 5 descreve as principais formas que esto sendo utilizadas para a descrio de software patterns. As sees 6 e 7 descrevem respectivamente exemplos de software patterns para software orientado a objetos e organizaes e processos de

Apostila Visual Studio 2005

230

software. A Seo 8 descreve algumas orientaes sobre como saber mais sobre o assunto.

Notas sobre traduo e terminologia


A abordagem Software Pattern tem sido desenvolvido em ingls. Ao escrever uma introduo em portugus abordagem, optou-se em manter o termo pattern em ingls, devido s consideraes descritas a seguir. Em portugus, a traduo deveria ser para o termo padro. Porm este termo j esta associado a uma srie de significados, tais como padres de comportamento, normas (como ISO 9000 por exemplo), e reconhecimentos de padres de sinais. Apesar do significado do termo nesta abordagem compartilhar elementos destes outros significados, mas em nveis de profundidade e nfases diferentes, melhor, principalmente em uma introduo, no associar nenhum outro significado que o termo possa induzir. Ento, recomenda-se que o leitor entenda o termo pattern como um termo novo. A manuteno do termo em ingls ajuda esta dissociao. A comunidade ter alternado em trs termos para designar o elemento bsico da abordagem: Pattern, Software Pattern e Design Pattern. O termo mais apropriado, e que tem se estabelecido melhor, software pattern, que indica a aplicao da abordagem patterns em software. Design Pattern refere-se a uma aplicao especfica de software patterns, no caso software patterns para elementos de desenho detalhado, arquitetura (ou melhor micro-arquitetura) e implementao de software. Como ser melhor explicado no texto, este termo foi utilizado pelo livro que difundiu software patterns, e devido a isto muito utilizado. Ento, optou-se em utilizar o termo Software Pattern. s vezes o termo utilizado no singular e outras vezes no plural, conforme a melhor concordncia com o verbo da frase. Algumas vezes, para reduo do texto, principalmente nas transparncias, utilizase o termo pattern para designar software pattern. Design Pattern utilizado apenas no seu significado mais restrito.

Antecedentes: Christopher Alexander


Software Pattern est fortemente baseado nos trabalhos de Christopher Alexander, que props uma nova atitude para arquitetura, construo e planejamento de cidades, comunidades, prdios e casas [CA+75, CA+77, CA79]. Esta atitude uma viso humanstica do desenvolvimento, com a participao efetiva de todos os habitantes no processo de desenvolvimento. Desenvolvimento no sentido mais amplo do termo, incluindo atividades como planejamento, construo e manuteno. Esta atitude est descrita em trs livros complementares: The Timeless Way of Building [CA79]: Descreve a abordagem, incluindo consideraes sobre qualidade e definies de patterns e linguagem de patterns. A Pattern Language [CA+77]: Descreve uma linguagem de patterns para cidades, prdios e construes com 253 patterns The Oregon Experiment [CA+75]: Descreve um experimento de utilizao da abordagem e da linguagem de patterns. No caso, a reforma do campus da universidade de Oregon. Segundo Alexander, a natureza de cada lugar determinada pelos padres de eventos humanos que acontecem regularmente neste lugar. Estes padres de eventos esto interligados com padres geomtricos do espao. Estes padres de eventos no espao so os nicos elementos que se repetem em diferentes lugares. Existe um pequeno nmero destes padres que formam os tomos do conhecimento para a criao destes lugares, que so formados por combinaes de

Apostila Visual Studio 2005

231

instancias destes padres. Cada um destes padres podem ser descritos em uma forma literria, chamada pattern. Estes patterns formam uma linguagem de padres (pattern language). Os 253 patterns descritos em [CA+77] so um exemplo de uma linguagem de pattern para arquitetura. Estes patterns no esto descritos formalmente, mas sim como textos literrios, de forma a melhorar a comunicao de seus significados. A sua instanciao na construo de lugares no pode ser automatizada. A utilizao destes patterns ento uma atividade criativa, que auxilia a gerao da qualidade, a partir das aes indiretas das pessoas envolvidas no processo. Christopher Alexander enfatiza a importncia da participao efetiva de todos os envolvidos na construo e utilizao de, por exemplo, um prdio, no seu desenvolvimento e construo. Para guiar esta participao, uma linguagem de patterns extrada das pessoas experientes na rea. Esta linguagem de patterns permite o compartilhamento do conhecimento para a gerao das solues. Cada pattern descreve em uma forma literria um problema que ocorre vrias vezes no nosso ambiente e ento descreve o ncleo da soluo deste problema, de tal forma que podemos utilizar esta soluo inmeras vezes, gerando resultados diferentes a cada vez [CA+77, p. x]. Tal linguagem de patterns permite a qualidade, que no pode ser fabricada, mas apenas gerada, indiretamente, pelas aes das pessoas.

Motivao: Engenharia de Software, Reuso e Software Pattern


Reuso de software em geral tem sido um objetivo primordial em engenharia de software. A prpria utilizao do termo reuso (ou reutilizao) uma demonstrao do quanto reuso essencial e tambm do quanto ele no est sendo atingido. Todas as tradicionais disciplinas de engenharia (como por exemplo, engenharia civil, mecnica e eltrica) esto to intrisicamente baseadas na grande quantidade de reuso de elementos, que o termo reuso nem mencionado. Afinal reuso parte integrante de praticamente tudo que faz em engenharia. Mary Shaw estudou diversas definies de engenharia e conclui que estas definies compartilham um conjunto de clusulas [MS90]. Estas clusulas comuns formam uma boa definio de engenharia. Engenharia est relacionada com a criao de solues eficientes, para problemas prtico, atravs da aplicao de conhecimento cientfico, construindo coisas a servio da condio humana. Para atingir este objetivo, uma engenharia utiliza conhecimentos cientficos sobre domnios tecnolgicos que esto codificados de uma forma que seja diretamente til para um engenheiro. Deste modo este conhecimento codificado prov respostas para questes que ocorrem comumente na prtica. Ou seja, este conhecimento deve ser reutilizado para a gerao de solues. Engenharia tambm pode ser entendida pela distino entre trabalho criativo e trabalho rotineiro. Trabalhos rotineiros so aqueles que envolvna soluo de problemas conhecidos e portanto facilitam a reutilizao de grande parte de outras solues j aplicadas a problemas similares. A construo de uma rodovia por engenheiros civis geralmente um trabalho rotineiro. A menos que o relevo da regio seja to diferente que requeira solues novas. Nestes casos, onde solues novas so necessrias, o trabalho a ser realizado denominado de trabalho criativo. Engenharia est fortemente relacionada com trabalhos rotineiros. Para uma disciplina atingir a condio de engenharia algumas condies so necessrias. Uma delas o discernimento sobre o que essncia e o que acidente [FB95]. Outra condio o conhecimento de quais elementos so estveis. Ou seja, entre vrias solues, de problemas similares, quais elementos esto presentes nestas solues. E tambm quais destes elementos estveis so

Apostila Visual Studio 2005

232

importantes para a gerao das solues. O entendimento e representao dos pontos de variabilidade do domnio da aplicao [CS95, p. 2].

reuso efetivo depende do presso da estabilidade e

O seguinte ciclo para desenvolvimento de abstraes individuais, reconhecido por Mary Shaw, ajuda a entender onde software patterns atua na engenharia de software: Primeiro, problemas so resolvidos ad hoc. Com o acmulo de experincia, algumas solues funcionam melhores que outras, e uma espcie de folclore transmitido informalmente de pessoa para pessoa. Eventualmente, solues teis so entendidas mais sistematicamente e ento codificadas e analisadas. Isto permite o desenvolvimento de modelos que suportam a implementao automtica e teorias que permitna extenso e generalizao destas solues. Por sua vez, isto permite um nvel mais sofisticado da prtica, o que por sua vez permite a abordagem de problemas mais complexos. Estes problemas mais complexos so ento novamente abordados de forma ad hoc, o que inicia o ciclo novamente [MS89, p.143]. Este ciclo ocorreu por exemplo na definio da abordagem orientada a objetos. Os principais elementos desta abordagem (objeto, classe de objetos, mtodo e mensagem) j eram utilizados, de maneira no sistematizada, por diversos projetistas e programadores de software. Existia uma espcie de folclore que era transmitido de pessoa para pessoa. Estes elementos foram ento entendidos mais sistematicamente e a abordagem orientada a objetos foi definida. Patterns so utilizados para a comunicao pessoal destas solues que funcionam melhores que outras.

Software Pattern
A abordagem Software Pattern pode ser definida atravs de quatro perspectivas complementares: Uma Atitude: Viso humanstica de Software, tanto no resultado quanto no desenvolvimento. Uma nfase: Identificar (descobrindo, e no inventando) e comunicar exemplos de boas solues e das melhores prticas. Um Objetivo: Criao de uma nova literatura (linguagens de patterns). Uma Forma: Uma forma literria (pattern). Apesar de todo o avano em tecnologia para software, ou mesmo por causa destes avanos, um problema fundamental ainda existe para a qualidade de software: a comunicao das melhores prticas. Seguramente os aspectos mais importantes desta abordagem so as atividades relacionadas com a comunicao pessoal de conhecimento em software, atravs de software patterns. Comunicao pessoal no sentido mais amplo do termo: como transferncia de significado entre pessoas. Para tanto estas atividades envolvem pelo lado do escritor de patterns reflexo, escrita e reviso e pelo lado do utilizador o entendimento e aplicao destes patterns. A definio de pattern mais difundida tem sido pattern a essncia de uma soluo de um problema recorrente em um contexto. Soluo de um problema significa que cada pattern identifica e descreve uma soluo e o problema que aquela soluo resolve. Essncia de uma soluo significa que apenas os elementos essncias so descritos, deixando os aspectos especficos para gerao pela pessoa que utiliza o pattern. Estes aspectos especficos tendna ser

Apostila Visual Studio 2005

233

dependentes da situao especfica e portanto no so reusveis. Problema recorrente significa que o problema deve ter ocorrido vrias vezes de modo a viabilizar o esforo a ser investido na descrio da soluo. Em um contexto significa que aquela soluo reconhecida com vlida em um contexto particular. James Coplien descreveu as seguintes consideraes sobre a definio de pattern, referindo-se vrias vezes s definies originais de Alexander: Um pattern uma pea de literatura que descreve um problema de desenho e uma soluo geral para o problema em um contexto particular. Alexander define: cada pattern uma regra com trs partes, que expressam a relao entre um certo contexto, um problema e uma soluo [CA79]. Um pattern, em resumo, ao mesmo tempo uma coisa, que acontece no mundo, e a regra que nos diz como criar esta coisa, e quando devemos cria-la. Ele tanto o processo como a coisa; tanto a descrio de uma coisa que est viva, e a descrio do processo que gera esta coisa. [CA79, p. 247] [JC96] Segundo James Coplien [JC96], um bom pattern aquele que faz o seguinte: Resolve um problema: Patterns capturam solues, no apenas princpios ou estratgias abstratas. Conceito provado: Patterns capturam solues com um caminho registrado, no teorias ou especulaes A soluo no obvia: Varias tcnicas de resoluo de problemas (como mtodos e paradigmas para desenho de software) tentam derivar solues a partir de primeiros princpios. Os melhores patterns geram a soluo para um problema de forma indireta. Esta uma abordagem necessria para problemas difceis Descreve um relacionamento: Patterns no descrevem mdulos, mas sim estruturas e mecanismos profundos de um sistema. Tem um significante componente humano: Todo sistema de software serve ao conforto humano e a qualidade de vida. Os melhores patterns descrevem explicitamente esta caracterstica. John Vlissides, um dos autores de [GHJV95], acrescentaria mais trs itens a esta descrio de um bom pattern: ter um bom nome, resolver um problema recorrente, e resolver um problema importante [JV96b]. Ele tambm organizou, em sete hbitos, algumas orientaes sobre como escrever patterns [JV96a]: Reserve tempo para reflexo Atenha-se a uma estrutura Seja concreto logo no incio Mantenha os patterns distintos e complementares Apresente os patterns de forma eficiente Interaja exaustivamente Obtenha e incorpore de outras pessoas Linguagem de patterns (Pattern language) a coleo de patterns, em todos os nveis de abstrao, que trabalham juntos para resolver um problema complexo em uma soluo ordenada de acordo com uma meta [BA97]. Gerard Meszaros e Jim Doble organizaram o conhecimento atual sobre a escrita de patterns e linguagens de patterns em uma linguagem de patterns para escrita de

Apostila Visual Studio 2005

234

patterns [MD97]. Ou seja, a abordagem foi utilizada para definir a prpria abordagem. Entre os patterns apresentados, dois deles definem respectivamente os de pattern e linguagem de patterns. Os Quadros 1 e 2 apresentam tradues destes dois patterns. Pattern [MD97] Contexto: Voc tem bastante experincia prtica na sua rea. Voc tem notado que utiliza certas solues para problemas que ocorrem comumente. Voc gostaria de compartilhar sua experincia com outros Problema: Como compartilhar esta soluo de problemas recorrentes com outros para que ela possa ser reutilizada? Foras: Manter a soluo com voc no requer esforo Compartilhar estas solues verbalmente ajuda somente alguns, mas no causar maiores impactos na sua rea. Escrever o seu entendimento da soluo difcil e requer muita reflexo sobre como voc resolve o problema. Transformar sua soluo especfica para uma soluo mais geral difcil As pessoas no devem utiliza sua soluo se voc no explicar as razes para sua utilizao. Escrever as solues talvez atrapalhe sua vantagem no mercado, tanto pessoal quanto da organizao. Soluo: Escreva a soluo na forma de um pattern. Capture ambos o problema e a soluo, e tambm as razes porque (e onde) a soluo aplicvel. Apresente os Elementos Obrigatrios para garantir que as informaes necessrias esto comunicadas de forma clara. Distribua o pattern para grandes audincias, que no comprometa seu negcio. s vezes publique o pattern apenas internamente. Quadro 1: Pattern Linguagem de Patterns [MD97] Contexto: Voc est tentando utilizar patterns para descrever um procedimento com vrios passos ou uma soluo complexa de um problema complexo. Alguns destes passos talvez se aplica apenas a algumas situaes particulares. Dependendo de certas circunstncias, talvez existam solues alternativas para partes do problema. Apenas um pattern no suficiente para tratar toda esta complexidade. Problema: Como descrever uma soluo que fcil de ser entendida e fcil de utilizar partes da soluo em diferentes circunstncias? Foras: Uma soluo muito extensa talvez seja muito especfica a certas circunstncias e por isto impossvel de ser reusada em outras circunstncias. Talvez seja muito difcil descrever uma soluo complexa em um nico pattern. Uma abordagem tipo dividir-para-conquistar talvez seja necessria para tornar a soluo mais tratvel.

Apostila Visual Studio 2005

235

Dividir a soluo em um conjunto de passos reusveis pode ser muito difcil. Depois de dividida, as partes resultantes podem depender umas das outras para ter sentido. Outras linguagens de patterns talvez queiram referenciar partes da soluo. Elas ento necessitam de pontos de identificao das partes referenciadas. Soluo: Divida o problema e sua soluo complexa ou procedimento em vrios problemas correlatos com suas respectivas solues. Escreva cada par de problema e soluo correspondente como um pattern em uma linguagem de patterns. Cada pattern deve resolver um problema especfico no contexto compartilhado da linguagem. Faa com que cada pattern possa ser utilizado isoladamente ou com um nmero limitado de outros patterns da linguagem. Quadro 2: Linguagem de patterns

Formas para Software Pattern


O Quatro 3 apresenta um pattern sobre a forma para a descrio de um pattern. Forma para Pattern Problema: Qual forma (ou estrutura) deve ser utilizada para escrever um pattern? Contexto: desejvel a definio de uma forma para patterns Foras: A utilizao de uma forma padro e bem conhecida facilita a comunicao Diferentes patterns talvez precisem de diferentes formas para facilitar a escrita de somente a abstrao correta Literatura tem conhecimentos sido bem utilizada para comunicao interpessoal de

Soluo: Use uma Forma Para Pattern com dois aspectos obrigatrios: uma forma literria e alguns elementos mnimos (um nome e a essncia da soluo para um problema recorrente em um determinado contexto). Considere uma das trs formas mais utilizadas: Alexander, Coplien e Gamma. Caso nenhuma delas satisfaa, crie uma nova, com os dois aspectos obrigatrios. Quadro 3: Forma para Pattern As trs formas mais utilizadas pela comunidade esto descritas nos subitens a seguir. A forma Alexander mais textual e mais apropriada para patterns mais abstratos, enquanto a forma Gamma mais itemizada e mais apropriada para patterns mais prximos de desenho e implementao de software. A forma Coplien intermediria entre os outros dois formatos. Forma Alexander A descrio de um pattern iniciada com a reproduo de uma fotografia que descreve um exemplo de uma aplicao do pattern. Em seguida descrito um pargrafo inicial que estabelece o contexto do pattern. Este pargrafo explica como o pattern ajuda a completar outros patterns mais abrangentes (os patterns maiores). Em negrito, descrito ento um pargrafo com a essncia do problema. Em seguida descrito o problema, atravs de uma discusso como evidncias empricas de sua validade, as vrias formas nas quais o pattern pode se

Apostila Visual Studio 2005

236

manifestar nas construes e outros aspectos. Novamente em negrito descrito a soluo. Esta soluo formada pelos relacionamentos fsicos e sociais que so necessrios para resolver o problema no contexto mencionado. A descrio sempre na forma de instrues. Esta soluo ento ilustrada com um diagrama da soluo. Finalmente a descrio terminada com a relao dos patterns menores que so necessrios para completar ou embelezar o pattern [CA+77, p. xi]. Esta forma utilizada por Alexander em [CA+77]. Variaes desta forma so utilizadas, por exemplo, em [RG96]. Forma Coplien Esta forma foi utilizada pela primeira por James Coplien em [JC95] e apresenta seis sees: Problema descreve o problema a ser resolvido; Contexto descreve o contexto no qual a soluo descrita resolve o problema; Foras apresenta o conjunto de foras que atuam no problema; Soluo descreve a soluo do problema descrito; Contexto Resultante descreve o contexto resultante aps a aplicao da soluo; e Racionalidade descreve uma racionalidade e exemplos que justificam a soluo. Todos os patterns descritos neste artigo utilizam esta forma. Forma Gamma Os vinte e trs design patterns descritos em [GHJV95] com um formato consistente, que conhecido como o formato Gamma, devido Erich Gamma, um dos autores do livro [GHJV95]. Este formato contem treze itens. Alguns destes itens esto descritos a seguir. Inteno descreve a inteno do design pattern. Esta descrio deve responder perguntas, tais como, o que o design pattern faz e qual o problema que ele resolve. Motivao descreve um cenrio que ilustra o problema e como a estrutura de classes e objetos do design pattern resolve o problema. Normalmente descrito tambm um exemplo concreto para motivar a importncia do design pattern. Aplicabilidade descreve as situaes nas quais o design pattern deve ser aplicado. Descreve tambm exemplos de problemas com outras solues para o problema resolvido pelo design pattern. Estrutura descreve uma representao grfica da estrutura de classes e objetos que compem o design pattern. Participantes descreve as classes e objetos que participam do design pattern e suas respectivas responsabilidades. Colaboraes descreve como os participantes colaboram para a soluo do problema. Conseqncias descreve as conseqncias do design pattern, inclusive possveis limitaes da soluo. Implementao descreve sugestes para a implementao do design pattern. Usos conhecidos descreve exemplos de utilizao do design pattern em sistemas de software conhecidos.

Exemplos de Design Patterns para Software Orientado a Objetos


O livro Design Patterns: Elements of Reusable Object-Oriented Software (Design Patterns: Elementos de Software Reusvel Orientado a Objetos) [GHJV95] descreve um catlogo com vinte e trs design patterns. Design Pattern uma aplicao de Software Pattern e pode ser definido como: Um design pattern sistematicamente prov um nome, motiva e explica uma soluo de desenho que trata de um problema recorrente em sistemas orientados a objetos. Ele descreve o problema, a soluo, quando a soluo deve ser aplicada, e as conseqncias da aplicao desta soluo. Ele prov tambm orientaes e exemplos para a implementao. A soluo um arranjo de classes e objetos que resolvem o problema. A soluo deve ser ento customizada e implementada para resolver o problema em um determinado contexto [GHJV95, p. 360].

Apostila Visual Studio 2005

237

O Quadro 4 relaciona os vinte e trs design patterns e a organizao na qual eles esto classificados. Em seguida esto descritos o objetivo de alguns destes vinte e trs design patterns. Escopo Classe Objeto Criao Factory Method Abstract Factory Builder Prototype Singleton Estrutura Adapter (classe) Adapter (objeto) Bridge Composite Decorator Facade Flyweight Proxy Comportamento Interpreter Template Method Chain of Responsibility Command Iterator Mediator Memento ObServer State Strategy Visitor

Quadro 4: Organizao dos vinte e trs Design Patterns descritos em [GHJV95] Abstract Factory: Prov uma interface para a criao de famlias de objetos relacionados ou dependentes sna especificao de suas classes concretas. Builder: Separa a construo de objetos complexos de suas representaes de modo que o mesmo processo de construo possa criar diferentes representaes. Factory Method: Define uma interface para a criao de um objeto, mas transfere para as subclasses a determinao de qual classe utilizar para a instanciao. Adapter: Converte a interface de uma classe em outra interface que um cliente desta classe espera. Permite que classes com interface incompatveis trabalhem juntas. Bridge: Separa uma abstrao de sua implementao, de modo que as duas possam variar independentemente. Composite: Compe objetos em uma estrutura de rvore para representar uma hierarquia parte-todo. Permite que clientes tratem objetos individuais e composio de objetos de uma maneira uniforme. Decorator: Acrescenta responsabilidades adicionais a um objeto de forma dinmica. Prov uma flexibilidade alternativa subclasses para extenso de funcionalidade. Flyweight: Utiliza compartilhamento para suportar o uso de uma grande quantidade de objetos de maneira mais eficiente. ObServer: Define uma dependncia um-para-muitos entre objetos de modo que quando um dos objetos mudar seu estado, todos os seus dependentes so notificados e atualizados automaticamente. State: Permite que um objeto altere seu comportamento quando seu estado interno mude. O objeto ento parecer que mudou de classe. Strategy: Define uma famlia de algoritmos, encapsula cada um dos algoritmos, e torna-os intercambiveis. Permite o algoritmo variar independentemente de seus clientes.

Apostila Visual Studio 2005

238

Template Method: Define a estrutura de um algoritmo de uma operao, transferindo alguns passos desta operao para as subclasses. Permite que uma subclasse redefina certos passos de um algoritmo sem alterar a estrutura do mesmo. Exemplo do Design Pattern Composite O design pattern Composite (Composio) to comum que provavelmente todos os desenvolvedores de software j utilizaram, de uma forma ou de outra. Existem porm vrias variaes, sendo que algumas delas so melhores que outras. Existem tambm erros comuns quando da utilizao do Composite. Composite representa o conhecimento existente sobre estas diversas utilizaes e contm a descrio das melhores maneiras de representa-lo [RJ94, GHJV95]. Existem objetos complexos que formam uma hierarquia de parte-todo, em forma de rvore. Por exemplo, um sistema para processamento de documentos, deve tratar os documentos como objetos compostos por captulos, que contm sees, que por sua vez contm pargrafos. A essncia do Composite ento tratar estes objetos como uma rvore, de modo que objetos individuais possam ser tratados da mesma forma que a composio destes objetos. O primeiro passo na utilizao do Composite a criao de trs tipos de classes: Componente, Composio e Folha. Composio e Folha so subclasses de Componente. Composio uma coleo de Componentes. Componente uma classe abstrata que define a interface para as outras classes. Folha representa o componente sem componentes. Em um sistema para processamento de documentos, a classe Componente pode ser chamada de Elemento-de-Texto, a classe Composio de Composio-de-Elementos-de-Texto, e as classes Folhas de Pargrafo e Figura. O prximo passo garantir que as classes Folha e Composio tenham a mesma interface, e que esta interface esteja representada na classe Componente. Existem dois aspectos neste passo: Garantir que a classe Composio suporte todas as operaes que qualquer outro componente suporte, e garantir que a classe Componente suporte operaes que so necessrias para o uso de Composio. Outras informaes sobre Composite, como aplicabilidade, estrutura, participantes, conseqncias, implementao e exemplos de fragmentos de programas fonte, esto descritas em [GHJV95, p. 163-173]. Exemplo do Design Pattern One-for-Many Design Pattern pode ser tambm utilizado para descrever elementos de projeto e implementao de software em outras abordagens, alm de orientao a objetos. Um exemplo deste tipo de design pattern, Um-por-Muitos (One-for-Many) [SN95]. Este design pattern trata do seguinte problema: Geralmente, simples decises de desenho causam a implementao de suas ocorrncias uma por uma. Estas implementaes geralmente no requerem criatividade. Elas so tediosas e sujeitas a erro. Alm disto, ocorrncias da mesma deciso de desenho no so representadas como tal na implementao. Esta situao ocorre, por exemplo, quando uma equipe com poucas pessoas esta desenvolvendo uma aplicao. Estas pessoas querem automatizar algumas atividades. Eles sabem que nem todas as atividades podem ser automatizadas. Elas sabem tambm que existem vrias atividades que so repeties de tarefas simples e portanto so boas candidatas para automatizao.

Apostila Visual Studio 2005

239

Neste contexto, One-for-Many descreve a seguinte soluo: Para cada deciso de desenho simples, que tenha vrias ocorrncias, com implementaes semelhantes, em uma mesma aplicao, faa atividades como as seguintes: Crie uma abstrao para representar a deciso de desenho, ou seja, uma abstrao Um-por-Muitos. Crie uma representao para esta abstrao e para as suas ocorrncias. Defina como a implementao destas ocorrncias ser feita. Escreva um tradutor para gerar estas implementaes. Vrios cuidados devem ser tomados para a utilizao deste design pattern. Entre eles, podemos destacar os seguintes: automatize somente para uma aplicao e identifique o cdigo fonte gerado pelo tradutor. Use este design pattern apenas quando o nmero de ocorrncias for grande o suficiente para compensar o trabalho, quando a construo do tradutor no for muito difcil e somente aps a realizao de exemplos de gerao destas ocorrncias. Este design pattern no deve ser utilizado quando j houver outras decises de desenho que utilizam este design pattern e quando a abstrao poder ser expressa com recursos da prpria linguagem.

Exemplos de Software Patterns para Organizaes e Processos


James Coplien escreveu 42 patterns para orientar a estrutura de novas organizaes de software e seus processos de desenvolvimento [JC95]. Estes patterns formam uma linguagem e esto baseados em estudos de organizaes de software de muito alta produtividade. Os patterns combinam observaes empricas com a racionalidade que os explicam. A cada pattern associado um nmero. Quando um pattern ento referenciado em outro pattern, citado o nome do pattern referenciado, em negrito, e o seu nmero. Desta forma mais fcil a sua localizao. Tradues dos patterns Desenvolvedor Controla o Processo (11) e Arquiteto Controla o Produto (13) esto descritas nos Quadros 5 e 6. Estes dois patterns referenciam outros patterns da linguagem e indicam como e porqu estes outros patterns esto sendo referenciados. Um resumo de alguns destes patterns referenciados est descrito no Quadro 7. Desenvolvedor Controla o Processo Problema: Qual papel deve ser o ponto central de comunicao em um projeto? Contexto: Existe um desenvolvimento em um domnio pouco conhecido, onde interao essencial. Foras: Controle totalitrio visto pela maioria dos desenvolvedores como uma medida draconiana. As informaes necessrias devem fluir atravs das pessoas apropriadas. necessrio suportar o fluxo de informaes entre anlise, desenho e implementao. Gerentes tem certas responsabilidades. Desenvolvedores devem tna responsabilidade maior, alm da autoridade e controle sobre o produto; estes so geralmente aspectos de processo. Soluo: Coloque o desenvolvedor no ponto central do processo para uma feature. Uma feature uma unidade da funcionalidade do sistema, cuja maior parte implementada em software, e que pode ser comercializada separadamente e para a qual consumidores esto dispostos a pagar. O desenvolvedor o clearhouse das informaes do processo. As responsabilidades do desenvolvedor

Apostila Visual Studio 2005

240

incluem entender os requisitos, rever a estrutura da soluo e os algoritmos com os colegas, implementar e testar. Note que outros pontos centrais podem tambm existirem. Contexto Resultante: Uma organizao que suporta seu consumidor principal de informaes. O desenvolvedor pode ser movido para o centro do processo usando Trabalho Flui para Dentro (29) e Mova Responsabilidades (27). Embora o desenvolvedor deva ser um papel chave, cuidado deve ser tomado em no sobrecarrega-lo. Este pattern deve ser balanceado com Analista Mercenrio (23), Portas Contra Fogo (24) e outros patterns mais gerais para balano de carga, como Montanha de Buffalo (28). Racionalidade: No existe um papel chamado projetista, porque no fundo projeto toda a tarefa. Gerentes tem um papel mais de suporte; eles raramente so vistos controlando o processo, exceto durante crises. Enquanto o Desenvolvedor Controla o Processo, o Arquiteto Controla o Produto (13). Esta comunicao particularmente importante em domnios que no esto bem entendidos, ento interaes podem existir para explorar o domnio com o cliente. Quadro 5: Desenvolvedor Controla o Processo Pattern 13: Arquiteto Controla o Produto Outro nome: Planejamento e Arquitetura Problema: Um produto projetado por vrias pessoas no tem elegncia nem coeso. Contexto: Um organizao de desenvolvimento que precisa de direo tcnica estratgica Foras: Controle totalitrio visto pela maioria dos desenvolvedores como uma medida draconiana. As informaes necessrias devem fluir atravs das pessoas apropriadas. Soluo: Crie o papel de arquiteto. O arquiteto deve orientar e controlar os desenvolvedores e estar em comunicao constante com eles. O arquiteto tambm deve estar em contato com o cliente. Contexto Resultante: Este pattern faz para a arquitetura o mesmo que Patrono (12) faz para a organizao: ele prov um foco tcnico e pontos de competies para trabalhos tcnicos e os relacionados com o mercado. Existe um rico relacionamento deste pattern com Patrono (12), que deve ser explorado. Podem ser criados ressentimentos contra arquitetos totalitrios. Use patterns como Revise a Arquitetura (16) para contrabalanar isto. Racionalidade: No existe um papel chamado Projetista, porque no fundo projeto toda a tarefa. Gerentes tem um papel mais de suporte; eles raramente so vistos controlando o processo, exceto durante crises. Enquanto o Desenvolvedor Controla o Processo (11), o Arquiteto Controla o Produto. O arquiteto o desenvolvedor chefe (veja Arquiteto Tambm Implementa (15). Suas responsabilidades incluem entender os requisitos, definir a estrutura principal do sistema e controlar a evoluo a longo prazo da estrutura. O Arquiteto Controla o Produto segundo o diagrama de relacionamento entre os papis descrito em Engaje Garantia da Qualidade (19). Os trabalhos de um s arquiteto so mais elegantes do que os de vrias pessoas juntas [Pascal]. Quadro 6: Arquiteto Controla o Produto ome e Nmero oblema oluo

Apostila Visual Studio 2005

241

Patrono (12)

Arquiteto Tambm Implementa (15) Revise a Arquitetura (16) Analista Mercenrio (23)

Portas Contra Fogo (24)

Trabalho Flui para Dentro (29)

Entregue o projeto a um gerente senior que conduzir e defender a causa do projeto. Como preservar a viso Alm de orientar e se comunicar da arquitetura durante a com os desenvolvedores, o implementao? arquiteto deve tambm participar da implementao Existem problemas na Todas as decises relativas arquitetura e no projeto arquitetura devem ser revisadas (design) por todos os arquitetos Suportar a notao e as Contrate um escritor tcnico que documentaes do projeto seja proficiente nos domnios um trabalho muito necessrios mas que no precise tedioso para as pessoas se envoltar no desenvolvimento. diretamente no desenvolvimento. Desenvolvedores so Crie o papel de gerente para muitas vezes perturbados proteger os desenvolvedores de por pessoas de fora que interaes com pessoas de fora. se sentem compelidos a oferecer e crticas. Trabalho que acrescenta O trabalho deve ser gerado pelos valor diretamente ao clientes, filtrado pelos papis de produto deve ser feito por suporte e conduzidos pelos papis com autoridade responsveis pela implementao.

Como dar continuidade a um projeto (project)?

Quadro 7: Resumo de outros patterns da linguagem

Como saber mais sobre Patterns


Alm dos livros e artigos relacionados nas referencias bibliogrficas, existe um vasto material sobre patterns disponvel atravs da internet. Como pattern uma abordagem recente, e muita dinmica, novos trabalhos tem surgido com bastante rapidez. Portanto recomendvel o acompanhamento desta abordagem atravs da internet. Praticamente todo este material est acessvel ou referenciado no site Patterns Home Page, cujo endereo : http: //st.www.cs.uiuc.edu/users/patterns/patterns.html O Quadro 8 ilustra a pgina inicial deste site, onde esto relacionados os tpicos nos quais o material est organizado.

Apostila Visual Studio 2005

242

Patterns Home Page Welcome to the patterns home page. It is a source for information about all aspects of software patterns and pattern languages. Look for the recent changes at this site. Patterns and Pattern Languages are ways to describe best practices, good designs, and capture experience in a way that it is possible for others to reuse this experience. About Patterns Tutorials and introductions to patterns. Books that have been published about patterns. Papers and Bibliography which are ftpable. Conferences: about patterns. On-line Patterns and Pattern Languages. Regular columns and Articles that have been published. Presentations on patterns. Education: Courses on patterns. Journals: call for papers. Research projects from around the internet community Pattern discussion groups. Writing your own patterns. Template, styles which can be useful. Mailing Lists and Archives: How to join the mailing lists etc. The official unofficial or maybe its the unofficial official Patterns FAQ Pattern Catalogs Tools and Sample Code directly relating to patterns.

Thank you for visiting. This home page is maintained by Eric Huss (ehuss@uiuc.edu). Last updated April 18 1997 Quadro 8: Reproduo da pgina inicial do site Pattern Home Page As principais conferncias sobre patterns so: PLoP: Pattern Languages of Programs, realizadas anualmente, desde 1994, em Monticele, Illinois, EUA, no ms de setembro. EuroPLoP: European Pattern Languages of Programs, realizadas anualmente, desde 1995, na Alemanha. ACM OOSPLA: Conference on Object-Oriented Programming Systems, Languages and Applications, realizada anualmente nos Estados Unidos. Apesar de ser dirigida a orientao a objetos, diversos artigos, tutoriais e workshops em patterns, relacionados ou no a objetos, foram apresentados nas ltimas trs realizaes desta conferncia.

Apostila Visual Studio 2005

243

Criando DLLs no MS.NET


Assim como no Windows, a arquitetura Microsoft .NET permite a criao de DLLs que podem ser compartilhadas por vrios programas. O .NET, contudo, traz vrias novidades adicionais na criao de DLLs:

Enquanto as DLLs Windows contm funes, as DLLs .NET contm tipos.

Dentre os vrios tipos possveis, a class (classe) o tipo mais interessante que pode existir dentro das DLLs. As DLLs contm no apenas o cdigo, mas tambm informaes de tipo completas do que est dentro dela. Dentre as vrias informaes, esto os nomes dos tipos, mtodos, campos e propriedades.

Esta informao adicional usada em vrias situaes, mas a mais importante garantir a integridade do sistema de tipos em tempo de execuo. No possvel executar uma converso de tipo invlida, pois todas as converses so validadas em tempo de execuo. Boa parte da segurana e integridade da nova plataforma depende disso. Esta informao de tipo exposta aos programadores no namespace System.Reflections. Para quem est acostumado com o Delphi, este basicamente o mesmo esquema usado nos runtime packages, com duas principais diferenas: O cdigo executvel das DLLs, correspondente no Delphi ao arquivo BPL, contm obrigatoriamente informaes de tipo, que no Delphi ficam separadas no arquivo DCP; O Delphi prov informao de tipo em tempo de execuo apenas para os campos, mtodos e propriedades declarados na seo published e, ainda assim, apenas para as classes registradas. No .NET, tudo tem informao de tipo em tempo de execuo, sem excees.

A criao de uma DLL contendo classes bastante simples. No Visual Studio.NET Beta 2, pea a criao de um projeto do tipo Class Library. Na verdade, no somos obrigados a colocar classe nenhuma no projeto. O que vale mesmo que estamos criando uma Library (DLL):

Apostila Visual Studio 2005

244

Vamos colocar uma classe simples dentro do projeto.: using System; namespace MinhaDLL { public class Simples { decimal N; public Simples(decimal X) { AjustaValor(X); } public Simples() { AjustaValor(0); } public void AjustaValor(decimal X) { N = X; } public decimal PegaValor() { return N; } } } Depois de compilar a DLL, possvel examinar seu contedo com o IL Disassembler (ildasm.exe), localizado no diretrio \Program Files\Microsoft.NET\FrameworkSDK\Bin:

Apostila Visual Studio 2005

245

Para testar a DLL, criaremos um projeto em modo console:

Para chamar a classe dentro da DLL, temos duas opes:


Via early biding, resolvendo as chamadas em tempo de compilao. Via late biding, resolvendo as chamadas em tempo de execuo.

Early Biding Neste caso criaremos uma referncia DLL dentro do projeto de teste. Clique com o boto direito sobre References e pea Add Reference:

Apostila Visual Studio 2005

246

Selecione a DLL criada recentemente clicando em Browse:

Veja o cdigo de teste: using System; namespace ChamaDLL { class Class1 { static void Main(string[] args) { MinhaDLL.Simples MD = new MinhaDLL.Simples(10); decimal X = MD.PegaValor(); Console.WriteLine(X); } } }

Apostila Visual Studio 2005

247

No exemplo acima, o executvel de testes depende da DLL para ser carregado. Caso a DLL no esteja disponvel, o programa nem roda:

Podemos resolver a chamada de maneira totalmente dinmica usando Late Biding. Late Biding Para chamar a classe via Late Biding, usaremos o suporte de Reflections do .NET Framework. Copie a DLL para o mesmo diretrio do aplicativo e use o seguinte programa em modo console: using System.Reflection; namespace ChamaDLL { class Class1 { static void Main(string[] args) { // Carrega DLL dado seu nome Assembly Lib = Assembly.Load("MinhaDLL"); // Cria um objeto dado seu tipo object MD = Lib.CreateInstance("MinhaDLL.Simples"); // Chama um mtodo MD.GetType().InvokeMember("AjustaValor", BindingFlags.InvokeMethod, null, MD, new object[] {10.0m}); // Chama outro mtodo decimal X = (decimal) MD.GetType().InvokeMember( "PegaValor", BindingFlags.InvokeMethod, null, MD, null); System.Console.WriteLine(X); } } }

Segurana e DLL Hell


A DLL feita neste programa foi copiada no diretrio do prprio executvel que a usa, sendo tambm chamada de private assembly, pois acessada apenas dentro de um pacote de software. Este um caso bastante comum, que no necessita de nenhuma preocupao adicional de segurana ou controle de verso. No entanto, se a DLL for ser compartilhada, existem algumas preocupaes adicionais.

Apostila Visual Studio 2005

248

No Windows, temos srios problemas de controle de verses de DLL: Um programa de terceiros pode instalar uma verso diferente de uma DLL compartilhada, fazendo o seu programa parar de funcionar. Um programa malicioso pode instalar uma DLL diferente, que viole a segurana do sistema.

O .NET tem um protocolo bastante rigoroso para instalao de DLLs compartilhadas, tambm chamadas de shared assemblies, usando criptografia de chave pblica. Este protocolo exige os seguintes passos: 1. Precisamos assinar a DLL usando uma chave criptogrfica nica da nossa empresa. 2. A DLL instalada com um utilitrio especfico, chamado gacutil.exe.

Concluso
A arquitetura Microsoft.NET tem um mecanismo bastante poderoso e flexvel para a diviso do cdigo em vrias DLL, sem perder a tipagem forte e aumentando a integridade e segurana.

Apostila Visual Studio 2005

249

MS Enterprise Library
Introduo
H muito tempo temos visto um grande esforo da Microsoft em "pregar" a boa utilizao da sua tecnologia Microsoft .NET. Uma das decises acertadas neste sentido tem sido o suporte e incentivo a criao de Application Blocks atravs do Patterns & Practices Group, uma espcie de "Apache Group" do mundo .NET. Muitos destes Application Blocks tem servido como importante ferramenta na resoluo de problemas complexos, como segurana, acesso a banco de dados, configurao etc.

Microsoft Enterprise Library


Por se tratarem de bibliotecas desenvolvidas por equipes distintas, e muitas vezes isoladas, estes Application Blocks ao mesmo tempo que ajudam tambm introduzem novos problemas no ambientes de desenvolvimento como, por exemplo, falta de padronizao nas tcnicas de modelagem, duplicidade de funcionalidades, etc. Com o objetivo de por fim a estes problemas e oferecer a comunidade de desenvolvedores .NET uma soluo completa e coerente de bibliotecas, a Microsoft disponibilizou um grande pacote de Application Blocks denominado Microsoft Enterprise Library, contendo os seguintes componentes: Configuration Application Block: oferece ferramentas para o gerenciamento de configuraes em uma aplicao. Caching Application Block: permite melhor desempenho atravs da criao de cache de dados; Data Access Application Block: com certeza um dos principais Application Blocks disponibilizados. Possui um conjunto de rotinas que facilitam muito a vida do desenvolvedor na hora de executar comandos SQL. Ao contrrio do seu antecessor, possui acesso pronto a SQL Server e Oracle e grande flexibilidade para que o desenvolvedor incorpore outros SGBD. Cryptography Application Block: permite ao desenvolvedor incluir funcionalidades de criptografia e hashing em suas aplicaes; Exception Handling Application Block: permite a criao de uma poltica consistente de tratamento de excees; Logging and Instrumentation Application Block: permite ao desenvolvedor incorporar, de forma flexvel, recursos de trace de mensagens em suas aplicaes; Security Application Block: incorpora recursos de autenticao e autorizao de usurios (controle de acesso). Este Application Block j vem com tabelas (scripts a serem executados em um banco SQL Server) e uma ferramenta visual prontas para implementao de um sistema de segurana. Tambm possui flexibilidade suficiente para obter usurios e perfis de acesso a partir de sistemas existentes.

Cada um destes Application Blocks utiliza padres similares de projeto, codificao, configurao e instalao, o que torna o Enterprise Library uma biblioteca extremamente consistente e coerente. Um aspecto importante do Enterprise Library que voc no obrigado a utilizar todos os Application Blocks disponveis. possvel, por exemplo, utilizar somente o Data Access Application Blocks e o Configuration Application Blocks e abrir mo de

Apostila Visual Studio 2005

250

segurana ou cache de dados. Porm cada Application Block pode possuir dependncias entre mdulos. O Security Application Block, por exemplo, dependendo dos recursos utilizados pode exigir a distribuio conjunta do Data Access Application Block, Configuration Application Block e Cache Application Block. Alm dos Application Blocks mencionados anteriormente, o Enterprise Library tambm disponibiliza o Commom Library, que possui um conjunto de classes comum a todos os Application Blocks e, portanto, deve ser sempre distribuda com o seu aplicativo. Muitos dos Application Blocks que compem o Enterprise Library so na verdade evolues de Application Blocks j existentes. O Exception Handling Application Block, por exemplo, um sucessor do antigo Exception Management Application Block. Se voc j utilizava algum destes Application Blocks procure documentao sobre o que fazer para migrar para nova biblioteca. Uma das grandes evolues notadas nestes Application Blocks a forte adoo de testes de unidade atravs do NUnit. Ao navegar por cada biblioteca voc encontrar em pastas denominadas Tests uma grande quantidade de testes prontos. A framework NUnit tambm um pre-requisito para distribuio do Enterprise Library. Todos estes Applications Blocks so distribudos com cdigo fonte em C# e VB.NET, help e aplicaes de exemplo. O desenvolvedor pode efetuar modificaes a bel prazer, porm deve exibir a seguinte mensagem: "Contains software or other content adapted from Microsoft Enterprise Library. Original Enterprise Library 2005 Microsoft Corporation. All rights reserved." Concluso Infelizmente a resistncia de alguns desenvolvedores na utilizao de Application Blocks ainda muito grande. Muitos dizem que "se fosse to bom j faria parte da biblioteca de classes do Microsoft .NET Framework", mas se fossemos distribuir na biblioteca de classes do .NET framework tudo o que existir de bom, ento teramos que distribuir um grande elefante. Sei que no do agrado de muitos membros da comunidade .NET referencias e comparaes com o mundo Java, mas gosto muito de utilizar o Apache Group como um exemplo de bons projetos de bibliotecas. Nesta entidade existem frameworks consagradas como o Struts que, mesmo se tratando de uma lenda entre os desenvolvedores Java, no foi incorporado a biblioteca padro Java. Nos prximos artigos descreverei em detalhes cada um dos Application Blocks que compem o Microsoft Enterprise Library.

Enterprise Library 1.0 - Cryptography Application Block


O Cryptography Application Block for lanado pela Microsoft dentro de um pacoto de patterns. O Objetivo deste pattern diminuir o trabalho que temos hoje para criptografar e descriptografar valores utilizando diversos tipos de criptografias existentes. Para baixar o Enterprise Library acesse o link (http://www.microsoft.com/downloads/details.aspx?FamilyId=0325B97A -9534-4349-8038-D56B38EC394C&displaylang=en) e instale em sua mquina.

Apostila Visual Studio 2005

251

Este passo a passo no tem como objetivo explicar os diversos tipos de criptografias e nem sobre o conceito de patterns. Na prtica: Abra o Visual Studio, selecione um projeto C# com o template Windows Application. Defina um nome e um caminho para a aplicao.

O primeiro passo adicionar a referencia da DLL necessria para a utilizao do pattern. No Solution Explorer clique com o boto direito do mouse sobre references > Add Reference.

Aps aberta a janela de referncia, clique em Browse e selecione as DLLs que esto dentro da pasta Bin no diretrio que estiver instalado o Entreprise Library: Microsoft.Practices.EnterpriseLibrary.Security.Cryptography.DLL Microsoft.Practices.EnterpriseLibrary.Configuration.DLL Aps adicionar as referncias, monte um formulrio conforme abaixo:

Apostila Visual Studio 2005

252

Adicione o namespace: using Microsoft.Practices.EnterpriseLibrary.Security.Cryptography; Declare uma varivel pblica com o tipo de criptografia public string tipo= "RC2CryptoServiceProvider" RC2CryptoServiceProvider o tipo de criptografia que escolhi. O primeiro TextBox ser o valor a ser criptografado, o valor criptografado ser exibido no TextBox2 e o terceiro TextBox3 ter o valor inicial. Para isso de um duplo clique sobre o boto Cript e digite o seguinte cdigo: private void button1_Click(object sender, System.EventArgs e) { textBox2.Text = Cryptographer.EncryptSymmetric(tipo, textBox1.text); } No boto Decript digite o seguinte cdigo: private void button2_Click(object sender, System.EventArgs e) { textBox3.Text = Cryptographer.DecryptSymmetric(tipo, textBox2.text); } Pronto, at agora nada demais, agora que vem o grande detalhe. Os patterns so totalmente baseados em arquivos de configurao, alguns muito complexos. O Enterprise Library traz um software que gera esses arquivos. Primeiro adicione um arquivo app.config vazio no projeto. No Solution Explorer clique com o boto direito do mouse sobre o projeto > add > add new item, selecione Application Configuration. V no menu Iniciar > Programas > Microsoft patterns & practices e Enterprise Library Configuration. O software aberto:

Apostila Visual Studio 2005

253

Deve ser criado um novo projeto, clique em File > New Application:

Clique com o boto direito do mouse sobre Application1 > New > Cryptography Application Block.

Apostila Visual Studio 2005

254

Clique com o boto direito do mouse sobre Symmetric Providers > New > Symmetric Algorithm Provider > RC2CryptoServiceProvider. Na prxima janela poderamos escolher uma chave para criptografia mas neste caso clique somente em OK.

Apostila Visual Studio 2005

255

Pronto agora salve e no caminho sobrescreva o arquivo App.Config da aplicao. Para testar copie os arquivos de configurao App.Config e securityCryptographyConfiguration.config dentro da pasta Bin. Execute a aplicao:

Teste a aplicao e note que os dados so criptografados e descriptografados.

Apostila Visual Studio 2005

256

Macros no Visual Studio


As macros auxiliam muito no ganho de produtividade. Sua criatividade a chave para obter grandes resultados. Quando voc precisa repetir inmeras vezes uma tarefa, o melhor a fazer usar Macro comandos do Visual Studio .NET que gera essa automatizao. Um bom exemplo de quando podemos utilizar as macros na criao de Formulrios. Para iniciar uma gravao de macro (existem vrias formas de se fazer isso) execute as seguintes etapas: 1) Tools/ Macros / Record TemporaryMacro/ ou pressione Ctrl+Shift+R.

2) Neste momento execute a tarefa que se tornar repetitiva. Por exemplo, arraste duas caixas texto, um boto e um DataGrid. 3) Quando terminar a operao v para Tools / Macros / Stop Recording

Apostila Visual Studio 2005

257

4) Para executar sua macro v para Tools / Macros / Rum TemporaryMacro Macro Explorer Clicando em Tools / Macros / Macros Explorer ou pressionando Alt+F8. Ser exibida a janela do Macro Explorer.

As macros so organizadas de uma forma hierrquica. Elas so organizadas em projetos, mdulos e macros. Editar uma Macro Clique com o boto direito sobre uma macro e clique em Edit , ser aberto o IDE da Macro. Neste momento voc passa a trabalhar com instncias do Visual Studio.

Apostila Visual Studio 2005

258

Voc pode obter maiores informaes sobre macros em: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vsintro7/html/vxlrfdteobject.asp

Apostila Visual Studio 2005

259

VSTO - Visual Studio Tools for Office


Se voc criar aplicativos de negcios que coletar, analisar, manipular ou apresentar informaes, voc poder aproveitar sobre a funcionalidade do Microsoft Office 2003 robusta. Incorporando Rich aplicativos cliente / lado em sua soluo de negcios, poder usar a energia disponvel em cada rea de trabalho e habilitar usurios finais para trabalhar em um ambiente familiarizado. Pode Microsoft Visual Studio 2005 Tools for the Microsoft Office System ajud-lo tirar proveito dos aprimoramentos de produtividade no para estender Microsoft Office Word 2003, Microsoft Office Excel 2003, e Microsoft Office Outlook 2003 usando Visual Basic e Visual C#.. o Microsoft .NET Framework verso 2.0 As ferramentas incluem novos projetos do Visual Studio para ajud-lo Iniciar criao personalizaes para aplicativos do Office. Para obter as informaes mais recentes sobre programao do Office, o Microsoft Office Developer Center (http://msdn.microsoft.com/office). Este site contm links para artigos tcnicos, exemplos de cdigo, downloads, informaes da comunidade, Suporte, e outra documentao do MSDN sobre como criar solues personalizadas do Office.

Introduo (Ferramentas do Visual Studio do Office)


Esta seo o ajudar a comear a usar Microsoft Visual Studio 2005 Tools for the Microsoft Office System para desenvoltar solues que se beneficiam do Microsoft Office 2003. O Microsoft Office 2003 oferece uma plataforma que oferece muitas possibilidades para desenvolvimento de aplicativos usando cdigo gerenciado com o Microsoft Office Word 2003, o Microsoft Office Excel 2003, e o Microsoft Office Outlook 2003. O Visual Studio e o Microsoft .NET Framework fornecem Rapid Development (RAD) Application recursos que facilitam a programao comear a criar solues-baseado no Office para atender uma variedade de necessidades comerciais.

O que h de novo no Ferramentas do Visual Studio do Office


Inclui Microsoft Visual Studio 2005 Tools for the Microsoft Office System Novos recursos nas seguintes reas:

Sistema do projeto Designer Visual Controles O Outlook suporte Add-ins Suporte painel Aes Suporte marcas inteligentes

Apostila Visual Studio 2005

260

Programao do lado do servidor Dados de cache Implantao

Para um papel branco que fornece um tour guiado atravs de muitos dos recursos, What ' s New no Visual Studio 2005 Tools for Office (http://go.microsoft.com/fwlink/).

Sistema do projeto
Os modelos de projeto esto localizados sob os projetos do Visual Basic e Visual C# pastas projetos, em uma subpasta chamada Office.

Um novo modelo de projeto para modelos do Microsoft Office Excel 2003 foi adicionado. Para obter mais informaes, Modelo do projeto de modelo do Excel. Um novo modelo de projeto para projetos do Microsoft Office Outlook 2003 foi adicionado. Para obter mais informaes, Modelo Project add-in do Outlook. O Excel no tem apenas um arquivo de cdigo para a pasta de trabalho. Existem arquivos de cdigo separado para cada planilha, e outro para a pasta de trabalho. Microsoft Office Word 2003 tem um arquivo de cdigo para o documento ou modelo. Para obter mais informaes, Oculta arquivos do Project no Solution Explorer.

Designer Visual
Excel e Word documentos e modelos abrir dentro do Visual Studio, como uma superfcie de design visual. Voc pode criar seu documento e escrever cdigo por trs dele para o mesmo ambiente. Para obter mais informaes, Documentos do Office em Viso geral de ambiente Visual Studio.

Controles
Do Toolbox voc pode arrastar controles normais do Visual Studio em seu documento. Para obter mais informaes, Controles Forms Windows em OverView documentos do Office. Voc tiram proveito dos novos controles, chamados controles host, que estendem alguns dos objetos incorporados do Office. Esses objetos agora expe eventos e ter capacidade de ligao de dados. Para obter mais informaes, Itens host e OverView de controles host.

O Outlook suporte Add-ins


Um modelo de projeto est disponvel para ajud-lo a criar o Microsoft Office Outlook 2003 Add-ins. Para obter mais informaes, Guia de Introduo Programao para Outlook.

Suporte painel Aes


Suporte est disponvel para adicionar um painel Aes ao seu documento facilmente. Para obter mais informaes, Viso geral painel Aes.

Suporte marcas inteligentes


Suporte est disponvel para adicionar marcas inteligentes ao seu documento facilmente. Para obter mais informaes, Viso geral sobre marcas inteligentes.

Apostila Visual Studio 2005

261

Programao de dados
Voc pode programar contra os dados em seus documentos do Office sem que seja necessrio usar o modelo de objeto do aplicativo do Office. Para obter mais informaes, Viso geral do modelo de dados.

Programao do lado do servidor


Voc pode acessar e manipular os dados em um documento do Office em um servidor sem iniciar o aplicativo do Office. Para obter mais informaes, Lado servidor-acesso a dados no OverView documentos.

Dados de cache
Dados podem ser armazenados em uma ilha de dados XML anexada ao documento do Office, para que os dados podem ser usados off-line ou em um servidor. Para obter mais informaes, Viso geral do modelo de dados e Como dados de cache para uso off-line ou em um servidor:.

Implantao
Implantao agora usa aplicativos e implantao manifests para tornar mais fcil para atualizar solues. Para obter mais informaes, Implantando o Word e Excel Solutions.

Como instalar Ferramentas do Visual Studio para Office:


Est Microsoft Visual Studio 2005 Tools for the Microsoft Office System Disponvel para instalar por si s como um ambiente de desenvolvimento concluda. Tambm includo como parte dos produtos Microsoft Visual Studio 2005 Team System. A pr-requisitos e etapas de instalao so diferentes dependendo se voc instalar Visual Studio Tools for Office como um produto independente ou como parte da Visual Studio Team System. Para obter informaes sobre como configurar computadores usurio final para executar Visual Studio Tools for Office solues, Como se preparar computadores de usurio final para executar solues do Office:.

O Visual Studio 2005 Tools for Office Os seguintes softwares necessria para instalar Visual Studio Tools for Office por si s: Uma das seguintes edies do Microsoft Office 2003. Service Pack 1 (SP1) tambm necessria com qualquer edio voc escolher. Pack servio o site 1 Office 2003 para obter mais informaes sobre o SP1, (http://go.microsoft.com/?LinkID=762292). Service Packs posteriores so recomendadas.
o o o o o

Microsoft Office Professional Edio 2003. Microsoft Office Enterprise Professional Edition 2003. Microsoft Office Excel 2003. O Microsoft Office Word 2003. Microsoft Office Outlook 2003.*

Apostila Visual Studio 2005

262

o o

Avaliao do Microsoft Office Professional Edio 2003. Avaliao 2003 Enterprise Edition Microsoft Office System.

No h suporte para *The Verso do Outlook que est includo com licenas de acesso do cliente Microsoft Exchange Server. Os Office 2003 primrio conjuntos interoperabilidade instalados no Cache de Conjunto Global do Windows (GAC),. Para obter mais informaes, Como: Instalar assemblies de interoperabilidade primrio do Office e Primrio conjuntos Interop do escritrio.

Basic visual for Applications (VBA) deve ser instalado como parte do Office.

Alm disso, para os requisitos de hardware e sistema especificados pelo Microsoft Office, Visual Studio Tools for Office requer o seguinte: omponente Processador Memria RAM equisito Processador de 600 MHz Recomendvel: processador
1

1 gigahertz (GHz)

256 MB para as ferramentas de design, 192 MB para o Visual Studio Tools for Office Runtime Recomendvel: 512 MB 1 Sem MSDN: 1 GB de espao disponvel necessrio na unidade 2 do sistema Necessrios 2 GB de espao disponvel na unidade de instalao Com MSDN: Necessrio 1 GB de espao disponvel na unidade do sistema Necessrios 3.8 GB de espao disponvel na unidade de instalao com uma instalao completa do MSDN Necessrios 2,8 GB de espao disponvel na unidade de instalao com uma instalao padro do MSDN Windows 2000 Service Pack 4, Windows XP Service Pack 2, Windows Server 2003 Service Pack 1, ou verses 3,4 posteriores Para um computador de 64 bits, os requisitos so: Edies do Windows Server 2003 Service Pack 1 x64 Windows XP Professional x64 Edition Necessrio
5

Espao de disco rgido disponvel

Sistema operacional

Unidade de CD-ROM ou DVD-ROM Vdeo Mouse

800 x 600, 256 cores 1024 X 768, High Color 16-bits recomendados: Mouse Microsoft ou dispositivo apontador compatvel

Desempenho 1 no tem sido ajustado para configurao mnimos do sistema. Aumentar sua memria RAM acima da configurao do sistema recomendada

Apostila Visual Studio 2005

263

aumentar o desempenho, especificamente quando executando vrios aplicativos, trabalhando com projetos grandes, ou desenvolvendo no nvel empresarial (Enterprise). Quando 2 voc inicia o instalador Visual Studio, o local de instalao padro a sua unidade do sistema, que a unidade que inicializa o sistema. Entretanto, voc pode instalar o aplicativo em qualquer unidade. Independentemente do local do aplicativo, o processo de instalao instala alguns arquivos na unidade do sistema. Conseqentemente, garantir que a quantidade de espao acima esteja disponvel na unidade do sistema, independentemente do local do aplicativo, e garantir que espao adicional, como listado acima, esteja disponvel na unidade em que voc instalar o aplicativo. Windows 3 XP Home no oferece suporte local desenvolvimento de aplicativos da Web; o desenvolvimento de aplicativos da Web local s suportado nas verses Professional ou Server do Windows. Microsoft suporte.
4

Windows 2000 Datacenter Server no um sistema operacional com

o 5 tipo de mdia fornecida com o produto determina se um CD-ROM ou DVD-ROM necessria.

Para configurar as ferramentas de design no computador de desenvolvimento


Instalar o Office, incluindo os conjuntos de interoperabilidade primrias. Para obter mais informaes, Como: Instalar assemblies de interoperabilidade primrio do Office. Instalar o SP1 Office 2003 ou posterior. Pack servio o site 1 Office 2003 para obter mais informaes, (http://go.microsoft.com/?LinkID=762292). 1. Instalar Visual Studio Tools for Office. Se voc tiver uma verso em ingls do Visual Studio mas usar configuraes diferentes de ingls para Windows, instale o Visual Studio Tools for Office Pacote de idioma para ver Visual Studio Tools for Office Mensagens Runtime no mesmo idioma como o Windows. O Visual Studio Tools for Office Pacote de idioma est disponvel no Centro de Download da Microsoft (http://www.microsoft.com/downloads). Verses no-ingls do Visual Studio Tools for Office instalam automaticamente o pacote de idioma.

Produtos System Team Studio Visual


Est Visual Studio Tools for Office disponvel em qualquer um dos seguintes Visual Studio Team System Produtos:

Visual Suite Team Studio. Microsoft Visual Studio 2005 Team Edition for Software Architects Microsoft Visual Studio 2005 Team Edition for Software Developers Microsoft Visual Studio 2005 Team Edition for Software Testers

Os seguintes softwares necessrio para usar Visual Studio Tools for Office, que instalado por padro como parte do Visual Studio Team System:

A linguagem Visual Basic e / ou a linguagem Visual C#.

Uma das seguintes edies do Microsoft Office 2003. Service Pack 1 (SP1) tambm necessria com qualquer edio voc escolher. Pack servio o site 1 Office 2003

Apostila Visual Studio 2005

264

para obter mais informaes sobre o SP1, (http://go.microsoft.com/?LinkID=762292). Service Packs posteriores so recomendadas.
o o o o o o o

Microsoft Office Professional Edio 2003. Microsoft Office Enterprise Professional Edition 2003. Microsoft Office Excel 2003. O Microsoft Office Word 2003. Microsoft Office Outlook 2003.* Avaliao do Microsoft Office Professional Edio 2003. Avaliao 2003 Enterprise Edition Microsoft Office System.

No h suporte para *The Verso do Outlook que est includo com licenas de acesso do cliente Microsoft Exchange Server. Os Office 2003 primrio conjuntos interoperabilidade instalados no Cache de Conjunto Global do Windows (GAC),. Para obter mais informaes, Como: Instalar assemblies de interoperabilidade primrio do Office e Primrio conjuntos Interop do escritrio.

Basic visual for Applications (VBA) deve ser instalado como parte do Office.

Para configurar as ferramentas de design no computador de desenvolvimento


Instalar Office 2003, incluindo os conjuntos de interoperabilidade primrias. Para obter mais informaes, Como: Instalar assemblies de interoperabilidade primrio do Office. Instalar o SP1 Office 2003 ou posterior. Pack servio o site 1 Office 2003 para obter mais informaes, (http://go.microsoft.com/?LinkID=762292). 1. Instalar o Visual Studio Team System produto, incluindo e / linguagem de programao Visual Basic ou Visual C#. Visual Studio Tools for Office instalado por padro com a instalao de / Visual Basic ou Visual C#. Se voc tiver uma verso em ingls do Visual Studio mas usar configuraes diferentes de ingls para Windows, instale o Visual Studio Tools for Office Pacote de idioma para ver Visual Studio Tools for Office Mensagens Runtime no mesmo idioma como o Windows. O Visual Studio Tools for Office Pacote de idioma est disponvel no Centro de Download da Microsoft (http://www.microsoft.com/downloads). Verses no-ingls do Visual Studio instalam automaticamente o pacote de idioma. Se voc instalar o Visual Studio Team System produto antes de instalar o Office, voc deve corrigir o Visual Studio Tools for Office Runtime, executando VSTOR.exe. Para obter mais informaes, Como instalar o Ferramentas do Visual Studio para Runtime Office:.

Guia de Introduo
Use os exemplos a seguir para familiarizar-se com Visual Studio Tools for Office. Como: Exibir uma seqncia em uma clula de planilha Coleta de dados usando um formulrio do Windows Walkthrough:

Apostila Visual Studio 2005

265

Exibindo texto em uma caixa de texto em um documento usando um boto Walkthrough: Como criar Ferramentas do Visual Studio para projetos do Office:

Como instalar o Ferramentas do Visual Studio para Runtime Office:


Tempo de execuo um pr-requisito que deve ser instalado no computador de cada usurio final antes uma Microsoft Visual Studio 2005 Tools for the Microsoft Office System soluo seja executado. Tempo de execuo tambm deve ser instalado em qualquer servidor onde Visual Studio Tools for Office cdigo executado. No necessrio para instal-lo no computador de desenvolvimento, porque o tempo de execuo est instalado automaticamente quando voc instala Visual Studio Tools for Office. Observao Voc deve ser um administrador no computador para instalar o Visual Studio Tools for Office Runtime. Voc no precisa instalar aplicativos do Microsoft Office em computadores que voc instalar o Visual Studio Tools for Office Runtime no. Por exemplo, voc pode instalar o tempo de execuo em um servidor e use o ServerDocument objeto para acessar arquivos de documento Se voc fazer precisar aplicativos do Office no computador, instale-los antes de instalar o Runtime. Se voc instalar Office aps a instalao tempo de execuo, voc deve executar VSTOR.exe novamente e reparar a instalao

Para instalar o Runtime


1. Do .NET Framework 2.0 instalar no computador do usurio final. O .NET Framework necessrio antes de instalar o Visual Studio Tools for Office Runtime. 2. Execute VSTOR.exe no computador do usurio final. VSTOR.exe est na mdia Visual Studio Tools for Office de instalao, e tambm est disponvel como um pacote redistribuvel no Centro de Download da Microsoft). (http://go.microsoft.com/fwlink/?linkid=49612&clcid=0x409 Os pr-requisitos para o Visual Studio Tools for Office Runtime so os mesmos que os pr-requisitos para o .NET Framework. Se voc tiver configuraes diferentes de ingls para Windows, instale o Visual Studio Tools for Office Pacote de idioma para ver Visual Studio Tools for Office Mensagens Runtime no mesmo idioma como o Windows. Se nenhum usurio final executar suas solues com configuraes diferentes de ingls para Windows, preciso que o pacote de idioma para ver mensagens Runtime no mesmo idioma como o Windows. O Visual Studio Tools for Office Pacote de idioma est disponvel no Centro de Download da Microsoft (http://www.microsoft.com/downloads).

Como: Instalar assemblies de interoperabilidade primrio do Office


Apostila Visual Studio 2005 266

Instale os Microsoft Office 2003 primrio conjuntos interoperabilidade no cache de conjunto global (GAC) antes de criar ou executar uma Microsoft Visual Studio 2005 Tools for the Microsoft Office System soluo. Os conjuntos de interoperabilidade Ativar cdigo gerenciado para interagir com modelo de objeto baseado em com um aplicativo do Office. Os conjuntos de interoperabilidade primrias automaticamente so instalados durante uma instalao completa do Office se o Microsoft .NET Framework 1.1 ou posterior estiver instalado. Voc pode optar para instal-los durante uma instalao Personalizada seguindo o procedimento abaixo, comeando com a etapa 5. Durante a instalao tpica do Office, os conjuntos de interoperabilidade primrias so configurados para ser instalado no primeiro uso se o .NET Framework estiver instalado. Esta opo de instalao funciona em computadores de desenvolvimento durante a criao do projeto e em computadores usurio final quando um usurio final executar uma soluo Office. As montagens interoperabilidade primria para produtos Office 2003 esto disponveis em um pacote Microsoft Windows Installer redistribuvel. Este pacote est disponvel para download no Centro de Download da Microsoft (http://www.microsoft.com/downloads/details.aspx?FamilyId=3C9A983A-AC144125-8BA0-D36D67E0F4AD&displaylang=en). No h primrio conjuntos de interoperabilidade que so necessrios para a maioria das Visual Studio Tools for Office solues seis. Se voc instalar os conjuntos de interoperabilidade primrias manualmente, certifique-se que voc inclua estes:

Microsoft Office Excel 2003 O Microsoft Office Word 2003 Microsoft Office Outlook 2003 O Microsoft Forms 2.0 (em Office Tools) Marcas Inteligentes (em Office Tools) O Microsoft Graph (em Office Tools)

Observao Quando voc adiciona esses conjuntos, montagens referenciadas, como Office.dll e Microsoft.VBE.Interop.dll sero adicionadas automaticamente. Somente as opes conjunto de mdulos (assembly) de interoperabilidade primria, chamadas .NET Programmability Support na instalao do Office, sero exibidas se o Microsoft.NET Framework 1.1 ou posterior j estiver instalado no computador. O Microsoft .NET Framework instalado com Visual Studio, ou est disponvel para download no Microsoft .NET Framework Developer Center). (http://msdn.microsoft.com/netframework/downloads/Updates/default.aspx?_r=1

Para instalar conjuntos de interoperabilidade primrias Office 1. No Control Panel, escolha Add or Remove Programs. 2. Selecione Microsoft Office na lista Currently installed programs. 3. Clique em Change. 4. Selecionar Add or Remove Features, e, em seguida clique em Next.

Apostila Visual Studio 2005

267

5. Selecionar Choose advanced customization of applications, e, em seguida clique em Next. 6. Expanda Microsoft Office Excel, clique na caixa prxima ao .NET Programmability Support, e clique em Run from My Computer. 7. Expanda Microsoft Office Outlook, clique na caixa prxima ao .NET Programmability Support, e clique em Run from My Computer. 8. Expanda Microsoft Office Word, clique na caixa prxima ao .NET Programmability Support, e clique em Run from My Computer. 9. Expanda Office Tools, clique na caixa prxima ao Microsoft Forms 2.0 .NET Programmability Support, e clique em Run from My Computer. 10.Em Office Tools, clique na caixa prxima ao Smart Tag .NET Programmability Support, e clique em Run from My Computer 11.Em Office Tools, expanda Microsoft Graph, clique na caixa prxima ao .NET Programmability Support, e clique em Run from My Computer. 12.Siga o mesmo procedimento para instalar primrio conjuntos interoperabilidade para qualquer outros aplicativos do Office voc deseja. 13.Clique em Update. Os conjuntos de interoperabilidade primrias so instalados na cache de conjunto global.

Viso geral do Office Solutions Development


Os desenvolvedores podem usar aplicativos Microsoft Office 2003 como uma plataforma para criar solues personalizadas. Com o Office, os desenvolvedores podem aproveitar de um conjunto de funcionalidade Pre-Built Rich. Ao usando Microsoft Office Word 2003, Microsoft Office Excel 2003, ou Microsoft Office Outlook 2003 como front-end para solues, o desenvolvedor pode tirar proveito das interfaces do usurio familiarizado e poderosas ferramentas, como ortogrfica verificar, suporte multilnge, controle alteraes, suporte a email, e relatrios de tabela dinmica. Outro benefcio para solues Word e Excel uso da parte do lado do cliente da soluo, que torna solues complexas mais vivel que eles deve estar usando uma arquitetura baseada na Web off-line. Para obter informaes gerais sobre desenvolvimento com o Office, Gerenciado cdigo e Programao do Office com o Visual Studio, o Microsoft Office Developer Center) e no Centro de suporte de desenvolvimento do Office (http://msdn.microsoft.com/office/ (http://support.microsoft.com/directory/content.asp?PR=ofd&FR=0&SD=MSDN&LN =EN-US.),

O Visual Studio 2005 Tools para o sistema Microsoft Office


ajuda Microsoft Visual Studio 2005 Tools for the Microsoft Office Systna criar solues, estendendo Word 2003 documentos e pastas de trabalho do Excel 2003, e criando Add-ins para Outlook 2003 usando o Visual Basic e Visual C#. Inclui Visual Studio Tools for Office novos projetos do Visual Studio para criar cdigo de documentos do Word, os modelos do Word, pastas de trabalho do Excel, modelos do Excel, e Outlook Add-ins. Os projetos conter:

Apostila Visual Studio 2005

268

Referncias a primrias conjuntos de interoperabilidade dos principais para o projeto.


Referncias a necessrio componentes do sistema. Projeto de inicializao.

Definies de segurana que permitem aos desenvolvedores para comear rapidamente. ajuda Visual Studio Tools for Office a criar solues rapidamente por tirar vantagem dos recursos nativos de cada aplicativo, e fornecer as seguintes vantagens.

Cdigo para trs Word e Excel gerenciados


Inclui Visual Studio Tools for Office projetos do Visual Studio para ajud-lo a escrever cdigo gerenciado no Visual Basic e C# por trs do Word e Excel, usando o ambiente Visual Studio. Seu cdigo responde a eventos que ocorrem no documento ou pasta de trabalho. Para obter mais informaes, Arquitetura do Ferramentas do Visual Studio para solues do Office.

Gerenciado suporte Add-ins para Outlook


Um modelo de projeto est disponvel para ajud-lo a criar usando cdigo gerenciado no Visual Basic e C# Outlook Add-ins. Para obter mais informaes, Guia de Introduo Programao para Outlook.

Implantao e manuteno
Solues do Office que usam extenses pode ser implantado ao armazenar o cdigo compilado (e possivelmente o documento) em um local compartilhado para fcil manuteno, ou ao distribuir cpias da montagem e documento para cada usurio para acomodar mvel trabalhar estilos cdigo gerenciado. Para obter mais informaes, Modelos de implantao.

Segurana
Segurana imposta usando os recursos de segurana fornecidos pelo Microsoft .NET Framework. A diretiva padro para conjuntos criado usando Visual Studio Tools for Office no permite qualquer conjunto para execuo que ajuda a proteger os usurios contra vrus e outros cdigos mal-intencionados. Antes que os usurios finais possam ter vantagem de extenses cdigo gerenciado de um documento, o administrador deve explicitamente conceder confiana total ao conjunto. Para obter mais informaes, Segurana em solues do Office.

Acesso offline no Word e Excel


Voc pode implantar cpias locais dos tanto o documento e o conjunto para cada usurio quando o acesso offline importante. Como alternativa, voc pode implantar um conjunto para um local de rede que seja acessvel a todos os documentos por um endereo da Web (http:// ou https://), que permitir funcionalidade Internet Explorer armazenar em cache o conjunto no computador local. Para obter mais informaes, Modelo do Word e Excel Solutions off-line.

Modelos de objeto do Office


Programaticamente poder acessar os recursos de aplicativos Office escrevendo cdigo que atinge um aplicativo modelo de objeto, um processo conhecido como

Apostila Visual Studio 2005

269

Automao. Modelos de objeto so uma disposio de classes que expem funcionalidade atravs de vrias propriedades e mtodos. O modelo de objeto para cada aplicativo do Office diferente e deve ser obtidos antes cdigo automao pode ser gravado. Para obter informaes sobre classes e objetos, Para objetos plantas classes:.

Assemblies de Interoperabilidade Primrios


Para chamar recursos do aplicativo do Office usando cdigo gerenciado, use um conjunto de interoperabilidade. Um conjunto de interoperabilidade permite cdigo gerenciado para interagir com modelo de objeto baseado em com um aplicativo do Office. Qualquer nmero de conjuntos de interoperabilidade pode existir que descrevem um determinado tipo COM, e mesmo Visual Studio gera um para voc que tem funcionalidade bsica. No entanto, somente um conjunto interoperacional rotulado Conjunto de Mdulos (Assembly o) de interoperabilidade primria (PIA), que contm a descrio dos tipos com oficial conforme definido pelo editor da biblioteca de tipos. O conjunto de mdulos (assembly) de interoperabilidade primria pode conter determinadas personalizaes que tornam os tipos fcil para usar a partir de cdigo gerenciado. melhor para usar um conjunto de interoperabilidade primrio se estiver disponvel, em vez de relying em um conjunto de interoperabilidade de outra fonte. Para obter mais informaes sobre conjuntos de interoperabilidade primrias, Assemblies de Interoperabilidade Primrios e o artigo MSDN, " primrio conjuntos Interop " (PIAs)). (http://msdn.microsoft.com/library/default.asp?url=/library/enus/dndotnet/html/whypriinterop.asp

Documentos do Office em Viso geral de ambiente Visual Studio


Trabalhar com documentos Microsoft Visual Studio 2005 Tools for the Microsoft Office System do Microsoft Office 2003 muito semelhante a trabalhar com Windows Forms. Quando voc iniciar um Visual Studio Tools for Office projeto, o documento do Office (documento do Microsoft Office Word 2003 ou pasta de trabalho do Microsoft Office Excel 2003) abre dentro do Visual Studio, e o documento se comporta como um criador visual.

Superfcie de design
H dois modos no designer: Design exibio e exibio de cdigo. Algumas das funcionalidades dessas duas exibies o mesmo no importa qual Office aplicativo estiver aberto no ambiente Visual Studio. Algumas funcionalidades depende se o Word ou Excel est aberto no momento.

O Modo Design
Modo de design o modo grfico do documento e aplicativo. O documento do Office aberto no designer. O designer permite-lhe acessar os menus do Office e barras de ferramentas e criar o documento sem que seja necessrio ir fora do ambiente do Visual Studio. Word e Excel os menus so mesclados com os menus Visual Studio, mas as barras de ferramentas esto no designer logo acima do documento.

Apostila Visual Studio 2005

270

Voc pode editar e modificar um documento ou pasta de trabalho usando a funcionalidade do aplicativo do Office nativo, por exemplo usando Undo, gravar frmulas do Excel, e usando o Find recurso do Office. Voc tambm pode usar as janelas ferramenta Visual Studio e editores para personalizar o documento ou pasta de trabalho usando cdigo gerenciado. Mapeamento de atalho de teclado padro ser o mapeamento Visual Studio, mas voc pode incluir mapeamentos Office alterando a configurao na caixa Options de dilogo no menu Tools, sob o Microsoft Office Keyboard Settings n. Voc pode arrastar e soltar um controle de caixa de ferramentas para a superfcie de design de documento, Visual Studio e modificar as propriedades de controle utilizando a Properties janela. Duas vezes o controle ser aberto o modo cdigo com um manipulador de eventos gerado automaticamente. Os controles que no so visveis no documento aparecem no bandeja de componentes durante o tempo de design. Word e Excel tm um modo de design que permite personalizaes que no podem ser executadas durante o modo Run-Time normal. Quando um documento est aberto no ambiente do Visual Studio, sempre em modo de design. Para exibir o documento no modo de tempo de execuo, voc deve abrir o aplicativo e o documento fora do Visual Studio. Voc tambm pode criar e executar o projeto, que ser aberta automaticamente o documento e o aplicativo fora do Visual Studio.

Code View
O editor de cdigo associado com o documento no designer o mesmo como o editor de cdigo voc encontrar atrs Windows Forms Para obter mais informaes, Cdigo e editor de texto.

Excel
Cada planilha Excel tem uma exibio de design que ser uma planilha normal, e exibio de design do pasta de trabalho um grande bandeja de componentes que preenchem o designer. As guias de planilha aparecem na parte inferior das planilhas, e voc pode navegar de uma para outra clicando nas guias como voc faria no Excel. H tambm um arquivo de cdigo associado com cada planilha e com a pasta de trabalho. Quando voc escreve cdigo por trs de uma planilha ou pasta de trabalho, seu cdigo local para esse objeto. No entanto, voc pode acessar os outros objetos, usando Globals em seu cdigo. Para obter mais informaes, Global acesso a objetos no documento. Quando voc clica duas vezes em uma clula de planilha normal, a clula alterna para modo de edio. Quando voc clica duas vezes em uma clula que contm um controle host, abre o editor de cdigo e o manipulador de eventos padro gerado. Para obter mais informaes sobre controles host, Itens host e OverView de controles host.

O Word
No modo apenas uma estrutura para documentos do Word, que o documento em si. Quando voc clica duas vezes na superfcie do documento, o cursor move para esse local como de costume no Word. Da mesma forma, quando voc clicar duas vezes uma palavra, essa palavra selecionada. No entanto, se a palavra est dentro um controle host, abre o editor de cdigo e o manipulador de eventos

Apostila Visual Studio 2005

271

padro para o controle ser gerado. Para obter mais informaes sobre controles host, Itens host e OverView de controles host.

Barras de ferramentas
Barras de ferramentas do Word e Excel aparecerem entre o designer e so totalmente funcional. O conjunto e o layout de barras de ferramentas o mesmo como quando voc abrir o Word e Excel fora do Visual Studio Dentro do ambiente do Visual Studio: Voc pode adicionar e remover barras de ferramentas usando o View menu ou por com o boto direito do mouse barra de ferramentas do designer.

No possvel ancorado barras de ferramentas do Word e Excel para o conjunto de barras de ferramentas Visual Studio. Voc no pode personalizar Layout de ferramentas dentro de um grupo da barra de ferramentas, pressionando a tecla ALT, e selecionando o controle e mov-la. Personalizao da barra de ferramentas, como adicionar, remover, ou movendo lasts barras de ferramentas apenas, desde que a janela personalizada seja aberta. As personalizaes desapareceram da prxima vez o mesmo documento, ou qualquer outro documento, aberto. Quando um documento for aberto, as configuraes da barra de ferramentas so idnticas s configuraes do aplicativo autnomo.

Voc no pode mover comandos de ferramentas para os menus.

Solution Explorer
Voc usar Solution Explorer da mesma maneira como voc faria em outros tipos de projetos, como Windows Forms. Algumas dos itens adicionados para Visual Studio Tools for Office projetos incluem: Referncias ao Office 2003 e os conjuntos de interoperabilidade primrias. Esses somente aparecem Solution Explorer em projetos C#; em Visual Basic, so listados nas propriedades do projeto.

O documento.

Para o Excel, cada planilha e grfico aparece como um item separado em Solution Explorer. Alguns arquivos esto ocultos. Para exibir esses arquivos, clique no Show All Files boto. Para obter mais informaes, Oculta arquivos do Project no Solution Explorer. Planilhas ocultas aparecem no Solution Explorer, mas no no designer. Para obter mais informaes, Planilhas ocultas. Voc pode adicionar outros itens do projeto regular, como Windows Forms, arquivos de cdigo, e assim por diante. Para obter mais informaes sobre o Solution Explorer, Usando o Solution Explorer.

Janela Properties
A Properties janela exibe propriedades para os itens do projeto code-behind e para os itens de projeto no designer, como controles e o documento em si. Algumas propriedades so especficas para o aplicativo e documento, e algumas propriedades so os mesmos em todos os projetos.

Apostila Visual Studio 2005

272

Janela de fontes de dados


Assim como com Windows Forms, voc pode usar a nova Data Sources janela em seu Visual Studio Tools for Office Projetos para arrastar e soltar uma fonte de dados em seu documento e incluir automaticamente um controle que est acoplado fonte de dados Para obter mais informaes, Exibir dados em formulrios em aplicativos do Windows.

Impresso
Quando um documento do Office fica em foco, chamar o comando print a partir do menu de arquivo far aparecer dilogo impresso do aplicativo. Usando o comando de impresso de ferramentas do aplicativo no designer imprimir o documento usando as opes de impresso padro.

Menus do Office no ambiente do Visual Studio


Quando voc abre um documento dentro do Visual Studio, o ambiente do aplicativo Microsoft Office Word 2003 e Microsoft Office Excel 2003 integrado ao Designer Visual Studio. Voc pode trabalhar com os recursos de cada aplicativo para criar o aspecto de seu documento ao mesmo tempo que voc escrever cdigo gerenciado estender seus recursos. Os menus que pertencna Word ou Excel mesclar com os menus Visual Studio, e so acessveis na barra de menu Visual Studio.

Itens de menu do Office


Voc deve selecionar o documento para que ele foco antes do Word ou Excel itens de menu aparecem nos menus Visual Studio. No se outra parte do Visual Studio tiver foco, por exemplo Solution Explorer ou na Properties janela, os itens de menu de documento do Office esto disponveis. Alguns menus, como Tools contiver muitos itens que so importantes para ter disponvel para o Visual Studio e Office ao mesmo tempo e View,. Para facilitar navegao Menu, os itens de menu do Office so todos colocados em um submenu separado, acessvel pela parte superior do menu Visual Studio correspondente. Outros menus, como File, apenas apresentar determinadas opes que pode ser executada dentro do ambiente do Visual Studio, e no faa todos os itens de menu do Office disponveis. Se uma tecla de atalho menu duplicada na barra de menus Visual Studio e Office, voc pode alternar entre eles, mantendo pressionada a tecla ALT e pressionar a letra de atalho repetidamente. No possvel personalizar os menus do Word e Excel enquanto no ambiente do Visual Studio. O aspecto menus mescladas ligeiramente diferente a partir dos menus Visual Studio e Office normal. Isso ocorre porque menus mescladas no podem apresentar a aparncia personalizada que Visual Studio e do Office so capazes de apresentar.

Menus de atalho
Menus de Atalho fornecidos pelo aplicativo do Office esto disponveis quando o documento est aberto para o ambiente Visual Studio com a adio de um View Code item de menu de atalho que abre o editor de cdigo.

Mapeamento de atalhos do teclado


Mapeamento de atalho de teclado padro ser o mapeamento Visual Studio, mas voc pode incluir mapeamentos Office alterando a configurao na caixa Options de

Apostila Visual Studio 2005

273

dilogo no menu Tools. A configurao sob o Microsoft Office Keyboard Settings n, em Microsoft Office Excel Keyboard ou Microsoft Office Word Keyboard. Tambm Visual Studio Tools for Office adiciona uma barra de ferramentas para o Visual Studio com um boto que permite que voc para alternar entre as opes de mapeamento. L Switch to Excel Keyboard Scheme o texto dica de ferramenta ou Switch to Visual Studio Keyboard Scheme, dependendo de qual opo est habilitada no momento. Quando voc definir essa opo na caixa Options de dilogo, ela se torna o padro para todos os projetos. No entanto, qualquer alterao no tero efeito at depois que voc fechar e reabrir o projeto que est aberto enquanto estiver fazendo a alterao. Se voc usar o boto da barra de ferramentas para alterar a configurao, a alterao ocorre imediatamente, mas ela somente afeta a sesso de trabalho atual. Se voc fechar e reabrir o projeto que est aberto enquanto estiver fazendo a alterao, ou se voc iniciar um novo projeto, a configurao reverte para o padro como definido na caixa Options de dilogo. Em outras palavras, utilize o boto da barra de ferramentas para tornar a alteraes temporrias para as configuraes de teclado, e use a Options caixa de dilogo para alterar o comportamento padro. Objetos incorporados e vinculados Documentos que contm objetos incorporados ou vinculados podem ser abertos no Visual Studio. Selecionar um objeto incorporado ou vinculado faz com os menus para alterar para aqueles do objeto selecionado. No entanto, no h nenhum ferramentas ou suporte para personalizar objetos incorporados ou vinculados.

Walkthroughs Desevolvimento de escritrio


Walkthroughs fornecem instrues passo a passo para cenrios comuns e so um bom lugar para comear Aprendendo sobre o produto. As orientaes fornecidas pelo Microsoft Visual Studio 2005 Tools for the Microsoft Office System demonstram maneiras de se criar funcionalidade code-behind em suas solues Microsoft Office Word 2003 e Microsoft Office Excel 2003. Para ver como o cdigo completo funciona em contexto, Exemplos de desenvolvimento do Office.

Guia de Introduo Programao para Excel


Se voc apenas estiver obtendo iniciou a criao de aplicativos Microsoft Office Excel 2003 usando Microsoft Visual Studio 2005 Tools for the Microsoft Office System, veja o que voc precisa saber.

O modelo de aplicativo de documento nico Cada Visual Studio Tools for Office aplicativo Excel baseado em torno uma nica pasta de trabalho. Para iniciar usando o aplicativo, o usurio final abre a pasta de trabalho ou cria a pasta de trabalho a partir de um modelo do Excel. Eventos na pasta de trabalho, por exemplo digitando em clulas ou clicar em botes e itens de menu, podem chamar mtodos tratamento de eventos-em conjunto. Para obter mais informaes, Arquitetura do Ferramentas do Visual Studio para solues do Office.

Apostila Visual Studio 2005

274

Usando controles host


H novos controles disponveis que permitem que voc se programa diretamente contra intervalos de clulas nomeado e objetos de lista da mesma maneira voc programa contra controles em Windows Forms. Esses objetos, chamados controles host, so baseados em nativos objetos do Excel, mas eles so estendidos com novos eventos e capacidade de ligao de dados. Eles aparecem como primeira classe objetos no modelo de programao e no IntelliSense, que torna mais fcil para fazer referncia a clulas especficas diretamente em seu cdigo sem precisar se percorrer o modelo de objeto do Excel. Intervalos e objetos de lista esto disponveis na guia Excel Controls do Toolbox Visual Studio em (. eles so chamados NamedRange), e voc tambm pode adicion-los para uma planilha da mesma maneira voc fazer quando voc trabalha com Excel por si s e ListObject Para obter mais informaes, Controles host do Excel.

Usando ligao de dados


Os controles host so tambm em uma lista de controles que voc pode arrastar a partir da Data Sources janela. Adicionar controles host Nesta forma automaticamente vincula-los fonte de dados que voc configurou usando a janela. Sem escrever qualquer cdigo, voc pode exibir dados de bancos de dados, servios da Web, e objetos em sua planilha. Para obter mais informaes, Conectando-se a dados.

Prximas etapas
Para obter uma lista dos tpicos que orient-lo algumas das tarefas comuns na automao do Excel, Tarefas comuns na programao do Office.

Guia de Introduo Programao para Word


Se voc apenas estiver obtendo iniciou a criao de aplicativos Microsoft Office Word 2003 usando Microsoft Visual Studio 2005 Tools for the Microsoft Office System, veja o que voc precisa saber.

O modelo de aplicativo de documento nico


Cada Visual Studio Tools for Office aplicativo Word baseado em torno um nico documento. Para iniciar usando o aplicativo, o usurio final abre o documento ou cria o documento de um modelo do Word. Eventos no documento, por exemplo Inserir reas especficas ou clicar em botes e itens de menu, podem chamar mtodos tratamento de eventos-em conjunto. Para obter mais informaes, Arquitetura do Ferramentas do Visual Studio para solues do Office.

Usando controles host


H novos controles disponveis que permitem que voc se programa diretamente contra indicadores e ns XML da mesma maneira voc programa contra controles em Windows Forms. Esses objetos, chamados controles host, so baseados em nativos objetos do Word, mas eles so estendidos com novos eventos e capacidade de ligao de dados. Eles aparecem como primeira classe objetos no modelo de programao e no IntelliSense, que torna mais fcil para fazer referncia a objetos especficos diretamente em seu cdigo sem precisar se percorrer o modelo de objeto do Word.

Apostila Visual Studio 2005

275

Do Toolbox o Bookmark controle est disponvel na guia Word Controls no Visual Studio Designer, e voc tambm pode adicionar indicadores em um documento da mesma maneira voc faz quando voc trabalha no Word por si s. Voc adicionar XMLNode controles, Mapeando um esquema XML para o documento; os controles host so criados automaticamente para cada elemento mapeado. Para obter mais informaes, Controles host do Word.

Usando ligao de dados


O Bookmark controle tambm em uma lista de controles que voc pode arrastar a partir da Data Sources janela. Adicionando indicadores nisso forma automaticamente vincula-los fonte de dados que voc configurou usando a janela. Sem escrever qualquer cdigo, voc pode exibir dados de bancos de dados, servios da Web, e objetos em seu documento. Para obter mais informaes, Conectando-se a dados.

Prximas etapas
Para obter uma lista dos tpicos que orient-lo algumas das tarefas comuns na automao Word, Tarefas comuns na programao do Office.

Guia de Introduo Writing Code


Solues Microsoft Office Word 2003 e Microsoft Office Excel 2003 so baseadas movimentar em documentos. Nessas solues, no h um arquivo de cdigo associado com cada documento do Word, e com cada pasta de trabalho do Excel e planilha. O modelo o mesmo como Windows Forms e formulrios da Web; h um modo de exibio Design para trabalhar com a interface do usurio, e h um modo de exibio de cdigo nos quais voc escreve o cdigo. Solues Microsoft Office Outlook 2003 so Add-ins para Outlook. Nessas solues, no h um arquivo de cdigo associado ao aplicativo Outlook. Solues do Outlook fornecem um modo de exibio de cdigo onde voc escrever o cdigo; no h nenhum modo Design. Observao Voc no pode adicionar classes adicionais para o arquivo de cdigo por trs de um documento, pasta de trabalho ou planilha. Voc deve adicionar novos arquivos no seu projeto para conter as classes que deseja gravar.

Abrir o modo de exibio do cdigo


Voc pode obter para o modo de exibio de cdigo de vrias maneiras: Clique no View Code boto na barra Solution Explorer de ferramentas. O ponto de insero aparece na parte superior da janela.

Clique no View Code item de menu em do Visual Studio View Menu quando um documento ou item do projeto de cdigo correspondente est selecionado na Solution Explorer. O ponto de insero aparece na parte superior da janela. Clique no View Code item no menu de contexto do documento. O ponto de insero aparece na parte superior da janela.

Clique no View Code item no menu de contexto de um controle, incluindo controles host. O ponto de insero aparece na parte superior da janela. Para obter mais informaes sobre controles modo, Itens host e OverView de controles host.

Apostila Visual Studio 2005

276

Clique View Code no menu de contexto item do projeto no Solution Explorer. O ponto de insero aparece na parte superior da janela.

Clicar duas vezes em um controle no designer visual. O ponto de insero aparece dentro o manipulador de eventos de controle padro. O manipulador de eventos gerado se ela j no existe.

Exemplos de cdigo do Office


H exemplos de cdigo de automao do Office em toda a Microsoft Visual Studio 2005 Tools for the Microsoft Office System documentao. Os tpicos a seguir so boas iniciando pontos. ara obter exemplos disso Automatizar Excel. Automatizar o Word. Automatizar o Outlook. Usando eventos de controle. Criando menus e barras de ferramentas Office. Trabalhar com painis aes. Usando Windows Forms em sua soluo. Extrair dados de uma fonte de dados em seu documento. Exemplos de soluo Office voc pode abrir e executar. ste tpico Tarefas do Excel Tarefas do Word Tarefas do Outlook Controles em documentos do Office Viso geral de personalizao UI do Office Viso geral painel Aes Coleta de dados usando um formulrio do Windows Walkthrough: Conectando-se a dados Exemplos de desenvolvimento do Office

Adicionando descries Office ao IntelliSense

O IntelliSense Visual Studio no inclui descries dos objetos e parmetros para vrios objetos do Microsoft Office. Normalmente, Texto que descreve um objeto ou parmetro aparece nos recursos Informaes rpidas e informaes de parmetro, juntamente com a sintaxe. No entanto, para muitos objetos no modelo de objeto do Office, este texto no disponvel por padro. Voc pode instalar arquivos que fornecem essas descries. Fornece Visual Studio Tools for Office esses arquivos para download a partir da Web. Para obter mais informaes, a pgina da Web download em http://go.microsoft.com/fwlink/?LinkId=50425.

Trechos de Cdigo IntelliSense em Ferramentas do Visual Studio do Office


Apostila Visual Studio 2005 277

Inclui Microsoft Visual Studio 2005 Tools for the Microsoft Office System uma srie de personalizveis trechos de cdigo IntelliSense que fornecem cdigo especfico para projetos Microsoft Office Word 2003 e Microsoft Office Excel 2003. O IntelliSense trechos de cdigo so trechos de cdigo que esto prontos a ser inserido em seu aplicativo com alguns cliques. Cada trecho executa uma tarefa de programao completa. Para obter mais informaes sobre Trechos de Cdigo do IntelliSense, Trechos de Cdigo IntelliSense Visual Basic.

Tarefas trecho
Trechos de Cdigo incluem tarefas, como o seguinte:

Importar contedo de outros documentos. Criando tabelas e relatrios de tabela dinmica. Importar e exportar dados. Manipular painis aes. Trabalhar com dados em cache. Formatando documentos. Manipular menus. Criando controles.

Usando Meu Ferramentas do Visual Studio em para projetos do Office


No Visual Basic, use a palavra-chave My para rpida e facilmente acessar informaes e padro instncias objetos que esto relacionadas ao aplicativo e seu ambiente tempo de execuo. Projetos Microsoft Visual Studio 2005 Tools for the Microsoft Office System Ativar o uso da palavra-chave My com a mesma funcionalidade que est disponvel em um projeto de biblioteca de classes, que um subconjunto dos objetos My suporte no aplicativo Windows projetos.

Meus objetos na Ferramentas do Visual Studio para projetos do Office


Os objetos a seguir My esto disponveis em Visual Studio Tools for Office Projetos. Application

Fornece propriedades, mtodos e eventos relacionados ao aplicativo atual. Para obter mais informaes, Objeto My.Application. Usurio

Fornece acesso ao contexto de segurana do usurio atual. no My.User definido por padro em Visual Studio Tools for Office Projetos. O resultado de um Visual Studio Tools for Office projeto um arquivo DLL que potencialmente pode ser chamado de vrias cpias de um documento do Office. Para obter a identidade do

Apostila Visual Studio 2005

278

usurio correto, voc deve adicionar o seguinte cdigo para definir a identidade para a do usurio est executando o aplicativo que est chamando o arquivo DLL: Visual Basic Copy Code
My.User.InitializeWithWindowsUser()

Para obter mais informaes, Objeto My.User. Computer Fornece propriedades para manipular componentes de computador como udio, o relgio, o teclado, e o sistema de arquivos. Para obter mais informaes, Objeto My.Computer. WebServices Fornece propriedades para criar e acessar uma nica instncia de cada servio da Web XML referenciado pelo projeto atual. Todos os a My.Webservices funcionalidade so includos. Para obter mais informaes, Objeto My.WebServices. Configuraes Fornece acesso s configuraes do aplicativo e permite que voc se dinamicamente armazenar e recuperar configuraes de propriedade e outras informaes para seu aplicativo. Funcionalidade My.Settings est includa. Para obter mais informaes, Objeto My.Settings. Recursos Fornece acesso a recursos do aplicativo e permite que voc para dinamicamente recuperar recursos do seu aplicativo. Funcionalidade My.Resources est includa. Para obter mais informaes, Objeto My.Resources.

VBA e comparados extenses cdigo gerenciado


Microsoft Visual Basic for Applications (VBA) usa cdigo no gerenciado que est totalmente integrado com aplicativos do Office. Do .NET Framework 2.0 extenses cdigo gerenciado em Microsoft Visual Studio 2005 Tools for the Microsoft Office System projetos que voc possa tirar proveito dos e ferramentas de design Visual Studio.

Comparao
A tabela a seguir fornece uma comparao bsica entre VBA e extenses cdigo gerenciado. sual Basic for Applications Usa cdigo que est conectado ao e persistente com o documento. Funciona com os modelos de objeto do Office e Visual Basic para Aplicativos APIs. Projetado para gravao de macros e uma experincia do desenvolvedor anaged Extensions do cdigo Cdigo armazenado separadamente do documento. Funciona com os modelos de objeto do Office e as .NET Framework APIs. Desenvolvido para segurana, mais fcil manuteno de cdigo, e a capacidade de

Apostila Visual Studio 2005

279

simplificada.

usar o Ambiente de Desenvolvimento Integrado do Visual Studio completo (IDE). Works bem para solues baseadas em documentos do Word e pastas de trabalho do Excel, os recursos do Visual Studio completo e o .NET Framework pode ser usado. onde Projetado para ser usado na empresa.

Funciona bem para solues que se beneficiar de um muito forte integrao com aplicativos do Office (IDE, menus, botes da barra de ferramentas, e assim por diante). Tem limitaes para a empresa, especialmente nas reas de segurana e implantao.

Alguns itens ainda mais fcil para fazer rapidamente usando VBA. Especificamente, voc pode desejar continuar usando VBA para:

Funes de planilha personalizada. A gravao da macro.

Criar solues do Office no Visual Studio


Solues escritrio criadas usando Microsoft Visual Studio 2005 Tools for the Microsoft Office System contm projetos Microsoft Office Word 2003, Microsoft Office Excel 2003, e Microsoft Office Outlook 2003. Projetos Word e Excel, em seus mais essenciais, so compostos de duas partes: um documento do Microsoft Office 2003 e um conjunto. Um documento do Office pode ser um documento do Word (.doc), um modelo do Word (*.dot), uma pasta trabalho Excel (.xls), ou um modelo do Excel (.xlt). O conjunto um arquivo.dll gerado a partir do Visual Basic um (.vb) ou arquivo C#. (cs). O conjunto contm cdigo gerenciado que adiciona funcionalidade ao documento. Projetos do Outlook so montagens add-in. O conjunto um arquivo.dll que carregado quando o Outlook for iniciado. Um suplemento do Outlook tem acesso a objetos comuns como itens de email, contatos e tarefas do Outlook.

Como criar Ferramentas do Visual Studio para projetos do Office:


Fornece Microsoft Visual Studio 2005 Tools for the Microsoft Office System um nmero de modelos de projeto para criar solues baseadas no Microsoft Office 2003. A primeira etapa um pouco diferente dependendo das configuraes que voc usar no Ambiente de Desenvolvimento Integrado do Visual Studio (IDE). Observao Se voc planejar para implantar a soluo para uso off-line, voc deve dar o projeto um nome usando caracteres que cabem as especificaes de protocolo HTTP. Para obter mais informaes, Modelo do Word e Excel Solutions off-line. Observao

Apostila Visual Studio 2005

280

As caixas de dilogo e comandos de menu que voc v podem ser diferentes das descritas em Help (Ajuda) dependendo das configuraes ativas ou edio. Para alterar as configuraes, escolha Import and Export Settings No menu Tools. Para obter mais informaes, Configuraes do Visual Studio.

Para criar um projeto Word ou Excel


1. No menu File, aponte para New, e clique em Project. Se o IDE configurado para usar configuraes de desenvolvimento do Visual Basic, abra o File menu e, em seguida, clique em New Project. A New Project caixa de dilogo ser exibida. 2. Selecione Office no painel Project Types, sob o idioma desejado para usar. 3. No painel Templates, selecione o projeto Office voc deseja criar. 4. Na caixa Name, digite um nome para o projeto. Por padro, esse nome tambm usado para o documento. Se o IDE configurado para usar configuraes de desenvolvimento Visual C# ou configuraes de desenvolvimento geral, digite um nome local e soluo tambm. Observao Voc no pode usar caracteres substituto no caminho para o local do projeto ou no nome do projeto. Para obter informaes sobre caracteres substituto, Suporte Unicode para pares substituto e seqncias de caracteres Combining. 5. Clique em OK. O Visual Studio Tools for Office Project Wizard abre. 6. Selecione se voc deseja criar um novo documento ou copiar um arquivo existente. 7. Se voc estiver criando um novo documento, especifique o nome ou aceite o padro. Se voc estiver usando um documento existente, especificar o local do documento. Voc pode usar absoluto e caminhos UNC. No use HTTP, FTP, ou outros caminhos de protocolo para o documento. Locais tm os seguintes formatos:
o o

< DriveLetter>:\ \\< Server>\<Share> Asterisco (*) Barra vertical (|) Dois-pontos (:) (exceto aps a letra da unidade) Aspas duplas (") (caminhos que contenham espaos no precisa as aspas) Less than (<) Maior que (>) Sinal de interrogao (?) Sinal de porcentagem (%)

No use esses caracteres no local:


o o o o o o o o

8. Clique em Finish.

Apostila Visual Studio 2005

281

Para criar um projeto do Outlook


1. No menu File, aponte para New, e clique em Project. Se o IDE configurado para usar configuraes de desenvolvimento do Visual Basic, abra o File menu e, em seguida, clique em New Project. A New Project caixa de dilogo ser exibida. 2. Selecione Office no painel Project Types, sob o idioma desejado para usar. 3. No painel Templates, selecione o Outlook Add-in projeto. 4. Na caixa Name, digite um nome para o projeto. Por padro, esse nome tambm usado para a soluo. Observao No fazer use caracteres Unicode no nome do projeto se voc deseja usar o projeto de instalao padro para Outlook Add-ins para implantar o adicionar - projetos polegada Visual Studio Tools for Office suporte ao uso caracteres Unicode no nome do projeto, mas projetos instalao no. Por padro, o nome do projeto de instalao para Outlook Add-ins inclui o nome do projeto add-in do Outlook. 5. Na caixa Location, digite um local onde voc deseja criar o projeto. Voc pode usar absoluto e caminhos UNC. No use HTTP, FTP, ou outros caminhos de protocolo para o projeto. 6. Locais tm os seguintes formatos:
o o

< DriveLetter>:\ \\< Server>\<Share> Asterisco (*) Barra vertical (|) Dois-pontos (:) (exceto aps a letra da unidade) Aspas duplas (") (caminhos que contenham espaos no precisa as aspas) Less than (<) Maior que (>) Sinal de interrogao (?) Sinal de porcentagem (%)

No use esses caracteres no local:


o o o o o o o o

7. Clique em OK. A soluo criar contm um projeto do Outlook e um projeto de instalao. Observao Projetos do Outlook sempre so salvas quando eles so criados. Elas no podem ser criadas como projetos temporrios como uma soluo s pode conter um projeto temporrio. Outlook solues contm dois projetos: o projeto add-in Outlook e o projeto de instalao. Para obter mais informaes sobre projetos temporrios, Projetos temporrios.

Apostila Visual Studio 2005

282

Ferramentas do Visual Studio para OverView de modelos do Office Project


A New Project caixa de dilogo no Visual Studio contm modelos de projeto para criar solues Microsoft Office 2003 cdigo gerenciado, incluindo pasta de trabalho do Excel, Modelo do Excel, Documento do Word, modelo do Word, e solues Outlook add-in. Esses modelos de projeto esto localizados dentro da Office subpasta sob os ns Linguagem Visual Basic e Visual C#. Duas vezes em qualquer um dos projetos inicia que oferece a opo de criar um novo documento ou usando um documento existente para a soluo. o Visual Studio Tools for Office Project Wizard, Cada projeto fornece cdigo para ajud-lo iniciado em um tipo especfico de soluo. Com o cdigo, um evento de inicializao e um evento de desligamento so aumentado, e mtodos so includos no cdigo do projeto gerada para manipular esses eventos. Para obter mais informaes, Ferramentas do Visual Studio para eventos Office Project.

Documento do Word
O modelo de projeto Documento do Word fornece cdigo para ajud-lo iniciado com automatizar e capturar eventos do Microsoft Office Word 2003. O Word torna fcil a apresentar dados em relatrios graficamente Rich e fornece um front-end atraente para coletar informaes. Para obter mais informaes, Modelo Project do documento do Word.

Modelo do Word
O modelo de projeto modelo do Word funciona de forma idntica para o modelo de projeto Documento do Word. No entanto, o modelo torna mais fcil para usurios para criar novas cpias documento local do modelo do Word. As extenses cdigos gerenciados esto disponveis no novo documento. Para obter mais informaes, Modelo do projeto de modelo do Word. Observao Modelos do Word que fazem referncia extenses cdigo gerenciado no podem ser usados como global Add-ins. O conjunto no chamado se o modelo for carregado da pasta de inicializao do Word. Para obter mais informaes, Limitaes de modelos globais e suplementos.

Pasta de trabalho do Excel


O modelo de projeto pasta de trabalho do Excel fornece cdigo para ajud-lo iniciado com automatizar e capturar eventos do Microsoft Office Excel 2003, para pode tirar proveito do sua anlise de dados e grficos ferramentas em suas solues. Para obter mais informaes, Modelo do Project pasta de trabalho do Excel.

Apostila Visual Studio 2005

283

Modelo do Excel

Se o modelo de projeto modelo do Excel comporta de forma idntica para o modelo do projeto pasta de trabalho do Excel. No entanto, o modelo torna mais fcil para usurios para criar novas cpias pasta de trabalho local do modelo do Excel. As extenses cdigos gerenciados esto disponveis na nova pasta de trabalho. Para obter mais informaes, Modelo do projeto de modelo do Excel.

O Outlook Add-in
O modelo de projeto Outlook add-in fornece cdigo para ajud-lo iniciado com automatizar e capturar eventos do Microsoft Office Outlook 2003, para que voc possa criar Add-ins que estendna funcionalidade do Outlook. Ele inclui um projeto de instalao que voc pode usar para implantar a soluo. Para obter mais informaes, Modelo Project add-in do Outlook.

Ferramentas do Visual Studio para eventos Office Project


Cada Microsoft Visual Studio 2005 Tools for the Microsoft Office System Modelo do projeto fornece gerado cdigo por trs documentos novos ou existentes ou planilhas. Esse cdigo gera dois eventos diferentes: Evento Startup ou Sheet1_Startup.: tratadas pelo ThisDocument_Startup Microsoft Office Word 2003) (ou ThisWorkbook_Startup o Microsoft Office Excel 2003) (

Evento Shutdown ou Sheet1_Shutdown.: tratadas pelo ThisDocument_Shutdown (Microsoft Office Word) ou ThisWorkbook_Shutdown Microsoft Office Excel () Declaraes mtodo para lidar com esses eventos so fornecidas no cdigo gerado por trs do documento.

Eventos de inicializao
Ser Startup gerado aps o documento est sendo executado e todo o cdigo de inicializao no conjunto tenha sido executado. a ltima coisa para executar no construtor da classe que est sendo executada no seu cdigo.

Eventos de desligamento
Shutdown gerada para cada uma das itens host (Documento ou planilhas) quando o domnio do aplicativo que seu cdigo carregado no est prestes a descarregar. Ele a ltima coisa a ser chamado na classe conforme ele descarrega. Para obter mais informaes sobre itens host, Itens host e OverView de controles host. Observao No programaticamente fazer Remover controles durante ao Shutdown manipulador de eventos de documento. No os elementos UI do documento esto disponveis quando o Shutdown evento ocorrer. Se voc desejar remover controles antes do aplicativo fechada, adicione o cdigo ao outro manipulador de eventos, como BeforeClose ou BeforeSave.

Apostila Visual Studio 2005

284

Declarao mtodo do manipulador de eventos

Cada declarao mtodo do manipulador de eventos tem os mesmos argumentos passados para ela: sender e e. No Excel, o sender argumento refere-se a folha, tais como Sheet1 ou Sheet2.; no Word, o sender argumento se refere ao documento Se o e argumento refere os argumentos padro para um evento, que no so usados, nesse caso. Declarao mtodo do manipulador de eventos do Word

O cdigo a seguir contm as declaraes mtodo para os manipuladores de eventos de inicializao no Word. Visual Basic Copy Code Private Sub ThisDocument_Startup(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles Me.Startup End Sub Private Sub ThisDocument_Shutdown(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles Me.Shutdown End Sub C# Copy Code

private void ThisDocument_Startup(object sender, System.EventArgs e) { } private void ThisDocument_Shutdown(object sender, System.EventArgs e) { } Declarao mtodo do manipulador de eventos do Excel O cdigo a seguir contm as declaraes mtodo para os manipuladores de eventos no Excel. Observao
Sheet1, usar nomes mtodo, como Sheet1_Startup, e na classe Sheet2, usar nomes mtodo como Sheet2_Startup. Na classe ThisWorkbook, usar nomes mtodo como ThisWorkbook_Startup.

O nome do mtodo deve corresponder ao nome de classe. Por exemplo, na classe

Visual Basic

Copy Code

Private Sub Sheet1_Startup(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles Me.Startup End Sub

Apostila Visual Studio 2005

285

Private Sub Sheet1_Shutdown(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles Me.Shutdown End Sub

C#

Copy Code

private void Sheet1_Startup(object sender, System.EventArgs e) { } private void Sheet1_Shutdown(object sender, System.EventArgs e) { }

Propriedades em Ferramentas do Visual Studio para projetos do Office


Existem vrias propriedades que esto disponveis em Microsoft Visual Studio 2005 Tools for the Microsoft Office System projetos importantes. Essas propriedades podem ser acessadas na janela Properties.

Confiar local conjuntos


A Trust Assemblies Location propriedade aparece quando voc seleciona o n de projeto Solution Explorer na janela Properties. Essa propriedade tem um valor booleano: Selecione true para atualizar a diretiva de segurana automaticamente com permisses de confiana total no conjunto do projeto principal e permisso de execuo em conjuntos na pasta \bin e suas subpastas. Essas permisses so marcada e concedido com cada compilao do projeto.

Selecione false para evitar permisses do sendo concedidas automaticamente. Se o projeto criado anteriormente com Trust Assemblies Location definido como true, todo cdigo grupos que foram gerados para voc sero removidos quando voc cria novamente com a propriedade definida como false. O projeto no ser executada a menos que voc conceder permisses para o seu cdigo manualmente.

Para obter mais informaes sobre segurana, Requisitos de segurana para executar solues do Office.

CacheInDocument
A CacheInDocument propriedade aparece na janela Properties Quando voc seleciona uma instncia no designer do Visual Studio. um DataSet Somente os membros pblicos podem ser armazenadas em cache; verifique se a Modifiers propriedade definida como Public Se voc desejar cache um DataSet. Essa propriedade tem um valor booleano:

Selecione true para cache DataSet no documento.

Selecione false Se voc no faa desejar DataSet para ser armazenado em cache no documento.

Apostila Visual Studio 2005

286

Para obter mais informaes sobre cache dados, Cache de dados e Dados de viso geral viso solues do Office.

Namespace para item host


A Namespace for Host Item propriedade s est disponvel para projetos C#. Ela aparece na janela Properties quando voc selecionar o n de documento (o n com a extenso.doc, *.dot,.xls, ou.xlt) em Solution Explorer. Quando voc criar um projeto usando C#, itens host so dadas namespace com base no nome do projeto. recomendvel que voc no altere este namespace editando o arquivo de cdigo diretamente. Use essa propriedade para alterar o namespace. Quando voc usar essa propriedade, namespace alterado no cdigo gerado (oculto), bem como no arquivo de cdigo visvel. Para alterar o espao de nome para o item host, definir o nome na propriedade Namespace for Host Item.

Valor2
Somente a Value2 propriedade est disponvel para aplicativos do Excel. Ela aparece sob o Databindings n propriedade na janela Properties Quando voc seleciona um NamedRange controle no designer de planilha. Use a Value2 propriedade na janela Properties para vincular a Value2 propriedade do intervalo nomeado a um campo na fonte de dados.

Arquivos documento ou modelo


Quando voc projetar uma soluo ao redor um documento do Microsoft Office Word 2003 ou pasta de trabalho do Microsoft Office Excel 2003 usando extenses cdigo gerenciado, voc deve decidir a melhor maneira para tornar esse documento disponvel para os usurios. Em algumas situaes, convm fazer uma cpia de um documento para cada usurio. Em outras situaes convm tornar um modelo disponveis em um servidor, para que cada usurio pode abrir o modelo e salvar uma cpia local como um documento.

Comparao
A tabela a seguir descreve as diferenas entre documentos e modelos. ocumentos Os usurios podem abrir e modificar um documento, a menos que ele seja definido como ser somente leitura. As alteraes salvas so mantidas no original. odelos Os usurios podem abrir um modelo para criar uma cpia local como um novo documento. Eles no podem modificar o original a menos que eles so fornecidos permisses especiais.

Quando aberta, o documento aumenta Quando aberta, o modelo aumenta o New o Open evento. evento.

Apostila Visual Studio 2005

287

Voc pode aproveitar do evento New que aumentado pelos modelos usando mtodos, como o seguinte: O Word Visual Basic Copy Code

Private Sub ThisDocument_New() Handles Me.New ' Your code goes here. End Sub

C#

Copy Code

// Add this method to your class. private void ThisDocument_New() { // Your code goes here. }

C#

Copy Code

// Add the New event handler to the InternalStartup method. this.New += new Microsoft.Office.Interop.Word.DocumentEvents2_NewEventHandler(ThisDocument_New);

Excel

Visual Basic

Copy Code

Private Sub ThisWorkbook_New() Handles Me.New ' Your code goes here. End Sub

C#

Copy Code

// Add this method to your class. private void ThisWorkbook_New() { // Your code goes here. }

C#

Copy Code

// Add the New event handler to the Startup method. this.New += new Microsoft.Office.Tools.Excel.WorkbookEvents_NewEventHandler(ThisWorkbook_New);

Limitaes de modelos globais e suplementos


Documentos, pastas de trabalho, e modelos no podem funcionar corretamente como modelos globais ou Microsoft Office Excel os suplementos.

Modelos do Word

Apostila Visual Studio 2005

288

Se um modelo do Microsoft Office Word tem gerenciado extenses de cdigo, o conjunto do projeto no chamado se o modelo estiver conectado como um modelo global nem carregados do diretrio de inicializao do Word. Alm disso, o documento no reconhece o formato de um modelo que seja parte de uma Microsoft Visual Studio 2005 Tools for the Microsoft Office System soluo.

Excel Add-ins

No h nenhum Visual Studio Tools for Office projeto para criar um arquivo Add-in (.xla) do Excel. possvel salvar uma pasta de trabalho como um suplemento, mas ele no uma operao com suporte e no recomendada. Se voc salvar uma pasta de trabalho que tem gerenciados extenses de cdigo como um Microsoft Office Excel Add-In (*.xla) arquivo, pode selecion-lo na caixa Add-Ins de dilogo para aplicar a outra pasta de trabalho. O cdigo em alguns casos ser executado em uma pasta de trabalho de destino aps o suplemento ser aplicado, mas no h suporte para tal uso da soluo Visual Studio Tools for Office.

O Outlook Add-ins
Inclui Visual Studio Tools for Office um projeto para criar o Microsoft Office Outlook suplementos que so carregados quando o Outlook for iniciado. O Outlook Add-ins so semelhantes para Add-ins criado por meio do Shared Add-in projeto no Visual Studio, mas elas so especficas ao Outlook. Para obter mais informaes, Modelo Project add-in do Outlook.

Word e Excel Add-ins

Cria Visual Studio Tools for Office personalizaes que so especficas para um documento; no o cdigo executado para cada documento que est aberto no aplicativo. Se voc deseja criar cdigo que executado para cada documento, voc deve criar um suplemento Para obter informaes sobre como criar suplementos COM, os seguintes artigos: Criar Office Managed suplementos de COM Visual Studio .NET (http://msdn.microsoft.com/library/?url=/library/enus/dnofftalk/HTML/office06062002.asp?frame=true). Isolando extenses Office com o assistente Shim COM (http://msdn.microsoft.com/office/default.aspx?pull=/library/enus/dno2k3ta/HTML/ODC_Office_COM_Shim_Wizards.asp).

Apostila Visual Studio 2005

289

Recursos do Excel com VSTO 2


Introduo
O MS-Excel sem nenhuma dvida a melhor planilha eletrnica existente h anos. Todos os recursos existentes so fundamentais em reas de controladorias, financeiras, contbeis, etc. A integrao do Excel com banco de dados tornou-se uma funcionalidade fundamental para manipular dados na planilha (Front-End) tendo como fonte de dados um SQL Server, um Access ou qualquer outra fonte de dados. Com o advento do .NET, o mercado de desenvolvimento entrou em um novo mundo desde as linguagens at a ferramenta de desenvolvimento (Visual Studio .NET 2003). J para quem usa o MS-Excel, programar em VBA (Visual Basic for Applications) continuar valendo. Se voc juntar o poder de desenvolvimento do .NET com o Excel, ter o VSTO (Visual Studio Tools for the Microsoft Office System, que uma ferramenta que voc adiciona ao Visual Studio .NET 2003. Atualmente est na verso 1.0. No entanto, neste artigo irei mostrar um pouco do que possvel programar com o Excel e o VSTO 2.0. Esta verso 2.0 s possvel instalar com o VS.NET 2005 e vale dizer que ainda so verses betas, pelo menos at a data deste artigo (out/2004). Para quem trabalhou o VSTO 1.0, acredite, a verso 2.0 est muito aprimorada e mais fcil de desenvoltar. Abra o VS.NET 2005 e crie um novo projeto com as seguintes caractersticas: Project Types: Visual C# / Office Templates: Excel Application Name: ExcelMSDN Location: C:\MSDN Solution Name: ExcelMSDN

Apostila Visual Studio 2005

290

Clique no boto OK. Na janela a seguir voc pode definir que ser um novo documento ou pode se basear em um j existente.

Clique no boto Finish. Note que a UI exibida a do prprio Excel (inclusive os menus) dentro do VS.NET 2005.

Apostila Visual Studio 2005

291

No Solution Explorer, adicione um User Control.

Adicione os seguintes controles:

Apostila Visual Studio 2005

292

Na Toolbox, arraste o controle DataConnector para o documento e configure a propriedade DataSource. Neste momento no existe nenhuma fonte de dados, por isso preciso criarmos uma. Clique no link Add Project Data Source e configure a respectiva fonte de dados selecionando as tabelas Categories e Products.

Apostila Visual Studio 2005

293

Em alguns casos possvel definir um Master Details. Retorne para planilha e arraste os controles da Toolbox para dentro da planilha. Note na barra de endereos como fica a referncia. Configure as propriedades dos controles de acordo com os dados do DataConnector.

Adicionando um pouco de cdigo no ThisWorkbook, possvel exibir no UserControl1 no Painel de Tarefas: private void ThisWorkbook_Initialize(object sender, System.EventArgs e) { this.ActionsPane.ForeColor = Color.White; this.ActionsPane.BackColor = Color.Tomato; this.ActionsPane.Controls.Add(new UserControl1()); } Veja o cdigo do boto GO para navegar na internet de dentro do Excel. isso mesmo, agora temos um controle chamado WebBrowser que permitira isso. private void btnGo_Click(object sender, EventArgs e) { WebBrowser1.Navigate(this.txtURL.Text);

Apostila Visual Studio 2005

294

} Salve o projeto e execute (F5). Note que o UserControl exibido no Painel de Taferas contendo todos os dados oriundos do banco de dados. Note ainda que na planilha do Excel exite um novo controle GridView, o qual contm os mesmos dados do GridView do UserControl. A mesma analogia vale para o ListBox. Outra novidade o controle WebControl que permite navegar em uma determinada URL de dentro do Excel.

Concluso O Excel com o VSTO 2.0 no ser o mesmo. Todas as facilidades que o mundo .NET proporciona aos desenvolvedores de solues utilizvel no VSTO. O que voc deve estar pensando que o Excel ser um Smart Client, mas ele sempre foi um Smart Client. No com o VSTO que ele deixar de ser. Vale um estudo aprofundado sobre as facilidades que o mundo VSTO + VS.NET trar as aplicaes.

Referncias: www.microsoft.com/windowsmobile http://msdn.microsoft.com/office/understanding/vsto/

Apostila Visual Studio 2005

295

Windows Workflow Foundation (.NET Framework 3.0)


Aplica-se a: Microsoft Windows Workflow Foundation Microsoft Windows Vista

Resumo: introduz as tecnologias e os recursos do Microsoft Windows Workflow Foundation que sero de interesse dos desenvolvedores que precisam criar aplicativos orientados por fluxo de trabalho para a plataforma Microsoft .NET. (39 pginas impressas). Observao: este artigo foi escrito de acordo com a verso beta 1 do Windows Workflow Foundation. Esteja ciente de que provvel que ocorram alteraes antes do lanamento definitivo da tecnologia. Um ponto de partida para a adio do suporte ao fluxo de trabalho plataforma Windows O Microsoft WWF (Windows Workflow Foundation) uma estrutura extensvel para o desenvolvimento de solues de fluxo de trabalho na plataforma Windows. Um componente do futuro Microsoft WinFX, o Windows Workflow Foundation fornece a API e as ferramentas para o desenvolvimento e a execuo de aplicativos baseados em fluxo de trabalho. O Windows Workflow Foundation oferece um modelo unificado para criar solues de ponta a ponta que abrangem vrias categorias de aplicativos, incluindo fluxos de trabalho humanos e de sistema. O Windows Workflow Foundation uma estrutura de fluxo de trabalho ampla e com finalidade geral, projetada desde o incio para promover a extensibilidade em todos os nveis. As solues baseadas no Windows Workflow Foundation so construdas com componentes interconectados que tm o suporte do cdigo do Microsoft .NET e so executados em um aplicativo host. Assim como na criao de suas pginas da Web visualmente em um ambiente feito sob medida, voc compe as etapas de seu fluxo de trabalho especfico em um designer visual e adiciona cdigo por trs dos componentes do fluxo de trabalho para implementar regras e definir o processo comercial. O Windows Workflow Foundation fornece um mecanismo de fluxo de trabalho, uma API gerenciada pelo .NET, servios de tempo de execuo e um designer e depurador visual integrado ao Microsoft Visual Studio 2005. Voc pode usar o Windows Workflow Foundation para criar e executar fluxos de trabalho que abranjam o cliente e o servidor e possam ser executados em todos os tipos de aplicativos .NET. Este artigo fornece uma introduo simples ao Windows Workflow Foundation e mostra como ele funciona por meio de alguns exemplos incrementais.

Apostila Visual Studio 2005

296

Um fluxo de trabalho um modelo de um processo humano ou de sistema que definido como um mapa de atividades. Uma atividade uma etapa em um fluxo de trabalho e a unidade de execuo, reutilizao e composio de um fluxo de trabalho. O mapa de atividades expressa as regras, as aes, os estados e suas relaes. Criado por meio do layout de atividades, um fluxo de trabalho do Windows Workflow Foundation , em seguida, compilado para um assembly do .NET e executado no tempo de execuo do fluxo de trabalho e na CLR (Common Language Runtime). Criando o primeiro fluxo de trabalho O Windows Workflow Foundation consiste principalmente em um ambiente ativado pelo .NET que processa objetos especiais criados e implementados a partir de um designer do Visual Studio. O Microsoft .NET Framework 2.0 necessrio a fim de dar suporte ao Windows Workflow Foundation. Um pacote instalador separado adiciona ao Visual Studio 2005 o suporte ao designer e ao modelo de projeto do Windows Workflow Foundation. Aps a instalao, um novo n adicionado lista padro de projetos do Visual Studio 2005, como mostrado na Figura 1.

Figura 1. Modelos de projeto de fluxo de trabalho no Visual Studio 2005

Voc pode escolher entre vrias opes, cada uma delas identificando um tipo de aplicativo de fluxo de trabalho em particular. A Tabela 1 apresenta uma lista parcial de modelos de projeto de fluxo de trabalho. Tabela 1. Tipos de projeto de fluxo de trabalho no Visual Studio 2005 Tipo Sequential Workflow Console Descrio Cria um projeto para a construo de fluxos de trabalho que contm um fluxo de trabalho seqencial padro e um

Apostila Visual Studio 2005

297

Tipo Application Sequential Workflow Library Workflow Activity Library State Machine Console Application State Machine Workflow Library Empty Workflow

Descrio aplicativo host de teste de console. Cria um projeto para a construo de um fluxo de trabalho seqencial como uma biblioteca. Cria um projeto para a construo de uma biblioteca de atividades que podem, posteriormente, ser reutilizadas como blocos estruturais para aplicativos de fluxo de trabalho. Cria um projeto para a construo de um fluxo de trabalho de mquina de estado e um aplicativo host de console. Cria um projeto para a construo de um fluxo de trabalho de mquina de estado como uma biblioteca. Cria um projeto vazio que pode incluir fluxos de trabalho e atividades.

O Windows Workflow Foundation j inclui o suporte a dois estilos fundamentais de fluxo de trabalho: o fluxo de trabalho seqencial e o fluxo de trabalho de mquina de estado. Um fluxo de trabalho seqencial ideal para as operaes expressas por um pipeline de etapas que so executadas uma depois da outra, at que a ltima atividade seja concluda. Os fluxos de trabalho seqenciais, no entanto, no so puramente seqenciais em sua execuo. Eles ainda podem receber eventos externos ou iniciar tarefas em paralelo e, nesse caso, a seqncia exata de execuo pode variar um pouco. Um fluxo de trabalho de mquina de estado composto por um conjunto de estados, transies e aes. Um estado denotado como um estado inicial e, depois, com base em um evento, pode ser feita uma transio para outro estado. O fluxo de trabalho de mquina de estado pode ter um estado final que determina o final do fluxo de trabalho. Vamos supor que voc selecione e crie um novo projeto Sequential Workflow Console Application. O Visual Studio 2005 Solution Explorer conter dois arquivos: workflow1.cs e, inicialmente oculto, workflow1.designer.cs. Esses dois arquivos representam o fluxo de trabalho que est sendo criado. Um fluxo de trabalho do Windows Workflow Foundation consiste no arquivo de modelo de fluxo de trabalho e em uma classe de arquivo de cdigo. A classe workflow1.cs a classe do arquivo de cdigo na qual voc pode escrever sua prpria lgica comercial de fluxo de trabalho. A classe workflow1.designer.cs representa a descrio do mapa de atividades. Esse arquivo gerenciado automaticamente pelo Visual Studio 2005, praticamente da mesma forma que acontece com os formulrios em um projeto do Microsoft Windows Forms. medida que voc adiciona atividades ao fluxo de trabalho, o Visual Studio 2005 atualiza a classe do designer com o cdigo do Microsoft C# que cria, por programao, o mapa de atividades. Para dar continuidade analogia com o Windows Forms, um fluxo de trabalho como um formulrio, ao passo que as atividades so como os controles. Voc pode escolher outra forma de persistncia para o layout das atividades o formato de marcao de fluxo de trabalho XML. Para tentar essa abordagem, exclua

Apostila Visual Studio 2005

298

o arquivo workflow1.cs do projeto e adicione um novo item de fluxo de trabalho, como mostrado na Figura 2.

Figura 2. Adicionando um item de fluxo de trabalho seqencial com separao de cdigo

Agora, o seu projeto contm dois arquivos, workflow1.xoml e workflow1.xoml.cs. O primeiro contm a marcao de fluxo de trabalho XML que representa o modelo de fluxo de trabalho; o segundo uma classe de arquivo de cdigo e contm manipuladores de eventos e cdigo-fonte para o fluxo de trabalho. Se voc clicar duas vezes no arquivo .xoml poder ver o designer visual de fluxo de trabalho em ao (veja a Figura 3). No h implicao no tempo de execuo em escolher a marcao ou o cdigo para a serializao do modelo de fluxo de trabalho ambos so equivalentes, uma vez que o fluxo de trabalho compilado em um assembly. Os aplicativos de fluxo de trabalho so um misto de atividades que realmente funcionam (por exemplo, enviar ou receber dados) e de atividades compostas, como IfElse e While, que gerenciam a execuo de um conjunto de atividades filho. Um fluxo de trabalho pode implementar cenrios sofisticados de ponta a ponta, como reviso de documentos, aprovao de OCs, gerenciamento de usurios de TI, intercmbio de informaes entre parceiros, qualquer tipo de assistente ou aplicativos de linha de negcios. A Figura 3 mostra um fluxo de trabalho de exemplo, extremamente simples, que contm apenas uma atividade o bloco code1.

Apostila Visual Studio 2005

299

Figura 3. O designer de fluxo de trabalho do Visual Studio 2005

O bloco Code corresponde a uma instncia da classe Code e representa uma atividade do fluxo de trabalho cujo comportamento expresso com cdigo definido pelo usurio. O cdigo de back-end inserido por meio do Visual Studio 2005 simplesmente clicando-se duas vezes no elemento selecionado no designer o familiar estilo de programao dos aplicativos ASP.NET e de outros projetos do Visual Studio 2005. Quando voc clica duas vezes na atividade, o arquivo de cdigo aberto, oferecendo um stub para o manipulador de cdigo. private void code1_ExecuteCode(object sender, EventArgs e) { // Some code here } Quaisquer instrues que voc digitar no manipulador de cdigo sero executadas quando o tempo de execuo do fluxo de trabalho processar o bloco de atividades especificado ao percorrer o fluxo de trabalho. Vamos gerar a sada de uma simples mensagem de boas-vindas. private void code1_ExecuteCode(object sender, EventArgs e) { Code c = (Code) sender; Console.WriteLine("Hele, from '{0}'.\nI'm an instance of the {1} class.", c.ID, c.ToString()); } Alm do layout visual, o fluxo de trabalho consiste no seguinte cdigo salvo no arquivo workflow1.xoml.cs.

Apostila Visual Studio 2005

300

using System.ComponentModel; using System.ComponentModel.Design; using System.Collections; using System.Drawing; using System.Workflow.ComponentModel.Compiler; using System.Workflow.ComponentModel.Serialization; using System.Workflow.ComponentModel; using System.Workflow.ComponentModel.Design; using System.Workflow.Runtime; using System.Workflow.Activities; using System.Workflow.Activities.Rules; namespace HeleWorldWorkflow { public partial class Workflow1 : SequentialWorkflow { private void code1_ExecuteCode(object sender, EventArgs e) { Code c = (Code) sender; Console.WriteLine("Hele, from '{0}'.\nI'm an instance of the {1} class.", c.ID, c.ToString()); } } } O atributo partial refere-se a classes parciais, um novo conceito do .NET Framework 2.0. Uma classe parcial uma classe cuja definio pode ser disseminada por arquivos de origem distintos. Cada arquivo de origem parece conter uma definio de classe comum do incio ao fim, com exceo de que ela parcial e no contm toda a lgica exigida pela classe. O compilador mesclar as definies de classes parciais em uma definio completa da classe, que pode ser compilada. As classes parciais no tm nada a ver com a orientao a objetos; elas so uma forma (no nvel da origem e limitada por assembly) de estender o comportamento de uma classe dentro de um projeto. No .NET Framework 2.0, as classes parciais so os meios usados para impedir que o Visual Studio 2005 insira cdigo gerado automaticamente nos arquivos de cdigo. Qualquer cdigo de ligao que estiver faltando na classe original ser adicionado pelo tempo de execuo, por meio da adio de uma classe parcial. Um fluxo de trabalho s pode ser executado pelo tempo de execuo de fluxo de trabalho do Windows Workflow Foundation, e o tempo de execuo de fluxo de trabalho requer um aplicativo externo para hosped-lo, de acordo com algumas regras. Para fins de teste, o Visual Studio 2005 tambm adiciona um arquivo

Apostila Visual Studio 2005

301

program.cs ao projeto. O arquivo um aplicativo simples de console, como o seguinte. class Program { static AutoResetEvent waitHandle = new AutoResetEvent(false); static void Main(string[] args) { WorkflowRuntime workflowRuntime = new WorkflowRuntime(); workflowRuntime.StartRuntime(); workflowRuntime.WorkflowCompleted += OnWorkflowCompleted; Type type = typeof(HeleWorldWorkflow.Workflow1); workflowRuntime.StartWorkflow(type); waitHandle.WaitOne(); workflowRuntime.StopRuntime(); // A bit of feedback to the user Console.WriteLine(""); Console.WriteLine(""); Console.WriteLine("=========================="); Console.WriteLine("Press any key to exit."); Console.WriteLine("=========================="); Console.ReadLine(); } static void OnWorkflowCompleted(object sender, WorkflowCompletedEventArgs e) { waitHandle.Set(); } } Para simplificar, o Visual Studio 2005 embute em cdigo o nome da classe de fluxo de trabalho no aplicativo de console, como voc pode ver nas linhas em negrito do cdigo acima. Para impedir que o aplicativo de console seja enfechado imediatamente aps a concluso, convm adicionar uma chamada a

Apostila Visual Studio 2005

302

Console.ReadLine ao final do mtodo Main. Nesse ponto, voc estar pronto para compilar e testar o fluxo de trabalho: pressione F5 e siga em frente. Se tudo correr bem, voc dever ver a sada mostrada na Figura 4.

Figura 4. O fluxo de trabalho de exemplo executado por um aplicativo host de console

Depurar o aplicativo de fluxo de trabalho tambm simples. Tudo o que voc precisa fazer, na verdade, colocar um ponto de interrupo. Voc pode colocar um ponto de interrupo em qualquer local da classe do arquivo de cdigo do fluxo de trabalho (assim como geralmente faz com cdigo do C#) ou e isto realmente interessante diretamente no modo de exibio do designer. Voc seleciona a atividade na qual deseja que o depurador comece e pressiona F9 para definir o ponto de interrupo, como mostrado na Figura 5.

Figura 5. Um ponto de interrupo colocado no modo de exibio do designer do fluxo de trabalho

Assim que o fluxo do cdigo atinge a atividade que tem o ponto de interrupo definido, o Visual Studio 2005 fica sujeito ao depurador de fluxo de trabalho (veja a Figura 6). A partir desse ponto, voc pode percorrer o cdigo e as atividades passo a passo no designer visual pressionando F11, como seria de se esperar.

Apostila Visual Studio 2005

303

Figura 6. O aplicativo de fluxo de trabalho em uma sesso de depurao

Recebendo e consumindo dados Vamos continuar e modificar o fluxo de trabalho para fazer com que ele receba e consuma os dados quando sua instncia for criada. Existem duas abordagens gerais para receber dados em um fluxo de trabalho no momento da criao da instncia: com parmetros e eventos. Se voc optar por parmetros, definir manualmente uma lista de nomes e tipos de parmetros no designer visual. Se voc escolher os eventos, precisar criar e adicionar uma atividade personalizada que atue como uma origem externa, seja acionada em algum ponto do modelo de fluxo de trabalho e passe alguns dados. Vamos mostrar a abordagem baseada em eventos mais adiante neste artigo. Por enquanto, nos concentraremos nos parmetros. Como mostrado na Figura 7, o painel Properties de Workflow1 mostra uma coleo Parameters, que voc preenche com pares de nome/valor no momento do design.

Apostila Visual Studio 2005

304

Figura 7. Adicionando parmetros a um fluxo de trabalho

A Figura 8 mostra o editor de parmetros em ao. Voc cria uma nova entrada para cada parmetro desejado e indica seu nome, seu tipo e sua direo.

Figura 8. Parmetros de seqncia de caracteres FirstName e LastName adicionados

O tipo do parmetro pode ser digitado manualmente ou selecionado a partir de um navegador de objetos personalizado. Ao fechar a caixa de dilogo Workflow Parameters Editor, modifique o arquivo de cdigo para incorporar os parmetros recm-definidos. Geralmente, voc adiciona duas propriedades public e faz com que

Apostila Visual Studio 2005

305

elas exponham o contedo das colees Parameters, como mostrado no cdigo a seguir. public partial class Workflow1 : SequentialWorkflow { public string UserFirstName { get { return (string) Parameters["FirstName"].Value; } set { Parameters["FirstName"].Value = value; } } public string UserLastName { get { return (string) Parameters["LastName"].Value; } set { Parameters["LastName"].Value = value; } } : } O uso de propriedades public simplesmente uma boa prtica de programao que mantm seu cdigo mais limpo e organizado. Isso no , de maneira alguma, um requisito para o consumo de dados de parmetro. A insero de chamadas diretamente na coleo Parameters do fluxo de trabalho tambm funcionar. Se voc envoltar parmetros em propriedades public, poder escolher os nomes que desejar para as propriedades. Lembre-se, porm, de que os nomes de parmetros diferenciam maisculas de minsculas no C#. Quem fornece, realmente, os dados de entrada por meio desses parmetros? Quem cuida dessa tarefa o aplicativo host. importante observar, porm, que o host define todos os parmetros no momento da inicializao, quando o fluxo de trabalho carregado para execuo em um recipiente de tempo de execuo. Para detalhar um pouco esse ponto, vamos escrever um aplicativo host de exemplo, baseado no Windows Forms. O aplicativo de exemplo fornecer duas caixas de texto para que os usurios insiram seus nomes e sobrenomes (veja a Figura 9) e as passar para os manipulares de cdigo do fluxo de trabalho. Para consumir os parmetros, vamos reescrever o manipulador de cdigo da seguinte forma: private void code1_ExecuteCode(object sender, EventArgs e) { MessageBox.Show("Welcome, " + UserFirstName + " " + UserLastName); } O ponto principal do aplicativo host do Windows Forms de exemplo o manipulador de cliques anexado ao boto Start Workflow.

Apostila Visual Studio 2005

306

Figura 9. Um aplicativo host de fluxo de trabalho do Windows Forms O cdigo-fonte completo da classe code-behind do formulrio o seguinte: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Reflection; using System.Workflow.ComponentModel; using System.Workflow.Runtime; using System.Workflow.Runtime.Hosting; namespace WinFormHost { public partial class Form1 : Form { private WorkflowRuntime _wr = null; private string _workflowAssembly = ""; private string _workflowTypeName = ""; public Form1() { InitializeComponent(); _workflowAssembly = "WorkflowWithParams"; _workflowTypeName = "WorkflowWithParams.Workflow1"; _wr = new WorkflowRuntime(); _wr.StartRuntime(); } private void btnStartWorkflow_Click(object sender, EventArgs e)

Apostila Visual Studio 2005

307

{ string assemblyName = _workflowAssembly; string typeName = _workflowTypeName; // Attempt to get type by fully-qualified name Assembly assembly = Assembly.Load(assemblyName); Type workflowType = assembly.GetType(typeName); Dictionary<string, object> parameters = new Dictionary<string, object>(); parameters.Add("FirstName", txtFirstName.Text); parameters.Add("LastName", txtLastName.Text); // Start the workflow Guid instanceID = Guid.NewGuid(); _wr.StartWorkflow(workflowType, instanceID, parameters); } } } Para popular a coleo de parmetros, preciso usar um dicionrio baseado em genricos, composto por seqncias de caracteres e objetos. O nome do item uma seqncia de caracteres, ao passo que o valor contido configurado como um objeto. Voc adiciona ao dicionrio a mesma quantidade de itens que a dos parmetros estticos do modelo de fluxo de trabalho neste caso, FirstName e LastName. Os dois parmetros usam o contedo digitado nas caixas de texto da interface do usurio. Finalmente, o fluxo de trabalho executado quando voc cria uma instncia do modelo especificado. O mtodo StartWorkflow do objeto de tempo de execuo possui vrias sobrecargas. A verso usada no cdigo aceita o tipo de fluxo de trabalho, a coleo de parmetros de entrada e um GUID (identificador global exclusivo) gerado pelo sistema. Voc s precisa de uma instncia do tempo de execuo do fluxo de trabalho para cada processo, e no permitido ter mais de uma instncia para cada AppDomain. O melhor que voc pode fazer aqui criar a instncia necessria diretamente no construtor do formulrio. O mesmo objeto de tempo de execuo pode controlar uma variedade de instncias de fluxo de trabalho. O tempo de execuo diferencia as instncias com base em seu GUID e recebe dados particulares para cada instncia especfica.

Apostila Visual Studio 2005

308

Figura 10. O fluxo de trabalho parametrizado em ao, hospedado por um aplicativo do Windows Forms

Para fins puramente educativos, vamos dar uma olhada rpida no cdigo de marcao do designer e do fluxo de trabalho neste estgio do desenvolvimento. Este o arquivo de origem do workflow1.designer.cs. public sealed partial class Workflow1 : SequentialWorkflow { private void InitializeComponent() { ParameterDeclaration FirstName = new ParameterDeclaration(); ParameterDeclaration LastName = new ParameterDeclaration(); this.code1 = new System.Workflow.Activities.Code(); // // code1 // this.code1.ID = "code1"; this.code1.ExecuteCode += new System.EventHandler(this.code1_ExecuteCode); // // Workflow1 // this.Activities.Add(this.code1); this.DynamicUpdateCondition = null; this.ID = "Workflow1"; FirstName.Direction = System.Workflow.ComponentModel.ParameterDirection.In; FirstName.Name = "FirstName"; FirstName.Type = typeof(string); FirstName.Value = null;

Apostila Visual Studio 2005

309

LastName.Direction = System.Workflow.ComponentModel.ParameterDirection.In; LastName.Name = "LastName"; LastName.Type = typeof(string); LastName.Value = null; this.Parameters.Add(FirstName); this.Parameters.Add(LastName); } private Code code1; } Este o contedo de marcao do fluxo de trabalho correspondente. <?Mapping XmlNamespace="ComponentModel" ClrNamespace="System.Workflow.ComponentModel" Assembly="System.Workflow.ComponentModel" ?> <?Mapping XmlNamespace="Compiler" ClrNamespace="System.Workflow.ComponentModel.Compiler" Assembly="System.Workflow.ComponentModel" ?> <?Mapping XmlNamespace="Activities" ClrNamespace="System.Workflow.Activities" Assembly="System.Workflow.Activities" ?> <?Mapping XmlNamespace="RuleConditions" ClrNamespace="System.Workflow.Activities.Rules" Assembly="System.Workflow.Activities.Rules" ?> <SequentialWorkflow x:Class="WorkflowWithParams.Workflow1" x:CompileWith="Workflow1.xoml.cs" ID="Workflow1" xmlns:x="Definition" xmlns="Activities"> <SequentialWorkflow.Parameters> <wcm:ParameterDeclaration Name="FirstName" Type="System.String" Direction="In" xmlns:wcm="ComponentModel" /> <wcm:ParameterDeclaration Name="LastName" Type="System.String" Direction="In" xmlns:wcm="ComponentModel" /> </SequentialWorkflow.Parameters> <Code ExecuteCode="code1_ExecuteCode" ID="code1" /> </SequentialWorkflow>

Apostila Visual Studio 2005

310

Observe que todos os parmetros definidos de forma esttica na coleo Parameters devem ser inicializados explicitamente e passados quando uma instncia do fluxo de trabalho criada para execuo. O tempo de execuo do fluxo de trabalho O host interage com o Windows Workflow Foundation por meio da classe WorkflowRuntime. No deixe que a aparente simplicidade do host de exemplo mostrado acima o engane em relao a um ponto-chave. Um host pode ser responsabilizado por vrios aspectos adicionais e crticos, como a criao de um ou mais processos e um ou mais AppDomains; o empacotamento de chamadas entre os AppDomains, como necessrio; e a configurao de mecanismos de isolamento. Um host pode precisar criar vrios processos para se beneficiar de vrias CPUs em uma mquina, por motivos de escalabilidade, ou para executar um grande nmero de instncias de fluxo de trabalho em um farm de mquinas. Existem outras coisas que um host pode fazer. Por exemplo, ele pode controlar as diretivas a serem aplicadas quando um fluxo de trabalho for sujeitado a uma longa espera, escutar eventos especficos e comunic-los a um usurio ou administrador, definir tempos limite e repeties para cada fluxo de trabalho, expor contadores de desempenho e gravar informaes de log para fins de depurao e diagnstico. Os hosts realizam a maioria das tarefas adicionais por meio de servios predefinidos e personalizados registrados no recipiente no momento da inicializao. O host de exemplo no faz nada disso, e limitado a iniciar instncias de fluxo de trabalho. Isso aceitvel em muitas situaes comuns. Fluxos de trabalho e atividades Vamos voltar e examinar a caixa de ferramentas do Visual Studio 2005 quando um projeto de fluxo de trabalho est ativo. A caixa de ferramentas, mostrada na Figura 11, lista as atividades que voc pode usar para criar a seqncia de etapas e suas inter-relaes, a fim de formar o modelo de fluxo de trabalho.

Figura 11. Os blocos estruturais de um fluxo de trabalho do Windows Workflow Foundation

A Tabela 2 fornece uma breve descrio de cada atividade, alm de alguns cenrios nos quais seu uso pode ser til. Tabela 2. Blocos estruturais do Windows Workflow Foundation

Apostila Visual Studio 2005

311

Atividade Code

Descrio Permite adicionar cdigo do Microsoft Visual Basic .NET ou do C# ao fluxo de trabalho para executar aes personalizadas. O cdigo no deve, no entanto, bloquear o fluxo de trabalho com uma dependncia de um recurso externo, como um servio da Web. Permite chamar um cdigo para reverter ou compensar operaes j executadas pelo fluxo de trabalho quando ocorre um erro. Normalmente, aconselhvel enviar um e-mail para um usurio que foi notificado anteriormente sobre o sucesso de uma operao que, agora, est sendo cancelada. Permite que seu fluxo de trabalho execute um conjunto de atividades filho de forma condicional, com base em critrios especficos de cada atividade, at que uma condio de concluso seja atendida para o CAG como um todo. As atividades filho so independentes e podem ser executadas em paralelo. Permite controlar o tempo do fluxo de trabalho e insere atrasos nele. Voc pode fornecer um tempo limite na atividade Delay para que o fluxo de trabalho faa uma pausa antes de continuar a execuo. Representa uma seqncia de atividades cuja execuo disparada por um evento. A primeira atividade filho deve ser capaz de aguardar por eventos externos. As primeiras atividades filho viveis so EventSink e Delay. Delay, neste caso, usada como tempo limite. Permite que o fluxo de trabalho receba dados de um servio de troca de dados registrado com WorkflowRuntime quando o servio gerar o evento especificado. Permite manipular uma exceo de um tipo especificado por voc. A atividade ExceptionHandler um invlucro para outras atividades que iro realmente executar qualquer trabalho necessrio quando a exceo especificada ocorrer. Opcionalmente, voc pode especificar uma varivel local para armazenar a exceo e torn-la disponvel no code-behind. Permite que o fluxo de trabalho execute de forma condicional uma das vrias ramificaes alternativas. Voc coloca uma condio em cada ramificao e a primeira ramificao para a qual a condio for verdadeira ser executada. No preciso colocar uma condio na ltima ramificao porque ela tratada como a ramificao "else". Permite que o fluxo de trabalho invoque um mtodo em uma interface para enviar mensagens do fluxo de

Compensate

ConditionedActivityGroup (CAG)

Delay

EventDriven

EventSink

ExceptionHandler

IfElse

InvokeMethod

Apostila Visual Studio 2005

312

Atividade

Descrio trabalho para um servio de troca de dados registrado com WorkflowRuntime.

InvokeWebService

Permite que o fluxo de trabalho invoque um mtodo de servio da Web. Voc especifica a classe de proxy a ser usada (usando WSDL) e o nome do mtodo que deseja invocar. Tanto as chamadas sncronas quanto as assncronas tm suporte. Permite que o fluxo de trabalho chame ou inicie outro fluxo de trabalho, indefinidamente. Por exemplo, um fluxo de trabalho chamado pode chamar um terceiro fluxo de trabalho, que pode chamar um quarto e assim por diante. As chamadas recursivas no tm suporte. O modelo de chamada com suporte o "dispare e esquea" (fire-and-forget). Permite que o fluxo de trabalho aguarde por um de (potencialmente) vrios eventos ou interrompa a espera aps um intervalo de tempo limite especificado e seja ramificado com base nos resultados. Voc pode adicionar uma ou mais atividades orientadas por eventos a cada ramificao. Apenas a primeira ramificao para a qual uma condio for atendida ser seguida; nenhuma das outras ramificaes ser executada. Permite que o fluxo de trabalho execute duas ou mais operaes independentes. A atividade aguarda at que as duas operaes sejam enfechadas antes de continuar. Permite representar e executar uma coleo de regras. Essa atividade no est na caixa de ferramentas; para acessar sua funcionalidade, preciso criar uma atividade personalizada e usar a derivao. Permite que o fluxo de trabalho crie um nmero arbitrrio de instncias de uma determinada atividade e as execute em seqncia ou simultaneamente. Permite que o fluxo de trabalho dados externos por meio de um mtodo definido em um objeto de origem de dados externo. Quando a atividade SelectData disparada, o mtodo associado executado dentro do thread do host. O valor retornado por esse mtodo passado para o fluxo de trabalho. Permite coordenar a execuo serial de um conjunto de atividades filho. A seqncia concluda ao final da ltima atividade filho. Permite que o fluxo de trabalho de mquina de estado especifique uma transio para um novo estado.

InvokeWorkflow

Listen

Parallel

Policy

Replicator

SelectData

Sequence

SetState

Apostila Visual Studio 2005

313

Atividade State StateInitialization

Descrio Representa um estado em um fluxo de trabalho de mquina de estado. Usada dentro de uma atividade State como um recipiente para as atividades filho que so executadas quando h uma transio para o estado. Suspende a operao do fluxo de trabalho para permitir a interveno caso haja alguma condio de erro. Quando uma instncia do fluxo de trabalho suspensa, um erro registrado no log. Voc pode especificar uma seqncia de mensagem para ajudar o administrador a diagnosticar o que aconteceu. Todas as informaes de estado associadas instncia atual so salvas, e ela recuperada quando e se o administrador continuar a execuo. Permite enfechar imediatamente a operao do fluxo de trabalho caso ocorra alguma situao anormal. Se chamada dentro de uma atividade Parallel, todas as ramificaes sero enfechadas abruptamente, seja qual for seu estado atual. Quando um fluxo de trabalho enfechado, um erro registrado no log e uma mensagem ajuda o administrador a descobrir o que aconteceu. Permite acionar uma exceo do tipo especificado. Usar essa atividade equivale a ter um manipulador de cdigo acionando a exceo no cdigo do usurio. A atividade uma forma declarativa de acionar uma exceo do .NET. Um contexto transacional um bloco usado para atividades de grupo. Usada principalmente para execuo transacional, compensao e manipulao de excees, essa atividade pode ser tambm sincronizada. Ao sincronizar um contexto transacional, voc garante que qualquer acesso aos dados compartilhados dentro da atividade ser serializado adequadamente. Permite que o fluxo de trabalho atualize um armazenamento de dados por meio de um mtodo definido em um objeto de origem de dados externo. Quando a atividade UpdateData disparada, o mtodo associado executado dentro do thread do host. Permite que o fluxo de trabalho receba informaes de um objeto de origem de dados externo. A atividade disparada quando os dados recebidos modificam o estado da origem de dados ligada. Os dados so recebidos por meio de um servio de origem de dados ligada.

Suspend

Terminate

Throw

TransactionalContext

UpdateData

WaitForData

Apostila Visual Studio 2005

314

Atividade WaitForQuery

Descrio Permite que um aplicativo externo dados em seu fluxo de trabalho. Essa atividade aguarda at que uma consulta do host seja recebida. As consultas de aplicativos externos so enviadas ao fluxo de trabalho usando um mtodo no servio de origem de dados ligada. Permite que um fluxo de trabalho que exposto como um servio da Web receba, ele mesmo, uma solicitao de servio da Web. Permite que um fluxo de trabalho que exposto como um servio da Web responda, ele mesmo, a uma solicitao de servio da Web. Permite que o fluxo de trabalho execute uma ou mais atividades enquanto uma condio estiver sendo atendida. Antes de cada iterao, a condio avaliada. Se for verdadeira, todas as atividades filho so executadas; caso contrrio, a atividade concluda. Voc pode especificar uma condio declarativa ou de cdigo.

WebServiceReceive

WebServiceResponse

While

As atividades representam a abordagem declarativa programao de fluxos de trabalho com o Windows Workflow Foundation. Usando atividades, voc compe seu modelo de fluxo de trabalho durante o design e atribui valores s propriedades de cada atividade. O resultado final salvo como uma marcao XML em um arquivo de marcao de fluxo de trabalho que possui uma extenso .xoml, se voc tiver optado por um item de fluxo de trabalho com separao de cdigo. Caso contrrio, o modelo composto torna-se persistente em um arquivo de classe do C# ou do Visual Basic .NET gerado pelo designer, como uma seqncia de chamadas para o modelo de objeto do fluxo de trabalho. A primeira abordagem similar s pginas ASP.NET, ao passo que a segunda semelhante ao processo dos aplicativos do Windows Forms. O Visual Studio 2005 oculta a maioria das diferenas entre as duas abordagens. O design do fluxo de trabalho sempre visual, e o Visual Studio 2005 persiste o seu trabalho de forma transparente em um de dois formatos diferentes. Se voc optar por uma soluo apenas em cdigo (sem XOML e separao de cdigo), ter a possibilidade de ajustar o cdigo do designer para torn-lo um pouco mais flexvel. Por exemplo, voc pode fazer com que ele leia valores padro para os parmetros a partir de um arquivo de configurao ou de um banco de dados. Se voc optar pela marcao de fluxo de trabalho e pela separao de cdigo, ter uma separao organizada do cdigo do fluxo de trabalho e de seu modelo. possvel modificar o modelo de fluxo de trabalho atravs de programao? Durante o design, voc pode fazer qualquer coisa com um fluxo de trabalho (atravs de programao) que faria com o Visual Studio. Durante a execuo, tambm possvel fazer atualizaes dinmicas na coleo de atividades, e isso lhe permite fazer alteraes em uma instncia de um fluxo de trabalho em execuo. As alteraes dinmicas so motivadas por alteraes comerciais que no eram conhecidas durante o design ou pela necessidade de lgica comercial que modifique e, depois, conclua o processo comercial. De qualquer forma, poucas alteraes devero ser feitas, apenas pequenos ajustes.

Apostila Visual Studio 2005

315

As atualizaes dinmicas aplicam uma nica instncia do fluxo de trabalho no contexto de um aplicativo. As instncias futuras do mesmo tipo de fluxo de trabalho no sero afetadas pelas alteraes. As atualizaes dinmicas em uma instncia de fluxo de trabalho podem ser feitas a partir da prpria instncia e tambm externamente, a partir do cdigo do aplicativo. A estrutura do Windows Workflow Foundation oferece suporte interoperabilidade com servios da Web, o que inclui a capacidade de expor um fluxo de trabalho como um servio da Web a clientes ASP.NET e a outros fluxos de trabalho. O Windows Workflow Foundation oferece suporte publicao de um fluxo de trabalho como um servio da Web ASP.NET em um servidor Web ou farm de servidores executando o ASP.NET no Microsoft IIS 6.0. O conjunto de atividades da estrutura do Windows Workflow Foundation contm as atividades WebServiceReceive e WebServiceResponse, que permitem que um fluxo de trabalho seja usado como ponto de extremidade de servios da Web. Para ser exposto como um servio da Web, um fluxo de trabalho deve incluir uma atividade WebServiceReceive para receber chamadas de clientes. Um comando de menu de atalho publica o fluxo de trabalho como um servio da Web, como mostrado na Figura 12.

Figura 12. Publicao de um fluxo de trabalho como um servio da Web

Desenvolvendo uma atividade personalizada


O ponto-chave da extensibilidade no Windows Workflow Foundation a autoria de atividades personalizadas, j que isso permite expandir o conjunto de blocos estruturais que voc pode usar para criar modelos de fluxo de trabalho. Vamos explorar a arquitetura interna de uma atividade desenvolvendo uma atividade personalizada para enviar mensagens de email. O Windows Workflow Foundation fornece um modelo pronto do Visual Studio 2005 para atividades personalizadas. Ele se chama Workflow Activity Library. O modelo cria um arquivo em C# que voc pode renomear como quiser por exemplo, SendMailActivity. Uma atividade uma classe bsica herdeira de uma classe pai. Voc pode derivar sua atividade de qualquer outra existente, seja ela uma das atividades internas ou uma criada por voc mesmo, ou ainda adquirida de um fornecedor terceiro.

Apostila Visual Studio 2005

316

Obviamente, a classe pai adiciona um comportamento predefinido ao novo componente. Para criar uma atividade totalmente a partir do zero, faa com que ela seja derivada de Activity. O exemplo de cdigo a seguir mostra o esqueleto da nova classe. public partial class SendMailActivity : System.Workflow.ComponentModel.Activity { public SendMailActivity() { InitializeComponent(); } protected override Status Execute(ActivityExecutionContext context) { : } } Como voc pode supor, o mtodo Execute o corao do componente ou seja, ele o local onde so executadas as tarefas centrais do componente. Uma vez desenvolvida, uma atividade colocada na caixa de ferramentas e est pronta para operaes de arrastar e soltar para novos aplicativos de fluxo de trabalho. Embora uma lista de propriedades no seja um requisito, uma atividade sem propriedades no tem grande utilidade. Para adicionar algumas propriedades, selecione a atividade que est sendo desenvolvida no designer e clique na entrada Activity Properties do painel Properties (veja a Figura 13).

Apostila Visual Studio 2005

317

Figura 13. Adicionando propriedades a uma atividade personalizada

Adicionar propriedades a uma atividade no muito diferente de adicionar parmetros a um fluxo de trabalho. Tudo o que voc tna fazer configurar um nome e os atributos de cada propriedade desejada. A Figura 14 mostra como adicionar uma propriedade To atividade SendMail.

Figura 14. A propriedade To adicionada atividade SendMail

Para concluir, vamos adicionar outras propriedades, como From, Subject, Body e Host, para que os usurios possam configurar completamente os emails enviados.

Apostila Visual Studio 2005

318

medida que voc adiciona propriedades, o assistente modifica o arquivo codebehind em C# que contm a lgica da atividade. A etapa final elabora um pouco o mtodo Execute, instruindo-o a enviar um email quando a atividade for executada. protected override Status Execute(ActivityExecutionContext context) { MailAddress toAddress = new MailAddress(To); MailAddress fromAddress = new MailAddress(From); MailAddressCollection addresses = new MailAddressCollection(); addresses.Add(toAddress); MailMessage msg = new MailMessage(fromAddress, toAddress); msg.Subject = Subject; msg.Body = Body; SmtpClient mail = new SmtpClient(Host); mail.Send(msg); return Status.Closed; } Se voc desenvoltar o projeto da atividade dentro de uma soluo de fluxo de trabalho, o documento do fluxo de trabalho localizar automaticamente a nova atividade listada na caixa de ferramentas, como mostrado na Figura 15. Caso contrrio, voc ter que adicion-la clicando com o boto direito do mouse na caixa de ferramentas.

Apostila Visual Studio 2005

319

Figura 15. A atividade SendMail destacada na caixa de ferramentas

A Figura 16 demonstra que a atividade SendMail realmente funciona.

Figura 16. A atividade SendMail em ao

Planejando um fluxo de trabalho mais realista Vamos ver como combinar algumas das atividades listadas na Tabela 2 para resolver uma tarefa mais realista. Imagine um aplicativo comercial no qual um pedido pode passar por vrios estados antes de ser concludo. Em um cenrio

Apostila Visual Studio 2005

320

tpico, existem regras que indicam quais eventos podem ocorrer em um pedido, dependendo de seu estado atual. Por exemplo, um pedido em aberto pode ser processado ou atualizado, mas no cancelado nem embarcado. Quando ocorre um evento, um fluxo de trabalho de mquina de estado faz a transio de estado do pedido. Por exemplo, quando um pedido est em aberto e o evento BeingProcessed ocorre, o fluxo de trabalho de mquina de estado faz a transio do pedido para o estado apropriado. A Figura 17 mostra o diagrama de um exemplo de fluxo de trabalho de mquina de estado de pedido.

Figura 17. Um esquema de exemplo para uma mquina de estado que gerencia pedidos

Vamos comear criando um fluxo de trabalho de mquina de estado. Voc usar a atividade State para modelar os possveis estados de um pedido. Em seguida, especificar os eventos que podem ocorrer a partir de cada estado, usando atividades EventDriven. Os eventos externos capturados por meio de um servio personalizado faro a transio do estado do pedido. Para fazer a transio, voc usar a atividade SetState. Depois de elaborar o fluxo de trabalho, voc o colocar prova usando um aplicativo host do Windows Forms. Um fluxo de trabalho se comunica com o mundo exterior por meio de um servio estabelecido especificamente para essa finalidade. O servio gera eventos que sero conectados pelas atividades orientadas por eventos, localizadas dentro do fluxo de trabalho. Da mesma forma, o servio expe mtodos pblicos para que o fluxo de trabalho chame e envie dados ao host. Os mtodos e os eventos so definidos em uma interface. Essa interface tambm conhecida como servio de troca de dados. Voc precisa desse servio sempre que o fluxo de trabalho interage com componentes externos, tanto na entrada quanto na sada. Um servio de troca de dados uma biblioteca de classes regular do .NET que, no mnimo, inclui uma definio de interface e uma classe que implementa essa interface. A interface adaptada s tarefas que voc deseja representar. Neste caso, uma mquina de estado que representa o ciclo de vida de um pedido, a interface consiste em cinco eventos. [DataExchangeService] public interface IOrderService { event EventHandler<OrderEventArgs> OrderCreated; event EventHandler<OrderEventArgs> OrderShipped;

Apostila Visual Studio 2005

321

event EventHandler<OrderEventArgs> OrderUpdated; event EventHandler<OrderEventArgs> OrderProcessed; event EventHandler<OrderEventArgs> OrderCanceled; } O atributo [DataExchangeService] marca IOrderService como uma interface do servio de troca de dados para que o tempo de execuo do fluxo de trabalho saiba que ser usado para trocar dados com a instncia do fluxo de trabalho. Neste caso, o host enviar dados para a instncia do fluxo de trabalho gerando eventos para um grupo de atividades EventDriven. Caso seja necessrio, a interface IOrderService pode ser chamada de dentro da instncia do fluxo de trabalho por meio da atividade InvokeMethod. A declarao de evento da interface usa genricos, que so um timo novo recurso do .NET Framework 2.0. A classe EventHandler um delegado que representa o prottipo da funo usada para manipular o evento. No .NET Framework 1.x, EventHandler foi definida da seguinte forma. void EventHandler(object sender, EventArgs e) Para fazer com que o evento passe uma estrutura de dados personalizada como OrderEventArgs, voc deve criar um novo delegado e us-lo no lugar de EventHandler. Segue um exemplo. delegate void OrderEventHandler(object sender, OrderEventArgs e) Esse padro ainda funciona no .NET Framework 2.0. O advento dos genricos no .NET Framework 2.0, porm, torna possvel obter o mesmo resultado sem definir explicitamente (e criar uma instncia de) uma nova classe de delegado. Voc usa a verso genrica do delegado EventHandler<T>, na qual o tipo dos dados do evento um parmetro. Os eventos passam dados de cliente do tipo OrderEventArgs, uma classe personalizada que derivada da classe WorkflowMessageEventArgs do Windows Workflow Foundation, definida no mesmo assembly, como a seguir. [Serializable] public class OrderEventArgs : WorkflowMessageEventArgs { private string _orderId; public OrderEventArgs(Guid instanceId, string orderId) : base(instanceId) { _orderId = orderId; } public string OrderId { get { return _orderId; } set { _orderId = value; } }

Apostila Visual Studio 2005

322

} Na prxima etapa, voc define uma classe que implementa a interface. A classe ter tantos mtodos pblicos quantos forem os eventos na interface a serem gerados. public class OrderService : IOrderService { public OrderService() { } public void RaiseOrderCreatedEvent(string orderId, Guid instanceId) { if (OrderCreated != null) OrderCreated(null, new OrderEventArgs(instanceId, orderId)); } public void RaiseOrderShippedEvent(string orderId, Guid instanceId) { if (OrderShipped != null) OrderShipped(null, new OrderEventArgs(instanceId, orderId)); } public void RaiseOrderUpdatedEvent(string orderId, Guid instanceId) { if (OrderUpdated != null) OrderUpdated(null, new OrderEventArgs(instanceId, orderId)); } public void RaiseOrderProcessedEvent(string orderId, Guid instanceId) { if (OrderProcessed != null) OrderProcessed(null, new OrderEventArgs(instanceId, orderId)); } public void RaiseOrderCanceledEvent(string orderId, Guid instanceId) { if (OrderCanceled != null) OrderCanceled(null, new OrderEventArgs(instanceId, orderId)); } public event EventHandler<OrderEventArgs> OrderCreated; public event EventHandler<OrderEventArgs> OrderShipped; public event EventHandler<OrderEventArgs> OrderUpdated;

Apostila Visual Studio 2005

323

public event EventHandler<OrderEventArgs> OrderProcessed; public event EventHandler<OrderEventArgs> OrderCanceled; } Agora, voc compila o assembly com o servio de pedidos e volta para o projeto do fluxo de trabalho de mquina de estado. No projeto do fluxo de trabalho, voc primeiro adiciona uma referncia ao assembly que acabou de criar. Em seguida, adiciona quatro atividades State e as nomeia da seguinte forma: WaitingForOrderState, OrderOpenState, OrderProcessedState, OrderCompletedState. A Tabela 3 representa o diagrama de estado do fluxo de trabalho. Cada estado possui alguns eventos capazes de causar uma transio para outro estado. Tabela 3. Um exemplo de mquina de estado para pedidos Estado Eventos com suporte Transio para OrderOpenState OrderOpenState OrderProcessedState OrderOpenState Atividade Terminate OrderCompletedState

WaitingForOrderState OrderCreated OrderOpenState OrderProcessedState OrderUpdated OrderProcessed OrderUpdated OrderCanceled OrderShipped

OrderCompletedState

Para implementar o diagrama, voc adiciona cada atividade State como tantos blocos EventDriven quantos forem os eventos suportados da tabela. Por exemplo, a atividade State chamada WaitingForOrderState conter uma nica atividade EventDriven chamada, por exemplo, OrderCreatedEvent (o nome arbitrrio). Como mostrado na Figura 18, a atividade EventDriven incorpora uma atividade EventSink e uma atividade SetState para capturar o evento externo e fazer a transio para um novo estado.

Apostila Visual Studio 2005

324

Figura 18. Uma viso interna da atividade EventDriven de OrderCreatedEvent

No painel Properties da atividade EventSink, voc seleciona o servio de troca de dados desejado a interface IOrderService, neste caso e o nome do evento para inscrio. Se voc clicar na entrada InterfaceType do painel Properties da atividade EventSink, o Visual Studio 2005 fornecer uma lista dos servios de troca de dados disponveis para o projeto. Uma vez selecionado o servio, a propriedade EventName refletir a lista de eventos expostos pelo servio. Voc seleciona o evento de seu interesse e segue em frente. Para a atividade OrderCreatedEvent, selecione o evento OrderCreated. A atividade SetState faz a transio da mquina para o novo estado indicado por sua propriedade TargetState. A atividade SetState da Figura 18 est definida para OrderOpenState. Voc repete a operao acima para todos os estados e coletores de eventos da Tabela 3 e, no final, seu fluxo de trabalho dever se parecer com o da Figura 19.

Apostila Visual Studio 2005

325

Figura 19. A mquina de estado de pedidos finalizada

A etapa final envolve a criao de um aplicativo do Windows Forms para testar o fluxo de trabalho. A interface do usurio inclui um modo de exibio de lista para controlar todos os pedidos pendentes e uma caixa de texto e um boto para criar novos pedidos. Outros botes sero usados para atualizar, processar e enfechar o pedido. O fluxo de trabalho de mquina de estado inicializado no evento Form_Load. A inicializao de um fluxo de trabalho de mquina de estado um pouco mais complexa que a de um fluxo de trabalho seqencial, principalmente se voc quiser ser capaz de controlar alteraes de estado. O exemplo de cdigo a seguir mostra como inicializar o tempo de execuo do fluxo de trabalho. private void StartWorkflowRuntime() { // Create a new Workflow Runtime for this application _runtime = new WorkflowRuntime(); // Register event handlers for the WorkflowRuntime object _runtime.WorkflowTerminated += new EventHandler<WorkflowTerminatedEventArgs>(WorkflowRuntime_WorkflowTermin ated); _runtime.WorkflowCompleted += new EventHandler<WorkflowCompletedEventArgs>(WorkflowRuntime_WorkflowComplet ed); // Create a new instance of the StateMachineTrackingService class

Apostila Visual Studio 2005

326

_stateMachineTrackingService = new StateMachineTrackingService(_runtime); // Start the workflow runtime _runtime.StartRuntime(); // Add a new instance of the OrderService to the runtime _orderService = new OrderService(); _runtime.AddService(_orderService); } O StateMachineTrackingService funciona sobre o tempo de execuo e o estende com a capacidade de controlar alteraes de estado no fluxo de trabalho. Uma instncia do servio de troca de dados tambm adicionada ao tempo de execuo. Quando os usurios clicam para criar um novo pedido, o seguinte cdigo executado. private Guid StartOrderWorkflow(string orderID) { // Create a new GUID for the WorkflowInstanceId Guid instanceID = Guid.NewGuid(); // Load the OrderWorkflows assembly Assembly asm = Assembly.Load("OrderWorkflows"); // Get a type reference to the OrderWorkflows.Workflow1 class Type workflowType = asm.GetType("OrderWorkflows.Workflow1"); // Start a new instance of the state machine with state tracking support StateMachineInstance stateMachine = _stateMachineTrackingService.RegisterInstance(workflowType, instanceID); stateMachine.StateChanged += new EventHandler<ActivityEventArgs>(StateMachine_StateChanged); stateMachine.StartWorkflow(); _stateMachineInstances.Add(instanceID.ToString(), stateMachine); // Return the workflow GUID return instanceID; } Primeiro, o cdigo cria a instncia do fluxo de trabalho e registra um manipulador de eventos para as alteraes de estado. Observe que o uso da Reflexo do .NET para a obteno das informaes de tipo no estritamente necessrio, mas adiciona muita flexibilidade. O velho e simples operador typeof tambm funcionaria

Apostila Visual Studio 2005

327

bem para comunicar o tipo de instncia de fluxo de trabalho ao tempo de execuo do fluxo de trabalho. A Figura 20 mostra o aplicativo de exemplo em ao. Os botes so habilitados com base no estado da instncia de fluxo de trabalho selecionada.

Figura 20. O fluxo de trabalho de mquina de estado hospedado em um aplicativo do Windows Forms Quando o usurio clica em um determinado boto, o evento correspondente na interface de comunicao gerado e capturado pelo coletor de eventos do fluxo de trabalho. Por exemplo, um clique no boto Order Processed de uma instncia do fluxo de trabalho no estado em aberto manipulado da seguinte forma. private void btnOrderEvent_Click(object sender, EventArgs e) { // Get the name of the clicked button string buttonName = ((Button)sender).Name; // Get the GUID of the selected order Guid instanceID = GetSelectedWorkflowInstanceID(); // Get the ID of the selected order string orderID = GetSelectedOrderID(); // Disable buttons before proceeding DisableButtons(); // Determines what to do based on the name of the clicked button switch(buttonName) { // Raise an OrderShipped event using the Order Local Service case "btnOrderShipped": _orderService.RaiseOrderShippedEvent(orderID, instanceID); break;

Apostila Visual Studio 2005

328

// Raise an OrderUpdated event using the Order Local Service case "btnOrderUpdated": _orderService.RaiseOrderUpdatedEvent(orderID, instanceID); break; // Raise an OrderCanceled event using the Order Local Service case "btnOrderCanceled": _orderService.RaiseOrderCanceledEvent(orderID, instanceID); break; // Raise an OrderProcessed event using the Order Local Service case "btnOrderProcessed": _orderService.RaiseOrderProcessedEvent(orderID, instanceID); break; } } O evento gerado no fluxo de trabalho capturado pela atividade EventDriven da Figura 21.

Figura 21. O bloco EventDriven da mquina de estado para manipular o evento Order Processed

A atividade EventSink captura o evento e o processa fazendo a transio para o estado definido pela atividade SetState. A alterao de estado no fluxo de trabalho detectada pelo servio adicional de controle de estado e reportada ao host por meio do evento StateChanged, como mostrado nas listagens anteriores. Voc encontrar o cdigo-fonte completo de todos os exemplos discutidos neste documento e muito mais contedo para fluxos de trabalho em http://msdn.microsoft.com/workflow.

Concluso
Projetado para se tornar a estrutura de fluxo de trabalho para produtos da Microsoft novos e j existentes, o Windows Workflow Foundation fornece a potncia do WinFX e a facilidade de uso do Visual Studio 2005 para todos os desenvolvedores que precisem criar aplicativos orientados por fluxo de trabalho para a plataforma .NET.

Apostila Visual Studio 2005

329

O principal benefcio do Windows Workflow Foundation um modelo de fluxo de trabalho unificado e um conjunto de ferramentas que substitui muitas bibliotecas proprietrias. Sob este aspecto, o Windows Workflow Foundation tambm de grande importncia para os fornecedores dos atuais produtos de fluxo de trabalho, j que sua adoo significa que eles no precisaro mais manter seu cdigo de nvel baixo e podero se concentrar em tarefas de nvel mais alto. O Windows Workflow Foundation uma tecnologia de fluxo de trabalho projetada para atender a mais de um tipo especfico de aplicativo e necessidades. Ele uma estrutura ampla, arquitetada para fornecer extensibilidade em todos os nveis. Os melhores exemplos dessa forma de extensibilidade so as atividades personalizadas e os servios de tempo de execuo que podem ser conectados. As atividades personalizadas permitnestender o conjunto de blocos estruturais que voc pode usar para criar fluxos de trabalho. Os servios de tempo de execuo, como a persistncia e o controle, podem ser alterados de acordo com o ambiente do aplicativo e para criar a persistncia no Microsoft SQL Server o em bancos de dados de outros fornecedores. As extenses do Visual Studio 2005 para o Windows Workflow Foundation permitiro a modelagem visual de fluxos de trabalho e tambm o acesso direto ao cdigo. O designer visual tambm pode ser hospedado em outros ambientes de design, permitindo que os provedores de designers incorporem o recurso de modelagem visual a seus prprios ambientes e forneam uma experincia familiar aos usurios do aplicativo. Este artigo apenas cobriu superficialmente as tecnologias e os recursos do Windows Workflow Foundation, apresentando uma viso geral de seu funcionamento, de sua parte interna e do cdigo de exemplo mais importante.

Apostila Visual Studio 2005

330

Usando o WinFX
Introduo Como de costume, a Microsoft j espalhou pelos quatro cantos do mundo as novas tecnologias que foram lanadas neste ano (2006). Uma dela o WinFX. Vamos ver neste artigo como instalar o SDK dessa nova plataforma de desenvolvimento. No vou entrar em detalhes sobre o que , de onde vem e do que formado o WinFX. Para isso, sugiro uma consulta ao site oficial do Windows Vista (veja nas referncias do artigo). Este documento baseado no "Get the Beta" oficial sobre Windows Vista e todos os links de download apontam para as verses CTP de fevereiro. O exemplo no fim do artigo foi desenvolvido com a verso de janeiro, entretanto o procedimento praticamente o mesmo para as duas. 2 - Requisitos bsicos Todos os componentes listados abaixo devem ser instalados em uma das seguintes verses do Windows: Vista, XP Service Pack 2 ou Server 2003 Service Pack 1. 3 - Instrues Faa a instalao dos componentes abaixo na ordem em que eles aparecem para download. 4 - WinFX RC (Runtime Components) Da mesma forma que o framework .NET precisa de uma verso redistributable que deve ser instalada nos clientes, o WinFX tambm precisa de um runtime. Faa o download dele aqui: http://www.microsoft.com/downloads/details.aspx?FamilyId=F51C4D96-9AEA474F-86D3-172BFA3B828B&displaylang=en Se voc deseja somente rodar aplicaes que usam WinFX, basta instalar este RC. Entretanto, se pretende desenvoltar, veja abaixo quais so os outros requisitos. 5 - Windows SDK O novo kit de desenvolvimento do Windows que nos possibilita desenvoltar aplicaes usando a tecnologia WinFX. Link para download: http://www.microsoft.com/downloads/details.aspx?FamilyId=9BE1FC7F-054247F1-88DD-61E3EF88C402&displaylang=en No estranhe, gigante o tamanho do arquivo. 6 - Orcas O Orcas nos permite desenvoltar aplicaes com suporte as caractersticas do WinFX. Em outras palavras, ao instalar essa ferramenta voc ter suporte a Intellisense para XAML, templates para a criao de aplicaes usando WinFX, etc., tudo isso usando o Visual Studio. Essa ferramenta tambm pode ser instalada nas verses Express do Visual Studio 2005.

Apostila Visual Studio 2005

331

Download do Orcas: http://www.microsoft.com/downloads/details.aspx?FamilyId=AD0CE56E-D7B644BC-910D-E91F3E370477&displaylang=en 7 - Criando a aplicao Abra o Visual Studio (aqui estou usando a verso Express) e clique em File / New Project. Em Project Types seleciona Visual C# e perceba que na lista de templates j aparecem os referentes ao WinFX. Veja:

Selecione o template Console Application e vamos criar um exemplo bem simples: o famoso Hele World (um pouco diferente do convencional). Aps clicar no boto OK sua aplicao ser criada. Para usar o SDK instalado anteriormente, vamos adicionar uma referncia a um dos namespaces que precisamos para criar o Hele World. Clique com o boto direito sobre o projeto e selecione Add Reference. Navegue at a aba .NET e busque pelo System.Speech. Veja:

Apostila Visual Studio 2005

332

Clique no boto OK para confirmar. No arquivo Program.cs que vamos criar o cdigo para o nosso Hele World. Abre ele e adicione um using ao namespace System.Speech.Synthesis. Deve ficar da seguinte forma:

No mtodo main, digite o seguinte cdigo:

Compile o cdigo e rode (Ctrl+F5). Ps: ligue o som.

- Referncias Microsoft Windows Vista Developer Center http://msdn.microsoft.com/windowsvista/ Windows Vista and WinFX Beta Page http://msdn.microsoft.com/windowsvista/getthebeta/default.aspx Windows Presentation Foundation http://msdn.microsoft.com/windowsvista/building/presentation/

Apostila Visual Studio 2005

333

Introduo ao Managed DirectX com C# no VS .NET 2003


O DirectX uma das principais APIs de Desenvolvimento de Jogos da atualidade. Foi desenvolvido pela Microsoft e hoje est na verso 9.0, porm, com um diferencial, o DirectX agora tem uma verso suportada pela .NET Framework, este o Managed DirectX, desta forma podemos utiliz-lo facilmente com cdigo gerenciado no Visual Studio .NET ou SharpDevelop sem maiores transtornos em relao a importao da biblioteca como veremos. Este tutorial aborda os princpios bsicos de utilizao do Managed DirectX para Desenvolvimento de Jogos e Aplicativos Grficos na plataforma .NET, no entanto, este tutorial no se aprofunda suficientemente a ponto de ser um guia para Desenvolvimento de Jogos. Este artigo aborda: Managed DirectX; Visual Studio .NET 2003; C#.NET;

Requerimentos
Microsoft .NET Framework 1.1 (Atualmente a .NET Framework est na verso 3.0, porm este tutorial foi escrito quando a Framework estava na verso 1.1. Este tutorial no foi feito para a verso 2.0, portanto no recomendado utilizar ferramentas Express para seguir os exemplos pois estas ferramentas utilizam a Framework 2.0) Microsoft Visual Studio .NET 2003 (Este tutorial aborda Microsoft Visual Studio, porm o mesmo pode ser feito alguma outra ferramenta de desenvolvimento em .NET como o SharpDevelop) Microsoft Managed DirectX 9.0 SDK (Note que este tutorial aborda a SDK com atualizao de Outubro de 2005, verses posteriores a esta data podem apresentar mudanas significativas, fazendo com que certos cdigos no executem ou apresentem algumas falhas) Conhecimento bsico sobre a .NET Framework e na linguagem C# (Este tutorial aborda C#.NET, porm pode ser implementado em VB.NET ou C++.NET. Para seguir este tutorial recomendado que se tenha algum conhecimento em .NET, porm possvel seguir os exemplos durante o aprendizado pois seu contedo bsico)

Apostila Visual Studio 2005

334

A Instalao
O arquivo necessrio para a instalao do SDK do Managed DirectX pode ser
adquirido gratuitamente atravs do site da Microsoft: http://www.microsoft.com/downloads/ A SDK do DirectX tambm pode ser encontrada em outros sites na internet ou at mesmo em programas como o eMule pois gratuita. Descompacte o arquivo para um local de sua escolha e execute Install.exe:

Em seguida, escolha a opo de instalar o SDK em seu computador:

O programa de instalao ser carregado para que voc escolha as opes de sua instalao. As opes j esto pr-configuradas, ento as deixe como esto e mude apenas o caminho da instalao se lhe for conveniente:

Aps a instalao, entre no diretrio C:\WINDOWS\Microsoft.NET\Managed DirectX\v4.09.00.0900 e note que foram adicionados os arquivos DLLs do DirectX e seus respectivos XMLs.

Apostila Visual Studio 2005

335

Os arquivos com extenso .dll so na verdade os Namespaces que vamos adicionar aos nossos projetos. Estes Namespaces contm as classes e mtodos necessrios para criarmos uma aplicao com DirectX em ambiente gerenciado. Os de extenso .xml, so arquivos de documentao, que contm uma breve explicao de cada uma das classes e seus respectivos mtodos. Esta documentao XML, utilizada pelo Visual Studio (ou no Sharp Develop) pelo IntelliSense, mostrando as informaes em forma de AlternateText. Uma vez que estas dlls esto no diretrio correto, a instalao est concluda e j possvel criar projetos DirectX em seu Visual Studio.

Preparando o Visual Studio e Iniciando o DirectX


Abra o Visual Studio .NET 2003 e crie um novo projeto e selecione a linguagem que ir usar. Neste tutorial usaremos C#. Selecione o tipo de aplicao que ir criar, neste caso, Windows Application e nomeie o projeto:

Como a .NET Framework 1.1 no tem Refactory, aps criar seu projeto, eu normalmente apago o formulrio Form1.cs e crio outro formulrio com um nome mais apropriado para no ter que alterar o nome da Classe, do Mtodo Construtor e do Namespace manualmente; ento neste caso, eu criei um novo formulrio de nome FormMDX9, mas isso no necessrio, voc pode deixar como est ou criar um outro com o nome que voc achar melhor. Por enquanto, no necessrio alterar o visual do novo Form, mas vou alterar as propriedades Text e Icon do meu FormMDX9. Se quiser pode fazer o mesmo. Agora que criamos o projeto, vamos adicionar as referencias do DirectX em nosso projeto. Para isso, v ao Solution Explorer que normalmente fica direita em sua IDE (caso no aparea, v ao menu View e clique em Solution Explorer); Clique com o boto direito na pasta References, e em seguida clique em Add Refrence. Na janela que ser aberto, procure pelos seguintes Namespaces: Microsoft.DirectX Microsoft.DirectX.Direct3D Por mais que isto seja simples, clicar aqui e ali, depois next, next e finish, sempre importante saber o que estamos fazendo ou com o que estamos lidando.

Apostila Visual Studio 2005

336

Certo. Agora que sabemos do que estamos falando, vamos adicionar os Namespace para o nosso projeto:

Ainda no Solution Explorer, clique com o boto direito no seu projeto e adicione uma nova pasta chamada Classes. sempre importante organizar o projeto separando os arquivos por tipo ou algum critrio lgico. Neste tutorial vamos criar uma classe que acessa cdigo externo, ento clique com o boto direito na pasta e adicione uma nova classe de nome LibMethods:

Apostila Visual Studio 2005

337

Por enquanto vamos deixar esta classe de lado, e mais frente vamos escrever o cdigo que vamos utilizar.
Voltando ao Form principal, no meu caso FormMDX9.cs, clique com o boto direito em FormMDX9.cs e em seguida clique em View Code. No topo desta classe esto as clausulas using, que so na verdade as chamadas dos Namespaces que vamos utilizar. Adicione as seguintes linhas: using Microsoft.DirectX; using Microsoft.DirectX.Direct3D; Estas linhas vo simplesmente encurtar o caminho para a chamada dos objetos de determinados Namespaces. Se no utilizssemos as clausulas using, teramos que digitar todo o caminho dos objetos todas as vezes que quisssemos manipullo. Agora, vamos ao cdigo. O que iremos fazer agora instanciar os objetos do DirectX em nosso cdigo. Estes objetos sero adicionados antes do mtodo construtor, de forma que todos os mtodos da classe possam acesslos. private Device myDevice = null; private PresentParameters parametros = null; private Caps dxCaps; private DisplayMode visualizacao; private bool janela; Certo, mas pra que servem estas variveis que acabamos de criar? O tipo Device na verdade, a representao de um dispositivo fsico. Este objeto ir representar sua placa de vdeo. O PresentParameters um tipo de objeto que define os como os dados sero apresentados na tela. O prximo item que criamos um objeto do tipo Caps, que uma estrutura do Direct3D; este objeto responsvel por listar em tempo de execuo as possveis configuraes que o dispositivo poder suportar (capability). O tipo DisplayMode o objeto que ir listar em tempo de execuo os modos de exibio suportados pelo dispositivo. E por ultimo, criamos uma varivel booleana para definir se a aplicao ir executar em modo Full Screen ou Windowed. Agora vamos para o construtor. Vamos atribuir valor para a varivel janela de forma que nossa aplicao no seja iniciada em Full Screen. Este mtodo, o

Apostila Visual Studio 2005

338

mtodo construtor do formulrio, e por padro chamado quando a aplicao for iniciada: public FormMDX9() { InitializeComponent(); janela = true; } Para melhorar a forma que apresentamos nossa aplicao, vamos adicionar uma sobrecarga do mtodo construtor de forma que possamos definir o tamanho da janela em caso de no usarmos modo Windowed, mas sim Full Screen. Ento, crie um novo mtodo da seguinte forma: public FormMDX9(bool modoJanela, int larg, int alt) { InitializeComponent(); janela = modoJanela; this.ClientSize = new Size(larg, alt); } Este mtodo ser chamado pelo mtodo Main() em substituio ao construtor padro. Conforme podemos ver, a esta sobrecarga tem parmetros, que so utilizados na atribuio de valores para a booleana janela, e para a propriedade Size do nosso formulrio. A forma de cham-lo ser diferente, de forma que o construtor padro seja chamado apenas se no for possvel utilizar o modo Full Screen. A partir de agora, vamos definir os mtodos de inicializao do DirectX. Nesta parte iremos usar as variareis que criamos no inicio desta classe. Vamos criar a funo IniciarGraficos() que ser responsvel por verificar o dispositivo e retornar o modo de visualizao possvel:

Apostila Visual Studio 2005

339

O mtodo acima ir basicamente tentar criar um Device da melhor forma possvel. Caso o valor de retorno do mtodo ParametrosDeExibicao() seja falso, o valor de retorno de IniciarGraficos() tambm ser falso, e no ser possvel executar a aplicao. ParametrosDeExibicao() ser a prxima funo a ser criada. Seu valor de retorno um PresentParameters que ser utilizado na criao do Device. Esta funo necessria; se a mesma no existir, no poderemos utilizar esta estrutura para atribuir os valores dinamicamente. Caso haja alguma exceo na criao do Device, o mtodo retornar falso. Ento vamos criar um novo mtodo chamado ParametrosDeExibicao: public bool ParametrosDeExibicao() { parametros = new PresentParameters(); Format adaptorFormat = (telaCheia) ? visualizacao.Format : Format.X8R8G8B8; if ( Manager.CheckDeviceFormat( 0, DeviceType.Hardware, adaptorFormat, Usage.DepthStencil, ResourceType.Surface, DepthFormat.D24S8 ) ) { parametros.AutoDepthStencilFormat = DepthFormat.D24S8; } else if ( Manager.CheckDeviceFormat( 0, DeviceType.Hardware, adaptorFormat, Usage.DepthStencil, ResourceType.Surface, DepthFormat.D24X8 ) ) { parametros.AutoDepthStencilFormat = DepthFormat.D24X8;

Apostila Visual Studio 2005

340

} else if ( Manager.CheckDeviceFormat( 0, DeviceType.Hardware, adaptorFormat, Usage.DepthStencil, ResourceType.Surface, DepthFormat.D16 ) ) { parametros.AutoDepthStencilFormat = DepthFormat.D16; } else { return false; } parametros.BackBufferWidth = (janela) ? 0 : visualizacao.Width; parametros.BackBufferHeight = (janela) ? 0 : visualizacao.Height; parametros.BackBufferFormat = adaptorFormat; parametros.BackBufferCount = 1; parametros.MultiSample = MultiSampleType.None; parametros.MultiSampleQuality = 0; parametros.SwapEffect = SwapEffect.Discard; parametros.DeviceWindow = this; parametros.Windowed = janela; parametros.EnableAutoDepthStencil = true; parametros.PresentFlag = PresentFlag.DiscardDepthStencil; parametros.FullScreenRefreshRateInHz = (janela) ? 0: visualizacao.RefreshRate; parametros.PresentationInterval = PresentInterval.Immediate; return true; } Este mtodo, como j foi dito, tem o objetivo de definir os valores de certas propriedades necessrias para a inicializao do DirectX. Sua tarefa basicamente definir a quantidade de cores usadas e setar os parmetros especficos do carregamento. Caso no suporte nenhuma das resolues de cores, seu valor de retorno ser falso e consequentemente, o mtodo anterior no ser executado. Estes so os dois mtodos principais para a inicializao do DirectX, porm, vamos criar tambm os mtodos necessrios para a renderizao de cenas para uma eventual animao que podemos utilizar futuramente. Tambm iremos criar outros mtodos para estruturarmos melhor nossa aplicao. Ento vamos ao cdigo. Crie um novo mtodo chamado Renderizar(): private void Renderizar() { myDevice.Clear(ClearFlags.Target, Color.Navy, 1.0f, 0); myDevice.BeginScene(); // No temos nada para renderizar agora. // Vamos deixar este mtodo de lado por enquanto myDevice.EndScene(); myDevice.Present(); } Este mtodo vai limpar o Device, no caso a superfcie de nosso Form, utilizando os parmetros passados na chamada de myDevice.Clear, como por exemplo a cor, que definida como uma propriedade de Color. E logo aps isso ir criar a cena, tratar as instrues que pode se seguir para os frames em questo, terminar a cena e mostrar a renderizao. Uma coisa importante a respeito deste mtodo a chamada de BeginScene() e EndScene(). Estes dois mtodos so como o incio e o fechamento de um bloco, ou seja, sempre que BeginScene for chamado, deve haver um EndScene. Vamos tambm criar um mtodo responsvel por capturar as teclas pressionadas pelo usurio. Inicialmente, vamos apenas capturar a tecla ESC para permitir que o usurio possa sair do programa quando este estiver em tela cheia, mas com este mesmo mtodo seria possvel adicionar outras opes de capturas. Veja o cdigo: protected override void OnKeyDown(KeyEventArgs e) { base.OnKeyDown(e); switch (e.KeyCode) {

Apostila Visual Studio 2005

341

case Keys.Escape: this.Close(); break; } } Neste mtodo, estamos fazendo um override sobre um mtodo que j existe, o OnKeyDown. O que acontece acima simples: o mtodo chamado quando o evento ao pressionar uma tecla disparado. O valor da tecla pressionada armazenado em e, que ser a varivel utilizada no switch. Existem dois outros mtodos que sero importantes para o funcionamento completo de nossa aplicao. Estes mtodos faro chamada da renderizao e iro desenhar as primitivas ou os objetos que quisemos exibir. private void OnApplicationIdle( object sender, EventArgs e ) { while(!AppStillIdle) { Renderizar(); } } Este mtodo chamado quando o evento Est Inativo for disparado. Durante a execuo deste mtodo, o valor da propriedade AppStillIdle (Aplicao continua Inativa), e enquanto a aplicao estiver diferente do estado de inatividade, ser chamado o mtodo Renderizar(), que no nosso no faz nada alm de criar uma cena vazia. A propriedade AppStillIdle, do tipo booleano, e como podemos ver pelo cdigo abaixo, ReadOnly, pois no possvel inserir valores nela. Esta propriedade simplesmente retorna o valor de PeekMessage atravs de um get, que por sua vez est sendo chamada na classe que separamos anteriormente. Veja o cdigo: private bool AppStillIdle { get { ProjMDX9.LibMothods.Message msg; return !LibMothods.PeekMessage(out msg, IntPtr.Zero, 0, 0, 0); } } Agora, vamos ao cdigo da classe LibMethods. A primeira coisa que devemos fazer a declarao da clusula using onde informaremos um Namespace especfico: using System.Runtime.InteropServices; Este Namespace ser responsvel por acessar recursos e arquivos do sistema operacional, em nosso caso, a DLL. Esta classe no ter mtodo construtor, pois vamos utiliz-la apenas para chamar certos mtodos. Neste primeiro tutorial vamos ter apenas uma struct simples e um mtodo que acessa uma DLL do Windows. Vamos ao cdigo. Adicione esta struct dentro da classe: [StructLayout(LayoutKind.Sequential)] public struct Message { public IntPtr hWnd; public uint msg; public IntPtr wParam; public IntPtr lParam; public uint time; public System.Drawing.Point p; } Agora vamos definir a DLL do Windows que ser acessada: [System.Security.SuppressUnmanagedCodeSecurity] [DllImport("User32.dll", CharSet=CharSet.Auto)] public static extern bool PeekMessage(out Message msg, IntPtr hWnd, uint messageFilterMin, uint messageFilterMax, uint flags );

Apostila Visual Studio 2005

342

Nesta parte estamos utilizando uma importao de DLL do .NET, fazendo com que nossa classe acesse um objeto no gerenciado, neste caso, a DLL User32 do Windows. O objetivo deste mtodo obter informaes do sistema para rodar a aplicao, e para isso, acessamos uma DLL do Windows. A classe est chamando um mtodo externo do Sistema, mais precisamente System.Runtime.InteropServices, passando como parmetros as variveis que criamos na struct logo acima. Os valores destas variveis sero passados quando a propriedade AppStillIdle chamar PeekMessage. Nosso programa est quase pronto. O que resta a ser feito agora uma alterao no mtodo Main() para que a sobrecarga do construtor que criamos seja chamada, e no o construtor padro. Para isso, vamos reescrever o Main() da seguinte forma: [STAThread] static void Main() { using(FormMDX9 gameForm = new FormMDX9(true, 640, 480 )) { if(!gameForm.IniciarGraficos()) { MessageBox.Show("Sem chance."); return; } Application.Idle += new EventHandler(gameForm.OnApplicationIdle); Application.Run(gameForm); }} Como podemos notar, o mtodo construtor est sendo chamado de uma forma diferente. Anteriormente criamos uma sobrecarga do mtodo construtor que recebia certos parmetros, para diferenciar do construtor default, vamos cham-lo atravs do using(). Como se pode ver est sendo instanciado um objeto do tipo FormMDX9, que o formulrio que criamos, seguido dos parmetros que definimos. H uma estrutura de controle, que verifica se possvel iniciar o modo grfico, de acordo com o hardware, utilizando o mtodo IniciarGraficos, e caso seja possvel, disparado o evento Application.Idle e finalmente o programa executado:

Apostila Visual Studio 2005

343

Para exibir o formulrio em modo Full Screen, defina como false o valor do parmetro modoJanela do mtodo construtor: using(FormMDX9 gameForm = new FormMDX9(false, 640, 480 )) { //... } Certo. Mas isso no parece muito interessante, uma vez que ns poderamos ter simplesmente mudado a cor do formulrio para azul e no precisaramos programar e nem de adicionar as referencias do DirectX. Mas interessante lembrar que nosso objetivo aqui no era criar o Halo 9, mas sim entender os conceitos bsicos do DirectX Gerenciado, e principalmente da estrutura de uma aplicao grfica em cdigo gerenciado. No prximo tutorial, abordaremos a criao de formas primitivas e veremos coisas simples que podem melhorar a estrutura de seu cdigo. Concluso O DirectX uma API extremamente poderosa que oferece uma gama de recursos para a criao de aplicativos multimdia. Sua aplicao hoje em dia focada para o Desenvolvimento de Jogos. O diferencial do Managed DirectX, a facilidade de trabalhar com ele no Visual Studio ou em alguma ferramenta gerenciada, pois adicionamos as referencias de forma simples e rpida sem grandes preocupaes. Este tutorial mostrou de maneira simples, porm detalhada, como iniciar o Managed DirectX, e tem o objetivo de preparar o leitor para futuros tutoriais com maior complexidade. Espero que este Tutorial seja um guia introdutrio aos interessados nesta plataforma de desenvolvimento e entusiastas em desenvolvimento de jogos. At a prxima. Referencias teis: EM LIVROS: o Managed DirectX 9 Kick Start: Graphics and Game Programming MILLER, Tom; Sams Publishing, 2004, EUA o Beginning .NET Game Programming in C# WELLER, David; LOBO, Alexandre; HATTON, Hellen; Apress, 2004, EUA o Programando Jogos com C++ e DirectX SANTEE, Andr; Novatec, 2005, So Paulo Brasil NA INTERNET: o UniDev: http://www.unidev.com.br o CUnit: http://www.cunit.com o Pieter Germishuys: http://www.pieterg.com o GameDev.net: http://www.gamedev.net o MSDN: http://msdn.microsoft.com/directx

Apostila Visual Studio 2005

344

Apostila Visual Studio 2005

345

Gerenciando Arquivos no .NET


O gerenciamento de informaes um dos itens mais importantes em qualquer sistema computacional. Em funo disso, todo Sistema Operacional que se diz amigvel procura oferecer diversas ferramentas para que o usurio possa gerenciar o sistema de arquivos da melhor maneira possvel, caso isso seja necessrio. Com as aplicaes geradas para a plataforma .NET isso no poderia deixar de ser diferente, uma vez que a Microsoft prove modelos de objetos bastante intuitivos para cobrirem essa rea. Nesse artigo, vamos ver como usar as principais classes bases encontradas no namespace System.IO para cobrir alguns tpicos importantes no gerenciamento de arquivos, como: Explorar a estrutura de diretrios Manipular diretrios e arquivos contidos nos diretrios Mover, copiar e deletar arquivos e diretrios

O projeto que utilizaremos servir para ilustrar os itens acima descritos. Nesse exemplo, o usurio digita o nome de um diretrio ou arquivo e o programa, recursivamente, alm de mostrar todos os diretrios e arquivos existentes no diretrio especificado, tambm calcula o tamanho total em bytes, ocupados por todos os arquivos nesse diretrio. Alm disso, como estamos falando em gerenciamento de arquivos, iremos implementar, de uma maneira bastante simples, trs operaes importantes de manipulao de arquivos: copiar, deletar e colar arquivos. Para no ocupar demasiado espao nesse artigo, essas trs operaes no contemplaro a manipulao de diretrios, uma vez que o objetivo deste artigo mostrar usos e funcionalidades das classes do .NET mais comumente usadas para gerenciamento de arquivos e no cobrir todas as opes possveis de uso.

System.IO namespace
O diagrama abaixo mostra as classes com seus respectivos namespaces entre parnteses, que utilizaremos na elaborao do nosso projeto.

Apostila Visual Studio 2005

346

O b je c t (S y s te m )

M a rs h a llB y R e fO b je c t (S y s te m )

D ire c to ry (S y s te m .IO )

F ile (S y s te m .IO )

P a th (S y s te m .IO )

F ile S y s te m In fo (S y s te m .IO )

D ire c to ry In fo (S y s te m .IO )

F ile In fo (S y s te m .IO )

A Tabela abaixo mostra a descrio de cada uma dessas classes. Classe Descrio

System.MarshalByRefObject Classe base para classes no .NET que suportam remoting FileSystemInfo FileInfo e File Classe base que representa qualquer objeto no sistema de arquivos Essas classes representam um arquivo no sistema de arquivos

DirectoryInfo e Directory Essas classes representam um diretrio no sistema de arquivos Path Classe contm membros estticos que voc pode utilizar para manipular nomes de caminhos.

As classes Directory e File expem mtodos estticos que so chamados sem a necessidade de instanciar um objeto. J as classes DirectoryInfo e FileInfo implementam rigorosamente os mesmos mtodos pblicos que Directory e File e tambm algumas propriedades e construtores, mas os membros dessas classes no so estticos. Desse modo, necessrio que sejam instanciadas e ento essas instancias so associadas a um diretrio ou arquivo, dependendo de qual classe est sendo utilizada. Surge ento uma pergunta: quais classes devo utilizar? A resposta : depende. Se voc pretende executar uma operao em um diretrio ou arquivo, ento considere usar as classes Directory e File porque, com isso, voc evita o overhead de ter que instanciar um objeto. J as classes DirectoryInfo e FileInfo so mais eficientes em casos onde voc precisa executar vrias operaes utilizando o mesmo objeto, porque essas classes iro executar na construo dos objetos, procedimentos de autenticao e outras informaes para poder manipular corretamente o objeto no sistema de arquivos. Aps a criao, esses procedimentos no mais sero executados, independente de quantos mtodos voc execute para

Apostila Visual Studio 2005

347

cada objeto instanciado. Conseqentemente, nesses casos h um ganho de performance quando comparamos com as classes cujos mtodos so estticos e tais procedimentos so executados a cada chamada de um mtodo. Nota: veja que os membros dessas classes aceitam como parmetro uma varivel string para o nome do caminho. Essa string precisa estar formatada corretamente para que no ocorram erros de exceo. Por exemplo, se uma string com nome de caminho absoluto for passada como parmetro, mas o nome comear com um espao, ento o espao no eliminado quando o mtodo executado. Nesse caso, o caminho est mal formatado o que ir provocar um erro de exceo. A maior parte dos mtodos existentes no conjunto de classes Directory e File tambm esto implementados no conjunto DirectoryInfo e FileInfo. Vejamos um exemplo: DirectoryInfo myTempDir = new DirectoryInfo(@C:\Temp); MyTempDir.Delete(true); Tem o mesmo efeito que o cdigo: Directory.Delete(@C:\Temp,true); Como j foi comentado no inicio, a execuo do segundo cdigo um pouco mais rpida que o primeiro porque no h a necessidade de instanciar o objeto. Por outro lado, o primeiro cdigo deixa o objeto disponvel para ser utilizado novamente, caso seja necessrio. Uma outra caracterstica interessante das classes DirectoryInfo e FileInfo o fato de que, ao instanciar um objeto, como mostrado no primeiro cdigo, mesmo que o diretrio C:\Temp no exista, no gerado um erro de exceo. Mas o erro ocorrer no momento em que for executado um mtodo desse objeto. E se utilizarmos agora a classe FileInfo passando a mesma string, quer dizer, o caminho de um diretrio? Vejamos como fica: FileInfo myTempFile = new FileInfo(@C:\Temp); MyTempDir.Delete(); Apesar de ser uma string com o nome de um diretrio, a criao do objeto myTempFile no gera um erro de exceo. Ento, antes de continuarmos com o nosso cdigo interessante sabermos se o objeto do tipo correto. Podemos fazer isso usando a propriedade Exist. Teremos ento: FileInfo myTempFile = new FileInfo(@C:\Temp); If(myTempFile.Exist) { MyTempDir.Delete(); } Se o objeto for do tipo correto, ou seja, um arquivo, ento o mtodo Delete ser executado corretamente, evitando gerar uma exceo por tipo incompatvel. A tabela a seguir mostra as excees mais comumente encontradas quando lidamos com esse conjunto de classes: NotSupportedException Ocorre quando um mtodo no

Apostila Visual Studio 2005

348

suportado invocado ou quando se tenta executar um read, seek ou write num stream que no suporta a funcionalidade invocada. ArgumentException DirectoryNoFoundException Ocorre quando um dos argumentos fornecidos invalido. Ocorre quando parte de um arquivo ou diretrio no pode ser encontrado Ocorre quando se tenta fazer um acesso a um arquivo que no existe no disco Ocorre quando o nome do caminho ou arquivo maior que o valor mximo definido pelo sistema. Ocorre quando o chamador no tem o devido privilgio

FileNotFoundException

PathTooLongException

SecurityException

Ocorre quando no h permisso Security.Permission.FileIOPermission para escrever no diretrio especificado.

A tabela abaixo lista alguns mtodos dessas classes mais usados no gerenciamento do sistema de arquivos: Cria um diretrio ou um arquivo vazio para o caminho dado. Deleta um diretrio ou arquivo. Move e/ou renomeia um arquivo ou diretrio Copia um arquivo existente para um novo arquivo.Valido somente para FileInfo. Veja que no existe esse mtodo para diretrios. Para copiar diretrio e subdiretrios voc precisa copiar individualmente todos os arquivos de um diretrio, criar o subdiretrio e repetir o procedimento. Retorna os nomes dos diretrios no diretrio especificado. Retorna os nomes dos arquivos contidos no diretrio especificado. Retorna uma lista de objetos do tipo FileSystemInfo (somente para DirectoryInfo)

Create() Delete() MoveTo()

CopyTo()

GetDirectories() GetFiles() GetFileSystemInfos()

Vejamos ento como fica nosso projeto exemplo utilizando o que foi dito at agora. Abra o Visual Studio .NET 7.

Apostila Visual Studio 2005

349

Crie um novo projeto utilizando o template para aplicao C# Windows, de nome FileManager. Adicione os vrios controles que utilizaremos no nosso projeto. Para um entendimento mais intuitivo, renomeei alguns controle: textBoxCmd, listBoxFile, listBoxDir. Arraste tambm um controle de menu e adicione os seguintes itens: &File, E&xit, &Edit, &Copy, &Paste, &Delete, &About. A figura abaixo a aparncia final do nosso projeto.

Voc digita o nome do arquivo ou diretrio que deseja listar na caixa de texto. Ao clicar no boto Executa, se for um diretrio, ento seus arquivos sero listados na janela de Arquivos e todos os subdiretrios sero listados na janela diretrios. No caso de ser um arquivo, mostra o arquivo na janela de arquivos e o diretrio respectivo na janela de diretrios. Para executar uma operao de Copy, Paste ou Delete, basta selecionar um arquivo ou diretrio e clicar na opo desejada. Vamos ento adicionar cdigo ao nosso projeto. O Visual Studio acrescenta automaticamente todos os namespaces necessrios para as operaes bsicas. Para utilizarmos as classes descritas at agora, precisamos acrescentar manualmente o namespace System.IO. Ento teremos:
using using using using using using using using System; System.Drawing; System.Collections; System.ComponentModel; System.Windows.Forms; System.Data; System.Text; System.Collections;

Apostila Visual Studio 2005

350

using System.IO;
Dentro do namespace codificamos a nossa classe com suas variveis membros e seus mtodos. Ento teremos:
namespace FileManager { public class Form1 : System.Windows.Forms.Form { private System.Windows.Forms.TextBox textBoxCmd; private System.Windows.Forms.TextBox textBoxResult; private System.Windows.Forms.ListBox listBoxDir; private System.Windows.Forms.ListBox listBoxFile; private System.Windows.Forms.MainMenu mainMenu1; private System.Windows.Forms.MenuItem menuItem2; private System.Windows.Forms.Button buttonExecute; private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label2; private System.Windows.Forms.Label label3; private System.Windows.Forms.Label label4; private System.Windows.Forms.MenuItem menuFile; private System.Windows.Forms.MenuItem menuEdit; private System.Windows.Forms.MenuItem menuCopy; private System.Windows.Forms.MenuItem menuPaste; private System.Windows.Forms.MenuItem menuDelete; private System.Windows.Forms.MenuItem menuAbout;

Antes de comearmos a visualizar nosso cdigo com seus mtodos, precisamos definir os eventos que sero gerados e seus respectivos mtodos. O boto Execute gera um evento ao ser acionado pelo usurio. Precisamos primeiro fazer um teste para saber se o usurio digitou o nome de um arquivo ou de um diretrio e chamamos o mtodo apropriado que ir mostrar diretrios e arquivos nas suas respectivas janelas. O menu principal, na opo Edit, tambm ir gerar um evento para cada opo escolhida, Copy, Paste ou Delete. Um outro evento tambm ser gerado ao escolhermos a opo About no menu principal, abrindo uma janela com informaes sobre a verso do programa e outras informaes.

Vamos deixar os eventos gerados pelo menu principal para a 2a. Parte do projeto. Comecemos por criar algumas variveis que sero utilizadas no nosso projeto. Veja o cdigo abaixo:
private string currentPathDir; private int numFiles; private long sumBytes;

private System.Collections.ArrayList srcFiles;


Temos a varivel currentPathDir que ir armazenar o caminho do diretrio corrente. Temos tambm outras duas variveis: numFiles que ir guardar o nmero de arquivos existentes no diretrio e sumBytes que armazenar o nmero total de bytes ocupados pelos arquivos no diretrio solicitado. A varivel srcFiles ir manipular as strings que sero utilizadas para copiar e colar arquivos. Vamos inserir agora o mtodo que far a limpeza dos campos sempre que for necessrio:

Apostila Visual Studio 2005

351

protected void ClearFields() { textBoxCmd.Clear(); listBoxDir.Items.Clear(); listBoxFile.Items.Clear(); numFiles = 0; sumBytes = 0;

}
Inserimos agora o mtodo que vai manipular o evento criado pelo boto Execute.
protected void OnExecuteButtonClick(object sender, System.EventArgs e) { if(!(currentPathDir == null)) VerifyIfDirChanged(textBoxCmd.Text); currentPathDir = textBoxCmd.Text; ClearFields(); textBoxCmd.Text = currentPathDir; try { // cria uma referencia para um diretorio DirectoryInfo dir = new DirectoryInfo(currentPathDir); // verifica se eh um diretorio if(dir.Exists) { ProcessDirectory(currentPathDir); return; } // cria uma referencia para um arquivo FileInfo file = new FileInfo(currentPathDir); // verifica se eh um arquivo if(file.Exists) { ProcessFile(file.FullName,true); int idx = listBoxFile.Items.IndexOf(file.Name); listBoxFile.SetSelected(idx,true); } else { string strerror = currentPathDir; MessageBox.Show(strerror," - File Manager - Arquivo nao encontrado"); } } catch(Exception ex) { MessageBox.Show(ex.Message); }

}
Como voc pode ver, o mtodo acima pega o texto digitado pelo usurio e faz a consistncia. Se for digitado o caminho de um diretrio ou um arquivo, dispara o mtodo correspondente. Para tanto, fiz uso da propriedade Exists de cada objeto criado para poder chamar o mtodo correto. No caso de no satisfazer as duas primeiras possibilidades, exibe uma mensagem de Arquivo no encontrado. Alm disso, no momento de fazer a instanciao do objeto, caso a string do caminho no satisfaa as regras do construtor que est sendo chamado, disparada uma exceo que ser processada pelo catch no final do mtodo. Vamos ver agora os mtodos ProcessDirectory e ProcessFile que processam os diretrios e arquivos, respectivamente.
protected void ProcessDirectory(string targetDirectory) { string[] fileArray = Directory.GetFiles(targetDirectory); // processa os arquivos do diretorio

Apostila Visual Studio 2005

352

foreach(string fileName in fileArray) ProcessFile(fileName); // adiciona o diretorio na lista de diretorios listBoxDir.Items.Add(targetDirectory); // faz uma busca recursiva no subdiretorio string[] subDirArray = Directory.GetDirectories(targetDirectory); foreach(string subDir in subDirArray) ProcessDirectory(subDir); UpdateResult();

}
O mtodo ProcessDirectory recebe como argumento o caminho de um diretrio e executa as seguintes funes: chama o mtodo ProcessFile para processar todos os arquivos do diretrio adiciona o nome do diretrio na lista de diretrios faz uma chamada recursiva ao prprio mtodo para processar os subdiretrios atualiza os resultados chamando UpdateResult()

Vejamos agora o mtodo ProcessFile


protected void ProcessFile(string targetFile, bool IsCurDir) { // pega uma referencia para cada arquivo no diretorio FileInfo file = new FileInfo(targetFile); if(!file.Exists) throw new FileNotFoundException(@"'Arquivo {0} nao encontrado',targetFile"); // se for diretorio corrente, adiciona o arquivo a lista de arquivos if(IsCurDir) listBoxFile.Items.Add(file.Name); // adicionamos ao total de bytes sumBytes += file.Length; // incrementamos o contador de arquivos numFiles++; UpdateResult();

}
Recebe como argumento o caminho de um arquivo e executa as seguintes funes: cria uma instancia do objeto FileInfo dispara uma exceo caso o arquivo no exista adiciona o arquivo na lista de arquivos, se estiver no diretrio corrente adiciona o tamanho do arquivo a varivel sumBytes incrementa o contador de arquivos atualiza os resultados chamando UpdateResult()

Voc pode perguntar: porque o teste de existncia do arquivo e o disparo da exceo? Num ambiente multitarefa nada garante que o arquivo ainda vai estar l quando o mtodo for instanciar o objeto. Um outro processo pode ter removido o arquivo. Nesse caso, sua aplicao correria o risco de um crash. Esse apenas um projeto exemplo, mas uma aplicao robusta tem que estar preparada para situaes desse tipo.

Apostila Visual Studio 2005

353

Veja tambm que a exceo disparada nesse mtodo vai ser tratada pelo catch do mtodo chamador que, nesse caso, o OnExecuteButtonClick. Existem ainda dois eventos disparados por seleo de itens nas listbox e que sero tratados pelos mtodos: OnListBoxDirSelected e OnListBoxFileSelected. No momento iremos analisar somente o mtodo OnListBoxDirSelected, porque o outro mtodo s ser utilizado nas operaes de copy, delete e paste.
private void OnListBoxDirSelected(object sender, System.EventArgs e) { string dirName = ((ListBox)sender).SelectedItem.ToString(); VerifyIfDirChanged(dirName); currentPathDir = Path.Combine(currentPathDir, dirName); ClearFields(); ProcessDirectory(currentPathDir);

}
Ao selecionar um diretrio na lista de diretrios o mtodo OnListBoxDirSelected disparado, pega o nome do caminho do item selecionado e chama o mtodo ProcessDirectory . O diretrio selecionado ser ento processado e listado em ambas as listbox. Aqui, vale a pena mencionar o uso da classe Path. Essa classe recebe como argumento uma string, contendo o nome do caminho de um diretrio ou arquivo. Possui mtodos estticos que realizam uma srie de operaes teis no gerenciamento de arquivos. A tabela abaixo mostra alguns desses mtodos. ChangeExtention Combine GetDirectoryName GetFileName GetFullPath Altera a extenso do caminho na string Combina duas strings com nomes de caminhos Retorna informaes sobre o diretrio para a string especificada Retorna informaes sobre o arquivo para a string especificada Retorna o caminho absoluto para a string especificada

Com isso, nossa aplicao j pode, pelo menos, processar o diretrio ou arquivo digitado.

Incrementando o projeto com Copy, Paste e Delete


Para executar operaes de copiar, deletar e colar, criei trs opes no menu Edit: Copy, Paste e Delete. Precisamos agora criar os trs eventos que iro capturar e processar os cliques de cada opo do menu. So eles: OnCopyButtonClick, OnPasteButtonClick e OnDeleteButtonClick. Como j foi comentado no incio, as classes do Framework .NET que esto sendo discutidas nesse artigo fornecem mtodos para executar essas operaes, como Move. Aps inserir os novos itens na opo Edit do menu, o FileManager ter a aparncia abaixo.

Apostila Visual Studio 2005

354

Os mtodos so auto explicativos. Portanto, vamos nos ater aos aspectos mais importantes de cada um. Inicialmente os itens do menu esto desabilitados e s ficam disponveis aps a seleo de algum item na janela de arquivos. Essa operao executada pelo mtodo OnListBoxFileSelected. O mtodo OnDeleteButtonClick:
private void OnDeleteButtonClick(object sender, System.EventArgs e) { if(listBoxFile.SelectedItems.Count >0 ) { int count = listBoxFile.SelectedItems.Count-1; for(; count>=0; count--) { object obj = listBoxFile.SelectedItems[count]; File.Delete(Path.Combine(currentPathDir,obj.ToString())); listBoxFile.Items.Remove(obj); numFiles--; } UpdateResult(); }

}
O mtodo deleta todos os itens selecionados na lista de arquivos, usando o mtodo esttico Delete() da classe File. O mtodo OnCopyButtonClick no faz uso de nenhuma das classes que fazem parte do nosso estudo. Apenas copia os itens selecionados para uma lista, srcFiles, que ser utilizada pelo mtodo OnPasteButtonClick, que veremos a seguir. A operao de colar, realizada pelo mtodo OnPasteButtonClick a mais complexa das trs que estamos analisando. O mtodo primeiro consiste as strings dos caminhos de origem e destino dos arquivos que sero colados. Em seguida, chama o mtodo Copy() da classe File para realizar a cpia.
private void OnPasteButtonClick(object sender, System.EventArgs e) { int count = srcFiles.Count; if(count >0 ) { string dst = null; for(int i=0; i < count-1; i++) { dst = srcFiles[i].ToString(); dst = dst.Replace(Path.GetDirectoryName(dst),currentPathDir);

Apostila Visual Studio 2005

355

File.Copy(srcFiles[i].ToString(), dst); } srcFiles.Clear(); // retira selecao listBoxFile.ClearSelected(); // atualiza diretorio ClearFields(); ProcessDirectory(currentPathDir); // desabilita opcoes de menu SetMenuOptions(false,false,false); }

}
Aps realizar a cpia dos arquivos, chamado o mtodo ProcessDirectory para atualizar o diretrio corrente.

Consideraes finais
Como pudemos observar nesse exemplo, a biblioteca de classes do Framework .NET fornece um rico conjunto de classes, cujos mtodos e propriedades podem ser utilizados pelo desenvolvedor no gerenciamento de arquivos. Vale lembrar que essas classes expem vrios outros mtodos e propriedades que no foram citados nesse artigo por questes de espao. Para aqueles interessados no assunto, ficam algumas sugestes para o enriquecimento desse nosso exemplo, como a implementao de um menu contextual, replicando as opes do menu principal, nas listbox de diretrios e arquivos, o que facilitaria a execuo dessas operaes. Tambm, as listbox poderiam ser substitudas por uma TreeView e uma ListView para diretrios e arquivos, respectivamente, enriquecendo o design visual do projeto e fornecendo ao usurio ferramentas mais poderosas....

Apostila Visual Studio 2005

356

Explicaes passo-a-passo do Visual Studio


Essas orientaes introduzir as reas importantes do produto Visual Studio. Explicao passo a passo cada discute o desenvolvimento de um tipo aplicativo especfico ou recurso de aplicativo principal usando uma srie de instrues passo a passo. Na maioria dos casos, explicao passo a passo cada incorpora mtodos ou recursos de partes diferentes do Visual Studio. Isso fornece uma introduo prtica para os vrios recursos principais do Visual Studio de uma maneira clara e ordenada.

Walkthroughs de aplicativos cliente Rich


O aplicativo rich client tpica um executvel autnomo com uma interface grfica composta de vrios controles para o usurio. As orientaes seguir descrevem o processo de Criando aplicativo com base em formulrios usando vrios tipos controle diferente, conexo com um banco de dados existente, e depois exibir os dados no formulrio. Observao O objetivo principal dessas orientaes para demonstrar os vrios recursos do Visual Studio disponveis para o desenvolvedor do cliente Rich. Portanto, o aplicativo rich client tpico contm um subconjunto dos recursos apresentados.

Walkthrough: Criando um aplicativo cliente Rich com MFC


Explicao passo a passo o seguir descreve um procedimento para criar um aplicativo rich client MFC-Based e vrios outros recursos do Visual Studio .NET. Durante o curso desta explicao passo a passo, voc ir realizar as atividades a seguir:
o o o

Criar uma soluo-com base MFC que exibe dados de um banco de dados existente e exibe os seguintes recursos usando vrias caixas de dilogo: Hospedando um controle ActiveX sem janelas Usando dinmico caixas de dilogo HTML (DHTML) Validando o usurio do aplicativo usando um servio XML da Web existente.

Para concluir o explicao passo a passo, deve fornecer um banco de dados existente e pelo menos uma tabela pesquisvel. Observao Essa explicao passo a passo usa o pubs banco de dados e authors tabela como um banco de dados exemplo e tabela. Criar o aplicativo cliente Rich MFC

Apostila Visual Studio 2005

357

Para criar o aplicativo MFC 1. 2. 3. 4. No menu File, clique em New, e clique em Project A New Project caixa de dilogo ser exibida. No painel tipos Project, clique em Visual C++ Projects, e em Painel Modelos, clique no MFC Application cone. Na caixa Name, digite MyProject. Clique OK para fechar a caixa de dilogo e abrir o MFC Application Wizard.

Usando o MFC Application Wizard, voc modificar seu projeto para oferecer suporte o acesso a bancos de dados e exibir recursos do aplicativo rich client. Observao Essa explicao passo a passo presume que o servidor est sendo acessado um servidor SQL e o pubs banco de dados que existe no servidor. Para implementar suporte a banco de dados 1. 2. 3. 4. 5. 6. 7. 8. 9. No MFC Application Wizard, selecione Database Support. Selecione a Database View with File Support opo. Clique no Data Source boto. Na caixa OLE DB Provider(s) de listagem, clique no Microsoft OLE DB Provider for SQL Server item e clique em Next. Digite ou selecione um nome de servidor existente. Selecione Use Windows NT Integrated Security. Selecione o pubs banco de dados. Clique no OK boto para estabelecer a conexo. Na caixa Select Database Object de dilogo, selecione a authors tabela.

10. Selecione OK para fechar a caixa de dilogo. 11. Clique Finish para criar o aplicativo estrutura. 12. Aps a criao do projeto, ser necessrio remover a #error linha de MyProjectSet.h. Depois que o aplicativo estrutura for criado, principais recursos podem ser adicionados. Acessar e exibir dados de um banco de dados existente Nesta seo, voc usar um formulrio simples e controle para demonstrar o acesso e exibio dos dados da tabela authors. Porque este apenas uma demonstrao, consulta e exibio so simples. Os resultados da consulta (todos os autores na tabela) so exibidos em uma caixa de listagem. O MyProject aplicativo j contm um objeto de formulrio (chamado IDD_MYPROJECT_FORM) localizado sob o n dilogo no modo de exibio de recurso,. Voc ir modificar este formulrio para exibir uma lista simples de autores da tabela authors.

Apostila Visual Studio 2005

358

Para modificar o formulrio 1. 2. 3. No modo de exibio de recursos, expanda o Projeto, expanda o Dialog n, e clique duas vezes no objeto de formulrio padro). (IDD_MYPROJECT_FORM Arraste um List Box controle para o formulrio padro. Clique com o boto direito do mouse no List Box controle e, no menu de atalho, clique em Add Variable. O Add Member Variable Wizard aparece. 4. 5. 6. Na caixa Variable name, digite m_DataList e clique em Finish. Arraste um Button controle para o formulrio padro. Na janela Propriedades, alterar a Caption caixa para Control Host. Arraste um Button controle para o formulrio padro. Na janela Propriedades, alterar a Caption caixa para DHTML Dialog. Observao Esses dois controles sero usados posteriormente no explicao passo a passo o para acessar outros recursos do aplicativo. Para exibir os resultados da consulta 1. 2. No modo classe, expanda o n de projeto e clique duas vezes no OnInitialUpdate mtodo da classe CMyProjectView. Adicione o seguinte cdigo aps qualquer cdigo existente na funo: HRESULT hr = S_OK; TCHAR szAuthor[80]; CMyProjectSet &dbset = GetDocument()->m_MyProjectSet; [db_command(name="cmd", source_name="dbset", hresult=hr) { SELECT au_lname ([bindto]szAuthor) FROM AUTHORS }]; while(cmd.MoveNext() == S_OK) m_DataList.InsertString(-1, szAuthor); Esse cdigo usa o db_command atributo ao inicializar o conjunto de dados de objeto do documento (m_MyProjectSet.) com os nomes de todos os autores atuais na tabela ltima 3. 4. No menu Build, clique em Build Solution. No menu Debug, clique em Start Without Debugging. Os resultados da consulta sero exibidos na caixa de listagem do formulrio modo filho. Criando e hospedando um controle ActiveX sem janelas A modificao prxima para o aplicativo rich client uma caixa de dilogo que hospeda um controle personalizado simples sem janelas. A primeira etapa para criar um controle ActiveX personalizado com um evento simples. Em seguida um objeto Caixa de dilogo criado que contm o controle e manipular o evento de controle. Para criar o controle personalizado 1. 2. No Explorer Solution, clique com o boto direito do mouse a MyProject Soluo. No menu de atalho, clique em Add, e clique em New Project A New Project caixa de dilogo ser exibida.

Apostila Visual Studio 2005

359

3. 4. 5. 6. 7. 8. 9.

No painel tipos Project, selecione Visual C++ Projects, e no painel Modelos, clique no ATL Project cone Digite CustomCtl para o nome do novo projeto e clique em OK. O ATL Project Wizard aparece. Clique Finish para aceitar as configuraes padro e criar o projeto. Clique com o CustomCtl projeto. No menu de atalho, clique em Add, e clique em Add Class A Add Class caixa de dilogo ser exibida. Clique duas vezes no ATL Control item. O ATL Control Wizard aparece. Na ATL Control Wizard, insira MyCtl na caixa Short name.

10. Na pgina Options, escolha Connection points. 11. Clique Finish para criar o objeto controle personalizado. Depois que o controle for criado, voc adicionar um evento simples chamado Click. Este evento acionado pelo controle sempre que o mouse clicado na rea de controle. Para criar o evento Click 1. 2. 3. 4.
o o

No modo de classe, expanda o CustomCtl n. Clique com o boto direito do mouse o interface de eventos para o controle personalizado (_IMyCtlEvents). No menu de atalho, clique em Add, e clique em Add Method Insira os seguintes valores usando o Adicionar Assistente mtodo: Return typevoid Method nameClick Clique Finish para criar o Click evento. No modo de classe, selecione a classe de controle (CMyCtl). Na janela Propriedades, clique no Messages boto e adicionar um OnLButtonDown manipulador para a WM_LBUTTONDOWN mensagem. Adicione o seguinte cdigo para o corpo do manipulador: Click(); return 0; No menu Build, clique em Build Solution.

5. 6. 7. 8. 9.

Depois que a soluo cria com xito, uma caixa de dilogo simples pode hospedar o controle. Para hospedar o controle 1. 2. 3. 4. No modo de exibio do recurso, clique com o boto direito do mouse a MyProject Soluo. No menu de atalho, clique em Add, e clique em Add Resource Clique no Dialog item e clique em New. Clique com boto direito mouse na IDD_DIALOG1 caixa de dilogo e clique Add Class no menu de atalho.

Apostila Visual Studio 2005

360

O assistente classe MFC aparece. 5.


o o

No Assistente para classe MFC, insira os seguintes valores: Class name CMyCtlDlg Base classCDialog Clique em Finish. Clique com o boto direito do mouse na IDD_DIALOG1 caixa de dilogo e selecione Insert ActiveX Control no menu de atalho. Na caixa de dilogo, selecione CMyCtl Object e Insert ActiveX Control clique OK para adicionar o controle. Selecione o controle ActiveX em um modelo de dilogo.

6. 7. 8. 9.

10. Na janela Propriedades, clique o Control Events boto e adicione um ClickMyctl1 manipulador para o Click evento. 11. Adicione o seguinte cdigo para o corpo do manipulador de eventos: AfxMessageBox("Click event fired"); A etapa final envolve conectando a caixa de dilogo para o aplicativo rich client. Isso feito com cdigo no manipulador para o boto Controlar host voc criou anteriormente, no tpico Accessing and Displaying Data from an Existing Database. Para exibir a caixa de dilogo de controle host 1. Do IDD_MYPROJECT_FORM no modo de exibio de recursos, exibir o formulrio principal clicando duas vezes (localizada sob o Dialog n do arquivo de recurso para a MyProject Soluo). Clique duas vezes no Control Host boto, adicionada anteriormente. Adicione o seguinte cdigo para a funo do manipulador: CMyCtlDlg dlg; dlg.DoModal( ); 4. Adicione o cdigo a seguir aps a ltima #include Instruo no arquivo de origem atual: #include "MyCtlDlg.h" Isso inclui o arquivo.h da classe implementar a caixa de dilogo Controle host. 5. 6. No menu Build, clique em Build Solution. No menu Debug, clique em Start Without Debugging.

2. 3.

Voc pode chamar a caixa de dilogo host controle pressionando o Control Host boto. Acionam o evento personalizado Click clicando no boto esquerdo do mouse dentro do controle. Implementar uma caixa de dilogo DHTML Outro recurso dos aplicativos cliente Rich o uso de caixas de dilogo que utilizam HTML para a interface do usurio em vez de recursos dilogo tradicional. Para fins dessa explicao passo a passo, uma caixa de dilogo DHTML simples ser implementada, contendo um controle de imagem que exibe um bitmap simples. Para implementar a caixa dilogo DHTML 1. Clique no modo de exibio de recursos, com o MyProject projeto.

Apostila Visual Studio 2005

361

2. 3. 4. 5. 6.
o o

No menu de atalho, clique em Add, e clique em Add Resource Clique no Dialog item e clique New para criar uma nova caixa de dilogo. Remover esses so implementados em HTML nas etapas subseqentes. e Cancel Botes do modelo de dilogo; o OK Clique com o boto direito do mouse o IDD_DIALOG2 formulrio Caixa de dilogo e selecione Add Class Insira os seguintes valores: Class nameCMyDhtmlDlg Base classCDHtmlDialog Clique em Finish. No modo de exibio de recursos, sob o n HTML, clique duas vezes no IDR_HTML_MYDHTMLDLG item e clique na guia HTML no painel do projeto para editar o arquivo HTML associado. Substituir o texto existente (que deve ser semelhante TODO: Place controls here). com This is the text content of my DHTML dialog box

7. 8.

9.

Como com o dilogo Host de controle implementado anteriormente, esta caixa de dilogo ser exibida quando o usurio pressiona um boto (DHTML Dialog.) no formulrio principal do aplicativo Para exibir a caixa de dilogo DHTML 1. Do IDD_MYPROJECT_FORM no modo de exibio de recursos, exibir o formulrio principal clicando duas vezes (localizada sob o n de dilogo do arquivo de recurso para a MyProject Soluo). Clique duas vezes no DHTML Dialog boto, adicionada anteriormente. Adicione o seguinte cdigo para a funo do manipulador: CMyDhtmlDlg dlg; dlg.DoModal( ); 4. Adicione o cdigo a seguir aps a ltima #include Instruo no arquivo de origem atual: #include "MyDhtmlDlg.h" Isso inclui o arquivo.h da classe implementao caixa de dilogo DHTML. 5. 6. No menu Build, clique em Build Solution. No menu Debug, clique em Start Without Debugging.

2. 3.

Quando for exibida, caixa de dilogo Abrir a caixa de dilogo DHTML pressionando o DHTML Dialog boto. Para obter mais informaes sobre caixas de dilogo DHTML e um exemplo mais completo, consulte a CDHtmlDialog classe e a DHtmlExplore amostra. Criando e Consuming um servio da Web XML existente Ocasionalmente, um aplicativo rich client interage com um servio XML da Web externo, fornecendo um Rich front-end para um banco de dados existente ou bancos de dados. O usurio ento possam interagir com os dados de uma maneira familiarizado ou grfica.

Apostila Visual Studio 2005

362

Nesta etapa, voc ir criar um servio da Web XML simples projetado para ser executado em um servidor Web usando o Microsoft Internet Information Services (IIS). Para criar o servio da Web XML 1. 2. 3. 4. No menu File, clique em New, e clique em Project A New Project caixa de dilogo ser exibida. No painel tipos Project, clique em uma Visual Basic Projects ou Visual C# Projects,. e no painel Modelos, clique no ASP.NET Web Service cone Na caixa Location, digite http://localhost/MyService. Clique OK para fechar a caixa de dilogo e criar a soluo.

Uma parte da servios XML da Web comum consiste em verificar cada usurio do aplicativo. Aps criar a soluo, voc pode implementar um mtodo simples de validao. Essa rotina de validao deliberadamente simples para ilustrar o conceito claramente. Depois que a soluo foi criada, adicionar um mtodo de validao ao Service1.asmx arquivo de origem. Para fazer isso, clique com o boto direito do mouse a Service1.asmx.cs superfcie de design e selecione View Code Substituir o HelloWorld mtodo da Web no final do arquivo com o cdigo a seguir: ' Visual Basic <WebMethod()> Function Validate(ByVal s1 As String, ByVal s2 As String) As Boolean Return s1 = s2 End Function // C# [WebMethod] public bool Validate(string s1, string s2) { return s1 == s2; } Depois voc modificou o arquivo de origem, Criar a soluo. Depois que o servio da Web XML existir, voc pode adicionar e configurar uma referncia da Web com caixa Add Web Reference de dilogo. Para adicionar uma referncia da Web para o aplicativo do cliente 1. 2. Abra a MyProject Soluo. No Solution Explorer, clique com o MyProject projeto e selecione Add Web Reference. A Add Web Reference caixa de dilogo ser exibida. 3. Em Browse to, selecione Web services on the local machine. A mquina local ser exibido; selecione aquele que voc acabou de criar uma lista de servios XML da Web existente no (Service1). Se o servio da Web for encontrado, um descrio do servio ser exibida no painel esquerdo e boto Add Reference ser ativado. O URL do arquivo.asmx para o servio da Web tambm deve aparecer na caixa URL da; ele deve aspecto como este: http://localhost/MyService/Service1.asmx 4. Clique no Add Reference boto. Assim que a referncia da Web for adicionada, voc adicionar uma caixa de dilogo de validao para demonstrar a interao entre o aplicativo e o servio da Web XML. Para adicionar uma caixa de dilogo de validao 1. 2. Clique no modo de exibio de recursos, com o MyProject projeto. No menu de atalho, clique em Add, e clique em Add Resource

Apostila Visual Studio 2005

363

3. 4. 5.
o o

Clique duas vezes no Dialog item. Clique duas vezes no IDD_DIALOG3 formulrio Caixa de dilogo. O assistente classe MFC aparece. Insira os seguintes valores: Class nameCMyValidateDlg Base classCDialog Clique em Finish.

6.

Agora que a caixa dilogo foi criada, adicionar controles para fornecer um servio de validao para o usurio. Para validar o usurio 1. 2. 3. 4. 5. 6. 7. 8. 9. Arraste dois Edit control controles para o IDD_DIALOG3 formulrio Caixa de dilogo. Clique com o boto direito do mouse na primeira Edit control. No menu de atalho, selecione Add Variable. Na caixa Variable Name, digite m_Name. No menu Category drop-down, selecione Value. Clique em Finish. Clique com o boto direito do mouse no segundo Edit control Controle. Adicionar outra varivel (chamada m_Password de categoria Value). Clique duas vezes no OK boto no formulrio Caixa de dilogo. Service1::CService1 *s = new Service1::CService1(); UpdateData(TRUE); bool result = false; s>Validate(CComBSTR(m_Name), CComBSTR(m_Password), &result); if (result) CDialog::OnOK(); 11. Adicione o cdigo a seguir aps a ltima #include Instruo no arquivo de origem atual: #include "WebService.h" Isso inclui o arquivo.h do servio da Web usado por caixa de dilogo de validao. Para a rotina de validao para ser eficiente, caixa de dilogo de validao deve ser o primeiro objeto Interface de usurio seja exibido. Se o usurio inserir o nome correto e a senha a aplicativo rich client sero exibidos. Ser se um nome incorreto ou senha for inserida, o usurio atual ser impedido de acessar o aplicativo rich client. Para implementar esse comportamento, modifique a InitInstance funo da classe do aplicativo principal para chamar esta caixa de dilogo primeiro. O aplicativo continua somente quando a caixa dilogo corretamente sai. Para exibir a caixa de dilogo de validao inicialmente 1. 2. No modo de classe, expanda o CMyProjectApp n. Clique duas vezes a InitInstance funo para editar o corpo funo.

10. Adicione o seguinte cdigo para a funo do manipulador:

Apostila Visual Studio 2005

364

3.

Adicione o seguinte cdigo antes que a chamada para a ShowWindow funo do objeto pMainFrame: // Display the validation dialog box first CMyValidateDlg dlg; if (dlg.DoModal() != IDOK) return FALSE;

4.

Adicione o cdigo a seguir aps a ltima #include Instruo no arquivo de origem atual: #include "MyValidateDlg.h" Isso inclui o arquivo.h da caixa de dilogo de validao.

5. 6.

Compilar uma soluo. No menu Build, clique em Build Solution. No menu Debug, clique em Start Without Debugging. Na caixa de dilogo de verificao, inserir o mesmo texto nas caixas de edio Nome e senha, e clique em OK. O aplicativo rich client ser executada, exibindo sua caixa de dilogo principal. Criar um projeto de instalao

A etapa final ao desenvolver seu aplicativo Visual C++ est criando um projeto de instalao. Para criar um projeto de instalao 1. 2. 3. 4. 5. 6.
o o

No Explorer Solution, clique com o boto direito do mouse a MyProject Soluo. No menu de atalho, clique em Add, e clique em New Project A New Project caixa de dilogo ser exibida. No painel tipos Project, selecione Setup and Deployment Projects, e no painel Modelos, clique no Setup Wizard cone Digite MySetup o nome do projeto de instalao para e clique em OK. O Assistente para Instalao ser exibido. Clique em Next duas vezes. Selecione os seguintes grupos de sada: Sada de MyProject principal Sada de CustomCtl principal Clique em Next duas vezes. Clique em Finish No menu Build, clique em Build MySetup.

7. 8. 9.

O arquivo resultante (MySetup) pode ser copiado para uma mquina de destino para instalao do aplicativo rich client. Para obter mais informaes sobre projetos de implantao e o Assistente para instalao, consulte Implantar aplicativos, Projetos de implantao. e Walkthroughs de implantao

Walkthroughs Application de formulrios da Web


O objetivo dessas orientaes para mostrar como criar um site da Web usando pginas da Web e controles ASP.NET. A tabela a seguir lista uma seleo de orientaes que fornecer uma viso geral dos recursos ASP.NET. Por trabalhar com essas orientaes, voc aprender sobre a criao de sites, criar e editar

Apostila Visual Studio 2005

365

pginas da Web, conectando a fontes de dados, criando um objeto comercial da camada intermediria, e usar outros recursos ASP.NET para personalizar os sites e pginas. Walkthrough Passo-a-passo: Criando uma pgina da Web bsica no Visual Web Developer Passo-a-passo: Acesso a dados bsico em pginas da Web Descrio Uma introduo ao criar pginas da Web ASP.NET no Visual Studio. Uma introduo ao exibir dados em uma pgina da Web usando os controles da fonte de dados e o GridView controle. Uma introduo ao criar um componente de camada intermediria que torna dados disponvel para pginas da Web. Uma introduo ao usar o depurador Visual Studio com pginas da Web. Uma introduo ao usar pginas mestras ASP.NET para definir um layout geral para pginas da Web.

Passo a passo: Ligao de dados em um objeto corporativo personalizado

Passo-a-passo: Depurao de Pginas da Web no Visual Web Developer Passo-a-passo: Criando e Usando Pginas Mestras do ASP.NET no Visual Web Developer Passo-a-passo: Personalizando um site usando temas no Visual Studio Passo-a-passo: Criando uma pgina do Web Parts no Visual Web Developer

Uma introduo ao definir um aparncia consistente para suas pginas da Web. Uma introduo ao criar uma pgina da Web que usa Partes da Web para permitir que o usurio para personalizar o contedo e layout de uma pgina. Uma introduo a adicionar segurana logon em um site da Web.

Passo a passo: Criando um site com associao e logon de usurio (Visual Studio) Passo a passo: Criando e usando um servio da Web do ASP.NET no Visual Web Developer

Uma introduo ao criar um servio da Web ASP.NET e consumindo-lo de uma pgina da Web.

Explicao Passo a Passo: Criando uma Pgina Web Bsica no Visual Web Developer
Esta explicao passo a passo fornece uma introduo ao Microsoft Visual Web Developer. Ela orienta voc atravs da criao de uma pgina simples usando o Visual Web Developer, ilustrando as tcnicas bsicas de criao de uma nova pgina, adicionando controles e escrevendo cdigo. As tarefas ilustradas nesta explicao passo a passo incluem:

Criar um site Web do sistema de arquivos.

Apostila Visual Studio 2005

366

Familiarizando-se com o Visual Web Developer. Criando uma pgina ASP.NET Single-File no Visual Web Developer. Adicionar controles. Adicionar manipuladores de eventos. Executar pginas com o Servidores Web em Visual Web Developer. Pr-requisitos

Para concluir esta explicao passo a passo, ser necessrio:


Visual Web Developer O .NET Framework Criando um Site e Pgina Web

Nesta parte da explicao passo a passo, voc criar um site Web e adicionar uma nova pgina a ele. Voc tambm adicionar um texto HTML e executar a pgina no seu navegador Web. Para esta explicao passo a passo, voc criar um site Web do sistema de arquivos que no requer que voc trabalhe com o Internet Information Services (IIS) da Microsoft. Em vez disso, voc criar e executar sua pgina no sistema de arquivos local. Um sistema de arquivos do site Web um sistema que armazena pginas e outros arquivos em uma pasta que voc escolhe em algum lugar em seu computador local. Outras opes de site Web incluem um site Web do IIS local, que armazena seus arquivos em uma subpasta da raiz do IIS local (normalmente, \Inetpub\Wwwroot\). Um site FTP armazena arquivos em um servidor remoto que voc acessa atravs da Internet, usando o File Transfer Protocol (FTP). Um site remoto armazena arquivos em um servidor remoto que voc pode acessar atravs de uma rede local. Para mais informaes, consulte Explicao Passo a Passo: Editando Sites Web com FTP no Visual Web Developer. Alm disso, os arquivos do site Web podem ser armazenados em um sistema de controle de origem como o Visual SourceSafe. Para mais informaes, consulte Introduo ao Controle de Origem. Para criar um site Web do sistema de arquivos 1. 2. Abra o Visual Web Developer. No menu File, aponte para New, e em seguida, clique em Web site A caixa de dilogo New Web Site aparece como mostrado na screen shot a seguir. Caixa de dilogo New Web Site

3.

No Visual Studio installed templates, clique em ASP.NET Web Site. Quando voc cria um site Web, voc especifica um modelo. Cada modelo cria um aplicativo Web que contm arquivos e pastas diferentes. Nesta explicao passo a passo, voc est criando um site Web baseado no modelo ASP.NET Web Site, que cria algumas pastas e alguns arquivos padro.

4.

Na caixa Location, selecione a caixa File System e seguida, digite o nome da pasta onde voc deseja manter as pginas do seu site Web. Por exemplo, digite o nome da pasta C:\BasicWebSite.

Apostila Visual Studio 2005

367

5.

Na lista Language, clique em Visual Basic ou Visual C#. A linguagem de programao que voc escolher ser o padro para seu site Web. Entretanto, voc pode usar vrios idiomas no mesmo aplicativo Web, criando pginas e componentes em linguagens de programao diferentes

6.

Clique em OK. O Visual Web Developer cria a pasta e uma nova pgina chamada Default.aspx. Quando uma nova pgina criada, por padro, o Visual Web Developer exibe a pgina no modo Source, onde voc pode ver os elementos HTML da pgina. O screen shot a seguir mostra o modo Source de uma pgina Web padro. Modo Source de uma pgina padro

Um Tour do Visual Web Developer Antes de voc prosseguir trabalhando na pgina, til voc se familiarizar com o ambiente de desenvolvimento do Visual Web Developer. A ilustrao a seguir mostra as janelas e ferramentas que esto disponveis no Visual Web Developer. Diagrama do ambiente Visual Web Developer

Para se familiarizar com o designer da Web em Visual Web Developer

Examinar a ilustrao anterior e corresponder o texto para a lista a seguir, que descreve as janelas e ferramentas mais comumente usadas. (Nem todas as janelas e ferramentas que voc v so listadas aqui, somente as marcadas na ilustrao anterior.) Barras de ferramentas. Fornecem comandos de formatao de texto, localizao de texto, e assim por diante. Algumas barras de ferramentas fico disponveis somente quando voc est trabalhando em modo Design. Solution Explorer. Exibe os arquivos e pastas em seu site Web. Janela de Documento. Exibem os documentos com os quais voc est trabalhando em janelas com guias. Voc pode alternar entre documentos clicando nas guias. Janela de Propriedades. Permite que voc altere as configuraes da pgina, dos elementos HTML, dos controles e de outros objetos. Guias de Exibio. Mostra diferentes modos de exibio do mesmo documento. Modo Design uma superfcie de edio prxima ao WYSIWYG. Modo Source o editor HTML para a pgina. Voc trabalhar com esses modos posteriormente nesta explicao passo a passo. Se voc preferir abrir as pginas Web em modo Design, no menu Tools, clique em Options, selecione o n HTML Designer e altere a opo Start Pages In. Caixa de Ferramentas. Fornece controles e elementos HTML que voc pode arrastar para a sua pgina. Os elementos da caixa de ferramentas so agrupados por funo em comum. Server Explorer/Database Explorer. Exibe conexes de banco de dados. Se o Server Explorer no estiver visvel no Visual Web Developer, no menu View, clique em Other Windows, e clique em Server Explorer.

o o

o o

Apostila Visual Studio 2005

368

Observao Voc pode reorganizar e redimensionar as janelas para atender suas preferncias. O menu View permite exibir janelas adicionais. Criando uma Nova Pgina Web Forms Quando voc cria um novo site Web, o Visual Web Developer adiciona uma pgina do ASP.NET (pgina Web Forms) chamada Default.aspx. Voc pode usar a pgina Default.aspx como a home page para o seu site Web. Entretanto, para esta explicao passo a passo, voc ir criar e trabalhar com uma nova pgina. Para adicionar uma pgina ao site Web 1. 2. 3. 4. 5. Feche a pgina Default.aspx. Para fazer isso, clique com o boto direito do mouse na guia que contm o nome de arquivo e selecione Close. Na Solution Explorer, clique com o boto direito do mouse o site Web (por exemplo, C:\BasicWebSite), e clique em Add New Item. No Visual Studio installed templates, clique em Web Form. Na caixa Name, digite FirstWebPage. Na lista Language, escolha a linguagem de programao que voc prefere usar (Visual Basic, C#, ou J#). Quando voc cria o site Web, voc especifica uma linguagem padro. Entretanto, sempre que voc cria um nova pgina ou um componente para o seu site Web, voc pode alterar a linguagem. Voc pode usar linguagens de programao diferentes no mesmo site Web. 6. Desmarque a caixa de seleo Place code in separate file. A screen shot a seguir mostra a caixa de dilogo Add New Item. Caixa de Dilogo Add New Item

Nesta explicao passo a passo, voc est criando uma pgina single-file com o cdigo e HTML na mesma pgina. O cdigo para pginas do ASP.NET pode ser localizado na pgina ou em um arquivo de classe separado. Para saber mais sobre como manter o cdigo em um arquivo separado, consulte Explicao Passo a Passo: Criando uma Pgina Web Bsica com Separao de Cdigo no Visual Web Developer. 7. Clique em Add. O Visual Web Developer cria a nova pgina e a abre no modo Source. Adicionando HTML pgina Nesta parte da explicao passo a passo, voc ir adicionar algum texto esttico para a pgina. Para adicionar texto para a pgina 1. Na parte inferior da janela de documento, clique na guia Design para alternar para o modo Design.

Apostila Visual Studio 2005

369

O modo Design exibe a pgina com a qual voc est trabalhando de uma maneira WYSIWYG. Nesse ponto, voc no tem qualquer texto ou controles na pgina; ento, a pgina est em branco. 2. Na pgina, digite Bem-vindo ao Visual Web Developer. A screen shot a seguir mostra o texto que voc digitou no modo Design. O texto de boas vindas como visto no modo Design

3.

Alterne para modo Source. Voc pode ver o HTML que voc criou, digitando no modo Design, como mostrado na seguinte screen shot. O texto de boas vindas como visto no modo Source

Executando a Pgina Antes de prosseguir com a adio de controles para a pgina, voc pode tentar execut-la. Para executar uma pgina, necessrio um servidor Web. Em um site Web de produo, voc usa o IIS como seu servidor Web. Entretanto, para testar uma pgina, voc pode usar o Servidor de Desenvolvimento do ASP.NET, que executado localmente e no requer o IIS. Para os sites Web do sistema de arquivos, o servidor Web padro no Visual Web Developer o Servidor de Desenvolvimento do ASP.NET. Para executar a pgina 1. Pressione CTRL+F5 para executar a pgina. O Visual Web Developer inicia o Servidor de Desenvolvimento do ASP.NET. Um cone aparece na barra de ferramentas para indicar que o servidor Web Visual Web Developer est sendo executado, como mostrado na seguinte screen shot. cone do Servidor Visual Web Developer

A pgina exibida no navegador. Embora a pgina que voc criou tenha uma extenso .aspx, ela atualmente executa como qualquer pgina HTML. Observao Se o navegador exibe um erro 502 ou um erro indicando que a pgina no pode ser exibida, voc deve configurar seu navegador para ignorar os servidores proxy para solicitaes locais. Para obter detalhes, consulte COMO: Ignorar um Servidor proxy para Solicitaes Web Locais. 2. Feche o navegador. Adicionando e Programao Controles Nesta parte da explicao, voc ir adicionar os controles Button, TextBox e Label para a pgina e gravar o cdigo para manipular o evento Click para o controle Button.

Apostila Visual Studio 2005

370

Agora voc ir adicionar os controles do servidor na pgina. Os controles do servidor, que incluem botes, rtulos, caixas de texto e outros controles familiares, fornecem capacidades tpicas para processamento de formulrios para suas pginas Web do ASP.NET. Entretanto, voc pode programar os controles com cdigo que executado no servidor, no no cliente. Para adicionar controles para a pgina 1. 2. 3. 4. Clique na guia Design para alternar para modo Design. Pressione SHIFT+ENTER algumas vezes para criar um pouco de espao. No TextBox, a partir do grupo Standard, arraste trs controles para a pgina: um controle Label, um controle Toolbox e um controle Label. Coloque o ponto de insero acima do controle TextBox e em seguida, digite Entre com o seu nome:. Esse texto HTML esttico a legenda do controle TextBox. Voc pode misturar HTML esttico e controles de servidor na mesma pgina. O screen shot a seguir mostra como os trs controles aparecem no modo Design. Controles no Modo de Exibio Design

Definindo as Propriedades do Controle O Visual Web Developer oferece vrias maneiras para definir as propriedades dos controles na pgina. Nesta parte da explicao passo a passo, voc ir definir as propriedades em modo Design e em modo Source. Para definir as propriedades de controle 1. Selecione o controle Button e na janela Properties, defina Text para Display Name, conforme mostrado na screen shot a seguir. Texto do Controle Button Alterado

2.

Alterne para modo Source. O modo de exibio Source exibe o HTML para a pgina, incluindo os elementos que o Visual Web Developer criou para os controles do servidor. Os controles so declarados usando sintaxe do tipo HTML, exceto as marcas que usam o prefixo asp: e incluem o atributo runat="server". As propriedades do controle so declaradas como atributos. Por exemplo, quando voc define a propriedade Text para o controle Button, na etapa 1, voc realmente definiu o atributo Text na marcao do controle. Observe que todos os controles esto dentro de um elemento <form> que tambm tem o atributo runat="server". O atributo runat="server" e o prefixo asp: para controle de marcas marcam os controles para que eles sejam processados pelo ASP.NET no lado do servidor quando a pgina executada. Cdigo fora dos elementos <form runat="server"> e <script runat="server"> interpretado pelo navegador como cdigo do cliente.

3.

Coloque o ponto de insero em um espao dentro da guia <asp:label>, e pressione SPACEBAR.

Apostila Visual Studio 2005

371

Uma lista suspensa aparece para mostrar a lista de propriedades que voc pode definir para o controle Label. Esse recurso, conhecido como IntelliSense, ajuda voc no modo Source com a sintaxe dos controles de servidor, elementos HTML e outros itens na pgina. A screen shot a seguir mostra a lista suspensa do IntelliSense para o controle Label. O IntelliSense para o controle Label

4.

Selecione ForeColor e digite um sinal de igualdade (=). O IntelliSense exibe uma lista de cores. Observao Voc pode exibir uma lista suspensa do IntelliSense a qualquer momento, pressionando CTRL+J.

5.

Selecione uma cor para o texto do controle Label. O atributo ForeColor concludo com a cor que voc selecionou.

Programando o Controle Button Para esta explicao passo a passo, voc ir escrever um cdigo que l o nome que o usurio insere na caixa de texto e exibe o nome no controle Label. Para adicionar um manipulador de eventos padro para o controle button 1. 2. Alternar para o modo Design. Clique duas vezes no controle Button. O Visual Web Developer alterna para o modo Source e cria um esqueleto de manipulador de eventos para o evento padro do controle Button, o evento Click. Observao Clicar duas vezes em um controle em modo Design apenas uma das vrias maneiras para voc poder criar os manipuladores de eventos. 3. Dentro do manipulador, digite o seguinte: Label1. O Visual Web Developer exibir uma lista dos membros disponveis para o controle Label, conforme mostrado a screen shot a seguir. Membros disponveis do controle Label

4.

Concluir o manipulador de evento Click para o boto para que ele aparea como mostrado no exemplo de cdigo a seguir. Visual Basic Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Label1.Text = Textbox1.Text & ", welcome to Visual Web Developer!" End Sub

Apostila Visual Studio 2005

372

C# protected void Button1_Click(object sender, System.EventArgs e) { Label1.Text = TextBox1.Text + ", welcome to Visual Web Developer!"; } 5. Role para baixo at o elemento <asp:Button>. Observe que o elemento <asp:Button> agora tem o atributo OnClick="Button1_Click". Este atributo vincula o evento Click do boto para o mtodo do manipulador que voc codificou na etapa 4. Os mtodos do manipulador de eventos podem ter qualquer nome; o nome que voc v o nome padro criado pelo Visual Web Developer. O ponto importante que o nome usado para o atributo OnClick deve corresponder ao nome de um mtodo na pgina. Observao Se voc estiver usando o Visual Basic com separao de cdigo, o Visual Web Developer no adiciona um atributo OnClick explcito. Em vez disso, o evento acoplado ao mtodo do manipulador usando uma palavra-chave Handles na prpria declarao do manipulador. Executando a Pgina Agora voc pode testar os controles do servidor na pgina. Para executar a pgina 1. Pressione CTRL+F5 para executar a pgina no navegador. A pgina novamente executa usando o Servidor de Desenvolvimento do ASP.NET. 2. Digite um nome para a caixa de texto e clique o boto. O nome que voc inseriu exibido no controle Label. Observe que quando voc clica no boto, a pgina remetida para o servidor Web. O ASP.NET recria a pgina, executa o seu cdigo (neste caso, executa o manipulador de eventos Click do controle Button), e em seguida, envia a nova pgina para o navegador. Se voc observar a barra de status do navegador, voc pode ver que a pgina est fazendo uma chamadapara o servidor Web sempre que voc clicar no boto. 3. No navegador, exiba o fonte da pgina que voc estiver executando. No cdigo fonte da pgina, voc v somente HTML comum; voc no v os elementos <asp:> com os quais voc estava trabalhando no modo Source. Quando a pgina executada, o ASP.NET processa os controles do servidor e processa os elementos HTML da pgina que executa as funes que representam o controle. Por exemplo, o controle <asp:Button> processado como o elemento HTML <input type="submit">. 4. Feche o navegador. Trabalhando com Controles Adicionais Nesta parte da explicao , voc trabalhar com o controle Calendar, que exibe as datas de um ms ao mesmo tempo. O controle Calendar um controle mais complexo que o boto, a caixa de texto e o rtulo com os quais voc tem trabalhado e ilustra alguns recursos adicionais dos controles do servidor. Nesta seo, voc adicionar um controle Calendar na pgina e o formatar.

Apostila Visual Studio 2005

373

Para adicionar um controle Calendar 1. 2. Em Visual Web Developer, alterne para modo Design. A partir da seo Standard do Toolbox, arraste um controle Calendar para a pgina: O painel de marca inteligente do calendrio exibido. O painel exibe comandos que facilitam a execuo das tarefas mais comuns para o controle selecionado. A screen shot a seguir mostra o controle Calendar como processado no modo Design. Controle Calender no modo Design

3.

No painel de marca inteligente, escolha Auto Format. A caixa de dilogo Auto Format exibida, permitindo que voc selecione um esquema de formatao para o calendrio. A screen shot a seguir mostra a caixa de dilogo Auto Format para o controle Calendar. Caixa de Dilogo Auto Format para o controle Calendar

4. 5.

Na lista Select a scheme, selecione Simple e em seguida, clique em OK Alterne para modo Source. Voc pode ver o elemento <asp:Calendar>. Este elemento muito maior que os elementos para os controles simples que voc criou anteriormente. Ele tambm inclui subelementos, como <WeekEndDayStyle>, que representam vrias configuraes de formatao. A screen shot a seguir mostra o controle Calendar no modo Source. Controle Calendar em modo Source

Programando o Controle Calendar Nesta seo, voc programar o controle Calendar para exibir a data selecionada atualmente. Para programar o controle Calendar 1. A partir da lista suspensa da esquerda no topo do modo Source, selecione Calendar1. A lista suspensa exibe uma lista de todos os objetos para os quais voc pode escrever cdigo. 2. A partir da lista suspensa da direita, selecione SelectionChanged. O Visual Web Developer cria um esqueleto de manipulador de eventos para o evento SelectionChanged do controle Calendar. Agora voc j viu duas maneiras para criar um manipulador de eventos para controles. O primeiro foi clicar duas vezes o controle no modo Design. O segundo usar as listas suspensas em modo Source para selecionar um objeto e o evento para o qual escrever o cdigo.

Apostila Visual Studio 2005

374

3.

Concluir o manipulador de evento SelectionChanged com o seguinte cdigo destacado. Visual Basic Protected Sub Calendar1_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Label1.Text = Calendar1.SelectedDate.ToString() End Sub C# protected void Calendar1_SelectionChanged(object sender, System.EventArgs e) { Label1.Text = Calendar1.SelectedDate.ToString(); }

Executando a Pgina Agora voc pode testar o calendrio. Para executar a pgina 1. 2. 3. Pressione CTRL+F5 para executar a pgina no navegador. Clique em uma data no calendrio. A data que voc clicou exibida no controle Label. No navegador, exibir o cdigo fonte para a pgina. Observe que o controle Calendar tem sido processado para a pgina como uma tabela, com cada dia como um elemento <td> contendo um elemento <a>. 4. Feche o navegador. Prximas Etapas Esta explicao ilustra os recursos bsicos do designer da pgina do Visual Web Developer. Agora que voc entende como criar e editar uma pgina Web no Visual Web Developer, voc pode querer explorar outros recursos. Por exemplo, voc pode querer:

Aprender mais sobre como editar HTML no Visual Web Developer. Para obter detalhes, consulte Explicao Passo a Passo: Edio de HTML Bsica no Visual Web Developer. Adicionar acesso de dados para as pginas Web. Para obter detalhes, consulte Explicao Passo a Passo: Acesso de Dados Bsicos em Pginas Web. Aprenda sobre o depurador para pginas da Web. Para obter detalhes, consulte Explicao Passo a Passo: depurao de pginas Web no Visual Web Developer. Criar pginas Web que so especificamente projetadas para telefones celulares e outros dispositivos. Para obter detalhes, consulte Explicao Passo a Passo: Criando Pginas Web para Dispositivos Mveis. Criar um layout de site consistente usando pginas mestra. Para obter detalhes, consulte Explicao Passo a Passo: Criando e Usando Pginas Mestra do ASP.NET em Visual Web Developer. Adicionar navegao ao seu site para que os usurios possam facilmente se mover entre as pginas. Para obter detalhes, consulte Explicao Passo a Passo: Adicionando Navegao de Site para um Site Web.

Apostila Visual Studio 2005

375

Passo-a-passo: Acesso a Dados Bsico em Pginas da Web


Este passo-a-passo mostra como como criar uma pgina simples com dados vinculados usando controles que so especialmente criados para acesso a dados. Durante este passo-a-passo, voc aprender a fazer o seguinte:

Conectar-se a um banco de dados do Microsoft SQL Server na ferramenta de desenvolvimento da web, o Microsoft Visual Web Developer. Usar edio arrastar-e-soltar para criar elementos de acesso a dados que podem ser usados na pgina sem cdigo. Usar o controle SqlDataSource para gerenciar o acesso a dados e vinculao. Exibir dados com o controle GridView. Configurar o controle GridView para permitir a classificao e paginao. Criar uma consulta filtrada que exibe somente registros selecionados. Pr-requisitos

Para concluir este passo-a-passo, ser necessrio o seguinte:


Acesso ao o banco de dados SQL Server Northwind. Se o banco de dados Northwind no estiver no mesmo computador do servidor web, voc deve ter um nome de usurio e senha para uma conta de usurio do SQL Server que tenha acesso ao banco de dados Northwind Observao Se voc precisar de informaes sobre como efetuar login no SQL Server, contate o administrador do servidor.

Microsoft Data Access Components (MDAC) verso 2.7 ou posterior. Se voc estiver usando o Microsoft Windows XP ou Windows Server 2003, voc j tem MDAC 2.7. Entretanto, se voc estiver usando o Microsoft Windows 2000, voc pode atualizar o MDAC que j est instalado no o computador. Para fazer o download da verso atual do MDAC, consulte Centro de Desenvolvimento de Acesso e Armazenamento de Dados. Criando o site da web

Se voc j criou um site no Visual Web Developer completando o Passo-a-passo: Criando uma Pgina da Web Bsica no Visual Web Developer, voc pode usar esse site e ir para a prxima seo. Caso contrrio, crie um novo site e pgina seguindo estas etapas. Para criar um site do sistema de arquivos 1. 2. 3. 4. Abra o Visual Web Developer. No menu File, clique em New Web Site. A caixa de dilogo New Web Site aparece. Em Visual Studio installed templates, clique em ASP.NET Web Site. Na caixa Location mais a direita, insira o nome da pasta onde voc deseja manter as pginas do site Por exemplo, digite o nome de pasta C:\WebSites.

Apostila Visual Studio 2005

376

5. 6.

Na lista Language, clique na linguagem de programao que preferir trabalhar. Clique em OK. O Visual Web Developer cria a pasta e uma nova pgina chamada Default.aspx. Adicionando um Controle GridView para Exibir Dados

Para exibir dados em um pgina da web do ASP.NET, necessrio o seguinte:

Uma conexo com uma fonte de dados (como um banco de dados). No procedimento a seguir, voc criar uma conexo com o banco de dados SQL Server Northwind.

Um controle da fonte de dados na pgina, que executa consultas e gerencia os resultados de consultas. Um controle na pgina para exibir os dados realmente. No seguinte procedimento, voc ir exibir dados em um controle GridView. O controle GridView receber seus dados a partir do controle SqlDataSource.

Voc pode adicionar esses elementos para o site separadamente. No entanto, mais fcil comear a visualizando a exibio de dados usando o controleGridView, e usando assistentes para criar a conexo e o controle da fonte de dados. O procedimento a seguir explica como criar todos os trs elementos que voc deve ter para exibir dados na pgina. Para adicionar e configurar um controle GridView para exibir dados 1. 2. 3. 4. No Visual Web Developer, alterne para o modo de exibio Design. Da pasta Data em Toolbox, arraste um controle GridView para a pgina. Se o o menu de atalho GridView Tasks no for exibido, clique com o boto direito do mouse no controle GridView e clique em Show Smart Tag. No menu GridView Tasks, em Choose Data Source list, clique em <New data source>. A caixa de dilogo Data Source Configuration aparece.

Apostila Visual Studio 2005

377

5.

Clique em Database. Isso especifica que voc deseja obter dados de um banco de dados que suporte instrues SQL. Isso inclui o SQL Server e outros OLE-DB bancos de dados compatveis. Na caixa Specify an ID for the data source, um nome controle da fonte de dados padro aparece (SqlDataSource1). Voc pode deixar esse nome.

6.

Clique em OK. O Wizard Configure Data Source aparecer, exibindo uma pgina na qual voc pode escolher uma conexo.

Apostila Visual Studio 2005

378

7. 8.

Clique em New Connection. Na caixa de dilogo Choose Data Source, em Data source, clique em Microsoft SQL Server e clique emContinue. A caixa de dilogo Add Connection aparece. Na caixa Server name , digite o nome do SQL Server que voc deseja usar.

9.

Apostila Visual Studio 2005

379

10. Para as credenciais de login, selecione a opo que seja apropriada para acessar o banco de dados do SQL Server (segurana integrada ou ID especfico e senha) e se for necessrio, digite um nome de usurio e senha. 11. Clique em Select or enter a database name, e digite Northwind. 12. Clique em Test connection e, quando voc tiver certeza que ele funciona, clique em OK. O assistente Configure Data Source - <DataSourceName> aparece e as informaes de conexo so preenchido. 13. Clique em Next. O assistente aparecer, exibindo uma pgina onde voc pode escolher armazenar a seqncia de conexo no arquivo de configurao. Armazenar a seqncia de conexo no arquivo de configurao tem duas vantagens: 1. 2. mais seguro do que armazenar a seqncia de conexo na pgina. Voc pode reutilizar a mesma seqncia de conexo em vrias pginas.

14. Certifique-se de que a caixa de seleo Yes, save this connection as esteja selecionada, e clique em Next. (Voc pode deixar o nome de seqncia de conexo padro NorthwindConnectionString.)

Apostila Visual Studio 2005

380

O assistente aparecer, exibindo uma pgina na qual voc pode especificar os dados que voc deseja buscar do banco de dados. 15. Em Specify columns from a table or view, na lista Name, clique em Customers. 16. Em Columns, selecione o CustomerID, CompanyName e City check boxes. O assistente aparecer, exibindo a Instruo SQL que voc est criando em uma caixa na parte inferior da pgina.

Observao O assistente permite que voc especifique critrios de seleo (uma clusula WHERE) e outras opes de consulta SQL. Para esta parte do passo-a-passo, voc vai criar uma declarao simples sem seleo ou opes de classificao. 17. Clique em Next. 18. Clique em Test Query para certificar-se que est buscando os dados que voc deseja. 19. Clique em Finish. O assitente fecha e voc retornado para a pgina. Executar o assistente realizou duas tarefas:
o

O assistente criou e configurou um controle SqlDataSource (chamado SqlDataSource1), que incorpora as informaes de conexo e consulta que voc especificou.

Apostila Visual Studio 2005

381

O assistente acoplou o controle GridView para o SqlDataSource. Portanto, o controle GridView exibir dados que so retornados pelo controle SqlDataSource. Se voc exibir as propriedades para o controle SqlDataSource, voc ver que o assistente criou valores para as propriedades ConnectionString e SelectQuery. Observao Voc pode facilmente alterar o aspecto do controle GridView. No modo de exibio Design, clique com o boto direito do mouse no controle GridView e clique emShow Smart Tag. No menu GridView Tasks, clique em Auto Format e aplique um esquema. Testando a pgina

Agora voc pode executar a pgina. Para testar a pgina 1. Pressione CTRL+F5 para executar a pgina. A pgina aparece no navegador. O controle GridView exibe todas as linhas de dados da tabela Customers. 2. Feche o navegador. Adicionando Classificao e Paginao Voc pode adicionar classificao e paginao no controle GridView sem escrever nenhum cdigo. Para adicionar classificao e paginao 1. 2. 3. 4. 5. No modo de exibio Design, clique com o boto direito do mouse no controle GridView e clique em Show Smart Tag. No menu de atalho GridView Tasks, selecione Enable Sorting check box. Os ttulos de colunas no controle GridView alteram para vnculos. No menu GridView Tasks, selecione Enable Paging check box. Um rodap adicionado ao controle GridView com links de nmero pgina. Opcionalmente, use Properties para alterar o valor da propriedade PageSize de 10 para um tamanho de pgina menor. Pressione CTRL+F5 para executar a pgina. Ser possvel clicar em uma coluna ttulo para classificar pelos contedos dessa coluna. Se h mais registros na fonte de dados do que o tamanho da pgina, do controle GridView, voc poder usar os links de navegao de pgina na parte inferior do controle GridView para mover entre pginas. 6. Feche o navegador. Adicionando filtragem Com freqncia voc deseja exibir somente dados selecionados na pgina. Nesta parte do passo-a-passo, voc modificar a consulta para o controle SqlDataSource para que os usurios possam selecionar registros de clientes para uma cidade especfica.

Apostila Visual Studio 2005

382

Primeiro, voc usar um controle TextBox para criar um caixa de texto na qual os usurios podero digitar o nome de uma cidade. Em seguida, alterar a consulta para incluir um filtro parametrizado (clusula WHERE). Como parte desse processo, voc criar um elemento de parmetro para o controle SqlDataSource. O elemento de parmetro estabelece como o controle SqlDataSource obter o valor para sua consulta com parametrizada nomeada, da caixa de texto. Quando voc tiver terminado com essa parte do passo-a-passo, a pgina ser semelhante a este procedimento no modo de exibio Design.

Para adicionar a caixa de texto para especificar uma cidade 1. A partir do grupo Standard em Toolbox, arraste um controle TextBox e um controle Button para a pgina. O controle Button usado somente para enviar a pgina para o servidor. Voc no precisar escrever qualquer cdigo para ele. 2. 3. 4. Em Propriedades, para o controle TextBox, definida ID como textCity. Se voc desejar, digite City ou texto semelhante antes da caixa de texto atuar como uma legenda. Em Properties para o controle Button, definida Text como Submit.

Agora voc pode modificar a consulta para incluir um filtro. Para modificar a consulta com um filtro parametrizados 1. 2. 3. Clique com o boto direito do mouse no controle SqlDataSource e clique em Show Smart Tag. No menu SqlDataSource Tasks, clique em Configure Data Source. O assistente Configure Data Source - <Datasourcename> aparece. Clique em Next. O assistente exibe o comando SQL que est atualmente configurado para o controle SqlDataSource.

Apostila Visual Studio 2005

383

4. 5. 6. 7. 8.

Clique em WHERE. Aparecer a pgina Add WHERE Clause. Na lista Column, clique em City. Na lista Operator, clique em =. Na lista Source, clique em Control. Em Parameter properties, na lista Control ID, clique em textCity.

As cinco etapas anteriores especificam que a consulta obter o valor de pesquisa para City a partir do controle TextBox adicionado mo procedimento anterior. 9. Clique em Add. A clusula WHERE que voc criou aparecer em uma caixa na parte inferior da pgina. 10. Clique em OK para fechar a pgina Add WHERE Clause. 11. No assistente Configure Data Source - <DataSourceName>, clique em Next. 12. Na pgina Test Query, clique em Test Query. O assistente aparecer, exibindo a pgina Parameter Values Editor, que solicita a voc um valor para usar na clusula WHERE. 13. Na caixa Value, digite London e clique em OK. Os registros de clientes de London aparecem. 14. Clique em Finish para fechar o assistente. Agora voc pode testar a filtragem.

Apostila Visual Studio 2005

384

Para testar a filtragem 1. 2. 3. Pressione CTRL+F5 para executar a pgina. Na o caixa de texto, digite London, e clique em Submit. Uma lista de clientes da City of London aparecer no controle GridView. Tente outras cidades, como Buenos Aires e Berlin. Prximas etapas Acesso a dados uma parte importante em vrios aplicativos da web, este passoa-passo forneceu somente uma amostra do que voc pode fazer com dados em pginas da web. Voc pode testar outros recursos adicionais do acesso a dados. Por exemplo, convm fazer o seguinte:

Trabalhar com o Microsoft Access em vez do SQL Server (Voc no pode usar dependncia de cache SQL com o Access). Para obter informaes detalhadas, consulte Passo-a-passo: Criando uma Pgina da Web para Exibir Dados de Banco de Dados do Access.

Editar e inserir registros. Para obter informaes detalhadas, consulte Passo-a-passo: Editando e Inserindo Dados em Pginas da Web com o Controle DetailsView Web Server..

Trabalhar com registros que tenham um relacionamento master-detail. Para obter informaes detalhadas, consulte Passo-a-passo: Criando Pginas da Web Master/Detail no Visual Studio.

Criar um componente middle-tier (comercial) que executa acesso a dados, e o usa como fonte de dados em uma pgina. Para obter informaes detalhadas, consulte Passo-a-passo: Vinculao de Dados para um Objeto Business Personalizado.

Passo-a-passo: Ligao de dados para um objeto corporativo personalizado


Muitos aplicativos da Web so criados usando vrias camadas, com um ou mais componentes contidos na camada no meio para fornecer acesso a dados. O Microsoft Visual Web Developer inclui um assistente que ajuda voc a criar um componente de dados que voc pode usar como um objeto de dados de camada do meio, conforme descrito em Passo-a-passo: Ligao de dados de pginas da Web com um componente de dados do Visual Studio. Entretanto, voc tambm pode desejar criar um objeto corporativo personalizado, em vez contar com o componente de dados criado pelo o assistente. Criar um objeto corporativo personalizado permite que voc implemente suas prprias lgicas corporativa. Esta explicao passo a passo ilustra como criar um objeto corporativo bsico que voc pode usar como uma fonte de dados para pginas da Web do ASP.NET. Durante esta explicao passo a passo, voc aprender como:

Criar um componente que pode retornar dados para um pgina da Web. O componente usa um arquivo XML para seus dados. Fazer referncia a objeto corporativo como uma fonte de dados em uma pgina da Web. Acoplar um controle para os dados retornados pelo objeto corporativo.

Apostila Visual Studio 2005

385

Ler e gravar dados, usando o objeto corporativo. Pr-requisitos

Para concluir esta explicao passo a passo, ser necessrio:


Visual Web Developer (Visual Studio). O .NET Framework.

Esta explicao passo a passo presume que voc tenha uma compreenso geral de como usar o Visual Web Developer. Criando o site da Web Se j tiver criado um site no Visual Web Developer (por exemplo, seguindo as etapas no Passo-a-passo: Criando uma pgina da Web bsica em Visual Web Developer), voc pode usar esse site e v para a prxima seo, "Criando um arquivo XML para dados Corporativos." Caso contrrio, crie um novo site e pgina seguindo estas etapas. Para criar um site do sistema de arquivos 1. 2. 3. 4. Abra o Visual Web Developer. No menu File, clique em New Web Site. A caixa de dilogo New Web Site aparece. Em Visual Studio installed templates, clique em ASP.NET Web Site. Na caixa Location, insira o nome da pasta onde voc deseja manter as pginas do seu site. Por exemplo, digite o C:\WebSites nome da pasta. 5. 6. Na lista Language, clique na linguagem de programao que voc preferir trabalhar. Clique em OK. O Visual Web Developer cria a pasta e uma nova pgina chamada Default.aspx. Criando um arquivo XML para dados corporativos No procedimento a seguir, voc criar um arquivo XML simples para os dados de componentes Business. Para criar o arquivo XML 1. No Solution Explorer, clique com o boto direito do mouse App_Data, e ento clique em Add New Item. Observao Certifique-se de que voc criou o arquivo XML na pasta App_Data. A pasta App_Data tem as permisses definidas sobre ela que permitir que a pgina da Web leia e grave dados para o arquivo XML. 2. 3. 4. Em Visual Studio installed templates, clique em XML file. Na caixa Name, digite Authors.xml. Clique em Add.

Apostila Visual Studio 2005

386

Um novo arquivo XML criado que contm somente a diretiva XML. 5. Copie os seguintes dados XML, e cole-o para o arquivo, sobrescrevendo o que j estiver no arquivo. O arquivo XML inclui informaes de esquema que identifica a estrutura do banco de dados dos dados, incluindo uma restrio de chave primria para a chave. Observao Componentes Business podem trabalhar com dados em qualquer forma que seja adequada para seu aplicativo. Esta explicao passo a passo usa um arquivo XML. <?xml version="1.0" standalone="yes"?> <dsPubs xmlns="http://www.tempuri.org/dsPubs.xsd"> <xs:schema id="dsPubs" targetNamespace="http://www.tempuri.org/dsPubs.xsd" xmlns:mstns="http://www.tempuri.org/dsPubs.xsd" xmlns="http://www.tempuri.org/dsPubs.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified"> <xs:element name="dsPubs" msdata:IsDataSet="true"> <xs:complexType> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="authors"> <xs:complexType> <xs:sequence> <xs:element name="au_id" type="xs:string" /> <xs:element name="au_lname" type="xs:string" /> <xs:element name="au_fname" type="xs:string" /> <xs:element name="au_phone" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> <xs:unique name="Constraint1" msdata:PrimaryKey="true"> <xs:selector xpath=".//mstns:authors" /> <xs:field xpath="mstns:au_id" /> </xs:unique> </xs:element> </xs:schema> <authors> <au_id>172-32-1176</au_id> <au_lname>West</au_lname> <au_fname>Paul</au_fname> <au_phone>408 555-0123</au_phone> </authors> <authors> <au_id>213-468915</au_id> <au_lname>Gray</au_lname> <au_fname>Chris</au_fname> <au_phone>415 555-0120</au_phone> </authors> </dsPubs> 6. Salve o arquivo Authors.xml, e feche-o. Criando um componente A prxima etapa para criar uma classe para atuar como o seu componente de negcios. Voc ir manter o componente na pasta App_Code do site da Web. Em um aplicativo real, voc pode manter o componente em qualquer armazenamento conveniente, incluindo o cache global de assemblies. Se seu site no tiver uma pasta chamada App_Code, voc deve criar uma. Para criar uma pasta App_Code

No Solution Explorer, clique com o boto direito do mouse no nome de seu site, clique Add ASP.NET Folder, e em seguida, clique em App_Code. Observao A pasta deve ser nomeada App_Code.

Agora voc poder adicionar o componente ao seu site.

Apostila Visual Studio 2005

387

Para criar o componente Business 1. Na Solution Explorer, clique com o boto direito do mouse, na pasta App_Code e clique Add New Item. Observao Certifique-se de criar o novo item na pasta App_Code. 2. 3. 4. 5. 6. A caixa de dilogo Add New Item aparece. Em Visual Studio installed templates, clique em Class. Na caixa Language, clique na linguagem de programao que voc preferir. Na caixa Name, digite BusinessObject. Clique em Add. O Visual Web Developer cria o novo arquivo de classe e abre o editor de cdigos. 7. Copie o seguinte cdigo, e cole-o para o arquivo, sobrescrevendo o que j estiver no arquivo. Visual Basic Imports Microsoft.VisualBasic Imports System Imports System.Web Imports System.Data Namespace PubsClasses Public Class AuthorClass Private dsAuthors As DataSet = _ New System.Data.DataSet("ds1") Private filePath As String = _ HttpContext.Current.Server.MapPath _ ("~/App_Data/authors.xml") Public Sub New() dsAuthors.ReadXml(filePath, Data.XmlReadMode.ReadSchema) End Sub Public Function GetAuthors() As DataSet Return dsAuthors End Function End Class End Namespace C# using System; using System.Web; using System.Data; namespace PubsClasses { public class AuthorClass { private DataSet dsAuthors = new DataSet("ds1"); private String filePath = HttpContext.Current.Server.MapPath ("~/App_Data/Authors.xml"); public AuthorClass() { dsAuthors.ReadXml (filePath, XmlReadMode.ReadSchema); } public DataSet GetAuthors () { return dsAuthors; } } } Observao Certifique-se de que o valor da varivel filePath referencia o nome do arquivo XML que voc criou anteriormente. Quando uma instncia da classe criada, ele l o arquivo XML e converte em um DataSet. A classe do mtodo GetAuthors retorna o DataSet. 8. Salve o arquivo. Voc deve salvar o arquivo para que a prxima seo funcione corretamente. Exibindo dados usando o componente Business Voc pode chamar o componente Business em uma pgina da Web e exibir seus dados. Para referenciar o componente, use um controle ObjectDataSource, que est especificamente projetado para trabalhar com objetos.

Apostila Visual Studio 2005

388

Para criar um controle ObjectDataSource que referencia o componente 1. Alterne para ou abra a pgina Default.aspx. Observao Se voc no tem uma pgina Default.aspx, voc pode usar outra pgina. Como alternativa, voc pode adicionar uma nova pgina para o site. No Solution Explorer, clique com o boto direito do mouse no nome do site, clique em Add New Item, e adicione. um Web Form 2. 3. 4. 5. Alterne para modo Design. No Toolbox, a partir da pasta Data, arraste um controle ObjectDataSource para dentro da pgina. Na janela Properties, definida ID como AuthorsObjectDataSource. Clique com o boto direito do mouse no controle ObjectDataSource e em seguida, clique na marca inteligente para exibir o Menu ObjectDataSource Tasks. No menu ObjectDataSource Tasks, clique em Configure Data Source. O assistente Configure Data Source aparece. 7. 8. 9. Na lista Choose your business object, clique PubsClasses.AuthorClass. Clique em Next. Na guia Select, na lista Choose a method, clique em GetAuthors(), returns Dataset. O mtodo GetAuthors definido na classe Business criada anteriormente. Ele retorna um DataSet contendo os dados do arquivo Authors.xml. 10. Clique em Finish. As informaes de configurao que voc inseriu especificam que para obter dados do componente, o mtodo GetAuthors do componente deve ser chamado. Agora voc pode obter dados do componente usando o controle ObjectDataSource. Voc ir exibir os dados em um controle GridView na pgina. Para exibir dados do componente 1. 2. 3. 4. No Toolbox, a partir da pasta Data, arraste um controle GridView para a pgina. Clique com o boto direito do mouse no controle GridView e clique na marca inteligente se o Menu Common GridView Tasks no estiver aparecendo. No menu Common GridView Tasks, na caixa Choose Data Source, clique em AuthorsObjectDataSource. Pressione CTRL+F5 para executar a pgina. O controle GridView exibido com o dados XML dentro dele. Inserindo dados usando o componente Business Como em outros controles de fonte de dados, como o Controle SqlDataSource , o Controle ObjectDataSource suporta atualizao (inserir, atualizar e excluir). Nesta seo, voc modificar o componente Business com um mtodo que insere um

6.

Apostila Visual Studio 2005

389

registro autor. Ento, voc ir alterar a pgina para que os usurios possam digitar novas informaes de autor e modificar o controle ObjectDataSource para executar a insero. Observao Durante esta parte da explicao passo a passo, o arquivo Authors.xml que voc criou anteriormente ser atualizado. importante que o aplicativo tenha permisso para gravar no arquivo em tempo de execuo ou a pgina da Web exibir um erro quando voc tentar atualizar o arquivo. Se voc tiver criado o arquivo Authors.XML na pasta App_Data, as permisses so definidas automaticamente. Para modificar o componente Business para permitir insero 1. 2. Alterne para o arquivo BusinessObject. Adicione o seguinte mtodo como o membro final do AuthorClass. Visual Basic Public Sub InsertAuthor(ByVal au_id As String, _ ByVal au_lname As String, _ ByVal au_fname As String, ByVal au_phone As String) Dim workRow As DataRow = dsAuthors.Tables(0).NewRow workRow.BeginEdit() workRow(0) = au_id workRow(1) = au_lname workRow(2) = au_fname workRow(3) = au_phone workRow.EndEdit() dsAuthors.Tables(0).Rows.Add(workRow) dsAuthors.WriteXml(filePath, Data.XmlWriteMode.WriteSchema) End Sub C# public void InsertAuthor (String au_id, String au_lname, String au_fname, String au_phone) { DataRow workRow = dsAuthors.Tables[0].NewRow (); workRow.BeginEdit (); workRow[0] = au_id; workRow[1] = au_lname; workRow[2] = au_fname; workRow[3] = au_phone; workRow.EndEdit (); dsAuthors.Tables[0].Rows.Add (workRow); dsAuthors.WriteXml (filePath, XmlWriteMode.WriteSchema); } Observao Preste ateno para os nomes das variveis usadas para passar informaes do autor para o mtodo Close (au_id, au_lname e au_phone, au_fname ). Eles devem corresponder aos nomes de coluna definidos no esquema do arquivo XML criado anteriormente. O novo mtodo tem quatro valores para inserir, que voc ir fornecer na pgina como parmetros. O mtodo cria uma nova linha no DataSet, e grava o DataSet atualizado de sada como um arquivo XML. 3. Salve o arquivo. A prxima etapa alterar a pgina para que os usurios possam inserir novas informaes de autor. Para o procedimento seguinte, voc ir usar o controle DetailsView . Para adicionar um controle para inserir dados 1. 2. Alterne para ou abra a pgina Default.aspx. Alterne para modo Design.

Apostila Visual Studio 2005

390

3.

Em Toolbox, a partir da pasta Data, arraste um controle DetailsView para a pgina. Observao O leiaute exato da pgina no importante.

4.

No menu DetailsView Tasks, na caixa Choose Data Source, clique em AuthorsObjectDataSource. Observao Se no estiver visvel, no menu DetailsView Tasks clique na marca inteligente.

5.

Na janela Properties, defina AutoGenerateInsertButton como true. Isso faz com que o controle DetailsView processe um boto New que os usurios podem clicar para colocar o controle no modo de entrada de dados.

Finalmente, voc deve configurar o controle ObjectDataSource para especificar qual ao o controle deve executar para inserir dados. Para configurar o controle da fonte de dados para inserir dados

Clique com o boto direito do mouse AuthorsObjectDataSource, clique em Properties, e defina InsertMethod para InsertAuthor. Este o nome do mtodo adicionado para o componente Business.

Agora voc pode inserir novos autores no arquivo XML. Para testar a insero 1. 2. 3. Pressione CTRL+F5 para executar a pgina Default.aspx. No controle DetailsView, clique no boto New. O controle reexibido com caixas de texto. Insira novas informaes de autor, e clique Insert. As novas informaes de autor so adicionadas ao arquivo XML. O controle GridView imediatamente reflete o novo registro. Prximas etapas Esta explicao passo a passo ilustra como trabalhar com um componente de dados. Voc pode desejar testar recursos adicionais de navegao. Por exemplo, voc pode desejar:

Adicionar funcionalidades de atualizao e excluso . Para fazer isso, adicione mtodos ao componente. Isso semelhante a lgica usada para adicionar a insero voc adiciona um mtodo ao componente, configura o controle da fonte de dados para chamar o mtodo componente, adiciona parmetros apropriados, e adiciona uma linha de cdigo para chamar os mtodos Update e Delete do controle da fonte de dados. Para obter detalhes, consulte Passo-apasso: Editando e Inserindo Dados com o controle DetailsView do servidor Web Alterar o componente Business para trabalhar com dados de banco de dados em vez de com um arquivo XML. Voc no precisa fazer qualquer alterao aos controles na pgina.

Apostila Visual Studio 2005

391

Restringir quais usurios podem fazer alteraes aos dados. Um mtodo comum adicionar membros e funes ao seu site, e depois estabelecer regras que o componente Business pode verificar antes de permitir as alteraes feitas nos dados. Para obter detalhes, consulte Passo-a-passo: Criando um site com associaes e logon de usurio (Visual Studio) e Passo-a-passo: Gerenciando Usurios de Sites da Web com Papis.

Explicao passo a passo: depurao de pginas da Web no Visual Web Developer


O Visual Web Developer fornece ferramentas para ajudar a rastrear erros em suas pginas da Web do ASP.NET. Nesta explicao passo a passo, voc trabalhar com o depurador, o qual permite que voc execute o cdigo da pgina linha por linha e examine os valores das variveis. Nesta explicao passo a passo, voc criar um pgina da Web que contm uma calculadora simples que eleva um nmero ao quadrado. Aps criar a pgina (que incluir um erro deliberadamente), voc usar o depurador para examinar a pgina enquanto esta estiver sendo executada. Tarefas ilustrado nesta explicao passo a passo incluem:

Definir pontos de interrupo. Chamar o depurador a partir de um pgina Web Forms em um site no sistema de arquivos. Pr-requisitos

Para concluir este explicao passo a passo, sero necessrios:

Visual Web Developer e o .NET Framework.

Voc tambm deve ter uma compreenso geral de como trabalhar no Visual Web Developer. Para uma introduo ao Visual Web Developer, consulte Explicao passo a passo: Criando uma pgina da Web bsica no Visual Web Developer. Criar pgina e site da Web Na primeira parte da explicao passo a passo, voc criar uma pgina que voc pode depurar. Se voc j criou um site no Visual Web Developer (por exemplo, por ter seguido o tpico Explicao passo a passo: Criando uma pgina da Web bsica no Visual Web Developer), voc pode usar o site criado e pular para "Adicionando controles para depurao" a seguir nesta explicao. Caso contrrio, crie um novo site e pgina seguindo estes passos. Para criar um site no sistema de arquivos 1. 2. 3. 4. Abra o Visual Web Developer. No menu File, clque em New Web Site. A caixa de dilogo New Web Site aparecer. Em Visual Studio installed templates, clique em ASP.NET Web Site. Na caixa Location, clique em File System e digite o nome da pasta onde voc deseja manter as pginas do seu site. Por exemplo, digite o nome da pasta C:\WebSites. 5. Na lista Language clique na linguagem de programao que voc preferir para trabalhar.

Apostila Visual Studio 2005

392

O linguagem de programao que voc escolher ser o padro para seu site. Entretanto, voc pode usar vrias linguagens no mesmo aplicativo da Web, criando pginas e componentes em linguagens de programao diferentes. Para obter informaes sobre como criar componentes usando diferentes linguagens, consulte Compartilhada pastas cdigo em sites da Web do ASP.NET. 6. Clique em OK. O Visual Web Developer cria a pasta e uma nova pgina chamada Default.aspx. Criando uma pgina para depurao Voc comear criando uma nova pgina. Para esta explicao passo a passo, importante que voc crie uma nova pgina conforme especificado no procedimento a seguir. Para adicionar uma pgina ao site 1. 2. 3. 4. 5. 6. Feche a pgina Default.aspx. No Solution Explorer, clique com o boto direito do mouse no nome do seu site (por exemplo, C:\WebSite) e escolha Add New Item. Em Visual Studio installed templates, escolha Web Form. Na caixa Name, digite DebugPage.aspx. A partir da lista Language, escolha a linguagem de programao que voc preferir usar. Certifique-se que a caixa de seleo Place code in separate file est desmarcada. Nesta explicao passo a passo, voc est criando uma pgina em um nico arquivo com o cdigo e HTML na mesma pgina. O cdigo para pginas ASP.NET pode estar localizado na pgina ou em um arquivo de classe separado. Para saber mais sobre como manter o cdigo em um arquivo separado, consulte Explicao passo a passo: Criando uma pgina da Web bsica com separao de cdigo no Visual Web Developer. 7. Clique em Add. O Visual Web Developer cria a nova pgina e a abre no modo de fonte. Voc pode agora adicionar alguns controles pgina e depois adicionar cdigo. O cdigo ser simples, mas suficiente para permitir que voc adicione pontos de interrupo posteriormente. Para adicionar controles e cdigo para depurao 1. Mude para o modo de exibio Design e depois da pasta Standard para a pasta Toolbox, arraste ento os seguinte controles para a pgina: Controle Label TextBox Button Propriedades ID: CaptionLabel Text: (empty) ID: NumberTextBox Text: (empty) ID: SquareButton

Apostila Visual Studio 2005

393

Text: Square Label Observao O layout da pgina para esta explicao passo a passo, no importante. 2. 3. Clique duas vezes no controle Button role para criar um manipulador Click para ele. Adicione lgica ao manipulador Click para chamar uma funo chamada Square para elevar o nmero digitado pelo usurio ao quadrado. O manipulador deve se parecer com o exemplo a seguir. Observao O exemplo de cdigo deliberadamente no inclui a verificao de erros. Visual Basic Sub SquareButton_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Dim number As Integer Dim result As Integer number = CInt(NumberTextBox.Text) result = Square(number) ResultLabel.Text = CStr(number) & " squared is " & CStr(result) End Sub C# protected void SquareButton_Click(object sender, System.EventArgs e) { int number, result; number = System.Convert.ToInt32(NumberTextBox.Text); result = Square(number); ResultLabel.Text = NumberTextBox.Text + " squared is " + result.ToString(); } 4. Crie a funo que eleve o nmero ao quadrado. Inclua um erro no cdigo que adicione o nmero a si mesmo em vez de multiplicar. O cdigo deve se parecer com o exemplo a seguir. Visual Basic Function Square(number As Integer) As Integer Square = number + number End Function C# int Square(int number ) { int Square; Square = number + number; return Square; } Voc tambm pode adicionar cdigo na pgina para alterar o texto do rtulo dependendo se esta for a primeira vez que a pgina est sendo executada. Para alterar a legenda do controle Label 1. 2. No modo de exibio Design, clique duas vezes na superfcie de design (no no controle) para criar um manipulador de eventos Page_Load. Defina o texto do controle Caption Label como Enter a number: se esta for a primeira vez a pgina est em execuo, ou Enter another number: caso contrrio. O manipulador deve se parecer como o exemplo de cdigo a seguir. Visual Basic ID: ResultLabel Text: (empty)

Apostila Visual Studio 2005

394

Sub Page_Load(ByVal sender As Object, ByVal e as System.EventArgs) If Page.IsPostBack = False Then CaptionLabel.Text = "Enter a number: " Else CaptionLabel.Text = "Enter another number: " End If End Sub C# if(Page.IsPostBack == false) { CaptionLabel.Text = "Enter a number: "; } else { CaptionLabel.Text = "Enter another number: " ; } Teste a pgina Para certificar-se que a pgina est funcionando, execute-a em seu estado atual. Para executar a pgina 1. 2. 3. 4. Salve a pgina. Pressione CTRL+F5 para executar a pgina. Digite um nmero (diferente de 2) e pressione o boto Square. Observe que o resultado incorreto, porque h um erro no programa. Feche o navegador. Depurando a pgina Nesta parte da explicao passo a passo, voc usar o depurador para examinar o cdigo da pgina linha por linha ao ser executado, adicionar pontos de interrupo no cdigo e executar a pgina no modo Debug. Inicialmente, voc definir pontos de interrupo em seu cdigo. Um ponto de interrupo uma linha em seu cdigo onde a execuo pra e o depurador chamado. Para definir pontos de interrupo 1. 2. Mude para o modo de visualizao Source. Clique com o boto direito do mouse na linha a seguir, escolha Breakpoint, e escolha Insert Breakpoint. Observao Voc pode habilitar e desabilitar pontos de interrupo, pressionando F9. Visual Basic If Page.IsPostBack = False Then C# if(Page.IsPostBack == false) 3. Defina outro ponto de interrupo para a linha a seguir do manipulador SquareButton_Click: Visual Basic result = Square(number) C# result = Square(number);

Apostila Visual Studio 2005

395

Observao Voc no pode definir um ponto de interrupo em uma instruo que declara uma varivel. Com pelo menos um ponto de interrupo, voc estar pronto para executar o depurador. Para executar o depurador 1. A partir do menu Debug escolha Start Debugging (ou pressione F5) para executar a pgina no modo de depurao. Se voc nunca tiver executado o depurador antes, seu aplicativo provavelmente no estar configurado para oferecer suporte a depurao. Por padro, depurao desativada em aplicativos por questes de desempenho (pginas executam mais lentamente no depurador) e por razes de segurana. O Visual Web Developer exibe uma mensagem informando a voc o que deve fazer para ativar a depurao. A opo para ativar a depurao armazenada como uma configurao no arquivo Web.config, que mantm vrias opes de configurao especficas do site. Se o arquivo Web.config no existir, o Visual Web Developer vai tanto criar o arquivo quanto realizar a configurao apropriada do depurador. Se o arquivo Web.config j existe mas a depurao no estiver ativada, voc ver uma mensagem ligeiramente diferente informando que o Visual Web Developer ir modificar o arquivo Web.config. 2. Se voc vir a mensagem informando que depurao no est ativada, clique OK para ativar a depurao. No Visual Web Developer, o designer altera para modo de depurao exibindo o cdigo para a pgina e algumas janelas de depurao. O depurador executa sua pgina linha por linha. Quando o depurador chega na linha com o ponto de interrupo, ele para e reala a linha. Como o ponto de interrupo est no manipulador Page_Load, a pgina ainda no terminou de ser processada. O navegador est aberto, mas a pgina no ser exibida ainda. 3. No menu Debug, clique em Windows, clique em Watch e em seguida, clique em Watch 1 Observao Se voc estiver usando o Visual Web Developer Express Edition, o depurador oferece apenas uma nica janela Watch. 4. 5. Isso abre uma janela Watch onde voc pode especificar os valores que voc deseja rastrear. No editor, clique com o boto direito do mouse na parte IsPostBack da expresso Page.IsPostBack e clique Add Watch. Isso adiciona a expresso na janela Watch e exibe o valor atual da propriedade (false) exibida na coluna Value. Se voc preferir, voc pode

Apostila Visual Studio 2005

396

digitar o nome de uma varivel ou propriedade na coluna Name da janela Watch. 6. A partir do menu Debug, escolha Continue para continuar a execuo, ou pressione F5. O comando Continue informa o depurador para continuar at que ele chegue no prximo ponto de interrupo. O manipulador de eventos Page_Load termina o processamento e a pgina exibida no navegador. 7. Insira o valor 2 na caixa de texto e clique o boto Square. O depurador ser exibido novamente, com o ponto de interrupo na linha no manipulador Page_Load. Neste momento, a janela Watch mostra que o valor de Page.IsPostBack true. 8. Pressione F5 novamente para continuar. O depurador processa o manipulador Page_Load e entra no manipulador SquareButton_Click, onde ele para no segundo ponto de interrupo que voc definiu. 9. No menu Debug, clique em Windows e clique Locals. Isso abre a janela Locals, que exibe os valores de todas as variveis e objetos que esto sendo no escopo da linha sendo executada. A janela Locals fornece uma maneira alternativa para voc exibir esses valores, com a vantagem de que voc no precisa definir explicitamente um observador para os elementos, mas com a desvantagem de que a janela pode conter mais informaes do que voc deseja ver. Na janela Locals, voc v que o valor de number 2 e o valor de result 0. Observao Voc tambm pode ver o valor de qualquer varivel no programa, mantendo o ponteiro do mouse sobre ela. 10. Na coluna Value da janela Locals, clique com o boto direito do mouse na linha para a varivel number e selecione Edit value. Edite o valor da varivel number e altere-o para 5. O valor 2 para a varivel number no um bom teste do programa, como tanto adicionar quanto elevar 2 a 2 resulta em 4. Portanto, enquanto o programa est sendo executado, voc pode alterar o valor dessa varivel. 11. A partir do menu Debug, escolha Step Into para entrar na funo Square, ou pressione F11. O comando Step Into faz com que o depurador execute uma linha e depois interrompa novamente. 12. Continue a depurao pressionando F11 at chegar a linha de cdigo a seguir. Visual Basic ResultLabel.Text = CStr(number) & " squared is " & CStr(result) C# ResultLabel.Text = NumberTextBox.Text + " squared is " + result.ToString();

Apostila Visual Studio 2005

397

O depurador percorre seu cdigo linha por linha. Quando o depurador executa a funo Square, voc pode usar a janela Locals para verificar os dados passados para a funo (number) e o valor de retorno da funo (Square). 13. No menu Debug, clique em Windows e Immediate. A janela Immediate permite que voc execute comandos. Voc pode usar a janela para avaliar expresses (por exemplo, para obter o valor de uma propriedade). 14. Na janela Immediate, digite a expresso a seguir e pressione ENTER. ? NumberTextBox.Text O ponto de interrogao (?) um operador na janela Immediate que avalia a expresso que o segue. No exemplo, voc est avaliando a propriedade Text do controle NumberTextBox na pgina. Voc pode avaliar qualquer varivel, propriedade de objeto ou expresso que combinem essas, usando a mesma sintaxe que voc usaria em cdigo. 15. Na janela Immediate, digite o seguinte e pressione ENTER: NumberTextBox.Text = "5" Alm de avaliar expresses, a janela Immediate permite que voc altere variveis ou propriedades 16. Pressione F5 para continuar a execuo do programa. Quando a pgina aparecer, ela exibe o resultado de passar 5 para a funo Square. Alm disso, o texto na caixa de texto foi alterado para 5. O resultado que voc v 10 incorreto , j que 10 no o quadrado de 5. Voc pode agora corrigir o erro. Para corrigir o erro e testar novamente 1. Mude do navegador para o Visual Web Developer. Observao No feche o janela do navegador. 2. Na funo Square, altere o operador "+" para o operador "*". Como o cdigo no est em execuo (a pgina terminou de ser processada), voc est em modo de edio e pode fazer alteraes permanentes. 3. 4. Pressione CTRL+S para salvar a pgina. A partir do menu Debug, escolha Delete All Breakpoints para que a pgina no pare a cada vez que for executada. Observao Voc tambm pode limpar os pontos de interrupo, pressionando as teclas CTRL+SHIFT+F9. 5. 6. Mude para o janela do navegador. Insera 5 na caixa de texto e clique o boto.

Apostila Visual Studio 2005

398

Desta vez, quando voc executar a pgina e inserir um valor, ele elevado ao quadrado corretamente. As alteraes temporrias que voc fez anteriormente, como alterar a propriedade Text do controle NumberTextBox, no foram persistentes, porque eles se aplicavam somente quando a pgina foi executada da ltima vez. 7. Feche o navegador para interromper o depurador. Prximas etapas O depurador inclui recursos adicionais para ajud-lo a trabalhar com seu cdigo. Alm disso, talvez voc queira aprender sobre tcnicas para manipular condies de erro e formas em que voc pode monitorar o processamento de pgina em tempo de execuo. Por exemplo, talvez voc queira explorar o rastreamento. Para obter detalhes, consulte Explicao passo a passo: Usando rastreamento no Visual Web Developer para ajudar a localizar erros em pgina da Web.

Passo-a-passo: Criando e usando Pginas Mestras do ASP.NET no Visual Web Developer


Esta explicao passo-a-passo ilustra como criar uma pgina mestra e diversas pginas de contedo. Pginas mestras permitem que voc crie um layout de pgina uma pgina modelo e ento crie pginas separadas contendo o contedo que ser mesclado com a pgina mestra em tempo de execuo. Para obter mais informaes sobre pginas mestras, consulte Viso Geral sobre Pginas Mestras no ASP.NET . Tarefas ilustrado esta explicao passo a passo incluem:

Criando uma pgina mestra no Microsoft Visual Web Developer . Criando uma pgina ASP.NET com contedo que voc deseja exibir na pgina mestra. Executando pginas mestras para mostrar um contedo diferente. Selecionando uma pgina mestra em tempo de execuo. Pr-requisitos

Para concluir esta explicao passo a passo, ser necessrio:


Visual Web Developer (Visual Studio). O .NET Framework. Opcionalmente, um.jpg, .gif, ou outro arquivo grfico que voc possa usar como um logotipo em sua pgina mestra. recomendvel que o logotipo no seja maior do que 48 pixels de largura. Entretanto, a exibio de um logotipo opcional e o tamanho exato do grfico no ser importante para a explicao passo a passo. Criando um site da Web

Se voc j tiver criado um site no Visual Web Developer (por exemplo, seguindo as etapas do Passo-a-passo: Criando uma pgina bsica da Web em Visual Web Developer), voc pode usar esse site e v para a prxima seo, "Criando a Pgina mestra.". Caso contrrio, crie um novo site e pgina seguindo estas etapas. Para criar um site do sistema de arquivos 1. 2. Abra o Visual Web Developer. No menu File, clique em New Web Site.

Apostila Visual Studio 2005

399

A caixa de dilogo New Web Site aparece. 3. 4. Em Visual Studio installed templates, clique em ASP.NET Web Site. Na caixa Location, insira o nome da pasta onde voc deseja manter as pginas do seu site. Por exemplo, digite o nome da pasta C:\WebSites. 5. 6. Na lista Language, clique a linguagem de programao em que voc preferir para trabalhar. Clique em OK. O Visual Web Developer cria a pasta e uma nova pgina chamada Default.aspx. Criando a pgina mestra A pgina mestra o modelo de como ser o aspecto de suas pginas. Nesta seo, voc primeiro criar um pgina mestra. Ento, voc ir usar uma tabela para formatar a pgina mestra com um menu, um logotipo, e um rodap que ser exibido em cada pgina do seu site. Voc tambm vai trabalhar com um espao reservado de contedo, que uma regio na pgina mestra que pode ser substituda por informaes em uma pgina de contedo. Para criar a pgina mestra 1. 2. 3. 4. No Solution Explorer, clique com o boto direito do mouse no nome do seu site, e ento clique Add New Item. Em Visual Studio installed templates, clique em Master Page. Na caixa Name, digite Master1. Selecione a caixa de seleo Place code in separate file . Observao Esta explicao passo-a-passo assume que voc est usando arquivos code-behind para todas as pginas. Se voc estiver usando uma pgina ASP.NET Single-file, o cdigo ilustrado nesta explicao passo-apasso ir funcionar, mas aparecer no modo de origem, no em um arquivo separado de cdigo 5. Na lista Language, clique na linguagem de programao que voc preferir e clique Add. A nova pgina mestra abre no modo de origem. Na parte superior da pgina est uma declarao @ Master em vez de uma declarao @ PAGE normalmente encontrada na parte superior de pginas ASP.NET. O corpo da pgina contm um controle <asp:contentplaceholder>, que a rea da pgina mestra onde os contedo substituveis sero mesclados nas pginas de contedo em tempo de execuo. Voc ir trabalhar mais com o espao reservado de contedo posteriormente nesta explicao passo-a-passo. Dispondo a Pgina Mestra A pgina mestra define como as pginas no seu site aparentam. Ela pode conter qualquer combinao de textos estticos e controles. Uma pgina mestra tambm contm um ou mais espaos reservados de contedo que designam onde o contedo dinmico aparecer quando as pginas forem exibidas.

Apostila Visual Studio 2005

400

Nesta explicao passo a passo, voc ir usar uma tabela para ajudar voc a posicionar elementos na pgina. Voc iniciar criando uma tabela de layout para armazenar os elementos da pgina mestra. Posteriormente, nesta seo, ir posicionar o controle de espao reservado de contedo que j estiver na pgina. Para criar uma tabela de layout para a pgina mestra 1. Com o arquivo Master1.Master selecionado no modo de exibio de origem, defina o esquema de destino para validao para o Microsoft Internet Explorer 6.0. Para definir esse valor, voc pode usar tanto a lista suspensa na caixa de ferramentas ou selecionar Options a partir do menu Tools, e clicar em Validation. Alternar para modo Design. A partir da Lista suspensa na parte superior da janela Propriedades, selecione DOCUMENT, e defina BgColor para uma cor diferente, como azul. A cor selecionada no importante. Posteriormente nesta explicao passo-apasso voc criar uma segunda pgina mestra sem uma cor para comparar com aquilo que voc est selecionando aqui. 4. Clique na pgina onde voc deseja colocar a tabela de layout. Observao No coloque a tabela de layout dentro do Controle ContentPlaceHolder. 5. 6. No menu Layout, clique em Insert Table. Na caixa de dilogo Insert Table , clique em Template. Na lista cliquem em Header, footer and side, e clique OK. O modelo define a organizao de linhas e clulas na tabela. O modelo que voc selecionou cria trs linhas, e a linha central dividida em duas clulas. 7.
o o o

2. 3.

Faa as seguintes configuraes: Na linha do meio, clique na coluna mais esquerda, e defina seu Width como 48 na janela Properties. Clique na primeira linha, e defina seu Height como 48 na janela Properties. Clique na linha inferior, e defina seu Height como 48 na janela Properties. Observao Voc pode definir a largura e altura arrastando as bordas de clula da tabela ou selecionando a clula e definindo valores na janela Properties.

8.

Selecione todas as clulas na tabela e defina BgColor como uma cor diferente do que a cor do plano de fundo, e defina VAlign como top.

Aps definir o layout a tabela, voc pode adicionar contedo para a pgina mestra que aparecer em todas as pginas. Voc ir adicionar uma mensagem de direitos autorais como um rodap, e adicionar um menu. Se tiver um grfico de logotipo disponvel, voc poder adiciona-lo tambm.

Apostila Visual Studio 2005

401

Para adicionar contedo esttico para a pgina mestra 1. 2. 3. Clique na clula inferior e digite o texto rodap como Copyright 2005 Contoso Inc. Na Toolbox, a partir do grupo de controle Navigation, arraste um controle de Menu para a clula superior. Crie um menu seguindo estas etapas: 1. 2. 4. Defina a propriedade do controle do Menu Orientation como Horizontal. Clique na marca inteligente no controle do Menu, e clique Edit Menu Items na caixa de dilogo Menu Tasks.

Em Items, clique duas vezes no cone Add a root node para adicionar dois itens de menu : 1. 2. 3. Clique no primeiro n, e defina Text como Home e NavigateUrl como Home.aspx. Clique no segundo n, e defina Text como About e NavigateUrl como About.aspx. Clique OK para fechar a caixa de dilogo Menu Item Editor.

5.

Se voc tiver um arquivo grfico disponvel para uso como um logotipo, siga estas etapas para coloc-lo na pgina mestra: 1. 2. 3. 4. Na Solution Explorer, clique com o boto direito do mouse no nome do site, e clique Add Existing Item. Navegue para o arquivo grfico, selecione o arquivo grfico, e ento clique Add. Na Toolbox do grupo Standard, arraste um controle de Image para a coluna do esquerda no meio de tabela. Definida a propriedade do controle da Imagem ImageUrl com o nome do arquivo grfico.

Agora voc pode posicionar o espao reservado de contedo para especificar onde a pgina mestra pode exibir contedo em tempo de execuo. Para adicionar um espao reservado de contedo 1. Arraste o controle ContentPlaceHolder para a clula direita do meio. A Propriedade ID do controle ContentPlaceholder1. Voc pode deixar esse nome ou alter-lo. Se voc alterar o nome, certifique-se de anotar o nome porque voc precisar saber o nome mais tarde. 2. Salvar a pgina. Criando Contedo para a Pgina Mestra A pgina mestra fornece o modelo para o seu contedo. Voc define o contedo para a pgina mestra, criando uma pgina ASP.NET que est associada com a pgina mestra. A pgina de contedo uma forma especializada de uma pgina ASP.NET que contm somente o contedo a ser mesclado com a pgina mestra. Na pgina de contedo, voc adiciona o texto e os controles que voc deseja exibir quando os usurios solicitarem essa pgina.

Apostila Visual Studio 2005

402

Nesta explicao passo a passo, voc ir adicionar duas pginas com contedo para a pgina mestra. A primeira uma Home Page e a segunda uma pgina do tipo Sobre. Para criar a Home Page 1. 2. 3. 4. 5. 6. No Solution Explorer, clique com o boto direito do mouse no nome do site, e clique em Add New Item. Em Visual Studio installed templates, clique em Web Form. Na caixa Name, digite Home. Na lista Language, clique na linguagem de programao que voc preferir. Selecione a caixa de seleo Select master page, e clique Add. A caixa de dilogo Select a Master Page aparece. Clique em Master1.master, e clique OK. Um novo arquivo.aspx criado. A pgina contm uma diretiva @ PAGE que conecta a pgina atual com a pgina mestra selecionada com o atributo MasterPageFile, como mostrado no seguinte exemplo de cdigo. Visual Basic <%@ Page Language="VB" MasterPageFile="~/Master1.master" ... %> C# <%@ Page Language="C#" MasterPageFile="~/Master1.master" ... %> A pgina tambm contm um elemento <asp:Content> com que voc ir trabalhar a seguir. Uma pgina de contedo no tem os elementos usuais que compem uma pgina ASP.NET, como os elementos html, body, ou form. Em vez disso, voc adiciona somente o contedo que voc deseja exibir na pgina mestra, substituindo as regies do espao reservado que voc criou na pgina mestra. Para adicionar contedo para a Home Page 1. Alterne para o modo Design. A regio que voc criou como um controle ContentPlaceHolder na pgina mestra exibida como um Controle de Contedo na nova pgina de contedo. Todo o contedo restante da pgina mestra exibido, portanto voc pode ver o layout, mas ele aparece esmaecido porque voc no poder alter-lo ao editar uma pgina de contedo. 2. Da lista suspensa na janela Properties, clique em DOCUMENT, e defina Title para Home Page de Contoso. Voc pode definir o ttulo de cada pgina de contedo independentemente, de forma que o ttulo correto exibido no navegador quando o contedo mesclado com a pgina mestra. As informaes de ttulo so armazenadas na diretiva @ Page da pgina de contedo. 3. No Controle Content, digite Welcome to the Contoso Web Site, selecione o texto, e em seguida, formate o texto como Heading 1 selecionando o texto e ento selecionando Heading 1 da lista suspensa Block Format acima da Toolbox. Pressione ENTER para criar uma nova linha vazia no controle Content, e em seguida, digite Obrigada por visitar nosso site.

4.

Apostila Visual Studio 2005

403

O texto adicionado aqui no importante; voc pode digitar qualquer texto que o ajudar a reconhecer esta pgina como a home page. 5. Salve a pgina. Voc pode criar a pgina Sobre da mesma forma que voc criou a Home Page. Para criar a pgina Sobre 1. Use as mesmas etapas que voc usou para a Home Page para adicionar uma nova pgina de contedo chamada About.aspx. Certifique-se de anexar a nova pgina pgina Master1.Master como fez com a Home Page. 2. 3. Altere o ttulo da pgina para Pgina Sobre Contoso. Na regio de contedo, digite Sobre Contoso, e em seguida, formate o texto como um Heading 1, selecionando o texto e selecionando Heading 1 do Block Format da lista suspensa acima do Toolbox. Pressione ENTER para criar uma nova linha, e digite Desde 1982, Contoso prov servios de software de alta qualidade. Salve a pgina. Testando as pginas Voc pode testar as pginas, executando-as como voc faria com qualquer pgina ASP.NET. Para testar as pginas 1. Alterne para a pgina Home.aspx, e pressione CTRL+F5. O ASP.NET mescla o contedo da pgina Home.aspx com o layout na pgina Master1.master em uma nica pgina e exibe a pgina resultante no navegador. Observe que a URL da pgina Home.aspx; no h nenhuma referncia no navegador para a pgina mestra. 2. Clique no link Sobre. A pgina About.aspx exibida. Ela tambm ser mesclada com a pgina Master1.MASTER. Referenciando Membros da Pgina Mestra Cdigo em pginas de contedo podem referenciar membros da pgina mestra, incluindo quaisquer propriedades pblica ou mtodos e os controles da pgina mestra. Nesta parte da explicao passo a passo voc ir criar uma propriedade na pgina mestra, e em seguida, usar o valor da propriedade nas pginas de contedo. A premissa que o nome da empresa do site est armazenado como uma propriedade na pgina mestra, e qualquer referncia para o nome da empresa nas pginas de contedo baseada na propriedade da pgina mestra. A primeira etapa adicionar uma propriedade para a pgina mestra. Para adicionar uma propriedade pgina mestra 1. 2. Alterne para, ou abra, a pgina Master1.MASTER. Na Solution Explorer, clique com o boto direito do mouse em Master1.master, e clique View Code Para abrir o editor de cdigos. Observao

4. 5.

Apostila Visual Studio 2005

404

Por padro, o Visual Web Developer cria pginas que usam o modelo code-behind. Se voc preferir, voc pode criar cdigo usando o modelo Single-File. Para mais informaes, consulte Modelo de Cdigo de Pgina Web do ASP.NET. 3. Dentro da definio de classe, digite o cdigo a seguir. Visual Basic Public Property CompanyName() As String Get Return CType(ViewState("companyName"), String) End Get Set(ByVal Value As String) ViewState("companyName") = Value End Set End Property C# public String CompanyName { get { return (String) ViewState["companyName"]; } set { ViewState["companyName"] = value; } } O cdigo cria uma propriedade chamada CompanyName para a pgina mestra. O valor armazenado no estado da exibio para que ele seja persistentes entre postbacks. 4. Dentro da definio da classe (mas no dentro do cdigo da propriedade), adicione o seguinte cdigo. Visual Basic Sub Page_Init(ByVal sender As Object, ByVal e As EventArgs) _ Handles Me.Init Me.CompanyName = "Contoso" End Sub C# void Page_Init(Object sender, EventArgs e) { this.CompanyName = "Contoso"; } Para esse exemplo, voc ir embutir em cdigo o valor da propriedade CompanyName para a pgina. Agora voc pode modificar o pgina de contedo para usar a propriedade CompanyName da pgina mestra. Para referenciar a propriedade CompanyName na pgina de contedo 1. 2. 3. Alterne para, ou abra, a pgina Home.aspx. Alterne para modo de origem. Na parte superior da pgina, sob a diretiva @ PAGE, adicione a seguinte diretiva @ MasterType : <%@ MasterType virtualpath="~/Master1.master" %> A diretiva vincula a propriedade Master da pgina de contedo, que voc ir usar logo, com a pgina Master1.Master. 4. 5. 6. Alterne para modo Design. No controle Content, altere o texto para Bem-vindo ao site de. Na Toolbox do grupo Standard, arraste um controle Label para o controle Content, e coloque-o aps o texto esttico de forma que leia-se o texto: Bem-vindo ao site de [label] 7. 8. Defina a propriedade ID do controle do Label como CompanyName. No Solution Explorer, clique com o boto direito do mouse em Home.aspx e clique View Code para abrir o editor de cdigos.

Apostila Visual Studio 2005

405

9.

Dentro da definio de classe, adicione o seguinte cdigo. Visual Basic Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) _ Handles Me.Load CompanyName.Text = Master.CompanyName End Sub C# void Page_Load(Object sender, EventArgs e) { CompanyName.Text = Master.CompanyName; } A propriedade Master da pgina de contedo retorna uma referncia para a pgina mestra conforme definido na diretiva @ MasterType adicionada na etapa 3.

Agora voc pode testar a pgina de contedo para certificar-se de que ele est referenciando a propriedade CompanyName da pgina mestra corretamente. Para testar a referncia para a propriedade da pgina mestra 1. Alterne para, ou abra, a pgina Home.aspx, e pressione CTRL+F5 para executar a pgina. A pgina exibida no navegador, com o texto Bem-vindo ao site de Contoso 2. 3. 4. Feche o navegador. Alterne para, ou abra, a pgina code-behind Master1.MASTER. Altere o manipulador Page_Init para atribuir um nome de empresa diferente para a propriedade, como no seguinte exemplo de cdigo. Visual Basic Sub Page_Init(ByVal sender As Object, ByVal e As EventArgs) _ Handles Me.Init Me.CompanyName = "New Company Name" End Sub C# void Page_Init(Object sender, EventArgs e) { this.CompanyName = "New Company Name"; } 5. Alterne para a pgina Home.aspx, e pressione CTRL+F5 para execut-la novamente. Neste momento, o nome da empresa atualizado aparece na pgina Anotaes H vrias outras questes que voc deve estar ciente ao trabalhar com uma pgina mestra:

Em um aplicativo real, provavelmente voc iria armazenar informaes como o nome da empresa no arquivo de configurao e l-las diretamente nas pginas de contedo. No entanto, o cenrio descrito aqui fornece uma ilustrao simples de como fazer a referncia a membros de pgina mestra nas pginas de contedo. Voc pode acessar membros na pgina mestra mesmo sem incluir uma diretiva @ MasterType. Entretanto, para fazer isso, voc deve fazer um cast da propriedade System.Web.UI.Page.Master para o tipo apropriado na pgina mestra (a propriedade Master null se uma pgina no tiver nenhuma pgina mestra). Para mais informaes, consulte Trabalhando com Pginas Mestras de ASP.NET Programaticamente.

Apostila Visual Studio 2005

406

Voc pode referenciar controles na pgina mestra, usando o mtodo Master.FindControls. Para mais informaes, consulte Trabalhando com Pginas Mestras de ASP.NET Programaticamente. Alterando pginas mestras dinamicamente

Em algumas circunstncias, convm poder alterar pginas mestras dinamicamente; ou seja, usar cdigo para definir a pgina mestra para uma pgina de contedo. Por exemplo, talvez queira permitir que os usurios selecionem entre vrios layouts e defina a pgina mestra de acordo com suas preferncias. Nesta parte da explicao passo a passo, voc ir adicionar uma segunda pgina mestra ao site, e criar botes que permitem ao usurio alternar entre uma pgina mestra e outra. Porque as duas pginas mestras sero muito semelhante, voc ir fazer uma cpia da primeiro pgina mestra e ir modific-la para atuar como a segunda pgina mestra . Para fazer uma cpia da pgina mestra 1. 2. No Solution Explorer, clique com o boto direito do mouse em Master1.master, e clique Copy. Clique com o boto direito do mouse no nome do site, e em seguida, clique em Paste Uma pgina mestra adicionada ao site a Web com o nome Copy of master1.master. 3. 4. Clique com o boto direito do mouse em Copy of master1.master, clique em Rename, e denomine a nova pgina mestra como Master2.master. Abra a Master2.Master e, na diretiva @ Master, altere Master1 para Master2. A diretiva completa da pgina vai parecer com o exemplo de cdigo a seguir. Visual Basic <%@ Master Language="VB" CodeFile="Master2.master.vb" Inherits="Master2" %> C# <%@ Master Language="C#" CodeFile="Master2.master.cs" Inherits="Master2" %> 5. 6. 7. Alterne para modo Design. Na janela Properties, na lista suspensa na parte superior, clique em DOCUMENT. Desmarque a propriedade BgColor. A nova pgina mestra ter o aspecto e funcionalidades como a Master1.master, mas no ter nenhuma cor de plano de fundo. 8. Abra o arquivo de cdigo do Master2.Master e altere o nome da classe no arquivo code-behind da pgina mestra de Master1 para Master2 para corresponder ao valor do atributo Inherits na diretiva <%@ Master %> da pgina. O cdigo ter o aspecto como no exemplo a seguir. Visual Basic Partial Class Master2 C#

Apostila Visual Studio 2005

407

public partial class Master2 : System.Web.UI.MasterPage A prxima etapa adicionar um boto para cada pgina mestra que permite ao usurio selecionar a pgina mestra alternativa. Para adicionar botes para selecionar uma pgina mestra alternativa 1. 2. 3. 4. Alterne para, ou abra, a pgina Master2.MASTER. Na Toolbox, a partir do n Standard, arraste um controle LinkButton para a pgina e coloque-o abaixo do menu na clula mais alta da tabela. Defina a propriedade Text do boto como Colorful. Clique duas vezes no boto para criar um manipulador para o Evento Click, e, em seguida, adicione o cdigo realado seguinte. Visual Basic Protected Sub LinkButton1_Click(ByVal sender As Object, ByVal e As EventArgs)_ Handles LinkButton1.Click Session("masterpage") = "Master1.master" Response.Redirect(Request.Url.ToString()) End Sub C# void LinkButton1_Click(Object sender, EventArgs e) { Session["masterpage"] = "Master1.master"; Response.Redirect(Request.Url.ToString()); } O cdigo carrega o nome da pgina mestra alternativa em uma varivel de sesso persistente, e depois recarregue a pgina atual. (A propriedade Url retorna um objeto Uri que faz referncia a pgina atual.) Em breve, voc vai criar cdigo na pgina de contedo que usar o nome da pgina mestra. 5. 6. 7. Alterne para, ou abra, a pgina Master1.Master no modo Design. Adicione um controle LinkButton como voc fez nas etapas 1 e 2, e defina sua propriedade Text como Plain. Clique duas vezes no boto Plain para criar um manipulador para o Evento Click, e, em seguida, adicione o cdigo realado seguinte. Visual Basic Protected Sub LinkButton1_Click(ByVal sender As Object, ByVal e As EventArgs)_ Handles LinkButton1.Click Session("masterpage") = "Master2.master" Response.Redirect(Request.Url.ToString()) End Sub C# void LinkButton1_Click(Object sender, EventArgs e) { Session["masterpage"] = "Master2.master"; Response.Redirect(Request.Url.ToString()); } Esse cdigo o mesmo que o usado para o boto na pgina Master2.master, exceto que ele carrega uma pgina mestra alternativa. Agora voc escreve o cdigo na pgina de contedo que ir carregar dinamicamente a pgina mestra que o usurio tiver selecionado. Escrever cdigo para selecionar a pgina mestra dinamicamente 1. Alterne para, ou abra, a pgina About.aspx. Observao

Apostila Visual Studio 2005

408

A Home Page que voc criou contm uma diretiva @ MasterType que efetivamente a vincula para uma nica pgina mestra (Master1.MASTER). Portanto, no ser possvel atribuir pginas mestras dinamicamente para a Home Page e em vez disso voc vai poder trabalhar com outras pginas que voc tiver criado. 2. 3. No Solution Explorer, clique com o boto direito do mouse em About.aspx e clique View Code para abrir o editor de cdigos. Dentro da definio da classe, adicione o seguinte cdigo. Visual Basic Sub Page_PreInit(ByVal sender As Object, ByVal e As EventArgs) _ Handles Me.PreInit If Not Session("masterpage") Is Nothing Then Me.MasterPageFile = CType(Session("masterpage"), String) End If End Sub C# void Page_PreInit(Object sender, EventArgs e) { if(Session["masterpage"] != null) { this.MasterPageFile = (String) Session["masterpage"]; } } O cdigo define o valor da propriedade MasterPageFile da pgina atual para o valor na varivel de sesso, se houver. Este cdigo deve executar no manipulador Page_PreInit; no pode ser executado em um manipulador que ocorre em qualquer momento posterior que o manipulador Page_PreInit (por exemplo, no manipulador Page_Init), porque a pgina mestra deve ser estabelecida para que a pgina possa criar uma instncia dela antes de qualquer inicializao adicional possa ocorrer. Agora voc pode testar as pginas mestras dinmicas. Para testar as pginas mestras dinmicas 1. Na pgina About.aspx, pressione CTRL+F5 para executar a pgina. A pgina exibida no navegador mesclada com sua pgina mestra padro, Master1.MASTER. 2. Clique no link Plain . A pgina reexibida, neste momento mesclada com a Master2.master, que no tem nenhuma cor de plano de fundo. 3. Clique no link Colorful. A pgina exibida usando a Master1.Master novamente. Anotaes H vrias outras questes que voc deve estar ciente ao trabalhar com pginas mestras dinmicas:

O cenrio desta seo para alterar pginas mestras simplificada para manter a explicao passo a passo focalizada em pginas mestras. Em um aplicativo real, voc provavelmente deve exibir uma escolha dos layouts, e ento guardar a preferncia do usurio usando perfis. Para obter detalhes, consulte Viso geral sobre Propriedades de Perfil de ASP.NET. Voc pode configurar seu site para todas as pginas usarem a mesmo pgina mestra. Voc pode ter algumas pginas que devem usar uma pgina mestra alternativa, que voc pode configurar no cdigo de uma maneira semelhante mostrada nessa seo da explicao passo a passo. Para obter detalhes,

Apostila Visual Studio 2005

409

consulte "Escopo de Pginas Mestres" em Viso Geral de Pginas Mestras de ASP.NET.

Voc precisa adicionar o cdigo da pgina Home.aspx para cada pgina onde voc deseja substituir a pgina mestra padro. Prximas etapas

Esta explicao passo a passo ilustra a funcionalidade bsica de pginas mestras. Voc pode desejar testar recursos adicionais de pginas mestras. Por exemplo, voc pode desejar:

Criar pginas mestras que tm vrios espaos reservados de contedo. Em seguida, voc pode preencher um ou mais espaos reservados com contedo para cada pgina que voc exibir. Definir espaos reservados contedo contedo padro. Se uma pgina ASP.NET no fornece contedo para o espao reservado, a pgina mestra exibe o contedo padro. Programaticamente acessar membros da pgina mestra de pginas de contedo. Isso permite que voc dinamicamente altere o aspecto da pgina mestra em tempo de execuo. Para obter detalhes, consulte Como: Referenciar o Contedo de Pginas Mestras ASP.NET. Usar filtragem de dispositivos com pginas mestras para criar diferentes layouts para diferentes dispositivos, como um layout para navegadores e outro para um tipo especfico de telefone. Para obter detalhes, consulte Viso Geral sobre Filtragem de Dispositivo ASP.NET. Aprenda como voc pode colocar pginas mestras em pginas mestras para criar partes em componentes. Para obter detalhes, consulte Pginas Mestras ASP.NET Aninhadas.

Passo-a-passo: personalizando um site usando temas no Visual Studio


Esta explicao passo a passo ilustra como usar temas para aplicar uma aparncia consistente a pginas e controles em seu site. Um tema pode incluir arquivos de capa que definem um aspecto comum para controles individuais, uma ou mais folhas de estilo e elementos grficos comuns para uso dos controles, como o Controle TreeView Controle. Esta explicao passo a passo mostra como trabalhar com temas ASP.NET em sites da Web As tarefas ilustradas nesta explicao passo a passo incluem:

Aplicar temas predefinidos ASP.NET para pginas individuais e para o site como um todo. Criando seu prprio tema que inclui capas, que so usadas para definir o aspecto dos controles individuais. Pr-requisitos

Para concluir esta explicao passo a passo, ser necessrio:


Visual Web Developer Microsoft (Visual Studio). O .NET Framework. Criando o site da Web

Se voc j criou um site no Visual Web Developer (por exemplo, seguindo as etapas no Passo-a-passo: Criando uma pgina da Web bsica em Visual Web

Apostila Visual Studio 2005

410

Developer), voc pode usar esse site e ir para a prxima seo. Caso contrrio, crie um novo site e pgina seguindo estas etapas. Para criar um site do sistema de arquivos 1. 2. 3. 4. Abra Visual Web Developer. No menu File, clique New Web Site. A caixa de dilogo New Web Site aparece. Em Visual Studio installed templates, clique em ASP.NET Web Site. Na caixa Location, insira o nome da pasta onde voc deseja manter as pginas do seu site. Por exemplo, digite o nome da pasta C:\WebSites. 5. 6. Na lista Language, clique na linguagem de programao que voc preferir trabalhar. Clique em OK. O Visual Web Developer cria a pasta e uma nova pgina chamada Default.aspx. Para iniciar o trabalho com temas nesta explicao passo a passo, ir configurar um controle Button, um controle Calendar, e um controle Label, para que voc possa ver como esses controles so afetados por temas. Para colocar controles na pgina 1. 2. Alterne para modo Design. A partir do grupo Standarddo Toolbox, arraste um controle Calendar, um controleButton, e um controle Label para a pgina. O layout exato da pgina no importante. Observao No aplique qualquer formatao para qualquer um dos controles. Por exemplo, no use o comando AutoFormat para definir o aspecto do controle Calendar. 3. 4. Alterne para modo de origem. Certifique-se de que o elemento <head> da pgina tem o atributo runat="server" para que ela seja lida da seguinte maneira: <head runat="server"></head> 5. Salve a pgina. Para testar a pgina, voc desejar ver a pgina antes de um tema ser aplicado, e depois com diferentes temas. Criando e aplicando um tema a uma pgina O ASP.NET torna fcil aplicar um tema predefinido a uma pgina, ou criar um tema exclusivo. (Para obter detalhes, consulte COMO: Definir temas ASP.NET.) Nesta parte da explicao passo a passo, voc ir criar um tema com algumas capas simples, que definem a aparncia dos controles.

Apostila Visual Studio 2005

411

Para criar um novo tema 1. Em Visual Web Developer, clique com o boto direito do mouse no nome de seu site, clique Add ASP.Net Folder, e em seguida, clique em Theme. A pasta chamada App_Themes e uma subpasta chamada Theme1 so criadas. 2. Renomeie a pasta Theme1sampleTheme. O nome desta pasta ser o nome do tema que voc criar (aqui, sampleTheme). O nome exato no importante, mas voc tem que se lembrar dele quando voc for aplicar o tema personalizado. 3. Clique com o boto direito do mouse na pasta sampleTheme, selecione Add New Item, adicione um novo arquivo de texto, e denomineosampleTheme.skin. No arquivo sampleTheme.skin, adicione definies de capa conforme mostrado no exemplo de cdigo a seguir. <asp:Label runat="server" ForeColor="red" Font-Size="14pt" FontNames="Verdana" /> <asp:button runat="server" Borderstyle="Solid" Borderwidth="2px" Bordercolor="Blue" Backcolor="yellow"/> Observao As caractersticas exatas que voc define so no importantes. Os valores da seleo anterior so sugestes que sero mais bvias quando voc testar o tema posteriormente. As definies de capa so semelhantes sintaxe para criao de um controle, exceto que as definies incluem apenas configuraes que afetam a aparncia do controle. Por exemplo, as definies capa no incluem uma configurao para a propriedade ID. 5. Salve o arquivo de capa, e seguida, feche-o. Agora voc pode testar a pgina antes de que qualquer temas seja aplicado. Observao Se voc adicionar um arquivo de folhas de estilo em cascata (CSS) para a sua pasta sampleTheme, ele ser aplicado a todas as pginas que usam o tema. Para testar temas 1. 2. 3. Pressione CTRL+F5 para executar a pgina. Os controles so exibidos com sua aparncia padro. Feche o navegador, e depois retorne ao Visual Web Developer. No modo de exibio origem, adicione o atributo a seguir para a diretiva @ Page: <%@ Page Theme="sampleTheme" ... %> Observao

4.

Apostila Visual Studio 2005

412

Voc deve indicar o nome de um tema real no valor do atributo (neste caso, o arquivo sampleTheme.skin que voc definiu anteriormente). 4. Pressione CTRL+F5 para executar a pgina novamente. Desta vez, os controles so processados com o esquema de cores definido no seu tema. Os controles Label e Button sero exibidos com as configuraes feitas no arquivo sampleTheme.skin. Porque voc no foi criou uma entrada no arquivo sampleTheme.skin para o controle Calendar, ele ser exibido com a aparncia padro. 5. 6. Em Visual Web Developer, defina o tema com o nome de outro tema, se disponvel. Pressione CTRL+F5 para executar a pgina novamente. Os controles alteraro sua aparncia novamente. Temas de Folhas de Estilo vs. Personalizao de Temas Aps ter criado seu tema, voc pode adaptar como ele usado no seu aplicativo associando-o com a pgina tanto como um tema personalizado (como feito na seo anterior), ou como um tema de folhas de estilo. Um tema de folhas de estilo usa os mesmos arquivos de tema como um tema personalizado, mas sua prioridade nos controles e propriedades da pgina inferior, equivalente a um arquivo CSS. No ASP.NET, a ordem de prioridade :

Configuraes de temas, incluindo temas definidos em seu arquivo Web.config. Configuraes de pgina local. Configuraes de Temas de Folhas de Estilo.

Quanto a isso, se voc optar por usar um tema de folhas de estilo, as propriedades do seu tema sero substitudas por qualquer coisa declarada localmente na pgina. Da mesma forma, se voc usar um tema personalizado, as propriedades do seu tema iro substituir qualquer coisa dentro a pgina local, e tambm em qualquer tema de folhas de estilo em uso. Para usar um tema de folhas de estilo e consultar ordem de prioridade 1. 2. Alterne para modo de origem. Altere a declarao da pgina: <%@ Page theme="sampleTheme" %> Para uma declarao de tema de folhas de estilo: <%@ Page StyleSheetTheme="sampleTheme" %> 3. 4. 5. 6. Pressione CTRL+F5 para executar a pgina. Observe que a propriedade ForeColor do controle Label1 est vermelho. Alternar para modo Design. Selecione Label1 e, em Properties, defina ForeColor como blue. Pressione CTRL+F5 para executar a pgina. A propriedade ForeColor de Label1 fica azul.

Apostila Visual Studio 2005

413

7. 8.

Alterne para modo de origem. Altere a declarao da pgina para declarar um tema, em vez de um tema de folhas de estilo, alterando: <%@ Page StyleSheetTheme="sampleTheme" %> De volta para: <%@ Page Theme="sampleTheme" %>

9.

Pressione CTRL+F5 para executar a pgina. A propriedade ForeColor de Label1 estar vermelho novamente. Baseando um tema personalizado em controles existente

Uma maneira fcil para criar definies de capa usar o designer para definir as propriedades de aparncia, e ento copiar a definio de controle em um arquivo de capas. Para basear um tema personalizado em controles existentes 1. No modo Design, defina a propriedades do controle Calendar para que o controle tenha um aspecto diferente. As configuraes a seguir so sugestes: BackColor Cyan Red 4 8 Arial Large Red Yellow BorderColor BorderWidth CellSpacing Font-Name Font-Size

o o o o o o o o o

SelectedDayStyle-BackColor SelectedDayStyle-ForeColor TodayDayStyle-BackColor Observao

Pink

As caractersticas exatas que voc definir no so importantes. Os valores da lista anterior so sugestes que sero mais bvios quando voc testar o tema posteriormente. 2. 3. 4. 5. 6. 7. 8. Alterne para o modo de origem e copie o elemento<asp:calendar> e seus atributos. Alterne para ou abra o arquivo sampleTheme.skin. Cole a definio do controle Calendar no arquivo sampleTheme.skin. Remova a propriedade ID da definio no arquivo sampleTheme.skin. Salve o arquivo sampleTheme.skin. Alterne para a pgina Default.aspx, e arraste um segundo controle Calendar para a pgina. No defina qualquer outra de suas propriedades. Execute a pgina Default.aspx.

Apostila Visual Studio 2005

414

Ambos os controles Calendar iro aparentar o mesmo. O primeiro controle Calendar reflete as configuraes que voc fez nas propriedades explicitamente. O segundo controle Calendar herda suas propriedades de aparncia da definio de capa que voc fez no arquivo sampleTheme.skin. Aplicando temas a um site Voc pode aplicar um tema a um site inteiro, que significa que voc no precisa reaplicar o tema a pginas individuais. (Se voc desejar, voc pode substituir as configuraes dos temas em uma pgina.) Para configurar um tema para um site 1. Crie um arquivo Web.config se um no foi adicionado automaticamente ao seu site, seguindo etapas seguintes: 1. 2. No Solution Explorer, clique com o boto direito do mouse no nome do site, e clique Add New Item. Em Templates, selecione Web Configuration File, e clique Add. Observao Voc no precisa escrever um nome, porque o arquivo denominado sempre de Web.config. 2. 3. Adicione o elemento <pages> se ele ainda no existir. O elemento <pages> deve aparecer dentro do elemento <system.web>. Adicionar o seguinte atributo ao elemento <pages>. <pages theme="sampleTheme" /> Observao Web.config diferencia maisculas de minsculas e os valores esto caixa-mista (alta e baixa). (Por exemplo: tema e styleSheetTheme). 4. 5. 6. 7. Salve e feche o arquivo Web.config. Alterne para Default.aspx e alterne para o modo de origem. Remova o atributo theme="themeName" da declarao de sua pgina. Pressione CTRL+F5 para executar Default.aspx. Agora a pgina exibida com o tema que voc especificou no arquivo Web.config. Se voc optar por especificar um nome de tema na declarao de sua pgina, ele substituir qualquer tema especificado no seu arquivo Web.config. Prximas etapas O suporte ASP.NET para temas oferece uma variedade de opes para adaptar do aspecto e percepo de um aplicativo inteiro. Esta explicao passo a passo abordou algumas das noes bsicas, mas voc pode estar interessado em aprender mais. Por exemplo, pode desejar aprender mais sobre:

Uso de temas em geral. Para mais informaes, consulte Viso geral sobre temas e capas ASP.NET Criar seus prprios temas e capas. Para mais informaes, consulte COMO: Definir temas ASP.NET

Apostila Visual Studio 2005

415

Usando temas com cdigo. Para mais informaes, consulte COMO: aplicar temas ASP.NET Programaticamente

Explicao passo a passo: Criando uma pgina Web Parts no Visual Web Developer
Esta explicao passo a passo uma demonstrao prtica dos componentes e tarefas essenciais para criar pginas da Web que usam controles Web Parts em uma ferramenta de design visual como o Microsoft Visual Studio. Em vrios aplicativos da Web til ser capaz de alterar a aparncia do contedo, bem como permitir que os usurios selecionem e organizem o contedo que desejam ver. O recurso Web Parts do ASP.NET consiste de um conjunto de controles para criar pginas da Web que apresentam contedo modular e que permitem a usurios alterar a aparncia e o contedo para atender a suas preferncias. Para obter uma introduo geral a Web Parts, consulte Viso geral sobre Web Parts do ASP.NET. Para uma viso geral dos componentes principais do conjunto de controles Web Parts, vrios dos quais so usados nesta explicao passo a passo, consulte Viso geral sobre controles Web Parts. Durante esta explicao passo a passo, voc criar uma pgina que usa o conjunto de controles Web Parts para criar uma pgina da Web que o usurio pode modificar ou personalizar. As tarefas apresentadas nesta explicao passo a passo incluem:

Adicionar controles Web Parts a uma pgina. Criar um controle de usurio personalizado e us-lo como um controle Web Parts. Permitir que os usurios personalizem o leiaute dos controles Web Parts na pgina. Permitir que os usurios editem a aparncia de um controle Web Parts. Permitir que os usurios selecionem um controle de um catlogo de controles Web Parts disponveis. Pr-requisitos

Para concluir esta explicao passo a passo, ser necessrio:

Um site que possa identificar usurios individuais. Se voc tiver um site j configurado com participao (membership) do ASP.NET, voc pode usar esse site como um ponto de partida para esta explicao passo a passo. Caso contrrio, a explicao passo a passo fornece instrues sobre como configurar seu site para identific-lo por seu nome de conta de usurio do Windows. Um ambiente de design visual para criar pginas da Web. Esta explicao passo a passo usa o Visual Studio. Um provedor de personalizao configurado e um banco de dados. Personalizao de Web Parts ativada por padro e usa o provedor de personalizao SQL (SqlPersonalizationProvider) do Microsoft SQL Server Express Edition para armazenar os dados de personalizao. Esta explicao passo a passo usa o SSE e o provedor SQL padro. Se voc tiver o SSE instalado, nenhuma configurao ser necessria. O SSE est disponvel com o Microsoft Visual Studio 2005 como uma parte opcional da instalao ou como um download gratuito de Microsoft.com. Para usar uma das verses completas do SQL Server, voc deve instalar e configurar um banco de dados de servios de aplicativos ASP.NET e configurar o provedor de personalizao SQL para se

Apostila Visual Studio 2005

416

conectar a este banco de dados. Para obter detalhes, consulte Criar e configurar o banco de dados de servios de aplicativos para o SQL Server. Criar e configurar um site da Web Esta explicao passo a passo requer que voc tenha uma identidade de usurio, para que suas configuraes Web Parts possam ser mapeadas para voc. Se voc j tiver um site configurado para usar associao (membership), recomendvel que voc use esse site. Caso contrrio, voc pode criar um novo site e usar seu nome de usurio do Windows atual como a identidade do usurio. Para criar um novo site

No Visual Studio, crie um novo site da Web do ASP.NET. Para obter detalhes, consulte Explicao passo a passo: Criar um site com associao (mebership) e login de usurio (Visual Studio). Criando uma pgina simples com Web Parts

Nesta parte da explicao passo a passo, voc vai criar uma pgina que usa controles Web Parts para mostrar contedo esttico. A primeira etapa para trabalhar com Web Parts consiste em criar uma pgina com dois elementos estruturais necessrios. Primeiro, uma pgina Web Parts precisa de um controle WebPartManager para controlar e coordenar todos os controles Web Parts. Segundo, uma pgina Web Parts precisa de uma ou mais zonas, que so controles compostos que contm controles WebPart ou outros controles de servidor e ocupam uma regio especificada de uma pgina. Observao Voc no precisa fazer nada para permitir personalizao de Web Parts; esta ativada por padro para o conjunto de controles Web Parts. Na primeira vez que executar uma pgina Web Parts em um site, o ASP.NET configura um provedor de personalizao padro para armazenar as configuraes de personalizao do usurio. Para obter mais informaes sobre personalizao, consulte Viso geral sobre personalizao Web Parts. Para criar uma pgina para conter controles Web Parts 1. 2. 3. Feche a pgina padro e adicione uma nova pgina ao site, chamada WebPartsDemo.aspx. Alterne para o modo de exibio Design. A partir do menu View, certifique-se de que as opes Non-Visual Controls e Details esto selecionadas para que voc possa ver marcas de layout e controles que no tm uma interface de usurio Coloque o ponto de insero antes das marcas <div> na superfcie de design e pressione ENTER para adicionar uma nova linha. Posicione o ponto de insero antes do caractere de nova linha. Selecione a opo Heading 1 na lista Block Format na barra de ferramentas, adicione o texto Web Parts Demonstration Page. Na guia WebParts da caixa de ferramentas, arraste um controle WebPartManager para a pgina, posicionando-o logo aps o caractere de nova linha e antes das marcas <div>. O controle WebPartManager no gera nenhuma sada, ento ele aparece como uma caixa cinza na superfcie de design.

4. 5.

6.

Apostila Visual Studio 2005

417

7. 8.

Posicione o ponto de insero nas marcas <div>. No menu Layout, clique em Insert Table e crie uma nova tabela que tenha uma linha e trs colunas. Clique no boto Cell Properties, selecione top da lista drop-down Vertical align, clique em OK e clique em OK novamente para criar a tabela. Arraste um controle WebPartZone para a coluna esquerda da tabela. Clique com o boto direito do mouse no controle WebPartZone, escolha Properties e defina as propriedades a seguir: ID: SidebarZone HeaderText: Sidebar

9.

10. Arraste um segundo controle WebPartZone para a coluna do meio da tabela e defina as seguintes propriedades: ID: MainZone HeaderText: Main 11. Salve o arquivo. A pgina agora tem duas zonas diferentes que voc pode controlar separadamente. No entanto, nenhuma das zonas tem qualquer contedo, ento criar o contedo a prxima etapa. Para esta explicao passo a passo, voc trabalhar com controles Web Parts que exibem apenas contedo esttico. O layout de uma zona Web Parts especificado por um elemento <zonetemplate>. Dentro do modelo da zona, voc pode adicionar qualquer controle ASP.NET, quer seja um controle Web Parts personalizado, um controle de usurio ou um controle de servidor j existente. Observe que aqui voc est usando o controle Label, ao qual voc est simplesmente adicionando texto esttico. Quando voc coloca um controle de servidor em uma zona WebPartZone, o ASP.NET trata o controle como um controle Web Parts em tempo de execuo, o que habilita recursos Web Parts no controle. Para criar contedo para a zona principal 1. No modo de exibio Design, arraste um controle Label da guia Standard da caixa de ferramentas para a rea de contedo da zona cuja propriedade ID estiver definida como MainZone. Alterne para o modo de visualizao Source. Observe que um elemento <zonetemplate> foi adicionado para ajustar o controle Label na MainZone. 3. Adicione um atributo chamado title ao elemento <asp:label> e defina seu valor como Content. Remova o atributo Text="Label" do elemento <asp:label>. Dentro do elemento <asp:label>, adicione algum texto como <h2>Welcome to my Home Page</h2>. Seu cdigo deve se parecer com o a seguir. <asp:webpartzone id="MainZone" runat="server" headertext="Main"> <zonetemplate> <asp:label id="Label1" runat="server" title="Content"> <h2>Welcome to My Home Page</h2> </asp:label> </zonetemplate> </asp:webpartzone> 4. Salve o arquivo. Depois, crie um controle de usurio que tambm pode ser adicionado pgina como um controle Web Parts.

2.

Apostila Visual Studio 2005

418

Para criar um controle de usurio 1. Adicione um novo controle de usurio da Web ao seu site para servir como um controle de pesquisa denominado SearchUserControl.ascx, certificandose que a opo Place source code in a separate file est desmarcada. Observao O controle de usurio para esta explicao passo a passo no implementa a funcionalidade de pesquisa de verdade; ele usado somente para demonstrar os recursos Web Parts. 2. 3. 4. 5. 6. Alterne para o modo de exibio Design. Na guia Standard da caixa de ferramentas, arraste um controle TextBox para a pgina. Coloque o ponto de insero aps a caixa de texto que voc adicionou e pressione ENTER para adicionar uma nova linha. Arraste um controle Button para a pgina na nova linha abaixo da caixa de texto que voc adicionou. Alterne para o modo de exibio Source e certifique-se que o cdigo fonte para o controle de usurio parece com o exemplo a seguir: Visual Basic <%@ control language="VB" classname="SearchUserControl" %> <asp:textbox runat="server" id="TextBox1"></asp:textbox> <br /> <asp:button runat="server" id="Button1" text="Search" /> C# <%@ control language="C#" classname="SearchUserControl" %> <asp:textbox runat="server" id=" TextBox1"></asp:textbox> <br /> <asp:button runat="server" id=" Button1" text="Search" /> 7. Salve e feche o arquivo. Observao de segurana Esse controle tem uma caixa de texto que aceita entrada do usurio, o que uma ameaa potencial de segurana. Dados entrados pelo usurio em uma pgina da Web potencialmente pode conter scripts de cliente mal intencionados. Por padro, pginas da Web do ASP.NET validam a entrada do usurio para garantir que a entrada no contenha elementos HTML ou script. Enquanto essa validao estiver ativada, voc no precisa verificar explicitamente se h elementos HTML ou scripts nos dados entrados pelo usurio. Para mais informaes, consulte Viso geral sobre scripts maliciosos. Agora voc pode adicionar controles Web Parts zona Sidebar. Voc vai adicionar dois controles zona Sidebar, um contendo uma lista de links e outro que o controle de usurio que voc criou no procedimento anterior. Os vnculos so adicionados como um controle de servidor padro Label, semelhante ao modo com que voc criou o texto esttico para a zona principal. Entretanto, embora os controles de servidor individuais contidos no controle de usurio pudessem estar contidos diretamente na zona (como o controle de rtulo), nesse caso eles no esto. Em vez disso, eles fazem parte do controle de usurio que voc criou no procedimento anterior. Isso demonstra uma maneira comum de empacotar controles e funcionalidade adicionais que voc deseje em um controle de usurio e depois referenciar tal controle em uma zona como um controle Web Parts.

Apostila Visual Studio 2005

419

Em tempo de execuo, o conjunto de controles Web Parts envolve ambos os controles com controles GenericWebPart. Quando um controle GenericWebPart envolve um controle do servidor Web, o controle da parte genrica o controle pai e voc pode acessar o controle de servidor atravs da propriedade ChildControl do controle pai. Esse uso de controles de parte genrica permite que controles de servidor da Web padro tenham o mesmo comportamento bsico e atributos que controles Web Parts que derivam da classe WebPart. Para adicionar controles Web Parts zona da barra lateral 1. 2. 3. Abra a pgina WebPartsDemo.aspx. Alterne para o modo de exibio Design. Arraste a pgina de controle de usurio que voc criou, SearchUserControl.ascx, do Solution Explorer para a zona cuja propriedade ID estiver definida como SidebarZone. Salve a pgina WebPartsDemo.aspx. Alterne para o modo de visualizao Source.

4. 5.

6. Dentro do elemento <asp:webpartzone> da SidebarZone, adicione um elemento <asp:label> com contendo links, adicione tambm um atributo Title com um valor de Search marca de controle de usurio, conforme mostrado no exemplo a seguir: <asp:WebPartZone id="SidebarZone" runat="server" headertext="Sidebar"> <zonetemplate> <asp:label runat="server" id="linksPart" title="My Links"> <a href="http://www.asp.net">ASP.NET site</a> <br /> <a href="http://www.gotdotnet.com">GotDotNet</a> <br /> <a href="http://www.contoso.com">Contoso.com</a> <br /> </asp:label> <uc1:SearchUserControl id="searchPart" runat="server" title="Search" /> </zonetemplate> </asp:WebPartZone> 7. Salve e feche o arquivo. Agora voc pode testar sua pgina. Para testar a pgina

Carregue a pgina em um navegador. A pgina exibe as duas zonas. A tela a seguir mostra a pgina. Demonstrao de Web Parts com duas zonas

Na barra de ttulo de cada controle h uma seta para baixo que fornece acesso a um menu de aes disponveis que podem ser executadas em um controle. Clique no menu de verbos para um dos controles, clique no verbo Minimize e note que o controle minimizado. No menu de verbos, clique em Restore e o controle retornar ao seu tamanho normal. Habilitando usurios para editar pginas e alterar layout Web Parts fornece a funcionalidade para usurios alterarem o layout de controles Web Parts arrastando-os de uma zona para outra. Alm de permitir que os usurios movam controles WebPart de uma zona para outra, voc pode permitir que usurios editem vrias caractersticas dos controles, inclusive sua aparncia, layout e comportamento. O conjunto de controles Web Parts fornece a funcionalidade bsica para a edio de controles WebPart. Embora voc no faa isso nesta

Apostila Visual Studio 2005

420

explicao passo a passo, voc tambm pode criar controles de edio personalizados que permitem que os usurios editem os recursos dos controles WebPart. Assim como alterar a localidade de um controle WebPart, editar as propriedades de um controle depende da personalizao do ASP.NET para salvar as alteraes feitas pelos usurios. Nesta parte da explicao passo a passo, voc adicionar o recurso que permite aos usurios editar as caractersticas bsicas de qualquer controle WebPart em a pgina. Para ativar esses recursos, voc adicionar outro controle de usurio personalizado pgina, juntamente com um elemento <asp:editorzone> e dois controles de edio. Para criar um controle de usurio que permita modificaes do layout da pgina 1. 2. No Visual Studio, no menu File, clique em New e ento em File. Na caixa de dilogo Add New Item, selecione Web User Control. Nomeie o novo arquivo DisplayModeMenu.ascx. Desmarque a caixa de opo Place source code in separate file. Clique em Add para criar o novo controle. Alterne para o modo de visualizao Source. Remova todo o cdigo existente no novo arquivo e cole neste o cdigo a seguir. Este cdigo de controle de usurio usa recursos do conjunto de controles Web Parts para permitir que uma pgina tenha seu modo de exibio ou visualizao alterado, e tambm permite que voc altere a aparncia fsica e o layout da pgina quando estiver em certos modos de exibio. Visual Basic <%@ control language="vb" classname="DisplayModeMenuVB"%> <script runat="server"> ' Use a field to reference the current WebPartManager control. Dim _manager As WebPartManager Sub Page_Init(ByVal sender As Object, ByVal e As EventArgs) AddHandler Page.InitComplete, AddressOf InitComplete End Sub Sub InitComplete(ByVal sender As Object, ByVal e As System.EventArgs) _manager = WebPartManager.GetCurrentWebPartManager(Page) Dim browseModeName As String = _ WebPartManager.BrowseDisplayMode.Name ' Fill the drop-down list with the names of supported display modes. Dim mode As WebPartDisplayMode For Each mode In _manager.SupportedDisplayModes Dim modeName As String = mode.Name ' Make sure a mode is enabled before adding it. If mode.IsEnabled(_manager) Then Dim item As New ListItem(modeName, modeName) DisplayModeDropdown.Items.Add(item) End If Next mode ' If Shared scope is allowed for this user, display the ' scopeswitching UI and select the appropriate radio button ' for the current user scope. If _manager.Personalization.CanEnterSharedScope Then Panel2.Visible = True If _manager.Personalization.Scope = _ PersonalizationScope.User Then RadioButton1.Checked = True Else RadioButton2.Checked = True End If End If End Sub ' Change the page to the selected display mode. Sub DisplayModeDropdown_SelectedIndexChanged(ByVal sender As Object, _ ByVal e As EventArgs) Dim selectedMode As String = DisplayModeDropdown.SelectedValue Dim mode As WebPartDisplayMode = _ _manager.SupportedDisplayModes(selectedMode) If Not (mode Is Nothing) Then _manager.DisplayMode = mode End If End Sub ' Set the selected item equal to the current display mode. Sub Page_PreRender(ByVal sender As Object, ByVal e As EventArgs) Dim

3. 4. 5.

Apostila Visual Studio 2005

421

items As ListItemCollection = DisplayModeDropdown.Items Dim selectedIndex As Integer = _ items.IndexOf(items.FindByText(_manager.DisplayMode.Name)) DisplayModeDropdown.SelectedIndex = selectedIndex End Sub ' Reset all of a user's personalization data for the page. Protected Sub LinkButton1_Click(ByVal sender As Object, _ ByVal e As EventArgs) _manager.Personalization.ResetPersonalizationState() End Sub ' If not in User personalization scope, toggle into it. Protected Sub RadioButton1_CheckedChanged(ByVal sender As _ Object, ByVal e As EventArgs) If _manager.Personalization.Scope = _ PersonalizationScope.Shared Then _manager.Personalization.ToggleScope() End If End Sub ' If not in Shared scope, and if user has permission, toggle the ' scope. Protected Sub RadioButton2_CheckedChanged(ByVal sender As _ Object, ByVal e As EventArgs) If _manager.Personalization.CanEnterSharedScope AndAlso _ _manager.Personalization.Scope = _ PersonalizationScope.User Then _manager.Personalization.ToggleScope() End If End Sub </script> <div> <asp:Panel ID="Panel1" runat="server" Borderwidth="1" Width="230" BackColor="lightgray" Font-Names="Verdana, Arial, Sans Serif" > <asp:Label ID="Label1" runat="server" Text="&nbsp;Display Mode" Font-Bold="true" Font-Size="8" Width="120" /> <asp:DropDownList ID="DisplayModeDropdown" runat="server" AutoPostBack="true" Width="120" OnSelectedIndexChanged="DisplayModeDropdown_SelectedIndexChanged" /> <asp:LinkButton ID="LinkButton1" runat="server" Text="Reset User State" ToolTip="Reset the current user's personalization data for the page." Font-Size="8" OnClick="LinkButton1_Click" /> <asp:Panel ID="Panel2" runat="server" GroupingText="Personalization Scope" Font-Bold="true" FontSize="8" Visible="false" > <asp:RadioButton ID="RadioButton1" runat="server" Text="User" AutoPostBack="true" GroupName="Scope" OnCheckedChanged="RadioButton1_CheckedChanged" /> <asp:RadioButton ID="RadioButton2" runat="server" Text="Shared" AutoPostBack="true" GroupName="Scope" OnCheckedChanged="RadioButton2_CheckedChanged" /> </asp:Panel> </asp:Panel> </div> C# <%@ control language="C#" classname="DisplayModeMenuCS"%> <script runat="server"> // Use a field to reference the current WebPartManager control. WebPartManager _manager; void Page_Init(object sender, EventArgs e) { Page.InitComplete += new EventHandler(InitComplete); } void InitComplete(object sender, System.EventArgs e) { _manager = WebPartManager.GetCurrentWebPartManager(Page); String browseModeName = WebPartManager.BrowseDisplayMode.Name; // Fill the drop-down list with the names of supported display modes. foreach (WebPartDisplayMode mode in _manager.SupportedDisplayModes) { String modeName = mode.Name; // Make sure a mode is enabled before adding it. if (mode.IsEnabled(_manager)) { ListItem item = new ListItem(modeName, modeName); DisplayModeDropdown.Items.Add(item); } } // If Shared scope is allowed for this user, display the // scope-switching UI and select the appropriate radio // button for the current user scope. if (_manager.Personalization.CanEnterSharedScope) { Panel2.Visible = true; if (_manager.Personalization.Scope == PersonalizationScope.User) RadioButton1.Checked = true; else RadioButton2.Checked = true; } } // Change the page to the selected display mode. void DisplayModeDropdown_SelectedIndexChanged(object sender, EventArgs e) { String selectedMode = DisplayModeDropdown.SelectedValue; WebPartDisplayMode mode = _manager.SupportedDisplayModes[selectedMode]; if (mode != null)

Apostila Visual Studio 2005

422

_manager.DisplayMode = mode; } // Set the selected item equal to the current display mode. void Page_PreRender(object sender, EventArgs e) { ListItemCollection items = DisplayModeDropdown.Items; int selectedIndex = items.IndexOf(items.FindByText(_manager.DisplayMode.Name)); DisplayModeDropdown.SelectedIndex = selectedIndex; } // Reset all of a user's personalization data for the page. protected void LinkButton1_Click(object sender, EventArgs e) { _manager.Personalization.ResetPersonalizationState(); } // If not in User personalization scope, toggle into it. protected void RadioButton1_CheckedChanged(object sender, EventArgs e) { if (_manager.Personalization.Scope == PersonalizationScope.Shared) _manager.Personalization.ToggleScope(); } // If not in Shared scope, and if user has permission, toggle // the scope. protected void RadioButton2_CheckedChanged(object sender, EventArgs e) { if (_manager.Personalization.CanEnterSharedScope && _manager.Personalization.Scope == PersonalizationScope.User) _manager.Personalization.ToggleScope(); } </script> <div> <asp:Panel ID="Panel1" runat="server" Borderwidth="1" Width="230" BackColor="lightgray" Font-Names="Verdana, Arial, Sans Serif" > <asp:Label ID="Label1" runat="server" Text="&nbsp;Display Mode" Font-Bold="true" Font-Size="8" Width="120" /> <asp:DropDownList ID="DisplayModeDropdown" runat="server" AutoPostBack="true" Width="120" OnSelectedIndexChanged="DisplayModeDropdown_SelectedIndexChanged" /> <asp:LinkButton ID="LinkButton1" runat="server" Text="Reset User State" ToolTip="Reset the current user's personalization data for the page." Font-Size="8" OnClick="LinkButton1_Click" /> <asp:Panel ID="Panel2" runat="server" GroupingText="Personalization Scope" Font-Bold="true" FontSize="8" Visible="false" > <asp:RadioButton ID="RadioButton1" runat="server" Text="User" AutoPostBack="true" GroupName="Scope" OnCheckedChanged="RadioButton1_CheckedChanged" /> <asp:RadioButton ID="RadioButton2" runat="server" Text="Shared" AutoPostBack="true" GroupName="Scope" OnCheckedChanged="RadioButton2_CheckedChanged" /> </asp:Panel> </asp:Panel> </div> 6. Salve o arquivo, clicando no cone de gravao na barra de ferramentas, ou selecionando Save no menu File. Abra a pgina WebPartsDemo.aspx. Alterne para o modo de exibio Design. Posicione o ponto de insero imediatamente aps o controle WebPartManager que voc adicionou anteriormente. Digite ENTER para criar uma linha em branco aps o controle WebPartManager. Arraste o controle de usurio recm-criado (DisplayModeMenu.ascx) para a pgina WebPartsDemo.aspx e solte-o na linha em branco. Arraste um controle EditorZone da seo WebParts da caixa de ferramentas para a clula aberta restante da tabela na pgina WebPartsDemo.aspx. A partir da seo WebParts da caixa de ferramentas, arraste um controle AppearanceEditorPart e um controle LayoutEditorPart para o controle EditorZone. Alterne para o modo de visualizao Source. O cdigo resultante na clula da tabela deve ter aspecto semelhante ao do cdigo a seguir.

Para permitir que os usurios alterem o layout 1. 2. 3.

4. 5. 6.

7.

Apostila Visual Studio 2005

423

<td valign="top"> <asp:EditorZone ID="EditorZone1" runat="server"> <ZoneTemplate> <asp:AppearanceEditorPart ID="AppearanceEditorPart1" runat="server" /> <asp:LayoutEditorPart ID="LayoutEditorPart1" runat="server" /> </ZoneTemplate> </asp:EditorZone> </td> Observao Embora os controles AppearanceEditorPart e LayoutEditorPart sejam usados nesta explicao passo a passo, os controles PropertyGridEditorPart e BehaviorEditorPart no so, pois eles requerem configuraes alm do escopo desta explicao passo a passo. 8. Grave o arquivo WebPartsDemo.aspx.

Voc criou um controle de usurio que permite que voc altere os modos de exibio e o layout da pgina e voc referenciou o controle na pgina da Web primria. Agora voc pode testar a funcionalidade de editar pginas e alterar layout. Para testar alteraes de layout 1. 2. 3. Carregue a pgina em um navegador. No menu Display Mode, clique em Edit. Os ttulos de zona so exibidos. Arraste o controle My Links pela sua barra de ttulo a partir da zona Sidebar para a parte inferior da zona Main. Sua pgina deve ter aspecto como o da seguinte tela: Demonstrao de pgina Web Parts com o controle My Links movido

4.

Clique em Display Mode, e depois clique em Browse. A pgina ser atualizada, os nomes de zona desaparecem e o controle My Links permanecer onde voc o posicionou.

5.

Para demonstrar que a personalizao est funcionando, feche o navegador, e em seguida, carregue a pgina novamente. As alteraes feitas so salvas para sesses futuras do navegador. No menu Display Mode, clique em Edit. Agora cada controle na pgina exibido com uma seta para baixo na sua barra de ttulo, a qual contm o menu drop-down de verbos.

6.

7.

Clique na seta para exibir o menu de verbos sobre o controle My Links, e ento clique em Edit. O controle EditorZone aparecer, exibindo os controles EditorPart que voc adicionou.

8.

Na seo Appearance do controle de edio, altere o Title para My Favorites. Na lista Chrome Type, selecione Title Only e, em seguida, clique em Apply. A tela a seguir mostra a pgina no modo de edio Demonstrao de pgina Web Parts no modo de edio

Apostila Visual Studio 2005

424

9.

Clique no menu Display Mode, depois clique em Browse para retornar para o modo de navegao. O controle agora tem um ttulo atualizado e nenhuma borda, como mostrado na tela a seguir. Demonstrao de pgina Web Parts editada

Adicionar Web Parts em tempo de execuo Voc tambm pode permitir que usurios adicionem controles Web Parts suas pginas em tempo de execuo. Para fazer isso, configure a pgina com um catlogo Web Parts, que contm uma lista dos controles Web Parts que voc deseja tornar disponveis para os usurios. Observao Nesta explicao passo a passo, voc criar um modelo contendo os controles FileUpload e Calendar. Isso permitir que voc teste a funcionalidade bsica do catlogo, mas os controles Web Parts resultantes no tm qualquer funcionalidade real. Se voc tiver uma pgina da Web ou controle de usurio personalizados, voc pode substituir o contedo esttico por eles. Para permitir que os usurios adicionem Web Parts em tempo de execuo 1. 2. 3. Abra a pgina WebPartsDemo.aspx. Alterne para o modo de exibio Design. Na guia WebParts da caixa de ferramentas, arraste um controle CatalogZone para a coluna direita da tabela, sob o controle EditorZone. Ambos os controles podem estar na mesma clula da tabela pois eles no sero exibidos ao mesmo tempo. 4. 5. 6. 7. No painel Properties, atribuia a seqncia Add Web Parts para a propriedade HeaderText do controle CatalogZone. A partir da seo WebParts da caixa de ferramentas, arraste um controle DeclarativeCatalogPart para a rea de contedo do controle CatalogZone. Clique na seta no canto direito superior do controle DeclarativeCatalogPart para expor seu menu Tasks, e selecione Edit Templates. A partir da seo Standard da caixa de ferramentas, arraste um controle FileUpload e um controle Calendar para a seo WebPartsTemplate do controle DeclarativeCatalogPart. Alterne para o modo de visualizao Source. Inspecione o cdigo fonte do elemento <asp:catalogzone>. Observe que o controle DeclarativeCatalogPart contm um elemento <webpartstemplate> com os dois controles de servidor includos que voc poder adicionar sua pgina a partir do catlogo. Observao

8.

Apostila Visual Studio 2005

425

Se voc tiver um controle personalizado, este o local para substituir um dos controles servidor do exemplo por ele, embora isso necessite de etapas alm do escopo desta explicao passo a passo. Para obter mais detalhes, consulte o exemplo de cdigo na documentao para a classe WebPart. 9. Adicione uma propriedade Title a cada um dos controles adicionados ao catlogo, usando o valor de seqncia de caracteres mostrado para cada ttulo no exemplo de cdigo abaixo. Embora o ttulo no seja uma propriedade que normalmente voc possa definir nesses dois controles de servidor em tempo de design, quando um usurio adiciona esses controles a uma zona WebPartZone a partir do catlogo em tempo de execuo, eles so empacotados por um controle GenericWebPart. Isso permite que eles atuem como controles Web Parts, portanto, eles podero exibir ttulos. O cdigo para os dois controles contidos no controle DeclarativeCatalogPart devem ter aspecto como a seguir. <asp:DeclarativeCatalogPart ID="DeclarativeCatalogPart1" runat="server"> <WebPartsTemplate> <asp:Calendar ID="Calendar1" runat="server" title="My Calendar" /> <asp:FileUpload ID="FileUpload1" runat="server" title="Upload Files" /> </WebPartsTemplate> </asp:DeclarativeCatalogPart> 10. Salve a pgina. Agora voc pode testar o catlogo. Para testar o catlogo Web Parts 1. 2. 3. 4. 5. Carregue a pgina em um navegador. No menu Display Mode, clique em Catalog. O catlogo intitulado Add Web Parts exibido. Arraste o controle My Favorites da zona Main de volta para o parte superior da zona Sidebar. No catlogo Add Web Parts, selecione as duas caixas de seleo e ento selecione Main na lista de zonas disponveis. Clique em Add no catlogo. Os controles so adicionados zone Main. Se voc desejar, voc pode adicionar vrias ocorrncias dos controles do catlogo sua pgina. As telas a seguir mostram a pgina com o controle de envio de arquivo e o calendrio na zona Main: Controles adicionados zona Main do catlogo

6. 7.

No menu Display Mode, clique em Browse. O catlogo desaparece e a pgina atualizada. Feche o navegador e carregue a pgina novamente. As alteraes feitas vo persistir. Prximas etapas

Esta explicao passo a passo ilustrou os princpios bsicos do uso de controles Web Parts simples em um pgina da Web do ASP.NET. Voc pode desejar testar

Apostila Visual Studio 2005

426

recursos Web Parts adicionais, mais sofisticados. Sugestes para exploraes adicionais incluem:

Criar controles Web Parts que ofeream funcionalidades mais sofisticadas que as Web Parts estticas desta explicao passo a passo. Voc pode criar controles Web Parts como controles de usurio ou controles personalizados. Para obter detalhes, consulte a documentao para a classe WebPart.

Explicao Passo a Passo: Criando um Site Web com Associao e Login de Usurio (Visual Studio)
Um requisito comum para sites Web permitir que somente alguns membros ou outros usurios autenticados vejam determinadas pginas. Nesse caso, o aplicativo deve solicitar um nome e uma senha para o usurio. O aplicativo tambm deve incluir uma maneira para ocultar informaes de usurios annimos (usurios que no esto autorizados). Esta explicao passo a passo mostra como usar os controles do ASP.NET e servios de associao do ASP.NET para criar um aplicativo que executa todas essas tarefas. Para mais informaes, consulte Introduo a Associao. As tarefas ilustradas nesta explicao passa a passo incluem:

Configurar um aplicativo para incluir os servios de associao do ASP.NET e como definir os usurios. Usar os controles de login para obter credenciais de usurio e exibir informao para os usurios autorizados. Proteger uma ou mais pginas em seu aplicativo para que somente os usurios autorizados possam v-las. Permitir que usurios novos se registrem em seu site. Permitir que os membros alterem e redefinam suas senhas. Pr-requisitos

Para concluir esta explicao passo a passo, voc precisar de :


MIcrosoft Visual Web Develper. Microsoft Internet Information Services (IIS) instalado localmente em seu computador. Microsoft Data Access Components (MDAC) verso 2.7 ou posterior. Se voc estiver usando o Microsoft Windows XP ou Windows Server 2003, voc j tem MDAC 2.7. Entretanto, se voc estiver usando o Microsoft Windows 2000, voc pode precisar atualizar o MDAC j instalado no seu computador. Para obter mais informaes, consulte o artigo "Instalao do Microsoft Data Access Components (MDAC)" na biblioteca MSDN. Acesso a um servidor de email que pode encaminhar mensagens de email. (O servidor no precisa ter capacidade para receber mensagens.) O IIS inclui o servidor virtual Default SMTP, um servidor de email que adequado para esta explicao passo a passo. Para obter mais informaes sobre configurao do servidor, consulte HOW TO: Instalar e Configurar Servidores Virtuais SMTP em IIS. Se voc estiver trabalhando em uma rede local, contate o seu administrador de rede para obter informao sobre o acesso a um servidor de email. Criando o Site Web

Apostila Visual Studio 2005

427

Se voc j criou um site Web no Microsoft Visual Studio (por exemplo, trabalhando com o tpico Explicao Passo a Passo: Criando uma Pgina Web Bsica no Visual Web Developer), voc pode usar esse site Web e ir para "Configurando Associao" posteriormente nesta explicao passo a passo. Caso contrrio, crie um novo site Web e uma pgina seguindo estas etapas. Para criar um site Web local no IIS 1. 2. 3. 4. 5. 6. 7. 8. Abrir o Visual Studio. No menu File, clique em New Web Site. A caixa de dilogo New Web Site aparece. Sob oVisual Studio installed templates, selecione o ASP.NET Web Site. Na caixa de listagem Location , selecione HTTP. Clique em Browse. A caixa de dilogo Choose Location aparece. Selecione Local IIS. Abra o Local Web Servers. Selecione o Default Web Site. Clique no cone Create New Web Application ( ) acima da lista de sites

Web e em seguida, nomeie a associao do novo site Web. 9. Clique em Open. A caixa de dilogo Choose Location fecha. 10. Na caixa Languages, clique a linguagem de programao com a qual voc prefere trabalhar. A linguagem de programao que voc escolher ser o padro para seu site Web, mas voc pode definir as linguagens de programao para cada pgina individualmente. 11. Clique em OK na caixa de dilogo New Web Site. O Visual Web Developer cria o site Web e uma nova pgina chamada Default.aspx. Configurando a Associao Posteriormente nesta explicao passo a passo voc colocar pginas em um subdiretrio protegido. Voc deve criar o subdiretrio agora para que voc possa configurar a segurana para ele posteriormente na explicao passo a passo. Para adicionar uma nova pasta ao site Web 1. 2. No Solution Explorer, clique com o boto direito do mouse no nome do seu site Web e clique em New Folder. Nomear uma pasta MemberPages.

Antes de voc trabalhar com a associao do ASP.NET, voc deve configurar seu aplicativo para ativar a associao e configurar os usurios. Voc pode usar a ferramenta Web Site Administration, que fornece uma interface do tipo assistente para realizar esta configurao. Para esta explicao passo a passo, voc definir um nico usurio.

Apostila Visual Studio 2005

428

Para criar um usurio da associao 1. 2. 3. No menu Website, clique em ASP.NET Configuration. Selecione o guia Security, clique o link para Use the security Setup Wizard to configure security step by step, e em seguida, clique em Next V para a etapa 2 do assistente e selecione a opo From the Internet. O assistente exibe uma pgina onde voc pode selecionar o mtodo de autenticao que seu site Web usar. Esta opo especifica que seu aplicativo usar a autenticao Forms, onde os usurios podero efetuar o login em seu aplicativo usando uma pgina de login que voc criar nesta explicao passo a passo posteriormente. 4. Clique em Next. O assistente exibe uma mensagem indicando que a informao do usurio ser armazenada usando o Advanced provider settings. Por padro, a informao da associao armazenada em um arquivo de banco de dados do Microsoft SQL Server Express na pasta App_Data do seu site Web. 5. Clique em Next. O assistente exibe uma opo para criar funes. Mais tarde nesta explicao passo a passo voc executar essa etapa separadamente. Portanto, no selecione a caixa de seleo Enable roles for this web site. 6. 7. Clique em Next. O assistente exibe uma pgina onde voc pode criar novos usurios. Insira a informao que define um usurio de seu aplicativo. Use os seguintes valores como diretrizes (voc pode utilizar quaisquer valores, mas certifique-se de anotar as suas entradas para a explicao passo a passo posterior): User Name Seu nome (sem espaos) ou um nome simples. Password Uma senha. Uma senha segura necessria (uma que inclua letras maisculas e minsculas, pontuao e que tenha pelo menos oito caracteres). E-mail Seu endereo de e-mail pessoal. Posteriormente na explicao passo a passo, voc enviar para si uma mensagem, portanto voc precisa de um endereo de e-mail legtimo. Security Questione Security Answer Digite uma questo e responda o que pode ser usado mais tarde, se voc precisar redefinir sua senha. Clique em Create User. O assistente exibe uma pgina de confirmao. Observao Deixe a ferramenta Web Site Administration aberta. Anteriormente, na explicao passo a passo, voc criou uma pasta chamada MemberPages. Nesta parte da explicao, voc criar uma regra em que somente os usurios autorizados podero acessar as pginas daquela pasta.

o o

8.

Apostila Visual Studio 2005

429

Para configurar as regras de acesso para o subdiretrio MemberPages 1. 2. 3. 4. 5. No assistente, clique em Next. O assistente exibe uma pgina que permite que voc crie regras de acesso. Na caixa Add New Access Rule, expanda o n para o seu site Web. Selecione MemberPages, a pasta que voc criou anteriormente. Em Rule applies to, selecione Anonymous users. Em Permission, selecione Deny. A regra que voc est criando nega acesso a usurios annimos ou seja, usurios que no estejam autorizados. 6. Clique em Add This Rule. A nova regra exibido na grade abaixo. Quando os usurios solicitam uma pgina do subdiretrio MemberPages, as regras so verificadas para determinar se o usurio tem permisso de acesso para a pgina. 7. Clique em Finish. Agora voc terminou a configurao com o assistente. Ele fecha e voc retorna para a guia Security da ferramenta Web Site Administration. Configurando o Aplicativo para E-mail Para parte desta explicao passo a passo, o aplicativo precisa ser ativado para enviar mensagens de e-mail. Para enviar mensagens, seu aplicativo deve ter acesso a um servidor Simple Mail Transport Protocol (SMTP), que encaminha mensagens de e-mail do seu aplicativo para um destinatrio de email. O IIS inclui o servidor virtual Default SMTP como um componente opcional, que adequado para esta explicao passo a passo. Para obter mais informaes sobre como configurar este servidor, consulte HOW TO: Instalar e Configurar os Servidores Virtuais SMTP no IIS. Se voc estiver trabalhando em uma rede local, contate o seu administrador de rede para obter informao sobre o acesso a um servidor de e-mail. Depois de ter configurado ou determinado como acessar um servidor SMTP, voc deve configurar seu aplicativo para rotear as mensagens de e-mail para o servidor. Voc pode fazer uma entrada em seu arquivo Web.config do site Web, que contm uma srie de configuraes que determinam como o seu aplicativo executa. Para configurar o aplicativo para usar um servidor SMTP especfico 1. 2. 3. Na ferramenta Web Site Administration, clique na guia Application. No SMTP Settings, clique em Configure SMTP e-mail settings. A ferramenta exibe uma pgina onde voc pode configurar e-mail. Se voc est usando o servidor virtual SMTP que est em seu computador, digite localhost como o Server Name; caso contrrio, digite o nome do servidor apropriado. Inclua informao para o nmero da porta e para a autenticao de acordo com os requisitos do seu servidor SMTP. Consulte o seu administrador para obter mais informaes sobre como configurar estas opes. 4. 5. Na caixa From, digite um endereo de e-mail vlido. Clique em Save e na a pgina de confirmao, clique em OK.

Apostila Visual Studio 2005

430

A ferramenta Web Site Administration cria um arquivo Web.config (se j no existir um) com as configuraes que voc fez. Observao O arquivo Web.config no aparecer no Solution Explorer at voc atualizar a exibio. 6. Feche a ferramenta Web Site Administration. Autorizando o Usurio Como parte do seu aplicativo, voc precisa estabelecer a identidade do usurio para que o aplicativo possa realizar aes como mostrar ou ocultar informao com base em quem o usurio. Para obter a identidade do usurio, preciso que o usurio execute o login. Nesta explicao passo a passo, voc adicionar um link na pgina que leva os usurios para uma pgina de login, e ento, voc criar esta pgina de login. Para criar uma pgina com um boto de login 1. Abra ou alterne para a pgina Default.aspx do seu site. (Se voc no tem uma pgina Default.aspx, voc pode adicionar uma ou usar uma pgina diferente.) Alterne para o modo Design. Digite um texto esttico como Welcome to our site e, na barra de ferramenteas Formatting, use a lista drop-down Block Format para formatar o texto como "Heading 1". A partir do grupo Login do Toolbox, arraste um controle LoginStatus para a pgina.

2. 3.

4.

Por padro, o controle LoginStatus desenhado como um link. Quando os usurios clicam neste controle, o aplicativo exibe uma pgina de login. Agora voc pode criar a pgina de login. Para criar uma pgina de login 1. No Solution Explorer, clique com o boto direito do mouse em seu aplicativo Web e selecione Add New Item. Adicione um Web Form chamado Login.aspx em seu site Observao Para esta explicao passo a passo, a pgina deve ter o nome de Login.aspx. Por padro, autenticao de formulrios configurada para trabalho com uma pgina com este nome. Embora voc no v fazer isso nesta explicao, voc pode alterar a pgina de login padro a pgina para a qual os usurios so redirecionados no arquivo Web.config. 2. 3. Na pgina Login.aspx, alterne para o modo Design. A partir do grupo Login do Toolbox, arraste um controle Login para a pgina. O controle Login um controle nico que solicita e valida as credenciais do usurio.

Apostila Visual Studio 2005

431

Exibindo os Erros de Login O controle Login inclui validao para ajudar os usurios a inserir informaes corretas. Por exemplo, se um usurio ignora a senha, um controle validator exibe um asterisco (*) ao lado da caixa Password. Voc pode fornecer informaes mais completas para erros de login adicionando um controle ValidationSummary para a pgina. Para exibir erros de login detalhados 1. 2. A partir do grupo Validation do Toolbox, arraste um controle ValidationSummary para a pgina. Na janela Properties do controle ValidationSummary, defina a propriedade ValidationGroup para Login1, que o padro de identificao do controle Login que voc adicionou anteriormente.

Exibindo Informaes para os Usurios Autorizados Agora voc modificar a pgina para personalizar a exibio se o usurio estiver conectado. Os usurios annimos vero uma mensagem genrica convidando-os a executar o login. Os usurios conectados vero uma mensagem de boas vindas com seu nome autorizado. Para personalizar a exibio para usurios conectados 1. 2. Alterne para ou abra a pgina Default.aspx. A partir do grupo Login do Toolbox, arraste um controle LoginView para a pgina. O controle LoginView exibido com seu modelo AnonymousTemplate aberto. Este modelo permite que voc defina o contedo que os usurios vero antes de se conectarem. 3. 4. Clique na rea de edio do controle LoginView para ativar a edio. Na rea de edio do modelo Anonymous Template do controle LoginView, digite Voc no est autorizado. Clique no link Login para entrar. No painel LoginView Tasks, na lista Views, clique em LoggedInTemplate. Se voc no conseguir ver o painel LoginView Tasks, clique com o boto direito do mouse no ttulo do controle LoginView e selecione Show Smart Tag. Agora voc est definindo o contedo que ser exibido aos usurios que j esto autorizados. 6. 7. Clique na rea de edio do controle LoginView para ativar a edio, e em seguida, digite Voc est autorizado. Bem-vindo.. A partir do gupo Login do Toolbox, arraste o controle LoginName para o modelo aps o texto.

5.

Testando o Login Agora voc pode testar a funcionalidade de login do seu aplicativo. Para testar o login 1. No Solution Explorer, clique com o boto direito do mouse em Default.aspx e clique em Set As Start Page.

Apostila Visual Studio 2005

432

Isso configura o site para que, ao executar o site Web, a pgina Default.aspx aparea primeiro. 2. Pressione CTRL+F5 para executar o site Web. A ???home page??? (Default.aspx) aparece no navegador, mostrando o link Login e a mensagem genrica. 3. 4. Clique no link Login. A pgina de login que voc criou exibida. Digite o nome de login do usurio que voc criou anteriormente na explicao passo a passo, e depois, clique em Log In. (No entre ainda com uma senha.) Um asterisco (*) exibido ao lado da caixa Password e uma mensagem de erro exibida no controle ValidationSummary. 5. Digite tanto um nome de usurio e uma senha, e depois clique em Log In. Se voc inseriu credenciais corretas, voc retornada para a pgina inicial. A pgina agora exibe um link Logout, o seu nome de usurio, e a mensagem de boas-vindas que voc definiu para o usurio autorizado. 6. Feche o navegador. Limitando o Acesso para Pginas Exclusivas Uma tarefa comum em muitos sites Web configurar pginas para que somente usurios autorizados podem visualizar. Anteriormente na explicao passo a passo, voc criou o subdiretrio MemberPages e criou uma regra que limita o acesso a pginas no subdiretrio. Nesta seo da explicao, voc adicionar uma pgina ao subdiretrio protegido e testar a regra de acesso. Para criar a pgina Exclusiva 1. No Solution Explorer, clique com o boto direito do mouse na pasta MemberPages, clique em Add New Item, e adicione uma nova Web Form chamada Members.aspx. Observao Certifique-se de criar a pgina na pasta MemberPages. 2. No modo Design, adicione um texto para a pgina, como Bem-vindo, membros!. O texto exato no faz diferena, contanto que voc seja capaz de reconhecer esta pgina.

Agora voc pode adicionar um link para a pgina exclusiva. Em um aplicativo real, voc deve, provavelmente, colocar o link da pgina exclusiva no modelo conectado do controle LoginView. Dessa forma, os visitantes de seu site no veriam o link at eles estarem autorizados. Para esta explicao, entretanto, voc tornar o link disponvel para todos os usurios para que voc possa ver o efeito das tentativas fracassadas de exibir uma pgina excluvisa. Para adicionar um link para a pgina exclusiva 1. 2. Alterne para ou abra a pgina Default.aspx. A partir do grupo Standard do Toolbox, arraste um controle HyperLink para a pgina.

Apostila Visual Studio 2005

433

3.

Na janela Properties para o controle HyperLink, defina a propriedade Text para o Members page e a propriedade NavigateUrl para o ~/MemberPages/Members.aspx para apontar para a pgina que voc criou anteriormente.

Testando a Pgina Exclusiva Voc pode testar a pgina excluvisa, acessando-a como um usurio annimo ou como um usurio conectado. Para testar a pgina Excluvisa 1. 2. Pressione CTRL+F5 para executar o site Web. Quando a pgina Default.aspx aparece no navegador, no faa o login. Em vez disso, clique no link Members page. Voc redirecionado para a pgina Login.aspx porque o acesso para a pgina para membros foi negada para usurios annimos. 3. Na pgina de login, digite o nome de usurio e a senha que voc utilizou anteriormente na explicao passo a passo para se conectar. Voc redirecionado para a pgina Members.aspx porque o nome de usurio que voc utilizaou foi autorizado para acessar a pgina. 4. Feche a janela do navegador. Criando Novos Usurios Na primeira parte da explicao passo a passo, voc criou um usurio com a ferramenta Web Site Administration. Essa estratgia til se voc estiver trabalhando com uma lista de usurios pequena; por exemplo, se voc estiver criando usurios para uma equipe pequena. Entretando, em muitos sites Web, os usurios tm permisso para se registrarem. O ASP.NET inclui o controle CreateUserWizard que executa a mesma tarefa que voc executou anteriormente usando a ferramenta Web Site Administration. Nesta parte da explicao passo a passo, voc adicionar um recurso que permite aos usurios se registrarem em seu site Web. Para iniciar, voc criar uma pgina de registro. Para criar uma pgina de registro 1. No Solution Explorer, clique com o boto direito do mouse no nome do seu site Web, clique em Add New Item e adicione uma nova Web Form chamada Register.aspx. Observao Certifique-se de criar a pgina na raiz do site Web e no na pasta MemberPages. 2. Na pgina Register.aspx, alterne para o modo Design e digite um texto esttico, como Registro, para a pgina. Na barra de ferramentas Formatting, use a lista drop-down Block Format para formatar o texto como "Heading 1". A partir do grupo Login do Toolbox, arraste um controle CreateUserWizard para a pgina. Na janela Properties para o controle CreateUserWizard, defina a propriedade ContinueDestinationPageUrl para ~/Default.aspx.

3. 4.

Apostila Visual Studio 2005

434

Isso configura o controle para que a execuo retorne para a home page, assim que os usurios clicarem em Continue aps a criao de um usurio, . 5. A partir do grupo Standard do Toolbox, arraste um controle HyperLink para a pgina. Na janela Properties para o controle HyperLink, defina a propriedade Text para Home e a propriedade NavigateUrl para ~/Default.aspx.

Agora voc pode adicionar um link para a home page que exibe a pgina de registro. Para esta explicao, suponha que voc deseja exibir o link de registro somente para os usurios que no esto autorizados. Para criar um link de registro na home page 1. 2. Alterne para ou abra a pgina Default.aspx. Clique com o boto direito do mouse no controle LoginView adicionado anteriormente, e selecione Show Smart Tag. No painel LoginView Tasks, selecione AnonymousTemplate da caixa de listagem Views para ativar a edio no modelo annimo. A partir do grupo Standard do Toolbox, arraste um controle HyperLink para um modelo annimo. Na janela Properties para o controle HyperLink, defina a propriedade Text para Register e a propriedade NavigateUrl para Register.aspx. O link Register ser exibido somente para os usurios que no esto autorizados.

3.

Agora voc pode testar o processo de registro. Para testar o registro 1. 2. 3. Pressione CTRL+F5 para executar o site Web e exibir a pgina Default.aspx. Por voc no estar conectado, a pgina contendo o link Register exibida. Clique no link Register. A pgina de registro exibida. Nas caixas de texto, digite um novo nome de usurio, uma senha forte, um endereo de e-mail e uma pergunta de segurana e de resposta. (Todas as cinco peas de informao so necessrias.) Clique em Create User. Um mensagem de confirmao exibida. 5. Clique o boto Continue. Voc retorna para a home page como um usurio autorizado. Observe que o link Login foi alterado para Logout e que a informao exibida no controle Login da propriedade LoggedInTemplate, no da propriedade AnonymousTemplate. 6. 7. 8. 9. Clique no link Logout. A pgina muda para exibir a informao para os usurios annimos. Clique no link Login. Insira as credenciais para o usurio que voc acabou de criar. Voc est conectado como o novo usurio. Feche a janela do navegador. Alterando Senhas

4.

Apostila Visual Studio 2005

435

Eventualmente os usurios podem querer alterar suas senhas e freqentemente impraticvel executar essa tarefa de forma manual. Portanto, voc pode usar um outro controle do ASP.NET para permitir que os usurios alterem suas prprias senhas. Para alterar uma senha, os usurios devem conhecer sua senha atual. Nesta explicao passo a passo, voc adicionar uma pgina onde os usurios conectados podem alterar suas senhas. Para criar uma pgina de alterao de senha 1. No Solution Explorer, clique com o boto direito do mouse na pasta MemberPages, clique em Add New Item e adicione uma nova Web Form chamada ChangePassword.aspx. Observao Certifique-se de criar a pgina na pasta MemberPages. 2. 3. Voc est colocando a pgina na pasta Members-Only porque somente os usurios autorizados podem alterar suas senhas. Na pgina ChangePassword.aspx, alterne para o modo Design e digite um texto esttico como Alterar Senha. Na barra de ferramentas Formatting, use a lista drop-down Block Format para formatar o texto como "Heading 1". A partir do grupo Login do Toolbox, arraste um controle ChangePassword para a pgina. Na janela Properties para o controle ChangePassword, defina a propriedade ContinueDestinationPageUrl para ~/Default.aspx. Isso configura o controle para que, quando os usurios clicarem em Continue aps alterar uma senha, o controle retorne para a home page.

4. 5. 6.

Agora voc pode adicionar um link para a home page que exibe a pgina de alterao de senha. Voc disponibilizar o link apenas aos usurios que esto conectados. Para criar um link de alterao de senha na home page 1. 2. Alterne para ou abra a pgina Default.aspx. Clique com o boto direito do mouse no controle LoginView e depois clique em Show Smart Tag. No menu LoginView Tasks, na lista Views, clique em LoggedInTemplate. Isso alterna o controle LoginView para o modo de edio para o contedo que ser exibido para usurios que esto conectados. 3. A partir do grupo Standard do Toolbox, arraste um controle HyperLink para a regio de edio. Na janela Properties para o controle HyperLink, defina a propriedade Text para Change password e a propriedade NavigateUrl para ~/MemberPages/ChangePassword.aspx. O link Change password ser exibido somente aos usurios que esto conectados, sendo o oposto do link Register que voc criou anteriormente. Agora voc pode testar o processo de alterao de senha.

Apostila Visual Studio 2005

436

Para testar a alterao de senha 1. 2. Pressione CTRL+F5 para executar o site Web. Na pgina Default.aspx, clique no link Login e se conecte como um dos usurios que voc criou. Quando voc tiver terminado, voc retorna para a home page como um usurio autorizado. 3. 4. 5. 6. 7. 8. 9. Clique no link Change password. Na pgina de alterao de senha, digite a senha antiga e uma nova senha, e depois clique em Change Password. Clique em Continue. Na home page, clique em Logout. Clique no link Login. Digite a nova senha. Voc est conectado com a nova senha. Feche a janela do navegador. Recuperando uma Senha Ocasionalmente, os usurios esquecero suas senhas. Voc pode adicionar uma pgina de recuperao de senha ao seu site Web para que eles possam efetuar novamente a conexo para seu site. A recuperao de senha pode ter duas formas:

Voc pode enviar aos usurios a senha que eles selecionaram (ou a que voc criou para eles quando voc configurou o site). Esta opo requer que o site armazene a senha usando criptografia reversvel. Voc pode enviar aos usurios uma nova senha, que eles podem alterar usando a pgina de alterao de senha que voc criou anteriormente. Essa opo til se o site Web armazena senhas usando um esquema de criptografia no reversvel como hashing. Observao

Retornando uma senha em texto no criptografado usando e-mail no recomendado para sites que requerem um nvel alto de segurana. Para sites de alta segurana, recomendvel que voc retorne senhas usando criptografia, como o Secure Sockets Layer (SSL). Por padro, o sistema de associao do ASP.NET protege senhas por hashing, o que significa que as senhas no podem ser recuperadas. Portanto, para essa parte da explicao, seu site Web enviar aos usurios uma nova senha. Observao A recuperao de senha requer que o seu site Web possa enviar mensagens de e-mail. Se voc no consegue configurar o seu site Web para enviar email (conforme explicado em "Configurando o Aplicativo para E-mail" anteriormente), no conseguir adicionar uma recuperao de senha ao seu site.

Apostila Visual Studio 2005

437

Para adicionar recuperao de senha 1. No Solution Explorer, clique com o boto direito do mouse no nome do seu site Web, clique em Add New Item e adicione uma nova Web Form chamada RecoverPassword.aspx. Observao Certifique-se de criar a pgina na raiz do site Web, no na pasta MemberPages. 2. Na pgina RecoverPassword.aspx, alterne para o modo Design digite um texto esttico como Redefinir minha senha para um novo valor. Na barra de ferramentas Formatting, use a lista drop-down Block Format para formatar o texto como "Heading 1". A partir do grupo Login do Toolbox, arraste um controle PasswordRecovery para a pgina. A partir do grupo Standard do Toolbox, arraste um controle HyperLink para a pgina. Na janela Properties para o controle HyperLink, defina a propriedade Text para Home e a propriedade NavigateUrl para ~/Default.aspx. Alterne para a pgina Default.aspx. Clique com o boto direito do mouse no controle LoginView e depois clique em Show Smart Tag. No menu LoginView Tasks, na lista Views, clique em AnonymousTemplate. Isso alterna o controle LoginView para o modo de edio para o contedo que aparecer para os usurios que no esto autorizados. 7. A partir do grupo Standard do Toolbox, arraste um controle HyperLink para um modelo. Na janela Properties para o controle HyperLink, defina a propriedade Text para Forgot your password? e a propriedade NavigateUrl para ~/RecoverPassword.aspx.

3. 4.

5. 6.

Agora voc pode testar a recuperao de senha. Para testar a recuperao de senha 1. 2. 3. 4. Pressione CTRL+F5 para executar o site Web. Por padro, voc no est autorizado, ento voc v o modelo annimo do controle LoginView. Clique no link Forgot your password?. A pgina RecoverPassword.aspx aparece. Digite seu nome de usurio e clique em Submit. A pergunta de segurana exibida e solicitado que voc digite a resposta de segurana. 5. Digite a resposta e clique em Submit. Se voc inseriu uma resposta correta, o site Web redefine sua senha e envia para voc uma mensagem de e-mail com a nova senha. Prximas Etapas

Apostila Visual Studio 2005

438

Esta explicao passo a passo tem ilustrado um cenrio simples mas completo para criar um aplicativo que solicita credenciais de usurios, exibe informao para os usurios autorizados, permite que os usurios recuperem uma senha esquecida e limita o acesso s pginas. Voc pode criar pginas e aplicativos mais sofisticados usando as tcnicas e controles ilustrados na explicao. Por exemplo, voc pode desejar:

Criar usurios adicionais e definir funes (grupos) como gerentes, vendas ou membros e associar membro para diferentes funes. Para obter detalhes, consulte Explicao Passo a Passo: Gerenciando Usurios de Site Web Usando Funes. Altere o provedor da associao de provedor Access padro para um provedor SQL. Armazenar as informaes de associao em um banco de dados Access adequado para sites pequenos e mdios, mas se o seu site passar por trfego pesado, voc desejar utilizar o Microsoft SQL Server para armazenas os dados de associao. Para obter mais informaes, consulte Web Site Administration Tool Provider Tab e Criando Banco de Dados de Servios do Aplicativo para SQL Server. Alterar a aparncia dos controles de login. Os controles Login, PasswordRecovery e CreateUserWizard possuem suporte para modelos, que permiteme que voc configure o texto e os botes que ele contm, assim como a cor, a fonte e outras caractersticas de aparncia.Para obter mais informaes, consulte os tpicos na seo Controles de Login do ASP.NET: Criar regras que limitam o acesso s pginas ou pastas no apenas para usurios annimos, mas para usurios ou funes especficos. Combinar a associao com as propriedades de perfil, que permitem a voc armazenar configuraes especficas para cada usurio. Para obter detalhes, consulte Explicao Passo a Passo: Mantendo a Informao do Usurio do Site Web com Propriedades de Perfil. Combinar os controles de login com as pginas mestras. As pginas mestras permitem que voc defina um layout da pgina que pode ser usado para todas as pginas em seu aplicativo. Para obter detalhes, consulte Explicao Passo a Passo: Criando e Usando as Pginas Mestras do ASP.NET em Visual Web Developer. Adicionar o recurso para recuperar uma senha esquecida. Para mais informaes, consulte HOW TO: Ativar a Recuperao de Senha de Usurio Usando o Controle PasswordRecovery do ASP.NET.

Passo-a-passo: Criando e usando um servio da Web ASP.NET no Visual Web Developer


Alm de permitir que voc crie pginas da Web, o Microsoft Visual Studio tambm deixa que voc crie servios da Web que usem ASP.NET XML. A criao de um servio da Web no Visual Studio semelhante a criar uma pgina da Web. Voc tambm pode usar a ferramenta de desenvolvimento Web do Microsoft Visual Web Developer para referenciar e usar servios da Web que esto em uma soluo do Visual Web Developer em seu computador local ou em um diretrio UDDI local ou externo. Nesta explicao passo a passo, voc ir criar o servio da Web em uma soluo e us-lo em outra. As tarefas ilustradas nesta explicao passo a passo incluem:

Criar um XML Web Service simples no Visual Web Developer.

Apostila Visual Studio 2005

439

Criar um site em separado que usa o servio da Web. Pr-requisitos

Para concluir esta explicao passo a passo, ser necessrio:

Servios de Informaes da Internet da Microsoft (IIS) instalado localmente em seu computador. Criando um servio da Web na raiz do IIS

Crie um novo servio e uma pgina da Web seguindo estas etapas. Observao Voc deve usar um site do IIS para esta explicao passo a passo. Para criar um servio da Web 1. 2. 3. 4. 5. 6. 7. 8. 9. Abra o Visual Web Developer. No menu File, clique em New Web Site. A caixa de dilogo New Web Site aparece. Em Visual Studio installed templates, clique em ASP.NET Web Service. Clique em Browse. Clique em Local IIS. Clique em Default Web Site. Clique em Create New Web Application. O Visual Web Developer cria um novo aplicativo da Web do IIS. Digite o nome TemperatureWebService. Clique em Open. A caixa de dilogo New Web Site aparece com o nome do novo site no canto mais a direita da lista Location. A localidade inclui o protocolo (http://) e a localidade (localhost). Isso Indica que voc est trabalhando com um site local do IIS. 10. Na lista Language, clique na linguagem de programao com a qual voc prefere trabalhar. A linguagem de programao que voc escolher ser o padro para o site. Entretanto, voc pode usar mais de uma linguagem no mesmo aplicativo da Web, criando pginas e componentes em linguagens de programao diferentes. Para obter mais informaes sobre como criar componentes usando diferentes linguagens, consulte Pastas de cdigo compartilhadas em sites do ASP.NET. 11. Clique em OK. O Visual Web Developer cria o novo servio da Web e abre uma nova classe chamada Service, que o servio da Web padro. Entretanto, no procedimento a seguir ser criado um novo servio da Web com um nome diferente e no voc usar a classe Service. 12. Feche a classe Service.

Apostila Visual Studio 2005

440

Criando o servio da Web Voc criar um servio da Web que converte a temperatura de Fahrenheit para Celsius e vice-versa. Para criar o servio da Web 1. 2. 3. No Solution Explorer, clique com o boto direito do mouse no nome do site (http://localhost/TemperatureWebService), e clique em Add New Item. Em Visual Studio installed templates, clique em Web Service, e na caixa Name, digite Convert. Certifique-se de que a caixa de seleo Place code in separate file est selecionada e clique em Add. O Visual Web Developer cria um novo servio da Web que composto de dois arquivos. O arquivo Convert.asmx o arquivo que pode ser chamado para chamar os mtodos do servio da Web e ele aponta para o cdigo do servio da Web. O cdigo propriamente dito est em um arquivo de classe (Convert.vb, Convert.cs, ou Convert.jsl, dependendo da linguagem de programao) na pasta App_Code. O arquivo de cdigo contm um modelo para um servio da Web. O arquivo de cdigo inclui um cdigo para um mtodo do servio da Web. Voc criar dois mtodos no servio da Web. O primeiro mtodo converte temperaturas Fahrenheit para Celsius, e o segundo mtodo converte temperaturas Celsius para Fahrenheit. Para criar os mtodos de converso 1. Adicione o seguinte cdigo dentro a classe, aps o mtodo HelloWorld: Visual Basic <System.Web.Services.WebMethod()> _ Public Function FahrenheitToCelsius(ByVal Fahrenheit As Double) _ As Double Return ((Fahrenheit - 32) * 5) / 9 End Function <System.Web.Services.WebMethod()> _ Public Function CelsiusToFahrenheit(ByVal Celsius As Double) _ As Double Return ((Celsius * 9) / 5) + 32 End Function C# [System.Web.Services.WebMethod()] public double FahrenheitToCelsius(double Fahrenheit) { return ((Fahrenheit - 32) * 5) / 9; } [System.Web.Services.WebMethod()] public double CelsiusToFahrenheit(double Celsius) { return ((Celsius * 9) / 5) + 32; } Observe que os nomes das funes so precedidos com um atributo ([System.Web.Services.WebMethod()] ou <System.Web.Services.WebMethod()>) como parte da declarao da funo 2. Depois que voc inseriu as funes, salve o arquivo. Agora voc pode testar o servio da Web no Visual Web Developer. Para testar o servio da Web 1. No Solution Explorer, clique em Convert.asmx e pressione CTRL+F5. O servio da Web chamado e aparece uma pgina no navegador que mostra os mtodos que so expostos pelo servio da Web. 2. Clique em CelsiusToFahrenheit, que chama esse mtodo.

Apostila Visual Studio 2005

441

Aparece uma pgina que solicita que voc entre os valores dos parmetros para o mtodo CelsiusToFahrenheit. 3. Na caixa Celsius, digite 100 e clique em Invoke. Uma nova janela aparece exibindo o XML que o servio da Web retorna quando o mtodo CelsiusToFahrenheit chamado. O valor 212 aparece no XML. 4. 5. 6. Feche o navegador que contm os resultados do mtodo. No navegador original, clique em Back para retornar para a lista de mtodos. Clique em FahrenheitToCelsius e teste para certificar-se de que o mtodo est retornando os resultados que voc espera. Se voc digitar 212, o mtodo FahrenheitToCelsius retornar 100. 7. Feche o navegador. Usando o servio da Web Agora que voc tem um servio da Web, voc ir criar um site onde voc ir referenciar e usar o servio da Web que voc criou. Para a explicao passo a passo, voc ir criar um site separado que tenha uma pgina onde voc inicia os mtodos do servio da Web recm-criado. Para criar um site para usar o servio da Web 1. 2. 3. 4. 5. 6. 7. 8. 9. No menu File, clique em New Web Site. Em Visual Studio installed templates, clique em ASP.NET Web Site. Clique em Browse. Clique em Local IIS. Clique em Default Web Site. Clique em Create New Web Application. O Visual Web Developer cria um novo aplicativo da Web do IIS. Digite o nome TemperatureWeb. Clique em Open. Na lista Language, clique na linguagem de programao com a qual voc prefere para trabalhar. O Visual Web Developer cria um novo site local do IIS e uma nova pgina chamada Default.aspx. Adicionando o servio da Web como um componente O servio da Web um componente que voc pode referenciar no seu aplicativo. Portanto, voc deve criar uma referncia a ele. Para criar uma referncia para o servio da Web 1. No Solution Explorer, clique com o boto direito do mouse no nome do site e clique em Add Web Reference. Voc terminou de criar o servio da Web; a prxima etapa us-lo.

10. Clique em OK.

Apostila Visual Studio 2005

442

A caixa de dilogo Add Web Reference aparece, como mostrado no seguinte instantneo: Caixa de dilogo Add Web Reference

2.

Na lista URL, digite a seguinte URL para o servio da Web e, em seguida, clique em Go: http://localhost/TemperatureWebService/Convert.asmx Quando o Visual Web Developer encontra o servio da Web, as informaes sobre o servio da Web aparecem na caixa de dilogo Add Web References. Observao Se voc no puder adicionar uma referncia para um servio da Web, pode ser que o servidor proxy no esteja configurado corretamente. No Microsoft Internet Explorer, no menu Ferramentas, clique em Opes da Internet, clique em Conexes e clique em Configuraes de LAN. Selecione a caixa de seleo Ignorar servidor de proxy para endereos locais. Alm disso, defina o endereo do servidor proxy com o nome exato do servidor proxy em vez de permitir que o Internet Explorer detecte o servidor proxy. Para obter mais informaes, contate o administrador de rede.

3. 4.

Clique em um dos links dos mtodos. O pgina de teste para o mtodo aparece. Clique em Add Reference. O Visual Web Developer cria uma pasta App_WebReferences e lhe adiciona uma pasta para a nova referncia da Web. Por padro, so atribudas s referncias da Web um namespace correspondente ao seu nome de servidor (neste caso, localhost). Anote o nome do namespace para a referncia da Web. Na pasta, o Visual Web Developer adiciona um arquivo .WSDL que referencia o servio da Web. Ele tambm adiciona arquivos de suporte, como arquivos de busca (.disco e .discomap), que incluem informaes sobre onde o servio da Web est localizado. Observao Se o nome do servidor para o servio da Web contiver caracteres que no podem ser usados para um nome de classe, como um hfen (-), o Visual Web Developer converte os caracteres em um caractere sublinhado (_). Portanto, o namespace no Visual Web Developer para o servio da Web pode no corresponder exatamente ao nome do servidor.

Agora voc pode usar o servio da Web. Nesta explicao passo a passo, voc ir adicionar controles ao Default.aspx, e depois programar os controles para converter uma temperatura especificada em Fahrenheit e em Celsius. Quando a pgina estiver sendo executada, ela parecer com a seguinte ilustrao. Temperature conversion page

Apostila Visual Studio 2005

443

Para chamar os mtodos do servio da Web 1. 2. Abra a pgina Default.aspx e alterne para o modo Design. A partir do grupo Standard na caixa de ferramentas, arraste os seguintes controles para a pgina e definia suas propriedades conforme o indicado: Controle Textbox Propriedades IDTemperatureTextbox Text: (vazio) Button IDConvertButton Text: Convert Label IDFahrenheitLabel Text: (vazio) Label IDCelsiusLabel Text: (vazio) 3. 4. 5. Opcionalmente, adicione texto pgina nas legendas. O layout de pgina para esta explicao passo a passo no importante. Clique duas vezes em ConvertButton para criar um manipulador de eventos para o evento Click. Verifique se o cdigo do seu manipulador de eventos corresponde ao cdigo de exemplo a seguir: Visual Basic Dim wsConvert As New localhost.Convert() Dim temperature As Double temperature = System.Convert.ToDouble(TemperatureTextbox.Text) FahrenheitLabel.Text = "Fahrenheit To Celsius = " & _ wsConvert.FahrenheitToCelsius(temperature).ToString() CelsiusLabel.Text = "Celsius To Fahrenheit = " & _ wsConvert.CelsiusToFahrenheit(temperature).ToString() C# protected void ConvertButton_Click(object sender, EventArgs e) { localhost.Convert wsConvert = new localhost.Convert(); double temperature = System.Convert.ToDouble(TemperatureTextbox.Text); FahrenheitLabel.Text = "Fahrenheit To Celsius = " + wsConvert.FahrenheitToCelsius(temperature).ToString(); CelsiusLabel.Text = "Celsius To Fahrenheit = " + wsConvert.CelsiusToFahrenheit(temperature).ToString(); } 6. 7. Pressione CTRL+F5 para executar a pgina. Na caixa de texto, digite um valor, como 100, e clique em Convert. A pgina exibe o resultado da converso do valor da temperatura em Fahrenheit e em Celsius. Depurando o servio da Web

Apostila Visual Studio 2005

444

Voc pode depurar um servio da Web da mesma maneira que voc depura pginas da Web. Observao O Visual Web Developer Express Edition e o Visual Studio Standard Edition no oferecem suporte passo a passo por dentro das chamadas em um servio da Web de uma pgina que o referencia. Se voc estiver usando o Visual Web Developer Express Edition ou o Visual Studio Standard Edition, ignore esta seo e as seguintes. Para obter mais informaes sobre como depurar sites da Web, consulte Passo-a-passo: Depurando pginas da Web no Visual Web Developer. Para iniciar, voc deve configurar o site que contm o servio da Web para ativar a depurao. Para ativar a depurao no site de servios da Web 1. 2. 3. 4. No menu File, clique em Open Web Site. Clique em Local IIS. Clique em TemperatureWebService e clique em Open. No menu Website, clique em ASP.NET Configuration para abrir o Web Site Administration Tool. Observao Se esta for a primeira vez que voc tiver executado o Web Site Administration Tool, pode demorar um pouco antes de ele aparecer. 5. 6. 7. Clique em Application e clique em Application Configuration. Em Debugging and Tracing, clique em Configure debugging and tracing. Selecione a caixa de seleo Enable debugging. O Web Site Administration Tool cria um arquivo Web.config para o site e define uma opo de configurao para ativar a depurao. Observao Para consultar o arquivo Web.config no Solution Explorer, clique no nome do site e, na barra de ferramentas do Solution Explorer, clique em Refresh. 8. Feche o Web Site Administration Tool.

Agora voc deve ativar a depurao para o site que usa o servio da Web. Para ativar a depurao do site 1. 2. 3. Abra o site TemperatureWeb. No menu Website, clique em ASP.NET Configuration para abrir o Web Site Administration Tool. Clique em Application, clique em Application Configuration em Debugging and Tracing, clique em Configure debugging and tracing e selecione a caixa de seleo Enable debugging.

Apostila Visual Studio 2005

445

4.

Feche o Web Site Administration Tool. Observao Para consultar o arquivo Web.config no Solution Explorer, selecione o nome do site e clique em Refresh na barra de ferramentas do Solution Explorer.

5.

No Solution Explorer, clique com o boto direito do mouse em Default.aspx e clique em View Code. O Visual Web Developer abre o arquivo de cdigo para a pgina. Posicione o ponteiro do mouse na seguinte linha: Visual Basic temperature = System.Convert.ToDouble(TemperatureTextbox.Text) C# double temperature = System.Convert.ToDouble(TemperatureTextbox.Text);

6.

7.

Pressione F9 para definir um ponto de interrupo na linha. Testando a depurao

O site e o servio da Web esto configurados para a depurao, para que voc agora possa comear a depurar. Voc ir iniciar na pgina Default.aspx e depurar o cdigo at que o cdigo chame o servio da Web. O depurador alternar para o servio da Web e continuar a depurao atravs do cdigo. Para depurar a pgina e o servio da Web 1. 2. Pressione F5 para executar a pgina Default.aspx usando depurao. A pgina aparece no navegador. Na caixa, digite um valor, como 100, e clique em Convert. O Visual Web Developer comea a executar o cdigo da pgina, mas pra e reala a linha com o ponto de interrupo sobre ele. 3. 4. Pressione F11 para ir para a prxima linha. Pressione F11 novamente. Como a linha seguinte chama o servio da Web, o depurador vai para o servio da Web, parando na primeira linha do mtodo FahrenheitToCelsius. 5. Continue pressionando F11. O depurador avana atravs do restante do mtodo e retorna para a pgina que chamou o mtodo. Se voc continuar a depurao, o depurador ir de volta para o servio da Web e para o mtodo CelsiusToFahrenheit. 6. Feche o navegador, que tambm fecha o depurador. Prximas etapas Esta explicao passo a passo ilustrou os princpios bsicos de criao de um servio da Web muito simples e de us-lo em um aplicativo ASP.NET. Voc pode

Apostila Visual Studio 2005

446

desejar experimentar servios da Web com recursos adicionais e mais complexos. Sugestes para exploraes adicionais incluem o seguinte:

Compreender o processamento que ocorre quando voc faz uma chamada XML Web Service. Para mais informaes, consulte Anatomia do tempo de vida de um XML Web Service.

Entender como usar XML Web Services. Para mais informaes, consulte Cenrios do XML Web Service. Criar XML Web Services que oferecem funcionalidades mais sofisticadas do que o servio da Web simples desta explicao passo a passo. Voc pode criar e encadear chamadas de mtodos de servios da Web assncronas, usar transaes, proteger os servios da Web, configurar servios da Web para autenticao do Microsoft Windows, e assim por diante. Para mais informaes, consulte XML Web Services utilizando ASP.NET . Aprender sobre os recursos especficos da linguagem e da tecnologia fornecidos pelo XML Web Service. Para obter mais informaes, consulte XML Web Services no Visual FoxPro, Introduo programao de XML Web Services em cdigo gerenciado, Servios da Web (como fao no Visual Basic), XML Web Services criados com o servidor ATL e Explicaes passo a passo sobre a criao e o acesso a XML Web Services.

Criando e Acessando Explicaes Passo a Passo de XML Web Services


XML Web Services fornecem acesso programtico a lgica do aplicativo usando protocolos padro da Web, como XML e HTTP. XML Web Services podem ser aplicativos autnomos ou subcomponentes de um aplicativo maior da Web. XML Web Services so acessveis de praticamente qualquer outro tipo de aplicativo, incluindo outros XML Web Services, aplicativos Web, aplicativos do Windows e aplicativos console. O nico requisito de que o cliente possa enviar, receber, e processar mensagens de e para um XML Web Service. Para obter mais informaes, consulte Programao na Web com XML Web Services. Essas explicaes passo a passo cobrem dois caminhos de desenvolvimento logicamente separados, criando XML Web Services e acessando XML Web Services. Embora voc possa ser tanto o criador e o usurio de um XML Web Services especfico, os processos so distintamente separados. claro, voc precisar criar um XML Web Services antes de poder acess-lo. As explicaes passo a passo de criao de XML Web Services usar duas tecnologias separadas para implementar um XML Web Services. Em todos os casos, voc cria a mesma funcionalidade XML Web Services; a nica diferena o mtodo de implementao. As explicaes passo a passo de acesso a XML Web Services concentram nas etapas necessrias para acessar XML Web Services no cdigo gerenciado e cdigo no gerenciado. Em cada explicao passo a passo, o aplicativo cliente acessa o XML Web Services usando uma classe proxy gerada pelo Visual Studio. Observao

Apostila Visual Studio 2005

447

Em cada explicao passo a passo voc ir acessar um XML Web Services criado em uma das explicaes passo a passo acima "Criando um XML Web Service...". Ou seja, no necessrio concluir pelo menos uma das explicaes passo a passo "Criando um XML Web Service..." antes de tentar um das explicaes passo a passo " Acessando um XML Web Service ". Para uma demonstrao de um XML Web Services que retorna um DataSet altamente tipado de SQL Server e processa atualizaes de aplicativos Windows e da Web, consulte Criando um aplicativo distribudo Walkthrough:.

Explicao Passo a Passo: Criando um XML Web Services usando Visual Basic ou Visual C#
Explicao passo a passo a seguir descreve o processo para criar um XML Web Services que converte temperaturas medidas em Fahrenheit para Celsius usando Visual Basic ou C# visual. Voc durante esta explicao passo a passo, voc ir realizar as atividades a seguir:

Criar um XML Web Services usando o modelo projeto servio ASP.NET Web. Implementar o XML Web Services. Executar o XML Web Services no modo de depurao. Implantar o XML Web Services.

Para concluir o explicao passo a passo, voc precisar ter acesso a uma mquina que atende aos requisitos para criar um projeto da Web. Para obter mais informaes, consulte Tour guiado da criao de sites no Visual Web Developer e Passo a passo: Criando e usando um servio da Web do ASP.NET no Visual Web Developer. Criar projeto servio XML da Web O Visual Studio fornece um modelo de projeto ASP.NET Web Service para ajud-lo a criar XML Web Services no Visual Basic e Visual C#. Para criar um ASP.NET Web Service Project 1. 2. 3. No menu File, escolha New Web Site. Na caixa de dilogo New Web Site, selecione o cone ASP.NET Web Service. Digite o endereo do servidor Web no qual voc ir desenvolver o XML Web Services e especifique TempConvert1 como o nome do diretrio, tal como " http://MyServer/TempConvert1 ". Por padro, o projeto usa seu computador local, " http://localhost ". Observao Para alguns tipos de projeto, o caixa de texto Name est disponvel porque especificando a localidade define em vez disso o nome do projeto. Por exemplo, aplicativos da Web e XML Web Services esto localizados em um servidor Web e derivam seus nomes do diretrio virtual especificado no servidor. Observao

Apostila Visual Studio 2005

448

Voc desenvolve XML Web Services em um servidor de desenvolvimento. Por padro, o servidor de desenvolvimento sua mquina local. Normalmente, voce desenvolve e constri o projeto em um servidor de desenvolvimento, e ento voc o implementa em outro servidor (o servidor se implementao) que ir hospedar o XML Web service usando um projeto de implementao. Entretanto, se voc estiver desenvolvendo diretamente no servidor que hospedar o XML Web Services, o servidor de desenvolvimento e o servidor de implantao so os mesmos. 4. Clique OK para criar o projeto.

O Visual Studio automaticamente cria os arquivos necessrios e inclui as referncias necessrias para suportar um XML Web Services. Quando voc criar um projeto XML Web Services no Visual Studio, ver o criador de componente para Service1.asmx. Implementar o servio da Web XML A prxima etapa escrever o cdigo para implementar a funcionalidade do XML Web Services que os clientes iro acessar. Para XML Web Services criados no Visual Studio, um arquivo oculto code-behind associado ao arquivo.asmx do XML Web Services que o Visual Studio criou para voc contm esse cdigo. Para obter mais informaes, consulte COMO: Criar um Mtodo de Servio da Web XML. Para adicionar um mtodo de XML Web Service 1. No arquivo cdigo Service.vb, localize o cdigo para a declarao de classe Service. Substituia o cdigo de atributo System.Web.Services.WebService com o seguinte cdigo antes da declarao de classe (mostrada em negrito): Visual Basic <System.Web.Services.WebService( _ Namespace:="http://Walkthrough/XmlWebServices/", _ Description:="A temperature conversion service.")> _ Public Class Service [System.Web.Services.WebService( Namespace="http://Walkthrough/XmlWebServices/", Description="A temperature conversion service.")] public class Service : System.Web.Services.WebService Unindo o atributo WebService classe Public se torna possvel a incluso de informao adicional sobre o XML Web Service, como um namespace para o XML Web Service e uma descrio para o XML Web Service. A propriedade description desse atributo est includa na pgina de ajuda de Service. Para obter mais informaes, consulte COMO: Usar o Atributo WebService. 2. Na classe Service, adicione o seguinte cdigo para declarar a funo ConvertTemperature: Visual Basic <WebMethod(Description:="This method converts a temperature in " & _ "degrees Fahrenheit to a temperature in degrees Celsius.")> _ Public Function ConvertTemperature(ByVal dFahrenheit As Double) _ As Double Return ((dFahrenheit - 32) * 5) / 9 End Function [WebMethod(Description="This method converts a temperature in " + "degrees Fahrenheit to a temperature in degrees Celsius.")] public double ConvertTemperature(double dFahrenheit) { return ((dFahrenheit - 32) * 5) / 9; } Anexando o atributo WebMethod a um mtodo Public expe esse mtodo como parte do XML Web Services. A propriedade description deste atributo est includo na pgina ajuda de Service e na pgina de ajuda Service

Apostila Visual Studio 2005

449

Methods. Para obter mais informaes, consulte COMO: Usar o Atributo WebMethod. 3. 4. Clique com o boto direito do mouse Service.asmx em Solution Explorer e clique Set as Start Page no menu de atalho. Salvar a soluo. Depurar o XML Web Service O Visual Studio oferece vrios mtodos para criar e executar um XML Web Services a partir da IDE, tais como:

Iniciar (com depurao) Iniciar sem depurao Modo de Exibio no navegador

Como um projeto Visual Studio, este XML Web Services tem configuraes separadas para as verses de lanamento e depurao. Como voc criou este projeto usando o modelo de projeto do servio da Web ASP.NET, Visual Studio automaticamente criou essas configuraes e definiu as opes padro apropriadas e outras configuraes. Para obter mais informaes, consulte HOW TO: definir depurao e configuraes de verso. Nesta explicao passo a passo, ser colocado um ponto de interrupo no XML Web Services e usado o mtodo Start (with Debugging). Para obter mais informaes, consulte Como Depurar XML Web Services em Cdigo No Gerenciado. Antes de depurao, verifique as configuraes de depurao. Para obter mais informaes, consulte Projetos Servio da Web XML depurao preparao:. Para usar um ponto de interrupo e iniciar o XML Web Services com depurao 1. No menu Debug, escolher New Breakpoint, ento Break At Function. Na guia Function, digite ConvertTemperature na caixa Function e clique OK para adicionar um ponto de interrupo na declarao de mtodo ConvertTemperature. 2. No menu Debug, clique em Start, clique Ok na janela Debugging Not Enabled para iniciar depurao. Este comando instrui o Visual Studio a executar o XML Web Services no depurador. O Visual Studio cria o projeto e o implanta para o servidor de desenvolvimento designado. Aps a concluso, o navegador padro exibe o arquivo.asmx a partir do servidor de implantao. Quando voc abre um arquivo.asmx em um navegador, o XML Web Services retorna uma pgina Service auxiliar que fornece informaes sobre o XML Web Services. O Service Description link leva voc para um documento XML que contm a descrio servio formal do XML Web Services. Para obter mais informaes, consulte XML Web Service Description. 3. 4. Na pgina de ajuda Service, clique no link ConvertTemperature. Na caixa dFahrenheit, digite o nmero 212, e clique no boto Invoke. Quando o processamento atingir a funo ConvertTemperature, o processamento pra. O depurador Visual Studio reala a linha que contm o ponto de interrupo; enquanto ele interrompido, voc pode executar uma

Apostila Visual Studio 2005

450

variedade de tarefas. Para obter mais informaes, consulte Explicao detalhada sobre o depurador e Exibindo Dados no Depurador. 5. 6. No menu Debug, clique em Continue para continuar o processamento. O XML Web Services responde retornando o valor convertido em um documento XML semelhante ao seguinte: <?xml version="1.0" encoding="utf-8" ?> <double xmlns="http://Walkthrough/XmlWebServices/">100</double> Para interromper a execuo do XML Web Services e retornar ao editor de cdigo, no menu Debug, clique em Stop Debugging. 7. No menu Debug, clique em Delete All Breakpoints. Implantando o XML Web Service Para tornar seu XML Web Services disponvel para outros, voc deve implant-lo em um servidor Web que seja acessvel para os clientes que voc queira dar suporte. Para distribuir o XML Web Services para um servidor que no seja o servidor de desenvolvimento, voc pode adicionar um projeto Web Setup ou copiar os arquivos necessrios para o servidor de destino. Nesta explicao passo a passo, voc pode escolher como implantar este XML Web Services. Para obter mais informaes, consulte COMO: Implantar Servios da Web XML no Cdigo Gerenciado. Para implantar o XML Web Services usando um projeto Web Setup 1. 2. 3. No menu File, aponte para Add, e clique New Project. Selecionar o n Other, e o n Setup and Deployment Projects, e clique em Web Setup Project. Na caixa Name, digitar TempConvert1WebSetup, e clique OK. Observao Por padro, o instalador usa o nome do projeto de implantao ao criar o diretrio virtual em seu servidor de implantao. 4. 5. 6. No painel esquerdo do File System Editor, selecione Web Application Folder. Para obter mais informaes, consulte File System Editor. No Solution Explorer, clique com o boto direito do mouse em TempConvert1WebSetup, aponte para Add, e clique Project Output. Na caixa de dilogo Add Project Output Group, selecione Content Files. Para obter mais informaes, consulte Como adicionar e remover Outputs Project no File System Editor:. O grupo Content Files consiste dos seguintes arquivos para o XML Web Services: Service1.asmx, GLOBAL.asax, e Web.config. Para obter mais informaes, consulte COMO: Implantar Servios da Web XML no Cdigo Gerenciado. Clique em OK. No Solution Explorer, clique com o boto direito do mouse no projetoTempConvert1WebSetup, e no menu de atalho, clique Build.

7. 8.

Apostila Visual Studio 2005

451

Isso cria um arquivo do Windows Installer no diretrio de projeto local. Executar este arquivo instala o aplicativo da Web. Para implantar o XML Web Services, copiando o projeto 1. 2. 3. No Solution Explorer, selecione o projeto TempConvert1. No menu Project, clique em Copy Web Site. Clique no cone ao lado da caixa suspensa Connect To para abrir a caixa de dilogo Open Web Site. Navegue para a localidade para a qual voc deseja copiar o projeto. No painel Source Web Site, selecione os arquivos para copiar e mov-los para o painel Remote Web Site, clicando no cone de seta direita. . Clique Copy Web Site para copiar o site.

4. 5.

Finalmente, para criar um aplicativo cliente que acesse esse XML Web Services, consulte um destes procedimentos:

Passo-a-Passo: acessando um XML Web Services utilizando Visual Basic ou Visual C# Acessar um servio da Web XML usando C++ Walkthrough: Acessar um servio da Web XML usando C++ e o CLR Walkthrough:

Passo-a-passo: Criando um XML Web Service usando C++ e o CLR


Os desenvolvedores podem usar a nova sintaxe C++ para expor funcionalidade escrita em C++ como um servio XML da Web. Usando essa sintaxe, os desenvolvedores podem criar classes gerenciadas usando C++. Essas classes e seus mtodos pblicos ento podem ser expostos como servios XML da Web usando arquivos.asmx da mesma maneira como os Servios XML da Web no Visual Basic e Visual C#. Durante o curso desta explicao passo a passo, voc ir realizar as atividades a seguir:

Criar um servio XML da Web usando o ASP.NET Web Service modelo de projeto. Implementar o XML Web Services. Depurar o servio da Web XML. Implantar o XML Web Services.

Para concluir o explicao passo a passo, voc precisar ter acesso a uma mquina que atende aos requisitos para criar um projeto da Web. Para obter mais informaes, consulte Requisitos de hardware do Visual Studio. Voc tambm precisar de permisses suficientes para ser capaz de criar projetos XML Web Services no computador onde seu servidor Web est. Criar projeto servio XML da Web Usando o ASP.NET Web Service modelo de projeto, Visual Studio cria automaticamente um projeto do servio XML da Web que usa C++. Para criar um projeto Servio da Web ASP.NET com C++ 1. No menu File, aponte para New, e clique Project para abrir a New Project caixa de dilogo.

Apostila Visual Studio 2005

452

2. 3.

Selecione a Visual C++ Projects pasta, e, em seguida, clique no ASP.NET Web Service cone. Na caixa Name, digite TempConvert3 e depois clique em OK. O modelo de projeto fornece automaticamente os arquivos necessrios e referncias a suporte um servio XML da Web. Dica No Solution Explorer Consulte o arquivo ReadMe.txt que descreve os projetos e arquivos gerados. Implementar o servio da Web XML

A prxima etapa para gravar o cdigo para implementar a funcionalidade do que os clientes podem acessar o servio da Web XML. Quando o servidor Web recebe uma solicitao para o servio da Web XML, ele chama TempConvert3.asmx, que por sua vez chama este cdigo. Observao Para exibir o contedo do arquivo.asmx, no Solution Explorer, clique com o boto direito do mouse no arquivo.asmx e clique Open With no menu de atalho. Na caixa Open With de dilogo, selecione Source Code (Text) Editor e clique em OK O arquivo.asmx Especifica a classe que a implementao do servio da Web XML na propriedade Class do arquivo WebService.asmx diretiva de processamento, que lembra o seguinte: <%@ WebService Class="TempConvert3.TempConvert3Class" %> Dica Se voc optar por renomear a classe, certifique-se alterar o nome de classe no Class atributo da diretiva WebService. Para adicionar um mtodo de XML Web Service 1. 2. Clique duas vezes o Component Designer na superfcie do design para exibir o cdigo para esse arquivo, TempConvert3Class.h. Os mtodos da classe TempConvert3Class fornecer a implementao do servio da Web XML. Herda TempConvert3Class da classe System::Web::Services::WebService base. Localize a declarao de classe: public ref class TempConvert3Class : public System::Web::Services::WebService Insira o seguinte cdigo antes que declarao: [System::Web::Services::WebServiceAttribute( Namespace="http://Walkthrough/XmlWebServices/", Description="A temperature conversion XML Web Service.")] Anexar o System::Web::Services::WebServiceAttribute atributo a essa classe torna possvel para que voc possa incluir informaes adicionais sobre o servio XML da Web, como especificar um espao para nome e uma

Apostila Visual Studio 2005

453

descrio. A propriedade description desse atributo est includa na pgina de ajuda de Service. Para obter mais informaes, consulte WebServiceAttribute. 3. Voc ir adicionar um mtodo pblico para esta classe e expor esse mtodo como parte do servio da Web XML. Localize o mtodo HelloWorld de exemplo: public: [System::Web::Services::WebMethod] String ^HelloWorld(); // TODO: Add the methods of your Web Service here Substituir esse mtodo com o seguinte: public: [System::Web::Services::WebMethod( Description="Converts temperatures from F to C.")] double ConvertTemperature(double dFahrenheit); Anexar o System::Web::Services::WebMethod atributo a este mtodo indica que voc deseja o mtodo exposto como parte do servio da Web XML. A propriedade description deste atributo est includo na pgina ajuda de Service e na pgina de ajuda Service Methods. Para obter mais informaes, consulte WebMethodAttribute. 4. 5. No Solution Explorer, localize TempConvert3Class.cpp na pasta Source Files do Projeto TempConvert3 e abrir este arquivo para edio. Localizar e substituir o contedo do espao para nome TempConvert3 com o seguinte: namespace TempConvert3 { double TempConvert3Class::ConvertTemperature(double dFahrenheit) { return ((dFahrenheit - 32) * 5) / 9; } }; 6. 7. Salve a soluo. No menu Build, clique em Build Solution. Depurar o XML Web Service O Visual Studio oferece vrios mtodos para criar e executar um XML Web Services a partir da IDE, tais como:

Start Debugging Start Without Debugging View in Browser

Como um projeto Visual Studio, este XML Web Services tem configuraes separadas para as verses de lanamento e depurao. Criadas essas configuraes porque voc criado este projeto usando o ASP.NET Web Service modelo de projeto, Visual Studio automaticamente e definir as opes padro apropriado e outras configuraes. Para obter mais informaes, consulte HOW TO: definir depurao e configuraes de verso. Nessa explicao passo a passo, ser colocar um ponto de interrupo no servio XML da Web e use o Start Debugging mtodo. Quando o servio da Web XML estiver sendo executado, ser anexar ao processo do sistema em que estiver sendo executado para depur-la. Para obter mais informaes, consulte Como Depurar XML Web Services em Cdigo No Gerenciado. Antes da depurao, verifique as configuraes de depurao. Para obter mais informaes, consulte Preparao da Depurao: Web Services XML (C++).

Apostila Visual Studio 2005

454

Para usar um ponto de interrupo e iniciar o XML Web Services com depurao 1. No menu Debug, selecione New Breakpoint, e selecione Break at Function. Na caixa New Breakpoint de dilogo, digite TempConvert3::TempConvert3Class::ConvertTemperature lado para Function e clique OK para colocar um ponto de interrupo na declarao ConvertTemperature de mtodo. 2. No menu Debug, clique em Start Debugging. Este comando instrui Visual Studio para executar o servio XML da Web como ele faria normalmente. O Visual Studio compila o projeto e o implanta no servidor de desenvolvimento designado. Aps a concluso, o navegador padro exibe o arquivo.asmx a partir do servidor de implantao. Quando voc abre um arquivo.asmx em um navegador, o XML Web Services retorna uma pgina Service auxiliar que fornece informaes sobre o XML Web Services. Clicar no Service Description Link retorna um documento XML que contm o descrio do servio formal do servio XML Web. Para obter mais informaes, consulte Descrio do XML Web Service. 3. 4. Na pgina TempConvert3Class Servio da Web, clique no ConvertTemperature Link. Na caixa dFahrenheit, digite o nmero 212, e clique no Invoke boto. Quando processamento atinge a ConvertTemperature funo, processamento pra. O depurador do Visual Studio reala a linha que contm o ponto de interrupo e, enquanto interrompido, voc poder executar uma variedade de tarefas. Para obter mais informaes, consulte Debugger and Language Overview e Exibindo Dados no Depurador. 5. 6. No menu Debug, clique Continue para continuar o processamento. O XML Web Services responde retornando o valor convertido em um documento XML semelhante ao seguinte: <?xml version="1.0" encoding="utf-8" ?> <double xmlns="http://Walkthrough/XmlWebServices/">100</double> Para interromper executando o servio XML da Web e retornar ao editor de cdigo, no menu Debug, clique em Stop Debugging. 7. No menu Debug, clique em Delete All Breakpoints. Para obter mais informaes, consulte Passo-a-passo: Depurao de um servio XML da Web. Implantando o XML Web Service Para implantar esse servio XML da Web, voc deve criar um projeto de implantao. Para implantar o XML Web Services usando um projeto Web Setup 1. 2. No menu File, aponte para New e clique em Project. No painel Project types, expanda o Other Project Types n e selecione Setup and Deployment. No painel Templates, clique em Web Setup Project. Na caixa Name, digite TempConvert3WebSetup. Na lista suspensa Solution Selecionar Add to Solution, e clique em OK

3. 4.

Apostila Visual Studio 2005

455

Observao Por padro, o instalador usa o nome do projeto de implantao ao criar o diretrio virtual em seu servidor de implantao. 5. No painel esquerdo da guia File System (TempConvert3WebSetup), selecione Web Application Folder. Para obter mais informaes, consulte Editor do sistema de arquivos. No Solution Explorer, clique com o boto direito do mouse TempConvert3WebSetup, aponte para Add, e clique em Project Output. Na caixa Add Project Output Group de dilogo, selecione Content Files. Para obter mais informaes, consulte Como adicionar e remover resultados Project no editor do sistema de arquivos:. O grupo arquivos contedo consiste os seguintes arquivos para o servio da Web XML: TempConvert3.asmx, Global.asax, e Web.config. Para obter mais informaes, consulte Implantando servios da Web XML em cdigo gerenciado. Clique em OK. No painel esquerdo da guia File System (TempConvert3WebSetup), expanda Web Application Folder e localize a pasta rotulada bin.

6. 7.

8. 9.

10. Clique com o boto direito do mouse na bin pasta, aponte para Add, e clique em Project Output 11. Na caixa Add Project Output Group de dilogo, selecione Primary output e Debug Symbols. Para obter mais informaes, consulte Como adicionar e remover resultados Project no editor do sistema de arquivos:.
o o

O grupo primrio de sada consiste do projeto DLL, TempConvert3.dll, e suas dependncias. O grupo smbolos de depurao consiste do arquivo PDB projeto, TempConvert3.pdb.

12. Clique em OK. 13. No Solution Explorer, clique com o projeto de implantao, e seguida, no menu de atalho, clique em Build. Isso cria um arquivo do Windows Installer no diretrio do projeto local. Executar este arquivo em um servidor Web para instalar este servio da Web XML. Para obter mais informaes, consulte Implantando aplicativos e componentes. Finalmente, para criar um aplicativo cliente que acesse esse XML Web Services, consulte um destes procedimentos:

Passo-a-Passo: acessando um XML Web Services utilizando Visual Basic ou Visual C# Passo-a-passo: Acessando um XML Web Service usando C++ Passo-a-passo: Acessando um XML Web Service usando C++ e o CLR

Apostila Visual Studio 2005

456

Walkthrough: Criando um servio da Web XML usando ATL Server


Explicao passo a passo o seguir descreve o processo para criar um servio XML da Web que converte temperaturas medidas em Fahrenheit para Celsius usando C++ e ATL Server. ATL Server torna possvel para os desenvolvedores a usar o Active Template Library para facilmente implementar servios XML da Web como uma extenso ISAPI. Para obter mais informaes, consulte Fornecer servios XML da Web. Durante o curso desta explicao passo a passo, voc ir realizar as atividades a seguir:

Criar um servio XML da Web usando o modelo do projeto Servio da Web Server ATL. Implementar o XML Web Services. Implantar o XML Web Services.

Para concluir o explicao passo a passo, voc precisar ter acesso a uma mquina que atende aos requisitos para criar um projeto da Web. Para obter mais informaes, consulte Requisitos de hardware do Visual Studio. Desde que os Servios XML da Web usando ATL Server no responda a solicitaes HTTP-GET ou POST HTTP-, voc precisar criar um cliente que acesse este servio da Web XML para explorar sua funcionalidade. Para obter mais informaes, consulte Criando Servios da Web XML. Criar projeto servio XML da Web O Visual Studio fornece um modelo de projeto Servio da Web Server ATL para ajud-lo criar servios da Web XML usando ATL Server. Para obter mais informaes, consulte Criar um Projeto ATL Server. Para criar um projeto do servio da Web ATL Server 1. 2. 3. 4. 5. No menu File, aponte para New, e clique Project para abrir a New Project caixa de dilogo. Selecione a Visual C++ Projects pasta, e, em seguida, clique no ATL Server Web Service cone. Na caixa Name, digite TempConvert4. Clique OK Para iniciar o ATL Server Project Wizard. No ATL Server Project Wizard, clique Finish para aceitar os padres do projeto. Para obter mais informaes, consulte Criar um Projeto ATL Server. Observao Voc tem a opo de criar uma DLL combinado, que combina a funcionalidade ISAPI com o cdigo do aplicativo. Esta opo est localizada na pgina Project Settings do assistente. No entanto, para essa explicao passo a passo, voc ir criar DLLs separados. 6. O assistente cria uma soluo, que contm dois projetos separados: um projeto do manipulador e um projeto de extenso ISAPI. Dica

Apostila Visual Studio 2005

457

O Assistente para Servidor ATL fornece um ReadMe.txt arquivo que descreve os projetos e arquivos gerados no Solution Explorer.
o

Voc ir escrever o cdigo que fornece a funcionalidade para o servio da Web XML no projeto do manipulador, que se torna o manipulador personalizado DLL posteriormente. Voc pode personalizar o cdigo usado para criar a extenso DLL ISAPI no projeto de extenso ISAPI. Neste projeto, voc encontrar um arquivo ReadMe.txt mais que explica a finalidade de cada arquivo gerado. Para essa explicao passo a passo, voc no necessitar personalizar a DLL ISAPI.

Voc criar um projeto de implantao como a etapa final dessa explicao passo a passo. Para obter mais informaes, consulte Criando Servios da Web XML. Implementar o servio da Web XML Voc fornecer a funcionalidade do seu servio da Web XML com o cdigo voc escrever para a classe do manipulador. Quando o servidor recebe uma solicitao para o servio da Web XML, a extenso ISAPI chama este cdigo. Para adicionar um mtodo de XML Web Service 1. No Solution Explorer, localize a Header Files Pasta do projeto TempConvert4, e seguida, clique duas vezes TempConvert4.h para abrir o arquivo para edio. ITempConvert4Service a definio de interface para o servio da Web XML. Ele oferece suporte um mtodo, que voc ir declarar como ConvertTemperature. Localizar e substituir a definio de ITempConvert4Service interface de exemplo com o seguinte: __interface ITempConvert4Service { [id(1)] HRESULT ConvertTemperature( [in] double dFahrenheit, [out, retval] double* pdCelsius); }; 3. A CTempConvert4Service classe fornece a implementao de servio da Web XML. Voc ir adicionar um mtodo pblico para esta classe e expor esse mtodo como parte do servio da Web XML. No mesmo arquivo, TempConvert4.h, localize e substituir a definio de classe de CTempConvert4Service exemplo com o seguinte: class CTempConvert4Service : public ITempConvert4Service { public: [ soap_method ] HRESULT ConvertTemperature( /*[in]*/ double dFahrenheit, /*[out, retval]*/ double* pdCelsius) { if (!pdCelsius) return E_INVALIDARG; *pdCelsius = ((dFahrenheit 32) * 5) / 9; return S_OK; } }; // class CTempConvert4Service Observao Os atributos ATL Server que esto localizados entre as definies de interface e classe, request_handler e soap_handler, ajudar a simplificar a tarefa de fornecer a infra-estrutura de servio da Web XML. Alm disso, o soap_method atributo identifica qual mtodo para expor como um servio XML da Web. Para obter mais informaes, consulte Atributos ATL Server. 4. 5. Salve a soluo. No menu Build, clique em Build Solution.

2.

Apostila Visual Studio 2005

458

Implantando o XML Web Service Para tornar seu XML Web Services disponvel para outros, voc deve implant-lo em um servidor Web que seja acessvel para os clientes que voc queira dar suporte. Para implantar o servio da Web XML em um servidor que no seja o servidor de desenvolvimento, voc pode adicionar um projeto de instalao da Web ou voc pode copiar os arquivos necessrios para o servidor de destino manualmente. Para implantar o XML Web Services usando um projeto Web Setup 1. 2. 3. No menu File, aponte para Add Project, e clique em New Project. Selecione a Setup and Deployment Projects pasta, e clique em Web Setup Project. Na caixa Name, digite TempConvert4WebSetup, e depois clique em OK. Observao Por padro, o instalador usa o nome do projeto de implantao ao criar o diretrio virtual em seu servidor de implantao. 4. 5. 6. No painel esquerdo da File System Editor, selecione Web Application Folder. Para obter mais informaes, consulte Editor do sistema de arquivos. No Solution Explorer, clique com o boto direito do mouse TempConvert4WebSetup, aponte para Add, e clique em Project Output Na caixa Add Project Output Group de dilogo, selecione Content Files, Primary output e Debug Symbols. Para obter mais informaes, consulte Como adicionar e remover resultados Project no editor do sistema de arquivos:. O grupo arquivos contedo consiste os arquivos restantes para o servio XML da Web, tais como TempConvert4.htm e TempConvert4.disco. O grupo primrio de sada consiste do projeto DLL, TempConvert4.dll, e suas dependncias. O grupo smbolos de depurao consiste do arquivo PDB projeto, TempConvert4.pdb. Clique em OK. No Solution Explorer, clique com o boto direito do mouse TempConvert4WebSetup novamente, aponte para Add, e clique em Project Output Na caixa Add Project Output Group de dilogo, alterar o projeto para TempConvert4Isapi, e selecione Primary output e Debug Symbols. Para obter mais informaes, consulte Como adicionar e remover resultados Project no editor do sistema de arquivos:. O grupo primrio de sada consiste do projeto DLL, TempConvert4Isapi.dll, e suas dependncias. O grupo smbolos de depurao consiste do arquivo PDB projeto, TempConvert4Isapi.pdb.

o o o

7. 8.

9.

o o

10. Clique em OK.

Apostila Visual Studio 2005

459

11. No painel esquerdo de expandir Web Application Folder, clique com o boto direito do mouse bin e, em seguida, clique em Delete. o File System Editor, 12. No Solution Explorer, clique com o TempConvert4WebSetup projeto, e no menu de atalho, clique em Build Isso cria um arquivo do Windows Installer no diretrio do projeto local. Executar este arquivo em um servidor Web para instalar este servio da Web XML. Para obter mais informaes, consulte Implantando aplicativos e componentes. Finalmente, para criar um aplicativo cliente que acesse esse XML Web Services, consulte um destes procedimentos:

Passo-a-Passo: acessando um XML Web Services utilizando Visual Basic ou Visual C# Passo-a-passo: Acessando um XML Web Service usando C++ Passo-a-passo: Acessando um XML Web Service usando C++ e o CLR

Passo-a-passo: Acessando um XML Web Service usando C++ e o CLR


Explicao passo a passo o seguir descreve o processo para acessar um servio XML da Web de um aplicativo criado usando C++. Durante o curso desta explicao passo a passo, voc ir realizar as atividades a seguir:

Criar um aplicativo do cliente usando o CLR Console Application modelo de projeto. Adicionar uma referncia da Web para um XML Web Services. Escrever cdigo para acessar o XML Web Services. Execute o aplicativo do cliente no modo de depurao. Uma mquina atendendo aos requisitos encontrado no Requisitos de hardware do Visual Studio. Um servio XML da Web criado de uma das orientaes a seguir: Explicao Passo a Passo: Criando um XML Web Services usando Visual Basic ou Visual C# Walkthrough: Criando um servio da Web XML usando ATL Server Passo-a-passo: Criando um XML Web Service usando C++ e o CLR Criando um projeto cliente de XML Web Services

Para concluir a explicao passo a passo, voc deve fornecer o seguinte:


o o o

Para essa explicao passo a passo, voc ir criar um aplicativo de console simples que acessa o servio da Web XML TempConvert3, que era o nome dado para a Web XML servio criado no Passo-a-passo: Criando um XML Web Service usando C++ e o CLR. Observao Para acessar uma implementao diferente do servio da Web XML, a converso de temperatura

Apostila Visual Studio 2005

460

simplesmente substitua os nomes apropriados onde aparece o nome TempConvert3 em toda essa explicao passo a passo. Para criar um aplicativo de console 1. 2. 3. 4. 5. No menu File, aponte para New, e clique Project para abrir a New Project caixa de dilogo. Expanda o Visual C++ n, e selecione CLR. Clique no CLR Console Application cone. Alterar o nome do projeto para TempConvertClient3. Clique OK para criar o projeto. Adicionando uma referncia da Web Descoberta de XML Web Services o processo pelo qual um cliente localiza um XML Web Services e obtm sua descrio de servio. O processo de descoberta de XML Web Services no Visual Studio envolve interrogar um site da Web seguindo um algoritmo predeterminado. A meta do processo localizar a descrio de servio, que um documento XML que usa o WSDL (Web Services Description Language). Para obter mais informaes, consulte Descoberta de XML Web Service. A descrio de servio descreve quais servios esto disponveis e como interagir com os servios. Sem uma descrio de servio, impossvel interagir com um XML Web Services programaticamente. Para obter mais informaes, consulte Descrio do XML Web Service. O aplicativo precisa um meio para se comunicar com o servio da Web XML e para localiz-lo em tempo de execuo. Adicionar uma referncia da Web ao seu projeto para o XML Web Services faz isso por gerar uma classe proxy que interfaceia com o XML Web Services e fornece uma representao local do XML Web Services. Para obter mais informaes, consulte Referncias da Web e COMO: Gerar um Proxy de Servio da Web XML. Adicionar uma referncia da Web 1. 2. Na Solution Explorer, selecione o TempConvert3Client n de projeto. No menu Project, clique em Add Web Reference. Na caixa URL da caixa Add Web Reference de dilogo, digite a URL para obter o descrio do servio do servio XML Web voc deseja acessar, such as http://localhost/TempConvert3WebSetup/TempConvert3.asmx. Clique no Go boto para recuperar informaes sobre o servio da Web XML. OuSe o servio da Web XML existir na mquina local, clique no Web services on the local machine Link no painel do navegador. Clique no link para o servio da Web XML TempConvert3 na lista fornecida para recuperar informaes sobre o servio da Web XML. 3. Na caixa Web reference name, renomear a referncia da Web, a ConvertSvc Qual o espao para nome ser usado para esta referncia da Web. Clique Add Reference para adicionar uma referncia da Web para o destino XML Web Service. Para obter mais informaes, consulte Como: Adicionar e remover referncias da Web.

4.

Apostila Visual Studio 2005

461

O Visual Studio baixa o descrio do servio e adiciona-o ao seu projeto. Em seguida, ele gera uma classe de proxy e compila uma DLL do descrio do servio. Finalmente, Visual Studio adiciona um novo arquivo WebService.h, de cabealho, ao seu projeto. Este arquivo de cabealho referencia espaos para nome do .NET Framework para usar os Servios XML da Web e a DLL criado necessrio. Se explorar o diretrio do projeto local, voc tambm encontrar o arquivo de fonte Visual C# para a DLL. Acessando o XML Web Services Depois de adicionar uma referncia para o servio da Web XML ao seu projeto, a prxima etapa para criar uma instncia de classe de proxy do servio da Web XML. Voc pode acessar os mtodos do XML Web Service da mesma maneira que voc acessar mtodos qualquer do objeto chamando os mtodos da classe de proxy. Quando o aplicativo chama esses mtodos, o cdigo gerado pelo Visual Studio trata as comunicaes entre o aplicativo e o servio da Web XML. Acessar o XML Web Services 1. 2. No Solution Explorer, localize TempConvertClient3.cpp na pasta Source Files e abra este arquivo para edio. Substituir o contedo do arquivo com o seguinte: #include "stdafx.h" #include "WebService.h" using namespace System; int main(void) { while (true) { try { ConvertSvc::TempConvert3Class^ proxy = gcnew ConvertSvc::TempConvert3Class(); Console::Write("Temperature in degrees Fahrenheit: "); System::String^ sInput = Console::ReadLine(); double dFahrenheit = System::Convert::ToDouble(sInput); double dCelsius = proxy>ConvertTemperature(dFahrenheit); Console::Write("Temperature in degrees Celsius: "); Console::WriteLine(dCelsius.ToString()); } catch (System::FormatException^ e) { Console::WriteLine("Invalid value...exiting: {0}", e->Message); break; } } return 0; } Observao O nome da classe do servio da Web XML gerado quando adicionando uma referncia da Web pode diferir daquele mostrado acima como TempConvert3Class. 3. 4. Salve a soluo. No menu Build, clique em Build Solution. Depurando o cliente de XML Web Services Quando voc executar o aplicativo, ele acessa o servio da Web XML e exibe o Celsius temperatura equivalente do Fahrenheit digitado. Visual Studio oferece vrios mtodos para criar e executar um aplicativo de dentro o IDE,, como:

Start Debugging Start without Debugging

Como um projeto do Visual Studio, este aplicativo tem separadas configuraes para verses liberao e DEBUG. Criadas essas configuraes porque voc criado este projeto usando o CLR Console Application modelo de projeto, Visual Studio automaticamente e definir as opes padro apropriado e outras configuraes.

Apostila Visual Studio 2005

462

Para obter mais informaes, consulte HOW TO: definir depurao e configuraes de verso. Nessa explicao passo a passo, ser colocar um ponto de interrupo no aplicativo e use o Start Debugging mtodo. Antes da depurao, verifique as configuraes de depurao. Para obter mais informaes, consulte Preparao da depurao: Projetos de console. Para utilizar um ponto de interrupo e iniciar o aplicativo com depurao 1. No Editor do cdigo, coloque o cursor na linha de cdigo que chama a funo proxy: double dCelsius = proxy->ConvertTemperature(dFahrenheit); 2. Pressione F9 para colocar um ponto de interrupo nesta linha de cdigo. ou Clique esquerda dessa linha de cdigo na margem indicador. Para obter mais informaes, consulte COMO: Depurar Cdigo no Editor. 3. No menu Debug, clique em Start Debugging. Este comando instrui Visual Studio para executar o aplicativo no depurador. O Visual Studio cria o projeto e inicia o aplicativo. 4. Na janela do console, digite o nmero 212 e pressione ENTER. Quando processamento atingir do ponto de interrupo, processamento pra. O depurador do Visual Studio reala a linha que contm o ponto de interrupo e, enquanto interrompido, voc poder executar uma variedade de tarefas. Para obter mais informaes, consulte Explicao detalhada sobre o depurador e Exibindo Dados no Depurador. 5. No menu Debug, clique Continue para continuar o processamento. O aplicativo cria uma mensagem de solicitao SOAP, que ele envia para o servio XML da Web. Em retorno, o aplicativo recebe uma mensagem de resposta SOAP. O aplicativo ento analisa a resposta e exibe uma mensagem indicando que 212 Fahrenheit graus o equivalente de 100 Celsius graus. Para parar execuo do aplicativo e retornar ao editor de cdigo, no menu Debug, clique em Stop Debugging. 6. No menu Debug, clique em Delete All Breakpoints.

Passo-a-passo: Acessando um XML Web Service usando C++


Explicao passo a passo o seguir descreve o processo para acessar um servio XML da Web de um aplicativo criado usando C++. Durante o curso desta explicao passo a passo, voc ir realizar as atividades a seguir:

Criar um aplicativo do cliente usando o modelo Project Win32. Adicionar uma referncia da Web para um XML Web Services. Escrever cdigo para acessar o XML Web Services. Execute o aplicativo do cliente no modo de depurao.

Para concluir a explicao passo a passo, voc deve fornecer o seguinte:

Apostila Visual Studio 2005

463

o o o

Uma mquina que atenda aos requisitos encontrado no Requisitos de hardware do Visual Studio. Um servio XML da Web criado de uma das orientaes a seguir: Explicao Passo a Passo: Criando um XML Web Services usando Visual Basic ou Visual C# Walkthrough: Criando um servio da Web XML usando ATL Server Passo-a-passo: Criando um XML Web Service usando C++ e o CLR Criando um projeto cliente de XML Web Services

Para essa explicao passo a passo, voc ir criar um aplicativo de console simples que acessa o servio da Web XML TempConvert4, que era o nome dado para a Web XML servio criado no Walkthrough: Criando um servio da Web XML usando ATL Server. Observao Para acessar uma implementao diferente do servio da Web XML, a converso de temperatura simplesmente substitua os nomes apropriados onde aparece o nome TempConvert4 em toda essa explicao passo a passo. Para criar um aplicativo do cliente do servio XML da Web 1. 2. 3. 4. 5. No menu File, aponte para New, e clique Project para abrir a New Project caixa de dilogo. Expanda a Visual C++ Projects pasta, e, em seguida, clique no Win32 Project cone. Alterar o nome do projeto para TempConvertClient4. Clique OK Para iniciar o Win32 Application Wizard. Na Win32 Application Wizard, execute o seguinte: 1. 2. 3. Na pgina Application Settings, clique em Console application. Selecione ATL Para adicionar suporte de Biblioteca ATL. Clique em Finish.

Adicionando uma referncia da Web Descoberta de XML Web Services o processo pelo qual um cliente localiza um XML Web Services e obtm sua descrio de servio. O processo de descoberta de XML Web Services no Visual Studio envolve interrogar um site da Web seguindo um algoritmo predeterminado. A meta do processo localizar a descrio de servio, que um documento XML que usa o WSDL (Web Services Description Language). Para obter mais informaes, consulte Descoberta de XML Web Service. O descrio do servio ou contrato, descreve quais servios esto disponveis e como interagir com os servios. Sem uma descrio de servio, impossvel interagir com um XML Web Services programaticamente. Para obter mais informaes, consulte Descrio do XML Web Service. O aplicativo deve ter um meio para se comunicar com o servio da Web XML e para localiz-lo. Adicionar uma referncia da Web ao seu projeto para o XML Web Services faz isso por gerar uma classe proxy que interfaceia com o XML Web

Apostila Visual Studio 2005

464

Services e fornece uma representao local do XML Web Services. Para obter mais informaes, consulte Referncias da Web. Adicionar uma referncia da Web 1. 2. No menu Project, clique em Add Web Reference. Na caixa URL da caixa Add Web Reference de dilogo, digite a URL para obter o descrio do servio do servio XML Web voc deseja acessar, such as http://localhost/TempConvert4/TempConvert4Service.asmx. Clique no boto Go para recuperar informaes sobre o XML Web Services. OuSe o XML Web Services est na mquina local, clique no link Web services on the local machine no painel do navegador. Clique no link para o servio da Web XML TempConvert4 na lista fornecida para recuperar informaes sobre o servio da Web XML. 3. Na caixa Web reference name, renomeie a referncia da Web para ConvertSvc, que o namespace que voc usar para essa referncia da Web. Clique Add Reference para adicionar uma referncia da Web para o destino XML Web Service. Para obter mais informaes, consulte Como: Adicionar e remover referncias da Web. O Visual Studio gera um novo arquivo de cabealho mas no adiciona-lo para o projeto. No entanto, ele no salvar o arquivo de cabealho gerado para a pasta do projeto. O nome do arquivo de cabealho depende do servio da Web XML voc optar por acessar. Este arquivo de cabealho re-Generated sempre que voc criar o projeto. Para obter o nome correto do arquivo de cabealho, examine o contedo da seo janela sada do log de compilao (BuildLog.htm no diretrio Arquivos intermedirio) ou Output Window o. O nome de arquivo correto aparece em uma linha que lembra o seguinte: /out:ConvertSvc.h. Para exibir no menu View Aponte para Other Windows e clique em Output. o Output Window, Para obter mais informaes, consulte Como: Adicionar e remover referncias da Web. Acessando o XML Web Services Aps seu projeto tem uma referncia para o servio XML da Web, a prxima etapa para criar uma instncia da classe proxy. Para obter mais informaes, consulte Criar clientes do servio XML da Web. Voc pode acessar os mtodos do XML Web Service da mesma maneira que voc acessar mtodos qualquer do objeto chamando os mtodos da classe de proxy. Quando o aplicativo chama esses mtodos, o cdigo gerado pelo Visual Studio trata as comunicaes entre o aplicativo e o servio da Web XML. Para obter mais informaes, consulte Criar clientes do servio XML da Web. Acessar o XML Web Services 1. 2. No Solution Explorer, localize stdafx.h na pasta Header Files e abra este arquivo para edio. Adicione o seguinte # definir instrues (em negrito) aps o # existente definir instruo WIN32_LEAN_AND_MEAN: #define WIN32_LEAN_AND_MEAN // Disable client timeout for testing. Default is 10000 milliseconds. #define ATL_SOCK_TIMEOUT

4.

Apostila Visual Studio 2005

465

INFINITE // Minimum system requirements are Windows 98, Windows NT 4.0, or later #define _WIN32_WINDOWS 0x0410 3. Add the following #include statements after the existing #include for <atlbase.h>: #include "ConvertSvc.h" #include <conio.h> #include <iostream> Observao O nome do arquivo de cabealho gerado quando adicionando uma referncia da Web pode diferir daquele mostrado acima como ConvertSvc.h. Para obter o nome correto do arquivo de cabealho, examine o contedo da seo janela sada do log de compilao (BuildLog.htm no diretrio Arquivos intermedirio) ou Output Window o. O nome de arquivo correto aparece em uma linha que lembra o seguinte: /out:ConvertSvc.h. Para exibir no menu View Aponte para Other Windows e clique em Output. o Output Window, 4. 5. No Solution Explorer, localize TempConvertClient4.cpp na pasta Source Files e abrir este arquivo para edio. Primeiro, voc criar uma instncia da classe de proxy do servio da Web XML. Em seguida, voc ir levar um valor, que o console fornece, e fazer uma chamada ao mtodo do servio ConvertTemperature da Web XML chamando o mtodo na classe proxy. Voc ir exibir o valor retornado pelo servio da Web XML no console. Insira o cdigo a seguir: Observao O cdigo a seguir usa uma classe denominada TempConvert4Service::CTempConvert4Service. Aponte para o arquivo de cabealho gerado na sua pasta do projeto para determinar o nome de classe adequado para o servio da Web XML e substitua-onde TempConvert4Service::CTempConvert4Service. aparece o cdigo abaixo #include "stdafx.h" void AccessService(){ using namespace std; double dFahrenheit = 0.0; double dCelsius = 0.0; TempConvert4Service::CTempConvert4Service ws; while (1){ cout << "Enter a temperature in degrees Fahrenheit: "; cin >> dFahrenheit; if (!cin.good()){ cout << "Not a temperature" << endl; break; } HRESULT hr = ws.ConvertTemperature(dFahrenheit, &dCelsius); if (SUCCEEDED(hr)) cout << dFahrenheit << " F = " << dCelsius << " C\n" << endl; else cout << "An error occurred: " << hr << endl; } } int _tmain(int argc, _TCHAR* argv[]){ if (SUCCEEDED(CoInitialize(NULL))){ AccessService(); CoUninitialize(); } return 0; } 6. 7. Salve a soluo. No menu Build , clique em Build Solution. Depurando o cliente de XML Web Services Quando voc executar o aplicativo, ele acessa o servio da Web XML e exibe o Celsius temperatura equivalente do Fahrenheit digitado. O Visual Studio oferece vrios mtodos para criar e executar um aplicativo de IDE, como:

Start (with Debugging) Start without Debugging

Apostila Visual Studio 2005

466

Como um projeto do Visual Studio, este aplicativo tem separadas configuraes para verses liberao e DEBUG. Criadas essas configuraes porque voc criado este projeto usando o modelo do projeto Project Win32, Visual Studio automaticamente e definir as opes padro apropriado e outras configuraes. Para obter mais informaes, consulte HOW TO: definir depurao e configuraes de verso. Nessa explicao passo a passo, ser colocar um ponto de interrupo no aplicativo e use o Start (with Debugging) mtodo. Para utilizar um ponto de interrupo e iniciar o aplicativo com depurao 1. No menu Debug, clique em New Breakpoint. Na guia Function, digite AccessService na caixa Function e clique OK para colocar um ponto de interrupo na declarao AccessService de mtodo. 2. No menu Debug , clique em Start. Dica F5 o atalho do teclado padro para Start. 3. Este comando instrui Visual Studio para executar o aplicativo no depurador. O Visual Studio compila o projeto e o implanta no servidor de desenvolvimento designado. Aps a concluso, o navegador padro exibe o arquivo.asmx a partir do servidor de implantao. Para interromper a execuo do XML Web Service e retornar para o Code Editor, feche o navegador. ou No menu Debug, clique em Stop Debugging. Dica SHIFT+F5 o atalho do teclado padro para Stop Debugging. 5. Na janela do console, digite o nmero 212 e pressione ENTER. Quando processamento atinge a AccessService funo, processamento pra. O depurador do Visual Studio reala a linha que contm o ponto de interrupo e, enquanto interrompido, voc poder executar uma variedade de tarefas. Para obter mais informaes, consulte Explicao detalhada sobre o depurador e Exibindo Dados no Depurador. 6. No menu Debug, clique Continue para continuar o processamento. Dica F5 o atalho do teclado padro para Continue. 7. O aplicativo cria uma mensagem de solicitao SOAP, que ele envia para o servio XML da Web. Em retorno, o aplicativo recebe uma mensagem de

4.

Apostila Visual Studio 2005

467

resposta SOAP. O aplicativo ento analisa a resposta e exibe uma mensagem indicando que 212 Fahrenheit graus o equivalente de 100 Celsius graus. 8. 9. Para parar execuo do aplicativo e retornar ao editor de cdigo, no menu Debug, clique em Stop Debugging. No menu Debug, clique em Clear All Breakpoints. Dica + CtrlShift + F9 o atalho do teclado padro para Clear All Breakpoints. Consulte tambm

Passo-a-passo: Criando um aplicativo distribudo


Nessa explicao passo a passo, voc criar um aplicativo de vrias camadas, distribudos, intranet. O aplicativo consiste em trs camadas lgicas: Dados, objeto comercial, e interface de usurio. A camada de dados um banco de dados no SQL Server. A camada de negcio-Objeto tratar acessar os dados e distribui-lo para os clientes. A camada da interface do usurio consistir em tanto um aplicativo baseado na Web e um aplicativo Windows tradicional. Voc criar o aplicativo um aplicativo de dados simples com pesquisa e editar. Voc criar um cliente Windows para exibir a tabela Clientes do banco de dados de exemplo Northwind SQL Server. Voc criar um servio XML da Web para recuperar dados que contm informaes clientes a partir do banco de dados. Voc ento criar um aplicativo do Windows que iro se comunicar com este servio XML da Web para recuperar um DataSet que contm as informaes do autor. Voc criar o servio da Web XML e o cliente aplicativos no mesmo servidor, embora o banco de dados pode residir em outro servidor. Tanto o servidor de aplicativos e o servidor de banco de dados precisar que residam na mesma intranet. Essa organizao de projetos, voc pode usar a autenticao do Windows para obter acesso ao banco de dados e testar seu aplicativo. No mesmo, essa organizao remove muitos dos detalhes de acessar recursos para que voc pode ver a interao do servio XML da Web e os aplicativos cliente. Essa organizao pode no ser exatamente a arquitetura voc deseja para aplicativos voc Criar por conta prpria. Pr-requisitos A fim de concluir este explicao passo a passo, ser necessrio:

Acesso a um servidor com o exemplo de SQL Server do Northwind, configurado para autenticao Integrated Windows. O banco de dados Northwind um banco de dados de exemplo que voc pode instalar com SQL Server. Uma compreenso bsica de como dados so manipulados no Visual Studio .NET. Para obter mais informaes, consulte Viso geral do ADO.NET. Processo para criar um aplicativo distribudos

Um cenrio possvel para desenvolver um aplicativo distribudo consiste em criar uma camada ao mesmo tempo, talvez comeando com a camada de dados, e mover para o objeto regra negcio-camada intermediria, e finalmente criar a interface do usurio. Para essa explicao passo a passo, os dados j foi gerado e est disponvel no banco de dados Northwind no SQL Server. Portanto, o explicao passo a passo iniciar com criando o objeto comercial o servio da Web XML

Apostila Visual Studio 2005

468

seguido por criando as interfaces dois usurio uma pgina de formulrios da Web e um formulrio do Windows. O processo para essa explicao passo a passo a seguinte: 1. Criar o objeto comercial da camada intermediria 1. 2. 3. 2. 3. 1. Criar um Projeto Servio da Web ASP.NET Criar e configurar uma conexo de banco de dados e um esquema DataSet Expor DataSet do seu objeto comercial Criar uma interface do usurio do Windows

Criar a interface de usurio Implantar a soluo ou adicionar mais recursos

Criar o objeto Business Tier intermediriaO objeto comercial voc criar ser executado em um servidor Web para fornecer o desempenho e escalabilidade necessria para um aplicativo distribudo. Voc alm disso, ser implementar o objeto comercial como um servio XML da Web para que os clientes podem usar protocolos padro da Internet para se comunicar com o objeto comercial de qualquer plataforma. Para obter detalhes, consulte Programao na Web com XML Web Services. O componente servio XML da Web nessa explicao passo a passo, ser mantenha as conexes de dados e definio DataSet. Mtodos Servio da Web XML depois sero adicionados para expor o DataSet, que tornar possvel para outros aplicativos para exibir e modificar DataSet. O servio da Web XML ser expor dois mtodos. O primeiro, GetCustomers,. retornar um DataSet a partir do banco de dados O segundo, UpdateCustomers,. ir atualizar o banco de dados com alteraes do usurio Para criar um projeto Servio da Web ASP.NET 1. 2. 3. No menu File, aponte para New ento Web Site para exibir a New Web Site caixa de dilogo. Selecione ASP.NET Web Service no painel Visual Studio Installed Templates. Na caixa Location, digite o nome do servidor Web (no seu computador de desenvolvimento) com o nome do projeto, http://ServerName/CustomersWebService,. e, em seguida clique em OK Dica Como o servidor Web estiver em seu computador, poder usar o nome do servidor LOCALHOST. 4. O CustomersWebService projeto adicionado soluo. Observe que o servio da Web for inicializado no idioma padro que voc escolheu para Visual Studio. No Solution Explorer, clique Service.asmx para selecion-la. Na janela Propriedades, defina a File Name propriedade de Service para CustomersService.

5. 6.

Apostila Visual Studio 2005

469

Nesse componente ser criar uma conexo com o armazenamento de dados e obter uma instncia dos dados usando um DataSet. Criar e configurar uma conexo de banco de dados e um esquema DataSet Do TableAdapter Configuration Wizard ir adicionar um DataSet ao seu aplicativo e depois usar para gerar um tipo TableAdapter especfico tabela Clientes do banco de dados. Para criar um adaptador conexo e dados de banco de dados 1. 2. No menu Website, escolha Add New Item. A Add New Item caixa de dilogo ser aberta. Selecione Dataset e clique em Add DataSet adicionado ao seu projeto, e a TableAdapter Configuration Wizard. for iniciado 3. No TableAdapter Configuration Wizard, clique New Connection para criar sua conexo. A Add Connection caixa de dilogo Abrir, e Microsoft SQL Server PreSelected como o tipo de banco de dados 4. Na caixa Add Connection de dilogo, digite o nome do SQL Server onde o banco de dados Northwind est instalado. Se voc tiver SQL Server no computador local, digite (local). Selecione Use Windows Authentication para as informaes de logon. Observao Se voc no faa ter integrada segurana definida backup em seu sistema, consulte o administrador de rede. 6. 7. Selecione o Northwind banco de dados a partir da lista. Clique Test Connection para validar as informaes fornecidas, e, em seguida, clique OK para estabelecer a conexo. Uma nova conexo de banco de dados criado e adicionado caixa suspensa no TableAdapter Configuration Wizard. Observao Se a conexo de banco de dados falhar, consulte o administrador do banco de dados. 8. 9. Verifique se seu banco de dados est selecionado na caixa suspensa e clique em Next. Clique Next novamente para salvar a seqncia de conexo para o arquivo de configurao.

5.

10. No painel Choose a Command Type, verifique se que Use SQL Statements est selecionado e clique em Next. 11. No painel, tipo SELECT * FROM Customers e Enter a SQL Statement Clique em Next. 12. Na, clique Choose Methods to Generate Finish painel.

Apostila Visual Studio 2005

470

Voc criou uma conexo com o banco de dados, um dataset digitado, e gerado o adaptador de tabela que interage com o banco de dados. 13. No menu File, escolha Save All Voc precisar definir as configuraes de segurana do seu projeto para trabalhar com segurana integrada. feito isso desativando o acesso annimo e ativar a representao. Para configurar a autenticao integrada do Windows para o projeto, voc deve alterar os arquivos de projeto e configurar o projeto usando a Internet Information Services ferramenta. Para configurar a autenticao integrada do Windows 1. Inicie a Internet Information Services ferramenta. Administrative Tools do Control Panel ele pode ser executado a partir de. (Para obter mais informaes sobre como iniciar essa ferramenta, consulte o Windows ajuda documentao). Expanda o n para o servidor. Expanda o Default Web Site n. Clique com o boto direito do mouse no n de CustomersWebService e escolha Properties No menu de atalho. Clique na Directory Security guia. Clique no Edit boto na seo Anonymous access and authentication control. Desmarque a Anonymous Access caixa de seleo. Marque a Integrated Windows authentication caixa de seleo. Agora voc configurou seu diretrio de servio da Web XML. Retornar para o projeto no Visual Studio, clique duas vezes o arquivo web.config no Solution Explorer.

2. 3. 4. 5. 6. 7. 8. 9.

10. Adicionar a seguinte marca na linha aps a <system.web> marca para configurar a segurana integrada para o servio da Web XML. <identity impersonate="true"/> Expor o customersDataTable de seu objeto Business A prxima etapa nessa explicao passo a passo para expor o objeto DataSet voc apenas criado a partir seu objeto comercial. Essa ao tornar DataSet disponveis para aplicativos Windows ou da Web para usar. Adicionar mtodos para o servio da Web XML 1. 2. 3. Partir do Build menu, escolha Build Solution para a criao da soluo. Na Solution Explorer, clique duas vezes Service.vb para abrir o Editor de Cdigo. Adicionar uma linha para o corpo de classe para criar uma nova instncia do adaptador de tabela como mostrado abaixo: Visual Basic Dim myAdapter As New DataSetTableAdapters.CustomersTableAdapter DataSetTableAdapters.CustomersTableAdapter myAdapter = new DataSetTableAdapters.CustomersTableAdapter();

Apostila Visual Studio 2005

471

4.

Adicionar um mtodo denominado GetCustomers para entregar uma DataTable para o cliente. Esse mtodo, mostrado a seguir retorna uma DataTable preenchido com os dados do cliente. Visual Basic <WebMethod()> Public Function GetCustomers() As _ DataSet.CustomersDataTable Return myAdapter.GetData End Function C# [WebMethod] public DataSet.CustomersDataTable GetCustomers() { Return myAdapter.GetData(); }

5.

Adicionar um mtodo denominado UpdateCustomers para propagar alteraes a partir do cliente de volta para o banco de dados. Esse mtodo, mostrado abaixo, apresenta um DataSet.CustomersDataTable parmetro que contm os dados alterados e atualiza o banco de dados atravs do CustomersTableAdapter.Update mtodo. O Update mtodo aceita as alteraes no DataSet. DataSet retornada para o cliente. O cliente ento usar este DataSet retornado para atualizar sua prpria instncia da Customers DataTable. Para obter informaes sobre o Update mtodo e aceitando alteraes em um DataSet, consulte Introduo aos adaptadores de dados. Visual Basic <WebMethod> Public Sub UpdateCustomers(ByVal CustomerChanges _ As DataSet.CustomersDataTable) myAdapter.Update(CustomerChanges) End Sub C# [WebMethod] public void UpdateCustomers(DataSet.CustomersDataTable customerChanges) { myAdapter.Update(customerChanges); } Observao Em um aplicativo de produo, voc deve adicionar a verificao de erros e exceo tratamento para esses mtodos.

6. 7.

Partir do File menu, escolha Save All. Partir do Build menu, escolha Build Solution.

Nas sees anteriores, voc ter criado um objeto comercial da camada intermediria que contm um DataSet acoplado a um banco dados do SQL Server. Voc adicionou cdigo ao meio-nvel CustomersWebService da Web XML servio para obter dados de uma fonte de dados e atualizar a fonte de dados com alteraes. Do GetCustomers o cliente acessar essas funes atravs de e UpdateCustomers mtodos Servio da Web XML. Crie a interface de usurio Depois de criar um objeto comercial da camada intermediria para acesso a dados e expondo-lo como um servio XML da Web, a prxima etapa para criar o cliente interfaces. H dois cenrios nessa explicao passo a passo: um Windows Form tradicionais e uma pgina de formulrios da Web. Ambos so criados, neste

Apostila Visual Studio 2005

472

exemplo como separados projetos na mesma soluo. No necessrio para que voc possa criar as duas interfaces. Interface do Usurio do Windows Uma interface do Windows usa recursos do computador cliente para manipular parte do processamento do aplicativo. Geralmente, uma interface do Windows fornece maior funcionalidade e uma experincia mais rica que uma interface baseada na Web. No menor de uma carga no servidor que com um front-end da Web, porque o servidor no no precisa para executar todos os a lgica do aplicativo. Alm disso, uma interface do Windows pode aproveitar dos recursos disponveis atravs do sistema operacional, incluindo chamadas para o sistema de arquivos e o registro. O aplicativo do Windows, que consiste em um formulrio do Windows, ir conter uma referncia da Web para CustomersWebService. Os dados no banco de dados sero exibidos em um DataGridView controle quando um Load boto no formulrio clicado. Esse comportamento de carregamento implementado por chamar mtodo do servio GetCustomers da Web XML. O DataGridView controle permite direta edio, com alteraes de dados passadas diretamente para o conjunto de dados subjacente. O formulrio tambm ter um boto Salvar. O cdigo para este boto ser chamar mtodo do servio UpdateAuthors da Web XML para salvar as alteraes de volta para o banco de dados. Para criar o aplicativo Windows 1. 2. 3. No menu File, aponte para Add e escolher New Project, para abrir a Add New Project caixa de dilogo. Selecione Windows Application no painel Visual Studio Installed Templates. Nome do Projeto CustomersWinClient e selecione um local para o projeto, seguida, clique em OK. O CustomersWinClient projeto adicionado soluo. Form1 automaticamente adicionado ao projeto e aparece o Windows Forms Designer. 4. Adicionar uma referncia da Web para o projeto Servio da Web ASP.NET criado anteriormente: 1. 2. 3. No Solution Explorer, clique com o CustomersWinClient projeto, e clique Add Web Reference no menu de atalho Clique em Web Services In This Solution e clique em CustomersService. Clique em Add Reference. Agora voc pode criar uma instncia do DataSet DataSet em seu aplicativo. Para adicionar os controles ao formulrio 1. 2. Arraste um DataGridView controle da guia Data da caixa de ferramentas para o formulrio. Do Toolbox arraste um Button controle da guia Common Controls Da para o formulrio. Defina propriedades do boto Name para LoadData e sua Text propriedade para Load.

Apostila Visual Studio 2005

473

3.

Do Toolbox Arraste outro Button controle da guia Common Controls Da para o formulrio. Defina propriedades do boto Name para SaveData e sua Text propriedade para Save. Clique duas vezes no formulrio para abrir o Code Editor. Sob a declarao de classe, criamos uma instncia do localhost.DataSet Como mostrada abaixo: Visual Basic Dim CustomerData As New localhost.DataSet.CustomersDataTable localhost.DataSet.CustomersDataTable CustomerData = new localhost.DataSet.CustomersDataTable();

4. 5.

Para adicionar cdigo para o LoadData e SaveData botes 1. No menu View, clique em Designer. Clique duas vezes no LoadData boto para criar um manipulador de eventos vazio para o Click evento. Mtodos Servio da Web XML so chamados, criando uma instncia da classe do servio primeiro e depois chamar os mtodos do servio. Nesse caso, o GetCustomers mtodo for chamado. DataSet retornado ser mesclado com DataSet CustomerData . A Credentials propriedade do servio da Web XML usada para passar sua identidade para o servio da Web XML, que por sua vez passa-no para o servidor de banco de dados. Adicione o cdigo mostrado abaixo para o mtodo. Observao Se o servio XML da Web no est sendo executado no computador local, voc precisar substituir localhost no exemplo de cdigo com o nome do servidor que executa o servio da Web XML. Visual Basic Private Sub LoadData_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles LoadData.Click Dim ws As New localhost.Service() ws.Credentials = System.Net.CredentialCache.DefaultCredentials CustomerData.Merge(ws.GetCustomers) DataGridView1.DataSource = CustomerData End Sub C# private void LoadData_Click(object sender, System.EventArgs e) { localhost.Service ws = new localhost.Service(); ws.Credentials = System.Net.CredentialCache.DefaultCredentials; CustomerData.Merge(ws.GetCustomers()); DataGridView1.DataSource = CustomerData; } 2. No menu View, clique em Designer. Clique duas vezes no SaveData boto para criar um manipulador de eventos vazio para o Click evento. Observao Em um aplicativo de produo, seria deseja considerar questes de simultaneidade de dados na etapa. Para obter mais informaes, consulte Introduo ao Concurrency de dados no ADO.NET. 3. Adicione o seguinte cdigo para os mtodos:

Apostila Visual Studio 2005

474

Visual Basic Private Sub SaveData_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles SaveData.Click If CustomerData.HasChanges Then Dim ws As New localhost.Service() ws.Credentials = System.Net.CredentialCache.DefaultCredentials ws.UpdateCustomers(CustomerData) End If End Sub C# private void SaveData_Click(object sender, System.EventArgs e) { if (CustomerData.HasChanges()) { localhost.Service ws = new localhost.CustomersService(); ws.Credentials = System.Net.CredentialCache.DefaultCredentials; ws.UpdateCustomers(CustomerData); } } Para executar o aplicativo 1. 2. 3. 4. Partir do File menu, escolha Save All. Selecione CustomersWinClient no Solution Explorer, clique com o boto direito do mouse e escolha Set as StartUp Project. Pressione CTRL + F5 para executar o aplicativo. Uma janela exibida que contm um DataGridView vazia. Clique Load para preencher a tabela, faa algumas alteraes, e seguida, clique Save para salvar as alteraes feitas.

Na seo anterior, voc adicionou um projeto do Windows Forms para a soluo para atuar como uma interface do Windows. Voc conectado o formulrio Windows ao servio da Web XML voc criado a primeira seo e usado DataGridView e Button controles para criar a interface do usurio para carregar e atualizando os dados. Prximas etapas Neste ponto voc pode implantar seu aplicativo ou, se que voc deseja dar a funcionalidade adicional de programa. Algumas das sugestes so fornecidos abaixo.

Implantar a soluo

Voc pode implantar seu aplicativo da Web em um servidor ou criar um projeto de instalao para o aplicativo Windows. Para obter informaes sobre como implantar seu aplicativo Windows consulte Passo a passo: Distribuindo um aplicativo baseado no Windows.

Acesso da Web Internet de suporte

Essa explicao passo a passo trata autenticao para aplicativos da intranet. O aplicativo pode ser acessado pelos usurios atravs da Internet, portanto voc pode precisa uma soluo de autenticao diferente. Para obter mais informaes, consulte Usando a autenticao do IIS com representao ASP.NET. Voc tambm pode investigar criando uma interface da Web para seu aplicativo em combinao com protocolos de acesso da Web.

Considere segurana

Essa explicao passo a passo usa autenticao integrada do Windows para controlar o acesso ao banco de dados. A segurana de banco de dados apenas uma preocupao para aplicativos da Web. Para obter uma discusso de segurana de aplicativo da Web, consulte Prticas recomendadas de segurana bsicas para aplicativos da Web (Visual Studio). 4

Apostila Visual Studio 2005

475

Apostila Visual Studio 2005

476

Vous aimerez peut-être aussi