Professional Documents
Culture Documents
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
10
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.
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.
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:
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.
14
15
16
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.
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.
18
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.
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.
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.
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:
22
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.
23
24
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.
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,
25
fornecendo o XML Designer para tornar mais fcil editar XML e criar esquemas XML.
Para obter mais informaes, XML Designer.
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.
26
escrio
Sub TextRangeExample()End Sub Esta fonte e esta cor so usadas para cdigo.
tup
variable
[expressionlist]
variable
{While | Until}
27
ENTER
ALT + F1
BACKSPACE, HOME
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.
28
Pesquisar e compreender
ente
29
Pesquisador de objetos
Referncia da linguagem (F1)
ndice
Pesquisa
Sumrio
ente
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
30
Janela de pesquisa
Exemplos
Aprendendo a programar usando o Visual Studio
Exemplos de referncia da
linguagem
Exemplos
Janela de contedos
Links
Janela de contedos
Janela de ndice
Janela de pesquisa
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.
escrio
NET Framework
Enterprise Severs
Desenvolvimento
Office
Platform SDK
Smart Device
Development
32
Team Explorer
Visual Basic
Visual C#
Visual C++
Visual J#
Desenvolvimento
Web (.NET)
escrio
Visual C# Express
33
Visual Express J#
Visual Web
Developer Express
escrio
Ajuda
Kits para
Iniciantes
Itens de
Modelos
Trechos de
cdigo
Exemplos
Controles
Unfiltered
34
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.
35
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.
36
compartilhado para outro computador e importado pelo Visual Studio para uso
nesse computador.
37
Como soluo itens para arquivos que so aplicveis a sua soluo como um
todo na pasta Solution Items do Solution Explorer.
Para informaes mais detalhadas ou para aprender a ser usado Solution Explorer, os
tpicos a seguir:
Para obter mais informaes
Solues e projetos
Solues como
Containers
Projetos como
Containers
Gerenciar solues,
projetos, e Arquivos
Explorer soluo
38
Solues multi-Project
Itens soluo
Arquivos variados
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.
39
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:
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:
40
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
41
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.
Arquivos variados
Tipos de arquivo e
extenses de arquivo
no Visual Studio
42
Itens de soluo
Gerenciando solues,
projetos, e arquivos
Solues como
continers
Projetos como
continers
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.
44
45
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.
47
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.
48
49
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;
}
50
51
IDTemperatureTextbox
Text: (vazio)
utton
IDConvertButton
Text: Convert
bel
IDFahrenheitLabel
52
Text: (vazio)
bel
IDCelsiusLabel
Text: (vazio)
Copy Code
C#
Copy Code
53
Copy Code
temperature = System.Convert.ToDouble(TemperatureTextbox.Text)
C#
Copy Code
double temperature =
System.Convert.ToDouble(TemperatureTextbox.Text);
54
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.
55
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
56
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
57
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.
58
onfiguraes de propriedade
Label
= IDlabeleanDetails
= TextLoan Details
Label
= IDlabelPayment
= TextPayment
Command
= IDReturnToCalculator
= TextReturn to Calculator
Copy Code
C#
Copy Code
59
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
C#
Copy Code
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.
60
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.
Copy Code
Next
Me.ObjectList1.DataSource = ListItems
Me.ObjectList1.DataBind()
End Sub
C#
Copy Code
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.
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.
62
Na sua pgina, voc indica que controles devem usar recursos para seus
valores de propriedade.
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:
Pr-requisitos
Para concluir esta explicao passo a passo, sero necessrios:
.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.
63
64
65
66
67
68
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.
69
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.
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.
Copy Code
71
id="AuthorsObjectDataSource"
runat="Server"
typename="PubsClasses.AuthorClass"
selectmethod="GetAuthors"/>
<asp:gridview
id="GridView1"
runat="Server"
datasourceid="AuthorsObjectDataSource" />
</form>
</html>
C#
Copy Code
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)
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;
}
}
}
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.
74
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.
75
Visual Basic
Copy Code
C#
Copy Code
Copy Code
C#
Copy Code
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.
76
<customErrors mode="Off"/>
</system.web>
</configuration>
Copy Code
77
</script>
C#
Copy Code
Copy Code
C#
Copy Code
78
79
<customErrors mode="Off"/>
</system.web>
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.
80
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:
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
81
82
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.
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.
85
86
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.
87
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.
Copy Code
89
ByVal e As System.EventArgs)
Dim testClass As New TestClass
testClass.TestProperty = "Hello"
Label1.Text = testClass.TestProperty
End Sub
C#
Copy Code
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.
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.
90
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.
91
3.
Para mais informaes, Copiando sites da Web com a ferramenta Copy Web Site.
92
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.
93
94
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.
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.
96
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.
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.
98
escrio
Application (Aplicativo)
Build (Compilar)
99
Debug (Depurar)
Resources (Recursos)
Settings (Configuraes)
Reference Paths
(Caminhos de Referncia)
Signing (Assinatura)
Security (Segurana)
Publish (Publicar)
100
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.
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
101
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.
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.
102
Trechos de cdigo: Voc pode procurar uma biblioteca que contm padres de
cdigo repetidos freqentemente.
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#.
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.
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#).
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
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 .
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.
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
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.
Criar configuraes
Apostila Visual Studio 2005
108
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.
109
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.
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.
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
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.
112
113
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:
114
115
Existem seis maneiras para acessar a ajuda enquanto trabalha no Visual C#:
Pesquisar F1
Pesquisa
ndice
ndice Analtico
Como Eu
Ajuda Dinmica
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:
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
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.
118
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.
119
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.
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.
120
Para contornar essa situao, faa as variveis locais que so usadas no mtodo
Annimo, campos de classe.
121
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
{
//
//
//
//
//
//
//
122
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.
escrio
#IF
Qualquer lugar.
#Region
Qualquer lugar.
Em uma classe.
attribute
Dentro de um
namespace (incluindo o
namespace global), uma
classe, ou uma
estrutura.
Marcada
Dentro de um mtodo,
um indexador, um
acessador Propriedade,
ou um assessor de
evento.
Classe
Dentro de um
namespace (incluindo o
namespace global), uma
classe, ou uma
estrutura.
Construtor
Em uma classe.
cW
Dentro de um mtodo,
um indexador, um
acessador Propriedade,
ou um assessor de
evento.
Fazer
Dentro de um mtodo,
um indexador, um
acessador Propriedade,
ou um assessor de
evento.
124
Pessoa
Dentro de um mtodo,
um indexador, um
acessador Propriedade,
ou um assessor de
evento.
Enum
Dentro de um
namespace (incluindo o
namespace global), uma
classe, ou uma
estrutura.
igual a
Exceo
Dentro de um
namespace (incluindo o
namespace global), uma
classe, ou uma
estrutura.
Para
Dentro de um mtodo,
um indexador, um
acessador Propriedade,
ou um assessor de
evento.
foreach
Dentro de um mtodo,
um indexador, um
acessador Propriedade,
ou um assessor de
evento.
forr
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
Interface
Dentro de um
namespace (incluindo o
namespace global), uma
classe, ou uma
estrutura.
Chamar
Dentro de um mtodo,
125
um evento.
um indexador, um
acessador Propriedade,
ou um assessor de
evento.
iterador
Cria um iterador.
iterindex
Bloqueio
Dentro de um mtodo,
um indexador, um
acessador Propriedade,
ou um assessor de
evento.
mbox
Dentro de um mtodo,
um indexador, um
acessador Propriedade,
ou um assessor de
evento.
Namespace
No namespace
(incluindo o namespace
global).
prop
propg
Sim
struct
Dentro de um
namespace (incluindo o
namespace global), uma
classe, ou uma
estrutura.
svm
Alternar
Dentro de um mtodo,
um indexador, um
acessador Propriedade,
ou um assessor de
evento.
Tente
Dentro de um mtodo,
um indexador, um
acessador Propriedade,
ou um assessor de
126
evento.
tryf
Dentro de um mtodo,
um indexador, um
acessador Propriedade,
ou um assessor de
evento.
desmarcada
Dentro de um mtodo,
um indexador, um
acessador Propriedade,
ou um assessor de
evento.
No seguro
Dentro de um mtodo,
um indexador, um
acessador Propriedade,
ou um assessor de
evento.
Usando
No namespace
(incluindo o namespace
global).
Tempo
Dentro de um mtodo,
um indexador, um
acessador Propriedade,
ou um assessor de
evento.
127
Para usar trechos de cdigo atravs de atalho do teclado com surround1. No Visual Studio IDE, abra o arquivo que voc pretende editar.
128
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.
129
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)
130
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.
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
@" "
#if, #endif
#region, #endregion
131
case, break
default, break
for, break
for, continue
foreach, break
foreach, continue
while, break
while, continue
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.
132
133
xibido por
adro?
bservaes
Class View
No
Janela de
Comando
No
Dynamic Help
Window
No
Pesquisador de
objetos
No
Janela Output
No
Solution Explorer
Sim
Start Page
Lista de tarefas
(Visual Studio)
No
Toolbox
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
135
escrio
Sub TextRangeExample()End Sub Esta fonte e esta cor so usadas para cdigo.
tup
variable
[expressionlist]
variable
{While | Until}
ENTER
ALT + F1
BACKSPACE, HOME
136
emento
escrio
Localizar tpicos
relacionados
Exibir somente
ttulo de tpicos
Mostrar apenas
Filtro de
informaes
linguagem
relacionadas a uma
linguagem
especfica.
137
Pesquisar e compreender
ente
138
e voc deseja
ente
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
Exemplos de referncia da
linguagem
Exemplos
Janela de contedos
Links
Janela de contedos
Janela de ndice
Janela de pesquisa
139
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/
140
escrio
NET Framework
Enterprise Severs
Desenvolvimento
Office
Platform SDK
141
Team Explorer
Visual Basic
Visual C#
Visual C++
Visual J#
Desenvolvimento
Web (.NET)
142
Os filtros a seguir esto disponveis para Contedo e ndice somente se voc tiver
instalado o MSDN Express Library.
ermo
escrio
Visual C# Express
Visual Express J#
Visual Web
Developer Express
escrio
Ajuda
Kits para
Iniciantes
Itens de
Modelos
Trechos de
cdigo
Exemplos
143
Unfiltered
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
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
145
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.
146
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.
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.
149
150
151
152
153
154
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
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>
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">
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:
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.
158
Principais diferenas
Apostila Visual Studio 2005
159
Instalar arquivos
Criar atalhos
Instalar servios
Instalar no GAC
Gerenciar ODBC
Gerenciar COM+
Gravar no Registro
Divulgao
Auto-reparo
Permisses de arquivo/pasta/Registro
Atualizaes foradas
Proteo de segurana
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
161
ome da
oluna
alor
bservaes
IniFile
URLShortcut1
Chave primria
FileName
My App.url
DirPropert MyShortcutFolder
y
Section
InternetShortcut
Key
URL
Value
162
ome da
oluna
alor
bservaes
Action
Compone
nt
MyComponent
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!
163
164
coisas precisa ser feita no servidor, envolvendo viagens de ida e volta e um pouco
de espera.
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.
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)
165
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.
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.
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
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:
168
169
170
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.
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:
Detalhes da implantao
171
O Visual Studio .NET 2005 criar uma nova Web para nosso aplicativo, com vrios
arquivos e pastas.
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
172
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
X
X
Desempenho otimizado
(**)
Trabalhar offline
(*)
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.
174
175
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.
176
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.
177
178
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.
179
O bem
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).
Mi perfil (Pgina de
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
180
181
182
183
184
185
186
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.
187
188
189
190
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:
191
O bem
Deve figurar na lista da diretiva de grupo local para as verses de depurao.
(C/C++ nativo)
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.
192
193
escripo
abilitar depurao
SP.NET
abilitar depurao de
QL Server
odo de depurao
plicao de inicio
gina de inicio
rgumentos da lnea de
omandos
rectorio de trabajo
abilitar depurao
mota
quipe de depurao
moto
194
onfigurao
escripo
onstantes de
ompilao condicional
timizar cdigo
erar informao de
epurao
195
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.
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,
196
197
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.
198
199
200
201
202
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
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
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
205
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.
206
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
208
209
210
211
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.
2.
3.
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
C#
C/C++
Cdigo nativo
212
ASP Script
Sequncias de comandos
ASP.NET Script
[assembly:System::Diagnostics::DebuggableAttribute(true, true)];
myapp.exe.
213
debugger.
Prova
Para ver
214
anterior
Utilizar a janela Variaveis locais
Variaveis locais
Contenido de registros
Contenido da memoria
Tipos de parmetros
Valores de parmetros
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).
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.
217
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
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
219
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:
220
221
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
interpretados.
Pr-Compilao
possvel - embora no recomendvel - compilar previamente um arquivo
executvel para cdigo nativo com o comando NGEN:
222
223
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:
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.
224
225
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
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;
}
}
}
}
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>
228
229
230
software. A Seo 8 descreve algumas orientaes sobre como saber mais sobre o
assunto.
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.
232
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
233
234
Transformar sua soluo especfica para uma soluo mais geral difcil
235
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
236
237
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
238
239
240
oluo
241
Patrono (12)
Arquiteto
Tambm
Implementa
(15)
Revise a
Arquitetura
(16)
Analista
Mercenrio
(23)
Portas Contra
Fogo (24)
Trabalho Flui
para Dentro
(29)
242
Presentations on patterns.
Mailing Lists and Archives: How to join the mailing lists etc.
The official unofficial or maybe its the unofficial official Patterns FAQ
Pattern Catalogs
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.
243
244
245
Early Biding
Neste caso criaremos uma referncia DLL dentro do projeto de teste. Clique
com o boto direito sobre References e pea Add Reference:
246
247
248
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.
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.
250
251
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:
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.
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.
255
256
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
257
258
259
Sistema do projeto
Designer Visual
Controles
260
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.
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.
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.
262
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.
equisito
Processador de 600 MHz
Recomendvel: processador
1 gigahertz (GHz)
Memria RAM
Espao de disco
rgido disponvel
Sem MSDN:
Sistema operacional
Unidade de CD-ROM
ou DVD-ROM
Necessrio
Vdeo
Mouse
263
Os seguintes softwares necessrio para usar Visual Studio Tools for Office, que
instalado por padro como parte do Visual Studio Team System:
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
264
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.
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:
265
266
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
267
268
Projeto de inicializao.
ajuda Visual Studio Tools for Office a criar solues rapidamente por tirar vantagem
dos recursos nativos de cada aplicativo, e fornecer as seguintes vantagens.
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.
269
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.
270
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
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.
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.
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.
272
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 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.
273
274
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.
275
Prximas etapas
Para obter uma lista dos tpicos que orient-lo algumas das tarefas comuns na
automao Word, Tarefas comuns na programao do Office.
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.
276
ste tpico
Automatizar Excel.
Tarefas do Excel
Automatizar o Word.
Tarefas do Word
Automatizar o Outlook.
Tarefas do Outlook
Conectando-se a dados
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:
Formatando documentos.
Manipular menus.
Criando controles.
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()
Comparao
A tabela a seguir fornece uma comparao bsica entre VBA e extenses cdigo
gerenciado.
sual Basic for Applications
279
simplificada.
Alguns itens ainda mais fcil para fazer rapidamente usando VBA.
Especificamente, voc pode desejar continuar usando VBA para:
A gravao da macro.
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.
< DriveLetter>:\
\\< Server>\<Share>
Asterisco (*)
8. Clique em Finish.
281
< DriveLetter>:\
\\< Server>\<Share>
Asterisco (*)
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.
282
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.
283
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.
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.
284
Copy Code
Copy Code
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
285
C#
Copy Code
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:
286
Para obter mais informaes sobre cache dados, Cache de dados e Dados de viso
geral viso solues do Office.
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.
Comparao
A tabela a seguir descreve as diferenas entre documentos e modelos.
ocumentos
odelos
287
Voc pode aproveitar do evento New que aumentado pelos modelos usando
mtodos, como o seguinte:
O Word
Visual Basic
Copy Code
C#
Copy Code
C#
Copy Code
Excel
Visual Basic
Copy Code
C#
Copy Code
C#
Copy Code
Modelos do Word
288
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.
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).
289
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.
291
292
293
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/
295
296
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
297
Tipo
Descrio
Application
Sequential
Workflow Library
Workflow Activity
Library
State Machine
Console Application
State Machine
Workflow Library
Empty Workflow
298
299
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
301
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.
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.
303
304
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.
305
306
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.
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;
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>
310
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
311
Atividade
Descrio
Code
Compensate
ConditionedActivityGroup
(CAG)
Delay
EventDriven
EventSink
ExceptionHandler
IfElse
InvokeMethod
312
Atividade
Descrio
trabalho para um servio de troca de dados registrado
com WorkflowRuntime.
InvokeWebService
InvokeWorkflow
Listen
Parallel
Policy
Replicator
SelectData
Sequence
SetState
313
Atividade
Descrio
State
StateInitialization
Suspend
Terminate
Throw
TransactionalContext
UpdateData
WaitForData
314
Atividade
Descrio
WaitForQuery
WebServiceReceive
WebServiceResponse
While
315
316
317
Para concluir, vamos adicionar outras propriedades, como From, Subject, Body e
Host, para que os usurios possam configurar completamente os emails enviados.
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.
319
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
321
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;
323
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.
324
325
326
327
328
Figura 21. O bloco EventDriven da mquina de estado para manipular o evento Order Processed
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.
329
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.
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:
332
- 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/
333
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)
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:
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:
335
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.
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:
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
338
339
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) {
341
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:
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
344
345
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.
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 )
Descrio
FileInfo e File
347
Ocorre
quando
um
mtodo
no
348
DirectoryNoFoundException
FileNotFoundException
PathTooLongException
SecurityException
A tabela abaixo lista alguns mtodos dessas classes mais usados no gerenciamento
do sistema de arquivos:
Create()
Delete()
MoveTo()
CopyTo()
GetDirectories()
GetFiles()
GetFileSystemInfos()
Vejamos ento como fica nosso projeto exemplo utilizando o que foi dito at agora.
Abra o Visual Studio .NET 7.
349
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;
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;
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;
351
}
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
352
}
O mtodo ProcessDirectory recebe como argumento o caminho de um diretrio e
executa as seguintes funes:
}
Recebe como argumento o caminho de um arquivo e executa as seguintes funes:
353
Veja tambm que a exceo disparada nesse mtodo vai ser tratada pelo catch do
mtodo chamador que, nesse caso, o OnExecuteButtonClick.
Existem ainda dois eventos disparados por seleo de itens nas listbox e que sero
tratados pelos mtodos: OnListBoxDirSelected e OnListBoxFileSelected.
No momento iremos analisar somente o mtodo OnListBoxDirSelected, porque o
outro mtodo s ser utilizado nas operaes de copy, delete e paste.
private void OnListBoxDirSelected(object sender, System.EventArgs e)
{
string dirName = ((ListBox)sender).SelectedItem.ToString();
VerifyIfDirChanged(dirName);
currentPathDir = Path.Combine(currentPathDir, dirName);
ClearFields();
ProcessDirectory(currentPathDir);
}
Ao selecionar um diretrio na lista de diretrios o mtodo OnListBoxDirSelected
disparado, pega o nome do caminho do item selecionado e chama o mtodo
ProcessDirectory . O diretrio selecionado ser ento processado e listado em
ambas as listbox. Aqui, vale a pena mencionar o uso da classe Path. Essa classe
recebe como argumento uma string, contendo o nome do caminho de um diretrio
ou arquivo. Possui mtodos estticos que realizam uma srie de operaes teis no
gerenciamento de arquivos. A tabela abaixo mostra alguns desses mtodos.
ChangeExtention
Combine
GetDirectoryName
GetFileName
GetFullPath
Com isso, nossa aplicao j pode, pelo menos, processar o diretrio ou arquivo
digitado.
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);
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....
356
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:
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
357
2.
3.
4.
Usando o MFC Application Wizard, voc modificar seu projeto para oferecer
suporte o acesso a bancos de dados e exibir recursos do aplicativo rich client.
Observao
Essa explicao passo a passo presume que o servidor est sendo acessado um servidor SQL e o pubs
banco de dados que existe no servidor.
Para implementar suporte a banco de dados
1.
2.
3.
4.
5.
6.
7.
8.
9.
358
4.
5.
6.
3.
4.
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.
359
3.
4.
5.
6.
7.
8.
9.
3.
4.
Return typevoid
Method nameClick
5.
6.
7.
8.
9.
Depois que a soluo cria com xito, uma caixa de dilogo simples pode hospedar o
controle.
Para hospedar o controle
1.
2.
3.
4.
360
Base classCDialog
6.
Clique em Finish.
7.
8.
9.
2.
3.
4.
5.
6.
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.
361
2.
3.
Clique no Dialog item e clique New para criar uma nova caixa de dilogo.
4.
5.
6.
Class nameCMyDhtmlDlg
Base classCDHtmlDialog
7.
Clique em Finish.
8.
9.
2.
3.
4.
5.
6.
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.
362
Nesta etapa, voc ir criar um servio da Web XML simples projetado para ser
executado em um servidor Web usando o Microsoft Internet Information Services
(IIS).
Para criar o servio da Web XML
1.
2.
3.
4.
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.
3.
4.
Assim que a referncia da Web for adicionada, voc adicionar uma caixa de
dilogo de validao para demonstrar a interao entre o aplicativo e o servio da
Web XML.
Para adicionar uma caixa de dilogo de validao
1.
2.
363
3.
4.
5.
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.
2.
3.
4.
5.
6.
Clique em Finish.
7.
8.
9.
2.
364
3.
4.
5.
6.
A etapa final ao desenvolver seu aplicativo Visual C++ est criando um projeto de
instalao.
Para criar um projeto de instalao
1.
2.
3.
4.
5.
6.
7.
8.
Clique em Finish
9.
O arquivo resultante (MySetup) pode ser copiado para uma mquina de destino
para instalao do aplicativo rich client. Para obter mais informaes sobre projetos
de implantao e o Assistente para instalao, consulte Implantar aplicativos,
Projetos de implantao. e Walkthroughs de implantao
365
Descrio
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:
366
Adicionar controles.
O .NET Framework
Criando um Site e Pgina Web
Nesta parte da explicao passo a passo, voc criar um site Web e adicionar uma
nova pgina a ele. Voc tambm adicionar um texto HTML e executar a pgina
no seu navegador Web.
Para esta explicao passo a passo, voc criar um site Web do sistema de
arquivos que no requer que voc trabalhe com o Internet Information Services
(IIS) da Microsoft. Em vez disso, voc criar e executar sua pgina no sistema de
arquivos local.
Um sistema de arquivos do site Web um sistema que armazena pginas e outros
arquivos em uma pasta que voc escolhe em algum lugar em seu computador local.
Outras opes de site Web incluem um site Web do IIS local, que armazena seus
arquivos em uma subpasta da raiz do IIS local (normalmente, \Inetpub\Wwwroot\).
Um site FTP armazena arquivos em um servidor remoto que voc acessa atravs da
Internet, usando o File Transfer Protocol (FTP). Um site remoto armazena arquivos
em um servidor remoto que voc pode acessar atravs de uma rede local. Para
mais informaes, consulte Explicao Passo a Passo: Editando Sites Web com FTP
no Visual Web Developer. Alm disso, os arquivos do site Web podem ser
armazenados em um sistema de controle de origem como o Visual SourceSafe.
Para mais informaes, consulte Introduo ao Controle de Origem.
Para criar um site Web do sistema de arquivos
1.
2.
3.
4.
367
5.
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
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.
4.
5.
6.
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.
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.
3.
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.
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
370
2.
3.
4.
2.
3.
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.
5.
2.
3.
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
372
C#
protected void Button1_Click(object sender, System.EventArgs e) {
Label1.Text = TextBox1.Text + ", welcome to Visual Web
Developer!"; }
5.
Executando a Pgina
Agora voc pode testar os controles do servidor na pgina.
Para executar a pgina
1.
2.
3.
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.
373
3.
4.
5.
2.
374
3.
Executando a Pgina
Agora voc pode testar o calendrio.
Para executar a pgina
1.
2.
3.
4.
Feche o navegador.
Prximas Etapas
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.
375
2.
3.
4.
376
5.
6.
No procedimento a seguir, voc criar uma conexo com o banco de dados SQL
Server Northwind.
2.
3.
4.
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.
378
7.
8.
9.
Na caixa Server name , digite o nome do SQL Server que voc deseja usar.
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.
380
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
381
2.
Feche o navegador.
Adicionando Classificao e Paginao
3.
4.
5.
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.
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.
2.
3.
4.
3.
Clique em Next.
O assistente exibe o comando SQL que est atualmente configurado para o
controle SqlDataSource.
383
4.
Clique em WHERE.
Aparecer a pgina Add WHERE Clause.
5.
6.
7.
8.
Clique em Add.
A clusula WHERE que voc criou aparecer em uma caixa na parte inferior
da pgina.
384
2.
3.
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.
385
Pr-requisitos
Para concluir esta explicao passo a passo, ser necessrio:
O .NET Framework.
Esta explicao passo a passo presume que voc tenha uma compreenso geral de
como usar o Visual Web Developer.
Criando o site da Web
Se j tiver criado um site no Visual Web Developer (por exemplo, seguindo as
etapas no Passo-a-passo: Criando uma pgina da Web bsica em Visual Web
Developer), voc pode usar esse site e v para a prxima seo, "Criando um
arquivo XML para dados Corporativos." Caso contrrio, crie um novo site e pgina
seguindo estas etapas.
Para criar um site do sistema de arquivos
1.
2.
3.
4.
5.
6.
2.
3.
4.
Clique em Add.
386
6.
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
387
2.
3.
4.
5.
6.
Clique em Add.
O Visual Web Developer cria o novo arquivo de classe e abre o editor de
cdigos.
7.
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.
388
2.
3.
4.
5.
6.
7.
8.
Clique em Next.
9.
2.
3.
4.
389
registro autor. Ento, voc ir alterar a pgina para que os usurios possam digitar
novas informaes de autor e modificar o controle ObjectDataSource para
executar a insero.
Observao
Durante esta parte da explicao passo a passo, o arquivo Authors.xml que voc criou anteriormente ser
atualizado. importante que o aplicativo tenha permisso para gravar no arquivo em tempo de execuo
ou a pgina da Web exibir um erro quando voc tentar atualizar o arquivo. Se voc tiver criado o arquivo
Authors.XML na pasta App_Data, as permisses so definidas automaticamente.
Para modificar o componente Business para permitir insero
1.
2.
3.
Salve o arquivo.
A prxima etapa alterar a pgina para que os usurios possam inserir novas
informaes de autor. Para o procedimento seguinte, voc ir usar o controle
DetailsView .
Para adicionar um controle para inserir dados
1.
2.
390
3.
4.
5.
2.
3.
391
Voc tambm deve ter uma compreenso geral de como trabalhar no Visual Web
Developer. Para uma introduo ao Visual Web Developer, consulte Explicao
passo a passo: Criando uma pgina da Web bsica no Visual Web Developer.
Criar pgina e site da Web
Na primeira parte da explicao passo a passo, voc criar uma pgina que voc
pode depurar.
Se voc j criou um site no Visual Web Developer (por exemplo, por ter seguido o
tpico Explicao passo a passo: Criando uma pgina da Web bsica no Visual Web
Developer), voc pode usar o site criado e pular para "Adicionando controles para
depurao" a seguir nesta explicao. Caso contrrio, crie um novo site e pgina
seguindo estes passos.
Para criar um site no sistema de arquivos
1.
2.
3.
4.
5.
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.
3.
4.
5.
6.
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.
Propriedades
Label
ID: CaptionLabel
Text: (empty)
TextBox
ID: NumberTextBox
Text: (empty)
Button
ID: SquareButton
393
Text: Square
ID: ResultLabel
Text: (empty)
Label
Observao
Clique duas vezes no controle Button role para criar um manipulador Click
para ele.
3.
Visual Basic
Sub SquareButton_Click(ByVal sender As Object, _ ByVal e As
System.EventArgs) Dim number As Integer Dim result As Integer number
= CInt(NumberTextBox.Text) result = Square(number) ResultLabel.Text
= CStr(number) & " squared is " & CStr(result) End Sub
C#
protected void SquareButton_Click(object sender, System.EventArgs e)
{ int number, result; number =
System.Convert.ToInt32(NumberTextBox.Text); result = Square(number);
ResultLabel.Text = NumberTextBox.Text + " squared is " +
result.ToString(); }
4.
Crie a funo que eleve o nmero ao quadrado. Inclua um erro no cdigo que
adicione o nmero a si mesmo em vez de multiplicar. O cdigo deve se
parecer com o exemplo a seguir.
Visual Basic
Function Square(number As Integer) As Integer Square = number +
number End Function
C#
int Square(int number ) { int Square; Square = number + number;
return Square; }
Voc tambm pode adicionar cdigo na pgina para alterar o texto do rtulo
dependendo se esta for a primeira vez que a pgina est sendo executada.
Para alterar a legenda do controle Label
1.
2.
394
Salve a pgina.
2.
3.
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.
Visual Basic
If Page.IsPostBack = False Then
C#
if(Page.IsPostBack == false)
3.
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.
3.
4.
Isso abre uma janela Watch onde voc pode especificar os valores que voc
deseja rastrear.
5.
396
7.
8.
9.
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();
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.
2.
3.
4.
5.
6.
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.
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.
Criando uma pgina ASP.NET com contedo que voc deseja exibir na pgina
mestra.
O .NET Framework.
Opcionalmente, um.jpg, .gif, ou outro arquivo grfico que voc possa usar
como um logotipo em sua pgina mestra. recomendvel que o logotipo no
seja maior do que 48 pixels de largura. Entretanto, a exibio de um logotipo
opcional e o tamanho exato do grfico no ser importante para a explicao
passo a passo.
Criando um site da Web
Se voc j tiver criado um site no Visual Web Developer (por exemplo, seguindo as
etapas do Passo-a-passo: Criando uma pgina bsica da Web em Visual Web
Developer), voc pode usar esse site e v para a prxima seo, "Criando a Pgina
mestra.". Caso contrrio, crie um novo site e pgina seguindo estas etapas.
Para criar um site do sistema de arquivos
1.
2.
399
5.
6.
A pgina mestra o modelo de como ser o aspecto de suas pginas. Nesta seo,
voc primeiro criar um pgina mestra. Ento, voc ir usar uma tabela para
formatar a pgina mestra com um menu, um logotipo, e um rodap que ser
exibido em cada pgina do seu site. Voc tambm vai trabalhar com um espao
reservado de contedo, que uma regio na pgina mestra que pode ser
substituda por informaes em uma pgina de contedo.
Para criar a pgina mestra
1.
2.
3.
4.
5.
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.
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.
4.
5.
6.
7.
8.
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.
401
2.
3.
4.
2.
Em Items, clique duas vezes no cone Add a root node para adicionar dois
itens de menu :
1.
2.
3.
5.
Se voc tiver um arquivo grfico disponvel para uso como um logotipo, siga
estas etapas para coloc-lo na pgina mestra:
1.
2.
3.
4.
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.
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.
402
Nesta explicao passo a passo, voc ir adicionar duas pginas com contedo para
a pgina mestra. A primeira uma Home Page e a segunda uma pgina do tipo
Sobre.
Para criar a Home Page
1.
2.
3.
4.
5.
6.
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.
2.
3.
4.
Pressione ENTER para criar uma nova linha vazia no controle Content, e em
seguida, digite Obrigada por visitar nosso site.
403
Salve a pgina.
Voc pode criar a pgina Sobre da mesma forma que voc criou a Home Page.
Para criar a pgina Sobre
1.
Use as mesmas etapas que voc usou para a Home Page para adicionar uma
nova pgina de contedo chamada About.aspx.
Certifique-se de anexar a nova pgina pgina Master1.Master como fez com
a Home Page.
2.
3.
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.
2.
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.
4.
2.
3.
4.
5.
6.
7.
8.
405
9.
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.
2.
Feche o navegador.
3.
4.
5.
Anotaes
H vrias outras questes que voc deve estar ciente ao trabalhar com uma pgina
mestra:
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.
406
2.
3.
4.
5.
6.
7.
8.
407
5.
6.
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.
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.
2.
3.
Anotaes
H vrias outras questes que voc deve estar ciente ao trabalhar com pginas
mestras dinmicas:
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,
409
Voc precisa adicionar o cdigo da pgina Home.aspx para cada pgina onde
voc deseja substituir a pgina mestra padro.
Prximas etapas
Aprenda como voc pode colocar pginas mestras em pginas mestras para
criar partes em componentes. Para obter detalhes, consulte Pginas Mestras
ASP.NET Aninhadas.
Criando seu prprio tema que inclui capas, que so usadas para definir o
aspecto dos controles individuais.
Pr-requisitos
O .NET Framework.
Criando o site da Web
410
Developer), voc pode usar esse site e ir para a prxima seo. Caso contrrio, crie
um novo site e pgina seguindo estas etapas.
Para criar um site do sistema de arquivos
1.
2.
3.
4.
5.
6.
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.
3.
4.
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.
411
2.
3.
4.
5.
Agora voc pode testar a pgina antes de que qualquer temas seja aplicado.
Observao
Se voc adicionar um arquivo de folhas de estilo em cascata (CSS) para a sua pasta sampleTheme, ele
ser aplicado a todas as pginas que usam o tema.
Para testar temas
1.
2.
3.
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.
5.
6.
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 :
Quanto a isso, se voc optar por usar um tema de folhas de estilo, as propriedades
do seu tema sero substitudas por qualquer coisa declarada localmente na pgina.
Da mesma forma, se voc usar um tema personalizado, as propriedades do seu
tema iro substituir qualquer coisa dentro a pgina local, e tambm em qualquer
tema de folhas de estilo em uso.
Para usar um tema de folhas de estilo e consultar ordem de prioridade
1.
2.
3.
4.
5.
6.
413
7.
8.
9.
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.
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.
3.
4.
5.
6.
7.
8.
414
2.
3.
4.
5.
6.
7.
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
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:
416
conectar a este banco de dados. Para obter detalhes, consulte Criar e configurar
o banco de dados de servios de aplicativos para o SQL Server.
Criar e configurar um site da Web
Esta explicao passo a passo requer que voc tenha uma identidade de usurio,
para que suas configuraes Web Parts possam ser mapeadas para voc. Se voc
j tiver um site configurado para usar associao (membership), recomendvel
que voc use esse site. Caso contrrio, voc pode criar um novo site e usar seu
nome de usurio do Windows atual como a identidade do usurio.
Para criar um novo site
No Visual Studio, crie um novo site da Web do ASP.NET. Para obter detalhes,
consulte Explicao passo a passo: Criar um site com associao (mebership) e
login de usurio (Visual Studio).
Criando uma pgina simples com Web Parts
Nesta parte da explicao passo a passo, voc vai criar uma pgina que usa
controles Web Parts para mostrar contedo esttico. A primeira etapa para
trabalhar com Web Parts consiste em criar uma pgina com dois elementos
estruturais necessrios. Primeiro, uma pgina Web Parts precisa de um controle
WebPartManager para controlar e coordenar todos os controles Web Parts.
Segundo, uma pgina Web Parts precisa de uma ou mais zonas, que so controles
compostos que contm controles WebPart ou outros controles de servidor e ocupam
uma regio especificada de uma pgina.
Observao
Voc no precisa fazer nada para permitir personalizao de Web Parts; esta ativada por padro para o
conjunto de controles Web Parts. Na primeira vez que executar uma pgina Web Parts em um site, o
ASP.NET configura um provedor de personalizao padro para armazenar as configuraes de
personalizao do usurio. Para obter mais informaes sobre personalizao, consulte Viso geral sobre
personalizao Web Parts.
Para criar uma pgina para conter controles Web Parts
1.
2.
3.
4.
5.
6.
417
7.
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.
2.
3.
4.
Salve o arquivo.
Depois, crie um controle de usurio que tambm pode ser adicionado pgina
como um controle Web Parts.
418
Adicione um novo controle de usurio da Web ao seu site para servir como
um controle de pesquisa denominado SearchUserControl.ascx, certificandose que a opo Place source code in a separate file est desmarcada.
Observao
O controle de usurio para esta explicao passo a passo no implementa a funcionalidade de pesquisa de
verdade; ele usado somente para demonstrar os recursos Web Parts.
2.
3.
4.
5.
6.
7.
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.
419
2.
3.
4.
5.
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
420
3.
4.
5.
421
422
2.
3.
4.
5.
6.
7.
423
Voc criou um controle de usurio que permite que voc altere os modos de
exibio e o layout da pgina e voc referenciou o controle na pgina da Web
primria.
Agora voc pode testar a funcionalidade de editar pginas e alterar layout.
Para testar alteraes de layout
1.
2.
3.
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.
5.
6.
7.
8.
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
2.
3.
4.
5.
6.
7.
8.
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.
2.
3.
4.
5.
6.
7.
426
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.
427
Se voc j criou um site Web no Microsoft Visual Studio (por exemplo, trabalhando
com o tpico Explicao Passo a Passo: Criando uma Pgina Web Bsica no Visual
Web Developer), voc pode usar esse site Web e ir para "Configurando Associao"
posteriormente nesta explicao passo a passo. Caso contrrio, crie um novo site
Web e uma pgina seguindo estas etapas.
Para criar um site Web local no IIS
1.
2.
3.
4.
5.
6.
7.
8.
Clique em Open.
A caixa de dilogo Choose Location fecha.
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.
428
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.
8.
429
2.
Na caixa Add New Access Rule, expanda o n para o seu site Web.
3.
4.
5.
6.
7.
Clique em Finish.
Agora voc terminou a configurao com o assistente. Ele fecha e voc
retorna para a guia Security da ferramenta Web Site Administration.
Configurando o Aplicativo para E-mail
Para parte desta explicao passo a passo, o aplicativo precisa ser ativado para
enviar mensagens de e-mail. Para enviar mensagens, seu aplicativo deve ter
acesso a um servidor Simple Mail Transport Protocol (SMTP), que encaminha
mensagens de e-mail do seu aplicativo para um destinatrio de email.
O IIS inclui o servidor virtual Default SMTP como um componente opcional, que
adequado para esta explicao passo a passo. Para obter mais informaes sobre
como configurar este servidor, consulte HOW TO: Instalar e Configurar os
Servidores Virtuais SMTP no IIS. Se voc estiver trabalhando em uma rede local,
contate o seu administrador de rede para obter informao sobre o acesso a um
servidor de e-mail.
Depois de ter configurado ou determinado como acessar um servidor SMTP, voc
deve configurar seu aplicativo para rotear as mensagens de e-mail para o servidor.
Voc pode fazer uma entrada em seu arquivo Web.config do site Web, que contm
uma srie de configuraes que determinam como o seu aplicativo executa.
Para configurar o aplicativo para usar um servidor SMTP especfico
1.
2.
3.
Se voc est usando o servidor virtual SMTP que est em seu computador,
digite localhost como o Server Name; caso contrrio, digite o nome do
servidor apropriado.
Inclua informao para o nmero da porta e para a autenticao de acordo
com os requisitos do seu servidor SMTP. Consulte o seu administrador para
obter mais informaes sobre como configurar estas opes.
4.
5.
430
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.
4.
2.
3.
431
2.
3.
4.
5.
6.
7.
Testando o Login
Agora voc pode testar a funcionalidade de login do seu aplicativo.
Para testar o login
1.
432
Isso configura o site para que, ao executar o site Web, a pgina Default.aspx
aparea primeiro.
2.
3.
4.
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.
2.
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.
433
3.
3.
4.
2.
3.
4.
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.
Agora voc pode adicionar um link para a home page que exibe a pgina de
registro. Para esta explicao, suponha que voc deseja exibir o link de registro
somente para os usurios que no esto autorizados.
Para criar um link de registro na home page
1.
2.
3.
2.
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.
6.
7.
8.
9.
435
2.
3.
4.
5.
6.
Agora voc pode adicionar um link para a home page que exibe a pgina de
alterao de senha. Voc disponibilizar o link apenas aos usurios que esto
conectados.
Para criar um link de alterao de senha na home page
1.
2.
3.
436
3.
4.
5.
Clique em Continue.
6.
7.
8.
9.
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.
437
2.
3.
4.
5.
6.
7.
4.
5.
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:
439
Pr-requisitos
Para concluir esta explicao passo a passo, ser necessrio:
2.
3.
4.
Clique em Browse.
5.
6.
7.
8.
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.
440
2.
3.
2.
2.
441
Aparece uma pgina que solicita que voc entre os valores dos parmetros
para o mtodo CelsiusToFahrenheit.
3.
4.
5.
6.
7.
Feche o navegador.
2.
3.
Clique em Browse.
4.
5.
6.
7.
8.
Clique em Open.
9.
442
2.
3.
4.
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
443
Propriedades
Textbox
IDTemperatureTextbox
Text: (vazio)
Button
IDConvertButton
Text: Convert
Label
IDFahrenheitLabel
Text: (vazio)
Label
IDCelsiusLabel
Text: (vazio)
3.
4.
5.
6.
7.
444
Voc pode depurar um servio da Web da mesma maneira que voc depura pginas
da Web.
Observao
O Visual Web Developer Express Edition e o Visual Studio Standard Edition no oferecem suporte passo
a passo por dentro das chamadas em um servio da Web de uma pgina que o referencia. Se voc estiver
usando o Visual Web Developer Express Edition ou o Visual Studio Standard Edition, ignore esta seo e
as seguintes. Para obter mais informaes sobre como depurar sites da Web, consulte Passo-a-passo:
Depurando pginas da Web no Visual Web Developer.
Para iniciar, voc deve configurar o site que contm o servio da Web para ativar a
depurao.
Para ativar a depurao no site de servios da Web
1.
2.
3.
4.
5.
6.
7.
8.
Agora voc deve ativar a depurao para o site que usa o servio da Web.
Para ativar a depurao do site
1.
2.
3.
445
4.
5.
6.
7.
O site e o servio da Web esto configurados para a depurao, para que voc
agora possa comear a depurar. Voc ir iniciar na pgina Default.aspx e depurar o
cdigo at que o cdigo chame o servio da Web. O depurador alternar para o
servio da Web e continuar a depurao atravs do cdigo.
Para depurar a pgina e o servio da Web
1.
2.
3.
4.
5.
6.
446
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.
Para concluir o explicao passo a passo, voc precisar ter acesso a uma mquina
que atende aos requisitos para criar um projeto da Web. Para obter mais
informaes, consulte Tour guiado da criao de sites no Visual Web Developer e
Passo a passo: Criando e usando um servio da Web do ASP.NET no Visual Web
Developer.
Criar projeto servio XML da Web
O Visual Studio fornece um modelo de projeto ASP.NET Web Service para ajud-lo
a criar XML Web Services no Visual Basic e Visual C#.
Para criar um ASP.NET Web Service Project
1.
2.
3.
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.
2.
449
O Visual Studio oferece vrios mtodos para criar e executar um XML Web Services
a partir da IDE, tais como:
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.
2.
3.
4.
450
7.
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.
4.
5.
6.
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.
451
2.
3.
4.
5.
Finalmente, para criar um aplicativo cliente que acesse esse XML Web Services,
consulte um destes procedimentos:
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.
452
2.
3.
2.
453
Voc ir adicionar um mtodo pblico para esta classe e expor esse mtodo
como parte do servio da Web XML. Localize o mtodo HelloWorld de
exemplo:
public: [System::Web::Services::WebMethod] String ^HelloWorld();
// TODO: Add the methods of your Web Service here
Substituir esse mtodo com o seguinte:
public: [System::Web::Services::WebMethod( Description="Converts
temperatures from F to C.")] double ConvertTemperature(double
dFahrenheit);
Anexar o System::Web::Services::WebMethod atributo a este mtodo
indica que voc deseja o mtodo exposto como parte do servio da Web XML.
A propriedade description deste atributo est includo na pgina ajuda de
Service e na pgina de ajuda Service Methods. Para obter mais informaes,
consulte WebMethodAttribute.
4.
5.
6.
Salve a soluo.
7.
O Visual Studio oferece vrios mtodos para criar e executar um XML Web Services
a partir da IDE, tais como:
Start 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++).
454
Para usar um ponto de interrupo e iniciar o XML Web Services com depurao
1.
2.
3.
4.
5.
6.
7.
3.
4.
455
Observao
Por padro, o instalador usa o nome do projeto de implantao ao criar o diretrio virtual em seu servidor
de implantao.
5.
6.
7.
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
456
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.
3.
4.
5.
6.
457
O Assistente para Servidor ATL fornece um ReadMe.txt arquivo que descreve os projetos e arquivos
gerados no Solution Explorer.
o
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.
2.
3.
4.
Salve a soluo.
5.
458
4.
5.
6.
7.
Clique em OK.
8.
9.
459
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
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.
3.
4.
5.
Descoberta de XML Web Services o processo pelo qual um cliente localiza um XML
Web Services e obtm sua descrio de servio. O processo de descoberta de XML
Web Services no Visual Studio envolve interrogar um site da Web seguindo um
algoritmo predeterminado. A meta do processo localizar a descrio de servio,
que um documento XML que usa o WSDL (Web Services Description Language).
Para obter mais informaes, consulte Descoberta de XML Web Service.
A descrio de servio descreve quais servios esto disponveis e como interagir
com os servios. Sem uma descrio de servio, impossvel interagir com um XML
Web Services programaticamente. Para obter mais informaes, consulte Descrio
do XML Web Service.
O aplicativo precisa um meio para se comunicar com o servio da Web XML e para
localiz-lo em tempo de execuo. Adicionar uma referncia da Web ao seu projeto
para o XML Web Services faz isso por gerar uma classe proxy que interfaceia com o
XML Web Services e fornece uma representao local do XML Web Services. Para
obter mais informaes, consulte Referncias da Web e COMO: Gerar um Proxy de
Servio da Web XML.
Adicionar uma referncia da Web
1.
2.
Na 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.
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.
461
3.
Salve a soluo.
4.
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
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.
2.
3.
4.
5.
6.
463
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.
3.
4.
5.
2.
3.
Clique em Finish.
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.
3.
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,
2.
465
Add the following #include statements after the existing #include for
<atlbase.h>:
#include "ConvertSvc.h" #include <conio.h> #include <iostream>
Observao
O nome do arquivo de cabealho gerado quando adicionando uma referncia da Web pode diferir daquele
mostrado acima como ConvertSvc.h. Para obter o nome correto do arquivo de cabealho, examine o
contedo da seo janela sada do log de compilao (BuildLog.htm no diretrio Arquivos intermedirio)
ou Output Window o. O nome de arquivo correto aparece em uma linha que lembra o seguinte:
/out:ConvertSvc.h. Para exibir no menu View Aponte para Other Windows e clique em Output.
o Output Window,
4.
5.
Salve a soluo.
7.
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:
466
2.
3.
4.
5.
6.
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
467
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.
2.
3.
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.
3.
4.
5.
6.
469
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.
4.
5.
6.
7.
8.
9.
470
2.
3.
4.
5.
6.
7.
8.
9.
2.
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();
471
4.
5.
6.
7.
472
No menu File, aponte para Add e escolher New Project, para abrir a Add
New Project caixa de dilogo.
2.
3.
4.
2.
3.
2.
473
3.
4.
5.
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.
3.
474
Visual Basic
Private Sub SaveData_Click(ByVal sender As System.Object, _ ByVal e
As System.EventArgs) Handles SaveData.Click If
CustomerData.HasChanges Then Dim ws As New localhost.Service()
ws.Credentials = System.Net.CredentialCache.DefaultCredentials
ws.UpdateCustomers(CustomerData) End If End Sub
C#
private void SaveData_Click(object sender, System.EventArgs e) { if
(CustomerData.HasChanges()) { localhost.Service ws = new
localhost.CustomersService(); ws.Credentials =
System.Net.CredentialCache.DefaultCredentials;
ws.UpdateCustomers(CustomerData); } }
Para executar o aplicativo
1.
2.
3.
4.
Implantar a soluo
Considere segurana
475
476