Você está na página 1de 188

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

O F F I C I A L M I C R O S O F T L E A R N I N G P R O D U C T

10714A

Desenvolvimento de aplicativos Web com


o Microsoft Visual Studio 2010
Contedo complementar

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

As informaes includas neste documento, inclusive URLs e referncias a outros sites na Internet, esto
sujeitas a alterao sem aviso prvio. Salvo indicao contrria, os nomes de empresas, organizaes,
produtos, nomes de domnios, endereos de email, logotipos, pessoas, lugares e acontecimentos aqui
mencionados so fictcios e de nenhuma forma pretendem representar empresas, organizaes,
produtos, nomes de domnios, endereos de email, logotipos, pessoas, lugares ou acontecimentos. O
cumprimento das leis de direitos autorais de exclusiva responsabilidade do usurio. Sem limitar os
direitos autorais, nenhuma parte deste documento pode ser reproduzida, armazenada ou apresentada
em um sistema de recuperao ou transmitida de qualquer forma ou por qualquer meio (eletrnico,
mecnico, fotocpia, gravao ou de outra forma), ou para qualquer fim, sem a permisso por escrito
da Microsoft Corporation.
A Microsoft pode ter patentes, patentes pendentes, marcas comerciais, direitos autorais ou outros
direitos de propriedade intelectual que abordam o assunto em questo neste documento. Exceto se
expressamente previsto em um acordo de licena por escrito da Microsoft, o fornecimento deste
documento no concede licena para essas patentes, marcas comerciais, direitos autorais ou outra
propriedade intelectual.
Os nomes de fabricantes, produtos ou URLs fornecidos servem apenas para fins informativos e a
Microsoft no faz promessas nem oferece garantias expressas, implcitas ou legais referentes a esses
fabricantes ou ao uso dos produtos com qualquer tecnologia Microsoft. A incluso de um fabricante ou
produto no implica endosso do fabricante ou produto por parte da Microsoft. So fornecidos links
para sites de terceiros. Esses sites no so controlados pela Microsoft, a qual no se responsabiliza pelo
contedo de qualquer site vinculado ou qualquer link existente em um site vinculado, ou qualquer
mudana ou atualizao em tais sites. A Microsoft no se responsabiliza pela divulgao por webcast ou
qualquer outra forma de transmisso recebida de qualquer site vinculado. A Microsoft est fornecendo
esses links para sua convenincia e a incluso de tais links no implica endosso do site ou de outros
produtos nele contidos por parte da Microsoft.
2011 Microsoft Corporation. Todos os direitos reservados.
Microsoft e as marcas comerciais listadas em
http://www.microsoft.com/about/legal/en/us/IntellectualProperty/Trademarks/EN-US.aspx so marcas
comerciais do grupo de empresas da Microsoft.Todas as outras marcas comerciais pertencem aos
respectivos proprietrios.

Nmero do produto: 10714A


Lanamento: 06/2011

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

TERMOS DE LICENA DA MICROSOFT


OFFICIAL MICROSOFT LEARNING PRODUCTS EDIO DO ALUNO
Verses de pr-lanamento e final
Estes termos de licena so um acordo entre a Microsoft Corporation e voc. Por favor, leia-os. Eles se aplicam
ao contedo licenciado supracitado, que inclui a mdia na qual ele est contido, caso haja uma.
Os termos tambm se aplicam aos seguintes itens da Microsoft:

atualizaes,

suplementos,

servios via Internet e

servios de suporte

referentes a este contedo licenciado, a menos que outros termos acompanhem esses itens. Nesse caso, tais
termos se aplicam.
Ao usar o contedo licenciado, voc estar aceitando estes termos. Se voc no os aceitar, no use o
contedo licenciado.
Se cumprir estes termos de licena, voc ter os direitos a seguir.

1. VISO GERAL.
Contedo Licenciado. O contedo licenciado inclui software, materiais impressos, materiais acadmicos
(online e eletrnicos) e qualquer mdia associada.
Modelo de Licena. O contedo licenciado licenciado por cpia por dispositivo.

2. DIREITOS DE INSTALAO E USO.


a. Dispositivo Licenciado. O dispositivo licenciado o dispositivo no qual voc usa o contedo
licenciado. Voc poder instalar e usar uma nica cpia do contedo licenciado no dispositivo
licenciado.

b. Dispositivo Porttil. Voc poder instalar uma outra cpia em um dispositivo porttil para uso pelo
nico usurio principal do dispositivo licenciado.

c.

Separao de Componentes. Os componentes do contedo licenciado so licenciados como uma


nica unidade. Voc no poder separar os componentes e instal-los em dispositivos diferentes.

d. Programas de Terceiros. O contedo licenciado poder conter programas de terceiros. Estes termos
de licena se aplicaro ao uso que voc fizer desses programas de terceiros, a menos que outros termos
acompanhem esses programas.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

3. VERSES DE PR-LANAMENTO. Se o contedo licenciado for uma verso de pr-lanamento (beta),


as seguintes clusulas sero aplicveis alm de outros termos neste contrato:
a.

Contedo Licenciado de Pr-Lanamento. Este contedo licenciado uma verso de pr-lanamento. Ele
no pode conter as mesmas informaes e/ou funcionar da mesma maneira que uma verso definitiva
do contedo licenciado. Podemos alter-lo na verso comercial definitiva. Alm disso, no podemos
lanar uma verso comercial. Voc dever informar o disposto acima de maneira clara e visvel a todos
os Alunos participantes de uma Sesso de Treinamento Autorizado e a todos os Instrutores que
ministrarem treinamento nessas Sesses de Treinamento Autorizado. Alm disso, informe que voc ou a
Microsoft no tem qualquer obrigao de fornecer nenhum outro contedo, incluindo, mas sem
limitao, a verso lanada em carter definitivo do Contedo Licenciado do Curso.

b.

Comentrios. Se voc concordar em enviar Microsoft comentrios sobre o contedo licenciado,


estar dando Microsoft, a ttulo gratuito, o direito de usar, compartilhar e comercializar seus
comentrios de qualquer maneira e para qualquer finalidade. Alm disso, voc concede a terceiros, sem
custos, todos os direitos de patente necessrios para que seus produtos, suas tecnologias e seus servios
usem, ou estabeleam conexo com, qualquer parte especfica de um software, Contedo Licenciado ou
servio da Microsoft que inclua os comentrios. Voc no dever enviar comentrios sujeitos a uma
licena que exija da Microsoft o licenciamento do seu software ou da sua documentao a terceiros em
virtude da incluso dos seus comentrios nesses elementos. Esses direitos permanecero em vigor aps
o trmino deste contrato.

c.

Informaes Confidenciais. O contedo licenciado, incluindo qualquer visualizador, interface


de usurio, recursos e documentao que porventura estejam presentes no contedo licenciado,
confidencial e de propriedade da Microsoft e de seus fornecedores.
i.

Uso. Durante cinco anos aps a instalao do contedo licenciado ou do seu lanamento comercial,
o que ocorrer primeiro, voc no poder divulgar informaes confidenciais a terceiros. Voc
poder divulgar informaes confidenciais apenas aos seus funcionrios e consultores que tenham
a necessidade de conhecer essas informaes. Voc dever firmar contratos por escrito com eles
para proteger essas informaes confidenciais, pelo menos,
de maneira idntica a este contrato.

ii.

Continuidade da obrigao. Seu dever de proteger as informaes confidenciais permanecer


aps o trmino deste contrato.

iii. Excluses. Voc poder divulgar informaes confidenciais para atender ordens judiciais ou do
Poder Pblico. Voc dever enviar Microsoft uma notificao prvia por escrito permitindo que ela
busque uma medida cautelar ou de outra forma proteja as informaes. Entre as informaes
confidenciais no esto informaes que

d.

passem a ser de conhecimento pblico atravs de atos lcitos;

voc tenha recebido de terceiros que no violaram obrigaes de sigilo para com a Microsoft
ou seus fornecedores; ou

voc tenha desenvolvido de forma independente.

Prazo. O prazo deste contrato de verses de pr-lanamento (i) a data que a Microsoft informar a
voc como data final de uso da verso beta, ou (ii) o lanamento comercial da verso definitiva do
contedo licenciado, o que for anterior (prazo do beta).

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

e.

Uso. Voc dever deixar de usar todas as cpias da verso beta na resciso ou no trmino dessa verso,
bem como destruir todas as cpias dela em seu poder ou sob seu controle.

f.

Cpias. A Microsoft informar os Centros de Treinamento Autorizados se eles podem produzir cpias
da verso beta (seja na verso impressa e/ou em CD) e distribuir essas cpias aos Alunos e/ou
Instrutores. Caso a Microsoft permita essa distribuio, voc dever cumprir todos os termos adicionais
que a Microsoft apresentar em relao a essas cpias e distribuio.

4. DIREITOS DE USO E/OU REQUISITOS DE LICENCIAMENTO ADICIONAIS.


a. Elementos de Mdia e Modelos. Voc poder usar imagens, clip-arts, animaes, sons, msicas,

formas, videoclipes e modelos fornecidos com o contedo licenciado somente para seu uso em
treinamento pessoal. Caso deseje usar esses elementos de mdia ou modelos para qualquer outra finalidade,

v para www.microsoft.com/permission para saber se permitido.

b. Materiais Acadmicos. Caso o contedo licenciado inclua materiais acadmicos (como white papers,

laboratrios, testes, folhas de dados e perguntas freqentes), voc poder copiar e usar esses materiais.
No permitido fazer modificaes nos materiais acadmicos nem imprimir livros (eletrnicos ou em
verso impressa) integralmente. No caso da reproduo de materiais acadmicos, voc concorda que:

o uso dos materiais acadmicos ser exclusivamente para sua referncia ou treinamento pessoal;
voc no republicar nem postar os materiais acadmicos em nenhum computador de rede, nem os
transmitir em nenhuma mdia;

voc incluir o aviso de direitos autorais original dos materiais acadmicos, ou um aviso de direitos
autorais em benefcio da Microsoft no formato indicado abaixo:
Formato do Aviso:
2011 Reimpresso para uso como referncia pessoal apenas com a permisso da
Microsoft Corporation. Todos os direitos reservados.
Microsoft e Windows so marcas registradas ou comerciais da Microsoft Corporation
nos Estados Unidos e/ou em outros pases. Outros nomes de empresas e produtos aqui
mencionados so marcas comerciais de seus respectivos proprietrios.

c.

Cdigo Distribuvel. O contedo licenciado poder conter cdigo que voc tem permisso de
distribuir nos programas que desenvolver, respeitados os termos abaixo.

i.

ii.

Direito de Uso e Distribuio. O cdigo e os arquivos de texto listados abaixo constituem


Cdigo Distribuvel.

Arquivos REDIST.TXT. Voc poder copiar e distribuir a forma de cdigo objeto do cdigo
listado nos arquivos REDIST.TXT.

Cdigo de Exemplo. Voc poder modificar, copiar e distribuir a forma de cdigo objeto e
cdigo-fonte do cdigo identificado como exemplo (sample).

Distribuio por Terceiros. Voc poder permitir que os distribuidores de seus programas
copiem e distribuam o Cdigo Distribuvel como parte desses programas.

Requisitos de Distribuio. Para qualquer Cdigo Distribuvel que distribua, voc dever:

adicionar ao Cdigo Distribuvel, em seus programas, funcionalidades primrias significativas;

exigir que os distribuidores e usurios finais externos aceitem termos que protejam o cdigo,
pelo menos tanto quanto este contrato;

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

exibir o seu aviso de direitos autorais vlido em seus programas; e

indenizar, isentar de responsabilidades e defender a Microsoft de quaisquer reivindicaes,


incluindo honorrios advocatcios, decorrentes da utilizao ou distribuio de seus programas.

iii. Restries Distribuio. vedado:

alterar quaisquer avisos de direitos autorais, marcas registradas ou patentes que apaream no
Cdigo Distribuvel;

usar marcas registradas da Microsoft nos nomes de seus programas ou de forma a sugerir que
seus programas derivam da Microsoft ou so endossados por ela;

distribuir Cdigo Distribuvel para execuo em uma plataforma que no seja Windows;

incluir Cdigo Distribuvel em programas mal-intencionados, enganosos ou ilcitos; ou

modificar ou distribuir o cdigo-fonte de qualquer Cdigo Distribuvel de modo que qualquer


parte do mesmo fique sujeita a uma Licena Excluda. Uma Licena Excluda significa qualquer
licena que requeira, como condio de uso, modificao ou distribuio, que:

o cdigo seja divulgado ou distribudo na forma de cdigo-fonte; ou

outras pessoas tenham o direito de modific-lo.

5. SERVIOS VIA INTERNET. A Microsoft poder fornecer servios via Internet com o contedo licenciado. Ela
poder alter-los ou cancel-los a qualquer momento. Voc no poder usar esses servios de maneira que
possa danific-los ou prejudicar seu uso por outros. Em nenhuma hiptese voc poder usar os servios
para tentar obter acesso no autorizado a qualquer servio, dado, conta ou rede.

6. ESCOPO DA LICENA. O contedo licenciado licenciado, no vendido. Este contrato apenas outorga a
voc alguns direitos de uso do contedo licenciado. A Microsoft se reserva todos os outros direitos. Salvo
quando a legislao aplicvel lhe conceder mais direitos do que esta limitao, voc s poder usar o
contedo licenciado conforme expressamente permitido neste contrato. Ao fazer isso, voc dever cumprir
quaisquer limitaes tcnicas no contedo licenciado que permitam o seu uso apenas de determinadas
maneiras. vedado(a):

a divulgao dos resultados de qualquer teste de desempenho do contedo licenciado a terceiros sem
o prvio consentimento, por escrito, da Microsoft;

a resoluo de limitaes tcnicas no contedo licenciado;

a realizao de engenharia reversa, descompilao ou desmontagem do contedo licenciado, exceto e


somente na medida em que esta atividade seja expressamente permitida pela legislao aplicvel, no
obstante esta limitao;

a produo de mais cpias do contedo licenciado do que aquelas especificadas neste contrato ou
permitidas pela legislao aplicvel, no obstante esta limitao;

a publicao do contedo licenciado para a cpia por outras pessoas;

transferir o contedo licenciado marcado como beta ou pr-lanamento a terceiros;

permitir que outros acessem ou usem o contedo licenciado;

o aluguel, arrendamento ou emprstimo do contedo licenciado; ou

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

o uso do contedo licenciado em servios de hospedagem comercial de contedo licenciado.

Os direitos de acesso ao software para servidor que possa estar includo com o contedo licenciado,
inclusive os Discos Rgidos Virtuais, no concedem a voc nenhum direito para implementar patentes
da Microsoft ou outras propriedades intelectuais da Microsoft em softwares ou dispositivos que
acessem o servidor.

7. CPIA DE BACKUP. Voc poder fazer uma cpia de backup do contedo licenciado. Voc poder us-la
apenas para reinstalar o contedo licenciado.

8. TRANSFERNCIA PARA OUTRO DISPOSITIVO. Voc poder desinstalar o contedo licenciado e instal-lo
em outro dispositivo para seu uso pessoal em treinamento. Voc no poder fazer isso para compartilhar
esta licena com vrios dispositivos.

9. TRANSFERNCIA PARA TERCEIROS. Voc no poder transferir a terceiros essas verses marcadas como

beta ou pr-lanamento. Para as verses definitivas, esses termos sero aplicveis: O primeiro usurio do
contedo licenciado poder transferi-lo junto com este contrato diretamente a um terceiro. Antes da
transferncia, tal terceiro dever concordar que este contrato se aplica transferncia e ao uso do contedo
licenciado. O primeiro usurio dever desinstalar o contedo licenciado antes de transferi-lo separadamente
do dispositivo. O primeiro usurio no poder reter cpias.

10. RESTRIES EXPORTAO. O contedo licenciado est sujeito s leis e normas de exportao dos

Estados Unidos. Voc dever cumprir todas as leis e normas nacionais e internacionais de exportao que se
aplicam ao contedo licenciado. Essas leis incluem restries a destinos, usurios finais e uso final. Para
obter informaes adicionais, visite a pgina www.microsoft.com/exporting.

11. SOFTWARE/CONTEDO LICENCIADO NO COMERCIALIZVEL (NFR ou Not For Resale).

vedada a venda de software ou contedo licenciado identificado como NFR ou Not for Resale (No
Comercializvel).

12. EDIO ACADMICA. Voc dever ser um Usurio Educacional Qualificado para usar contedo

licenciado identificado como Academic Edition ou AE. Caso voc no saiba se ou no um Usurio
Educacional Qualificado, visite a pgina www.microsoft.com/education ou contate a afiliada da Microsoft
em seu pas.

13. CONTRATO INTEGRAL. Este contrato, e os termos dos suplementos, das atualizaes, dos servios via
Internet e dos servios de suporte usados por voc, constituem o contrato integral para o contedo
licenciado e os servios de suporte.

14. LEGISLAO APLICVEL.


a. Nos Estados Unidos. Se voc tiver adquirido o contedo licenciado nos Estados Unidos, as leis do

Estado de Washington regero a interpretao deste contrato e sero aplicveis s reclamaes de


violao do mesmo, independentemente dos princpios de conflito de leis. As leis do Estado onde voc
vive regero todas as outras reclamaes, incluindo leis de defesa do consumidor, concorrncia desleal
e obrigaes extracontratuais.

b. Fora dos Estados Unidos. Se voc tiver adquirido o contedo licenciado em qualquer outro pas,
as leis desse pas sero aplicveis.

15. EFEITO LEGAL. Este contrato descreve alguns direitos legais. Voc poder ter outros direitos de acordo com
as leis do seu pas. Voc tambm poder ter direitos em relao ao terceiro de quem o contedo licenciado
foi adquirido. Este contrato no alterar os seus direitos de acordo com as leis do seu pas, caso as leis do
seu pas no o permitam.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

16. ISENO DE RESPONSABILIDADE. O CONTEDO LICENCIADO LICENCIADO NO ESTADO EM QUE SE


ENCONTRA. O RISCO DE US-LO RESPONSABILIDADE SUA. A MICROSOFT NO OFERECE
GARANTIAS OU CONDIES EXPRESSAS. VOC PODER TER DIREITOS DE CONSUMIDOR
ADICIONAIS DE ACORDO COM SUAS LEIS LOCAIS, OS QUAIS ESTE CONTRATO NO PODER
ALTERAR. NA EXTENSO PERMITIDA PELAS LEIS LOCAIS, A MICROSOFT EXCLUI AS GARANTIAS
IMPLCITAS DE COMERCIALIZAO, ADEQUAO A UMA FINALIDADE ESPECFICA E NO-VIOLAO.

17. LIMITAO E EXCLUSO DE RECURSOS E DANOS. VOC PODE RECUPERAR DA MICROSOFT E DE SEUS

FORNECEDORES APENAS DANOS DIRETOS LIMITADOS A US$ 5,00 (CINCO DLARES AMERICANOS).
NO POSSVEL RECUPERAR OUTROS DANOS, INCLUINDO CONSEQENCIAIS, LUCROS CESSANTES,
ESPECIAIS, INDIRETOS OU INCIDENTAIS.

Esta limitao aplica-se a:

qualquer assunto relacionado ao contedo licenciado, ao software, aos servios, ao contedo (incluindo
cdigo) em sites de Internet de terceiros ou a programas de terceiros; e

reclamaes por violao contratual, quebra de garantia ou condio, responsabilidade objetiva,


negligncia ou outra responsabilidade extracontratual, na extenso permitida pela legislao aplicvel.

Tambm ser aplicada ainda que a Microsoft saiba ou tivesse que saber sobre a possibilidade dos danos. A
limitao ou excluso acima poder no se aplicar a voc pelo fato de o seu pas no permitir a excluso ou
limitao de danos incidentais, conseqenciais ou outros.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Mdulo 1
Viso geral da arquitetura e do design de aplicativos Web
Sumrio:
Lio 1: Viso geral do IIS 7.0

10

Lio 2: Viso geral do ASP.NET 4.0

18

Lio 3: Introduo ao MVC Framework

20

Lio 4: Viso geral do ciclo de vida de uma solicitao

24

10

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Lio 1

Viso geral do IIS 7.0


Sumrio:
Perguntas e respostas

11

Passos detalhados de demonstrao

12

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Perguntas e respostas
Principais recursos do IIS 7.0
Pergunta: Quais so os benefcios oferecidos pela arquitetura modular do IIS? Indique pelo
menos um.
Resposta: Com essa arquitetura possvel adicionar novos recursos de maneira rpida e fcil,
alterar um recurso sem afetar os outros, e tambm ativar e desativar recursos de acordo com
suas necessidades.

11

12

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Passos detalhados de demonstrao


Demonstrao: Administrao do IIS 7.0 com o Gerenciador do IIS
Esta demonstrao ilustrar os diversos recursos do IIS e como administrar suas funes.
Esses recursos compreendem:

Criao de um novo site

Autenticao

Permisses

Cadeias de conexo

Configuraes de aplicativos

Inicializao e interrupo de um site

Reciclagem do pool de aplicativos

Criar um novo site


1.

No menu Iniciar, aponte para Ferramentas Administrativas, clique com o boto direito do mouse
em Gerenciador do Servios de Informaes da Internet (IIS) e, em seguida, clique em Executar
como administrador.

Na caixa de dilogo Controle de Conta de Usurio, na caixa Senha, digite Pa$$w0rd e clique
em Sim.

2.

No Gerenciador do Servios de Informaes da Internet (IIS), expanda 10714A-GEN-DEV


(10714A-GEN-DEV\Admin) e, depois, Sites.

3.

Clique com o direito do mouse em Sites e, em seguida, clique em Adicionar Site.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

13

4.

Na caixa de dilogo Adicionar Site, especifique as configuraes conforme mostrado no exemplo


a seguir. Voc precisar criar a subpasta demo na pasta C:\inetpub\.

5.

Clique em OK.

Alterar a autenticao
1.

No painel Conexes, clique em Demo.

2.

No painel Pgina inicial Demo, na seo IIS, clique duas vezes em Autenticao.

3.

No painel Autenticao, clique com o boto direito do mouse em Autenticao Bsica e,


em seguida, clique em Habilitar.

14

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Editar permisses
1.

No painel Conexes, clique em Demo.

2.

No painel Aes, clique em Editar Permisses.

3.

Na caixa de dilogo Propriedades de inetpub, clique em Segurana.

4.

Clique em Editar.

5.

Na caixa de dilogo Permisses para inetpub, clique em Adicionar.

6.

Na caixa de dilogo Selecionar Usurios ou Grupos, na caixa Digite os nomes de objeto a


serem selecionados, digite IIS_IUSRS, clique em Verificar Nomes e, em seguida, clique em OK.

7.

Na caixa de dilogo Permisses para inetpub, clique em OK.

8.

Na caixa de dilogo Propriedades de inetpub, clique em OK.

Definir cadeia de conexo


1.

No painel Conexes, clique em Default Web Site e, em seguida, clique em Demo.

2.

No painel Pgina inicial Demo, na seo ASP.NET, clique duas vezes em Cadeias de Conexo.

3.

No painel Aes, clique em Adicionar.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

4.

Na caixa de dilogo Adicionar Cadeia de Conexo, especifique as configuraes conforme


mostrado na ilustrao a seguir.

5.

Clique em OK.

6.

No painel Cadeias de Conexo, clique em Exibio de Contedo.

7.

No painel Contedo Demo, clique em web.config.


Observao: um arquivo web.config adicionado ao diretrio raiz do site.

8.

No painel Conexes, clique com o boto direito do mouse em Demo e, em seguida, clique em
Explorar.

9.

No Windows Explorer, clique duas vezes em web.config.


Observao: no Microsoft Visual Studio 2010, voc poder ver a nova cadeia de conexo
adicionada ao arquivo web.config.

10. Feche o Microsoft Visual Studio 2010.


11. Feche o Windows Explorer.

15

16

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Especificar as configuraes do aplicativo


1.

No painel Conexes, clique em Default Web Site e, em seguida, clique em Demo.

2.

No painel Contedo Demo, clique em Exibio de Recursos.

3.

No painel Pgina inicial Demo, na seo ASP.NET, clique duas vezes em Configuraes de
Aplicativo.

4.

No painel Aes, clique em Adicionar.

5.

Na caixa de dilogo Adicionar Configurao do Aplicativo, especifique as configuraes de


acordo com a ilustrao a seguir.

6.

Clique em OK.

7.

No Windows Explorer, clique duas vezes em web.config.


Observao: no Microsoft Visual Studio 2010, voc poder ver a nova configurao de
aplicativo adicionada ao arquivo web.config.

8.

Feche o Microsoft Visual Studio 2010.

9.

Feche o Windows Explorer.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

17

Reiniciar o site
1.

No painel Conexes, clique em Default Web Site e, em seguida, clique em Demo.

2.

No painel Aes, na seo Gerenciar Site, clique em Reiniciar.

Reciclar um pool de aplicativos


1.

No painel Conexes, clique em Pools de Aplicativos.

2.

No painel Pools de Aplicativos, clique em DefaultAppPool e, no painel Aes, na seo Tarefas


de Pool de Aplicativos, clique em Reciclar.

3.

Feche o Gerenciador do Servios de Informaes da Internet (IIS).

