You are on page 1of 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.

variable

Na sintaxe e no texto, letras em itlico podem


indicar espaos reservados para informaes que
voc fornecer.

[expressionlist]

Na sintaxe, itens dentro de colchetes so


opcionais.

variable

Na sintaxe, itens sublinhados so variveis.

{While | Until}

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.

Apostila Visual Studio 2005

27

ENTER

Letras maisculas so usadas para os nomes de


teclas e seqncias de teclas, como ENTER e
CTRL+R.

ALT + F1

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.

BACKSPACE, HOME

Outras teclas de navegao so chamadas pelos


seus nomes especficos.

SETA PARA BAIXO

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.

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

emento

Localizar tpicos
relacionados
Exibir somente
ttulo de tpicos

escrio
Navega para o fim do tpico onde uma lista de
tpicos que contm informaes relacionadas ao
tpico atual aparece.

Recolher
tudo

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

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.

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

ente

Usar uma palavra-chave especfica e aprender

Concluso de instruo do editor

Apostila Visual Studio 2005

29

sobre sua sintaxe

Pesquisador de objetos
Referncia da linguagem (F1)
ndice
Pesquisa
Sumrio

Localizar uma palavra-chave que fornece uma


certa funcionalidade

Concluso de instruo do editor


Referncia da linguagem
Exemplos

Ler sobre um editor ao editar um documento

Referncia da interface de usurio


(Shift + F1)

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

ente

Criar algo novo

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

ente

Uma tecnologia especfica e seus usos

Tpicos O que h de novo


Janela de ndice
Janela de pesquisa
Janela de Ajuda Dinmica
Exemplos

Tecnologias existentes, o que for novo e o que foi


alterado.

Tpicos O que h de novo


Janela de Ajuda Dinmica
Janela de ndice
Janela de pesquisa
Janela de contedos

Modificando e atualizando esforos de


desenvolvimento existentes

Janela de Ajuda Dinmica


Janela de ndice

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

Informaes relacionadas ao tpico aberto no


momento

Links
Janela de contedos
Janela de ndice
Janela de pesquisa

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

escrio

NET Framework

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.

Enterprise Severs

Inclui Documentao do Exchange Server, Biztalk Server,


Commerce Server e do SQL Server, entre outros.

Desenvolvimento
Office

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.

Platform SDK

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.

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.

Apostila Visual Studio 2005

32

Team Explorer

Inclui a documentao principal do Visual Studio Team


System mais Microsoft Document Explorer Help.

Visual Basic

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.

Visual C#

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.

Visual C++

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#.

Visual J#

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

Visual Studio Team


System

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.

Desenvolvimento
Web (.NET)

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

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

escrio

Visual Basic Express

Inclui a documentao principal do Visual Basic alm da


documentao do .NET Framework SDK.

Visual C# Express

Inclui a documentao principal do Visual C# alm da


documentao do .NET Framework SDK.

Apostila Visual Studio 2005

33

Visual Express J#

Inclui a documentao principal Visual J# alm da


documentao do .NET Framework SDK.

Visual C++ Express

Inclui a documentao principal do Visual C++ alm da


documentao do .NET Framework SDK.

Visual Web
Developer Express

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

escrio

Ajuda

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.

Kits para
Iniciantes

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.

Itens de
Modelos

Inclui apenas itens de modelos.


Observao
Opes adicionais para linguagens e tecnologia podem ser
selecionadas com base nas configuraes voc estiver usando.

Trechos de
cdigo

Inclui apenas trechos de cdigo.


Observao
Opes adicionais para linguagens e tecnologia podem ser
selecionadas com base nas configuraes que voc estiver usando.

Exemplos

Inclui apenas exemplos.


Observao
Opes adicionais para linguagens e tecnologia podem ser
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.

Unfiltered

Nenhum filtro aplicado.

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

Executar tarefas de gerenciamento de arquivo comuns

Gerenciar solues,
projetos, e Arquivos

Solues e estruturas de diretrio

HOW TO: criar pastas


para solues

Explorer soluo no ambiente de desenvolvimento


integrados (IDE)

Explorer soluo

Apostila Visual Studio 2005

38

Gerenciando mltiplos projetos em uma soluo

Solues multi-Project

Itens que so referenciadas por vrios projetos e


includas em compilaes soluo Project-Independent

Itens soluo

Usurio Solution-related elementos da interface em o IDE Solues, interface de


usurio elementos
Trabalhar fora projetos e solues

Arquivos variados

Desenvolvendo e gerenciando scripts Windows Scripting

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.

Arquivos variados

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.

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.

Itens de soluo

Realizando tarefas de gerenciamento de arquivo.

Gerenciando solues,
projetos, e arquivos

Introduo ao conceito de soluo.

Solues como
continers

Viso geral conceitual de projetos.

Projetos como
continers

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

IDTemperatureTextbox
Text: (vazio)

utton

IDConvertButton
Text: Convert

bel

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

Copy Code

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

C#

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

onfiguraes de propriedade

TextBox

= IDtextPrincipal
= TextPrincipal

TextBox

= IDtextTerm
= TextTerm

TextBox

= IDtextRate
= TextRate

Command

= 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

onfiguraes de propriedade

Label

= IDlabeleanDetails
= TextLoan Details

Label

= IDlabelPayment
= TextPayment

Command

= 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

Copy Code

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

C#

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

arquivos .compiled, que correspondem s pginas.

arquivos .dll, que contm o cdigo executvel do site, como o arquivo de


classe que voc criou.
o

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

Application (Aplicativo)

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#).

Build (Compilar)

Altera o local em que o assembly compilado

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#).

Debug (Depurar)

Especifica os argumentos de linha de comando a


executar sob o depurador, e outras configuraes. Para
mais informaes, Pgina Depurar, Designer de
Projeto.

Resources (Recursos)

Adiciona seqncias, cones, imagens ou outros tipos


de arquivos no seu projeto como recursos. Para mais
informaes, Pgina Recursos, Designer de Projeto.

Settings (Configuraes)

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.

Reference Paths
(Caminhos de Referncia)

Especifica o caminho onde esto localizados assemblies


referenciados no seu projeto. Para mais informaes,
Pgina Caminhos de Referncia, Designer de Projeto
(C#, J#).

Signing (Assinatura)

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

Security (Segurana)

Especifica configuraes de segurana que seu


aplicativo requer para executar. Para mais
informaes, Pgina Segurana, Designer de Projeto.

Publish (Publicar)

Especifica opes para distribuir seu aplicativo para um


site, Servidor FTP, ou arquivo local. Para mais
informaes, Pgina Publicar, Designer de Projeto.

Code Analysis (Anlise


de Cdigo - somente Visual
Studio Team System)

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.

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)

ara inserir trecho locais


lidos

escrio

#IF

Cria uma #IF diretiva e uma #endif


diretiva.

Qualquer lugar.

#Region

Cria uma #Region diretiva e uma


#endregion diretiva.

Qualquer lugar.

Cria um destruidor para a classe que


contm.

Em uma classe.

attribute

Cria uma declarao de uma classe que


deriva de Attribute.

Dentro de um
namespace (incluindo o
namespace global), uma
classe, ou uma
estrutura.

Marcada

Cria um Marcada bloco.

Dentro de um mtodo,
um indexador, um
acessador Propriedade,
ou um assessor de
evento.

Classe

Cria uma declarao de classe.

Dentro de um
namespace (incluindo o
namespace global), uma
classe, ou uma
estrutura.

Construtor

Cria um construtor para a classe que


contm.

Em uma classe.

cW

Cria uma chamada para WriteLine.

Dentro de um mtodo,
um indexador, um
acessador Propriedade,
ou um assessor de
evento.

Fazer

Cria um Fazer pouco loop.

Dentro de um mtodo,
um indexador, um
acessador Propriedade,
ou um assessor de
evento.

Apostila Visual Studio 2005

124

Pessoa

Cria um Pessoa bloco.

Dentro de um mtodo,
um indexador, um
acessador Propriedade,
ou um assessor de
evento.

Enum

Cria uma Enum Declarao.

Dentro de um
namespace (incluindo o
namespace global), uma
classe, ou uma
estrutura.

igual a

Cria uma declarao de mtodo que


substitui o Equals mtodo definido na
classe Object.

Dentro de uma classe


ou uma estrutura.

Exceo

Cria uma declarao de uma classe que


deriva de uma exceo (Exception por
padro.)

Dentro de um
namespace (incluindo o
namespace global), uma
classe, ou uma
estrutura.

Para

Cria um Para loop.

Dentro de um mtodo,
um indexador, um
acessador Propriedade,
ou um assessor de
evento.

foreach

Cria um foreach loop.

Dentro de um mtodo,
um indexador, um
acessador Propriedade,
ou um assessor de
evento.

forr

Cria um Para loop que decrements a


varivel loop aps cada iterao.

Dentro de um mtodo,
um indexador, um
acessador Propriedade,
ou um assessor de
evento.

Se

Cria um Se bloco.

Dentro de um mtodo,
um indexador, um
acessador Propriedade,
ou um assessor de
evento.

Indexador

Cria uma declarao indexador.

Dentro de uma classe


ou uma estrutura.

Interface

Cria uma Interface Declarao.

Dentro de um
namespace (incluindo o
namespace global), uma
classe, ou uma
estrutura.

Chamar

Cria um bloco com segurana que invoca

Dentro de um mtodo,

Apostila Visual Studio 2005

125

um evento.

um indexador, um
acessador Propriedade,
ou um assessor de
evento.

iterador

Cria um iterador.

Dentro de uma classe


ou uma estrutura.

iterindex

Cria um par iterador e indexador "


nomeado ", utilizando uma classe
aninhada.

Dentro de uma classe


ou uma estrutura.

Bloqueio

Cria um Bloqueio bloco.

Dentro de um mtodo,
um indexador, um
acessador Propriedade,
ou um assessor de
evento.

mbox

Cria uma chamada para


System.Windows.Forms.MessageBox.Show.
Voc talvez precise adicionar uma
referncia ao System.Windows.Forms.dll.

Dentro de um mtodo,
um indexador, um
acessador Propriedade,
ou um assessor de
evento.

Namespace

Cria uma Namespace Declarao.

No namespace
(incluindo o namespace
global).

prop

Cria uma declarao de propriedade e um


campo fazendo.

Dentro de uma classe


ou uma estrutura.

propg

Cria uma declarao de propriedade com


apenas um acessador " GET " e um campo
fazendo.

Dentro de uma classe


ou uma estrutura.

Sim

Cria uma Esttico Int declarao de


mtodo principal.

Dentro de uma classe


ou uma estrutura.

struct

Cria uma struct Declarao.

Dentro de um
namespace (incluindo o
namespace global), uma
classe, ou uma
estrutura.

svm

Cria uma Esttico Void declarao de


mtodo principal.

Dentro de uma classe


ou uma estrutura.

Alternar

Cria um Alternar bloco.

Dentro de um mtodo,
um indexador, um
acessador Propriedade,
ou um assessor de
evento.

Tente

Cria um Catch try- bloco.

Dentro de um mtodo,
um indexador, um
acessador Propriedade,
ou um assessor de

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.

desmarcada

Cria um desmarcada bloco.

Dentro de um mtodo,
um indexador, um
acessador Propriedade,
ou um assessor de
evento.

No seguro

Cria um No seguro bloco.

Dentro de um mtodo,
um indexador, um
acessador Propriedade,
ou um assessor de
evento.

Usando

Cria uma Usando diretiva.

No namespace
(incluindo o namespace
global).

Tempo

Cria um Tempo loop.

Dentro de um mtodo,
um indexador, um
acessador Propriedade,
ou um assessor de
evento.

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:
""

Uma seqncia

@" "

Uma seqncia verbatim

#if, #endif

Pr-processamento diretivas para sees condicionais

#region, #endregion

Pr-processamento diretivas para sees condicionais

Apostila Visual Studio 2005

131

case, break

Palavras-chave instruo controle

default, break

Palavras-chave instruo controle

for, break

Palavras-chave expresso avaliao

for, continue

Palavras-chave expresso avaliao

foreach, break

Palavras-chave expresso avaliao

foreach, continue

Palavras-chave expresso avaliao

while, break

Palavras-chave expresso avaliao

while, continue

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

xibido por
adro?

bservaes

Class View

No

Janela de
Comando

No

Dynamic Help
Window

No

Pressionar a tecla F1 no exibe a janela da


Ajuda dinmica.

Pesquisador de
objetos

No

Janela Output

No

Solution Explorer

Sim

Explorer de soluo aparece encaixado no lado


direito de IDE.

Start Page

Sim, quando voc


inicia o IDE

A pgina inicial Exibe artigos na alimentao


RSS MSDN no Visual C#.

Lista de tarefas
(Visual Studio)

No

Toolbox

Sim, quando voc


cria um aplicativo
do Windows
Forms

Exibir de classe est disponvel no menu


View.

Filtragem est ativada.

No exibida membros herdados por


padro.

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.

variable

Na sintaxe e no texto, letras em itlico podem


indicar espaos reservados para informaes que
voc fornecer.

[expressionlist]

Na sintaxe, itens dentro de colchetes so


opcionais.

variable

Na sintaxe, itens sublinhados so variveis.

{While | Until}

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.

ENTER

Letras maisculas so usadas para os nomes de


teclas e seqncias de teclas, como ENTER e
CTRL+R.

ALT + F1

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.

BACKSPACE, HOME

Outras teclas de navegao so chamadas pelos


seus nomes especficos.

SETA PARA BAIXO

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.

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

emento

escrio

Localizar tpicos
relacionados
Exibir somente
ttulo de tpicos

Navega para o fim do tpico onde uma lista de


tpicos que contm informaes relacionadas ao
tpico atual aparece.
Recolher
tudo

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

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.

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

ente

Usar uma palavra-chave especfica e aprender


sobre sua sintaxe

Concluso de instruo do editor


Pesquisador de objetos
Referncia da linguagem (F1)
ndice
Pesquisa
Sumrio

Localizar uma palavra-chave que fornece uma


certa funcionalidade

Concluso de instruo do editor


Referncia da linguagem
Exemplos

Ler sobre um editor ao editar um documento

Referncia da interface de usurio


(Shift + F1)

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

ente

Criar algo novo

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

ente