18

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Lio 2

Viso geral do ASP.NET 4.0


Sumrio:
Perguntas e respostas

19

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Perguntas e respostas
Novos recursos do ASP.NET 4.0
Pergunta: Como a compactao do estado de sesso serializado habilitada?
Resposta: Para habilitar a compactao do estado de sesso serializado preciso definir o
valor da opo de configurao compressionEnabled como verdadeiro.

19

20

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Lio 3

Introduo ao MVC Framework


Sumrio:
Perguntas e respostas

21

Passos detalhados de demonstrao

22

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Perguntas e respostas
O que o MVC Framework?
Pergunta: Quais as vantagens de separar as questes de estruturas de dados, apresentao e
lgica do aplicativo?
Resposta possvel: A separao das preocupaes possibilita atualizaes autnomas e
facilita a manuteno.

Demonstrao: Explorao de um aplicativo MVC


Pergunta: Quais outros elementos voc reconheceu na soluo MVC?
Respostas: Pode variar, mas os controladores, as exibies e os modelos, bem como a
extenso .aspx e as pginas mestras.

21

22

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Passos detalhados de demonstrao


Demonstrao: Explorao de um aplicativo MVC
Explorao do aplicativo MVC da Adventure Works
1.

Abra o Microsoft Visual Studio 2010.

2.

No menu Iniciar de 10714A-GEN-DEV, aponte para Todos os Programas, clique em


Microsoft Visual Studio 2010 e, em seguida, clique em Microsoft Visual Studio 2010.

Crie um novo projeto do MVC.


a.

Na janela Start Page Microsoft Visual Studio, no menu File, clique em New Project ou
pressione CTRL+SHIFT+N.

b.

Na caixa de dilogo New Project, no painel esquerdo, na seo Installed Templates, expanda
Visual C# ou Visual Basic e clique em Web.

c.

Na caixa de dilogo New Project, no painel central, clique em ASP.NET MVC 2 Web
Application.

d.

Na caixa de dilogo New Project, no painel central, na caixa Name, digite


DemoMvcApplication, na caixa Location, digite D:\Demofiles\Module 01\Demo 02 e clique
em OK.

3.

Na caixa de dilogo Create Unit Test Project, selecione a opo No, do not create a unit test
project e clique em OK.

4.

Exiba a pasta Controllers.

No Solution Explorer, expanda a pasta Controllers.

Observao: observe que todos os arquivos de cdigo tm o sufixo Controller.

5.

Exiba a pasta Models.

No Solution Explorer, expanda a pasta Models.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

6.

Exiba todo o cdigo do arquivo AccountModels.


a.

No Solution Explorer, clique duas vezes no arquivo de cdigo AccountModels.cs ou


AccountModels.vb.

b.

Na janela AccountModels.cs ou AccountModels.vb, pressione CTRL+M, CTRL+L.

c.

Role a janela para baixo e exiba as diversas regies do cdigo.

Observao: o arquivo de cdigo de modelo contm as estruturas de dados desse


aplicativo Web e as classes que controlam a lgica para se trabalhar com o
armazenamento de dados.

d.
7.

Na janela AccountModels.cs ou AccountModels.vb, clique no boto Close.

Exiba a pasta Views.

No Solution Explorer, expanda a pasta Views.

Observao: vrias pastas compartilham seu nome com os dos controladores contidos na
pasta Controllers.

8.

Exiba a pasta Views/Shared.

No Solution Explorer, expanda a pasta Views/Shared.

Observao: a pasta Shared contm as pginas mestras, os controles de usurio e as pginas


compartilhadas no aplicativo Web MVC.

9.

Feche o Microsoft Visual Studio 2010.

Na janela DemoMvcApplication Microsoft Visual Studio 2010, clique no boto Close.

23

24

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Lio 4

Viso geral do ciclo de vida de uma solicitao


Sumrio:
Perguntas e respostas

25

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

25

Perguntas e respostas
Ciclo de vida de uma solicitao de formulrios da Web
Pergunta: O que so dados de postback?
Respostas: Dados de postback so dados disponveis no elemento do formulrio HTML.

Ciclo de vida de uma solicitao do MVC


Pergunta: Qual a primeira etapa de uma solicitao do MVC?
Respostas: O Roteamento ASP.NET roteia a solicitao para o recurso apropriado.

Comparao dos ciclos de vida de uma solicitao de formulrios da Web


e do MVC
Pergunta: Quais so as outras diferenas entre o ciclo de vida de uma solicitao de
formulrios da Web e do MVC?
Resposta: Pode variar; debata com alunos.

Como trabalhar com o ciclo de vida de uma pgina de formulrios da Web


Pergunta: Em que outros cenrios voc precisaria usar eventos no ciclo de vida da pgina
para process-la corretamente?
Resposta: Pode variar; debata com alunos.

26

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Mdulo 2
Design de um aplicativo Web
Sumrio:
Lio 1: Aplicativos Web: Estudos de caso

27

Lio 2: Conceitos bsicos do desgin de aplicativos Web

29

Lio 3: Ferramentas e tecnologias do Visual Studio 2010 para o


design de aplicativos Web

31

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Lio 1

Aplicativos Web: Estudos de caso


Sumrio:
Perguntas e respostas

28

27

28

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Perguntas e respostas
Discusso: Viso geral de aplicativos Web e suas caractersticas
Pergunta: Quais so algumas das outras variaes no abordadas entre os sites?
Resposta: Pode variar.
Pergunta: Embora no haja uma correspondncia exata, esses quatro tipos de sites se relacionam,
de alguma forma, s respostas da pergunta anterior?
Resposta: Pode variar.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Lio 2

Conceitos bsicos do desgin de aplicativos Web


Sumrio:
Perguntas e respostas

30

29

30

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Perguntas e respostas
Consideraes comuns de design
Pergunta: Qual a importncia da segurana em cada tipo de aplicativo Web?
Resposta: Mesmo em sites estticos, o sistema de arquivos deve conter segurana anexada.
Pergunta: Como a escalabilidade e a confiabilidade esto relacionadas?
Resposta: Em geral, a escalabilidade e a confiabilidade esto estreitamente ligadas, uma
vez que a capacidade de recuperao aps a perda de recursos exige que o aplicativo Web
seja capaz de distribuir seu processamento entre mais de um ponto de falha nico.

Discusso: Formulrios da Web e MVC


Pergunta: Quais recursos, comuns ou diferentes, observados nas estruturas dos formulrios da
Web e do MVC seriam teis para seus esforos de desenvolvimento?
Resposta: Pode variar.

Diretrizes para determinar quando usar formulrios da Web e o MVC


Pergunta: Com base em sua experincia, quais solues podem ter se beneficiado da
implementao com o MVC?
Resposta: Pode variar.
Pergunta: Quais recursos importantes dos formulrios da Web que voc usa frequentemente
podem ser perdidos no desenvolvimento com o MVC?
Resposta: Pode variar.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Lio 3

Ferramentas e tecnologias do Visual Studio 2010 para o


design de aplicativos Web
Sumrio:
Perguntas e respostas

32

31

32

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Perguntas e respostas
Viso geral do modo Design do Visual Studio 2010
Pergunta: Qual a vantagem de usar o modo Design no processo de desenvolvimento?
Resposta: O modo de exibio de Design exibe todas as pginas mestras e pginas
mestras aninhadas implementadas em sua pgina. Dessa forma, voc pode ver exatamente
qual ser a aparncia da pgina no navegador.

Enterprise Library
Pergunta: Quais os benefcios de usar a Enterprise Library como uma interface consistente para
tarefas comuns exigidas por seus aplicativos?
Resposta: Pode variar.

IIS SEO Toolkit


Pergunta: Qual a utilidade dos arquivos robots.txt e sitemap.xml?
Resposta: O arquivo robots.txt informa ao mecanismo de pesquisa o que ele pode ou
no rastrear ao indexar o site. O arquivo sitemap.xml fornece um mapa do site para um
rastreador de mecanismo de pesquisa. Isso permite que o rastreador acesse reas do site s
quais provavelmente ele no teria acesso sem esse mapa.
Pergunta: Como a ferramenta Site Analysis o ajuda a entender o modo como os rastreadores de
mecanismos de pesquisa reagiro ao contedo do site?
Resposta: Executando a ferramenta Site Analysis, voc identificar e corrigir possveis
problemas que impediro o rastreador do mecanismo de pesquisa de atribuir a relevncia
adequada ao seu contedo e, possivelmente, interromper a indexao de todo o site.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Mdulo 3
Desenvolvendo modelos MVC
Sumrio:
Lio 1: Explorao de maneiras de criar modelos MVC

34

Lio 2: Como trabalhar com dados em modelos MVC

37

Lio 3: Criao de um repositrio de dados

39

33

34

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Lio 1

Explorao de maneiras de criar modelos MVC


Sumrio:
Passos detalhados de demonstrao

35

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

35

Passos detalhados de demonstrao


Demonstrao: Criando um modelo MVC usando classes
Criao de um modelo MVC usando classes
1.

Abra o Microsoft Visual Studio 2010.


No menu Iniciar de 10714A-GEN-DEV, aponte para Todos os Programas, clique em Microsoft
Visual Studio 2010 e, em seguida, clique em Microsoft Visual Studio 2010.

2.

3.

4.

Crie um novo projeto ASP.NET MVC 2 Web Application, com um projeto associado de teste de
unidade.
a.

Na janela Start Page Microsoft Visual Studio, no menu File, clique em New Project ou
pressione CTRL+SHIFT+N.

b.

Na caixa de dilogo New Project, no painel esquerdo, clique em Visual C# ou Visual Basic, no
painel central, clique em ASP.NET MVC 2 Web Application, na caixa Location, digite
D:\Demofiles\CS ou D:\Demofiles\VB, e clique em OK.

c.

Na caixa de dilogo Create Unit Test Project, verifique se a caixa de seleo Yes, create a unit
test project est marcada e clique em OK.

Adicione uma nova classe chamada Blog pasta Models.


a.

No Solution Explorer, clique com o boto direito em Models, aponte para Add e clique em New
Item, ou pressione CTRL+SHIFT+A.

b.

Na caixa de dilogo Add New Item MvcApplication1, no painel esquerdo, clique em Visual
C# ou Visual Basic, no painel central, clique em Class, na caixa Name, digite Blog e clique em
Add.

Adicione o seguinte cdigo classe Blog.