Uma tecnologia especfica e seus usos

Tpicos O que h de novo


Janela de ndice
Janela de pesquisa
Janela de Ajuda Dinmica
Exemplos

Tecnologias existentes, o que for novo e o que foi


alterado.

Tpicos O que h de novo


Janela de Ajuda Dinmica
Janela de ndice
Janela de pesquisa
Janela de contedos

Modificando e atualizando esforos de


desenvolvimento existentes

Janela de Ajuda Dinmica


Janela de ndice
Janela de pesquisa
Exemplos

Aprendendo a programar usando o Visual Studio

Exemplos de referncia da
linguagem
Exemplos
Janela de contedos

Informaes relacionadas ao tpico aberto no


momento

Links
Janela de contedos
Janela de ndice
Janela de pesquisa

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

te

Francs

http://msdn.microsoft.com/Library/fre/

Italiano

http://msdn.microsoft.com/Library/ITA/

Alemo

http://msdn.microsoft.com/Library/deu/

Espanhol

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

escrio

NET Framework

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.

Enterprise Severs

Inclui Documentao do Exchange Server, Biztalk Server,


Commerce Server e do SQL Server, entre outros.

Desenvolvimento
Office

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.

Platform SDK

Inclui documentao sobre IIS, COM, DirectX, ADO, MSDE,

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.

Team Explorer

Inclui a documentao principal do Visual Studio Team


System mais Microsoft Document Explorer Help.

Visual Basic

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.

Visual C#

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.

Visual C++

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#.

Visual J#

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

Visual Studio Team


System

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.

Desenvolvimento
Web (.NET)

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

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

escrio

Visual Basic Express

Inclui a documentao principal do Visual Basic alm da


documentao do .NET Framework SDK.

Visual C# Express

Inclui a documentao principal do Visual C# alm da


documentao do .NET Framework SDK.

Visual Express J#

Inclui a documentao principal Visual J# alm da


documentao do .NET Framework SDK.

Visual C++ Express

Inclui a documentao principal do Visual C++ alm da


documentao do .NET Framework SDK.

Visual Web
Developer Express

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

escrio

Ajuda

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.

Kits para
Iniciantes

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.

Itens de
Modelos

Inclui apenas itens de modelos.


Observao
Opes adicionais para linguagens e tecnologia podem ser
selecionadas com base nas configuraes voc estiver usando.

Trechos de
cdigo

Inclui apenas trechos de cdigo.


Observao
Opes adicionais para linguagens e tecnologia podem ser
selecionadas com base nas configuraes que voc estiver usando.

Exemplos

Inclui apenas exemplos.


Observao
Opes adicionais para linguagens e tecnologia podem ser

Apostila Visual Studio 2005

143

selecionadas com base nas configuraes que voc estiver usando.


Controles

Unfiltered

Inclui somente controles.


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

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

ickOnce indows Installer

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

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

alor

bservaes

IniFile

URLShortcut1

Chave primria

FileName

My App.url

O nome do arquivo .url. A parte principal desse


nome o que o usurio ver. Nesse caso, o
atalho exibir "My App".

DirPropert MyShortcutFolder
y

O nome da chave primria de um diretrio


definido na instalao. Identifica o local onde o
atalho ser criado.

Section

InternetShortcut

A seo principal que est sendo gravada no


arquivo ini.

Key

URL

Poro principal do par chave/valor.

Value

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

alor

bservaes

Action

Um valor 0 indica que o valor deve ser criado ou


atualizado se j existir.

Compone
nt

MyComponent

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

X
X

Download de arquivos em lotes

Instalaes por transao

Desempenho otimizado

Windows 2000 ou posterior necessrio

(**)

Integrao com o shell do Windows

Bom controle sobre o processo de atualizao

Trabalhar offline

(*)

API para trabalhar offline e controlar o processo de download

Instalao automtica de pacotes opcionais

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

escripo

abilitar depurao ASP

Habilita a depurao de pginas Ative Server (ASP). Deve


especificar uma direo URL em Direo URL de inicio.

abilitar depurao
SP.NET

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.

abilitar depurao sem


dministrar

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++.

abilitar depurao de
QL Server

Permite a depurao de procedimentos SQL.

odo de depurao

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.

plicao de inicio

Especifica ou comando para iniciar o programa que


deseja depurar.

reo URL de inicio

Especifica a ubicao da aplicao Web que deseja


depurar.

gina de inicio

Especifica a pgina Web donde deseja iniciar a


depurao.

rgumentos da lnea de
omandos

Especifica os argumentos do comando especificado


arriba.

rectorio de trabajo

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.

sar siempre Internet


plorer

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.

abilitar depurao
mota

Permite a depurao remota no equipe especificado em


Equipe de depurao remoto.

quipe de depurao
moto

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.

Pasta Propriedades de configurao (categora Gerar)

Apostila Visual Studio 2005

194

onfigurao

escripo

onstantes de
ompilao condicional

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.

timizar cdigo

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.

erar informao de
epurao

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).

ota de acesso dos


sultados

Normalmente se establece em bin\Debug para a


depurao.

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.

No men Ferramentas, selecione Opes.

2.

No quadro de dilogo Opes, selecione a pasta Depurao.

3.

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

Escolha

Visual Basic

Common Language Runtime

C#

Common Language Runtime

C/C++

Cdigo nativo

Extenses administradas para


C++

Common Language Runtime

Apostila Visual Studio 2005

212

ASP Script

Sequncias de comandos

ASP.NET Script

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,

Apostila Visual Studio 2005

myapp.exe.

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

Para ver

Utilizar a janela Automtico

Variaveis na instruo atual e na

Apostila Visual Studio 2005

214

anterior
Utilizar a janela Variaveis locais

Variaveis locais

Utilizar a janela This (Me)

Utilizar o quadro de dilogo Inspeo


rpida

Utilizar a janela Inspeo

Utilizar a janela Registros

Contenido de registros

Utilizar a janela Memoria

Contenido da memoria

Utilizar a janela PiA de chamadas

Utilizar a janela Desensamblador

Cdigo ensamblador gerado por ou


compilador do programa

Utilizar a janela Subprocessos

Informao sobre os subprocessos


(sequncias consecutivas de execuo)
criados por o programa

Utilizar a janela Mdulos

Mdulos (arquivos DLL e EXE) utilizados


por o programa

Documentos em execuo (Janela)

Una lista de documentos, cdigo de


sequncias de comandos, cargados no
processo atual.

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.
Variaveis
Contenido de registros
Qualquer expreso vlida
reconocida por o depurador.

nomes de funes da piA de


chamadas

Tipos de parmetros

Valores de parmetros

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.
A compilao final traz performance melhor que a obtida em ambientes

interpretados.

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)

Como dar continuidade a


um projeto (project)?

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.

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

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

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

equisito
Processador de 600 MHz
Recomendvel: processador

1 gigahertz (GHz)

Memria RAM

256 MB para as ferramentas de design, 192 MB para o Visual


Studio Tools for Office Runtime
Recomendvel: 512 MB 1

Espao de disco
rgido disponvel

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

Sistema operacional

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

Unidade de CD-ROM
ou DVD-ROM

Necessrio

Vdeo

800 x 600, 256 cores


1024 X 768, High Color 16-bits recomendados:

Mouse

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.

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

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

ste tpico

Automatizar Excel.

Tarefas do Excel

Automatizar o Word.

Tarefas do Word

Automatizar o Outlook.

Tarefas do Outlook

Usando eventos de controle.

Controles em documentos do Office

Criando menus e barras de


ferramentas Office.

Viso geral de personalizao UI do Office

Trabalhar com painis aes.

Viso geral painel Aes

Usando Windows Forms em sua


soluo.

Coleta de dados usando um formulrio do


Windows Walkthrough:

Extrair dados de uma fonte de dados


em seu documento.

Conectando-se a dados

Exemplos de soluo Office voc


pode abrir e executar.

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

anaged Extensions do cdigo

Usa cdigo que est conectado ao e


persistente com o documento.

Cdigo armazenado separadamente do


documento.

Funciona com os modelos de objeto do


Office e Visual Basic para Aplicativos
APIs.

Funciona com os modelos de objeto do


Office e as .NET Framework APIs.

Projetado para gravao de macros e


uma experincia do desenvolvedor

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).

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).

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

Tem limitaes para a empresa,


especialmente nas reas de segurana
e implantao.

Projetado para ser usado na empresa.

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

< DriveLetter>:\

\\< Server>\<Share>

No use esses caracteres no local:


o

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 (%)

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

< DriveLetter>:\

\\< Server>\<Share>

No use esses caracteres no local:


o

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 (%)

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
O nome do mtodo deve corresponder ao nome de classe. Por exemplo, na classe

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.

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

odelos

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.

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

Descrio

Sequential
Workflow Console

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

Descrio

Application

aplicativo host de teste de console.

Sequential
Workflow Library

Cria um projeto para a construo de um fluxo de trabalho


seqencial como uma biblioteca.

Workflow Activity
Library

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.

State Machine
Console Application

Cria um projeto para a construo de um fluxo de trabalho de


mquina de estado e um aplicativo host de console.

State Machine
Workflow Library

Cria um projeto para a construo de um fluxo de trabalho de


mquina de estado como uma biblioteca.

Empty Workflow

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

Descrio

Code

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.

Compensate

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.

ConditionedActivityGroup
(CAG)

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.

Delay

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.

EventDriven

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.

EventSink

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.

ExceptionHandler

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.

IfElse

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".

InvokeMethod

Permite que o fluxo de trabalho invoque um mtodo em


uma interface para enviar mensagens do fluxo de

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.

InvokeWorkflow

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).

Listen

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.

Parallel

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.

Policy

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.

Replicator

Permite que o fluxo de trabalho crie um nmero


arbitrrio de instncias de uma determinada atividade e
as execute em seqncia ou simultaneamente.

SelectData

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.

Sequence

Permite coordenar a execuo serial de um conjunto de


atividades filho. A seqncia concluda ao final da
ltima atividade filho.

SetState

Permite que o fluxo de trabalho de mquina de estado


especifique uma transio para um novo estado.

Apostila Visual Studio 2005

313

Atividade

Descrio

State

Representa um estado em um fluxo de trabalho de


mquina de estado.

StateInitialization

Usada dentro de uma atividade State como um


recipiente para as atividades filho que so executadas
quando h uma transio para o estado.

Suspend

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.

Terminate

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.

Throw

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.

TransactionalContext

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.

UpdateData

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.

WaitForData

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.

Apostila Visual Studio 2005

314

Atividade

Descrio

WaitForQuery

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.

WebServiceReceive

Permite que um fluxo de trabalho que exposto como


um servio da Web receba, ele mesmo, uma solicitao
de servio da Web.

WebServiceResponse

Permite que um fluxo de trabalho que exposto como


um servio da Web responda, ele mesmo, a uma
solicitao de servio da Web.

While

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.

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

WaitingForOrderState OrderCreated

OrderOpenState

OrderOpenState

OrderUpdated
OrderProcessed

OrderOpenState
OrderProcessedState

OrderProcessedState

OrderUpdated
OrderCanceled
OrderShipped

OrderOpenState
Atividade Terminate
OrderCompletedState

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 In fo
(S y s te m .IO )

D ire c to ry In fo
(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 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

Classe base que representa qualquer objeto no


sistema de arquivos

FileInfo e File

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

Apostila Visual Studio 2005

quando

um

mtodo

no

348

suportado invocado ou quando se


tenta executar um read, seek ou
write num stream que no suporta a
funcionalidade invocada.
ArgumentException

Ocorre quando um dos argumentos


fornecidos invalido.

DirectoryNoFoundException

Ocorre quando parte de um arquivo


ou diretrio no pode ser encontrado

FileNotFoundException

Ocorre quando se tenta fazer um


acesso a um arquivo que no existe
no disco

PathTooLongException

Ocorre quando o nome do caminho


ou arquivo maior que o valor
mximo definido pelo sistema.

SecurityException

Ocorre quando o chamador no tem


o devido privilgio

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:

Create()

Cria um diretrio ou um arquivo vazio para o


caminho dado.

Delete()

Deleta um diretrio ou arquivo.

MoveTo()

Move e/ou renomeia um arquivo ou diretrio

CopyTo()

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.

GetDirectories()

Retorna os nomes dos diretrios no diretrio


especificado.

GetFiles()

Retorna os nomes dos arquivos contidos no


diretrio especificado.

GetFileSystemInfos()

Retorna uma lista de objetos do tipo


FileSystemInfo (somente para DirectoryInfo)

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

Altera a extenso do caminho na string

Combine

Combina duas strings com nomes de caminhos

GetDirectoryName

Retorna informaes sobre o diretrio para a


string especificada

GetFileName

Retorna informaes sobre o arquivo para a


string especificada

GetFullPath

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:

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.

No menu File, clique em New, e clique em Project


A New Project caixa de dilogo ser exibida.

2.

No painel tipos Project, clique em Visual C++ Projects, e em Painel


Modelos, clique no MFC Application cone.

3.

Na caixa Name, digite MyProject.

4.

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.

No MFC Application Wizard, selecione Database Support.

2.

Selecione a Database View with File Support opo.

3.

Clique no Data Source boto.

4.

Na caixa OLE DB Provider(s) de listagem, clique no Microsoft OLE DB


Provider for SQL Server item e clique em Next.

5.

Digite ou selecione um nome de servidor existente.

6.

Selecione Use Windows NT Integrated Security.

7.

Selecione o pubs banco de dados.

8.

Clique no OK boto para estabelecer a conexo.

9.

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.

Na caixa Variable name, digite m_DataList e clique em Finish.

5.

Arraste um Button controle para o formulrio padro. Na janela


Propriedades, alterar a Caption caixa para Control Host.

6.

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.

No menu Build, clique em Build Solution.

4.

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.

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.

5.

Clique Finish para aceitar as configuraes padro e criar o projeto.

6.

Clique com o CustomCtl projeto.

7.

No menu de atalho, clique em Add, e clique em Add Class


A Add Class caixa de dilogo ser exibida.

8.

Clique duas vezes no ATL Control item.


O ATL Control Wizard aparece.

9.

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.

No modo de classe, expanda o CustomCtl n.


Clique com o boto direito do mouse o interface de eventos para o controle
personalizado (_IMyCtlEvents).

3.

No menu de atalho, clique em Add, e clique em Add Method

4.

Insira os seguintes valores usando o Adicionar Assistente mtodo:

Return typevoid

Method nameClick

5.

Clique Finish para criar o Click evento.

6.

No modo de classe, selecione a classe de controle (CMyCtl).

7.
8.

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;

9.

No menu Build, clique em Build Solution.

Depois que a soluo cria com xito, uma caixa de dilogo simples pode hospedar o
controle.
Para hospedar o controle
1.

No modo de exibio do recurso, clique com o boto direito do mouse a


MyProject Soluo.

2.

No menu de atalho, clique em Add, e clique em Add Resource

3.

Clique no Dialog item e clique em New.

4.

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.

No Assistente para classe MFC, insira os seguintes valores:

Class name CMyCtlDlg

Base classCDialog

6.

Clique em Finish.

7.

Clique com o boto direito do mouse na IDD_DIALOG1 caixa de dilogo e


selecione Insert ActiveX Control no menu de atalho.

8.

Na caixa de dilogo, selecione CMyCtl Object e Insert ActiveX Control


clique OK para adicionar o controle.

9.

Selecione o controle ActiveX em um modelo de dilogo.

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).