[Visual C#]
public class Blog
{
public string Title { get; set; }
public string Description { get; set; }
}

[Visual Basic]
Public Class Blog
Private Property Title As String
Private Property Description As String
End Class

36

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

5.

Compile a soluo e corrija todos os erros.

6.

Na janela MvcApplication1 Microsoft Visual Studio, no menu Build, clique em Build


Solution, ou pressione CTRL+SHIFT+B.

Feche o Visual Studio 2010.

Na janela MvcApplication1 Microsoft Visual Studio, clique no boto Close.

Prticas recomendadas: O modelo no deve se preocupar em salvar a si mesmo na mdia


persistente e a responsabilidade do acesso a dados deve ser mantida separada do modelo.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Lio 2

Como trabalhar com dados em modelos MVC


Sumrio:
Perguntas e respostas

38

3-37

38

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Perguntas e respostas
Padro Data Mapper
Pergunta: Qual a diferena entre o padro Data Mapper e o padro Active Record?
Resposta: O padro Active Record usa um wrapper de classe fortemente tipado em uma linha da
tabela do banco de dados e, assim, imita diretamente a estrutura do banco de dados, enquanto o
padro Data Mapper mantm separadas a estrutura do banco de dados e a estrutura do objeto.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Lio 3

Criao de um repositrio de dados


Sumrio:
Perguntas e respostas

40

Passos detalhados de demonstrao

41

3-39

40

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Perguntas e respostas
Estendendo classes de modelo para adicionar regras comerciais
Pergunta: Por que no uma boa ideia implementar as regras comerciais na classe de
modelo criada usando o Entity Framework?
Resposta: Quando o projeto compilado, o cdigo personalizado substitudo.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

3-41

Passos detalhados de demonstrao


Demonstrao: Criao de um repositrio de dados
Este tpico aborda a implementao de um repositrio de dados. A demonstrao usa o Entity Framework
como o modelo de dados. O repositrio exibir os mtodos persistence e data retrieval.
1.

Abra o Microsoft Visual Studio 2010.

2.

No menu Iniciar de 10714A-GEN-DEV, aponte para Todos os Programas, clique em Microsoft


Visual Studio 2010 e, em seguida, clique em Microsoft Visual Studio 2010.

Abra a soluo MvcApplication1 no local a seguir.

Linguagem de programao

Local

Visual C#

D:\Demofiles\CS\MvcApplication1

Visual Basic

D:\Demofiles\VB\MvcApplication1

3.

4.

5.

a.

Na janela Start Page Microsoft Visual Studio, no menu File, clique em Open Project ou
pressione CTRL+SHIFT+O.

b.

Na caixa de dilogo Open Project, na caixa Nome, digite D:\Demofiles\CS\MvcApplication1\


MvcApplication1.sln ou D:\Demofiles\VB\MvcApplication1\MvcApplication1.sln e clique
em Abrir.

Adicione ao projeto um novo modelo de dados de entidade do ADO.NET chamado MyModel.edmx


e gere o modelo do banco de dados. O modelo deve ser adicionado pasta Models.
a.

No Solution Explorer, clique com o boto direito em Models, aponte para Add, e clique em New
Item.

b.

Na caixa de dilogo Add New Item MvcApplication1, no painel esquerdo, clique em Data.

c.

No painel central, clique em ADO.NET Entity Data Model, na caixa Name, digite MyModel.edmx
e clique em Add.

d.

No Entity Data Model Wizard, na pgina Choose Model Contents, clique em Generate from
database e em Next.

No Entity Data Model Wizard, na pgina Choose Your Data Connection, se a lista Which data
connection should your application use to connect to the database? estiver vazia, clique em New
Connection e crie uma nova conexo para o banco de dados AdventureWorksLT2008R2 na
instncia .\SQLExpress do SQL Server.
a.

Na caixa de dilogo Choose Data Source, na lista Data source, clique em Microsoft SQL Server
e em Continue.

b.

Na caixa de dilogo Connection Properties, na caixa Server name, digite .\SQLExpress, na lista
Select or enter a database name, clique em AdventureWorksLT2008R2 e em OK.

No Entity Data Model Wizard, na pgina Choose Your Data Connection, na lista Which data
connection should your application use to connect to the database?, clique em 10714a-gendev\sqlexpress.AdventureWorksLT2008R2.Sales(LT) e clique em Next.

42

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

6.

Selecione as tabelas Blog e Blogger do banco de dados.

7.

Na pgina Choose Your Database Objects, na lista Which database objects do you want to
include in your model, expanda Tables, selecione as caixas de seleo Blog e Blogger e clique
em Finish.

Adicione uma nova classe de repositrio de dados chamada BlogRepository pasta Models.
a.

No Solution Explorer, clique com o boto direito em Models, aponte para Add, e clique em
New Item.

b.

Na caixa de dilogo Add New Item MvcApplication1, no painel esquerdo, clique em


Visual C# ou Visual Basic.

c.

No painel central, clique em Class, na caixa Name, digite BlogRepository e clique em Add.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

8.

3-43

Adicione o seguinte cdigo classe BlogRepository.


[Visual C#]
private AdventureWorksLT2008R2Entities db = new AdventureWorksLT2008R2Entities();
public IQueryable<MvcApplication1.Models.Blog> GetAllBlogs()
{
return db.Blogs;
}

[Visual Basic]
Private db As New AdventureWorksLT2008R2Entities()
Public Function GetAllBlogs() As IQueryable(Of MvcApplication1.Blog)
Return db.Blogs
End Function

Na janela BlogRepository.cs ou BlogRepository.vb, na parte superior da classe BlogRepository,


digite o seguinte cdigo.
[Visual C#]
private AdventureWorksLT2008R2Entities db = new AdventureWorksLT2008R2Entities();
public IQueryable<MvcApplication1.Models.Blog> GetAllBlogs()
{
return db.Blogs;
}

[Visual Basic]
Private AdventureWorksLT2008R2Entities db As New AdventureWorksLT2008R2Entities()
Public Function GetAllBlogs() As IQueryable(Of MvcApplication1.Blog)
Return db.Blogs
End Function

9.

Acrescente o mtodo Save classe BlogRepository, que responsvel por persistir o objeto Blog no
banco de dados.
[Visual C#]
public static void Save(MvcApplication1.Models.Blog blog)
{
using (var db = new AdventureWorksLT2008R2Entities ())
{
if (blog.BloggerID == 0)
{
db.AddToBlogs(blog);
db.SaveChanges();
}
}
}

44

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

[Visual Basic]
Public Shared Sub Save(ByVal blog As MvcApplication1.Blog)
Using db As New AdventureWorksLT2008R2Entities()
If blog.BloggerID = 0 Then
db.AddToBlogs(blog)
db.SaveChanges()
End If
End Using
End Sub

Na janela BlogRepository.cs ou BlogRepository.vb, acrescente o seguinte cdigo.


[Visual C#]
public static void Save(MvcApplication1.Models.Blog blog)
{
using (var db = new AdventureWorksLT2008R2Entities ())
{
if (blog.BloggerID == 0)
{
db.AddToBlogs(blog);
db.SaveChanges();
}
}
}

[Visual Basic]
Public Shared Sub Save(ByVal blog As MvcApplication1.Blog)
Using db As New AdventureWorksLT2008R2Entities()
If blog.BloggerID = 0 Then
db.AddToBlogs(blog)
db.SaveChanges()
End If
End Using
End Sub

10. Exclua a classe Blog da pasta Models.


a.

No Solution Explorer, na pasta Models, clique com o boto direito em Blog.cs ou Blog.vb e
clique em Delete.

b.

Na caixa de dilogo do Microsoft Visual Studio, clique em OK.

11. Compile a soluo e corrija todos os erros.

Na janela MvcApplication1 Microsoft Visual Studio, no menu Build, clique em Build


Solution, ou pressione CTRL+SHIFT+B.

12. Feche o Visual Studio 2010.

Na janela MvcApplication1 Microsoft Visual Studio, clique no boto Fechar.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Mdulo 4
Desenvolvimento de MVC Controllers
Sumrio:
Lio 1: Implementao de MVC Controllers

46

Lio 2: Criao de mtodos de ao

51

45

46

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Lio 1

Implementao de MVC Controllers


Sumrio:
Perguntas e respostas

47

Passos detalhados de demonstrao

48

Leituras adicionais

50

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Perguntas e respostas
O que um controlador MVC?
Pergunta: Qual o nome da classe do controlador de produto?
Resposta: Como todas as classes de controladores devem terminar com o sufixo Controller, o
nome do controlador Product ProductController.

O que um filtro de ao?


Pergunta: Quais so os usos para os filtros de ao?
Resposta: Os usos possveis dos filtros de ao so to variados quanto as aes s quais eles
podem ser aplicados. Estes so alguns dos possveis usos dos filtros de ao:

Registro em log, para acompanhar as interaes do usurio.

Anti-furto-de-imagem, para evitar que imagens sejam carregadas em pginas que no


estejam no seu site.

Filtragem de rastreador da Web, para alterar o comportamento do aplicativo com base no


agente de usurio do navegador.

Localizao, para definir o local.

Aes dinmicas, para injetar uma ao no controlador.

Pergunta: Que tipos de filtros de ao o ASP.NET MVC fornece?


Resposta: Os tipos de filtros de ao que o ASP.NET MVC fornece so:

Autorizao

Ao

Resultado

Exceo

47

48

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Passos detalhados de demonstrao


Demonstrao: Criando um controlador MVC
Nesta demonstrao, voc aprender a criar um controlador MVC.
1.

Abra o Microsoft Visual Studio 2010.

2.

3.

4.

Crie um novo projeto ASP.NET MVC 2 Web Application, com um projeto associado de teste de
unidade.
a.

Na janela Start Page Microsoft Visual Studio, no menu File, clique em New Project ou
pressione CTRL+SHIFT+N.

b.

Na caixa de dilogo New Project, no painel esquerdo, clique em Visual C# ou Visual Basic,
no painel central, clique em ASP.NET MVC 2 Web Application, na caixa Location, digite
D:\Demofiles\CS ou D:\Demofiles\VB, e clique em OK.

c.

Na caixa de dilogo Create Unit Test Project, verifique se a opoYes, create a unit test
project est selecionada e clique em OK.

Criar um controlador chamado BlogController na pasta Controllers. O controlador deve incluir


mtodos de ao para criar, atualizar, excluir e detalhar cenrios.
a.

No Solution Explorer, clique com o boto direito em Controllers, aponte para Add e clique em
Controller.

b.

Na caixa de dilogo Add Controller, na caixa Controller Name, digite BlogController,


marque a caixa de seleo Add action methods for Create, Update, Delete, and Details
scenarios e clique em Add.

Compile a soluo e corrija todos os erros.

5.

No menu Iniciar de 10714A-GEN-DEV, aponte para Todos os Programas, clique em


Microsoft Visual Studio 2010 e, em seguida, clique em Microsoft Visual Studio 2010.

Na janela MvcApplication1 Microsoft Visual Studio, no menu Build, clique em Build


Solution, ou pressione CTRL+SHIFT+B.

Feche o Visual Studio 2010.

Na janela MvcApplication1 Microsoft Visual Studio, clique no boto Close.

Demonstrao: Usando um filtro de ao


Nesta demonstrao, voc aprender a usar um controlador que decorado com o atributo
HandleErrorAttribute.
1.

Abra o Microsoft Visual Studio 2010.

2.

No menu Iniciar de 10714A-GEN-DEV, aponte para Todos os Programas, clique em


Microsoft Visual Studio 2010 e, em seguida, clique em Microsoft Visual Studio 2010.

Abra a soluo MvcApplication1 no local a seguir.

Linguagem de programao

Local

Visual C#

D:\Demofiles\CS\MvcApplication1

Visual Basic

D:\Demofiles\VB\MvcApplication1

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

3.

a.

Na janela Start Page Microsoft Visual Studio, no menu File, clique em Open Project ou
pressione CTRL+SHIFT+O.

b.

Na caixa de dilogo Open Project, na caixa Nome, digite D:\Demofiles\CS\


MvcApplication1\MvcApplication1.sln ou D:\Demofiles\VB\MvcApplication1\
MvcApplication1.sln e clique em Abrir.

Abra o controlador HomeController.

4.

No Solution Explorer, expanda Controllers e clique duas vezes em HomeController.cs ou em


HomeController.vb.

No mtodo de ao About, lance uma exceo do tipo Exception.


[Visual C#]
[HandleError(ExceptionType=typeof(Exception))]
public ActionResult About()
{
throw new Exception();
}

[Visual Basic]
<HandleError(ExceptionType:=GetType(Exception))>
Public Function About() As ActionResult
Throw New Exception()
End Function

5.

Abra o arquivo Web.config.

6.

No Solution Explorer, clique duas vezes em Web.config.

Adicione um elemento customErrors ao arquivo Web.config.


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

7.

Execute o aplicativo.

8.

Na janela MvcApplication1 Microsoft Visual Studio, no menu Debug, clique em Start


Without Debugging ou pressione CTRL+F5.

Exiba a pgina About.

Na janela Home Page Windows Internet Explorer, clique em Sobre.

Observao: A mensagem de erro, que parte da pgina ou modo de exibio


Error.aspx, localizada na pasta Views\Shared, exibida.
9.

49

Feche o Visual Studio 2010.

Na janela MvcApplication1 Microsoft Visual Studio, clique no boto Close.

50

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Leituras adicionais
O que um controlador MVC?
Para obter mais informaes sobre MVC controllers, consulte Controller Class.
Para obter mais informaes sobre roteamento, consulte Understanding the MVC
Application Execution Process.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Lio 2

Criao de mtodos de ao
Sumrio:
Perguntas e respostas

52

Passos detalhados de demonstrao

54

Leituras adicionais

57

51

52

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Perguntas e respostas
O que so mtodos de ao?
Pergunta: Quais so as restries aos mtodos de ao?
Resposta: Mtodos de ao:

Devem ser pblicos.

No podem ser estticos.

No podem ter parmetros de tipo genrico no associados.

No podem ser sobrecarregados com base em parmetros, a menos que tenham a


ambiguidade removida com atributos como NonActionAttribute ou
AcceptVerbsAttribute.

Pergunta: Como se pode evitar que um mtodo pblico de um controlador seja tratado como
um mtodo de ao?
Resposta: O ASP.NET MVC trata todos os mtodos pblicos de uma classe de controlador
como mtodos de ao. Se sua classe de controlador contiver um mtodo pblico e voc no
quiser que ele seja um mtodo de ao, decore o mtodo com o atributo NonActionAttribute.
Pergunta: Qual o atributo mais curto que voc pode usar para designar que um mtodo de
ao deve responder somente a um HTTP Post?
Resposta: O atributo mais curto que voc pode usar para designar que um mtodo de ao s
deve responder a um HTTP Post o atributo HttpPostAttribute.

Chamando um modo de exibio MVC


Pergunta: Que tipos derivam da classe ActionResult?
Resposta: Os tipos a seguir derivam da classe ActionResult:

ContentResult

EmptyResult

FileResult

JavaScriptResult

JsonResult

PartialViewResult

RedirectResult

RedirectToRouteResult

ViewResult

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Pergunta: Quais so as trs maneiras de a classe ViewResult passar dados para o modo de
exibio?
Resposta: As trs maneiras abordadas nesta lio so:

ViewData

TempData

Propriedade View

Recuperao de dados da solicitao


Pergunta: Como possvel recuperar dados de um formulrio?
Resposta: Voc pode recuperar dados usando o objeto Request, os associadores de modelo e
FormCollection.
Pergunta: Como possvel acessar a lista de erros que ocorreram durante a associao de
modelo?
Resposta: A propriedade ModelState.Errors retorna um objeto ModelErrorCollection que
contm todos os erros ocorridos durante a associao do modelo.

53

54

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Passos detalhados de demonstrao


Demonstrao: Recuperao de dados da solicitao
Nesta demonstrao, voc aprender a recuperar dados de RouteData, do QueryString, de um TextBox
e do FormCollection.
1.

Abra o Microsoft Visual Studio 2010.

2.

No menu Iniciar de 10714A-GEN-DEV, aponte para Todos os Programas, clique em


Microsoft Visual Studio 2010 e, em seguida, clique em Microsoft Visual Studio 2010.

Abra a soluo DemoHello no local a seguir.

Linguagem de programao

Local

Visual C#

D:\Demofiles\CS

Visual Basic

D:\Demofiles\VB

3.

a.

Na janela Start Page Microsoft Visual Studio, no menu File, clique em Open Project ou
pressione CTRL+SHIFT+O.

b.

Na caixa de dilogo Open Project, na caixa Nome, digite D:\Demofiles\CS\DemoHello.sln


ou D:\Demofiles\VB\DemoHello.sln e clique em Abrir.

Recupere dados do RouteData.


a.

Execute o projeto pressionando CTRL+F5.

b.

Na janela Home Page Windows Internet Explorer, clique em Home.

c.

Acrescente o texto a seguir URL na barra de endereos, e pressione ENTER.


/RouteDataDemo/World

Observao: O valor da chave id, recuperado da coleo de par de chave/valor


RouteData.Values, (World) exibido.

d.
4.

Feche o Windows Internet Explorer.

Recupere dados de QueryString.


a.

Execute o projeto pressionando CTRL+F5.

b.

Na janela Home Page Windows Internet Explorer, clique em Home.

c.

Acrescente o texto a seguir URL na barra de endereos, e pressione ENTER.


/QueryStringDemo?id=World

Observao: O valor da chave id, recuperado da coleo de pares chave-valor do objeto


Request (World), exibido.

d.

Feche o Internet Explorer.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

5.

Recupere os dados da caixa de texto.


a.

Substitua o contedo do controle de contedo Content2 no arquivo de pgina Index.aspx na


pgina Views\Hello com a seguinte marcao.
[Visual C#]
<% Html.BeginForm(); %>
Enter Your Name: <%: Html.TextBox("id") %>
<input id="Submit1" type="submit" value="Submit" />
<h2><%: ViewData["Message"] %></h2>
<% Html.EndForm(); %>

[Visual Basic]
<% Html.BeginForm() %>
Enter Your Name: <%: Html.TextBox("id") %>
<input id="Submit1" type="submit" value="Submit" />
<h2><%: ViewData("Message") %></h2>
<% Html.EndForm() %>

b.

No Solution Explorer, clique em DemoHello.

c.

Execute o projeto pressionando CTRL+F5.

d.

Na janela Home Page Windows Internet Explorer, clique em Home.

e.

Acrescente o texto a seguir URL na barra de endereos, e pressione ENTER.


/TextBoxDemo

f.

Na caixa Enter Your Name, digite seu nome e clique em Submit.

Observao: O valor inserido na caixa de texto exibido.

g.
6.

55

Feche o Internet Explorer.

Recupere dados de um FormCollection.


a.

Adicione um novo mtodo de ao chamado FormCollectionDemo no HelloController.


[Visual C#]
public ActionResult FormCollectionDemo(FormCollection collection)
{
ViewData["Message"] = "Hello " + collection["id"];
return View("Index");
}

[Visual Basic]
Function FormCollectionDemo(ByVal collection As FormCollection) As ActionResult
ViewData("Message") = "Hello " & collection("id")
Return View("Index")
End Function

b.

Execute o projeto pressionando CTRL+F5.

56

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

c.

Na janela Home Page Windows Internet Explorer, clique em Home.

d.

Acrescente o texto a seguir URL na barra de endereos, e pressione ENTER.


/FormCollectionDemo

e.

Na caixa Enter Your Name, digite seu nome e clique em Submit.

f.

Na caixa de dilogo Preenchimento Automtico, clique em No.

Observao: O valor inserido na caixa de texto, recuperado do objeto FormCollection,


exibido.

g.

Feche o Internet Explorer.

h.

Feche o Visual Studio 2010.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Leituras adicionais
Chamando um modo de exibio MVC
Para obter informaes sobre a classe ActionResult, consulte ActionResult Class.
Para obter informaes sobre a classe ViewResult, consulte ViewResult Class.

57

58

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Mdulo 5
Desenvolvimento de modos de exibio MVC
Sumrio:
Lio 1: Implementao de modos de exibio MVC

59

Lio 2: Implementao de modos de exibio MVC fortemente tipados

63

Lio 3: Implementao de modos de exibio MVC parciais

70

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Lio 1

Implementao de modos de exibio MVC


Sumrio:
Perguntas e respostas

60

Passos detalhados de demonstrao

61

Leituras adicionais

62

59

60

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Perguntas e respostas
O que um modo de exibio MVC?
Pergunta: Onde est localizado o modo de exibio associado ao mtodo de ao Sample do
controlador Home?
Resposta: O modo de exibio associado ao mtodo de ao Sample do controlador
Home pode ser localizado em qualquer um destes locais:
~/Views/Home/Sample.aspx
~/Views/Home/Sample.ascx
~/Views/Shared/Sample.aspx
~/Views/Shared/Sample.ascx
Pergunta: Qual a diferena entre a propriedade ViewData e a propriedade TempData?
Resposta: O valor da propriedade TempData persiste somente de uma solicitao para a
seguinte.
Pergunta: Qual o atributo da diretiva Page que usada para identificar a pgina mestra?
Resposta: O atributo MasterPageFile da diretiva Page identifica a pgina mestra.

O que so auxiliares HTML?


Pergunta: O que um auxiliar HTML retorna?
Resposta: Um auxiliar Html retorna uma cadeia de caracteres do tipo MvcHtmlString.
MvcHtmlString representa uma cadeia de caracteres codificada para HTML que no deve
ser codificada novamente.
Pergunta: Em quais categorias os auxiliares HTML esto organizados?
Resposta: Estas so as categorias em que os auxiliares Html esto organizados:

Extenses MvcForm

Extenses Input

Extenses Label

Extenses Link

Extenses Select

Extenses TextArea

Extenses Validation

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

61

Passos detalhados de demonstrao


Demonstrao: Criao de um modo de exibio MVC
Nesta demonstrao, voc aprender a criar um modo de exibio MVC.
1.

Abra o Microsoft Visual Studio 2010.

2.

3.

4.

5.

Crie um novo projeto de Aplicativo Web do ASP.NET MVC 2, sem um projeto de Teste de
Unidade associado.
a.

Na janela Start Page Microsoft Visual Studio, no menu File, clique em New Project ou
pressione CTRL+SHIFT+N.

b.

Na caixa de dilogo New Project, no painel esquerdo, clique em Visual C# ou Visual Basic,
no painel central, clique em ASP.NET MVC 2 Web Application, na caixa Location, digite
D:\Demofiles\CS ou D:\Demofiles\VB, e clique em OK.

c.

Na caixa de dilogo Create Unit Test Project, verifique se a opo No, do not create a unit
test project est selecionada e clique em OK.

Exclua o modo de exibio Home\About.


a.

No Solution Explorer, expanda Views, expanda Home, clique com o boto direito em
About.aspx e clique em Delete.

b.

Na caixa de dilogo do Microsoft Visual Studio, clique em OK.

Crie um modo de exibio vazio chamado About na pasta Home.


a.

No Solution Explorer, clique com o boto direito do mouse em Home, aponte para Add e
clique em View.

b.

Na caixa de dilogo Add View, na caixa View name, digite About, desmarque a caixa de
seleo Create a strongly-typed view e clique em Add.

Compile a soluo e corrija todos os erros.

6.

7.

Na janela MvcApplication1 Microsoft Visual Studio, no menu Build, clique em Build


Solution, ou pressione CTRL+SHIFT+B.

Execute o aplicativo.
a.

No Solution Explorer, clique em MvcApplication1.

b.

Na janela MvcApplication1 Microsoft Visual Studio, no menu Debug, clique em Start


Without Debugging ou pressione CTRL+F5.

c.

Na janela Home Page Windows Internet Explorer, clique em Sobre.

Feche o Windows Internet Explorer.

8.

No menu Iniciar de 10714A-GEN-DEV, aponte para Todos os Programas, clique em


Microsoft Visual Studio 2010 e, em seguida, clique em Microsoft Visual Studio 2010.

Na janela About Windows Internet Explorer, clique no boto Fechar.

Feche o Visual Studio 2010.

Na janela MvcApplication1 Microsoft Visual Studio, clique no boto Fechar.

62

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Leituras adicionais
O que um modo de exibio MVC?
Para obter mais informaes sobre a classe ViewPage, consulte Classe
ViewPage.
Para obter mais informaes sobre a classe ViewDataDictionary, consulte
Classe ViewDataDictionary Class.
Para obter mais informaes sobre a classe TempDataDictionary, consulte
Classe TempDataDictionary.

O que so auxiliares HTML?


Para obter mais informaes sobre a classe HtmlHelper, consulte Classe
HtmlHelper.
Para obter mais informaes sobre como renderizar um modo de exibio
usando auxiliares HTML, consulte Rendering a Form in ASP.NET MVC Using
HTML Helpers.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Lio 2

Implementao de modos de exibio MVC


fortemente tipados
Sumrio:
Perguntas e respostas

64

Passos detalhados de demonstrao

65

Leituras adicionais

69

63

64

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Perguntas e respostas
O que um modo de exibio fortemente tipado?
Pergunta: De qual classe o modo de exibio fortemente tipado herda?
Resposta: Um modo de exibio fortemente tipado herda de ViewPage<(Of <(TModel>)>)
Pergunta: Qual a maneira mais fcil de criar um modo de exibio fortemente tipado?
Resposta: A maneira mais fcil de criar um modo de exibio fortemente tipado usar a
caixa de dilogo Add View.
Pergunta: Quais so as vantagens de usar modos de exibio fortemente tipados?
Resposta: Os modos de exibio fortemente tipados sabem exatamente que tipo de dado
esperado, e o Microsoft IntelliSense est disponvel.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

65

Passos detalhados de demonstrao


Demonstrao: Criando um modo de exibio fortemente tipado
Nesta demonstrao, voc ver como criar um modo de exibio MVC fortemente tipado.
1.

Abra o Microsoft Visual Studio 2010.


No menu Iniciar de 10714A-GEN-DEV, aponte para Todos os Programas, clique em
Microsoft Visual Studio 2010 e, em seguida, clique em Microsoft Visual Studio 2010.

2.

3.

Crie um novo projeto de Aplicativo Web do ASP.NET MVC 2, sem um projeto de Teste de
Unidade associado.
a.

Na janela Start Page Microsoft Visual Studio, no menu File, clique em New Project ou
pressione CTRL+SHIFT+N.

b.

Na caixa de dilogo New Project, no painel esquerdo, clique em Visual C# ou Visual Basic,
no painel central, clique em ASP.NET MVC 2 Web Application, na caixa Name, digite
StronglyTypedView, na caixa Location, digite D:\Demofiles\CS ou D:\Demofiles\VBe clique
em OK.

c.

Na caixa de dilogo Create Unit Test Project, verifique se a opo No, do not create a unit
test project est selecionada e clique em OK.

Adicione uma classe de modelo chamada Person pasta Models.


[Visual C#]
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
public class Person
{
[Required]
[DisplayName("First Name")]
public string FirstName { get; set; }
[Required]
[DisplayName("Last Name")]
public string LastName { get; set; }
[Required]
public int Age { get; set; }
[Required]
public string Gender { get; set; }
}

[Visual Basic]
Imports System.ComponentModel
Imports System.ComponentModel.DataAnnotations
Public Class Person
<Required()>
<DisplayName("First Name")>
Public Property FirstName As String
<Required()>
<DisplayName("Last Name")>
Public Property LastName As String
<Required()>

66

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Public Property Age As Integer


<Required()>
Public Property Gender As String
End Class

a.

No Solution Explorer, clique com o boto direito do mouse em Models, aponte para Add e
clique em Class.

b.

Na caixa de dilogo Add New Item, na caixa Name, digite Person.cs ou Person.vb e clique
em Add.

c.

Na janela Person.cs ou Person.vb, substitua o contedo pelo cdigo a seguir.


[Visual C#]
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
public class Person
{
[Required]
[DisplayName("First Name")]
public string FirstName { get; set; }
[Required]
[DisplayName("Last Name")]
public string LastName { get; set; }
[Required]
public int Age { get; set; }
[Required]
public string Gender { get; set; }
}

[Visual Basic]
Imports System.ComponentModel
Imports System.ComponentModel.DataAnnotations
Public Class Person
<Required()>
<DisplayName("First Name")>
Public Property FirstName As String
<Required()>
<DisplayName("Last Name")>
Public Property LastName As String
<Required()>
Public Property Age As Integer
<Required()>
Public Property Gender As String
End Class

4.

Compile a soluo e corrija todos os erros.

5.

Na janela StronglyTypedView Microsoft Visual Studio, no menu Build, clique em Build


Solution ou pressione CTRL+SHIFT+B.

Crie um modo de exibio fortemente tipado chamado Person na pasta Views\Home. O modo de
exibio deve incluir o contedo padro para a operao Create.
a.

No Solution Explorer, expanda Views, clique com o boto direito em Home, aponte para Add
e clique em View.

b.

[Visual C#] Na caixa de dilogo Add View, na caixa View name, digite Person, marque a
caixa de seleo Create a strongly-typed view, na lista View data class, clique em Person,
na lista View content, clique em Create e em Add.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

c.

6.

67

[Visual Basic] Na caixa de dilogo Add View, na caixa View name, digite Person, marque
a caixa de seleo Create a strongly-typed view, na lista View data class, clique em
StronglyTypedView.Person, na lista View content, clique em Create e, em seguida, clique
em Add.

Altere o TextBox para exibir a propriedade Gender para o modelo para uma DropDownList.
a.

Substitua a seguinte marcao e o cdigo.


[Visual C#]
<%: Html.TextBoxFor(model => model.Gender) %>

[Visual Basic]
<%: Html.TextBoxFor(Function(model) model.Gender) %>

b.

Com a marcao e o cdigo a seguir.


[Visual C#]
<%: Html.DropDownListFor(model => model.Gender,
(SelectList)ViewData["Gender"]) %>

[Visual Basic]
<%: Html.DropDownListFor(Function(model) model.Gender,
CType(ViewData("Gender"), SelectList)) %>

7.

Adicione um mtodo de ao chamado Person ao controlador HomeController na pasta Controllers.


[Visual C#]
public ActionResult Person()
{
ViewData["Gender"] = new SelectList(new[] { "", "Female", "Male" });
return View();
}

[Visual Basic]
Public Function Person() As ActionResult
ViewData("Gender") = New SelectList({"", "Female", "Male"})
Return View()
End Function

a.

No Solution Explorer, expanda Controllers e clique duas vezes em HomeController.

b.

Na janela HomeController.cs ou HomeController.vb, na classe HomeController, digite o


seguinte cdigo.

[Visual C#]
public ActionResult Person()
{
ViewData["Gender"] = new SelectList(new[] { "", "Female", "Male" });
return View();
}

68

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

[Visual Basic]
Public Function Person() As ActionResult
ViewData("Gender") = New SelectList({"", "Female", "Male"})
Return View()
End Function

8.

9.

Execute o aplicativo.
a.

No Solution Explorer, clique em StronglyTypedView.

b.

Na janela StronglyTypedView Microsoft Visual Studio, no menu Debug, clique em Start


Without Debugging ou pressione CTRL+F5.

Navegue diretamente para o modo de exibio Person, usando a seguinte rota.


Home/Person

Na janela Home Page Windows Internet Explorer, na barra de endereos, acrescente a


seguinte URL e pressione ENTER.
Home/Person

10. Feche o Internet Explorer.

Na janela Person Windows Internet Explorer, clique no boto Fechar.

11. Feche o Visual Studio 2010.

Na janela StronglyTypedView Microsoft Visual Studio, clique no boto Fechar.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Leituras adicionais
O que um modo de exibio fortemente tipado?
Para obter mais informaes sobre a classe HtmlHelper(TModel), consulte Classe
HtmlHelper(TModel).

69

70

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Lio 3

Implementao de modos de exibio MVC parciais


Sumrio:
Perguntas e respostas

71

Passos detalhados de demonstrao

72

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Perguntas e respostas
O que um modo de exibio parcial?
Pergunta: Qual o auxiliar HTML usado para renderizar um modo de exibio parcial?
Resposta: Html.RenderPartial usado para renderizar um modo de exibio parcial.
Pergunta: Em qual tipo de arquivo o modo de exibio parcial armazena sua marcao?
Resposta: Um modo de exibio parcial armazena sua marcao em um controle de
usurio ASP.NET (arquivo .ascx).

71

72

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Passos detalhados de demonstrao


Demonstrao: Criando um modo de exibio MVC parcial
Nesta demonstrao, voc ver como criar um modo de exibio MVC parcial.
1.

Abra o Microsoft Visual Studio 2010.

2.

3.

No menu Iniciar de 10714A-GEN-DEV, aponte para Todos os Programas, clique em


Microsoft Visual Studio 2010 e, em seguida, clique em Microsoft Visual Studio 2010.

Abra a soluo StronglyTypedView usada na demonstrao anterior.


a.

Na janela Start Page Microsoft Visual Studio, no menu File, clique em Open Project ou
pressione CTRL+SHIFT+O.

b.

Na caixa de dilogo Open Project, na caixa Nome, digite D:\Demofiles\CS\


StronglyTypedView\StronglyTypedView.sln ou D:\Demofiles\VB\StronglyTypedView\
StronglyTypedView.sln e clique em Abrir.

Adicione um modo de exibio parcial fortemente tipado chamado Partial pasta Views\Home,
usando a caixa de dilogo Add View. O modo de exibio deve ter o contedo padro para o
modo de exibio Create, e o modo de exibio deve ser baseado na classe Person.
a.

No Solution Explorer, expanda Views, clique com o boto direito do mouse em Home, aponte
para Add e clique em View.

b.

[Visual C#] Na caixa de dilogo Add View, na caixa View name, digite Partial, marque as caixas
de seleo Create a partial view (.ascx) e Create a strongly-typed view, na lista View data
class, clique em Person, na lista View content, clique em Create e em Add.

ou[Visual Basic] Na caixa de dilogo Add View, na caixa View name, digite Partial, marque as
caixas de seleo Create a partial view (.ascx) e Create a strongly-typed view, na lista View
data class, clique em StronglyTypedView.Person, na lista View content, clique em Create e,
em seguida, clique em Add.
4.

Adicione um modo de exibio vazio chamado Create pasta Views\Home, usando a caixa de
dilogo Add View.
a.

No Solution Explorer, expanda Views, clique com o boto direito do mouse em Home, aponte
para Add e clique em View.

b.

Na caixa de dilogo Add View, na caixa View name, digite Create, desmarque as caixas de
seleo Create a partial view (.ascx) e Create a strongly-typed view e clique em Add.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

5.

73

Incorpore o modo de exibio Partial no modo de exibio Create como parte do controle
Content2 Content, usando o mtodo Html.RenderPartial.
[Visual C#]
<% Html.RenderPartial("Partial"); %>

[Visual Basic]
<% Html.RenderPartial("Partial") %>

Adicione o cdigo a seguir ao modo de exibio Create, no controle Content2 Content,


imediatamente depois do elemento h2.

[Visual C#]
<% Html.RenderPartial("Partial"); %>

[Visual Basic]
<% Html.RenderPartial("Partial") %>

6.

7.

Execute o aplicativo.
a.

No Solution Explorer, clique em StronglyTypedView.

b.

Na janela StronglyTypedView Microsoft Visual Studio, no menu Debug, clique em Start


Without Debugging ou pressione CTRL+F5.

Navegue diretamente para o modo de exibio Person, usando a seguinte rota.


Home/Person

Na janela Home Page Windows Internet Explorer, na barra de endereos, acrescente a


seguinte URL e pressione ENTER.
Home/Person

8.

Feche o Internet Explorer.

9.

Na janela Person Windows Internet Explorer, clique no boto Fechar.

Feche o Visual Studio 2010.

Na janela StronglyTypedView Microsoft Visual Studio, clique no boto Fechar.

74

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Mdulo 6
Projetando a detectabilidade
Sumrio:
Lio 1: SEO (Search Engine Optimization)

75

Lio 2: Arquivos de detectabilidad

80

Lio 3: Uso do roteamento ASP.NET

85

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Lio 1

SEO (Search Engine Optimization)


Sumrio:
Perguntas e respostas

76

Passos detalhados de demonstrao

77

75

76

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Perguntas e respostas
Viso geral do Search Engine Optimization
Pergunta: Ao calcular o esforo para concluir um site, voc geralmente inclui itens de SEO
(otimizao do mecanismo de pesquisa)?
Resposta: Pode variar.
Pergunta: De quais atividades voc participou para melhorar a classificao de pesquisa de um site?
Resposta: Pode variar.
Pergunta: Como os padres de trfego foram alterados depois que voc concluiu as atividades de SEO?
Resposta: Pode variar.

Componentes do IIS SEO Toolkit


Pergunta: Voc encontrou um site que no tinha um arquivo robots.txt preciso? Que erros foram
cometidos? O trfego melhorou depois que o arquivo robots.txt foi corrigido?
Resposta: Pode variar.
Pergunta: Voc encontrou um site que no tinha um arquivo sitemap.xml preciso? Em caso
afirmativo, como isso afetou o uso e a percepo do site?
Resposta: Pode variar.

Demonstrao: Anlise de um site usando o IIS SEO Toolkit


Pergunta: Quando seria o perodo de tempo ideal em um projeto para a execuo da Ferramenta
Site Analysis?
Resposta: Aps o desenvolvimento inicial e aps a implantao.
Pergunta: Qual recurso do relatrio pode ser usado para evitar problemas de produo de modo
proativo?
Resposta: Violaes.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

77

Passos detalhados de demonstrao


Demonstrao: Anlise de um site usando o IIS SEO Toolkit
Rastreando um site
1.

Abra o Kit de Ferramentas de SEO do IIS.


a.

No menu Iniciar, aponte para Todos os Programas, expanda IIS 7.0 Extensions, clique com o
boto direito do mouse em Search Engine Optimization (SEO) Toolkit 1.0 e clique em
Executar como Administrador.

b.

Na caixa de dilogo Controle de Conta de Usurio, na caixa Senha, digite Pa$$w0rd e clique
em Sim.

2.

No Gerenciador do Servios de Informaes da Internet (IIS), no painel direito, na seo Site


Analysis, clique em Create a new analysis.

3.

Na caixa de dilogo New Analysis, na caixa Name, digite Default Web Site analysis, na caixa Start
URL, digite http://localhost e clique em OK.
Observao: possvel rastrear qualquer site que esteja acessvel ao pblico na Internet.

A caixa de dilogo New Analysis


Configuraes avanadas
Maximum Number of Links: Controla o nmero de links a serem processados e baixados de um site
durante o rastreamento. Um link qualquer URL que seja usada na marcao de uma pgina, incluindo
hiperlinks, referncias a arquivos de imagens, arquivos CSS e arquivos de script java. O aumento desse
nmero aumenta o tamanho do arquivo de relatrios e torna o processo de rastreamento mais demorado.
Maximum Download Size per Link: Controla o nmero de quilobytes de contedo a serem baixados
por link. O aumento desse nmero aumenta o tamanho do contedo armazenado em cache pela ferramenta
Site Analysis no sistema de arquivos local.
Ignore nofollow attribute: O atributo nofollow e a marca meta nofollow so usados para informar
aos rastreadores do mecanismo de pesquisa para no seguir certos hiperlinks (ou todos eles) na pgina. Essa
uma forma de proteo contra spam em comentrios de blog. Se as pginas no site usarem esse atributo,
os hiperlinks nessas pginas no sero processados, nem analisados durante a anlise do site. No entanto,
os links para recursos como imagens, arquivos CSS e java script ainda sero processados. Se for necessrio
analisar os hiperlinks que usam esse atributo, utilize essa configurao para ignorar os atributos nofollow
e as marcas meta.
Ignore noindex meta tag: Usado para informar aos rastreadores do mecanismo de pesquisa para
no indexar o contedo da pgina. Se as pginas no site usarem essa marca meta, violaes no sero
procuradas no contedo dessas pginas. Se for necessrio analisar at mesmo as pginas que usam esse
atributo, utilize essa configurao para ignorar a marca meta noindex.
External Links: Use esta lista suspensa quando o site tiver subdomnios ou quando voc quiser executar uma
anlise em um determinado diretrio em um site. Essa configurao controla se os subdomnios e/ou os
subdiretrios devem ser tratados como links internos ou externos.

78

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Editar configuraes de recursos


Maximum Number of Concurrent Requests: Controla o nmero de solicitaes simultneas que o
rastreador da Web far.
Reports Directory: Especifica o diretrio no sistema de arquivos local em que todos os dados rastreados
e o contedo do site em cache armazenado.
Observao: Dois nmeros so relatados durante a anlise.
Links Processed: O nmero total de links que foram rastreados e baixados pelo rastreador da Web.
Total Links: O nmero total de links encontrados durante o rastreamento do site.

Interpretando o relatrio da Site Analysis


No Gerenciador do Servios de Informaes da Internet (IIS), na seo Site Analysis Report,
voc pode exibir algumas pginas com detalhes de relatrio. Para acessar a seo Site Analysis Report,
siga estas etapas:
1.

Abra o Kit de Ferramentas de SEO do IIS.


a.

No menu Iniciar, aponte para Todos os Programas, expanda IIS 7.0 Extensions, clique com o
boto direito do mouse em Search Engine Optimization (SEO) Toolkit e, em seguida, clique
em Executar como Administrador.

b.

Na caixa de dilogo Controle de Conta de Usurio, na caixa Senha, digite Pa$$w0rd e clique
em Sim.

2.

No Gerenciador do Servios de Informaes da Internet (IIS), no painel direito, na seo Anlise


do Site, clique em Exibir relatrios existentes.

3.

No painel Site Analysis, clique duas vezes em qualquer um dos relatrios listados.
Observao: Na seo Site Analysis Report, use as guias verticais na esquerda do Dashboard
para acessar as informaes a seguir.

Pgina de Resumo
A pgina de resumo da anlise de site apresenta uma viso geral de todas as violaes relacionadas a SEO
e dos problemas encontrados no site analisado. Alm disso, ela contm um grande conjunto de relatrios
predefinidos sobre o contedo e a estrutura do site.
Voc pode analisar cada item separadamente no relatrio clicando duas vezes nele ou usando o comando
View Group Details no menu de contexto. Para abrir um determinado relatrio em uma pgina de consulta
separada, use o comando do menu de contexto Open Query.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

79

Pgina de consulta
A abertura de um relatrio predefinido da pgina de resumo resultar em uma nova pgina de consulta.
A pgina de consulta usada para emitir consultas referentes aos dados da anlise do site que foram
coletados durante o rastreamento do site. Na captura de tela, a consulta usada para obteno de todas
as pginas que referenciam imagens sem especificar um atributo alt no elemento HTML img.
Voc pode executar um conjunto de aes, acessvel a partir do menu de contexto, para cada item no
painel de resultados da consulta. As aes so as seguintes:
View Details: Esta opo abre uma caixa de dilogo, que pode ser usada para obter informaes detalhadas
sobre o item. Especificamente, voc pode visualizar os detalhes de violao e as aes corretivas sugeridas.
Alm disso, os dados de resposta reais estaro disponveis se voc precisar investigar as causas da violao
relatada depois. Por exemplo, se voc quiser descobrir onde essa violao ocorreu no HTML de resposta,
escolha a guia Content. Isso abrir o contedo da resposta com a seo afetada da marcao realada.
View in Browser: Se voc clicar com o boto direito do mouse em uma URL, poder selecionar View in
Browser no menu de contexto para mostrar a URL no navegador.
View Pages Linking to This Page: Se voc clicar com o boto direito do mouse em uma URL, tambm
poder selecionar View Pages Linking to This Page. Essa opo abre uma nova pgina de consulta que
mostra todas as pginas no site que referenciam a URL do item selecionado. Esse tipo de relatrio til
quando voc deseja descobrir quais pginas podero ser afetadas se voc alterar uma determinada URL
no site.
View Pages Linked by This Page: Esta opo abre uma nova pgina de consulta que mostra todas as
URLs e os recursos que a marcao HTML da URL selecionada atualmente referencia.
View Violations in This Page: Esta opo abre uma nova pgina de consulta que mostra todas as
violaes encontradas na pgina da URL selecionada.
View in Hierarchy: Esta opo abre uma pgina de exibio de hierarquia que consiste nas seguintes
partes:

URLs de todas as pginas que levam pgina selecionada.

A URL da pgina selecionada.

URLs de todas as pginas e recursos referenciados pela pgina selecionada.

View Routes to this Page: Esta opo abre uma nova pgina que exibe as 5 menores rotas exclusivas da
pgina inicial de anlise para a pgina selecionada atualmente.
Cada rota mostrada com a pgina inicial na parte inferior e as pginas subsequentes acima, com a pgina
selecionada no topo. Esse relatrio pode ser usado para analisar o modo como os visitantes podem acessar
uma determinada pgina no site e se h pginas desnecessrias que podem ser eliminadas para que os
usurios descubram a pgina selecionada mais facilmente.
Word Analysis: Este recurso pode ser usado para se ter uma ideia das palavras mais comumente usadas
no contedo de uma pgina. Elas podem ser usadas como palavras-chave para descrever com preciso o
contedo da pgina da Web para mecanismos de pesquisa.
As palavras usadas com mais frequncia em uma pgina sero exibidas, o que pode dar uma ideia de quais
palavras-chave escolher para essa pgina. Alm disso, os textos de links que referenciam essa pgina so
listados na parte inferior da caixa de dilogo. Isso ajuda a verificar se o texto ncora usado nesses links
descreve com preciso o contedo da pgina.

80

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Lio 2

Arquivos de detectabilidade
Sumrio:
Perguntas e respostas

81

Passos detalhados de demonstrao

82

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

81

Perguntas e respostas
O que so arquivos de robs?
Pergunta: Voc j comandou ou testou contedo em um ambiente de produo em que no queria
que um mecanismo de pesquisa indexasse?
Resposta: Pode variar.
Pergunta: Cite algumas desvantagens de permitir que rastreadores da Web indexem contedo que
no esteja pronto para produo?
Resposta: Os mecanismos de pesquisa coletam informaes que ainda no esto prontas e
direcionam os usurios a elas.

O que o Arquivo de Mapa de Site?


Pergunta: Quando voc geralmente instala um arquivo de mapa de site?
Resposta: No incio de um projeto.

82

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Passos detalhados de demonstrao


Demonstrao: Criando um arquivo de robs
Nesta demonstrao, voc ver como criar um arquivo robots.txt.
1.

Abra o Gerenciador do Servios de Informaes da Internet (IIS) como administrador.


a.

No menu Iniciar, clique em Painel de Controle.

b.

No Painel de Controle, clique em Sistema e Segurana e em Ferramentas Administrativas.

c.

Clique com o boto direito do mouse em Gerenciador do Servios de Informaes da


Internet (IIS) e clique em Executar como administrador.

2.

Na caixa de dilogo Controle de Conta de Usurio, na caixa Senha, digite Pa$$w0rd e pressione
ENTER.

3.

Selecione o Default Web site.

4.

Abra o recurso Search Engine Optimization.

5.

No painel Conexes, expanda 10714A-GEN-DEV (10714A-GEN-DEV\Admin), expanda Sites e


clique em Default Web site.

No Gerenciador do Servios de Informaes da Internet (IIS), no painel intermedirio, na seo


Gerenciamento, clique duas vezes em Search Engine Optimization.

Exiba as regras existentes.

No painel Search Engine Optimization, na seo Robots Exclusion, clique em View existing
rules.

Observao: Atualmente no h regras e tambm no h nenhum arquivo robots.txt.


6.

Adicione um arquivo de mapa de site.


a.

No painel Actions, na seo Sitemap Locations, clique em Add Sitemaps.

b.

Na caixa de dilogo Add Sitemaps, na lista URL Paths, selecione o Default Web Site e clique
em OK.

Observao: Atualmente, no h nenhum arquivo de mapa de site, mas essa ao criar o


arquivo robots.txt.
7.

Abra o arquivo robots.txt.

No painel Actions, na seo Robots, clique no arquivo Open Robots.txt.

Observao: O arquivo robots.txt aberto no Bloco de Notas. Atualmente, ele contm


apenas uma referncia ao mapa de site no local padro do site padro.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

83

A seguir, so apresentados exemplos do que voc pode adicionar a um arquivo robots.txt.

Este exemplo no permite todos os spiders da Web para todo o site:


# Make changes for all web spiders
User-agent: *
Disallow: /

O exemplo a seguir no permite um rob chamado WebSpider dos caminhos virtuais /marketing
e /sales:
# Tell "WebSpider" where it can't go
User-agent: WebSpider
Disallow: /marketing
Disallow: /sales
# Allow all other robots to browse everywhere
User-agent: *
Disallow:

Este exemplo permite apenas um spider da Web denominado SpiderOne em um site, enquanto nega
todos os outros spiders:
# Allow "SpiderOne" in the site
User-agent: SpiderOne
Disallow:
# Deny all other spiders
User-agent: *
Disallow: /

Este ltimo exemplo no permite caminhos relacionados ao FrontPage na raiz do site:


# Ignore FrontPage files
User-agent: *
Disallow: /_borders
Disallow: /_derived
Disallow: /_fpclass
Disallow: /_overlay
Disallow: /_private
Disallow: /_themes
Disallow: /_vti_bin
Disallow: /_vti_cnf
Disallow: /_vti_log
Disallow: /_vti_map
Disallow: /_vti_pvt
Disallow: /_vti_txt

8.

Feche o Bloco de Notas.

9.

Na janela robots.txt Bloco de Notas, clique no boto Fechar.

Feche o Gerenciador do Servios de Informaes da Internet (IIS).

Na janela do Gerenciador do Servios de Informaes da Internet (IIS), clique no boto Fechar.

84

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

10. Feche as Ferramentas Administrativas.

Na janela Painel de Controle\Sistema e Segurana\Ferramentas Administrativas, clique no


boto Fechar.

11. Feche Sistema e Segurana.

Na janela Painel de Controle\Sistema e Segurana, clique no boto Fechar.

Demonstrao: Criao de um arquivo de mapa do site


Criao de um arquivo de mapa do site
1.

Abra o Gerenciador do Servios de Informaes da Internet (IIS) como administrador.

No menu Iniciar, clique em Painel de Controle.

2.

No Painel de Controle, clique em Sistema e Segurana e, em seguida, clique em Ferramentas


Administrativas.

3.

Clique com o boto direito do mouse em Gerenciador do Servios de Informaes da Internet


(IIS) e, em seguida, clique em Executar como administrador.

4.

Na caixa de dilogo Controle de Conta de Usurio, na caixa Senha, digite Pa$$w0rd e pressione
ENTER.

5.

Abra o recurso Search Engine Optimization.

6.

7.

Crie um novo mapa de site para o site padro, em um arquivo denominado Sitemap.xml. Defina a
frequncia de alterao como diria, no registre a data e a hora da ltima modificao e defina a
prioridade como 1.
a.

No painel the Search Engine Optimization, na seo Sitemaps and Sitemap Indexes, clique
em Create a new sitemap.

b.

Na caixa de dilogo Choose Site, na lista Site, clique em Default Web Site e em OK.

c.

Na caixa de dilogo Add Sitemap, na caixa File Name, digite Sitemap.xml e clique em OK.

d.

Na caixa de dilogo Add URLs, na lista URL Paths, clique em Default Web Site e em OK.

Feche o Gerenciador do Servios de Informaes da Internet (IIS).

8.

Na janela do Gerenciador do Servios de Informaes da Internet (IIS), clique no boto


Fechar.

Feche Ferramentas Administrativas.

9.

No painel direito, na seo Gerenciamento Group, clique duas vezes em Search Engine
Optimization.

Na janela Painel de Controle\Sistema e Segurana\Ferramentas Administrativas, clique no


boto Fechar.

Feche Sistema e Segurana.

Na janela Painel de Controle\Sistema e Segurana, clique no boto Fechar.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Lio 3

Uso do roteamento ASP.NET


Sumrio:
Perguntas e respostas

86

Passos detalhados de demonstrao

87

85

86

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Perguntas e respostas
Como funciona o roteamento ASP.NET
Pergunta: Quais so as vantagens de usar URLs roteadas em relao a URLs padro?
Resposta: As URLs so mais simples e podem ser digitadas, copiadas/coladas ou usadas em
mecanismos de pesquisa com mais facilidade.

Demonstrao: Uso do roteamento ASP.NET com pginas de Web Forms


Pergunta: Como o uso do Roteamento ASP.NET melhora a manuteno a longo prazo de um
aplicativo da Web?
Resposta: As alteraes em sites podem ser feitas facilmente por meio da atualizao de tabelas de
roteamento.
Pergunta: Qual a sua percepo de um site quando voc recebe um erro HTTP 404?
Resposta: Pode variar.

Uso do roteamento ASP.NET com pginas do MVC


Pergunta: Como o roteamento interno MVC aprimora os resultados da consulta do mecanismo de
pesquisa?
Resposta: Ele produz URLs amigveis para o mecanismo de pesquisa.
Pergunta: Como o roteamento interno MVC aprimora a manuteno de um site?
Resposta: fcil adicionar ou mover modos de exibio simplesmente modificando a rota
correspondente.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

87

Passos detalhados de demonstrao


Demonstrao: Uso do roteamento ASP.NET com pginas de Web Forms
1.

Abra o Microsoft Visual Studio 2010.


No menu Iniciar de 10714A-GEN-DEV, aponte para Todos os Programas, clique em Microsoft
Visual Studio 2010 e, em seguida, clique em Microsoft Visual Studio 2010.

2.

Abra a soluo WebFormsRouting no local a seguir.

Linguagem de programao

Local

Visual C#

D:\Demofiles\CS

Visual Basic

D:\Demofiles\VB

3.

4.

a.

Na janela Start Page Microsoft Visual Studio, no menu File, clique em Open Project ou
pressione CTRL+SHIFT+O.

b.

Na caixa de dilogo Open Project, na caixa Nome, digite D:\Demofiles\CS\


WebFormsRouting.sln ou D:\Demofiles\VB\WebFormsRouting.sln e clique em Abrir.

Adicione uma referncia ao assembly System.Web.Routing.


a.

No Gerenciador de Solues, clique com o boto direito do mouse em WebFormsRouting


clique em Add Reference.

b.

Na caixa de dilogo Add Reference, clique em .NET.

c.

Na lista, clique em System.Web.Routing e em OK.

Abra o arquivo Global.asax.

5.

No Solution Explorer, clique duas vezes em Global.asax.

Importe o namespace System.Web.Routing para o arquivo de cdigo Global.asax.

No incio do arquivo de cdigo Global.asax.cs ou Global.asax.vb, adicione o cdigo a seguir.


[Visual C#]
using System.Web.Routing;

[Visual Basic]
Imports System.Web.Routing

6.

Adicione um mtodo RegisterRoutes, conforme mostrado para a classe Global.


[Visual C#]
void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute(
"SearchRoute",
// Route name
"search/{searchterm}", // URL with parameters
"~/Search.aspx"
// Web forms page to handle it
);
}

88

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

[Visual Basic]
Sub RegisterRoutes(ByVal routes As RouteCollection)
' Route name
' URL with parameters
' Web forms page to handle it
routes.MapPageRoute("SearchRoute", "search/{searchterm}", "~/Search.aspx")
End Sub

Na janela Global.asax.cs ou Global.asax.vb, na classe Global, adicione o cdigo a seguir.


[Visual C#]
void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute(
"SearchRoute",
// Route name
"search/{searchterm}", // URL with parameters
"~/Search.aspx"
// Web forms page to handle it
);
}

[Visual Basic]
Private Sub RegisterRoutes(ByVal routes As RouteCollection)
' Route name
' URL with parameters
' Web forms page to handle it
routes.MapPageRoute("SearchRoute", "search/{searchterm}", "~/Search.aspx")
End Sub

7.

Modifique o mtodo Application_Start, conforme mostrado.


[Visual C#]
void Application_Start()
{
RegisterRoutes(RouteTable.Routes);
}

[Visual Basic]
Private Sub Application_Start()
RegisterRoutes(RouteTable.Routes)
End Sub

8.

Abra o arquivo de cdigo Search.aspx.cs ou Search.aspx.vb.

9.

No Gerenciador de Solues, clique com o boto direito do mouse em Search.aspx e clique em


View Code.

Modifique o mtodo Page_Load na classe Search, conforme mostrado.


[Visual C#]
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
string searchTerm = "No Search Term specified.";

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

89

if (RouteData.Values["searchterm"] != null)
{
searchTerm = "You searched for '" +
RouteData.Values["searchterm"].ToString() + "'";
}
SearchTermLabel.Text = searchTerm;
}
}

[Visual Basic]
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
Dim searchTerm As String = "No Search Term specified."
If Not RouteData.Values("searchterm") Is Nothing Then
searchTerm = "You searched for '" &
RouteData.Values("searchterm").ToString() & "'"
End If
SearchTermLabel.Text = searchTerm
End If
End Sub

10. Execute o aplicativo.


a.

No Solution Explorer, clique em WebFormsRouting.

b.

Na janela AdventureWorks Microsoft Visual Studio, no menu Debug, clique em Start


Without Debugging ou pressione CTRL+F5.

11. Navegue diretamente para a pgina Search usando a rota a seguir.


search/My Search Term

Na janela Home Page Windows Internet Explorer, na barra de endereos, anexe o texto a
seguir.
search/My Search Term

12. Feche o Windows Internet Explorer.

Na janela http://localhost:xxxx/search/My%20Search%20Term Windows Internet


Explorer, clique no boto Close.

13. Feche o Visual Studio 2010.

Na janela RouteConstraints Microsoft Visual Studio, clique no boto Close.

90

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Demonstrao: Criao de restries de rota


1.

Abra o Microsoft Visual Studio 2010.


No menu Iniciar de 10714A-GEN-DEV, aponte para Todos os Programas, clique em Microsoft
Visual Studio 2010 e, em seguida, clique em Microsoft Visual Studio 2010.

2.

Abra a soluo RouteConstraints no local a seguir.

Linguagem de programao Local


Visual C#

D:\Demofiles\CS

Visual Basic

D:\Demofiles\VB

3.

a.

Na janela Start Page Microsoft Visual Studio, no menu File, clique em Open Project ou
pressione CTRL+SHIFT+O.

b.

Na caixa de dilogo Open Project, na caixa Nome, digite D:\Demofiles\CS\


RouteConstraints.sln ou D:\Demofiles\VB\RouteConstraints.sln e clique em Abrir.

Abra o arquivo Global.asax.

4.

No Solution Explorer, clique duas vezes em Global.asax.

Adicione a rota a seguir ao mtodo RegisterRoutes, conforme mostrado.


[Visual C#]
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Product",
"Product/{productId}",
new {controller="Product", action="Details"}
);

[Visual Basic]
routes.IgnoreRoute("{resource}.axd/{*pathInfo}")
routes.MapRoute(
"Product",
"Product/{productId}",
New With {.controller = "Product", .action = "Details"}
)

Na janela Global.asax.cs ou Global.asax.vb, na classe Global, no mtodo RegisterRoutes,


adicione o cdigo a seguir.
[Visual C#]
routes.MapRoute(
"Product",
"Product/{productId}",
new {controller="Product", action="Details"}

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

91

[Visual Basic]
routes.MapRoute(
"Product",
"Product/{productId}",
New With {.controller = "Product", .action = "Details"}
)

Depois deste cdigo:


[Visual C#]
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

[Visual Basic]
routes.IgnoreRoute("{resource}.axd/{*pathInfo}")

5.

Abra o controlador ProductController.


No Solution Explorer, expanda Controllers e clique duas vezes em ProductController.cs ou em
ProductController.vb.

6.

Adicione o mtodo de ao Details classe ProductController, conforme mostrado.


[Visual C#]
public ActionResult Details(int productId)
{
ViewData["ProductId"] = productId.ToString();
return View();
}

[Visual Basic]
Function Details(ByVal productId As Integer) As ActionResult
ViewData("ProductId") = productId.ToString()
Return View()
End Function

7.

Execute o aplicativo.
a.

No Solution Explorer, clique em RouteConstraints.

b.

Na janela AdventureWorks Microsoft Visual Studio, no menu Debug, clique em Start


Without Debugging ou pressione CTRL+F5.

92

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

8.

Navegue diretamente para o modo de exibio Product/Details usando a rota a seguir.


product/6

Na janela Home Page Windows Internet Explorer, na barra de endereos, anexe o texto a
seguir.
product/6

Observao: Uma mensagem que diz Details for product with ID 3 mostrada agora.
9.

Navegue diretamente para o modo de exibio Product/Details usando a rota a seguir.


product/paper

Na janela Home Page Windows Internet Explorer, na barra de endereos, anexe o texto a
seguir.
product/paper

Observao: Uma mensagem de erro mostrada agora.


The parameters dictionary contains a null entry for parameter productId of non-nullable
type System.Int32 for method System.Web.Mvc. ActionResult Details(Int32) in
RouteConstraints.RouteConstraints.ProductController. (O dicionrio de parmetros
contm uma entrada nula para o parmetro productId do tipo no anulvel
System.Int32 para o mtodo System.Web.Mvc.ActionResult Details(Int32) em
RouteConstraints.RouteConstraints.ProductController.) An optional parameter must be a
reference type, a nullable type, or be declared as an optional parameter. (Um parmetro
opcional deve ser um tipo de referncia, um tipo anulvel ou deve ser declarado como
um parmetro opcional.
10. Feche o Internet Explorer.

Na janela The parameters dictionary contains a null entry for parameter productId of
non-nullable type Windows Internet Explorer, clique no boto Close.

11. Modifique a rota Product em Global.asax, conforme mostrado.


[Visual C#]
routes.MapRoute(
"Product",
"Product/{productId}",
new {controller="Product", action="Details"},
new {productId = @"\d+" }
);

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

[Visual Basic]
routes.MapRoute(
"Product",
"Product/{productId}",
New With {.controller = "Product", .action = "Details"},
New With {.productId = "\d+"}
)

Na janela RouteConstraints Microsoft Visual Studio, clique em Global.asax.cs ou em


Global.asax.vb.

Insira o seguinte cdigo:


[Visual C#]
,
new {productId = @"\d+" }

[Visual Basic]
,
New With {.productId = "\d+"}

Neste local:
[Visual C#]
routes.MapRoute(
"Product",
"Product/{productId}",
new {controller="Product", action="Details"} <Insert Code Here>
);

[Visual Basic]
routes.MapRoute(
"Product",
"Product/{productId}",
New With {.controller = "Product", .action = "Details"} <Insert Code Here>
)

12. Execute o aplicativo.


a.

No Solution Explorer, clique em RouteConstraints.

b.

Na janela AdventureWorks Microsoft Visual Studio, no menu Debug, clique em Start


Without Debugging ou pressione CTRL+F5.

93

94

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

13. Navegue diretamente para o modo de exibio Product/Details usando a rota a seguir.
product/paper

Na janela Home Page Windows Internet Explorer, na barra de endereos, anexe o texto a
seguir.
product/paper

Observao: Uma mensagem de erro mostrada agora.


The resource cannot be found. (No possvel encontrar o recurso)
14. Feche o Internet Explorer.

Na janela The resource cannot be found. Windows Internet Explorer, clique no boto
Close.

15. Feche o Visual Studio 2010.

Na janela RouteConstraints Microsoft Visual Studio, clique no boto Close.

Demonstrao: Criao de rotas personalizadas


1.

Abra o Microsoft Visual Studio 2010.

2.

No menu Iniciar de 10714A-GEN-DEV, aponte para Todos os Programas, clique em Microsoft


Visual Studio 2010 e, em seguida, clique em Microsoft Visual Studio 2010.

Abra a soluo CustomRoute no local a seguir.

Linguagem de programao

Local

Visual C#

D:\Demofiles\CS

Visual Basic

D:\Demofiles\VB

3.

a.

Na janela Start Page Microsoft Visual Studio, no menu File, clique em Open Project ou
pressione CTRL+SHIFT+O.

b.

Na caixa de dilogo Open Project, na caixa Nome, digite D:\Demofiles\CS\CustomRoute.sln


ou D:\Demofiles\VB\CustomRoute.sln e clique em Abrir.

Abra o arquivo Global.asax.

No Solution Explorer, clique duas vezes em Global.asax.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

4.

Adicione a rota a seguir ao mtodo RegisterRoutes, conforme mostrado.


[Visual C#]
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Blog", "Blog/{entryDate}",
new { controller = "Blog", action = "Archive" }
);

[Visual Basic]
routes.IgnoreRoute("{resource}.axd/{*pathInfo}")
routes.MapRoute(
"Blog",
"Blog/{entryDate}",
New With {.controller = "Blog", .action = "Archive"}
)

Na janela Global.asax.cs ou Global.asax.vb, na classe Global, no mtodo RegisterRoutes,


adicione o cdigo a seguir.
[Visual C#]
routes.MapRoute(
"Blog", "Blog/{entryDate}",
new { controller = "Blog", action = "Archive" }
);

[Visual Basic]
routes.MapRoute(
"Blog",
"Blog/{entryDate}",
New With {.controller = "Blog", .action = "Archive"}
)

Depois deste cdigo:


[Visual C#]
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

[Visual Basic]
routes.IgnoreRoute("{resource}.axd/{*pathInfo}")

5.

Execute o aplicativo.
a.

No Solution Explorer, clique em CustomRoute.

b.

Na janela AdventureWorks Microsoft Visual Studio, no menu Debug, clique em Start


Without Debugging ou pressione CTRL+F5.

95

96

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

6.

Navegue diretamente para o modo de exibio Blog/Archive usando a rota a seguir.


blog/12-25-2010

Na janela Home Page Windows Internet Explorer, na barra de endereos, anexe o texto a
seguir.
blog/12-25-2010

7.

Feche o Internet Explorer.

8.

Na janela Blog Archive Windows Internet Explorer, clique no boto Close.

Feche o Visual Studio 2010.

Na janela RouteConstraints Microsoft Visual Studio, clique no boto Close.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Mdulo 7
Escrevendo cdigo de servidor para formulrios da Web
Sumrio:
Lio 3: Localizao de um aplicativo Web

98

97

98

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Lio 3

Localizao de um aplicativo Web


Sumrio:
Passos detalhados de demonstrao

99

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

99

Passos detalhados de demonstrao


Demonstrao: Localizar um aplicativo Web
Nesta demonstrao, voc ver como localizar um aplicativo Web.
1.

Abra o Microsoft Visual Studio 2010.

2.

No menu Iniciar de 10714A-GEN-DEV, aponte para Todos os Programas, clique em


Microsoft Visual Studio 2010 e, em seguida, clique em Microsoft Visual Studio 2010.

Abra a soluo Localization no local a seguir.

Linguagem de programao

Local

Visual C#

D:\Demofiles\CS

Visual Basic

D:\Demofiles\VB

3.

a.

Na janela Start Page Microsoft Visual Studio, no menu File, clique em Open Project ou
pressione CTRL+SHIFT+O.

b.

Na caixa de dilogo Open Project, na caixa Nome, digite D:\Demofiles\CS\Localization.sln


ou D:\Demofiles\VB\Localization.sln e clique em Abrir.

Abra Default.aspx.

4.

No Gerenciador de Solues, clique duas vezes em Default.aspx.

Adicione um controle de servidor Label aps o elemento h2, com os atributos a seguir.

Atributo

Valor

ID

HelloLabel

Text

Hello in English

a.

Coloque o cursor aps o elemento h2.

b.

Abra a Caixa de Ferramentas, expanda Standard e clique duas vezes em Label.


<asp:Label ID="HelloLabel" runat="server" Text="Hello in English"></asp:Label>

5.

Alterne para o modo de exibio Design.

6.

Gere recursos locais usando o comando Generate Local Resource no menu Tools.

7.

Na janela Localization Microsoft Visual Studio, no menu Tools, clique em Generate


Local Resource.

Alterne para o modo Cdigo-fonte.

8.

Na janela Default.aspx, clique em Design.

Na janela Default.aspx, clique em Source.

Observe os atributos recm-adicionados, meta:resourcekey, para a pgina e o controle de servidor


Label.

100

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

9.

Abra o arquivo App_LocalResources\Default.aspx.resx.

No Gerenciador de Solues, na pasta App_LocalResources, clique duas vezes em


Default.aspx.resx.

10. Adicione um novo recurso de cadeia de caracteres chamado HeaderText.Text com o valor
Localization.

Na linha inferior do Editor de Recurso, na caixa Name, digite HeaderText.Text e, na caixa


Value, digite Localization.

11. Adicione um novo recurso de cadeia de caracteres chamado DescriptionText com o valor
ASP.NET Localization.

Na linha inferior do Resource Editor, na caixa Name, digite DescriptionText e, na caixa Value,
digite ASP.NET Localization.

12. Salve e feche o arquivo de recurso.


a.

No menu File, clique em Salvar App_LocalResources\Default.aspx.resx ou pressione


CTRL+S.

b.

Na janela Default.aspx.resx, clique no boto Close.

13. Copie o arquivo App_LocalResources\Default.aspx.resx em um novo arquivo chamado


Default.aspx.de.resx, na pasta App_LocalResources.
a.

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


Default.aspx.resx e clique em Copiar.

b.

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


em Paste.

c.

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


Copy of Default.aspx.resx e, em seguida, clique em Rename.

d.

Na caixa de texto, digite Default.aspx.de.resx e pressione ENTER.

14. Abra o arquivo App_LocalResources\Default.aspx.de.resx.

No Solution Explorer, na pasta App_LocalResources, clique duas vezes em


Default.aspx.de.resx.

15. Localize o recurso de cadeia de caracteres chamado HeaderText.Text com um novo valor de
Lokalisierung.

No Editor de Recurso, na linha com um valor na coluna Nome de HeaderText.Text, na caixa


Value, digite Lokalisierung.

16. Localize o recurso de cadeia de caracteres chamado HelloLabelResource1.Text com um novo


valor de Hallo in Deutsch.

No Resource Editor, na linha com o valor HelloLabelResource1.Text na coluna Name,


na caixa Value, digite Hallo in Deutsch.

17. Localize o recurso de cadeia de caracteres chamado PageResource1.Title com o novo valor
Startseite.

No Resource Editor, na linha com o valor PageResource1.Title na colunaName, na caixa


Value, digiteStartseite.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

101

18. Localize o recurso de cadeia de caracteres chamado DescriptionText com o novo valor ASP.NET
Lokalisierung.
No Resource Editor, na linha com o valor DescriptionText na coluna Name, na caixa Value,
digite ASP.NET Lokalisierung.

19. Salve e feche o arquivo de recurso.


a.

No menu File, clique em Save App_LocalResources\Default.aspx.de.resx ou pressione as


teclas CTRL+S.

b.

Na janela Default.aspx.de.resx, clique no boto Close.

20. Em Default.aspx, localize o texto Localization embutido em cdigo implicitamente, adicionando


um controle de servidor Localize no elemento h2, com os atributos a seguir.
Atributo

Valor

ID

HeaderText

meta:resourcekey

HeaderText

a.

Coloque o cursor no elemento h2, imediatamente antes do texto Localization.

b.

Abra a Toolbox, expanda Standard e clique duas vezes em Localize.

c.

Modifique o controle de servidor Localize para ficar parecido com este:


<asp:Localize ID="HeaderText" runat="server"
meta:resourcekey="HeaderText"></asp:Localize>

21. Exclua o texto Localization do elemento h2.


22. Adicione dois elementos br HTML de fechamento automtico e um controle de servidor Literal
chamado DescriptionLiteral, aps o controle de servidor HelloLabel.
a.

Posicione o cursor depois do elemento HelloLabel.

b.

Digite o texto a seguir e pressione ENTER.


<br/><br/>

c.

Abra a Toolbox, expanda Standard e clique duas vezes em Literal.

d.

Modifique o controle de servidor Literal para que seja exibido da seguinte maneira.
<asp:Literal ID="DescriptionLiteral" runat="server" Text=""></asp:Literal>

23. Torne o controle Literal explicitamente localizvel, adicionando o texto a seguir propriedade Text.
<%$ Resources: DescriptionText %>

24. Adicione um novo arquivo de recurso global chamado WebResources.resx pasta


App_GlobalResources.
a.

No Solution Explorer, clique com o boto direito do mouse em Localization, aponte para Add,
para Add ASP.NET Folder e clique em App_GlobalResources.

b.

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


para Add e clique em New Item.

102

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

c.

Na caixa de dilogo Add New Item, no painel intermedirio, clique em Resources File,
na caixa Nome, digite WebResources.resx e clique em Add.

Observao: O nome do arquivo igual ao da classe que ser gerada no namespace


Resources.
25. Adicione um novo recurso de cadeia de caracteres chamado FooterText com o valor This is the
footer....

Na linha inferior do Editor de Recurso, na caixa Nome, digite FooterText, na caixa Valor,
digite This is the footer....

26. Salve e feche o arquivo de recurso.


a.

No menu File, clique em Save App_GlobalResources\WebResources.resx ou pressione as


teclas CTRL+S.

b.

Na janela WebResources.resx, clique no boto Close.

27. Copie o arquivo App_GlobalResources\WebResources.resx em um novo arquivo chamado


WebResources.de.resx, na pasta App_GlobalResources.
a.

No Solution Explorer, na pasta App_GlobalResources, clique com o boto direito do mouse


em WebResources.resx e clique em Copy.

b.

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


em Paste.

c.

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


Cpia de WebResources.resx e clique em Rename.

d.

Na caixa de texto, digite WebResources.de.resx e pressione ENTER.

28. Abra o arquivo App_GlobalResources\WebResources.de.resx.

No Gerenciador de Solues, na pasta App_GlobalResources, clique duas vezes em


WebResources.de.resx.

29. Localize o recurso de cadeia de caracteres chamado FooterText com um novo valor de Dies ist
der Fuzeile....

No Resource Editor, na linha com o valor FooterText na coluna Name, na caixa Value, digite
Dies ist der Fuzeile....

30. Salve e feche o arquivo de recurso.


a.

No menu File, clique em Save App_GlobalResources\WebResources.de.resx ou pressione as


teclas CTRL+S.

b.

Na janela WebResources.de.resx, clique no boto Close.

31. Adicione um elemento h3 e, dentro do elemento h3, adicione um controle de servidor Label chamado
FooterLabel, aps o controle de servidor DescriptionLiteral.
a.

Posicione o cursor depois do elemento DescriptionLiteral.

b.

Digite o texto a seguir e pressione ENTER.


<h3></h3>

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

c.

Coloque o cursor entre as marcas h3 de abertura e fechamento.

d.

Abra a Caixa de Ferramentas, expanda Standard e clique duas vezes emLabel.

e.

Modifique o controle de servidor Label para que seja exibido da seguinte maneira.

103

<asp:Label ID="FooterLabel" runat="server" Text=""></asp:Label>

32. Modifique o controle Label, adicionando o seguinte texto propriedade Text.


<%$ Resources:WebResources, FooterText %>

33. Execute o aplicativo.


a.

No Solution Explorer, clique em Localization.

b.

Na janela Localization Microsoft Visual Studio, no menu Debug, clique em Start


Without Debugging ou pressione CTRL+F5.

34. Verifique se o Formulrio da Web Default.aspx exibe texto em ingls.


35. Mostre a home page Localization em alemo, alterando a preferncia de idioma na caixa de
dilogo Opes da Internet.
a.

Na janela Home Page Windows Internet Explorer, no menu Ferramentas, clique em


Opes da Internet.

b.

Na caixa de dilogo Opes da Internet, clique em Idiomas.

c.

Na caixa de dilogo Preferncia de Idioma, clique em Add.

d.

Na caixa de dilogo Adicionar Idioma, na lista Idioma, clique em Alemo (Alemanha)


[de-DE] e em OK.

e.

Na caixa de dilogo Preferncia de Idioma, na lista Idioma, clique em Alemo (Alemanha)


[de-DE] e, em seguida, clique em Mover para cima.

36. Na caixa de dilogo Preferncia de Idioma, clique em OK.


37. Na caixa de dilogo Opes da Internet, clique em OK.
38. Atualize a pgina no Windows Internet Explorer.

Na janela Home Page Windows Internet Explorer, pressione F5.

Observao: Agora, a pgina dever estar em alemo.


39. Feche o Internet Explorer.

Na janela Home Page Windows Internet Explorer, clique no boto Fechar.

40. Feche o Visual Studio 2010.

Na janela Localization Microsoft Visual Studio, clique no boto Fechar.

104

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Mdulo 8
Otimizao do gerenciamento de dados para formulrios da
Web
Sumrio:
Lio 1: Gerenciamento de dados com o LINQ to Entities

105

Lio 2: Uso de controles de fonte de dados

110

Lio 3: Usando o ASP.NET Dynamic Data

114

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Lio 1

Gerenciamento de dados com o LINQ to Entities


Sumrio:
Perguntas e respostas

106

Passos detalhados de demonstrao

107

Leituras adicionais

109

105

106

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Perguntas e respostas
Viso geral do LINQ to Entities
Pergunta: Qual infraestrutura as consultas do LINQ to Entities usam para interagir com o
Modelo de Dados de Entidade como objetos CLR?
Resposta: As consultas do LINQ to Entities usam a infraestrutura Servios de Objeto para
interagir com o modelo de dados de entidade como objetos CLR.

Viso geral dos Servios de Objeto do ADO.NET Entity Framework


Pergunta: O que so entidades POCO?
Resposta: As entidades POCO so tipos de CLR bsicos.

O Modelo de Dados de Entidade


Pergunta: Qual a primeira etapa da criao de um Modelo de Dados de Entidade?
Resposta: necessrio primeiramente definir as entidades e as relaes, se houver, em um
esquema de design.

Demonstrao: Criao de um modelo de dados de entidade


Pergunta: O que significa colocar no plural ou no singular nomes de objetos generalizados?
Resposta: Significa que as regras do idioma ingls sero usadas para singularizar todos os
nomes EntityType, pluralizar todos os nomes EntitySet, singularizar o nome de cada
NavigationProperty que retornar no mximo uma entidade e pluralizar o nome de cada
NavigationProperty que retornar mais de uma entidade.

Programao orientada a objeto usando o LINQ to Entities


Pergunta: Qual a primeira etapa quando voc deseja usar um Modelo de Dados de
Entidade do seu cdigo?
Resposta: necessrio criar uma instncia do tipo derivado ObjectContext.

Operaes CRUD usando o LINQ to Entities


Pergunta: Qual mtodo usado para enviar as alteraes locais para o banco de dados?
Resposta: O mtodo SaveChanges usado para enviar as alteraes locais ao banco de
dados.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

107

Passos detalhados de demonstrao


Demonstrao: Criao de um modelo de dados de entidade
Esta demonstrao mostra como criar um Modelo de Dados de Entidade.
1.

Abra o Microsoft Visual Studio 2010.


No menu Iniciar de 10714A-GEN-DEV, aponte para Todos os Programas, clique em Microsoft
Visual Studio 2010 e, em seguida, clique em Microsoft Visual Studio 2010.

2.

3.

Abra a soluo EDM na pasta D:\Demofiles\VB ou D:\Demofiles\CS.


a.

Na janela Start Page Microsoft Visual Studio, no menu File, clique em Open Project.

b.

Na caixa de dilogo Open Project, na caixa Nome, digite D:\Demofiles\VB\EDM.sln ou


D:\Demofiles\CS\EDM.sln e clique em Abrir.

Adicione um projeto ADO.NET Entity Data Model denominado AdventureWorks.edmx.


a.

No Solution Explorer, clique com o boto direito do mouse em EDM, aponte para Add e clique
em New Item.

b.

Na caixa de dilogo Add New Item EDM, no painel esquerdo, clique em Data e, em seguida,
no painel intermedirio, clique em ADO.NET Entity data Model.

c.

Na caixa Name, digite AdventureWorks.edmx e, em seguida, clique em Add.

d.

No Entity Data Model Wizard, na pgina Choose Model Contents, clique em Generate from
database e, em seguida, clique em Next.

e.

Na pgina Choose Your Data Connection, clique em New Connection.

f.

Se a caixa de dilogo Choose Data Source abrir, na lista Data source, clique em Microsoft SQL
Server e, em seguida, clique em Continue.

g.

Na caixa de dilogo Connection Properties, na caixa Server name, digite 10714A-GEN-DEV\


SQLEXPRESS, na caixa Select or enter a database name, digite AdventureWorksLT2008R2 e
clique em OK.

h.

No Entity Data Model Wizard, na pgina Choose Your Data Connection, visualize as
configuraes atualizadas, derivadas do banco de dados selecionado e clique em Next.

i.

Na pgina Choose Your Database Objects, na lista Which database objects do you want to
include in your model?, expanda Tables, selecione a caixa Tables, desmarque a caixa de seleo
BuildVersion (dbo) e clique em Finish.

Observao: Se a caixa Pluralize or singularize generated object names estiver selecionada,


o assistente usar regras do idioma ingls para nomes no singular e no plural e far o
seguinte: definir todos os nomes EntityType no singular e todos os nomes EntitySet no
plural; e para NavigationProperty, para cada uma que retornar, no mximo, uma entidade,
definir o nome no singular, e para cada uma que retornar mais de uma entidade, definir
o nome no plural.
Se a caixa Include foreign key columns in the model for selecionada, o assistente gerar
propriedades em tipos de entidade que correspondam a colunas de chave estrangeira no
banco de dados.

108

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

j.

Reveja as propriedades de entidade.

k.

Na janela AdventureWorks.edmx, clique na entidade Customer e mostre a janela Properties.


Observe como a propriedade Entity Set Name est no plural (Customers), e a propriedade
Name est no singular (Customer).

l.

4.

a.

Na janela AdventureWorks.edmx, clique e expanda a janela Mapping Details Customer.

b.

Em Column Mappings, especificamente, observe como a coluna NameStyle SQL Server bit
est mapeada para um tipo de dados Booleano/bool do .NET Framework.

Feche o item ADO.NET Entity Data Model.

5.

Reveja o mapeamento.

Na janela AdventureWorks.edmx, clique no boto Close.

Feche o Visual Studio 2010.


a.

Na janela EDM Microsoft Visual Studio, clique no boto Close.

b.

Na caixa de dilogo Microsoft Visual Studio, clique em Yes.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Leituras adicionais
Viso geral do LINQ to Entities
Para obter mais informaes sobre o ADO.NET Entity Framework, consulte ADO.NET Entity
Framework.

Viso geral dos Servios de Objeto do ADO.NET Entity Framework


Para obter mais informaes sobre entidades e proxies POCO, consulte Working with POCO
Entities (Entity Framework) (Trabalhando com entidades POCO (Entity Framework)).
Para obter mais informaes sobre entidades de autorrastreamento, consulte Working with
Self-Tracking Entities (Entity Framework) (Trabalhando com entidades de autorrastreamento
(Entity Framework)).
Para obter mais informaes sobre o Entity SQL, consulte Entity SQL Overview (Viso geral
do Entity SQL).

O Modelo de Dados de Entidade


Para obter mais informaes sobre a especificao do Modelo de Dados de Entidade,
consulte EDM Specifications (Especificaes do EDM).

109

110

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Lio 2

Uso de controles de fonte de dados


Sumrio:
Perguntas e respostas

111

Leituras adicionais

112

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Perguntas e respostas
Tipos de controles de fonte de dados
Pergunta: Qual controle de fonte de dados voc deveria usar para gerenciar a navegao no
site?
Resposta: Voc deve usar o controle SiteMapDataSource para gerenciar a navegao no
site.

Recursos de controles de fonte de dados


Pergunta: Qual propriedade do controle LinqDataSource necessrio definir para ativar a
classificao?
Resposta: necessrio definir a propriedade AllowSorting com o valor true para habilitar a
classificao.

Tcnicas avanadas do controle GridView


Pergunta: Qual elemento XML usado para personalizar a exibio de uma fonte de dados
vazia no controle GridView?
Resposta: O elemento EmptyDataTemplate usado para personalizar a exibio de uma
fonte de dados vazia no controle GridView.

Passo a passo: criando um TemplateField de um GridView


Pergunta: Qual caixa de dilogo pode ser usada para criar um objeto TemplateField para o
controle GridView?
Resposta: Use a caixa de dilogo Fields para criar um objeto TemplateField para o controle
GridView.

Como usar os controles ListView e DetailsView


Pergunta: Qual elemento de modelo do controle ListView usado para especificar a
aparncia de um item editado no momento?
Resposta: O EditItemTemplate usado para especificar a aparncia do item que est
sendo modificado no momento em um controle ListView.

Usando o controle Microsoft Chart


Pergunta: Onde o controle Chat encontrado no Visual Studio 2010?
Resposta: O controle Chart pode ser encontrado na guia Data da Toolbox no Visual Studio
2010.

111

112

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Leituras adicionais
Tipos de controles de fonte de dados
Para obter mais informaes sobre o controle AccessDataSource, consulte
AccessDataSource Web Server Control Overview (Viso geral do controle de servidor Web
AccessDataSource).
Para obter mais informaes sobre o controle ObjectDataSource, consulte Viso geral
sobre o controle de servidor Web ObjectDataSource.
Para obter mais informaes sobre o controle SiteMapDataSource, consulte Viso Geral
sobre o Controle SiteMapDataSource do Servidor Web.
Para obter mais informaes sobre o controle SqlDataSource, consulte Viso geral sobre o
controle de servidor Web SqlDataSource.
Para obter mais informaes sobre o controle XmlDataSource, consulte Viso Geral sobre
o Controle de Servidor Web XmlDataSource.

Recursos de controles de fonte de dados


Para obter mais informaes sobre vinculao usando controles de fonte de dados, consulte
Binding to Data Using a Data Source Control (Efetuando a vinculao a dados usando um
controle de fonte de dados).
Para obter mais informaes sobre classificao usando controles de fonte de dados,
consulte Sorting Data with Data Source Controls (Classificando dados com controles de
fonte de dados).
Para obter mais informaes sobre a filtragem usando controles de fonte de dados,
consulte Filtragem de dados usando controles de fonte de dados.
Para obter mais informaes sobre filtragem usando o controle XmlDataSource, consulte
Filtering Data Using the XmlDataSource Control (Filtrando dados com o controle
XmlDataSource).
Para obter informaes sobre os tipos de parmetros que podem ser usados na coleo
FilterParameters, consulte Using Parameters with Data Source Controls (Usando
parmetros com controles de fonte de dados).

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Tcnicas avanadas do controle GridView


Para obter mais informaes sobre a classe PagerSettings, consulte PagerSettings Class
(Classe PagerSettings).

Como usar os controles ListView e DetailsView


Para obter mais informaes sobre o controle ListView, consulte Viso Geral sobre o
Controle do Servidor Web ListView.
Para obter mais informaes sobre o controle DetailsView control, consulte Viso geral do
controle de servidor Web DetailsView.

Usando o controle Microsoft Chart


Para obter alguns exemplos de como usar os controles Microsoft Chart, consulte Samples
Environment for Microsoft Chart Controls (Ambiente de exemplos para os controles
Microsoft Chart).

113

114

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Lio 3

Usando o ASP.NET Dynamic Data


Sumrio:
Perguntas e respostas

115

Passos detalhados de demonstrao

116

Leituras adicionais

119

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Perguntas e respostas
O que so Dados Dinmicos ASP.NET?
Pergunta: O que o scaffolding faz no contexto do ASP.NET Dynamic Data?
Resposta: O scaffolding usado para aperfeioar a estrutura da pgina de formulrios da
Web ASP.NET existente, exibindo as pginas de forma dinmica, com base nos dados e
metadados expostos pelo modelo de dados.

Recurso scaffolding dos Dados Dinmicos ASP.NET


Pergunta: Qual a finalidade do atributo ScaffoldColumn?
Resposta: Ele usado para mostrar ou ocultar uma coluna ou um campo na interface do
usurio.

Recurso de roteamento dos Dados Dinmicos ASP.NET


Pergunta: Em qual arquivo o roteamento do ASP.NET Dynamic Data definido?
Resposta: O roteamento do ASP.NET Dynamic Data definido no arquivo de aplicativo
global.

Demonstrao: Criao de um aplicativo Web dos Dados Dinmicos


ASP.NET
Pergunta: Qual a finalidade do mtodo RegisterContext?
Resposta: O mtodo RegisterContext usado para registrar o contexto de dados ou de
objeto.

115

116

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Passos detalhados de demonstrao


Demonstrao: Criao de um aplicativo Web dos Dados Dinmicos
ASP.NET
Execute a etapa a seguir para criar e personalizar o aplicativo ASP.NET Dynamic Data.
1.

Abra o Visual Studio 2010.


No menu Iniciar de 10714A-GEN-DEV, aponte para Todos os Programas, clique em Microsoft
Visual Studio 2010 e, em seguida, clique em Microsoft Visual Studio 2010.

2.

3.

Crie um aplicativo Web usando a caixa de dilogo New Project.


a.

No menu File, clique em New Project.

b.

Na caixa de dilogo New Project, no painel esquerdo, clique em Visual Basic ou em Visual C#.

c.

No painel intermedirio, clique em ASP.NET Dynamic Data Entities Web Application.

d.

Na caixa Name, digite DDWebApp, na caixa Location, digite D:\Demofiles\VB ou


D:\Demofiles\CS e clique em OK.

Adicione um projeto ADO.NET Entity Data Model denominado AdventureWorks.edmx.


a.

No Solution Explorer, clique com o boto direito do mouse em DDWebApp, aponte para Add e
clique em New Item.

b.

Na caixa de dilogo Add New Item DDWebApp, no painel esquerdo, clique em Data e, no
painel central, clique em ADO.NET Entity data Model.

c.

Na caixa Name, digite AdventureWorks.edmx e, em seguida, clique em Add.

4.

No Entity Data Model Wizard, na pgina Choose Model Contents, clique em Generate from
database e, em seguida, clique em Next.

5.

Na pgina Choose Your Data Connection, clique em New Connection.

6.

Na caixa de dilogo Connection Properties, na caixa Server name, digite 10714A-GENDEV\SQLEXPRESS, na caixa Select or enter a database name, digite AdventureWorksLT2008R2 e
clique em OK.

7.

No Entity Data Model Wizard, na pgina Choose Your Data Connection, clique em Next.

8.

Na pgina Choose Your Database Objects, na lista Which database objects do you want to
include in your model?, expanda Tables, selecione a caixa Tables, desmarque a caixa de seleo
BuildVersion (dbo) e clique em Finish.

9.

Salve e feche o arquivo AdventureWorks.edmx.


a.

No menu File do Visual Studio 2010, clique em Save AdventureWorks.edmx.

b.

Na janela AdventureWorks.edmx, clique no boto Close.

10. No arquivo Global.asax.vb ou Global.asax.cs, adicione registro de contexto ao procedimento


RegisterRoutes.
[Visual Basic]
DefaultModel.RegisterContext(GetType(AdventureWorksLT2008R2Entities),
New ContextConfiguration() With {.ScaffoldAllTables = True})
[Visual C#]

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

117

DefaultModel.RegisterContext(typeof(AdventureWorksLT2008R2Entities), new
ContextConfiguration()
{
ScaffoldAllTables = true
});

Na janela Global.asax.vb ou Global.asax.cs, adicione o seguinte cdigo parte superior do


procedimento RegisterRoutes.
[Visual Basic]
DefaultModel.RegisterContext(GetType(AdventureWorksLT2008R2Entities),
New ContextConfiguration() With {.ScaffoldAllTables = True})

[Visual C#]
DefaultModel.RegisterContext(typeof(AdventureWorksLT2008R2Entities), new
ContextConfiguration()
{
ScaffoldAllTables = true
});

Observao: indique que isso ir registrar o contexto de objeto do modelo de dados de


entidade para uso utilizando o campo Dynamic Data e ative o scaffolding automtico do
modelo de dados.
11. Salve e feche o arquivo Global.asax.vb ou Global.asax.cs.
a.

No menu File do Visual Studio 2010, clique em Save Global.asax.vb ou Save Global.asax.cs.

b.

Na janela Global.asax.vb ou Global.asax.cs, clique no boto Close.

12. Crie e execute o aplicativo Web.

No menu Debug do Visual Studio 2010, clique em Start Without Debugging.

A pgina exibida no navegador mostra uma lista das tabelas adicionadas ao modelo de dados.

13. Teste o aplicativo Web para a funcionalidade Dados Dinmicos e exiba algumas pginas geradas
dinamicamente.
a.

Na janela Dynamic Data Site Windows Internet Explorer, clique em Addresses.


A pgina mostrar a exibio de lista que contm os dados da tabela de Addresses.

b.

Na janela Addresses Windows Internet Explorer, clique em Details, esquerda de um


endereo.
A pgina mostrar a exibio de detalhes que contm os dados da linha selecionada da tabela de
Addresses.

c.

Na janela Addresses Windows Internet Explorer, clique em Show all items e em


PostalCode.
A pgina mostrar a exibio de lista que contm os dados de endereos, classificados por
cdigo postal.

118

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

d.

Na janela Addresses Windows Internet Explorer, na primeira linha, em CustomerAddresses,


clique em View CustomerAddresses.
A pgina exibe o modo de exibio de lista que contm os dados dos endereos dos clientes.

e.

Na lista Address, clique em All.

f.

Na janela CustomerAddresses Windows Internet Explorer, no final da pgina, clique em


Insert new item para criar um novo endereo de cliente.

g.

Na janela CustomerAddresses Windows Internet Explorer, no final da pgina, clique em


Insert e exiba a validao inteligente adicionada aos campos obrigatrios e, em seguida, clique
em Cancel.
A pgina exibe o modo de exibio de lista que contm os dados da tabela CustomerAddresses.
Essa a exibio padro e para ela que voc voltar aps o cancelamento.

h.

Na janela CustomerAddresses Windows Internet Explorer, esquerda de um endereo de


cliente, clique em Edit para modificar um endereo de cliente.
A pgina exibe o modo de exibio de edio que contm os dados da linha selecionada da
tabela CustomerAddresses.

i.

Na janela CustomerAddresses Windows Internet Explorer, no final da pgina, clique em


Cancel para cancelar a operao de edio.

14. Feche o Windows Internet Explorer.

Na janela CustomerAddresses Windows Internet Explorer, clique no boto Fechar.

15. Feche o Visual Studio 2010.

Na janela DDWebApp Microsoft Visual Studio, clique no boto Fechar.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Leituras adicionais
O que so Dados Dinmicos ASP.NET?
Para obter mais informaes sobre como o modelo de dados representa as informaes em
um banco de dados e como os objetos no banco de dados se relacionam entre si, consulte
ASP.NET Dynamic Data Model Overview (Viso geral do modelo de dados do ASP.NET
Dynamic Data).
Para obter mais informaes sobre o controle DynamicControl, consulte DynamicControl
Class (Classe DynamicControl).
Para obter mais informaes sobre o controle DynamicField , consulte DynamicField Class
(Classe DynamicField).

Recurso scaffolding dos Dados Dinmicos ASP.NET


Para obter mais informaes sobre como o mtodo MetaModel.RegisterContext registra
o contexto de dados no modelo meta, consulte MetaModel.RegisterContext Method
(Mtodo MetaModel.RegisterContext).
Para obter mais informaes sobre como a classe ContextConfiguration fornece
informaes para uma instncia de contexto de dados para permitir a personalizao,
consulte ContextConfiguration Class (Classe ContextConfiguration).
Para obter mais informaes sobre como a classe MetadataTypeAttribute especifica a
classe de metadados para associao a uma classe de modelo de dados, consulte
MetadataTypeAttribute Class (Classe MetadataTypeAttribute).
Para obter mais informaes sobre personalizao de modelos de pgina, consulte How to:
Customize the Layout of an Individual Table By Using a Custom Page Template (Como
personalizar o layout de uma tabela individual usando um modelo de pgina personalizada).
Para obter mais informaes sobre personalizao de modelos de entidade, consulte
Walkthrough: Customizing Table Layout Using Entity Templates (Passo a passo:
personalizando o layout da tabela usando modelos de entidade).
Para obter mais informaes sobre a personalizao de modelos de campo, consulte How:
Customize ASP.NET Dynamic Data Default Field Templates (Como personalizar os modelos
de campo padro do ASP.NET Dynamic Data).
Para obter mais informaes sobre a personalizao de modelos de filtro, consulte
Walkthrough: Filtering Rows in Tables That Have a Parent-Child Relationship (Passo a passo:
filtrando linhas em tabelas que tm uma relao pai-filho).

119

120

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Recurso de roteamento dos Dados Dinmicos ASP.NET


Para obter mais informaes sobre o roteamento ASP.NET, consulte ASP.NET Routing
(Roteamento ASP.NET).

Demonstrao: Criao de um aplicativo Web dos Dados Dinmicos


ASP.NET
Para obter mais informaes sobre como criar um site controlado por dados com o mnimo
de cdigos ou nenhum cdigo, consulte Walkthrough: Creating a New ASP.NET Dynamic
Data Web Site Using Scaffolding (Passo a passo: criando um novo site Web ASP.NET
Dynamic Data usando scaffolding).

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Mdulo 9
Assegurando a qualidade com a depurao, o teste de
unidade e a refatorao
Sumrio:
Lio 1: Depurao e refatorao de cdigo

122

Lio 2: Cdigo de teste de unidade

129

Lio 4: Desenvolvimento voltado para teste

133

121

122

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Lio 1

Depurao e refatorao de cdigo


Sumrio:
Perguntas e respostas

123

Passos detalhados de demonstrao

124

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

123

Perguntas e respostas
Viso geral da depurao usando as ferramentas de depurao do Visual
Studio 2010
Pergunta: Qual percentual de desenvolvimento de tempo que voc passa depurando?
Resposta: Pode variar.
Pergunta: Sem um depurador, qual seria outro mtodo de depurar um aplicativo?
Resposta: Gravar um cdigo que registre erros ou informaes em log.

O que refatorao?
Pergunta: Que problemas voc teria ao refatorar cdigo sem usar uma ferramenta?
Resposta: Pode variar, mas talvez nem todas as instncias de um objeto tenham sido
renomeadas.
Pergunta: Qual o percentual de tempo de desenvolvimento que voc passa refatorando
cdigo?
Resposta: Pode variar, mas os desenvolvedores que usam o TDD em geral iro refatorar
mais.
Pergunta: Quais ferramentas de terceiros voc usou para realizar a refatorao?
Resposta: Pode variar.

124

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Passos detalhados de demonstrao


Demonstrao: Habilitando a depurao de um aplicativo Web
Nesta demonstrao, voc ver como habilitar a depurao de um aplicativo Web.
1.

Abra o Microsoft Visual Studio.

1.

2.

Crie um novo aplicativo Web ASP.NET usando a caixa de dilogo New Project.
a.

No menu File, clique em New Project.

b.

Na caixa de dilogo New Project, no painel esquerdo, clique em Visual Basic ou em Visual C#.

c.

No painel intermedirio, clique em ASP.NET Web Application.

d.

Na caixa Name, digite DebugWebApp, na caixa Location, digite D:\Demofiles\VB ou


D:\Demofiles\CS e clique em OK.

Crie o projeto.

3.

No menu Iniciar de 10714A-GEN-DEV, aponte para Todos os Programas, clique em


Microsoft Visual Studio 2010 e, em seguida, clique em Microsoft Visual Studio 2010.

Na janela DebugWebApp Microsoft Visual Studio, no menu Compilar, clique em


Compilar DebugWebApp.

Abra o arquivo Web.config.

No Solution Explorer, clique duas vezes em Web.config.

4.

Navegue para o elemento system.web de fechamento automtico e observe os atributos e os


valores na marca compilation.

5.

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


clique em Properties.

6.

Abra a pgina da Web.

No Properties Designer, clique em Web.

7.

Examine as vrias opes na pgina Web.

8.

Na seo Debuggers, verifique se a caixa de seleo ASP.NET est marcada.

9.

Feche o Properties Designer.

Na janela DebugWebApp, clique no boto Close.

10. Feche o Microsoft Visual Studio 2010.

Na janela DebugWebApp Microsoft Visual Studio, clique no boto Fechar.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

125

Demonstrao: Refatorao Extract Method


Nesta demonstrao, voc aprender a extrair um mtodo de um cdigo existente. A soluo da
demonstrao Habilitar depurao de um aplicativo Web est sendo usada.
1.

Abra o Microsoft Visual Studio.


No menu Iniciar de 10714A-GEN-DEV, aponte para Todos os Programas, clique em
Microsoft Visual Studio 2010 e, em seguida, clique em Microsoft Visual Studio 2010.

2.

3.

Abra a soluo DebugWebApp da pasta D:\Demofiles\CS\DebugWebApp.


a.

Na janela Start Page Microsoft Visual Studio, no menu File, clique em Open Project.

b.

Na caixa de dilogo Open Project, na caixa Nome , digite


D:\Demofiles\CS\DebugWebApp\DebugWebApp.sln e clique em Abrir.

Abra Default.aspx no modo de exibio de cdigo.

4.

No Solution Explorer, clique com o boto direito do mouse em Default.aspx e, em seguida,


clique em View Code.

No mtodo Page_Load, digite o cdigo a seguir:


[Visual C#]
protected void Page_Load(object sender, EventArgs e)
{
var i = 1;
var j = 2;
var answer = i + j;
}

5.

Selecione as trs linhas de cdigo que voc acabou de adicionar.

6.

Clique com o boto direito do mouse na seleo, aponte para Refatorar e clique em Extract Method.

7.

Na caixa de dilogo Extract Method, na caixa New method name, digite Add e clique em OK.
Observao: O cdigo foi extrado em um novo mtodo e a funo foi chamada em seu
lugar.

8.

Crie o projeto.

9.

Na janela DebugWebApp Microsoft Visual Studio, no menu Compilar, clique em


Compilar DebugWebApp.

Feche o Microsoft Visual Studio 2010.

Na janela DebugWebApp Microsoft Visual Studio, clique no boto Fechar.

126

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Demonstrao: Refatorao Encapsulate Field


Nesta demonstrao, voc ver como encapsular um campo. A soluo da demonstrao Habilitar
depurao de um aplicativo Web est sendo usada.
1.

Abra o Microsoft Visual Studio.


No menu Iniciar de 10714A-GEN-DEV, aponte para Todos os Programas, clique em
Microsoft Visual Studio 2010 e, em seguida, clique em Microsoft Visual Studio 2010.

2.

Abra a soluo DebugWebApp da pasta D:\Demofiles\CS\DebugWebApp.


a.

Na janela Start Page Microsoft Visual Studio, no menu File, clique em Open Project.

b.

Na caixa de dilogo Open Project, na caixa Nome, digite


D:\Demofiles\CS\DebugWebApp\DebugWebApp.sln e clique em Abrir.

3.

No Solution Explorer, clique com o boto direito do mouse em DebugWebApp, aponte para Add
e clique em Class.

4.

Na caixa de dilogo Adicionar Novo Item DebugWebApp, na caixa Nome, digite Person e
clique em Adicionar.

5.

Crie uma varivel privada exclusiva denominada name, adicionando o cdigo a seguir
[Visual C#]
public class Person
{
private string name;
}

6.

Na janela Person.cs, clique com o boto direito do mouse em name, aponte para Refatorar e clique
em Encapsulate Field.

7.

Na caixa de dilogo Encapsulate Field, clique em OK.

8.

Na caixa de dilogo Preview Reference Changes Encapsulate Field, clique em Apply.


Observao: A nova propriedade com os acessadores foi criada.

9.

Crie o projeto.

Na janela DebugWebApp Microsoft Visual Studio, no menu Compilar, clique em


Compilar DebugWebApp.

10. Feche o Microsoft Visual Studio 2010.

Na janela DebugWebApp Microsoft Visual Studio, clique no boto Fechar.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Demonstrao: Refatorao Extract Interface


Nesta demonstrao, voc ver como extrair uma interface de uma classe existente. A soluo da
demonstrao Habilitar depurao de um aplicativo Web est sendo usada.
1.

Abra o Microsoft Visual Studio.


No menu Iniciar de 10714A-GEN-DEV, aponte para Todos os Programas, clique em
Microsoft Visual Studio 2010 e, em seguida, clique em Microsoft Visual Studio 2010.

2.

3.

Abra a soluo DebugWebApp da pasta D:\Demofiles\CS\DebugWebApp.


a.

Na janela Start Page Microsoft Visual Studio, no menu File, clique em Open Project.

b.

Na caixa de dilogo Open Project, na caixa Nome, digite


D:\Demofiles\CS\DebugWebApp\DebugWebApp.sln e clique em Abrir.

Abra o arquivo Person.cs.


No Solution Explorer, clique duas vezes em Person.cs.

4.

Adicione a varivel de membro age, a propriedade Age e o mtodo Hire classe Person.
[Visual C#]
public class Person
{
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
private int age;
public int Age
{
get { return age; }
set { age = value; }
}
public void Hire()
{
// implementation Code
}
}

Na janela Person.cs, na classe Person, anexe o cdigo a seguir.


[Visual C#]
private int age;
public int Age
{
get { return age; }
set { age = value; }
}

127

128

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

public void Hire()


{
// implementation Code
}

5.

Clique com o boto direito do mouse em Person, aponte para Refactor e clique em Extract
Interface.

6.

Na caixa de dilogo Extract Interface, marque as caixas de seleo Age, Hire() e Name e clique
em OK.
Observao: A nova interface criada em um novo arquivo agora.

7.

Exiba o arquivo Person.cs e observe como a classe agora implementa a nova interface.

8.

Crie o projeto.

9.

Na janela DebugWebApp Microsoft Visual Studio, clique em Person.cs.

Na janela DebugWebApp Microsoft Visual Studio, no menu Compilar, clique em


Compilar DebugWebApp.

Feche o Microsoft Visual Studio 2010.

Na janela DebugWebApp Microsoft Visual Studio, clique no boto Fechar.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Lio 2

Cdigo de teste de unidade


Sumrio:
Perguntas e respostas

130

Passos detalhados de demonstrao

131

129

130

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Perguntas e respostas
O que o Teste de Unidade?
Pergunta: Voc j isolou um erro em um mdulo integrado e depois aplicou uma correo?
Resposta: Pode variar.
Pergunta: Qual o percentual de tempo de desenvolvimento gasto para escrever testes?
Resposta: Pode variar.

Etapas de teste de unidade opcionais


Pergunta: Como o teste de unidade ajuda a documentar o cdigo?
Resposta: Pode variar.
Pergunta: Que ferramentas de terceiros voc usou para escrever testes de unidade?
Resposta: Pode variar.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

131

Passos detalhados de demonstrao


Demonstrao: Criando e executando um teste de unidade
Nesta demonstrao, voc ver como criar e executar um teste de unidade.
1.

Abra o Microsoft Visual Studio.


No menu Iniciar de 10714A-GEN-DEV, aponte para Todos os Programas, clique em
Microsoft Visual Studio 2010 e, em seguida, clique em Microsoft Visual Studio 2010.

2.

3.

Abra a soluo UnitTest na pasta D:\Demofiles\CS ou D:\Demofiles\VB.


a.

Na janela Start Page Microsoft Visual Studio, no menu File, clique em Open Project.

b.

Na caixa de dilogo Open Project, na caixa Nome, digite D:\Demofiles\CS\UnitTest.sln ou


D:\Demofiles\VB\UnitTest.sln e clique em Abrir.

Abra o arquivo Person.cs ou Person.vb.


No Solution Explorer, clique duas vezes em Person.cs ou Person.vb.

4.

Modifique a propriedade Age da seguinte maneira:


[Visual C#]
public int Age
{
get { return personAge; }
set
{
if (value < 21)
throw new Exception("Age must be greater than 21");
personAge = value;
}
}

[Visual Basic]
Public Property Age As Integer
Get
Return personAge
End Get
Set(ByVal value As Integer)
If value < 21 Then
Throw New Exception("Age must be greater than 21")
End If
personAge = value
End Set
End Property

5.

Clique com o boto direito do mouse em qualquer lugar no cdigo para a propriedade Age e
clique em Create Unit Tests.

6.

Na caixa de dilogo Create Unit Tests, verifique se a caixa de seleo Age est marcada e clique
em OK.

132

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

7.

Na caixa de dilogo New Test Project, clique em Criar.


Observao: Observe o novo projeto criado para teste de unidade.

8.

No arquivo PersonTest.cs ou PersonTest.vb aberto, examine o mtodo de teste AgeTest.

9.

Altere o cdigo de declarao da varivel local expected da forma a seguir.


[Visual C#]
int expected = 25;

[Visual Basic]
Dim expected As Integer = 25

10. Exclua o cdigo a seguir.


[Visual C#]
Assert.Inconclusive("Verify the correctness of this test method.");

[Visual Basic]
Assert.Inconclusive("Verify the correctness of this test method.")

11. Clique com o boto direito do mouse na declarao de mtodo AgeTest e clique em Run Tests.
Observao: Na janela Resultados de Teste, observe o teste AgeTest aprovado.
12. Altere o cdigo de declarao da varivel local expected da forma a seguir.
[Visual C#]
int expected = 2;

[Visual Basic]
Dim expected As Integer = 2

13. Clique com o boto direito do mouse na declarao de mtodo AgeTest e clique em Run Tests.
Observao: Na janela Test Results, observe que o teste AgeTest falhou.
14. Feche o Microsoft Visual Studio 2010.

Na janela UnitTest Microsoft Visual Studio, clique no boto Fechar.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Lio 4

Desenvolvimento voltado para teste


Sumrio:
Perguntas e respostas

134

133

134

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Perguntas e respostas
Vantagens do desenvolvimento voltado para teste em relao ao
desenvolvimento tradicional
Pergunta: Quais obstculos voc antev ao realizar a transio do desenvolvimento
tradicional para o desenvolvimento voltado para teste?
Resposta: Pode variar, mas poderia incluir uma curva de aprendizado aprimorada e um
tempo de desenvolvimento maior.
Pergunta: Qual o percentual de cdigo que voc escreve para testes de unidade?
Resposta: Pode variar.

O processo de desenvolvimento voltado para teste


Os desenvolvedores devem fazer alteraes no cdigo funcional para que ele passe em todos os casos
Pergunta: Voc j criou testes como parte da coleta de requisitos?
Resposta: Pode variar.
Pergunta: Como a criao de testes antes do desenvolvimento altera sua mentalidade?
Resposta: Pode variar.
Pergunta: Quais consideraes de design voc precisar fazer para realizar o desenvolvimento
voltado para teste?
Resposta: Pode variar.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Mdulo 10
Proteo de um aplicativo Web
Sumrio:
Lio 1: Configurando a autenticao

136

Lio 2: Configurao da associao do ASP.NET

140

Lio 3: Gerenciando a autorizao usando funes do ASP.NET

144

135

136

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Lio 1

Configurando a autenticao
Sumrio:
Perguntas e respostas

137

Passos detalhados de demonstrao

138

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Perguntas e respostas
Autenticao do IIS
Pergunta: Qual a diferena entre autenticao Bsica e autenticao do Windows?
Resposta: A autenticao Bsica exige que o nome de usurio e a senha sejam enviados
por meio de texto no criptografado, enquanto a autenticao do Windows usa as
credenciais do usurio conectado na rede.

Como configurar a autenticao de formulrios


Pergunta: Qual mtodo de autenticao permite o uso de credenciais personalizadas em
um aplicativo Web?
Resposta: A autenticao de Formulrios permite que o desenvolvedor defina a
autenticao personalizada para o aplicativo. Usando a autenticao de Formulrios, o
usurio pode ser validado em qualquer fonte de dados.

137

138

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Passos detalhados de demonstrao


Demonstrao: Configurando a autenticao do IIS
Selecionar um site padro no Gerenciador do Servios de Informaes da Internet (IIS)
1.

Abra o Gerenciador do Servios de Informaes da Internet (IIS) como administrador.


a.

No menu Iniciar de 10714A-GEN-DEV, aponte para Ferramentas Administrativas, clique


com o boto direito do mouse em Gerenciador do Servios de Informaes da Internet (IIS) e,
em seguida, clique em Executar como administrador.

b.

Na caixa de dilogo Controle de Conta de Usurio, na caixa Senha, digite Pa$$w0rd e clique
em Sim.

2.

Na janela Gerenciador do Servios de Informaes da Internet (IIS), no painel esquerdo, expanda


10714-GEN-DEV (10714-GEN-DEV\Admin) e Sites.

3.

Clique em Default Web e observe as opes disponveis no painel direito.

Configurar a autenticao annima


1.

No painel Autenticao, na seo IIS , clique duas vezes em Autenticao.

2.

Clique com o boto direito do mouse em Autenticao Annima e em Habilitar ou Desabilitar


para habilitar ou desabilitar a autenticao annima para o aplicativo Web selecionado.

3.

Clique com o boto direito do mouse em Autenticao Annima e em Editar para editar as
credenciais usadas com autenticao annima.

4.

Clique em Cancelar na caixa de dilogo Editar Credenciais de Autenticao Annima.

Configurar a autenticao bsica


1.

No painel Autenticao, na seo IIS, clique duas vezes em Autenticao.

2.

Clique com o boto direito do mouse em Autenticao Bsica e, em seguida, clique em Habilitar
ou Desabilitar a fim de habilitar ou desabilitar a autenticao bsica para o aplicativo Web
selecionado.

3.

Clique com o boto direito do mouse em Autenticao Bsica e clique em Editar para editar o
domnio padro ou o realm usado com a autenticao bsica. O domnio padro usado para
especificar o domnio no qual os usurios so autenticados por padro. O realm, um endereo ou
nome de domnio DNS, usa as credenciais que foram autenticadas como o domnio padro.

4.

Clique em Cancelar na caixa de dilogo Editar Configuraes Bsicas de Autenticao.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

139

Configurar a autenticao Digest


1.

No painel Autenticao, na seo IIS , clique duas vezes em Autenticao.

2.

Clique com o boto direito do mouse em Autenticao Digest e, em seguida, clique em Habilitar
ou Desabilitar a fim de habilitar ou desabilitar a autenticao Digest para o aplicativo Web
selecionado.
Observao: a mquina 10714A-GEN-DEV no vinculada a um domnio, ento, no
possvel habilitar a autenticao Digest.

3.

Clique com o boto direito do mouse em Autenticao Digest e, em seguida, clique em Editar
para editar o realm usado com autenticao Digest. O realm, um endereo ou nome de domnio
DNS, usa as credenciais que foram autenticadas como o domnio interno do Windows.

4.

Clique em Cancelar na caixa de dilogo Editar Configuraes Bsicas de Autenticao Digest.

Configurar a autenticao do Windows


1.

No painel Autenticao, na seo IIS , clique duas vezes em Autenticao.

2.

Clique com o boto direito do mouse em Autenticao do Windows e, em seguida, clique em


Habilitar ou Desabilitar a fim de habilitar ou desabilitar a autenticao do Windows para o
aplicativo Web selecionado.

3.

Clique com o boto direito do mouse em Autenticao do Windows e clique em Configuraes


Avanadas para configurar a Proteo Estendida e habilitar ou desabilitar a autenticao de modo
Kernel. A Proteo Estendida aumenta a proteo e o processamento de credenciais ao autenticar
conexes de rede usando a autenticao do Windows.

4.

Clique em Cancelar na caixa de dilogo Configuraes Avanadas.

140

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Lio 2

Configurao da associao do ASP.NET


Sumrio:
Perguntas e respostas

141

Passos detalhados de demonstrao

142

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Perguntas e respostas
O que a associao do ASP.NET?
Pergunta: Quais benefcios so obtidos quando se usa o padro do provedor para a
configurao de associao?
Resposta: A API de Associao do ASP.NET usa o modelo de provedor para conectar
provedores de Associao. Isso permite que os desenvolvedores criem seu prprio modelo
de provedor e usem esse modelo como o mdulo de Associao.

Demonstrao: Gerenciando usurios pela associao do ASP.NET


Pergunta: A ASP.NET Web Site Administration Tool edita o Web.config raiz?
Resposta: Sim, a ASP.NET Web Site Administration Tool edita o arquivo Web.config raiz.

Como implementar o controle Login


Pergunta: Como configurar um provedor padro para a associao do ASP.NET?
Resposta: Voc define o valor do atributo defaultProvider da marca de abertura
membership no arquivo Web.config.

141

142

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Passos detalhados de demonstrao


Demonstrao: Gerenciando usurios pela associao do ASP.NET
Nesta demonstrao, voc aprender como gerenciar os usurios da associao do ASP.NET usando a
ASP.NET Web Site Administration Tool.
1.

Abra o Microsoft Visual Studio 2010.

2.

No menu Iniciar de 10714A-GEN-DEV, aponte para Todos os Programas, clique em


Microsoft Visual Studio 2010e, em seguida, clique em Microsoft Visual Studio 2010.

Crie um novo aplicativo Web ASP.NET denominado Module10 na pasta D:\Demofiles\CS ou


D:\Demofiles\VB.
a.

Na janela Start Page Microsoft Visual Studio, no menu File, clique em New Project.

b.

Na caixa de dilogo New Project, no painel esquerdo, clique em Visual C# ou em Visual


Basic, no painel central, clique em ASP.NET Web Application, na caixa Name, digite
Module10, na caixa Location, digite D:\Demofiles\CS ou D:\Demofiles\VB e clique em OK.

3.

No Solution Explorer, clique em Module10.

4.

Compile a soluo.

5.

No menu Build, clique em Build Solution ou pressione CTRL+SHIFT+B.

No Solution Explorer, clique no boto ASP.NET Configuration.


Observao: a Web Site Administration Tool aberta no Windows Internet Explorer. Na
pgina Home, voc encontrar as seguintes opes.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

6.

143

Na Web Site Administration Tool, na pgina Home, clique em Security.


Observao: na pgina Security, voc encontrar as seguintes opes.

7.

Na pgina Security, clique em Create user.

8.

Na seo Create User, na caixa User Name, digite student, na caixa Password, digite Pa$$w0rd, na
caixa Confirm Password, digite Pa$$w0rd, na caixa E-mail, digite student@adventureworks.com
e clique em Create User.

9.

Feche a ASP.NET Web Site Administration Tool.

Na janela ASP.NET Web Site Administration Tool, clique no boto Fechar.

10. Abra a pasta App_Data no Windows Explorer, usando o Solution Explorer.

No Solution Explorer, clique com o boto direito do mouse em App_Data e clique em Abrir
pasta no Windows Explorer.

11. Observe que o novo banco de dados, ASPNETDB.MDF, e o arquivo de log correspondente
aspnetdb_log.ldf, foram criados na pasta App_Data.
12. Feche o Windows Explorer.

Na janela D:\Demofiles\CS\Module10\App_Data ou D:\Demofiles\VB\Module10\


App_Data, clique no boto Fechar.

13. Feche o Visual Studio 2010.

Na janela Module10 Microsoft Visual Studio, clique no boto Fechar.

144

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Lio 3

Gerenciando a autorizao usando funes do ASP.NET


Sumrio:
Perguntas e respostas

145

Passos detalhados de demonstrao

146

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Perguntas e respostas
O que so funes do ASP.NET?
Pergunta: Onde as funes so mantidas?
Resposta: As funes so mantidas na tabela aspnet_Roles. Para criar a tabela
aspnet_Roles, necessrio executar a configurao do ASP.NET, conforme explicado na
demonstrao Gerenciamento de funes do ASP.NET. As funes atribudas ao usurio
so mantidas na tabela aspnet_UserInRoles.

145

146

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Passos detalhados de demonstrao


Demonstrao: Gerenciando as funes do ASP.NET
Nesta demonstrao, voc aprender como usar o arquivo Web.config e a API de funes para evitar
que os usurios acessem recursos no autorizados.
1.

Abra o Microsoft Visual Studio 2010.

2.

No menu Iniciar de 10714A-GEN-DEV, aponte para Todos os Programas, clique em


Microsoft Visual Studio 2010 e, em seguida, clique em Microsoft Visual Studio 2010.

Abra a soluo Module10 na pasta D:\Demofiles\CS\Module10\Module10.sln ou


D:\Demofiles\VB\Module10\Module10.sln.
a.

Na janela Start Page Microsoft Visual Studio, no menu File, clique em Open Project.

b.

Na caixa de dilogo Open Project, na caixa Nome, digite D:\Demofiles\CS\Module10\


Module10.sln ou D:\Demofiles\VB\Module10\Module10.sln e clique em Abrir.

3.

No Solution Explorer, clique em Module10.

4.

Compile a soluo.

No menu Build, clique em Build Solution ou pressione CTRL+SHIFT+B.

5.

No Solution Explorer, clique no boto ASP.NET Configuration.

6.

Na Web Site Administration Tool, na pgina Home, clique em Security.

7.

Na pgina Security, clique em Enable Roles.

8.

Clique em Create or Manage roles.

9.

Na caixa New role name, digite admin e clique em Add Role.

Observao: a funo est criada.


10. Feche a ASP.NET Web Site Administration Tool.

Na janela ASP.NET Web Site Administration Tool, clique no boto Fechar.

11. Feche o Visual Studio 2010.

Na janela Module10 Microsoft Visual Studio, clique no boto Fechar.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Mdulo 11
Aplicao de pginas mestras e CSS
Sumrio:
Lio 1: Aplicao de pginas mestras

148

Lio 2: Aplicao de CSS, aparncias e temas

155

147

148

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Lio 1

Aplicao de pginas mestras


Sumrio:
Perguntas e respostas

149

Passos detalhados de demonstrao

150

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

149

Perguntas e respostas
Desafios ao fornecer uma interface de usurio consistente
Pergunta: Quais so alguns exemplos de problemas de interface do usurio inconsistentes que voc
experimentou com outros aplicativos Web e como isso impactou o uso do aplicativo?
Resposta: Pode variar.
Pergunta: Como esses problemas poderiam ter sido resolvidos para fornecer uma interface
consistente?
Resposta: Pode variar.

O que pgina mestra?


Pergunta: Como as pginas mestras podem ajud-lo a criar uma interface do usurio consistente?
Resposta: As pginas mestras agem como modelos para os formulrios da Web e ajudam
voc a criar e manter o contedo bsico de uma pgina de formulrios da Web.

Demonstrao: Usando uma pgina mestra em formulrios da Web e


pginas de exibio MVC
Pergunta: Quais ideias vm mente durante esta demonstrao ao usar pginas mestras?
Resposta: Pode variar.

O que so pginas mestras aninhadas?


Pergunta: Quais cenrios, na sua experincia, poderiam ter se beneficiado do uso de pginas
mestras aninhadas?
Resposta: Pode variar.

Modelo de evento de pgina mestra e relaes


Pergunta: Que ideias vm em mente ao pensar sobre como pginas e pginas mestras podem
interagir?
Resposta: Pode variar?
Pergunta: Quais preocupaes voc teria sobre a implementao dessa interao?
Resposta: Pode variar?

150

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Passos detalhados de demonstrao


Demonstrao: Criando uma pgina mestra
Criao de uma pgina mestra
1.

Abra o Microsoft Visual Studio 2010.


No menu Iniciar de 10714A-GEN-DEV, aponte para Todos os Programas, clique em
Microsoft Visual Studio 2010 e, em seguida, clique em Microsoft Visual Studio 2010.

2.

3.

4.

Crie um novo aplicativo Web ASP.NET chamado NewMasterPage na pasta D:\Demofiles\CS ou


D:\Demofiles\VB.
a.

Na janela Start Page Microsoft Visual Studio, no menu File, clique em New Project.

b.

Na caixa de dilogo New Project, no painel esquerdo, clique em Visual C# ou em Visual


Basic, no painel central, clique em ASP.NET Web Application, na caixa Name, digite
NewMasterPage, na caixa Location, digite D:\Demofiles\CS ou D:\Demofiles\VB e clique
em OK.

Crie uma pgina mestra denominada SingleColumn.Master na pasta raiz.


a.

No Solution Explorer, clique com o boto direito do mouse em NewMasterPage, aponte para
Add e clique em New Item.

b.

Na caixa de dilogo Add New Item NewMasterPage, no painel intermedirio, clique em


Master Page, na caixa Name, digite SingleColumn.Master e, em seguida, clique em Add.

O contedo na sua nova pgina mestra ter a seguinte aparncia.


<%@ Master ... Inherits="NewMasterPage.SingleColumn" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
</form>
</body>
</html>

5.

Defina o valor do atributo ID do ContentPlaceHolder existente no elemento form como


MainContentPlaceHolder.
<asp:ContentPlaceHolder ID="MainContentPlaceHolder" runat="server">
</asp:ContentPlaceHolder>

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

6.

151

No elemento form, e antes de abrir a marca div, crie um novo elemento div com um valor de
atributo ID de cabealho.
<form id="form1" runat="server">
<div id="header">
</div>

7.

No novo elemento div, adicione um novo controle ContentPlaceHolder e defina o valor de atributo
ID como HeadContentPlaceHolder.
<div id="header">
<asp:ContentPlaceHolder ID="HeadContentPlaceHolder" runat="server">
</asp:ContentPlaceHolder>
</div>

8.

Abra a pgina mestra NewMasterPage no modo Design.

9.

Na janela SingleColumn.Master, clique em Design.

Observe o layout de coluna nica, com dois controles ContentPlaceHolder.

10. Feche o Visual Studio 2010.


a.

Na janela NewMasterPage Microsoft Visual Studio, clique no boto Fechar.

b.

Na caixa de dilogo do Microsoft Visual Studio, clique em No.

Demonstrao: Usando uma pgina mestra em formulrios da Web e


pginas de exibio MVC
Usando uma pgina mestra em uma nova pgina de formulrios da Web
1.

Abra o Microsoft Visual Studio 2010.

2.

No menu Iniciar de 10714A-GEN-DEV, aponte para Todos os Programas, clique em


Microsoft Visual Studio 2010e, em seguida, clique em Microsoft Visual Studio 2010.

Abra a soluo AdventureWorks na pasta D:\Demofiles\CS\Module11 ou D:\Demofiles\


VB\Module11.
a.

Na janela Start Page Microsoft Visual Studio, no menu File, clique em Open Project.

b.

Na caixa de dilogo Open Project, na caixa Nome, digite D:\Demofiles\CS\Module11\


AdventureWorks.sln ou D:\Demofiles\VB\Module11\AdventureWorks.sln e clique em
Abrir.

152

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

3.

Adicione ao projeto um novo formulrio da Web denominado UsingMasterPage com base na


pgina mestra Site.Master.
a.

No Solution Explorer, clique com o boto direito do mouse em AdventureWorks, aponte para
Add e clique em New Item.

b.

Na caixa de dilogo Add New Item AdventureWorks, no painel central, clique em Web
Form using Master Page, na caixa Name, digite UsingMasterPage e clique em Add.

c.

Na caixa de dilogo Select a Master Page, na lista Contents of folder, clique em Site.Master
e em OK.

Observao: A sua marcao dever ter uma aparncia similar ao seguinte.


<%@ Page Title="" ... MasterPageFile="~/Site.Master" ...
Inherits="AdventureWorks.UsingMasterPage" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
</asp:Content>

4.

No controle Content com um valor de atributo ContentPlaceHolderID de MainContent, digite


Hello World, I am using a Master Page!.
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
Hello World, I am using a Master Page!
</asp:Content>

5.

Agora, teste sua pgina pressionando CTRL+F5.


Observao: A pgina renderizada dever ter uma aparncia similar ao seguinte.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

6.

Feche o Windows Internet Explorer.


Na janela http://localhost:xxxxx/UsingMasterPage.aspx Windows Internet Explorer,
clique no boto Fechar.

7.

153

Feche a soluo AdventureWorks.


Na janela AdventureWorks Microsoft Visual Studio, no menu File, clique em Close
Solution.

Uso de uma pgina mestra em uma nova pgina de exibio do MVC


1.

2.

Abra a soluo AdventureWorksMvc na pasta D:\Demofiles\CS\Module11 ou D:\Demofiles\


VB\Module11.
a.

Na janela Start Page Microsoft Visual Studio, no menu File, clique em Open Project.

b.

Na caixa de dilogo Open Project, na caixa Nome, digite D:\Demofiles\CS\Module11\


AdventureWorksMvc.sln ou D:\Demofiles\VB\Module11\AdventureWorksMvc.sln e
clique em Abrir.

Adicione ao projeto uma nova exibio denominada UsingMasterPage.aspx com base na pgina
mestra Site.Master. A exibio dever ser renderizada pelo controlador Home e salva na pasta
Views\Home.
a.

No Solution Explorer, expanda Views, clique com o boto direito do mouse em Home, aponte
para Add e clique em View.

b.

Na caixa de dilogo Add View, na caixa View name, digite UsingMasterPage.aspx, verifique
se a caixa Select master page est selecionada e se a caixa abaixo da caixa de seleo Select
master page contm ~/Views/Shared/Site.Master e clique em Add.

Observao: A sua marcao dever ter uma aparncia semelhante apresentada a seguir.
<%@ Page Title="" ... MasterPageFile="~/Views/Shared/Site.Master" ... %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
UsingMasterPage
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>UsingMasterPage</h2>
</asp:Content>

3.

No controle Content com um valor de atributo ContentPlaceHolderID de MainContent, no


elemento h2, digite Hello World, I am using a Master Page!.
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>
Hello World, I am using a Master Page!</h2>
</asp:Content>

4.

Execute o aplicativo.

No Solution Explorer, clique em AdventureWorksMvc e pressione CTRL+F5.

154

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

5.

Teste a pgina de exibio, anexando a seguinte rota URL existente, e pressione ENTER.
Home/UsingMasterPage

Na janela Welcome to AdventureWorks Windows Internet Explorer, na barra Address,


anexe a seguinte URL.
Home/UsingMasterPage

Observao: A pgina renderizada dever ter uma aparncia similar ao seguinte.

6.

Feche o Windows Internet Explorer.

7.

Na janela http://localhost:xxxx/Home/UsingMasterPage Windows Internet Explorer,


clique no boto Fechar.

Feche o Visual Studio 2010.

Na janela AdventureWorksMvc Microsoft Visual Studio, clique no boto Fechar.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Lio 2

Aplicao de CSS, aparncias e temas


Sumrio:
Perguntas e respostas

156

Passos detalhados de demonstrao

157

155

156

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Perguntas e respostas
O que so folhas de estilos em cascata?
Pergunta: Como a CSS permite aplicar sua interface do usurio de forma consistente a todo o
aplicativo?
Resposta: Uma resposta que voc pode criar rapidamente estilos para serem aplicados
aos elementos pai principais, e substituir (quando necessrio) por elementos filho.

Demonstrao: Criao de um arquivo CSS


Pergunta: Que ideias vm mente ao criar e implementar esses estilos?
Resposta: Pode variar.

Recursos de CSS do Visual Studio


Pergunta: Voc conhece ou j usou qualquer outra ferramenta de CSS?
Resposta: Pode variar.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

157

Passos detalhados de demonstrao


Demonstrao: Criao de um arquivo CSS
Criao de um arquivo CSS
1.

Abra o Microsoft Visual Studio 2010.


No menu Iniciar de 10714A-GEN-DEV, aponte para Todos os Programas, clique em
Microsoft Visual Studio 2010 e, em seguida, clique em Microsoft Visual Studio 2010.

2.

3.

4.

Abra a soluo AdventureWorks na pasta D:\Demofiles\CS\Module11 ou


D:\Demofiles\VB\Module11.
a.

Na janela Start Page Microsoft Visual Studio, no menu File, clique em Open Project.

b.

Na caixa de dilogo Open Project, na caixa Nome, digite D:\Demofiles\CS\Module11\


AdventureWorks.sln ou D:\Demofiles\VB\Module11\AdventureWorks.sln e clique em
Abrir.

Na pasta Styles, crie um novo arquivo CSS denominado Demo.css.


a.

No Solution Explorer, clique com o boto direito do mouse em Styles, aponte para Add e
clique em New Item.

b.

Na caixa de dilogo Add New Item AdventureWorks, no painel intermedirio, clique em


Style Sheet, na caixa Nome, digite Demo.css e clique em Add.

Exclua o contedo padro do documento Demo.css.

5.

Na janela Demo.css, pressione CTRL+A e DELETE.

Adicione os seguintes estilos de classe ao documento.


.demo-bg-1 { background-color:Lime; }
.demo-bg-2 { background-color:Fuchsia; }
.demo-bold { font-weight:bold; }
.demo-text-maroon { color:Maroon; }

Na janela Demo.css, digite a seguinte marcao.


.demo-bg-1 { background-color:Lime; }
.demo-bg-2 { background-color:Fuchsia; }
.demo-bold { font-weight:bold; }
.demo-text-maroon { color:Maroon; }

6.

Abra a pgina mestra Site.Master.

7.

No Solution Explorer, clique duas vezes em Site.Master.

Adicione a seguinte marcao ao elemento head, para vincular ao novo arquivo CSS.
<link href="~/Styles/Demo.css" rel="Stylesheet" type="text/css" />

Na janela Site.Master, no elemento head, abaixo do elemento link, digite a seguinte


marcao.
<link href="~/Styles/Demo.css" rel="Stylesheet" type="text/css" />

158

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

8.

Edite o elemento div com o atributo class de main, para aplicar os estilos principais, demo-bg-1
e demo-text-maroon.
<div class="main demo-bg-1 demo-text-maroon">

Na janela Site.Master, o elemento div com o atributo class de main, anexe a seguinte
marcao ao atributo class.
demo-bg-1 demo-text-maroon

9.

Edite o elemento div com o atributo class de rodap, para aplicar os estilos de rodap, demo-bg-2
e demo-bold.
<div class="footer demo-bg-2 demo-bold">

Na janela Site.Master, o elemento div com o atributo class igual a footer, acrescente a seguinte
marcao ao atributo class.
demo-bg-2 demo-bold

10. Teste a pgina pressionando CTRL+F5.


Observao: a pgina renderizada dever ter a seguinte aparncia.

11. Feche o Windows Internet Explorer.

Na janela Home Page Windows Internet Explorer, clique no boto Fechar.

12. Feche o Visual Studio 2010.

Na janela AdventureWorks Microsoft Visual Studio, clique no boto Fechar.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Mdulo 12
Desenvolvimento de scripts e servios do lado do cliente
Sumrio:
Lio 1: Desenvolvimento de scripts do lado do cliente

160

Lio 2: Implementao do Ajax

164

Lio 3: Criao de servios

168

159

160

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Lio 1

Desenvolvimento de scripts do lado do cliente


Sumrio:
Perguntas e respostas

161

Passos detalhados de demonstrao

162

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Perguntas e respostas
Cdigo do lado do cliente versus cdigo do servidor
Pergunta: Se estivesse executando um site de hipoteca e precisasse implementar uma
calculadora hipotecria, qual tipo de script voc usaria do lado do cliente ou de servidor?
Resposta: Scripts do lado do cliente (resposta mais rpida).
Pergunta: Como voc garantiria o funcionamento do site, mesmo se o usurio desabilitasse
o script do lado do cliente?
Resposta: Pode variar.

Criao de um script do lado do cliente


Pergunta: Quais so os benefcios de manter o cdigo do lado do cliente em um arquivo
de script separado?
Resposta: Portabilidade, depurao mais fcil, modularidade.
Pergunta: Que outras operaes voc pode executar para reduzir o tamanho do script do
lado do cliente?
Resposta: Pode variar.

Controles do ASP.NET usando um script do lado do cliente


Pergunta: Por que necessrio validar a entrada do usurio no servidor e no lado do
cliente?
Resposta: Sem a validao, os dados invlidos ou potencialmente perigosos so enviados
ao servidor.

161

162

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Passos detalhados de demonstrao


Demonstrao: Como adicionar um script do lado do cliente pgina
Como adicionar cdigo do lado do cliente usando um script embutido
1.

Abra o Microsoft Visual Studio 2010.


No menu Iniciar de 10714A-GEN-DEV, aponte para Todos os Programas, clique em
Microsoft Visual Studio 2010 e, em seguida, clique em Microsoft Visual Studio 2010.

2.

3.

Crie um novo aplicativo Web ASP.NET chamado Script na pasta D:\Demofiles\CS ou


D:\Demofiles\VB.
a.

Na janela Start Page Microsoft Visual Studio, no menu File, clique em New Project.

b.

Na caixa de dilogo New Project, no painel esquerdo, clique em Visual C# ou em Visual Basic,
no painel central, clique em ASP.NET Web Application, na caixa Name, digite Script, na caixa
Location, digite D:\Demofiles\CS ou D:\Demofiles\VB e clique em OK.

Abra a pgina mestra Site.Master.


No Solution Explorer, clique duas vezes em Site.Master.

4.

Acrescente a marcao e o cdigo a seguir aps a marca html de fechamento.


<script type="text/JavaScript">
function inlineGreet()
{
alert('Hello World (inline)');
}
</script>

Como adicionar cdigo do lado do cliente usando um arquivo JavaScript separado


5.

6.

Adicione um novo arquivo JScript chamado Site.js ao projeto.


a.

No Solution Explorer, clique com o boto direito do mouse em Scripts, aponte para Add e
clique em New Item.

b.

Na caixa de dilogo Add New Item Script, no painel central, clique em JScript File, na
caixa Name, digite Site.js e clique em Add.

Adicione o cdigo a seguir ao arquivo JScript.


function externalGreet()
{
alert('Hello World (external)');
}

7.

Abra a pgina mestra Site.Master.

Na janela Script Microsoft Visual Studio, clique em Site.Master.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

8.

Localize o elemento head.

9.

Adicione a marcao a seguir ao elemento head.

163

<head runat="server">
<title></title>
<link href="~/Styles/Site.css" rel="stylesheet" type="text/css" />
<asp:ContentPlaceHolder ID="HeadContent" runat="server">
</asp:ContentPlaceHolder>
<script src="Scripts/Site.js" type="text/JavaScript" />
</head>

Na janela Site.Master, acrescente a marcao a seguir ao elemento head.


<script src="Scripts/Site.js" type="text/JavaScript" />

Demonstrao: Como exibir uma caixa de alerta usando cdigo do lado


do cliente
Nesta demonstrao, voc ver como exibir uma caixa de alerta usando um script do lado do cliente.
1.

Abra a soluo criada na demonstrao anterior.

2.

Chame a funo inlineGreet a partir do evento onload do elemento body.


<body onload="inlineGreet()">

3.

Abra o formulrio da Web padro.

4.

No Solution Explorer, clique duas vezes em Default.aspx.

Acrescente a marcao a seguir ao controle BodyContent.


<input type="button" value="Greet (external)" onclick="externalGreet()"/>

5.

Execute o aplicativo.

Pressione CTRL+F5.

Observao: a caixa de alerta exibida com a saudao do script embutido.


6.

Clique em Greet (external).

Na janela Home Page Windows Internet Explorer, clique em Greet (external).

Observao: a caixa de alerta exibida com a saudao do arquivo de script externo.


7.

Feche o Windows Internet Explorer.

8.

Na janela Home Page Windows Internet Explorer, clique no boto Fechar.

Feche o Visual Studio 2010.

Na janela Script Microsoft Visual Studio, clique no boto Fechar.

164

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Lio 2

Implementao do Ajax
Sumrio:
Passos detalhados de demonstrao

165

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

165

Passos detalhados de demonstrao


Demonstrao: Uso do controle UpdatePanel
Nesta demonstrao, voc ver como implementar atualizaes parciais usando o controle UpdatePanel.
1.

Abra o Microsoft Visual Studio 2010.

2.

3.

Abra a soluo PartialUpdates na pasta D:\Demofiles\CS ou D:\Demofiles\VB.


a.

Na janela Start Page Microsoft Visual Studio, no menu File, clique em Abrir Project.

b.

Na caixa de dilogo Open Project, na caixa Nome, digite D:\Demofiles\CS\PartialUpdates.sln


ou D:\Demofiles\VB\PartialUpdates.sln e clique em Abrir.

Abra o formulrio da Web padro no modo Design.

4.

9.

Abra a Toolbox, expanda Data e arraste um controle GridView para o controle UpdatePanel.

Adicione um controle SqlDataSource ao formulrio da Web Default.aspx, no controle BodyContent.

8.

Abra a Toolbox, expanda AJAX Extensions e clique duas vezes em UpdatePanel.

Adicione um controle GridView ao formulrio da Web Default.aspx, no controle UpdatePanel.

7.

Abra a Toolbox, expanda AJAX Extensions e clique duas vezes em ScriptManager.

Adicione um controle UpdatePanel ao formulrio da Web Default.aspx, no controle BodyContent.

6.

No Solution Explorer, clique com o boto direito do mouse em Default.aspx e, em seguida,


clique em View Designer.

Adicione um controle ScriptManager ao formulrio da Web Default.aspx, no controle


BodyContent.

5.

No menu Iniciar de 10714A-GEN-DEV, aponte para Todos os Programas, clique em


Microsoft Visual Studio 2010 e, em seguida, clique em Microsoft Visual Studio 2010.

Abra a Toolbox, expanda Data e arraste um controle SqlDataSource para o controle


BodyContent.

Defina a propriedade DataSourceID do controle GridView como o ID do controle SqlDataSource.


a.

Na janela Default.aspx, no Designer, selecione o controle GridView.

b.

No controle GridView, clique em Smart Tag no painel GridView Tasks e, na lista Choose
Data Source, clique em SqlDataSource1.

Defina o controle GridView para permitir a paginao, usando o Smart Tag e o painel GridView
Tasks.

No controle GridView, clique em Smart Tag e, no painel GridView Tasks, marque a caixa de
seleo Enable Paging.

166

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

10. Configure a Fonte de Dados do controle SqlDataSource para utilizar o


AdventureWorks2008R2ConnectionString existente, usando o Smart Tag e o painel
SqlDataSource Tasks. As colunas CustomerID, Title, FirstName, MiddleName, LastName,
CompanyName, SalesPerson e Phone da tabela Customer devem ser usadas.
a.

No controle SqlDataSource, clique em Smart Tag e, no painel SqlDataSource Tasks, clique


em Configure Data Source.

b.

No assistente Configure Data Source SqlDataSource1, na pgina Choose Your Data


Connection, na lista Which data connection should your application use to connect to
your database?, clique em AdventureWorks2008R2ConnectionString e, em seguida, clique
em Next.

c.

Na pgina Configure the Select Statement, verifique se a caixa de seleo Specify columns
from a table or view est marcada, na lista Name, clique em Customer, na lista Columns,
marque as caixas de seleo CustomerID, Title, FirstName, MiddleName, LastName,
CompanyName, SalesPerson e Phone e clique em Next.

d.

Clique em Finish.

11. Verifique se a sua marcao tem uma aparncia semelhante a esta.


<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:GridView ID="GridView1" runat="server" AllowPaging="True"
DataSourceID="SqlDataSource1"
AutoGenerateColumns="False" DataKeyNames="CustomerID">
<Columns>
<asp:BoundField DataField="CustomerID" HeaderText="CustomerID"
InsertVisible="False"
ReadOnly="True" SortExpression="CustomerID" />
<asp:BoundField DataField="Title" HeaderText="Title"
SortExpression="Title" />
<asp:BoundField DataField="FirstName" HeaderText="FirstName"
SortExpression="FirstName" />
<asp:BoundField DataField="MiddleName" HeaderText="MiddleName"
SortExpression="MiddleName" />
<asp:BoundField DataField="LastName" HeaderText="LastName"
SortExpression="LastName" />
<asp:BoundField DataField="CompanyName"
HeaderText="CompanyName" SortExpression="CompanyName" />
<asp:BoundField DataField="SalesPerson"
HeaderText="SalesPerson" SortExpression="SalesPerson" />
<asp:BoundField DataField="Phone" HeaderText="Phone"
SortExpression="Phone" />
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:AdventureWorksLT2008R2ConnectionString %>"
SelectCommand="SELECT [CustomerID], [Title], [FirstName], [MiddleName],
[LastName], [CompanyName], [SalesPerson], [Phone] FROM [Customer]">
</asp:SqlDataSource>
</asp:Content>

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

167

12. Execute o aplicativo.

Pressione CTRL+F5.

13. Percorra as linhas do controle GridView.

Na parte inferior do controle GridView, clique em diversos nmeros de pgina de 4 a 5 vezes.

14. Feche o Windows Internet Explorer.

Na janela Home Page Windows Internet Explorer, clique no boto Fechar.

15. Feche o Visual Studio 2010.

Na janela Script Microsoft Visual Studio, clique no boto Fechar.

168

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Lio 3

Criao de servios
Sumrio:
Passos detalhados de demonstrao

169

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

169

Passos detalhados de demonstrao


Demonstrao: Criao de servios WCF habilitados para Ajax
Nesta demonstrao, voc ver como adicionar um servio WCF a um aplicativo Web que pode ser
chamado no lado do cliente.
1.

Abra o Microsoft Visual Studio 2010.


No menu Iniciar de 10714A-GEN-DEV, aponte para Todos os Programas, clique em
Microsoft Visual Studio 2010 e, em seguida, clique em Microsoft Visual Studio 2010.

2.

3.

4.

Abra a soluo Script na pasta D:\Demofiles\CS\Script ou D:\Demofiles\VB\Script.


a.

Na janela Start Page Microsoft Visual Studio, no menu File, clique em Open Project.

b.

Na caixa de dilogo Open Project, na caixa Nome, digite D:\Demofiles\CS\Script\Script.sln ou


D:\Demofiles\VB\Script\Script.sln e clique em Abrir.

Adicione ao projeto um novo servio WCF habilitado para Ajax chamado GreetingsService.svc.
a.

No Solution Explorer, clique com o boto direito do mouse em Script, aponte para Add e
clique em New Item.

b.

Na caixa de dilogo Add New Item Script, no painel central, clique em Ajax-enabled WCF
Service, na caixa Name, digite GreetingsService.svc e clique em Add.

Remova o mtodo DoWork padro e os comentrios da classe service.


[Visual C#]
// To use HTTP GET, add [WebGet] attribute. (Default ResponseFormat is
WebMessageFormat.Json)
// To create an operation that returns XML,
//
add [WebGet(ResponseFormat=WebMessageFormat.Xml)],
//
and include the following line in the operation body:
//
WebOperationContext.Current.OutgoingResponse.ContentType = "text/xml";
[OperationContract]
public void DoWork()
{
// Add your operation implementation here
return;
}
// Add more operations here and mark them with [OperationContract]

[Visual Basic]
' To use HTTP GET, add <WebGet()> attribute. (Default ResponseFormat is
WebMessageFormat.Json)
' To create an operation that returns XML,
'
add <WebGet(ResponseFormat:=WebMessageFormat.Xml)>,
'
and include the following line in the operation body:
'
WebOperationContext.Current.OutgoingResponse.ContentType = "text/xml"
<OperationContract()>
Public Sub DoWork()
' Add your operation implementation here
End Sub
' Add more operations here and mark them with <OperationContract()>

170

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Na janela GreetingsService.svc, selecione o cdigo a seguir e pressione DELETE.


[Visual C#]
// To use HTTP GET, add [WebGet] attribute. (Default ResponseFormat is
WebMessageFormat.Json)
// To create an operation that returns XML,
//
add [WebGet(ResponseFormat=WebMessageFormat.Xml)],
//
and include the following line in the operation body:
//
WebOperationContext.Current.OutgoingResponse.ContentType =
"text/xml";
[OperationContract]
public void DoWork()
{
// Add your operation implementation here
return;
}
// Add more operations here and mark them with [OperationContract]

[Visual Basic]
' To use HTTP GET, add <WebGet()> attribute. (Default ResponseFormat is
WebMessageFormat.Json)
' To create an operation that returns XML,
'
add <WebGet(ResponseFormat:=WebMessageFormat.Xml)>,
'
and include the following line in the operation body:
'
WebOperationContext.Current.OutgoingResponse.ContentType = "text/xml"
<OperationContract()>
Public Sub DoWork()
' Add your operation implementation here
End Sub
' Add more operations here and mark them with <OperationContract()>

5.

Adicione o seguinte cdigo classe service.


[Visual C#]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Activation;
using System.ServiceModel.Web;
using System.Text;
namespace Script
{
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode =
AspNetCompatibilityRequirementsMode.Allowed)]
public class GreetingsService
{
[OperationContract]
public string Greet()
{
return "Hello World";
}
}
}

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

[Visual
Imports
Imports
Imports

171

Basic]
System.ServiceModel
System.ServiceModel.Activation
System.ServiceModel.Web

<ServiceContract(Namespace:="")>
<AspNetCompatibilityRequirements(RequirementsMode:=AspNetCompatibilityRequirementsM
ode.Allowed)>
Public Class Greeting
<OperationContract()>
Public Function Greet() As String
Return "Hello World"
End Function
End Class

6.

Compile a soluo e corrija todos os erros.


Na janela Script Microsoft Visual Studio, pressione CTRL+SHIFT+B.

7.

Feche o Visual Studio 2010.


Na janela Script Microsoft Visual Studio, clique no boto Fechar.

Demonstrao: Como chamar o servio WCF habilitado para Ajax usando


cdigo do lado do cliente
Nesta demonstrao, voc ver como invocar o servio GreetingsService.svc usando cdigo do lado
do cliente.
1.

Abra o Microsoft Visual Studio 2010.


No menu Iniciar de 10714A-GEN-DEV, aponte para Todos os Programas, clique em
Microsoft Visual Studio 2010 e, em seguida, clique em Microsoft Visual Studio 2010.

2.

3.

Abra a soluo Script na pasta D:\Demofiles\CS\Script ou D:\Demofiles\VB\Script.


a.

Na janela Start Page Microsoft Visual Studio, no menu File, clique em Open Project.

b.

Na caixa de dilogo Open Project, na caixa Nome, digite D:\Demofiles\CS\Script\Script.sln ou


D:\Demofiles\VB\Script\Script.sln e clique em Abrir.

Abra a pgina mestra Site.Master.

4.

No Solution Explorer, clique duas vezes em Site.Master.

Remova o atributo onload e o valor da marca body de abertura.


<body onload="inlineGreet()">

5.

Abra o formulrio da Web Default.aspx.

6.

No Solution Explorer, clique duas vezes em Default.aspx.

Remova o contedo do controle BodyContent Content.

Na janela Default.aspx, selecione a marcao includa entre as marcas Content de abertura e


fechamento do controle Content com o valor do atributo ID igual a BodyContent e pressione
DELETE.

172

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

7.

Adicione a marcao a seguir para registrar o servio WCF usando o controle ScriptManager.
Adicione a marcao ao controle Content vazio com o valor do atributo ID igual a BodyContent.
<asp:ScriptManager id="ScriptManager1" runat="server">
<services>
<asp:ServiceReference path="~/GreetingsService.svc" />
</services>
</asp:ScriptManager>

8.

Adicione o cdigo a seguir pgina Default.aspx no controle Content vazio, com o valor do
atributo ID igual a BodyContent.
<script type="text/JavaScript">
function greetUser() {
GreetingsService.Greet(onSuccess);
}
function onSuccess(result) {
alert(result);
}
</script>

9.

Adicione a marcao a seguir pgina Default.aspx no controle Content vazio, com o valor do
atributo ID igual a BodyContent.
<input type="button" value="Invoke Service" onclick="greetUser()" />

10. Execute o aplicativo.

Pressione CTRL+F5.

11. Clique em Invoke Service.


Observao: o servio WCF ser invocado e uma mensagem de alerta ser exibida.
12. Feche a caixa de dilogo.

Na caixa de dilogo Message from webpage, clique em OK.

13. Feche o Windows Internet Explorer.

Na janela Home Page Windows Internet Explorer, clique no boto Fechar.

14. Feche o Visual Studio 2010.

Na janela Script Microsoft Visual Studio, clique no boto Fechar.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Mdulo 13
Implementao do Ajax avanado em um aplicativo Web
Sumrio:
Lio 3: Como trabalhar com eventos jQuery e Ajax

174

173

174

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Lio 3

Como trabalhar com eventos jQuery e Ajax


Sumrio:
Passos detalhados de demonstrao

175

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

175

Passos detalhados de demonstrao


Demonstrao: Como trabalhar com manipuladores de eventos do
jQuery Ajax
Introduo
Nesta demonstrao, voc ver como trabalhar com diferentes eventos do jQuery Ajax.
1.

Abra o Microsoft Visual Studio 2010.


No menu Iniciar de 10714A-GEN-DEV, aponte para Todos os Programas, clique em
Microsoft Visual Studio 2010 e, em seguida, clique em Microsoft Visual Studio 2010.

2.

3.

Crie um novo aplicativo Web ASP.NET MVC 2 chamado jQueryEventHandlers na pasta


D:\Demofiles\CS ou D:\Demofiles\VB.
a.

Na janela Start Page Microsoft Visual Studio, no menu File, clique em New Project.

b.

Na caixa de dilogo New Project, no painel esquerdo, clique em Visual C# ou em Visual


Basic, no painel central, clique em ASP.NET MVC 2 Web Application, na caixa Name, digite
jQueryEventHandlers, na caixa Location, digite D:\Demofiles\CS ou D:\Demofiles\VB e
clique em OK.

c.

Na caixa de dilogo Create Unit Test Project, marque a caixa seleo No, do not create a
unit test project e clique em OK.

Adicione uma ao de controlador chamada ServerTime ao controlador Home.


[Visual C#]
public string ServerTime(string message)
{
if (message == "ex")
throw new ArgumentException();
return "You said " + message + ", and the time is " + DateTime.Now;
}

[Visual Basic]
Function ServerTime(ByVal message As String) As String
If message = "ex" Then
Throw New ArgumentException()
End If
Return "You said " & message & ", and the time is " & DateTime.Now
End Function

Na janela HomeController.cs ou HomeController.vb, digite o cdigo a seguir na classe


HomeController.
[Visual C#]
public string ServerTime(string message)
{
if (message == "ex")
throw new ArgumentException();
return "You said " + message + ", and the time is " + DateTime.Now;
}

176

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

[Visual Basic]
Function ServerTime(ByVal message As String) As String
If message = "ex" Then
Throw New ArgumentException()
End If
Return "You said " & message & ", and the time is " & DateTime.Now
End Function

Observao: se voc passar a cadeia de caracteres ex, o mtodo gerar uma exceo no

servidor.
4.

No modo de exibio Views/Home/Index, substitua o contedo atual do controle Content2 ou


indexContent Content por uma caixa de texto, um elemento button, um elemento div para
registrar em log as mensagens do Ajax e um elemento div para exibir alguns dos resultados da
chamada Ajax.
<h2>
ServerTime</h2>
<input id="yourtext" type="text" name="message" /><input id="submit" type="button"
value="Load Data" />
<div id="log">
</div>
<p id="results">
</p>

a.

No Solution Explorer, expanda Views, expanda Home e clique duas vezes em Index.aspx.

b.

Selecione a marcao no controle Content2 ou indexContent Content e pressione DELETE.

c.

No controle Content2 ou indexContent Content, digite a marcao a seguir.


<h2>
ServerTime</h2>
<input id="yourtext" type="text" name="message" /><input id="submit"
type="button"
value="Load Data" />
<div id="log">
</div>
<p id="results">
</p>

5.

Crie e habilite manipuladores para os eventos .ajaxSend(), .ajaxComplete() e .ajaxError(),


adicionando a marcao e o cdigo a seguir ao modo de exibio Index.
<script src="<%= Url.Content("~/Scripts/jquery-1.4.1.min.js") %>"
type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#log").ajaxSend(function () {
$(this).slideDown("fast").text("Loading...");
});
$("#log").ajaxComplete(function () {
$(this).slideUp("slow", function () { $(this).text(""); });
});

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

$('#submit').click(function () {
var msg = $("#yourtext").val();
$("#results").load('<%= Url.Action("ServerTime") %>', { message:
msg });
});
$("#log").ajaxError(function () {
alert("error");
});
});
</script>

Na janela Index.aspx, digite a marcao a seguir na parte inferior do controle Content2 ou


indexContent Content.
<script src="<%= Url.Content("~/Scripts/jquery-1.4.1.min.js") %>"
type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#log").ajaxSend(function () {
$(this).slideDown("fast").text("Loading...");
});
$("#log").ajaxComplete(function () {
$(this).slideUp("slow", function () { $(this).text(""); });
});
$('#submit').click(function () {
var msg = $("#yourtext").val();
$("#results").load('<%= Url.Action("ServerTime") %>', { message:
msg });
});
$("#log").ajaxError(function () {
alert("error");
});
});
</script>

6.

Compile a soluo e corrija todos os erros.

7.

Execute o aplicativo.

8.

Na janela jQueryEventHandlers Microsoft Visual Studio, pressione CTRL+SHIFT+B.

No Solution Explorer, clique em jQueryEventHandlers e pressione CTRL+F5.

No Windows Internet Explorer, na caixa de texto, digite This is a test e clique em Carregar
Dados.
Observao: quando a chamada ao mtodo do controlador feita, o texto Loading...
exibido abaixo da caixa de texto. Quando a chamada concluda, uma mensagem
semelhante a You said This is a test, and the time is 9/16/2010 12:00:46 AM exibida.

177

178

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

9.

No Windows Internet Explorer, na caixa de texto, digite ex e clique em Carregar Dados.


Observao: quando a chamada ao mtodo do controlador feita, o texto Loading...
exibido abaixo da caixa de texto. Quando a chamada concluda, uma caixa de
mensagem exibida com o texto error.

10. Feche a caixa de mensagem.

Na caixa de mensagem Message from webpage, clique em OK.

11. Feche o Windows Internet Explorer.

Na janela Home Page Windows Internet Explorer, clique no boto Fechar.

12. Feche o Visual Studio 2010.

Na janela jQueryEventHandlers Microsoft Visual Studio, clique no boto Fechar.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Mdulo 14
Implantaes do ASP.NET
Sumrio:
Lio 1: Viso geral de implantaes de aplicativos Web

180

Lio 2: Viso geral de implantaes de sites

182

179

180

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Lio 1

Viso geral de implantaes de aplicativos Web


Sumrio:
Perguntas e respostas

181

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Perguntas e respostas
Pacotes de implantao da Web
Pergunta: Em quais cenrios voc usou pacotes de implantao da Web? Quais foram as
vantagens? Quais foram as desvantagens?
Resposta: Pode variar.

Publicao com um clique


Pergunta: Em quais cenrios voc usou o recurso de publicao com um clique? Quais
foram as vantagens? Quais foram as desvantagens?
Resposta: Pode variar.

Cenrios empresariais
Pergunta: Quantos ambientes intermedirios voc viu em um cenrio empresarial? Voc
encontrou um cenrio em que no foram usados ambientes intermedirios?
Resposta: Pode variar.

Cenrios de hospedagem de terceiros


Pergunta: Quais provedores de hospedagem voc usou? Eles possuam ambientes de
hospedagem compartilhados? Eles possuam servidores dedicados? Como esses recursos
afetaram o modo como voc implantou seus aplicativos?
Resposta: Pode variar.

Implantao de um banco de dados do SQL Server


Pergunta: Como voc propaga as estruturas de dados e os dados no momento? Quais so
as vantagens? Quais so as desvantagens?
Resposta: Pode variar

Extenso da Plataforma de Publicao na Web: O servidor Web


Pergunta: Como voc implanta assemblies de GAC, assemblies COM e chaves do Registro
no momento? Quais problemas voc encontrou por no implantar esses componentes
corretamente?
Resposta: Pode variar

181

182

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Lio 2

Viso geral de implantaes de sites


Sumrio:
Perguntas e respostas

183

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Perguntas e respostas
A ferramenta Copy Web Site
Pergunta: Onde voc utilizou a ferramenta Copy Web Site?
Resposta: Pode variar
Pergunta: Quais so algumas das vantagens de no precisar recompilar um aplicativo?
Resposta: mais rpido e h menos chance de um componente no funcionar
adequadamente.

O utilitrio Publish Web Site


Pergunta: Onde voc utilizou o utilitrio Publish Web Site?
Resposta: Pode variar.
Pergunta: Quais so algumas das vantagens de recompilar o aplicativo?
Resposta: Isso garante que todo o cdigo est atualizado e qualquer erro de compilao
foi encontrado.

Implantao do arquivo Web.config


Pergunta: Onde voc utilizou o utilitrio Publish Web Site?
Resposta: Pode variar.

183

184

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Mdulo 15
Desenvolvimento de um aplicativo Web usando o Silverlight
Sumrio:
Lio 3: Criar um aplicativo Silverlight

185

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Lio 3

Criar um aplicativo Silverlight


Sumrio:
Perguntas e respostas

186

Passos detalhados de demonstrao

187

185

186

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Perguntas e respostas
Demonstrao: Criao da estrutura de um projeto do Silverlight
Pergunta: Explique por que um projeto host necessrio em uma soluo Silverlight.
Resposta: O Silverlight deve estar hospedado para poder ser executado. Voc pode
hosped-lo em um projeto de host ou em uma pgina HTML simples.

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

187

Passos detalhados de demonstrao


Demonstrao: Criao da estrutura de um projeto do Silverlight
Nesta demonstrao, voc ver como criar a estrutura de um projeto simples do Silverlight, a qual consiste
em um projeto do Silverlight e um projeto de aplicativo Web ASP.NET, o projeto host.
1.

Abra o Microsoft Visual Studio 2010.

2.

3.

4.

Crie um novo aplicativo Silverlight chamado SilverlightApp na pasta D:\Demofiles\CS ou


D:\Demofiles\VB.
a.

Na janela Start Page Microsoft Visual Studio, no menu File, clique em New Project.

b.

Na caixa de dilogo New Project, no painel esquerdo, clique em Visual C# ou em Visual Basic,
no painel central, clique em Silverlight Application, na caixa Name, digite SilverlightApp,
na caixa Location, digite D:\Demofiles\CS ou D:\Demofiles\VB e clique em OK.

Na caixa de dilogo New Silverlight Application, verifique as informaes a seguir e clique em OK.
a.

Verifique se a opo Host the Silverlight Application in a new Web site est selecionada (o padro).

b.

Especifique o nome do novo projeto Web como SilverlightApp.Web.

c.

Especifique o tipo do novo projeto Web como ASP.Net Web Application Project.

Observe que foram criados dois projetos.

5.

SilverlightApp o projeto do aplicativo Silverlight. Ele consiste no XAML e nos code-behinds


associados que fazem parte do aplicativo.

O arquivo App.xaml usado pelo aplicativo para declarar recursos compartilhados. Alm
disso, seu arquivo code-behind usado para manipular eventos globais no nvel de
aplicativo, como Startup e Exit, de maneira semelhante a Global.asax em um aplicativo
ASP.NET.

MainPage.xaml a pgina Silverlight padro do aplicativo. Esse projeto criado em um


arquivo XAP e usado pelo plug-in Silverlight para baixar e executar o aplicativo no
navegador do usurio. O arquivo XAP contm os recursos e os assemblies compactados
necessrios para executar o aplicativo.

SilverlightApp.Web o projeto de hospedagem. Ele contm as pginas da Web que


hospedaro o aplicativo Silverlight.

Observe a pasta chamada ClientBin.

6.

No menu Iniciar de 10714A-GEN-DEV, aponte para Todos os Programas, clique em


Microsoft Visual Studio 2010 e, em seguida, clique em Microsoft Visual Studio 2010.

O arquivo SilverlightApp.xap o pacote de aplicativo referente a SilverlightApp. O Visual


Studio atualizar esse arquivo XAP quando o projeto for criado.

Abra SilverlightAppTestPage.aspx.

Alterne para o modo Cdigo-fonte. O elemento object o continer do aplicativo Silverlight


SilverlightApp. Ele conter referncias ao Silverlight runtime, inclusive um link para baix-lo,
se ele ainda no estiver instalado no navegador do usurio.

188

Desenvolvimento de aplicativos Web com o Microsoft Visual Studio 2010

Envie-nos seus comentrios


Para obter informaes sobre problemas conhecidos, voc pode pesquisar a Base de Dados de
Conhecimento Microsoft em Ajuda e Suporte da Microsoft, antes de enviar comentrios. Pesquise
pelo nmero e pela reviso do curso ou por seu ttulo.
Observao Nem todos os produtos de treinamento possuem um artigo da Base de Dados de
Conhecimento. Se for esse o caso, pergunte ao instrutor se existem entradas de log de erros.

Comentrios sobre o curso


Envie todos os comentrios sobre o curso para support@mscourseware.com. Somos gratos por seu
interesse e sua contribuio. Analisamos todos os emails recebidos e encaminhamos as informaes
para a equipe apropriada. Infelizmente, por conta do volume, no podemos fornecer uma resposta, mas
podemos usar seus comentrios para melhorar sua experincia futura com os produtos do Microsoft
Learning.

Relatrio de erros
Ao enviar comentrios, inclua o nome e o nmero do produto de treinamento na linha de assunto do
email. Ao enviar comentrios ou relatar bugs, inclua os seguintes dados:
1.

Nmero da pea do documento ou CD

2.

Nmero da pgina ou local

3.

Descrio completa do erro ou da alterao sugerida

Fornea todos os detalhes necessrios para nos ajudar a verificar o problema.


Importante Todos os erros e sugestes so avaliados, mas apenas os que so validados
so adicionados ao artigo da Base de Dados de Conhecimento do produto.