2.

Clique duas vezes no Control Host boto, adicionada anteriormente.

3.

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.

No menu Build, clique em Build Solution.

6.

No menu Debug, clique em Start Without Debugging.

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.

No menu de atalho, clique em Add, e clique em Add Resource

3.

Clique no Dialog item e clique New para criar uma nova caixa de dilogo.

4.

Remover esses so implementados em HTML nas etapas subseqentes. e


Cancel Botes do modelo de dilogo; o OK

5.

Clique com o boto direito do mouse o IDD_DIALOG2 formulrio Caixa de


dilogo e selecione Add Class

6.

Insira os seguintes valores:

Class nameCMyDhtmlDlg

Base classCDHtmlDialog

7.

Clique em Finish.

8.

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.

9.

Substituir o texto existente (que deve ser semelhante TODO: Place


controls here). com This is the text content of my DHTML dialog
box

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).

2.

Clique duas vezes no DHTML Dialog boto, adicionada anteriormente.

3.

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.

No menu Build, clique em Build Solution.

6.

No menu Debug, clique em Start Without Debugging.

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.

No menu File, clique em New, e clique em Project


A New Project caixa de dilogo ser exibida.

2.

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

3.

Na caixa Location, digite http://localhost/MyService.

4.

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.

Clique no modo de exibio de recursos, com o MyProject projeto.

2.

No menu de atalho, clique em Add, e clique em Add Resource

Apostila Visual Studio 2005

363

3.

Clique duas vezes no Dialog item.

4.

Clique duas vezes no IDD_DIALOG3 formulrio Caixa de dilogo.


O assistente classe MFC aparece.

5.

Insira os seguintes valores:

Class nameCMyValidateDlg

Base classCDialog

6.

Clique em Finish.

Agora que a caixa dilogo foi criada, adicionar controles para fornecer um servio
de validao para o usurio.
Para validar o usurio
1.

Arraste dois Edit control controles para o IDD_DIALOG3 formulrio Caixa de


dilogo.

2.

Clique com o boto direito do mouse na primeira Edit control.

3.

No menu de atalho, selecione Add Variable.

4.

Na caixa Variable Name, digite m_Name.

5.

No menu Category drop-down, selecione Value.

6.

Clique em Finish.

7.

Clique com o boto direito do mouse no segundo Edit control Controle.

8.

Adicionar outra varivel (chamada m_Password de categoria Value).

9.

Clique duas vezes no OK boto no formulrio Caixa de dilogo.

10. Adicione o seguinte cdigo para a funo do manipulador:


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.

No modo de classe, expanda o CMyProjectApp n.

2.

Clique duas vezes a InitInstance funo para editar o corpo funo.

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.

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.

3.
4.

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.

5.

Clique em Next duas vezes.

6.

Selecione os seguintes grupos de sada:

Sada de MyProject principal

Sada de CustomCtl principal

7.

Clique em Next duas vezes.

8.

Clique em Finish

9.

No menu Build, clique em Build MySetup.

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

Descrio

Passo-a-passo: Criando uma pgina da


Web bsica no Visual Web Developer

Uma introduo ao criar pginas da Web ASP.NET no


Visual Studio.

Passo-a-passo: Acesso a dados bsico em


pginas da Web

Uma introduo ao exibir dados em uma pgina da Web


usando os controles da fonte de dados e o GridView
controle.

Passo a passo: Ligao de dados em um


objeto corporativo personalizado

Uma introduo ao criar um componente de camada


intermediria que torna dados disponvel para pginas da
Web.

Passo-a-passo: Depurao de Pginas da


Web no Visual Web Developer

Uma introduo ao usar o depurador Visual Studio com


pginas da Web.

Passo-a-passo: Criando e Usando Pginas


Mestras do ASP.NET no Visual Web
Developer

Uma introduo ao usar pginas mestras ASP.NET para


definir um layout geral para pginas da Web.

Passo-a-passo: Personalizando um site


usando temas no Visual Studio

Uma introduo ao definir um aparncia consistente para


suas pginas da Web.

Passo-a-passo: Criando uma pgina do


Web Parts no Visual Web Developer

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.

Passo a passo: Criando um site com


associao e logon de usurio (Visual
Studio)

Uma introduo a adicionar segurana logon em um site da


Web.

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.

Abra o Visual Web Developer.

2.

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.

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.

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.

2.

Na Solution Explorer, clique com o boto direito do mouse o site Web (por
exemplo, C:\BasicWebSite), e clique em Add New Item.

3.

No Visual Studio installed templates, clique em Web Form.

4.

Na caixa Name, digite FirstWebPage.

5.

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.

Clique na guia Design para alternar para modo Design.

2.

Pressione SHIFT+ENTER algumas vezes para criar um pouco de espao.

3.

No TextBox, a partir do grupo Standard, arraste trs controles para a


pgina: um controle Label, um controle Toolbox e um controle Label.

4.

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.

Alternar para o modo Design.

2.

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.

Na lista Select a scheme, selecione Simple e em seguida, clique em OK

5.

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.

Pressione CTRL+F5 para executar a pgina no navegador.

2.

Clique em uma data no calendrio.


A data que voc clicou exibida no controle Label.

3.

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.

Abra o Visual Web Developer.

2.

No menu File, clique em New Web Site.


A caixa de dilogo New Web Site aparece.

3.
4.

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.

No Visual Web Developer, alterne para o modo de exibio Design.

2.

Da pasta Data em Toolbox, arraste um controle GridView para a pgina.

3.

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.

4.

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.

9.

Na caixa Server name , digite o nome do SQL Server que voc deseja usar.

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.

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.

3.

No menu GridView Tasks, selecione Enable Paging check box.


Um rodap adicionado ao controle GridView com links de nmero pgina.

4.
5.

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.

Em Propriedades, para o controle TextBox, definida ID como textCity.

3.

Se voc desejar, digite City ou texto semelhante antes da caixa de texto


atuar como uma legenda.

4.

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.

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.

3.

Clique em Next.
O assistente exibe o comando SQL que est atualmente configurado para o
controle SqlDataSource.

Apostila Visual Studio 2005

383

4.

Clique em WHERE.
Aparecer a pgina Add WHERE Clause.

5.

Na lista Column, clique em City.

6.

Na lista Operator, clique em =.

7.

Na lista Source, clique em Control.

8.

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.

Pressione CTRL+F5 para executar a pgina.

2.

Na o caixa de texto, digite London, e clique em Submit.


Uma lista de clientes da City of London aparecer no controle GridView.

3.

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.

Abra o Visual Web Developer.

2.

No menu File, clique em New Web Site.


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 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.

Em Visual Studio installed templates, clique em XML file.

3.

Na caixa Name, digite Authors.xml.

4.

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.

A caixa de dilogo Add New Item aparece.

3.

Em Visual Studio installed templates, clique em Class.

4.

Na caixa Language, clique na linguagem de programao que voc preferir.

5.

Na caixa Name, digite BusinessObject.

6.

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.

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.

5.

Clique com o boto direito do mouse no controle ObjectDataSource e em


seguida, clique na marca inteligente para exibir o Menu ObjectDataSource
Tasks.

6.

No menu ObjectDataSource Tasks, clique em Configure Data Source.


O assistente Configure Data Source aparece.

7.

Na lista Choose your business object, clique PubsClasses.AuthorClass.

8.

Clique em Next.

9.

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.

No Toolbox, a partir da pasta Data, arraste um controle GridView para a


pgina.

2.

Clique com o boto direito do mouse no controle GridView e clique na marca


inteligente se o Menu Common GridView Tasks no estiver aparecendo.

3.

No menu Common GridView Tasks, na caixa Choose Data Source, clique


em AuthorsObjectDataSource.

4.

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

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.

Alterne para o arquivo BusinessObject.

2.

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.

Alterne para ou abra a pgina Default.aspx.

2.

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.

Pressione CTRL+F5 para executar a pgina Default.aspx.

2.

No controle DetailsView, clique no boto New.


O controle reexibido com caixas de texto.

3.

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.

Abra o Visual Web Developer.

2.

No menu File, clque em New Web Site.


A caixa de dilogo New Web Site aparecer.

3.

Em Visual Studio installed templates, clique em ASP.NET Web Site.

4.

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.

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.

3.

Em Visual Studio installed templates, escolha Web Form.

4.

Na caixa Name, digite DebugPage.aspx.

5.

A partir da lista Language, escolha a linguagem de programao que voc


preferir usar.

6.

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

Propriedades

Label

ID: CaptionLabel
Text: (empty)

TextBox

ID: NumberTextBox
Text: (empty)

Button

ID: SquareButton

Apostila Visual Studio 2005

393

Text: Square
ID: ResultLabel
Text: (empty)

Label
Observao

O layout da pgina para esta explicao passo a passo, no importante.


2.

Clique duas vezes no controle Button role para criar um manipulador Click
para ele.

3.

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.

No modo de exibio Design, clique duas vezes na superfcie de design (no


no controle) para criar um manipulador de eventos Page_Load.

2.

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

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.

Salve a pgina.

2.

Pressione CTRL+F5 para executar a pgina.

3.

Digite um nmero (diferente de 2) e pressione o boto Square.


Observe que o resultado incorreto, porque h um erro no programa.

4.

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.

Isso abre uma janela Watch onde voc pode especificar os valores que voc
deseja rastrear.

5.

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.

Mude para o janela do navegador.

6.

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.

Abra o Visual Web Developer.

2.

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.

No Solution Explorer, clique com o boto direito do mouse no nome do seu


site, e ento clique Add New Item.

2.

Em Visual Studio installed templates, clique em Master Page.

3.

Na caixa Name, digite Master1.

4.

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.

2.
3.

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.

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.

Clique na clula inferior e digite o texto rodap como Copyright 2005


Contoso Inc.

2.

Na Toolbox, a partir do grupo de controle Navigation, arraste um controle


de Menu para a clula superior.

3.

4.

Crie um menu seguindo estas etapas:


1.

Defina a propriedade do controle do Menu Orientation como


Horizontal.

2.

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.

Clique no primeiro n, e defina Text como Home e NavigateUrl


como Home.aspx.

2.

Clique no segundo n, e defina Text como About e NavigateUrl


como About.aspx.

3.
5.

Clique OK para fechar a caixa de dilogo Menu Item Editor.

Se voc tiver um arquivo grfico disponvel para uso como um logotipo, siga
estas etapas para coloc-lo na pgina mestra:
1.

Na Solution Explorer, clique com o boto direito do mouse no nome do


site, e clique Add Existing Item.

2.

Navegue para o arquivo grfico, selecione o arquivo grfico, e ento


clique Add.

3.

Na Toolbox do grupo Standard, arraste um controle de Image para a


coluna do esquerda no meio de tabela.

4.

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.

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 Home.

4.

Na lista Language, clique na linguagem de programao que voc preferir.

5.

Selecione a caixa de seleo Select master page, e clique Add.


A caixa de dilogo Select a Master Page aparece.

6.

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.

4.

Pressione ENTER para criar uma nova linha vazia no controle Content, e em
seguida, digite Obrigada por visitar nosso site.

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.

Altere o ttulo da pgina para Pgina Sobre Contoso.

3.

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.

4.

Pressione ENTER para criar uma nova linha, e digite Desde 1982, Contoso
prov servios de software de alta qualidade.

5.

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

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.

Alterne para, ou abra, a pgina Home.aspx.

2.

Alterne para modo de origem.

3.

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.

Alterne para modo Design.

5.

No controle Content, altere o texto para Bem-vindo ao site de.

6.

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.

Feche o navegador.

3.

Alterne para, ou abra, a pgina code-behind Master1.MASTER.

4.

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.

No Solution Explorer, clique com o boto direito do mouse em


Master1.master, e clique Copy.

2.

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.

Alterne para, ou abra, a pgina Master1.Master no modo Design.

6.

Adicione um controle LinkButton como voc fez nas etapas 1 e 2, e defina


sua propriedade Text como Plain.

7.

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.

Abra Visual Web Developer.

2.

No menu File, clique New Web Site.


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 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.

4.

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.

Pressione CTRL+F5 para executar a pgina.


Os controles so exibidos com sua aparncia padro.

2.
3.

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

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.

Alterne para modo de origem.

2.

Altere a declarao da pgina:


<%@ Page theme="sampleTheme" %>
Para uma declarao de tema de folhas de estilo:
<%@ Page StyleSheetTheme="sampleTheme" %>

3.

Pressione CTRL+F5 para executar a pgina.


Observe que a propriedade ForeColor do controle Label1 est vermelho.

4.

Alternar para modo Design.

5.

Selecione Label1 e, em Properties, defina ForeColor como blue.

6.

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

BorderColor

Red

BorderWidth

CellSpacing

Font-Name

Arial

Font-Size

SelectedDayStyle-BackColor

Red

SelectedDayStyle-ForeColor

Yellow

TodayDayStyle-BackColor

Large

Pink

Observao
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.

Alterne para o modo de origem e copie o elemento<asp:calendar> e seus


atributos.

3.

Alterne para ou abra o arquivo sampleTheme.skin.

4.

Cole a definio do controle Calendar no arquivo sampleTheme.skin.

5.

Remova a propriedade ID da definio no arquivo sampleTheme.skin.

6.

Salve o arquivo sampleTheme.skin.

7.
8.

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.

Salve e feche o arquivo Web.config.

5.

Alterne para Default.aspx e alterne para o modo de origem.

6.

Remova o atributo theme="themeName" da declarao de sua pgina.

7.

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.

Feche a pgina padro e adicione uma nova pgina ao site, chamada


WebPartsDemo.aspx.
Alterne para o modo de exibio Design.

3.

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

4.

Coloque o ponto de insero antes das marcas <div> na superfcie de design


e pressione ENTER para adicionar uma nova linha.

5.

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.

6.

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.

Apostila Visual Studio 2005

417

7.

Posicione o ponto de insero nas marcas <div>.

8.

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.

9.

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

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.

2.

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.

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.

Alterne para o modo de exibio Design.

3.

Na guia Standard da caixa de ferramentas, arraste um controle TextBox


para a pgina.

4.

Coloque o ponto de insero aps a caixa de texto que voc adicionou e


pressione ENTER para adicionar uma nova linha.

5.

Arraste um controle Button para a pgina na nova linha abaixo da caixa de


texto que voc adicionou.

6.

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.

Abra a pgina WebPartsDemo.aspx.

2.

Alterne para o modo de exibio Design.

3.

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.

4.

Salve a pgina WebPartsDemo.aspx.

5.

Alterne para o modo de visualizao Source.

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.

3.

Clique em Add para criar o novo controle.

4.

Alterne para o modo de visualizao Source.

5.

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

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.

Para permitir que os usurios alterem o layout


1.

Abra a pgina WebPartsDemo.aspx.

2.

Alterne para o modo de exibio Design.

3.

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.

4.

Arraste o controle de usurio recm-criado (DisplayModeMenu.ascx) para a


pgina WebPartsDemo.aspx e solte-o na linha em branco.

5.

Arraste um controle EditorZone da seo WebParts da caixa de ferramentas


para a clula aberta restante da tabela na pgina WebPartsDemo.aspx.

6.

A partir da seo WebParts da caixa de ferramentas, arraste um controle


AppearanceEditorPart e um controle LayoutEditorPart para o controle
EditorZone.

7.

Alterne para o modo de visualizao Source.


O cdigo resultante na clula da tabela deve ter aspecto semelhante ao do
cdigo a seguir.

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.

Carregue a pgina em um navegador.

2.

No menu Display Mode, clique em Edit.


Os ttulos de zona so exibidos.

3.

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.

6.

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.

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.

Abra a pgina WebPartsDemo.aspx.

2.

Alterne para o modo de exibio Design.

3.

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.

No painel Properties, atribuia a seqncia Add Web Parts para a


propriedade HeaderText do controle CatalogZone.

5.

A partir da seo WebParts da caixa de ferramentas, arraste um controle


DeclarativeCatalogPart para a rea de contedo do controle CatalogZone.

6.

Clique na seta no canto direito superior do controle DeclarativeCatalogPart


para expor seu menu Tasks, e selecione Edit Templates.

7.

A partir da seo Standard da caixa de ferramentas, arraste um controle


FileUpload e um controle Calendar para a seo WebPartsTemplate do
controle DeclarativeCatalogPart.

8.

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

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.

Carregue a pgina em um navegador.

2.

No menu Display Mode, clique em Catalog.


O catlogo intitulado Add Web Parts exibido.

3.

Arraste o controle My Favorites da zona Main de volta para o parte superior


da zona Sidebar.

4.

No catlogo Add Web Parts, selecione as duas caixas de seleo e ento


selecione Main na lista de zonas disponveis.

5.

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.

No menu Display Mode, clique em Browse.


O catlogo desaparece e a pgina atualizada.

7.

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.

Abrir o Visual Studio.

2.

No menu File, clique em New Web Site.


A caixa de dilogo New Web Site aparece.

3.

Sob oVisual Studio installed templates, selecione o ASP.NET Web Site.

4.

Na caixa de listagem Location , selecione HTTP. Clique em Browse.


A caixa de dilogo Choose Location aparece.

5.

Selecione Local IIS.

6.

Abra o Local Web Servers.

7.

Selecione o Default Web Site.

8.

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.

Clique em Next.
O assistente exibe uma pgina onde voc pode criar novos usurios.

7.

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.

8.

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.

Apostila Visual Studio 2005

429

Para configurar as regras de acesso para o subdiretrio MemberPages


1.

No assistente, clique em Next.


O assistente exibe uma pgina que permite que voc crie regras de acesso.

2.

Na caixa Add New Access Rule, expanda o n para o seu site Web.

3.

Selecione MemberPages, a pasta que voc criou anteriormente.

4.

Em Rule applies to, selecione Anonymous users.

5.

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.

Na ferramenta Web Site Administration, clique na guia Application.

2.

No SMTP Settings, clique em Configure SMTP e-mail settings.


A ferramenta exibe uma pgina onde voc pode configurar e-mail.

3.

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.

Na caixa From, digite um endereo de e-mail vlido.

5.

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.

2.

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.

3.

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".

4.

A partir do grupo Login do Toolbox, arraste um controle LoginStatus para a


pgina.

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.

A partir do grupo Validation do Toolbox, arraste um controle


ValidationSummary para a pgina.

2.

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.

Clique na rea de edio do controle LoginView para ativar a edio.

4.

Na rea de edio do modelo Anonymous Template do controle


LoginView, digite Voc no est autorizado. Clique no link Login para
entrar.

5.

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.

Clique na rea de edio do controle LoginView para ativar a edio, e em


seguida, digite Voc est autorizado. Bem-vindo..

7.

A partir do gupo Login do Toolbox, arraste o controle LoginName para o


modelo aps o texto.

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.

Clique no link Login.


A pgina de login que voc criou exibida.

4.

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".

3.

A partir do grupo Login do Toolbox, arraste um controle


CreateUserWizard para a pgina.

4.

Na janela Properties para o controle CreateUserWizard, defina a


propriedade ContinueDestinationPageUrl para ~/Default.aspx.

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.

Alterne para ou abra a pgina Default.aspx.

2.

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.

3.

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.

Agora voc pode testar o processo de registro.


Para testar o registro
1.

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.

2.

Clique no link Register.


A pgina de registro exibida.

3.

4.

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.

Clique no link Logout.


A pgina muda para exibir a informao para os usurios annimos.

7.

Clique no link Login.

8.

Insira as credenciais para o usurio que voc acabou de criar.


Voc est conectado como o novo usurio.

9.

Feche a janela do navegador.


Alterando Senhas

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.

Voc est colocando a pgina na pasta Members-Only porque somente os


usurios autorizados podem alterar suas senhas.

3.

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".

4.

A partir do grupo Login do Toolbox, arraste um controle ChangePassword


para a pgina.

5.

Na janela Properties para o controle ChangePassword, defina a


propriedade ContinueDestinationPageUrl para ~/Default.aspx.

6.

Isso configura o controle para que, quando os usurios clicarem em


Continue aps alterar uma senha, o controle retorne para a home page.

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.

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.

5.

Clique em Continue.

6.

Na home page, clique em Logout.

7.

Clique no link Login.

8.

Digite a nova senha.


Voc est conectado com a nova senha.

9.

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".

3.

A partir do grupo Login do Toolbox, arraste um controle PasswordRecovery


para a pgina.

4.

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.

5.
6.

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.

Agora voc pode testar a recuperao de senha.


Para testar a recuperao de senha
1.
2.
3.

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.

4.

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.

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 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, 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.

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.

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.

Feche o navegador que contm os resultados do mtodo.

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.

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.

Clique em um dos links dos mtodos.


O 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

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

Propriedades

Textbox

IDTemperatureTextbox
Text: (vazio)

Button

IDConvertButton
Text: Convert

Label

IDFahrenheitLabel
Text: (vazio)

Label

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
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.

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

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.

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.
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.

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.

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.

6.

Posicione o ponteiro do mouse na seguinte linha:


Visual Basic
temperature = System.Convert.ToDouble(TemperatureTextbox.Text)
C#
double temperature =
System.Convert.ToDouble(TemperatureTextbox.Text);

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

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.

No menu File, escolha New Web Site.

2.

Na caixa de dilogo New Web Site, selecione o cone ASP.NET Web


Service.

3.

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.

Na pgina de ajuda Service, clique no link ConvertTemperature.

4.

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.

No painel esquerdo do File System Editor, selecione Web Application


Folder. Para obter mais informaes, consulte File System Editor.

5.

No Solution Explorer, clique com o boto direito do mouse em


TempConvert1WebSetup, aponte para Add, e clique Project Output.

6.

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.

7.
8.

Clique em OK.
No Solution Explorer, clique com o boto direito do mouse no
projetoTempConvert1WebSetup, e no menu de atalho, clique Build.

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.

No Solution Explorer, selecione o projeto TempConvert1.

2.

No menu Project, clique em Copy Web Site.

3.

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.

4.

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. .

5.

Clique Copy Web Site para copiar o site.

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.

Selecione a Visual C++ Projects pasta, e, em seguida, clique no ASP.NET


Web Service cone.

3.

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.

Clique duas vezes o Component Designer na superfcie do design para exibir


o cdigo para esse arquivo, TempConvert3Class.h.

2.

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.

No Solution Explorer, localize TempConvert3Class.cpp na pasta Source


Files do Projeto TempConvert3 e abrir este arquivo para edio.

5.

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.

Salve a soluo.

7.

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.

No menu Debug, clique Continue para continuar o processamento.

6.

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.

3.

Na caixa Name, digite TempConvert3WebSetup.

4.

Na lista suspensa Solution Selecionar Add to Solution, e clique em OK

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.

6.

No Solution Explorer, clique com o boto direito do mouse


TempConvert3WebSetup, aponte para Add, e clique em Project Output.

7.

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.

8.
9.

Clique em OK.
No painel esquerdo da guia File System (TempConvert3WebSetup),
expanda Web Application Folder e localize a pasta rotulada bin.

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 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.

No menu File, aponte para New, e clique Project para abrir a New Project
caixa de dilogo.

2.

Selecione a Visual C++ Projects pasta, e, em seguida, clique no ATL


Server Web Service cone.

3.

Na caixa Name, digite TempConvert4.

4.

Clique OK Para iniciar o ATL Server Project Wizard.

5.

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.

2.

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.

Salve a soluo.

5.

No menu Build, clique em Build Solution.

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.

No painel esquerdo da File System Editor, selecione Web Application


Folder. Para obter mais informaes, consulte Editor do sistema de arquivos.

5.

No Solution Explorer, clique com o boto direito do mouse


TempConvert4WebSetup, aponte para Add, e clique em Project Output

6.

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.

7.

Clique em OK.

8.

No Solution Explorer, clique com o boto direito do mouse


TempConvert4WebSetup novamente, aponte para Add, e clique em
Project Output

9.

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.

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.

Para concluir a explicao passo a passo, voc deve fornecer o seguinte:

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 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.

No menu File, aponte para New, e clique Project para abrir a New Project
caixa de dilogo.

2.

Expanda o Visual C++ n, e selecione CLR.

3.

Clique no CLR Console Application cone.

4.

Alterar o nome do projeto para TempConvertClient3.

5.

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.

Na Solution Explorer, selecione o TempConvert3Client n de projeto. No


menu Project, clique em Add Web Reference.

2.

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.

4.

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.

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.

Salve a soluo.

4.

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

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.

No menu File, aponte para New, e clique Project para abrir a New Project
caixa de dilogo.

2.

Expanda a Visual C++ Projects pasta, e, em seguida, clique no Win32


Project cone.

3.

Alterar o nome do projeto para TempConvertClient4.

4.

Clique OK Para iniciar o Win32 Application Wizard.

5.

Na Win32 Application Wizard, execute o seguinte:


1.

Na pgina Application Settings, clique em Console application.

2.

Selecione ATL Para adicionar suporte de Biblioteca ATL.

3.

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.

4.

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.

No Solution Explorer, localize stdafx.h na pasta Header Files e abra este


arquivo para edio.

2.

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

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.

No Solution Explorer, localize TempConvertClient4.cpp na pasta Source


Files e abrir este arquivo para edio.

5.

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.

Salve a soluo.

7.

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.

4.

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

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.

Criar e configurar uma conexo de banco de dados e um esquema


DataSet
Expor DataSet do seu objeto comercial

Criar a interface de usurio


1.

3.

Criar um Projeto Servio da Web ASP.NET

Criar uma interface do usurio do Windows

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.

No menu File, aponte para New ento Web Site para exibir a New Web
Site caixa de dilogo.

2.

Selecione ASP.NET Web Service no painel Visual Studio Installed


Templates.

3.

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.

5.
6.

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.

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.

5.

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.

Verifique se seu banco de dados est selecionado na caixa suspensa e clique


em Next.

9.

Clique Next novamente para salvar a seqncia de conexo para o arquivo


de configurao.

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).

2.

Expanda o n para o servidor.

3.

Expanda o Default Web Site n.

4.
5.
6.
7.

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.

8.

Marque a Integrated Windows authentication caixa de seleo. Agora


voc configurou seu diretrio de servio da Web XML.

9.

Retornar para o projeto no Visual Studio, clique duas vezes o arquivo


web.config no Solution Explorer.

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.

Partir do Build menu, escolha Build Solution para a criao da soluo.

2.

Na Solution Explorer, clique duas vezes Service.vb para abrir o Editor de


Cdigo.

3.

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.

Partir do File menu, escolha Save All.

7.

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.

No menu File, aponte para Add e escolher New Project, para abrir a Add
New Project caixa de dilogo.

2.

Selecione Windows Application no painel Visual Studio Installed


Templates.

3.

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.

No Solution Explorer, clique com o CustomersWinClient projeto, e


clique Add Web Reference no menu de atalho

2.

Clique em Web Services In This Solution e clique em


CustomersService.

3.

Clique em Add Reference.


Agora voc pode criar uma instncia do DataSet DataSet em seu
aplicativo.

Para adicionar os controles ao formulrio


1.

Arraste um DataGridView controle da guia Data da caixa de ferramentas


para o formulrio.

2.

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.

4.
5.

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();

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.

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.

4.

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

You might also like