10714a-ptb-companion.pdf
DESCRIPTION
10714A-PTB-Companion.pdfTRANSCRIPT
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 1
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
Conteúdo complementar
2 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
As informações incluídas neste documento, inclusive URLs e referências a outros sites na Internet, estão sujeitas a alteração sem aviso prévio. Salvo indicação contrária, os nomes de empresas, organizações, produtos, nomes de domínios, endereços de email, logotipos, pessoas, lugares e acontecimentos aqui mencionados são fictícios e de nenhuma forma pretendem representar empresas, organizações, produtos, nomes de domínios, endereços de email, logotipos, pessoas, lugares ou acontecimentos. O cumprimento das leis de direitos autorais é de exclusiva responsabilidade do usuário. Sem limitar os direitos autorais, nenhuma parte deste documento pode ser reproduzida, armazenada ou apresentada em um sistema de recuperação ou transmitida de qualquer forma ou por qualquer meio (eletrônico, mecânico, fotocópia, gravação ou de outra forma), ou para qualquer fim, sem a permissão 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 questão neste documento. Exceto se expressamente previsto em um acordo de licença por escrito da Microsoft, o fornecimento deste documento não concede licença 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 não faz promessas nem oferece garantias expressas, implícitas ou legais referentes a esses fabricantes ou ao uso dos produtos com qualquer tecnologia Microsoft. A inclusão de um fabricante ou produto não implica endosso do fabricante ou produto por parte da Microsoft. São fornecidos links para sites de terceiros. Esses sites não são controlados pela Microsoft, a qual não se responsabiliza pelo conteúdo de qualquer site vinculado ou qualquer link existente em um site vinculado, ou qualquer mudança ou atualização em tais sites. A Microsoft não se responsabiliza pela divulgação por webcast ou qualquer outra forma de transmissão recebida de qualquer site vinculado. A Microsoft está fornecendo esses links para sua conveniência e a inclusão de tais links não 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 são marcas comerciais do grupo de empresas da Microsoft.Todas as outras marcas comerciais pertencem aos respectivos proprietários.
Número do produto: 10714A
Lançamento: 06/2011
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 3
TERMOS DE LICENÇA DA MICROSOFT
OFFICIAL MICROSOFT LEARNING PRODUCTS — EDIÇÃO DO ALUNO — Versões de pré-lançamento e final Estes termos de licença são um acordo entre a Microsoft Corporation e você. Por favor, leia-os. Eles se aplicam ao conteúdo licenciado supracitado, que inclui a mídia na qual ele está contido, caso haja uma. Os termos também se aplicam aos seguintes itens da Microsoft:
• atualizações,
• suplementos,
• serviços via Internet e
• serviços de suporte
referentes a este conteúdo licenciado, a menos que outros termos acompanhem esses itens. Nesse caso, tais termos se aplicam.
Ao usar o conteúdo licenciado, você estará aceitando estes termos. Se você não os aceitar, não use o conteúdo licenciado.
Se cumprir estes termos de licença, você terá os direitos a seguir.
1. VISÃO GERAL.
Conteúdo Licenciado. O conteúdo licenciado inclui software, materiais impressos, materiais acadêmicos (online e eletrônicos) e qualquer mídia associada.
Modelo de Licença. O conteúdo licenciado é licenciado por cópia por dispositivo.
2. DIREITOS DE INSTALAÇÃO E USO.
a. Dispositivo Licenciado. O dispositivo licenciado é o dispositivo no qual você usa o conteúdo licenciado. Você poderá instalar e usar uma única cópia do conteúdo licenciado no dispositivo licenciado.
b. Dispositivo Portátil. Você poderá instalar uma outra cópia em um dispositivo portátil para uso pelo único usuário principal do dispositivo licenciado.
c. Separação de Componentes. Os componentes do conteúdo licenciado são licenciados como uma única unidade. Você não poderá separar os componentes e instalá-los em dispositivos diferentes.
d. Programas de Terceiros. O conteúdo licenciado poderá conter programas de terceiros. Estes termos de licença se aplicarão ao uso que você fizer desses programas de terceiros, a menos que outros termos acompanhem esses programas.
4 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
3. VERSÕES DE PRÉ-LANÇAMENTO. Se o conteúdo licenciado for uma versão de pré-lançamento (“beta”), as seguintes cláusulas serão aplicáveis além de outros termos neste contrato:
a. Conteúdo Licenciado de Pré-Lançamento. Este conteúdo licenciado é uma versão de pré-lançamento. Ele não pode conter as mesmas informações e/ou funcionar da mesma maneira que uma versão definitiva do conteúdo licenciado. Podemos alterá-lo na versão comercial definitiva. Além disso, não podemos lançar uma versão comercial. Você deverá informar o disposto acima de maneira clara e visível a todos os Alunos participantes de uma Sessão de Treinamento Autorizado e a todos os Instrutores que ministrarem treinamento nessas Sessões de Treinamento Autorizado. Além disso, informe que você ou a Microsoft não tem qualquer obrigação de fornecer nenhum outro conteúdo, incluindo, mas sem limitação, a versão lançada em caráter definitivo do Conteúdo Licenciado do Curso.
b. Comentários. Se você concordar em enviar à Microsoft comentários sobre o conteúdo licenciado, estará dando à Microsoft, a título gratuito, o direito de usar, compartilhar e comercializar seus comentários de qualquer maneira e para qualquer finalidade. Além disso, você concede a terceiros, sem custos, todos os direitos de patente necessários para que seus produtos, suas tecnologias e seus serviços usem, ou estabeleçam conexão com, qualquer parte específica de um software, Conteúdo Licenciado ou serviço da Microsoft que inclua os comentários. Você não deverá enviar comentários sujeitos a uma licença que exija da Microsoft o licenciamento do seu software ou da sua documentação a terceiros em virtude da inclusão dos seus comentários nesses elementos. Esses direitos permanecerão em vigor após o término deste contrato.
c. Informações Confidenciais. O conteúdo licenciado, incluindo qualquer visualizador, interface de usuário, recursos e documentação que porventura estejam presentes no conteúdo licenciado, é confidencial e de propriedade da Microsoft e de seus fornecedores.
i. Uso. Durante cinco anos após a instalação do conteúdo licenciado ou do seu lançamento comercial, o que ocorrer primeiro, você não poderá divulgar informações confidenciais a terceiros. Você poderá divulgar informações confidenciais apenas aos seus funcionários e consultores que tenham a necessidade de conhecer essas informações. Você deverá firmar contratos por escrito com eles para proteger essas informações confidenciais, pelo menos, de maneira idêntica a este contrato.
ii. Continuidade da obrigação. Seu dever de proteger as informações confidenciais permanecerá após o término deste contrato.
iii. Exclusões. Você poderá divulgar informações confidenciais para atender ordens judiciais ou do Poder Público. Você deverá enviar à Microsoft uma notificação prévia por escrito permitindo que ela busque uma medida cautelar ou de outra forma proteja as informações. Entre as informações confidenciais não estão informações que
• passem a ser de conhecimento público através de atos lícitos;
• você tenha recebido de terceiros que não violaram obrigações de sigilo para com a Microsoft ou seus fornecedores; ou
• você tenha desenvolvido de forma independente.
d. Prazo. O prazo deste contrato de versões de pré-lançamento é (i) a data que a Microsoft informar a você como data final de uso da versão beta, ou (ii) o lançamento comercial da versão definitiva do conteúdo licenciado, o que for anterior (“prazo do beta”).
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 5
e. Uso. Você deverá deixar de usar todas as cópias da versão beta na rescisão ou no término dessa versão, bem como destruir todas as cópias dela em seu poder ou sob seu controle.
f. Cópias. A Microsoft informará os Centros de Treinamento Autorizados se eles podem produzir cópias da versão beta (seja na versão impressa e/ou em CD) e distribuirá essas cópias aos Alunos e/ou Instrutores. Caso a Microsoft permita essa distribuição, você deverá cumprir todos os termos adicionais que a Microsoft apresentar em relação a essas cópias e à distribuição.
4. DIREITOS DE USO E/OU REQUISITOS DE LICENCIAMENTO ADICIONAIS.
a. Elementos de Mídia e Modelos. Você poderá usar imagens, clip-arts, animações, sons, músicas, formas, videoclipes e modelos fornecidos com o conteúdo licenciado somente para seu uso em treinamento pessoal. Caso deseje usar esses elementos de mídia ou modelos para qualquer outra finalidade, vá para www.microsoft.com/permission para saber se é permitido.
b. Materiais Acadêmicos. Caso o conteúdo licenciado inclua materiais acadêmicos (como white papers, laboratórios, testes, folhas de dados e perguntas freqüentes), você poderá copiar e usar esses materiais. Não é permitido fazer modificações nos materiais acadêmicos nem imprimir livros (eletrônicos ou em versão impressa) integralmente. No caso da reprodução de materiais acadêmicos, você concorda que:
• o uso dos materiais acadêmicos será exclusivamente para sua referência ou treinamento pessoal;
• você não republicará nem postará os materiais acadêmicos em nenhum computador de rede, nem os transmitirá em nenhuma mídia;
• você incluirá o aviso de direitos autorais original dos materiais acadêmicos, ou um aviso de direitos autorais em benefício da Microsoft no formato indicado abaixo:
Formato do Aviso: © 2011 Reimpresso para uso como referência pessoal apenas com a permissão da Microsoft Corporation. Todos os direitos reservados.
Microsoft e Windows são marcas registradas ou comerciais da Microsoft Corporation nos Estados Unidos e/ou em outros países. Outros nomes de empresas e produtos aqui mencionados são marcas comerciais de seus respectivos proprietários.
c. Código Distribuível. O conteúdo licenciado poderá conter código que você tem permissão de distribuir nos programas que desenvolver, respeitados os termos abaixo.
i. Direito de Uso e Distribuição. O código e os arquivos de texto listados abaixo constituem “Código Distribuível”.
• Arquivos REDIST.TXT. Você poderá copiar e distribuir a forma de código objeto do código listado nos arquivos REDIST.TXT.
• Código de Exemplo. Você poderá modificar, copiar e distribuir a forma de código objeto e código-fonte do código identificado como “exemplo” (“sample”).
• Distribuição por Terceiros. Você poderá permitir que os distribuidores de seus programas copiem e distribuam o Código Distribuível como parte desses programas.
ii. Requisitos de Distribuição. Para qualquer Código Distribuível que distribua, você deverá:
• adicionar ao Código Distribuível, em seus programas, funcionalidades primárias significativas;
• exigir que os distribuidores e usuários finais externos aceitem termos que protejam o código, pelo menos tanto quanto este contrato;
6 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
• exibir o seu aviso de direitos autorais válido em seus programas; e
• indenizar, isentar de responsabilidades e defender a Microsoft de quaisquer reivindicações, incluindo honorários advocatícios, decorrentes da utilização ou distribuição de seus programas.
iii. Restrições à Distribuição. É vedado:
• alterar quaisquer avisos de direitos autorais, marcas registradas ou patentes que apareçam no Código Distribuível;
• usar marcas registradas da Microsoft nos nomes de seus programas ou de forma a sugerir que seus programas derivam da Microsoft ou são endossados por ela;
• distribuir Código Distribuível para execução em uma plataforma que não seja Windows;
• incluir Código Distribuível em programas mal-intencionados, enganosos ou ilícitos; ou
• modificar ou distribuir o código-fonte de qualquer Código Distribuível de modo que qualquer parte do mesmo fique sujeita a uma Licença Excluída. Uma Licença Excluída significa qualquer licença que requeira, como condição de uso, modificação ou distribuição, que:
• o código seja divulgado ou distribuído na forma de código-fonte; ou
• outras pessoas tenham o direito de modificá-lo.
5. SERVIÇOS VIA INTERNET. A Microsoft poderá fornecer serviços via Internet com o conteúdo licenciado. Ela poderá alterá-los ou cancelá-los a qualquer momento. Você não poderá usar esses serviços de maneira que possa danificá-los ou prejudicar seu uso por outros. Em nenhuma hipótese você poderá usar os serviços para tentar obter acesso não autorizado a qualquer serviço, dado, conta ou rede.
6. ESCOPO DA LICENÇA. O conteúdo licenciado é licenciado, não vendido. Este contrato apenas outorga a você alguns direitos de uso do conteúdo licenciado. A Microsoft se reserva todos os outros direitos. Salvo quando a legislação aplicável lhe conceder mais direitos do que esta limitação, você só poderá usar o conteúdo licenciado conforme expressamente permitido neste contrato. Ao fazer isso, você deverá cumprir quaisquer limitações técnicas no conteúdo licenciado que permitam o seu uso apenas de determinadas maneiras. É vedado(a):
• a divulgação dos resultados de qualquer teste de desempenho do conteúdo licenciado a terceiros sem o prévio consentimento, por escrito, da Microsoft;
• a resolução de limitações técnicas no conteúdo licenciado;
• a realização de engenharia reversa, descompilação ou desmontagem do conteúdo licenciado, exceto e somente na medida em que esta atividade seja expressamente permitida pela legislação aplicável, não obstante esta limitação;
• a produção de mais cópias do conteúdo licenciado do que aquelas especificadas neste contrato ou permitidas pela legislação aplicável, não obstante esta limitação;
• a publicação do conteúdo licenciado para a cópia por outras pessoas;
• transferir o conteúdo licenciado marcado como “beta” ou “pré-lançamento” a terceiros;
• permitir que outros acessem ou usem o conteúdo licenciado;
• o aluguel, arrendamento ou empréstimo do conteúdo licenciado; ou
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 7
• o uso do conteúdo licenciado em serviços de hospedagem comercial de conteúdo licenciado.
• Os direitos de acesso ao software para servidor que possa estar incluído com o conteúdo licenciado, inclusive os Discos Rígidos Virtuais, não 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. CÓPIA DE BACKUP. Você poderá fazer uma cópia de backup do conteúdo licenciado. Você poderá usá-la apenas para reinstalar o conteúdo licenciado.
8. TRANSFERÊNCIA PARA OUTRO DISPOSITIVO. Você poderá desinstalar o conteúdo licenciado e instalá-lo em outro dispositivo para seu uso pessoal em treinamento. Você não poderá fazer isso para compartilhar esta licença com vários dispositivos.
9. TRANSFERÊNCIA PARA TERCEIROS. Você não poderá transferir a terceiros essas versões marcadas como “beta” ou “pré-lançamento”. Para as versões definitivas, esses termos serão aplicáveis: O primeiro usuário do conteúdo licenciado poderá transferi-lo junto com este contrato diretamente a um terceiro. Antes da transferência, tal terceiro deverá concordar que este contrato se aplica à transferência e ao uso do conteúdo licenciado. O primeiro usuário deverá desinstalar o conteúdo licenciado antes de transferi-lo separadamente do dispositivo. O primeiro usuário não poderá reter cópias.
10. RESTRIÇÕES À EXPORTAÇÃO. O conteúdo licenciado está sujeito às leis e normas de exportação dos Estados Unidos. Você deverá cumprir todas as leis e normas nacionais e internacionais de exportação que se aplicam ao conteúdo licenciado. Essas leis incluem restrições a destinos, usuários finais e uso final. Para obter informações adicionais, visite a página www.microsoft.com/exporting.
11. SOFTWARE/CONTEÚDO LICENCIADO NÃO COMERCIALIZÁVEL (“NFR” ou “Not For Resale”). É vedada a venda de software ou conteúdo licenciado identificado como “NFR” ou “Not for Resale” (“Não Comercializável”).
12. EDIÇÃO ACADÊMICA. Você deverá ser um “Usuário Educacional Qualificado” para usar conteúdo licenciado identificado como “Academic Edition” ou “AE”. Caso você não saiba se é ou não um Usuário Educacional Qualificado, visite a página www.microsoft.com/education ou contate a afiliada da Microsoft em seu país.
13. CONTRATO INTEGRAL. Este contrato, e os termos dos suplementos, das atualizações, dos serviços via Internet e dos serviços de suporte usados por você, constituem o contrato integral para o conteúdo licenciado e os serviços de suporte.
14. LEGISLAÇÃO APLICÁVEL.
a. Nos Estados Unidos. Se você tiver adquirido o conteúdo licenciado nos Estados Unidos, as leis do Estado de Washington regerão a interpretação deste contrato e serão aplicáveis às reclamações de violação do mesmo, independentemente dos princípios de conflito de leis. As leis do Estado onde você vive regerão todas as outras reclamações, incluindo leis de defesa do consumidor, concorrência desleal e obrigações extracontratuais.
b. Fora dos Estados Unidos. Se você tiver adquirido o conteúdo licenciado em qualquer outro país, as leis desse país serão aplicáveis.
15. EFEITO LEGAL. Este contrato descreve alguns direitos legais. Você poderá ter outros direitos de acordo com as leis do seu país. Você também poderá ter direitos em relação ao terceiro de quem o conteúdo licenciado foi adquirido. Este contrato não alterará os seus direitos de acordo com as leis do seu país, caso as leis do seu país não o permitam.
8 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
16. ISENÇÃO DE RESPONSABILIDADE. O CONTEÚDO LICENCIADO É LICENCIADO “NO ESTADO EM QUE SE ENCONTRA”. O RISCO DE USÁ-LO É RESPONSABILIDADE SUA. A MICROSOFT NÃO OFERECE GARANTIAS OU CONDIÇÕES EXPRESSAS. VOCÊ PODERÁ TER DIREITOS DE CONSUMIDOR ADICIONAIS DE ACORDO COM SUAS LEIS LOCAIS, OS QUAIS ESTE CONTRATO NÃO PODERÁ ALTERAR. NA EXTENSÃO PERMITIDA PELAS LEIS LOCAIS, A MICROSOFT EXCLUI AS GARANTIAS IMPLÍCITAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA E NÃO-VIOLAÇÃO.
17. LIMITAÇÃO E EXCLUSÃO DE RECURSOS E DANOS. VOCÊ PODE RECUPERAR DA MICROSOFT E DE SEUS FORNECEDORES APENAS DANOS DIRETOS LIMITADOS A US$ 5,00 (CINCO DÓLARES AMERICANOS). NÃO É POSSÍVEL RECUPERAR OUTROS DANOS, INCLUINDO CONSEQÜENCIAIS, LUCROS CESSANTES, ESPECIAIS, INDIRETOS OU INCIDENTAIS.
Esta limitação aplica-se a:
• qualquer assunto relacionado ao conteúdo licenciado, ao software, aos serviços, ao conteúdo (incluindo código) em sites de Internet de terceiros ou a programas de terceiros; e
• reclamações por violação contratual, quebra de garantia ou condição, responsabilidade objetiva, negligência ou outra responsabilidade extracontratual, na extensão permitida pela legislação aplicável.
Também será aplicada ainda que a Microsoft saiba ou tivesse que saber sobre a possibilidade dos danos. A limitação ou exclusão acima poderá não se aplicar a você pelo fato de o seu país não permitir a exclusão ou limitação de danos incidentais, conseqüenciais ou outros.
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 9
Módulo 1 Visão geral da arquitetura e do design de aplicativos Web
Sumário: Lição 1: Visão geral do IIS 7.0 10
Lição 2: Visão geral do ASP.NET 4.0 18
Lição 3: Introdução ao MVC Framework 20
Lição 4: Visão geral do ciclo de vida de uma solicitação 24
10 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Lição 1 Visão geral do IIS 7.0
Sumário: Perguntas e respostas 11
Passos detalhados de demonstração 12
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 11
Perguntas e respostas Principais recursos do IIS 7.0
Pergunta: Quais são os benefícios oferecidos pela arquitetura modular do IIS? Indique pelo menos um.
Resposta: Com essa arquitetura é possível adicionar novos recursos de maneira rápida e fácil, alterar um recurso sem afetar os outros, e também ativar e desativar recursos de acordo com suas necessidades.
12 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Passos detalhados de demonstração Demonstração: Administração do IIS 7.0 com o Gerenciador do IIS
Esta demonstração ilustrará os diversos recursos do IIS e como administrar suas funções. Esses recursos compreendem:
• Criação de um novo site
• Autenticação
• Permissões
• Cadeias de conexão
• Configurações de aplicativos
• Inicialização e interrupção de um site
• Reciclagem do pool de aplicativos
Criar um novo site
1. No menu Iniciar, aponte para Ferramentas Administrativas, clique com o botão direito do mouse em Gerenciador do Serviços de Informações da Internet (IIS) e, em seguida, clique em Executar como administrador.
• Na caixa de diálogo Controle de Conta de Usuário, na caixa Senha, digite Pa$$w0rd e clique em Sim.
2. No Gerenciador do Serviços de Informações 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 diálogo Adicionar Site, especifique as configurações conforme mostrado no exemplo a seguir. Você precisará criar a subpasta demo na pasta C:\inetpub\.
5. Clique em OK.
Alterar a autenticação
1. No painel Conexões, clique em Demo.
2. No painel Página inicial Demo, na seção IIS, clique duas vezes em Autenticação.
3. No painel Autenticação, clique com o botão direito do mouse em Autenticação Básica e, em seguida, clique em Habilitar.
14 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Editar permissões
1. No painel Conexões, clique em Demo.
2. No painel Ações, clique em Editar Permissões.
3. Na caixa de diálogo Propriedades de inetpub, clique em Segurança.
4. Clique em Editar.
5. Na caixa de diálogo Permissões para inetpub, clique em Adicionar.
6. Na caixa de diálogo Selecionar Usuários 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 diálogo Permissões para inetpub, clique em OK.
8. Na caixa de diálogo Propriedades de inetpub, clique em OK.
Definir cadeia de conexão
1. No painel Conexões, clique em Default Web Site e, em seguida, clique em Demo.
2. No painel Página inicial Demo, na seção ASP.NET, clique duas vezes em Cadeias de Conexão.
3. No painel Ações, clique em Adicionar.
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 15
4. Na caixa de diálogo Adicionar Cadeia de Conexão, especifique as configurações conforme mostrado na ilustração a seguir.
5. Clique em OK.
6. No painel Cadeias de Conexão, clique em Exibição de Conteúdo.
7. No painel Conteúdo Demo, clique em web.config.
Observação: um arquivo web.config é adicionado ao diretório raiz do site.
8. No painel Conexões, clique com o botão direito do mouse em Demo e, em seguida, clique em Explorar.
9. No Windows Explorer, clique duas vezes em web.config.
Observação: no Microsoft® Visual Studio® 2010, você poderá ver a nova cadeia de conexão adicionada ao arquivo web.config.
10. Feche o Microsoft Visual Studio 2010.
11. Feche o Windows Explorer.
16 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Especificar as configurações do aplicativo
1. No painel Conexões, clique em Default Web Site e, em seguida, clique em Demo.
2. No painel Conteúdo Demo, clique em Exibição de Recursos.
3. No painel Página inicial Demo, na seção ASP.NET, clique duas vezes em Configurações de Aplicativo.
4. No painel Ações, clique em Adicionar.
5. Na caixa de diálogo Adicionar Configuração do Aplicativo, especifique as configurações de acordo com a ilustração a seguir.
6. Clique em OK.
7. No Windows Explorer, clique duas vezes em web.config.
Observação: no Microsoft Visual Studio 2010, você poderá ver a nova configuração 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 Conexões, clique em Default Web Site e, em seguida, clique em Demo.
2. No painel Ações, na seção Gerenciar Site, clique em Reiniciar.
Reciclar um pool de aplicativos
1. No painel Conexões, clique em Pools de Aplicativos.
2. No painel Pools de Aplicativos, clique em DefaultAppPool e, no painel Ações, na seção Tarefas de Pool de Aplicativos, clique em Reciclar.
3. Feche o Gerenciador do Serviços de Informações da Internet (IIS).
18 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Lição 2 Visão geral do ASP.NET 4.0
Sumário: Perguntas e respostas 19
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 19
Perguntas e respostas Novos recursos do ASP.NET 4.0
Pergunta: Como a compactação do estado de sessão serializado é habilitada?
Resposta: Para habilitar a compactação do estado de sessão serializado é preciso definir o valor da opção de configuração compressionEnabled como verdadeiro.
20 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Lição 3 Introdução ao MVC Framework
Sumário: Perguntas e respostas 21
Passos detalhados de demonstração 22
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 21
Perguntas e respostas O que é o MVC Framework?
Pergunta: Quais as vantagens de separar as questões de estruturas de dados, apresentação e lógica do aplicativo?
Resposta possível: A separação das preocupações possibilita atualizações autônomas e facilita a manutenção.
Demonstração: Exploração de um aplicativo MVC Pergunta: Quais outros elementos você reconheceu na solução MVC?
Respostas: Pode variar, mas os controladores, as exibições e os modelos, bem como a extensão .aspx e as páginas mestras.
22 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Passos detalhados de demonstração Demonstração: Exploração de um aplicativo MVC
Exploração do aplicativo MVC da Adventure Works
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. 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 diálogo New Project, no painel esquerdo, na seção Installed Templates, expanda Visual C# ou Visual Basic e clique em Web.
c. Na caixa de diálogo New Project, no painel central, clique em ASP.NET MVC 2 Web Application.
d. Na caixa de diálogo 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 diálogo Create Unit Test Project, selecione a opção No, do not create a unit test project e clique em OK.
4. Exiba a pasta Controllers.
• No Solution Explorer, expanda a pasta Controllers.
Observação: observe que todos os arquivos de código têm 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 23
6. Exiba todo o código do arquivo AccountModels.
a. No Solution Explorer, clique duas vezes no arquivo de código 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 regiões do código.
Observação: o arquivo de código de modelo contém as estruturas de dados desse aplicativo Web e as classes que controlam a lógica para se trabalhar com o armazenamento de dados.
d. Na janela AccountModels.cs ou AccountModels.vb, clique no botão Close.
7. Exiba a pasta Views.
• No Solution Explorer, expanda a pasta Views.
Observação: várias 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.
Observação: a pasta Shared contém as páginas mestras, os controles de usuário e as páginas compartilhadas no aplicativo Web MVC.
9. Feche o Microsoft Visual Studio 2010.
• Na janela DemoMvcApplication — Microsoft Visual Studio 2010, clique no botão Close.
24 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Lição 4 Visão geral do ciclo de vida de uma solicitação
Sumário: Perguntas e respostas 25
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 25
Perguntas e respostas Ciclo de vida de uma solicitação de formulários da Web
Pergunta: O que são dados de postback?
Respostas: Dados de postback são dados disponíveis no elemento do formulário HTML.
Ciclo de vida de uma solicitação do MVC Pergunta: Qual é a primeira etapa de uma solicitação do MVC?
Respostas: O Roteamento ASP.NET roteia a solicitação para o recurso apropriado.
Comparação dos ciclos de vida de uma solicitação de formulários da Web e do MVC
Pergunta: Quais são as outras diferenças entre o ciclo de vida de uma solicitação de formulários da Web e do MVC?
Resposta: Pode variar; debata com alunos.
Como trabalhar com o ciclo de vida de uma página de formulários da Web Pergunta: Em que outros cenários você precisaria usar eventos no ciclo de vida da página para processá-la corretamente?
Resposta: Pode variar; debata com alunos.
26 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Módulo 2 Design de um aplicativo Web
Sumário: Lição 1: Aplicativos Web: Estudos de caso 27
Lição 2: Conceitos básicos do desgin de aplicativos Web 29
Lição 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 27
Lição 1
Aplicativos Web: Estudos de caso Sumário: Perguntas e respostas 28
28 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Perguntas e respostas Discussão: Visão geral de aplicativos Web e suas características
Pergunta: Quais são algumas das outras variações não abordadas entre os sites?
Resposta: Pode variar.
Pergunta: Embora não haja uma correspondência 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 29
Lição 2 Conceitos básicos do desgin de aplicativos Web
Sumário: Perguntas e respostas 30
30 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Perguntas e respostas Considerações comuns de design
Pergunta: Qual é a importância da segurança em cada tipo de aplicativo Web?
Resposta: Mesmo em sites estáticos, o sistema de arquivos deve conter segurança anexada.
Pergunta: Como a escalabilidade e a confiabilidade estão relacionadas?
Resposta: Em geral, a escalabilidade e a confiabilidade estão estreitamente ligadas, uma vez que a capacidade de recuperação após a perda de recursos exige que o aplicativo Web seja capaz de distribuir seu processamento entre mais de um ponto de falha único.
Discussão: Formulários da Web e MVC Pergunta: Quais recursos, comuns ou diferentes, observados nas estruturas dos formulários da Web e do MVC seriam úteis para seus esforços de desenvolvimento?
Resposta: Pode variar.
Diretrizes para determinar quando usar formulários da Web e o MVC Pergunta: Com base em sua experiência, quais soluções podem ter se beneficiado da implementação com o MVC?
Resposta: Pode variar.
Pergunta: Quais recursos importantes dos formulários 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 31
Lição 3
Ferramentas e tecnologias do Visual Studio 2010 para o design de aplicativos Web
Sumário: Perguntas e respostas 32
32 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Perguntas e respostas Visão 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 exibição de Design exibe todas as páginas mestras e páginas mestras aninhadas implementadas em sua página. Dessa forma, você pode ver exatamente qual será a aparência da página no navegador.
Enterprise Library Pergunta: Quais os benefícios 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 não 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 não teria acesso sem esse mapa.
Pergunta: Como a ferramenta Site Analysis o ajuda a entender o modo como os rastreadores de mecanismos de pesquisa reagirão ao conteúdo do site?
Resposta: Executando a ferramenta Site Analysis, você identificará e corrigirá possíveis problemas que impedirão o rastreador do mecanismo de pesquisa de atribuir a relevância adequada ao seu conteúdo e, possivelmente, interromper a indexação de todo o site.
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 33
Módulo 3 Desenvolvendo modelos MVC
Sumário: Lição 1: Exploração de maneiras de criar modelos MVC 34
Lição 2: Como trabalhar com dados em modelos MVC 37
Lição 3: Criação de um repositório de dados 39
34 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Lição 1
Exploração de maneiras de criar modelos MVC Sumário: Passos detalhados de demonstração 35
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 35
Passos detalhados de demonstração Demonstração: Criando um modelo MVC usando classes
Criação 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. 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 diálogo 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 diálogo Create Unit Test Project, verifique se a caixa de seleção Yes, create a unit test project está marcada e clique em OK.
3. Adicione uma nova classe chamada Blog à pasta Models.
a. No Solution Explorer, clique com o botão direito em Models, aponte para Add e clique em New Item, ou pressione CTRL+SHIFT+A.
b. Na caixa de diálogo 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.
4. Adicione o seguinte código à 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 solução e corrija todos os erros.
• Na janela MvcApplication1 — Microsoft Visual Studio, no menu Build, clique em Build Solution, ou pressione CTRL+SHIFT+B.
6. Feche o Visual Studio 2010.
• Na janela MvcApplication1 — Microsoft Visual Studio, clique no botão Close.
Práticas recomendadas: O modelo não deve se preocupar em salvar a si mesmo na mídia persistente e a responsabilidade do acesso a dados deve ser mantida separada do modelo.
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 3-37
Lição 2
Como trabalhar com dados em modelos MVC Sumário: Perguntas e respostas 38
38 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Perguntas e respostas Padrão Data Mapper Pergunta: Qual a diferença entre o padrão Data Mapper e o padrão Active Record?
Resposta: O padrão 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 padrão Data Mapper mantém separadas a estrutura do banco de dados e a estrutura do objeto.
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 3-39
Lição 3 Criação de um repositório de dados
Sumário: Perguntas e respostas 40
Passos detalhados de demonstração 41
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 não é uma boa ideia implementar as regras comerciais na classe de modelo criada usando o Entity Framework?
Resposta: Quando o projeto é compilado, o código personalizado é substituído.
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 3-41
Passos detalhados de demonstração Demonstração: Criação de um repositório de dados Este tópico aborda a implementação de um repositório de dados. A demonstração usa o Entity Framework como o modelo de dados. O repositório exibirá os métodos persistence e data retrieval.
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 solução MvcApplication1 no local a seguir.
Linguagem de programação Local
Visual C# D:\Demofiles\CS\MvcApplication1
Visual Basic D:\Demofiles\VB\MvcApplication1
a. Na janela Start Page — Microsoft Visual Studio, no menu File, clique em Open Project ou pressione CTRL+SHIFT+O.
b. Na caixa de diálogo Open Project, na caixa Nome, digite D:\Demofiles\CS\MvcApplication1\ MvcApplication1.sln ou D:\Demofiles\VB\MvcApplication1\MvcApplication1.sln e clique em Abrir.
3. 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 botão direito em Models, aponte para Add, e clique em New Item.
b. Na caixa de diálogo 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 página Choose Model Contents, clique em Generate from database e em Next.
4. No Entity Data Model Wizard, na página 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 conexão para o banco de dados AdventureWorksLT2008R2 na instância .\SQLExpress do SQL Server®.
a. Na caixa de diálogo Choose Data Source, na lista Data source, clique em Microsoft SQL Server e em Continue.
b. Na caixa de diálogo Connection Properties, na caixa Server name, digite .\SQLExpress, na lista Select or enter a database name, clique em AdventureWorksLT2008R2 e em OK.
5. No Entity Data Model Wizard, na página Choose Your Data Connection, na lista Which data connection should your application use to connect to the database?, clique em 10714a-gen-dev\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.
• Na página Choose Your Database Objects, na lista Which database objects do you want to include in your model, expanda Tables, selecione as caixas de seleção Blog e Blogger e clique em Finish.
7. Adicione uma nova classe de repositório de dados chamada BlogRepository à pasta Models.
a. No Solution Explorer, clique com o botão direito em Models, aponte para Add, e clique em New Item.
b. Na caixa de diálogo 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 3-43
8. Adicione o seguinte código à 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 código.
[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 método Save à classe BlogRepository, que é responsável 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 código.
[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 botão direito em Blog.cs ou Blog.vb e clique em Delete.
b. Na caixa de diálogo do Microsoft Visual Studio, clique em OK.
11. Compile a solução 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 botão Fechar.
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 45
Módulo 4 Desenvolvimento de MVC Controllers
Sumário: Lição 1: Implementação de MVC Controllers 46
Lição 2: Criação de métodos de ação 51
46 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Lição 1
Implementação de MVC Controllers Sumário: Perguntas e respostas 47
Passos detalhados de demonstração 48
Leituras adicionais 50
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 47
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 ação? Pergunta: Quais são os usos para os filtros de ação?
Resposta: Os usos possíveis dos filtros de ação são tão variados quanto as ações às quais eles podem ser aplicados. Estes são alguns dos possíveis usos dos filtros de ação:
• Registro em log, para acompanhar as interações do usuário.
• “Anti-furto-de-imagem”, para evitar que imagens sejam carregadas em páginas que não estejam no seu site.
• Filtragem de rastreador da Web, para alterar o comportamento do aplicativo com base no agente de usuário do navegador.
• Localização, para definir o local.
• Ações dinâmicas, para injetar uma ação no controlador.
Pergunta: Que tipos de filtros de ação o ASP.NET MVC fornece?
Resposta: Os tipos de filtros de ação que o ASP.NET MVC fornece são:
• Autorização
• Ação
• Resultado
• Exceção
48 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Passos detalhados de demonstração Demonstração: Criando um controlador MVC Nesta demonstração, você aprenderá a criar um controlador MVC.
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. 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 diálogo 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 diálogo Create Unit Test Project, verifique se a opçãoYes, create a unit test project está selecionada e clique em OK.
3. Criar um controlador chamado BlogController na pasta Controllers. O controlador deve incluir métodos de ação para criar, atualizar, excluir e detalhar cenários.
a. No Solution Explorer, clique com o botão direito em Controllers, aponte para Add e clique em Controller.
b. Na caixa de diálogo Add Controller, na caixa Controller Name, digite BlogController, marque a caixa de seleção Add action methods for Create, Update, Delete, and Details scenarios e clique em Add.
4. Compile a solução e corrija todos os erros.
• Na janela MvcApplication1 — Microsoft Visual Studio, no menu Build, clique em Build Solution, ou pressione CTRL+SHIFT+B.
5. Feche o Visual Studio 2010.
• Na janela MvcApplication1 — Microsoft Visual Studio, clique no botão Close.
Demonstração: Usando um filtro de ação
Nesta demonstração, você aprenderá a usar um controlador que é decorado com o atributo HandleErrorAttribute.
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 solução MvcApplication1 no local a seguir.
Linguagem de programação Local
Visual C# D:\Demofiles\CS\MvcApplication1
Visual Basic D:\Demofiles\VB\MvcApplication1
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 49
a. Na janela Start Page — Microsoft Visual Studio, no menu File, clique em Open Project ou pressione CTRL+SHIFT+O.
b. Na caixa de diálogo Open Project, na caixa Nome, digite D:\Demofiles\CS\ MvcApplication1\MvcApplication1.sln ou D:\Demofiles\VB\MvcApplication1\ MvcApplication1.sln e clique em Abrir.
3. Abra o controlador HomeController.
• No Solution Explorer, expanda Controllers e clique duas vezes em HomeController.cs ou em HomeController.vb.
4. No método de ação About, lance uma exceção 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.
• No Solution Explorer, clique duas vezes em Web.config.
6. Adicione um elemento customErrors ao arquivo Web.config.
<system.web> <customErrors mode="On" /> </system.web>
7. Execute o aplicativo.
• Na janela MvcApplication1 — Microsoft Visual Studio, no menu Debug, clique em Start Without Debugging ou pressione CTRL+F5.
8. Exiba a página About.
• Na janela Home Page — Windows Internet Explorer, clique em Sobre.
Observação: A mensagem de erro, que é parte da página ou modo de exibição Error.aspx, localizada na pasta Views\Shared, é exibida.
9. Feche o Visual Studio 2010.
• Na janela MvcApplication1 — Microsoft Visual Studio, clique no botão Close.
50 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Leituras adicionais O que é um controlador MVC?
Para obter mais informações sobre MVC controllers, consulte Controller Class.
Para obter mais informações sobre roteamento, consulte Understanding the MVC Application Execution Process.
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 51
Lição 2
Criação de métodos de ação Sumário: Perguntas e respostas 52
Passos detalhados de demonstração 54
Leituras adicionais 57
52 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Perguntas e respostas O que são métodos de ação?
Pergunta: Quais são as restrições aos métodos de ação?
Resposta: Métodos de ação:
• Devem ser públicos.
• Não podem ser estáticos.
• Não podem ter parâmetros de tipo genérico não associados.
• Não podem ser sobrecarregados com base em parâmetros, a menos que tenham a ambiguidade removida com atributos como NonActionAttribute ou AcceptVerbsAttribute.
Pergunta: Como se pode evitar que um método público de um controlador seja tratado como um método de ação?
Resposta: O ASP.NET MVC trata todos os métodos públicos de uma classe de controlador como métodos de ação. Se sua classe de controlador contiver um método público e você não quiser que ele seja um método de ação, decore o método com o atributo NonActionAttribute.
Pergunta: Qual é o atributo mais curto que você pode usar para designar que um método de ação deve responder somente a um HTTP Post?
Resposta: O atributo mais curto que você pode usar para designar que um método de ação só deve responder a um HTTP Post é o atributo HttpPostAttribute.
Chamando um modo de exibição 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 53
Pergunta: Quais são as três maneiras de a classe ViewResult passar dados para o modo de exibição?
Resposta: As três maneiras abordadas nesta lição são:
• ViewData
• TempData
• Propriedade View
Recuperação de dados da solicitação Pergunta: Como é possível recuperar dados de um formulário?
Resposta: Você pode recuperar dados usando o objeto Request, os associadores de modelo e FormCollection.
Pergunta: Como é possível acessar a lista de erros que ocorreram durante a associação de modelo?
Resposta: A propriedade ModelState.Errors retorna um objeto ModelErrorCollection que contém todos os erros ocorridos durante a associação do modelo.
54 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Passos detalhados de demonstração Demonstração: Recuperação de dados da solicitação Nesta demonstração, você aprenderá a recuperar dados de RouteData, do QueryString, de um TextBox e do FormCollection.
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 solução DemoHello no local a seguir.
Linguagem de programação Local
Visual C# D:\Demofiles\CS
Visual Basic D:\Demofiles\VB
a. Na janela Start Page — Microsoft Visual Studio, no menu File, clique em Open Project ou pressione CTRL+SHIFT+O.
b. Na caixa de diálogo Open Project, na caixa Nome, digite D:\Demofiles\CS\DemoHello.sln ou D:\Demofiles\VB\DemoHello.sln e clique em Abrir.
3. 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 endereços, e pressione ENTER.
/RouteDataDemo/World
Observação: O valor da chave id, recuperado da coleção de par de chave/valor RouteData.Values, (World) é exibido.
d. Feche o Windows® Internet Explorer®.
4. 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 endereços, e pressione ENTER.
/QueryStringDemo?id=World
Observação: O valor da chave id, recuperado da coleção de pares chave-valor do objeto Request (World), é exibido.
d. Feche o Internet Explorer.
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 55
5. Recupere os dados da caixa de texto.
a. Substitua o conteúdo do controle de conteúdo Content2 no arquivo de página Index.aspx na página Views\Hello com a seguinte marcação.
[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 endereços, e pressione ENTER.
/TextBoxDemo
f. Na caixa Enter Your Name, digite seu nome e clique em Submit.
Observação: O valor inserido na caixa de texto é exibido.
g. Feche o Internet Explorer.
6. Recupere dados de um FormCollection.
a. Adicione um novo método de ação 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 endereços, e pressione ENTER.
/FormCollectionDemo
e. Na caixa Enter Your Name, digite seu nome e clique em Submit.
f. Na caixa de diálogo Preenchimento Automático, clique em No.
Observação: 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 57
Leituras adicionais Chamando um modo de exibição MVC
Para obter informações sobre a classe ActionResult, consulte ActionResult Class.
Para obter informações sobre a classe ViewResult, consulte ViewResult Class.
58 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Módulo 5 Desenvolvimento de modos de exibição MVC
Sumário: Lição 1: Implementação de modos de exibição MVC 59
Lição 2: Implementação de modos de exibição MVC fortemente tipados 63
Lição 3: Implementação de modos de exibição MVC parciais 70
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 59
Lição 1
Implementação de modos de exibição MVC Sumário: Perguntas e respostas 60
Passos detalhados de demonstração 61
Leituras adicionais 62
60 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Perguntas e respostas O que é um modo de exibição MVC?
Pergunta: Onde está localizado o modo de exibição associado ao método de ação Sample do controlador Home?
Resposta: O modo de exibição associado ao método de ação 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 diferença entre a propriedade ViewData e a propriedade TempData?
Resposta: O valor da propriedade TempData persiste somente de uma solicitação para a seguinte.
Pergunta: Qual é o atributo da diretiva Page que é usada para identificar a página mestra?
Resposta: O atributo MasterPageFile da diretiva Page identifica a página mestra.
O que são 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 não deve ser codificada novamente.
Pergunta: Em quais categorias os auxiliares HTML estão organizados?
Resposta: Estas são as categorias em que os auxiliares Html estão organizados:
• Extensões MvcForm
• Extensões Input
• Extensões Label
• Extensões Link
• Extensões Select
• Extensões TextArea
• Extensões Validation
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 61
Passos detalhados de demonstração Demonstração: Criação de um modo de exibição MVC Nesta demonstração, você aprenderá a criar um modo de exibição MVC.
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. 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 diálogo 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 diálogo Create Unit Test Project, verifique se a opção No, do not create a unit test project está selecionada e clique em OK.
3. Exclua o modo de exibição Home\About.
a. No Solution Explorer, expanda Views, expanda Home, clique com o botão direito em About.aspx e clique em Delete.
b. Na caixa de diálogo do Microsoft Visual Studio, clique em OK.
4. Crie um modo de exibição vazio chamado About na pasta Home.
a. No Solution Explorer, clique com o botão direito do mouse em Home, aponte para Add e clique em View.
b. Na caixa de diálogo Add View, na caixa View name, digite About, desmarque a caixa de seleção Create a strongly-typed view e clique em Add.
5. Compile a solução e corrija todos os erros.
• Na janela MvcApplication1 — Microsoft Visual Studio, no menu Build, clique em Build Solution, ou pressione CTRL+SHIFT+B.
6. 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.
7. Feche o Windows® Internet Explorer®.
• Na janela About — Windows Internet Explorer, clique no botão Fechar.
8. Feche o Visual Studio 2010.
• Na janela MvcApplication1 — Microsoft Visual Studio, clique no botão Fechar.
62 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Leituras adicionais O que é um modo de exibição MVC?
Para obter mais informações sobre a classe ViewPage, consulte Classe ViewPage.
Para obter mais informações sobre a classe ViewDataDictionary, consulte Classe ViewDataDictionary Class.
Para obter mais informações sobre a classe TempDataDictionary, consulte Classe TempDataDictionary.
O que são auxiliares HTML?
Para obter mais informações sobre a classe HtmlHelper, consulte Classe HtmlHelper.
Para obter mais informações sobre como renderizar um modo de exibição usando auxiliares HTML, consulte Rendering a Form in ASP.NET MVC Using HTML Helpers.
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 63
Lição 2
Implementação de modos de exibição MVC fortemente tipados
Sumário: Perguntas e respostas 64
Passos detalhados de demonstração 65
Leituras adicionais 69
64 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Perguntas e respostas O que é um modo de exibição fortemente tipado?
Pergunta: De qual classe o modo de exibição fortemente tipado herda?
Resposta: Um modo de exibição fortemente tipado herda de ViewPage<(Of <(TModel>)>)
Pergunta: Qual a maneira mais fácil de criar um modo de exibição fortemente tipado?
Resposta: A maneira mais fácil de criar um modo de exibição fortemente tipado é usar a caixa de diálogo Add View.
Pergunta: Quais são as vantagens de usar modos de exibição fortemente tipados?
Resposta: Os modos de exibição fortemente tipados sabem exatamente que tipo de dado é esperado, e o Microsoft IntelliSense® está disponível.
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 65
Passos detalhados de demonstração Demonstração: Criando um modo de exibição fortemente tipado Nesta demonstração, você verá como criar um modo de exibição 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. 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 diálogo 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 diálogo Create Unit Test Project, verifique se a opção No, do not create a unit test project está selecionada e clique em OK.
3. 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 botão direito do mouse em Models, aponte para Add e clique em Class.
b. Na caixa de diálogo 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 conteúdo pelo código 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 solução e corrija todos os erros.
• Na janela StronglyTypedView — Microsoft Visual Studio, no menu Build, clique em Build Solution ou pressione CTRL+SHIFT+B.
5. Crie um modo de exibição fortemente tipado chamado Person na pasta Views\Home. O modo de exibição deve incluir o conteúdo padrão para a operação Create.
a. No Solution Explorer, expanda Views, clique com o botão direito em Home, aponte para Add e clique em View.
b. [Visual C#] Na caixa de diálogo Add View, na caixa View name, digite Person, marque a caixa de seleção 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 67
c. [Visual Basic] Na caixa de diálogo Add View, na caixa View name, digite Person, marque a caixa de seleção 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.
6. Altere o TextBox para exibir a propriedade Gender para o modelo para uma DropDownList.
a. Substitua a seguinte marcação e o código.
[Visual C#] <%: Html.TextBoxFor(model => model.Gender) %>
[Visual Basic] <%: Html.TextBoxFor(Function(model) model.Gender) %>
b. Com a marcação e o código 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 método de ação 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 código.
[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. 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.
9. Navegue diretamente para o modo de exibição Person, usando a seguinte rota.
Home/Person
• Na janela Home Page — Windows Internet Explorer, na barra de endereços, acrescente a seguinte URL e pressione ENTER.
Home/Person
10. Feche o Internet Explorer.
• Na janela Person — Windows Internet Explorer, clique no botão Fechar.
11. Feche o Visual Studio 2010.
• Na janela StronglyTypedView — Microsoft Visual Studio, clique no botão Fechar.
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 69
Leituras adicionais O que é um modo de exibição fortemente tipado?
Para obter mais informações sobre a classe HtmlHelper(TModel), consulte Classe HtmlHelper(TModel).
70 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Lição 3
Implementação de modos de exibição MVC parciais Sumário: Perguntas e respostas 71
Passos detalhados de demonstração 72
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 71
Perguntas e respostas O que é um modo de exibição parcial?
Pergunta: Qual é o auxiliar HTML usado para renderizar um modo de exibição parcial?
Resposta: Html.RenderPartial é usado para renderizar um modo de exibição parcial.
Pergunta: Em qual tipo de arquivo o modo de exibição parcial armazena sua marcação?
Resposta: Um modo de exibição parcial armazena sua marcação em um controle de usuário ASP.NET (arquivo .ascx).
72 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Passos detalhados de demonstração Demonstração: Criando um modo de exibição MVC parcial Nesta demonstração, você verá como criar um modo de exibição MVC parcial.
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 solução StronglyTypedView usada na demonstração 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 diálogo Open Project, na caixa Nome, digite D:\Demofiles\CS\ StronglyTypedView\StronglyTypedView.sln ou D:\Demofiles\VB\StronglyTypedView\ StronglyTypedView.sln e clique em Abrir.
3. Adicione um modo de exibição parcial fortemente tipado chamado Partial à pasta Views\Home, usando a caixa de diálogo Add View. O modo de exibição deve ter o conteúdo padrão para o modo de exibição Create, e o modo de exibição deve ser baseado na classe Person.
a. No Solution Explorer, expanda Views, clique com o botão direito do mouse em Home, aponte para Add e clique em View.
b. [Visual C#] Na caixa de diálogo Add View, na caixa View name, digite Partial, marque as caixas de seleção 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 diálogo Add View, na caixa View name, digite Partial, marque as caixas de seleção 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 exibição vazio chamado Create à pasta Views\Home, usando a caixa de diálogo Add View.
a. No Solution Explorer, expanda Views, clique com o botão direito do mouse em Home, aponte para Add e clique em View.
b. Na caixa de diálogo Add View, na caixa View name, digite Create, desmarque as caixas de seleção 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 73
5. Incorpore o modo de exibição Partial no modo de exibição Create como parte do controle Content2 Content, usando o método Html.RenderPartial.
[Visual C#] <% Html.RenderPartial("Partial"); %>
[Visual Basic] <% Html.RenderPartial("Partial") %>
• Adicione o código a seguir ao modo de exibição Create, no controle Content2 Content, imediatamente depois do elemento h2.
[Visual C#] <% Html.RenderPartial("Partial"); %>
[Visual Basic] <% Html.RenderPartial("Partial") %>
6. 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.
7. Navegue diretamente para o modo de exibição Person, usando a seguinte rota.
Home/Person
• Na janela Home Page — Windows Internet Explorer, na barra de endereços, acrescente a seguinte URL e pressione ENTER.
Home/Person
8. Feche o Internet Explorer.
• Na janela Person — Windows Internet Explorer, clique no botão Fechar.
9. Feche o Visual Studio 2010.
• Na janela StronglyTypedView — Microsoft Visual Studio, clique no botão Fechar.
74 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Módulo 6 Projetando a detectabilidade
Sumário: Lição 1: SEO (Search Engine Optimization) 75
Lição 2: Arquivos de detectabilidad 80
Lição 3: Uso do roteamento ASP.NET 85
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 75
Lição 1
SEO (Search Engine Optimization) Sumário: Perguntas e respostas 76
Passos detalhados de demonstração 77
76 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Perguntas e respostas
Visão geral do Search Engine Optimization Pergunta: Ao calcular o esforço para concluir um site, você geralmente inclui itens de SEO (otimização do mecanismo de pesquisa)?
Resposta: Pode variar.
Pergunta: De quais atividades você participou para melhorar a classificação de pesquisa de um site?
Resposta: Pode variar.
Pergunta: Como os padrões de tráfego foram alterados depois que você concluiu as atividades de SEO?
Resposta: Pode variar.
Componentes do IIS SEO Toolkit Pergunta: Você encontrou um site que não tinha um arquivo robots.txt preciso? Que erros foram cometidos? O tráfego melhorou depois que o arquivo robots.txt foi corrigido?
Resposta: Pode variar.
Pergunta: Você encontrou um site que não tinha um arquivo sitemap.xml preciso? Em caso afirmativo, como isso afetou o uso e a percepção do site?
Resposta: Pode variar.
Demonstração: Análise de um site usando o IIS SEO Toolkit Pergunta: Quando seria o período de tempo ideal em um projeto para a execução da Ferramenta Site Analysis?
Resposta: Após o desenvolvimento inicial e após a implantação.
Pergunta: Qual recurso do relatório pode ser usado para evitar problemas de produção de modo proativo?
Resposta: Violações.
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 77
Passos detalhados de demonstração Demonstração: Análise 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 botão direito do mouse em Search Engine Optimization (SEO) Toolkit 1.0 e clique em Executar como Administrador.
b. Na caixa de diálogo Controle de Conta de Usuário, na caixa Senha, digite Pa$$w0rd e clique em Sim.
2. No Gerenciador do Serviços de Informações da Internet (IIS), no painel direito, na seção Site Analysis, clique em Create a new analysis.
3. Na caixa de diálogo New Analysis, na caixa Name, digite Default Web Site analysis, na caixa Start URL, digite http://localhost e clique em OK.
Observação: É possível rastrear qualquer site que esteja acessível ao público na Internet.
A caixa de diálogo New Analysis Configurações avançadas
Maximum Number of Links: Controla o número de links a serem processados e baixados de um site durante o rastreamento. Um link é qualquer URL que seja usada na marcação de uma página, incluindo hiperlinks, referências a arquivos de imagens, arquivos CSS e arquivos de script java. O aumento desse número aumenta o tamanho do arquivo de relatórios e torna o processo de rastreamento mais demorado.
Maximum Download Size per Link: Controla o número de quilobytes de conteúdo a serem baixados por link. O aumento desse número aumenta o tamanho do conteúdo armazenado em cache pela ferramenta Site Analysis no sistema de arquivos local.
Ignore ‘nofollow’ attribute: O atributo nofollow e a marca meta nofollow são usados para informar aos rastreadores do mecanismo de pesquisa para não seguir certos hiperlinks (ou todos eles) na página. Essa é uma forma de proteção contra spam em comentários de blog. Se as páginas no site usarem esse atributo, os hiperlinks nessas páginas não serão processados, nem analisados durante a análise do site. No entanto, os links para recursos como imagens, arquivos CSS e java script ainda serão processados. Se for necessário analisar os hiperlinks que usam esse atributo, utilize essa configuração para ignorar os atributos nofollow e as marcas meta.
Ignore ‘noindex’ meta tag: — Usado para informar aos rastreadores do mecanismo de pesquisa para não indexar o conteúdo da página. Se as páginas no site usarem essa marca meta, violações não serão procuradas no conteúdo dessas páginas. Se for necessário analisar até mesmo as páginas que usam esse atributo, utilize essa configuração para ignorar a marca meta noindex.
External Links: Use esta lista suspensa quando o site tiver subdomínios ou quando você quiser executar uma análise em um determinado diretório em um site. Essa configuração controla se os subdomínios e/ou os subdiretórios devem ser tratados como links internos ou externos.
78 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Editar configurações de recursos
Maximum Number of Concurrent Requests: Controla o número de solicitações simultâneas que o rastreador da Web fará.
Reports Directory: Especifica o diretório no sistema de arquivos local em que todos os dados rastreados e o conteúdo do site em cache é armazenado.
Observação: Dois números são relatados durante a análise.
Links Processed: O número total de links que foram rastreados e baixados pelo rastreador da Web.
Total Links: O número total de links encontrados durante o rastreamento do site.
Interpretando o relatório da Site Analysis No Gerenciador do Serviços de Informações da Internet (IIS), na seção Site Analysis Report, você pode exibir algumas páginas com detalhes de relatório. Para acessar a seção 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 botão direito do mouse em Search Engine Optimization (SEO) Toolkit e, em seguida, clique em Executar como Administrador.
b. Na caixa de diálogo Controle de Conta de Usuário, na caixa Senha, digite Pa$$w0rd e clique em Sim.
2. No Gerenciador do Serviços de Informações da Internet (IIS), no painel direito, na seção Análise do Site, clique em Exibir relatórios existentes.
3. No painel Site Analysis, clique duas vezes em qualquer um dos relatórios listados.
Observação: Na seção Site Analysis Report, use as guias verticais na esquerda do Dashboard para acessar as informações a seguir.
Página de Resumo A página de resumo da análise de site apresenta uma visão geral de todas as violações relacionadas a SEO e dos problemas encontrados no site analisado. Além disso, ela contém um grande conjunto de relatórios predefinidos sobre o conteúdo e a estrutura do site.
Você pode analisar cada item separadamente no relatório clicando duas vezes nele ou usando o comando View Group Details no menu de contexto. Para abrir um determinado relatório em uma página de consulta separada, use o comando do menu de contexto Open Query.
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 79
Página de consulta A abertura de um relatório predefinido da página de resumo resultará em uma nova página de consulta.
A página de consulta é usada para emitir consultas referentes aos dados da análise do site que foram coletados durante o rastreamento do site. Na captura de tela, a consulta é usada para obtenção de todas as páginas que referenciam imagens sem especificar um atributo alt no elemento HTML img.
Você pode executar um conjunto de ações, acessível a partir do menu de contexto, para cada item no painel de resultados da consulta. As ações são as seguintes:
View Details: Esta opção abre uma caixa de diálogo, que pode ser usada para obter informações detalhadas sobre o item. Especificamente, você pode visualizar os detalhes de violação e as ações corretivas sugeridas.
Além disso, os dados de resposta reais estarão disponíveis se você precisar investigar as causas da violação relatada depois. Por exemplo, se você quiser descobrir onde essa violação ocorreu no HTML de resposta, escolha a guia Content. Isso abrirá o conteúdo da resposta com a seção afetada da marcação realçada.
View in Browser: Se você clicar com o botão 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 botão direito do mouse em uma URL, também poderá selecionar View Pages Linking to This Page. Essa opção abre uma nova página de consulta que mostra todas as páginas no site que referenciam a URL do item selecionado. Esse tipo de relatório é útil quando você deseja descobrir quais páginas poderão ser afetadas se você alterar uma determinada URL no site.
View Pages Linked by This Page: Esta opção abre uma nova página de consulta que mostra todas as URLs e os recursos que a marcação HTML da URL selecionada atualmente referencia.
View Violations in This Page: Esta opção abre uma nova página de consulta que mostra todas as violações encontradas na página da URL selecionada.
View in Hierarchy: Esta opção abre uma página de exibição de hierarquia que consiste nas seguintes partes:
• URLs de todas as páginas que levam à página selecionada.
• A URL da página selecionada.
• URLs de todas as páginas e recursos referenciados pela página selecionada.
View Routes to this Page: Esta opção abre uma nova página que exibe as 5 menores rotas exclusivas da página inicial de análise para a página selecionada atualmente.
Cada rota é mostrada com a página inicial na parte inferior e as páginas subsequentes acima, com a página selecionada no topo. Esse relatório pode ser usado para analisar o modo como os visitantes podem acessar uma determinada página no site e se há páginas desnecessárias que podem ser eliminadas para que os usuários descubram a página selecionada mais facilmente.
Word Analysis: Este recurso pode ser usado para se ter uma ideia das palavras mais comumente usadas no conteúdo de uma página. Elas podem ser usadas como palavras-chave para descrever com precisão o conteúdo da página da Web para mecanismos de pesquisa.
As palavras usadas com mais frequência em uma página serão exibidas, o que pode dar uma ideia de quais palavras-chave escolher para essa página. Além disso, os textos de links que referenciam essa página são listados na parte inferior da caixa de diálogo. Isso ajuda a verificar se o texto âncora usado nesses links descreve com precisão o conteúdo da página.
80 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Lição 2 Arquivos de detectabilidade
Sumário: Perguntas e respostas 81
Passos detalhados de demonstração 82
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 81
Perguntas e respostas O que são arquivos de robôs?
Pergunta: Você já comandou ou testou conteúdo em um ambiente de produção em que não queria que um mecanismo de pesquisa indexasse?
Resposta: Pode variar.
Pergunta: Cite algumas desvantagens de permitir que rastreadores da Web indexem conteúdo que não esteja pronto para produção?
Resposta: Os mecanismos de pesquisa coletam informações que ainda não estão prontas e direcionam os usuários a elas.
O que é o Arquivo de Mapa de Site? Pergunta: Quando você geralmente instala um arquivo de mapa de site?
Resposta: No início de um projeto.
82 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Passos detalhados de demonstração Demonstração: Criando um arquivo de robôs Nesta demonstração, você verá como criar um arquivo robots.txt.
1. Abra o Gerenciador do Serviços de Informações da Internet (IIS) como administrador.
a. No menu Iniciar, clique em Painel de Controle.
b. No Painel de Controle, clique em Sistema e Segurança e em Ferramentas Administrativas.
c. Clique com o botão direito do mouse em Gerenciador do Serviços de Informações da Internet (IIS) e clique em Executar como administrador.
2. Na caixa de diálogo Controle de Conta de Usuário, na caixa Senha, digite Pa$$w0rd e pressione ENTER.
3. Selecione o Default Web site.
• No painel Conexões, expanda 10714A-GEN-DEV (10714A-GEN-DEV\Admin), expanda Sites e clique em Default Web site.
4. Abra o recurso Search Engine Optimization.
• No Gerenciador do Serviços de Informações da Internet (IIS), no painel intermediário, na seção Gerenciamento, clique duas vezes em Search Engine Optimization.
5. Exiba as regras existentes.
• No painel Search Engine Optimization, na seção Robots Exclusion, clique em View existing rules.
Observação: Atualmente não há regras e também não há nenhum arquivo robots.txt.
6. Adicione um arquivo de mapa de site.
a. No painel Actions, na seção Sitemap Locations, clique em Add Sitemaps.
b. Na caixa de diálogo Add Sitemaps, na lista URL Paths, selecione o Default Web Site e clique em OK.
Observação: Atualmente, não há nenhum arquivo de mapa de site, mas essa ação criará o arquivo robots.txt.
7. Abra o arquivo robots.txt.
• No painel Actions, na seção Robots, clique no arquivo Open Robots.txt.
Observação: O arquivo robots.txt é aberto no Bloco de Notas. Atualmente, ele contém apenas uma referência ao mapa de site no local padrão do site padrão.
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 83
A seguir, são apresentados exemplos do que você pode adicionar a um arquivo robots.txt.
• Este exemplo não permite todos os spiders da Web para todo o site:
# Make changes for all web spiders User-agent: * Disallow: /
• O exemplo a seguir não 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 não 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.
• Na janela robots.txt — Bloco de Notas, clique no botão Fechar.
9. Feche o Gerenciador do Serviços de Informações da Internet (IIS).
• Na janela do Gerenciador do Serviços de Informações da Internet (IIS), clique no botão Fechar.
84 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
10. Feche as Ferramentas Administrativas.
• Na janela Painel de Controle\Sistema e Segurança\Ferramentas Administrativas, clique no botão Fechar.
11. Feche Sistema e Segurança.
• Na janela Painel de Controle\Sistema e Segurança, clique no botão Fechar.
Demonstração: Criação de um arquivo de mapa do site
Criação de um arquivo de mapa do site 1. Abra o Gerenciador do Serviços de Informações da Internet (IIS) como administrador.
• No menu Iniciar, clique em Painel de Controle.
2. No Painel de Controle, clique em Sistema e Segurança e, em seguida, clique em Ferramentas Administrativas.
3. Clique com o botão direito do mouse em Gerenciador do Serviços de Informações da Internet (IIS) e, em seguida, clique em Executar como administrador.
4. Na caixa de diálogo Controle de Conta de Usuário, na caixa Senha, digite Pa$$w0rd e pressione ENTER.
5. Abra o recurso Search Engine Optimization.
• No painel direito, na seção Gerenciamento Group, clique duas vezes em Search Engine Optimization.
6. Crie um novo mapa de site para o site padrão, em um arquivo denominado Sitemap.xml. Defina a frequência de alteração como diária, não registre a data e a hora da última modificação e defina a prioridade como 1.
a. No painel the Search Engine Optimization, na seção Sitemaps and Sitemap Indexes, clique em Create a new sitemap.
b. Na caixa de diálogo Choose Site, na lista Site, clique em Default Web Site e em OK.
c. Na caixa de diálogo Add Sitemap, na caixa File Name, digite Sitemap.xml e clique em OK.
d. Na caixa de diálogo Add URLs, na lista URL Paths, clique em Default Web Site e em OK.
7. Feche o Gerenciador do Serviços de Informações da Internet (IIS).
• Na janela do Gerenciador do Serviços de Informações da Internet (IIS), clique no botão Fechar.
8. Feche Ferramentas Administrativas.
• Na janela Painel de Controle\Sistema e Segurança\Ferramentas Administrativas, clique no botão Fechar.
9. Feche Sistema e Segurança.
• Na janela Painel de Controle\Sistema e Segurança, clique no botão Fechar.
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 85
Lição 3 Uso do roteamento ASP.NET
Sumário: Perguntas e respostas 86
Passos detalhados de demonstração 87
86 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Perguntas e respostas Como funciona o roteamento ASP.NET
Pergunta: Quais são as vantagens de usar URLs roteadas em relação a URLs padrão?
Resposta: As URLs são mais simples e podem ser digitadas, copiadas/coladas ou usadas em mecanismos de pesquisa com mais facilidade.
Demonstração: Uso do roteamento ASP.NET com páginas de Web Forms Pergunta: Como o uso do Roteamento ASP.NET melhora a manutenção a longo prazo de um aplicativo da Web?
Resposta: As alterações em sites podem ser feitas facilmente por meio da atualização de tabelas de
roteamento.
Pergunta: Qual a sua percepção de um site quando você recebe um erro HTTP 404?
Resposta: Pode variar.
Uso do roteamento ASP.NET com páginas do MVC Pergunta: Como o roteamento interno MVC aprimora os resultados da consulta do mecanismo de pesquisa?
Resposta: Ele produz URLs amigáveis para o mecanismo de pesquisa.
Pergunta: Como o roteamento interno MVC aprimora a manutenção de um site?
Resposta: É fácil adicionar ou mover modos de exibição simplesmente modificando a rota correspondente.
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 87
Passos detalhados de demonstração Demonstração: Uso do roteamento ASP.NET com páginas 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 solução WebFormsRouting no local a seguir.
Linguagem de programação Local
Visual C#® D:\Demofiles\CS
Visual Basic® D:\Demofiles\VB
a. Na janela Start Page — Microsoft Visual Studio, no menu File, clique em Open Project ou pressione CTRL+SHIFT+O.
b. Na caixa de diálogo Open Project, na caixa Nome, digite D:\Demofiles\CS\ WebFormsRouting.sln ou D:\Demofiles\VB\WebFormsRouting.sln e clique em Abrir.
3. Adicione uma referência ao assembly System.Web.Routing.
a. No Gerenciador de Soluções, clique com o botão direito do mouse em WebFormsRouting clique em Add Reference.
b. Na caixa de diálogo Add Reference, clique em .NET.
c. Na lista, clique em System.Web.Routing e em OK.
4. Abra o arquivo Global.asax.
• No Solution Explorer, clique duas vezes em Global.asax.
5. Importe o namespace System.Web.Routing para o arquivo de código Global.asax.
• No início do arquivo de código Global.asax.cs ou Global.asax.vb, adicione o código a seguir.
[Visual C#] using System.Web.Routing;
[Visual Basic] Imports System.Web.Routing
6. Adicione um método 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 código 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 método 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 código Search.aspx.cs ou Search.aspx.vb.
• No Gerenciador de Soluções, clique com o botão direito do mouse em Search.aspx e clique em View Code.
9. Modifique o método 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 página Search usando a rota a seguir.
search/My Search Term
• Na janela Home Page — Windows Internet Explorer, na barra de endereços, 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 botão Close.
13. Feche o Visual Studio 2010.
• Na janela RouteConstraints — Microsoft Visual Studio, clique no botão Close.
90 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Demonstração: Criação de restrições 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 solução RouteConstraints no local a seguir.
Linguagem de programação Local
Visual C# D:\Demofiles\CS
Visual Basic D:\Demofiles\VB
a. Na janela Start Page — Microsoft Visual Studio, no menu File, clique em Open Project ou pressione CTRL+SHIFT+O.
b. Na caixa de diálogo Open Project, na caixa Nome, digite D:\Demofiles\CS\ RouteConstraints.sln ou D:\Demofiles\VB\RouteConstraints.sln e clique em Abrir.
3. Abra o arquivo Global.asax.
• No Solution Explorer, clique duas vezes em Global.asax.
4. Adicione a rota a seguir ao método 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 método RegisterRoutes, adicione o código 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 código:
[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 método de ação 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 exibição Product/Details usando a rota a seguir.
product/6
• Na janela Home Page — Windows Internet Explorer, na barra de endereços, anexe o texto a seguir.
product/6
Observação: Uma mensagem que diz Details for product with ID 3 é mostrada agora.
9. Navegue diretamente para o modo de exibição Product/Details usando a rota a seguir.
product/paper
• Na janela Home Page — Windows Internet Explorer, na barra de endereços, anexe o texto a seguir.
product/paper
Observação: 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 dicionário de parâmetros contém uma entrada nula para o parâmetro ‘productId’ do tipo não anulável ‘System.Int32’ para o método ‘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 parâmetro opcional deve ser um tipo de referência, um tipo anulável ou deve ser declarado como um parâmetro 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 botão 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 93
[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 código:
[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.
94 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
13. Navegue diretamente para o modo de exibição Product/Details usando a rota a seguir.
product/paper
• Na janela Home Page — Windows Internet Explorer, na barra de endereços, anexe o texto a seguir.
product/paper
Observação: Uma mensagem de erro é mostrada agora.
The resource cannot be found. (Não é possível encontrar o recurso)
14. Feche o Internet Explorer.
• Na janela The resource cannot be found. — Windows Internet Explorer, clique no botão Close.
15. Feche o Visual Studio 2010.
• Na janela RouteConstraints — Microsoft Visual Studio, clique no botão Close.
Demonstração: Criação de rotas personalizadas 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 solução CustomRoute no local a seguir.
Linguagem de programação Local
Visual C# D:\Demofiles\CS
Visual Basic D:\Demofiles\VB
a. Na janela Start Page — Microsoft Visual Studio, no menu File, clique em Open Project ou pressione CTRL+SHIFT+O.
b. Na caixa de diálogo Open Project, na caixa Nome, digite D:\Demofiles\CS\CustomRoute.sln ou D:\Demofiles\VB\CustomRoute.sln e clique em Abrir.
3. Abra o arquivo Global.asax.
• No Solution Explorer, clique duas vezes em Global.asax.
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 95
4. Adicione a rota a seguir ao método 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 método RegisterRoutes, adicione o código 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 código:
[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.
96 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
6. Navegue diretamente para o modo de exibição Blog/Archive usando a rota a seguir.
blog/12-25-2010
• Na janela Home Page — Windows Internet Explorer, na barra de endereços, anexe o texto a seguir.
blog/12-25-2010
7. Feche o Internet Explorer.
• Na janela Blog Archive — Windows Internet Explorer, clique no botão Close.
8. Feche o Visual Studio 2010.
• Na janela RouteConstraints — Microsoft Visual Studio, clique no botão Close.
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 97
Módulo 7 Escrevendo código de servidor para formulários da Web
Sumário: Lição 3: Localização de um aplicativo Web 98
98 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Lição 3 Localização de um aplicativo Web
Sumário: Passos detalhados de demonstração 99
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 99
Passos detalhados de demonstração Demonstração: Localizar um aplicativo Web Nesta demonstração, você verá como localizar um aplicativo Web.
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 solução Localization no local a seguir.
Linguagem de programação Local
Visual C#® D:\Demofiles\CS
Visual Basic® D:\Demofiles\VB
a. Na janela Start Page — Microsoft Visual Studio, no menu File, clique em Open Project ou pressione CTRL+SHIFT+O.
b. Na caixa de diálogo Open Project, na caixa Nome, digite D:\Demofiles\CS\Localization.sln ou D:\Demofiles\VB\Localization.sln e clique em Abrir.
3. Abra Default.aspx.
• No Gerenciador de Soluções, clique duas vezes em Default.aspx.
4. Adicione um controle de servidor Label após o elemento h2, com os atributos a seguir.
Atributo Valor
ID HelloLabel
Text Hello in English
a. Coloque o cursor após 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 exibição Design.
• Na janela Default.aspx, clique em Design.
6. Gere recursos locais usando o comando Generate Local Resource no menu Tools.
• Na janela Localization — Microsoft Visual Studio, no menu Tools, clique em Generate Local Resource.
7. Alterne para o modo Código-fonte.
• Na janela Default.aspx, clique em Source.
8. Observe os atributos recém-adicionados, meta:resourcekey, para a página 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 Soluções, 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 botão 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 botão direito do mouse em Default.aspx.resx e clique em Copiar.
b. No Solution Explorer, clique com o botão direito do mouse em App_LocalResources e clique em Paste.
c. No Solution Explorer, na pasta App_LocalResources, clique com o botão 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 botão Close.
20. Em Default.aspx, localize o texto Localization embutido em código 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 automático e um controle de servidor Literal chamado DescriptionLiteral, após 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 localizável, 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 botão 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 botão 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 diálogo Add New Item, no painel intermediário, clique em Resources File, na caixa Nome, digite WebResources.resx e clique em Add.
Observação: 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 botão 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 botão direito do mouse em WebResources.resx e clique em Copy.
b. No Solution Explorer, clique com o botão direito do mouse em App_GlobalResources e clique em Paste.
c. No Solution Explorer, na pasta App_LocalResources, clique com o botão direito do mouse em Cópia 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 Soluções, 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 Fußzeile....
• No Resource Editor, na linha com o valor FooterText na coluna Name, na caixa Value, digite Dies ist der Fußzeile....
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 botão Close.
31. Adicione um elemento h3 e, dentro do elemento h3, adicione um controle de servidor Label chamado FooterLabel, após 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 103
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.
<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 Formulário da Web Default.aspx exibe texto em inglês.
35. Mostre a home page Localization em alemão, alterando a preferência de idioma na caixa de diálogo Opções da Internet.
a. Na janela Home Page — Windows Internet Explorer, no menu Ferramentas, clique em Opções da Internet.
b. Na caixa de diálogo Opções da Internet, clique em Idiomas.
c. Na caixa de diálogo Preferência de Idioma, clique em Add.
d. Na caixa de diálogo Adicionar Idioma, na lista Idioma, clique em Alemão (Alemanha) [de-DE] e em OK.
e. Na caixa de diálogo Preferência de Idioma, na lista Idioma, clique em Alemão (Alemanha) [de-DE] e, em seguida, clique em Mover para cima.
36. Na caixa de diálogo Preferência de Idioma, clique em OK.
37. Na caixa de diálogo Opções da Internet, clique em OK.
38. Atualize a página no Windows® Internet Explorer®.
• Na janela Home Page — Windows Internet Explorer, pressione F5.
Observação: Agora, a página deverá estar em alemão.
39. Feche o Internet Explorer.
• Na janela Home Page — Windows Internet Explorer, clique no botão Fechar.
40. Feche o Visual Studio 2010.
• Na janela Localization — Microsoft Visual Studio, clique no botão Fechar.
104 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Módulo 8 Otimização do gerenciamento de dados para formulários da Web
Sumário: Lição 1: Gerenciamento de dados com o LINQ to Entities 105
Lição 2: Uso de controles de fonte de dados 110
Lição 3: Usando o ASP.NET Dynamic Data 114
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 105
Lição 1 Gerenciamento de dados com o LINQ to Entities
Sumário: Perguntas e respostas 106
Passos detalhados de demonstração 107
Leituras adicionais 109
106 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Perguntas e respostas Visão 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 Serviços de Objeto para interagir com o modelo de dados de entidade como objetos CLR.
Visão geral dos Serviços de Objeto do ADO.NET Entity Framework Pergunta: O que são entidades POCO?
Resposta: As entidades POCO são tipos de CLR “básicos”.
O Modelo de Dados de Entidade Pergunta: Qual é a primeira etapa da criação de um Modelo de Dados de Entidade?
Resposta: É necessário primeiramente definir as entidades e as relações, se houver, em um esquema de design.
Demonstração: Criação 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 inglês serão usadas para singularizar todos os nomes EntityType, pluralizar todos os nomes EntitySet, singularizar o nome de cada NavigationProperty que retornar no máximo uma entidade e pluralizar o nome de cada NavigationProperty que retornar mais de uma entidade.
Programação 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 código?
Resposta: É necessário criar uma instância do tipo derivado ObjectContext.
Operações CRUD usando o LINQ to Entities Pergunta: Qual método é usado para enviar as alterações locais para o banco de dados?
Resposta: O método SaveChanges é usado para enviar as alterações locais ao banco de dados.
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 107
Passos detalhados de demonstração Demonstração: Criação de um modelo de dados de entidade Esta demonstração 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. Abra a solução 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 diálogo Open Project, na caixa Nome, digite D:\Demofiles\VB\EDM.sln ou D:\Demofiles\CS\EDM.sln e clique em Abrir.
3. Adicione um projeto ADO.NET Entity Data Model denominado AdventureWorks.edmx.
a. No Solution Explorer, clique com o botão direito do mouse em EDM, aponte para Add e clique em New Item.
b. Na caixa de diálogo Add New Item — EDM, no painel esquerdo, clique em Data e, em seguida, no painel intermediário, 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 página Choose Model Contents, clique em Generate from database e, em seguida, clique em Next.
e. Na página Choose Your Data Connection, clique em New Connection.
f. Se a caixa de diálogo Choose Data Source abrir, na lista Data source, clique em Microsoft SQL Server e, em seguida, clique em Continue.
g. Na caixa de diálogo 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 página Choose Your Data Connection, visualize as configurações atualizadas, derivadas do banco de dados selecionado e clique em Next.
i. Na página 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 seleção BuildVersion (dbo) e clique em Finish.
Observação: Se a caixa Pluralize or singularize generated object names estiver selecionada, o assistente usará regras do idioma inglês 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 máximo, 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. Reveja o mapeamento.
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.
4. Feche o item ADO.NET Entity Data Model.
• Na janela AdventureWorks.edmx, clique no botão Close.
5. Feche o Visual Studio 2010.
a. Na janela EDM — Microsoft Visual Studio, clique no botão Close.
b. Na caixa de diálogo Microsoft Visual Studio, clique em Yes.
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 109
Leituras adicionais Visão geral do LINQ to Entities
Para obter mais informações sobre o ADO.NET Entity Framework, consulte ADO.NET Entity Framework.
Visão geral dos Serviços de Objeto do ADO.NET Entity Framework
Para obter mais informações sobre entidades e proxies POCO, consulte Working with POCO Entities (Entity Framework) (Trabalhando com entidades POCO (Entity Framework)).
Para obter mais informações sobre entidades de autorrastreamento, consulte Working with Self-Tracking Entities (Entity Framework) (Trabalhando com entidades de autorrastreamento (Entity Framework)).
Para obter mais informações sobre o Entity SQL, consulte Entity SQL Overview (Visão geral do Entity SQL).
O Modelo de Dados de Entidade
Para obter mais informações sobre a especificação do Modelo de Dados de Entidade, consulte EDM Specifications (Especificações do EDM).
110 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Lição 2 Uso de controles de fonte de dados
Sumário: Perguntas e respostas 111
Leituras adicionais 112
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 111
Perguntas e respostas Tipos de controles de fonte de dados
Pergunta: Qual controle de fonte de dados você deveria usar para gerenciar a navegação no site?
Resposta: Você deve usar o controle SiteMapDataSource para gerenciar a navegação no site.
Recursos de controles de fonte de dados Pergunta: Qual propriedade do controle LinqDataSource é necessário definir para ativar a classificação?
Resposta: É necessário definir a propriedade AllowSorting com o valor true para habilitar a classificação.
Técnicas avançadas do controle GridView Pergunta: Qual elemento XML é usado para personalizar a exibição de uma fonte de dados vazia no controle GridView?
Resposta: O elemento EmptyDataTemplate é usado para personalizar a exibição de uma fonte de dados vazia no controle GridView.
Passo a passo: criando um TemplateField de um GridView Pergunta: Qual caixa de diálogo pode ser usada para criar um objeto TemplateField para o controle GridView?
Resposta: Use a caixa de diálogo 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 aparência de um item editado no momento?
Resposta: O EditItemTemplate é usado para especificar a aparência 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.
112 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Leituras adicionais Tipos de controles de fonte de dados
Para obter mais informações sobre o controle AccessDataSource, consulte AccessDataSource Web Server Control Overview (Visão geral do controle de servidor Web AccessDataSource).
Para obter mais informações sobre o controle ObjectDataSource, consulte Visão geral sobre o controle de servidor Web ObjectDataSource.
Para obter mais informações sobre o controle SiteMapDataSource, consulte Visão Geral sobre o Controle SiteMapDataSource do Servidor Web.
Para obter mais informações sobre o controle SqlDataSource, consulte Visão geral sobre o controle de servidor Web SqlDataSource.
Para obter mais informações sobre o controle XmlDataSource, consulte Visão Geral sobre o Controle de Servidor Web XmlDataSource.
Recursos de controles de fonte de dados
Para obter mais informações sobre vinculação usando controles de fonte de dados, consulte Binding to Data Using a Data Source Control (Efetuando a vinculação a dados usando um controle de fonte de dados).
Para obter mais informações sobre classificação usando controles de fonte de dados, consulte Sorting Data with Data Source Controls (Classificando dados com controles de fonte de dados).
Para obter mais informações sobre a filtragem usando controles de fonte de dados, consulte Filtragem de dados usando controles de fonte de dados.
Para obter mais informações sobre filtragem usando o controle XmlDataSource, consulte Filtering Data Using the XmlDataSource Control (Filtrando dados com o controle XmlDataSource).
Para obter informações sobre os tipos de parâmetros que podem ser usados na coleção FilterParameters, consulte Using Parameters with Data Source Controls (Usando parâmetros com controles de fonte de dados).
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 113
Técnicas avançadas do controle GridView
Para obter mais informações sobre a classe PagerSettings, consulte PagerSettings Class (Classe PagerSettings).
Como usar os controles ListView e DetailsView
Para obter mais informações sobre o controle ListView, consulte Visão Geral sobre o Controle do Servidor Web ListView.
Para obter mais informações sobre o controle DetailsView control, consulte Visão 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).
114 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Lição 3 Usando o ASP.NET Dynamic Data
Sumário: Perguntas e respostas 115
Passos detalhados de demonstração 116
Leituras adicionais 119
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 115
Perguntas e respostas O que são Dados Dinâmicos ASP.NET?
Pergunta: O que o scaffolding faz no contexto do ASP.NET Dynamic Data?
Resposta: O scaffolding é usado para aperfeiçoar a estrutura da página de formulários da Web ASP.NET existente, exibindo as páginas de forma dinâmica, com base nos dados e metadados expostos pelo modelo de dados.
Recurso scaffolding dos Dados Dinâmicos ASP.NET Pergunta: Qual a finalidade do atributo ScaffoldColumn?
Resposta: Ele é usado para mostrar ou ocultar uma coluna ou um campo na interface do usuário.
Recurso de roteamento dos Dados Dinâmicos 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.
Demonstração: Criação de um aplicativo Web dos Dados Dinâmicos ASP.NET
Pergunta: Qual é a finalidade do método RegisterContext?
Resposta: O método RegisterContext é usado para registrar o contexto de dados ou de objeto.
116 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Passos detalhados de demonstração Demonstração: Criação de um aplicativo Web dos Dados Dinâmicos 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. Crie um aplicativo Web usando a caixa de diálogo New Project.
a. No menu File, clique em New Project.
b. Na caixa de diálogo New Project, no painel esquerdo, clique em Visual Basic ou em Visual C#.
c. No painel intermediário, 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.
3. Adicione um projeto ADO.NET Entity Data Model denominado AdventureWorks.edmx.
a. No Solution Explorer, clique com o botão direito do mouse em DDWebApp, aponte para Add e clique em New Item.
b. Na caixa de diálogo 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 página Choose Model Contents, clique em Generate from database e, em seguida, clique em Next.
5. Na página Choose Your Data Connection, clique em New Connection.
6. Na caixa de diálogo 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.
7. No Entity Data Model Wizard, na página Choose Your Data Connection, clique em Next.
8. Na página 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 seleção 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 botão 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 código à 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 });
Observação: 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 automático 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 botão Close.
12. Crie e execute o aplicativo Web.
• No menu Debug do Visual Studio 2010, clique em Start Without Debugging.
• A página exibida no navegador mostra uma lista das tabelas adicionadas ao modelo de dados.
13. Teste o aplicativo Web para a funcionalidade Dados Dinâmicos e exiba algumas páginas geradas dinamicamente.
a. Na janela Dynamic Data Site — Windows Internet Explorer, clique em Addresses.
A página mostrará a exibição de lista que contém os dados da tabela de Addresses.
b. Na janela Addresses — Windows Internet Explorer, clique em Details, à esquerda de um endereço.
A página mostrará a exibição de detalhes que contém 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 página mostrará a exibição de lista que contém os dados de endereços, classificados por código 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 página exibe o modo de exibição de lista que contém os dados dos endereços dos clientes.
e. Na lista Address, clique em All.
f. Na janela CustomerAddresses — Windows Internet Explorer, no final da página, clique em Insert new item para criar um novo endereço de cliente.
g. Na janela CustomerAddresses — Windows Internet Explorer, no final da página, clique em Insert e exiba a validação inteligente adicionada aos campos obrigatórios e, em seguida, clique em Cancel.
A página exibe o modo de exibição de lista que contém os dados da tabela CustomerAddresses. Essa é a exibição padrão e é para ela que você voltará após o cancelamento.
h. Na janela CustomerAddresses — Windows Internet Explorer, à esquerda de um endereço de cliente, clique em Edit para modificar um endereço de cliente.
A página exibe o modo de exibição de edição que contém os dados da linha selecionada da tabela CustomerAddresses.
i. Na janela CustomerAddresses — Windows Internet Explorer, no final da página, clique em Cancel para cancelar a operação de edição.
14. Feche o Windows Internet Explorer.
• Na janela CustomerAddresses — Windows Internet Explorer, clique no botão Fechar.
15. Feche o Visual Studio 2010.
• Na janela DDWebApp — Microsoft Visual Studio, clique no botão Fechar.
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 119
Leituras adicionais O que são Dados Dinâmicos ASP.NET?
Para obter mais informações sobre como o modelo de dados representa as informações em um banco de dados e como os objetos no banco de dados se relacionam entre si, consulte ASP.NET Dynamic Data Model Overview (Visão geral do modelo de dados do ASP.NET Dynamic Data).
Para obter mais informações sobre o controle DynamicControl, consulte DynamicControl Class (Classe DynamicControl).
Para obter mais informações sobre o controle DynamicField , consulte DynamicField Class (Classe DynamicField).
Recurso scaffolding dos Dados Dinâmicos ASP.NET
Para obter mais informações sobre como o método MetaModel.RegisterContext registra o contexto de dados no modelo meta, consulte MetaModel.RegisterContext Method (Método MetaModel.RegisterContext).
Para obter mais informações sobre como a classe ContextConfiguration fornece informações para uma instância de contexto de dados para permitir a personalização, consulte ContextConfiguration Class (Classe ContextConfiguration).
Para obter mais informações sobre como a classe MetadataTypeAttribute especifica a classe de metadados para associação a uma classe de modelo de dados, consulte MetadataTypeAttribute Class (Classe MetadataTypeAttribute).
Para obter mais informações sobre personalização de modelos de página, 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 página personalizada).
Para obter mais informações sobre personalização 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 informações sobre a personalização de modelos de campo, consulte How: Customize ASP.NET Dynamic Data Default Field Templates (Como personalizar os modelos de campo padrão do ASP.NET Dynamic Data).
Para obter mais informações sobre a personalização de modelos de filtro, consulte Walkthrough: Filtering Rows in Tables That Have a Parent-Child Relationship (Passo a passo: filtrando linhas em tabelas que têm uma relação pai-filho).
120 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Recurso de roteamento dos Dados Dinâmicos ASP.NET
Para obter mais informações sobre o roteamento ASP.NET, consulte ASP.NET Routing (Roteamento ASP.NET).
Demonstração: Criação de um aplicativo Web dos Dados Dinâmicos ASP.NET
Para obter mais informações sobre como criar um site controlado por dados com o mínimo de códigos ou nenhum código, 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 121
Módulo 9 Assegurando a qualidade com a depuração, o teste de unidade e a refatoração
Sumário: Lição 1: Depuração e refatoração de código 122
Lição 2: Código de teste de unidade 129
Lição 4: Desenvolvimento voltado para teste 133
122 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Lição 1 Depuração e refatoração de código
Sumário: Perguntas e respostas 123
Passos detalhados de demonstração 124
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 123
Perguntas e respostas Visão geral da depuração usando as ferramentas de depuração 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 método de depurar um aplicativo?
Resposta: Gravar um código que registre erros ou informações em log.
O que é refatoração? Pergunta: Que problemas você teria ao refatorar código sem usar uma ferramenta?
Resposta: Pode variar, mas talvez nem todas as instâncias de um objeto tenham sido renomeadas.
Pergunta: Qual o percentual de tempo de desenvolvimento que você passa refatorando código?
Resposta: Pode variar, mas os desenvolvedores que usam o TDD em geral irão refatorar mais.
Pergunta: Quais ferramentas de terceiros você usou para realizar a refatoração?
Resposta: Pode variar.
124 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Passos detalhados de demonstração Demonstração: Habilitando a depuração de um aplicativo Web Nesta demonstração, você verá como habilitar a depuração de um aplicativo Web.
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.
1. Crie um novo aplicativo Web ASP.NET usando a caixa de diálogo New Project.
a. No menu File, clique em New Project.
b. Na caixa de diálogo New Project, no painel esquerdo, clique em Visual Basic ou em Visual C#.
c. No painel intermediário, 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.
2. Crie o projeto.
• Na janela DebugWebApp — Microsoft Visual Studio, no menu Compilar, clique em Compilar DebugWebApp.
3. Abra o arquivo Web.config.
• No Solution Explorer, clique duas vezes em Web.config.
4. Navegue para o elemento system.web de fechamento automático e observe os atributos e os valores na marca compilation.
5. No Solution Explorer, clique com o botão direito do mouse em DebugWebApp e, em seguida, clique em Properties.
6. Abra a página da Web.
• No Properties Designer, clique em Web.
7. Examine as várias opções na página Web.
8. Na seção Debuggers, verifique se a caixa de seleção ASP.NET está marcada.
9. Feche o Properties Designer.
• Na janela DebugWebApp, clique no botão Close.
10. Feche o Microsoft Visual Studio 2010.
• Na janela DebugWebApp — Microsoft Visual Studio, clique no botão Fechar.
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 125
Demonstração: Refatoração “Extract Method” Nesta demonstração, você aprenderá a extrair um método de um código existente. A solução da demonstração Habilitar depuração 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 solução 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 diálogo Open Project, na caixa Nome , digite D:\Demofiles\CS\DebugWebApp\DebugWebApp.sln e clique em Abrir.
3. Abra Default.aspx no modo de exibição de código.
• No Solution Explorer, clique com o botão direito do mouse em Default.aspx e, em seguida, clique em View Code.
4. No método Page_Load, digite o código 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 três linhas de código que você acabou de adicionar.
6. Clique com o botão direito do mouse na seleção, aponte para Refatorar e clique em Extract Method.
7. Na caixa de diálogo Extract Method, na caixa New method name, digite Add e clique em OK.
Observação: O código foi extraído em um novo método e a função foi chamada em seu lugar.
8. Crie o projeto.
• Na janela DebugWebApp — Microsoft Visual Studio, no menu Compilar, clique em Compilar DebugWebApp.
9. Feche o Microsoft Visual Studio 2010.
• Na janela DebugWebApp — Microsoft Visual Studio, clique no botão Fechar.
126 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Demonstração: Refatoração “Encapsulate Field” Nesta demonstração, você verá como encapsular um campo. A solução da demonstração Habilitar depuração 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 solução 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 diálogo Open Project, na caixa Nome, digite D:\Demofiles\CS\DebugWebApp\DebugWebApp.sln e clique em Abrir.
3. No Solution Explorer, clique com o botão direito do mouse em DebugWebApp, aponte para Add e clique em Class.
4. Na caixa de diálogo Adicionar Novo Item — DebugWebApp, na caixa Nome, digite Person e clique em Adicionar.
5. Crie uma variável privada exclusiva denominada name, adicionando o código a seguir
[Visual C#] public class Person { private string name; }
6. Na janela Person.cs, clique com o botão direito do mouse em name, aponte para Refatorar e clique em Encapsulate Field.
7. Na caixa de diálogo Encapsulate Field, clique em OK.
8. Na caixa de diálogo Preview Reference Changes — Encapsulate Field, clique em Apply.
Observação: 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 botão Fechar.
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 127
Demonstração: Refatoração “Extract Interface” Nesta demonstração, você verá como extrair uma interface de uma classe existente. A solução da demonstração Habilitar depuração 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 solução 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 diálogo Open Project, na caixa Nome, digite D:\Demofiles\CS\DebugWebApp\DebugWebApp.sln e clique em Abrir.
3. Abra o arquivo Person.cs.
• No Solution Explorer, clique duas vezes em Person.cs.
4. Adicione a variável de membro age, a propriedade Age e o método 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 código a seguir.
[Visual C#] private int age; public int Age { get { return age; } set { age = value; } }
128 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
public void Hire() { // implementation Code }
5. Clique com o botão direito do mouse em Person, aponte para Refactor e clique em Extract Interface.
6. Na caixa de diálogo Extract Interface, marque as caixas de seleção Age, Hire() e Name e clique em OK.
Observação: 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.
• Na janela DebugWebApp — Microsoft Visual Studio, clique em Person.cs.
8. Crie o projeto.
• Na janela DebugWebApp — Microsoft Visual Studio, no menu Compilar, clique em Compilar DebugWebApp.
9. Feche o Microsoft Visual Studio 2010.
• Na janela DebugWebApp — Microsoft Visual Studio, clique no botão Fechar.
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 129
Lição 2 Código de teste de unidade
Sumário: Perguntas e respostas 130
Passos detalhados de demonstração 131
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 módulo integrado e depois aplicou uma correção?
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 código?
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 demonstração Demonstração: Criando e executando um teste de unidade Nesta demonstração, 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. Abra a solução 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 diálogo Open Project, na caixa Nome, digite D:\Demofiles\CS\UnitTest.sln ou D:\Demofiles\VB\UnitTest.sln e clique em Abrir.
3. 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 botão direito do mouse em qualquer lugar no código para a propriedade Age e clique em Create Unit Tests.
6. Na caixa de diálogo Create Unit Tests, verifique se a caixa de seleção Age está marcada e clique em OK.
132 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
7. Na caixa de diálogo New Test Project, clique em Criar.
Observação: Observe o novo projeto criado para teste de unidade.
8. No arquivo PersonTest.cs ou PersonTest.vb aberto, examine o método de teste AgeTest.
9. Altere o código de declaração da variável local expected da forma a seguir.
[Visual C#] int expected = 25;
[Visual Basic] Dim expected As Integer = 25
10. Exclua o código 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 botão direito do mouse na declaração de método AgeTest e clique em Run Tests.
Observação: Na janela Resultados de Teste, observe o teste AgeTest aprovado.
12. Altere o código de declaração da variável local expected da forma a seguir.
[Visual C#] int expected = 2;
[Visual Basic] Dim expected As Integer = 2
13. Clique com o botão direito do mouse na declaração de método AgeTest e clique em Run Tests.
Observação: 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 botão Fechar.
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 133
Lição 4 Desenvolvimento voltado para teste
Sumário: Perguntas e respostas 134
134 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Perguntas e respostas Vantagens do desenvolvimento voltado para teste em relação ao desenvolvimento tradicional
Pergunta: Quais obstáculos você antevê ao realizar a transição 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 código que você escreve para testes de unidade?
Resposta: Pode variar.
O processo de desenvolvimento voltado para teste Os desenvolvedores devem fazer alterações no código 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 criação de testes antes do desenvolvimento altera sua mentalidade?
Resposta: Pode variar.
Pergunta: Quais considerações 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 135
Módulo 10 Proteção de um aplicativo Web
Sumário: Lição 1: Configurando a autenticação 136
Lição 2: Configuração da associação do ASP.NET 140
Lição 3: Gerenciando a autorização usando funções do ASP.NET 144
136 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Lição 1 Configurando a autenticação
Sumário: Perguntas e respostas 137
Passos detalhados de demonstração 138
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 137
Perguntas e respostas Autenticação do IIS
Pergunta: Qual é a diferença entre autenticação Básica e autenticação do Windows?
Resposta: A autenticação Básica exige que o nome de usuário e a senha sejam enviados por meio de texto não criptografado, enquanto a autenticação do Windows usa as credenciais do usuário conectado na rede.
Como configurar a autenticação de formulários Pergunta: Qual método de autenticação permite o uso de credenciais personalizadas em um aplicativo Web?
Resposta: A autenticação de Formulários permite que o desenvolvedor defina a autenticação personalizada para o aplicativo. Usando a autenticação de Formulários, o usuário pode ser validado em qualquer fonte de dados.
138 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Passos detalhados de demonstração Demonstração: Configurando a autenticação do IIS
Selecionar um site padrão no Gerenciador do Serviços de Informações da Internet (IIS) 1. Abra o Gerenciador do Serviços de Informações da Internet (IIS) como administrador.
a. No menu Iniciar de 10714A-GEN-DEV, aponte para Ferramentas Administrativas, clique com o botão direito do mouse em Gerenciador do Serviços de Informações da Internet (IIS) e, em seguida, clique em Executar como administrador.
b. Na caixa de diálogo Controle de Conta de Usuário, na caixa Senha, digite Pa$$w0rd e clique em Sim.
2. Na janela Gerenciador do Serviços de Informações da Internet (IIS), no painel esquerdo, expanda 10714-GEN-DEV (10714-GEN-DEV\Admin) e Sites.
3. Clique em Default Web e observe as opções disponíveis no painel direito.
Configurar a autenticação anônima 1. No painel Autenticação, na seção IIS , clique duas vezes em Autenticação.
2. Clique com o botão direito do mouse em Autenticação Anônima e em Habilitar ou Desabilitar para habilitar ou desabilitar a autenticação anônima para o aplicativo Web selecionado.
3. Clique com o botão direito do mouse em Autenticação Anônima e em Editar para editar as credenciais usadas com autenticação anônima.
4. Clique em Cancelar na caixa de diálogo Editar Credenciais de Autenticação Anônima.
Configurar a autenticação básica 1. No painel Autenticação, na seção IIS, clique duas vezes em Autenticação.
2. Clique com o botão direito do mouse em Autenticação Básica e, em seguida, clique em Habilitar ou Desabilitar a fim de habilitar ou desabilitar a autenticação básica para o aplicativo Web selecionado.
3. Clique com o botão direito do mouse em Autenticação Básica e clique em Editar para editar o domínio padrão ou o realm usado com a autenticação básica. O domínio padrão é usado para especificar o domínio no qual os usuários são autenticados por padrão. O realm, um endereço ou nome de domínio DNS, usa as credenciais que foram autenticadas como o domínio padrão.
4. Clique em Cancelar na caixa de diálogo Editar Configurações Básicas de Autenticação.
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 139
Configurar a autenticação Digest 1. No painel Autenticação, na seção IIS , clique duas vezes em Autenticação.
2. Clique com o botão direito do mouse em Autenticação Digest e, em seguida, clique em Habilitar ou Desabilitar a fim de habilitar ou desabilitar a autenticação Digest para o aplicativo Web selecionado.
Observação: a máquina 10714A-GEN-DEV não é vinculada a um domínio, então, não é possível habilitar a autenticação Digest.
3. Clique com o botão direito do mouse em Autenticação Digest e, em seguida, clique em Editar para editar o realm usado com autenticação Digest. O realm, um endereço ou nome de domínio DNS, usa as credenciais que foram autenticadas como o domínio interno do Windows.
4. Clique em Cancelar na caixa de diálogo Editar Configurações Básicas de Autenticação Digest.
Configurar a autenticação do Windows 1. No painel Autenticação, na seção IIS , clique duas vezes em Autenticação.
2. Clique com o botão direito do mouse em Autenticação do Windows e, em seguida, clique em Habilitar ou Desabilitar a fim de habilitar ou desabilitar a autenticação do Windows para o aplicativo Web selecionado.
3. Clique com o botão direito do mouse em Autenticação do Windows e clique em Configurações Avançadas para configurar a Proteção Estendida e habilitar ou desabilitar a autenticação de modo Kernel. A Proteção Estendida aumenta a proteção e o processamento de credenciais ao autenticar conexões de rede usando a autenticação do Windows.
4. Clique em Cancelar na caixa de diálogo Configurações Avançadas.
140 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Lição 2 Configuração da associação do ASP.NET
Sumário: Perguntas e respostas 141
Passos detalhados de demonstração 142
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 141
Perguntas e respostas O que é a associação do ASP.NET?
Pergunta: Quais benefícios são obtidos quando se usa o padrão do provedor para a configuração de associação?
Resposta: A API de Associação do ASP.NET usa o modelo de provedor para conectar provedores de Associação. Isso permite que os desenvolvedores criem seu próprio modelo de provedor e usem esse modelo como o módulo de Associação.
Demonstração: Gerenciando usuários pela associação 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 padrão para a associação do ASP.NET?
Resposta: Você define o valor do atributo defaultProvider da marca de abertura membership no arquivo Web.config.
142 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Passos detalhados de demonstração Demonstração: Gerenciando usuários pela associação do ASP.NET Nesta demonstração, você aprenderá como gerenciar os usuários da associação do ASP.NET usando a ASP.NET Web Site Administration Tool.
1. Abra o Microsoft Visual Studio® 2010.
• 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.
2. 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 diálogo 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 solução.
• No menu Build, clique em Build Solution ou pressione CTRL+SHIFT+B.
5. No Solution Explorer, clique no botão ASP.NET Configuration.
Observação: a Web Site Administration Tool é aberta no Windows Internet Explorer®. Na página Home, você encontrará as seguintes opções.
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 143
6. Na Web Site Administration Tool, na página Home, clique em Security.
Observação: na página Security, você encontrará as seguintes opções.
7. Na página Security, clique em Create user.
8. Na seção 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 [email protected] e clique em Create User.
9. Feche a ASP.NET Web Site Administration Tool.
• Na janela ASP.NET Web Site Administration Tool, clique no botão Fechar.
10. Abra a pasta App_Data no Windows Explorer, usando o Solution Explorer.
• No Solution Explorer, clique com o botão 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 botão Fechar.
13. Feche o Visual Studio 2010.
• Na janela Module10 — Microsoft Visual Studio, clique no botão Fechar.
144 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Lição 3 Gerenciando a autorização usando funções do ASP.NET
Sumário: Perguntas e respostas 145
Passos detalhados de demonstração 146
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 145
Perguntas e respostas O que são funções do ASP.NET?
Pergunta: Onde as funções são mantidas?
Resposta: As funções são mantidas na tabela aspnet_Roles. Para criar a tabela aspnet_Roles, é necessário executar a configuração do ASP.NET, conforme explicado na demonstração “Gerenciamento de funções do ASP.NET”. As funções atribuídas ao usuário são mantidas na tabela aspnet_UserInRoles.
146 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Passos detalhados de demonstração Demonstração: Gerenciando as funções do ASP.NET Nesta demonstração, você aprenderá como usar o arquivo Web.config e a API de funções para evitar que os usuários acessem recursos não autorizados.
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 solução 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 diálogo 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 solução.
• No menu Build, clique em Build Solution ou pressione CTRL+SHIFT+B.
5. No Solution Explorer, clique no botão ASP.NET Configuration.
6. Na Web Site Administration Tool, na página Home, clique em Security.
7. Na página 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.
Observação: a função está criada.
10. Feche a ASP.NET Web Site Administration Tool.
• Na janela ASP.NET Web Site Administration Tool, clique no botão Fechar.
11. Feche o Visual Studio 2010.
• Na janela Module10 — Microsoft Visual Studio, clique no botão Fechar.
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 147
Módulo 11 Aplicação de páginas mestras e CSS
Sumário: Lição 1: Aplicação de páginas mestras 148
Lição 2: Aplicação de CSS, aparências e temas 155
148 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Lição 1 Aplicação de páginas mestras
Sumário: Perguntas e respostas 149
Passos detalhados de demonstração 150
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 149
Perguntas e respostas Desafios ao fornecer uma interface de usuário consistente
Pergunta: Quais são alguns exemplos de problemas de interface do usuário 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 é página mestra? Pergunta: Como as páginas mestras podem ajudá-lo a criar uma interface do usuário consistente?
Resposta: As páginas mestras agem como modelos para os formulários da Web e ajudam você a criar e manter o conteúdo básico de uma página de formulários da Web.
Demonstração: Usando uma página mestra em formulários da Web e páginas de exibição MVC
Pergunta: Quais ideias vêm à mente durante esta demonstração ao usar páginas mestras?
Resposta: Pode variar.
O que são páginas mestras aninhadas? Pergunta: Quais cenários, na sua experiência, poderiam ter se beneficiado do uso de páginas mestras aninhadas?
Resposta: Pode variar.
Modelo de evento de página mestra e relações Pergunta: Que ideias vêm em mente ao pensar sobre como páginas e páginas mestras podem interagir?
Resposta: Pode variar?
Pergunta: Quais preocupações você teria sobre a implementação dessa interação?
Resposta: Pode variar?
150 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Passos detalhados de demonstração Demonstração: Criando uma página mestra
Criação de uma página 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. 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 diálogo 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.
3. Crie uma página mestra denominada SingleColumn.Master na pasta raiz.
a. No Solution Explorer, clique com o botão direito do mouse em NewMasterPage, aponte para Add e clique em New Item.
b. Na caixa de diálogo Add New Item — NewMasterPage, no painel intermediário, clique em Master Page, na caixa Name, digite SingleColumn.Master e, em seguida, clique em Add.
4. O conteúdo na sua nova página mestra terá a seguinte aparência.
<%@ 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 151
6. No elemento form, e antes de abrir a marca div, crie um novo elemento div com um valor de atributo ID de cabeçalho.
<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 página mestra NewMasterPage no modo Design.
• Na janela SingleColumn.Master, clique em Design.
9. 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 botão Fechar.
b. Na caixa de diálogo do Microsoft Visual Studio, clique em No.
Demonstração: Usando uma página mestra em formulários da Web e páginas de exibição MVC
Usando uma página mestra em uma nova página de formulários da Web 1. Abra o Microsoft Visual Studio 2010.
• 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.
2. Abra a solução 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 diálogo 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 formulário da Web denominado UsingMasterPage com base na página mestra Site.Master.
a. No Solution Explorer, clique com o botão direito do mouse em AdventureWorks, aponte para Add e clique em New Item.
b. Na caixa de diálogo 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 diálogo Select a Master Page, na lista Contents of folder, clique em Site.Master e em OK.
Observação: A sua marcação deverá ter uma aparência 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 página pressionando CTRL+F5.
Observação: A página renderizada deverá ter uma aparência similar ao seguinte.
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 153
6. Feche o Windows® Internet Explorer®.
• Na janela http://localhost:xxxxx/UsingMasterPage.aspx — Windows Internet Explorer, clique no botão Fechar.
7. Feche a solução AdventureWorks.
• Na janela AdventureWorks — Microsoft Visual Studio, no menu File, clique em Close Solution.
Uso de uma página mestra em uma nova página de exibição do MVC 1. Abra a solução 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 diálogo Open Project, na caixa Nome, digite D:\Demofiles\CS\Module11\ AdventureWorksMvc.sln ou D:\Demofiles\VB\Module11\AdventureWorksMvc.sln e clique em Abrir.
2. Adicione ao projeto uma nova exibição denominada UsingMasterPage.aspx com base na página mestra Site.Master. A exibição deverá ser renderizada pelo controlador Home e salva na pasta Views\Home.
a. No Solution Explorer, expanda Views, clique com o botão direito do mouse em Home, aponte para Add e clique em View.
b. Na caixa de diálogo 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 seleção Select master page contém ~/Views/Shared/Site.Master e clique em Add.
Observação: A sua marcação deverá ter uma aparência 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 página de exibição, 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
Observação: A página renderizada deverá ter uma aparência similar ao seguinte.
6. Feche o Windows Internet Explorer.
• Na janela http://localhost:xxxx/Home/UsingMasterPage — Windows Internet Explorer, clique no botão Fechar.
7. Feche o Visual Studio 2010.
• Na janela AdventureWorksMvc — Microsoft Visual Studio, clique no botão Fechar.
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 155
Lição 2 Aplicação de CSS, aparências e temas
Sumário: Perguntas e respostas 156
Passos detalhados de demonstração 157
156 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Perguntas e respostas O que são folhas de estilos em cascata?
Pergunta: Como a CSS permite aplicar sua interface do usuário 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 necessário) por elementos filho.
Demonstração: Criação de um arquivo CSS Pergunta: Que ideias vêm à 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 demonstração Demonstração: Criação de um arquivo CSS
Criação 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. Abra a solução 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 diálogo Open Project, na caixa Nome, digite D:\Demofiles\CS\Module11\ AdventureWorks.sln ou D:\Demofiles\VB\Module11\AdventureWorks.sln e clique em Abrir.
3. Na pasta Styles, crie um novo arquivo CSS denominado Demo.css.
a. No Solution Explorer, clique com o botão direito do mouse em Styles, aponte para Add e clique em New Item.
b. Na caixa de diálogo Add New Item — AdventureWorks, no painel intermediário, clique em Style Sheet, na caixa Nome, digite Demo.css e clique em Add.
4. Exclua o conteúdo padrão do documento Demo.css.
• Na janela Demo.css, pressione CTRL+A e DELETE.
5. 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 marcação.
.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 página mestra Site.Master.
• No Solution Explorer, clique duas vezes em Site.Master.
7. Adicione a seguinte marcação 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 marcação.
<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 marcação 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 marcação ao atributo class.
demo-bg-2 demo-bold
10. Teste a página pressionando CTRL+F5.
Observação: a página renderizada deverá ter a seguinte aparência.
11. Feche o Windows Internet Explorer.
• Na janela Home Page — Windows Internet Explorer, clique no botão Fechar.
12. Feche o Visual Studio 2010.
• Na janela AdventureWorks — Microsoft Visual Studio, clique no botão Fechar.
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 159
Módulo 12 Desenvolvimento de scripts e serviços do lado do cliente
Sumário: Lição 1: Desenvolvimento de scripts do lado do cliente 160
Lição 2: Implementação do Ajax 164
Lição 3: Criação de serviços 168
160 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Lição 1 Desenvolvimento de scripts do lado do cliente
Sumário: Perguntas e respostas 161
Passos detalhados de demonstração 162
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 161
Perguntas e respostas Código do lado do cliente versus código do servidor
Pergunta: Se estivesse executando um site de hipoteca e precisasse implementar uma calculadora hipotecária, qual tipo de script você usaria — do lado do cliente ou de servidor?
Resposta: Scripts do lado do cliente (resposta mais rápida).
Pergunta: Como você garantiria o funcionamento do site, mesmo se o usuário desabilitasse o script do lado do cliente?
Resposta: Pode variar.
Criação de um script do lado do cliente Pergunta: Quais são os benefícios de manter o código do lado do cliente em um arquivo de script separado?
Resposta: Portabilidade, depuração mais fácil, modularidade.
Pergunta: Que outras operações 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 é necessário validar a entrada do usuário no servidor e no lado do cliente?
Resposta: Sem a validação, os dados inválidos ou potencialmente perigosos são enviados ao servidor.
162 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Passos detalhados de demonstração Demonstração: Como adicionar um script do lado do cliente à página
Como adicionar código 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. 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 diálogo 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.
3. Abra a página mestra Site.Master.
• No Solution Explorer, clique duas vezes em Site.Master.
4. Acrescente a marcação e o código a seguir após a marca html de fechamento.
<script type="text/JavaScript"> function inlineGreet() { alert('Hello World (inline)'); } </script>
Como adicionar código do lado do cliente usando um arquivo JavaScript separado 5. Adicione um novo arquivo JScript® chamado Site.js ao projeto.
a. No Solution Explorer, clique com o botão direito do mouse em Scripts, aponte para Add e clique em New Item.
b. Na caixa de diálogo Add New Item — Script, no painel central, clique em JScript File, na caixa Name, digite Site.js e clique em Add.
6. Adicione o código a seguir ao arquivo JScript.
function externalGreet() { alert('Hello World (external)'); }
7. Abra a página mestra Site.Master.
• Na janela Script — Microsoft Visual Studio, clique em Site.Master.
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 163
8. Localize o elemento head.
9. Adicione a marcação a seguir ao elemento head.
<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 marcação a seguir ao elemento head.
<script src="Scripts/Site.js" type="text/JavaScript" />
Demonstração: Como exibir uma caixa de alerta usando código do lado do cliente Nesta demonstração, você verá como exibir uma caixa de alerta usando um script do lado do cliente.
1. Abra a solução criada na demonstração anterior.
2. Chame a função inlineGreet a partir do evento onload do elemento body.
<body onload="inlineGreet()">
3. Abra o formulário da Web padrão.
• No Solution Explorer, clique duas vezes em Default.aspx.
4. Acrescente a marcação a seguir ao controle BodyContent.
<input type="button" value="Greet (external)" onclick="externalGreet()"/>
5. Execute o aplicativo.
• Pressione CTRL+F5.
Observação: a caixa de alerta é exibida com a saudação do script embutido.
6. Clique em Greet (external).
• Na janela Home Page — Windows Internet Explorer, clique em Greet (external).
Observação: a caixa de alerta é exibida com a saudação do arquivo de script externo.
7. Feche o Windows® Internet Explorer®.
• Na janela Home Page — Windows Internet Explorer, clique no botão Fechar.
8. Feche o Visual Studio 2010.
• Na janela Script — Microsoft Visual Studio, clique no botão Fechar.
164 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Lição 2 Implementação do Ajax
Sumário: Passos detalhados de demonstração 165
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 165
Passos detalhados de demonstração Demonstração: Uso do controle UpdatePanel Nesta demonstração, você verá como implementar atualizações parciais usando o controle UpdatePanel.
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 solução 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 diálogo Open Project, na caixa Nome, digite D:\Demofiles\CS\PartialUpdates.sln ou D:\Demofiles\VB\PartialUpdates.sln e clique em Abrir.
3. Abra o formulário da Web padrão no modo Design.
• No Solution Explorer, clique com o botão direito do mouse em Default.aspx e, em seguida, clique em View Designer.
4. Adicione um controle ScriptManager ao formulário da Web Default.aspx, no controle BodyContent.
• Abra a Toolbox, expanda AJAX Extensions e clique duas vezes em ScriptManager.
5. Adicione um controle UpdatePanel ao formulário da Web Default.aspx, no controle BodyContent.
• Abra a Toolbox, expanda AJAX Extensions e clique duas vezes em UpdatePanel.
6. Adicione um controle GridView ao formulário da Web Default.aspx, no controle UpdatePanel.
• Abra a Toolbox, expanda Data e arraste um controle GridView para o controle UpdatePanel.
7. Adicione um controle SqlDataSource ao formulário da Web Default.aspx, no controle BodyContent.
• Abra a Toolbox, expanda Data e arraste um controle SqlDataSource para o controle BodyContent.
8. 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.
9. Defina o controle GridView para permitir a paginação, 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 seleção 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 página 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 página Configure the Select Statement, verifique se a caixa de seleção Specify columns from a table or view está marcada, na lista Name, clique em Customer, na lista Columns, marque as caixas de seleção CustomerID, Title, FirstName, MiddleName, LastName, CompanyName, SalesPerson e Phone e clique em Next.
d. Clique em Finish.
11. Verifique se a sua marcação tem uma aparência 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 números de página de 4 a 5 vezes.
14. Feche o Windows Internet Explorer.
• Na janela Home Page — Windows Internet Explorer, clique no botão Fechar.
15. Feche o Visual Studio 2010.
• Na janela Script — Microsoft Visual Studio, clique no botão Fechar.
168 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Lição 3 Criação de serviços
Sumário: Passos detalhados de demonstração 169
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 169
Passos detalhados de demonstração Demonstração: Criação de serviços WCF habilitados para Ajax Nesta demonstração, você verá como adicionar um serviço 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. Abra a solução 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 diálogo Open Project, na caixa Nome, digite D:\Demofiles\CS\Script\Script.sln ou D:\Demofiles\VB\Script\Script.sln e clique em Abrir.
3. Adicione ao projeto um novo serviço WCF habilitado para Ajax chamado GreetingsService.svc.
a. No Solution Explorer, clique com o botão direito do mouse em Script, aponte para Add e clique em New Item.
b. Na caixa de diálogo Add New Item — Script, no painel central, clique em Ajax-enabled WCF Service, na caixa Name, digite GreetingsService.svc e clique em Add.
4. Remova o método DoWork padrão e os comentários 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 código 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 código à 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 171
[Visual Basic] Imports System.ServiceModel Imports System.ServiceModel.Activation Imports System.ServiceModel.Web <ServiceContract(Namespace:="")> <AspNetCompatibilityRequirements(RequirementsMode:=AspNetCompatibilityRequirementsMode.Allowed)> Public Class Greeting <OperationContract()> Public Function Greet() As String Return "Hello World" End Function End Class
6. Compile a solução 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 botão Fechar.
Demonstração: Como chamar o serviço WCF habilitado para Ajax usando código do lado do cliente Nesta demonstração, você verá como invocar o serviço GreetingsService.svc usando código 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. Abra a solução 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 diálogo Open Project, na caixa Nome, digite D:\Demofiles\CS\Script\Script.sln ou D:\Demofiles\VB\Script\Script.sln e clique em Abrir.
3. Abra a página mestra Site.Master.
• No Solution Explorer, clique duas vezes em Site.Master.
4. Remova o atributo onload e o valor da marca body de abertura.
<body onload="inlineGreet()">
5. Abra o formulário da Web Default.aspx.
• No Solution Explorer, clique duas vezes em Default.aspx.
6. Remova o conteúdo do controle BodyContent Content.
• Na janela Default.aspx, selecione a marcação incluída 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 marcação a seguir para registrar o serviço WCF usando o controle ScriptManager. Adicione a marcação 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 código a seguir à página 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 marcação a seguir à página 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.
Observação: o serviço WCF será invocado e uma mensagem de alerta será exibida.
12. Feche a caixa de diálogo.
• Na caixa de diálogo Message from webpage, clique em OK.
13. Feche o Windows Internet Explorer.
• Na janela Home Page — Windows Internet Explorer, clique no botão Fechar.
14. Feche o Visual Studio 2010.
• Na janela Script — Microsoft Visual Studio, clique no botão Fechar.
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 173
Módulo 13 Implementação do Ajax avançado em um aplicativo Web
Sumário: Lição 3: Como trabalhar com eventos jQuery e Ajax 174
174 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Lição 3 Como trabalhar com eventos jQuery e Ajax
Sumário: Passos detalhados de demonstração 175
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 175
Passos detalhados de demonstração Demonstração: Como trabalhar com manipuladores de eventos do jQuery Ajax
Introdução Nesta demonstração, 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. 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 diálogo 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 diálogo Create Unit Test Project, marque a caixa seleção No, do not create a unit test project e clique em OK.
3. Adicione uma ação 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 código 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
Observação: se você passar a cadeia de caracteres ex, o método gerará uma exceção no servidor.
4. No modo de exibição Views/Home/Index, substitua o conteúdo 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 marcação no controle Content2 ou indexContent Content e pressione DELETE.
c. No controle Content2 ou indexContent Content, digite a marcação 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 marcação e o código a seguir ao modo de exibição 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 177
$('#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 marcação 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 solução e corrija todos os erros.
• Na janela jQueryEventHandlers — Microsoft Visual Studio, pressione CTRL+SHIFT+B.
7. Execute o aplicativo.
• No Solution Explorer, clique em jQueryEventHandlers e pressione CTRL+F5.
8. No Windows® Internet Explorer®, na caixa de texto, digite This is a test e clique em Carregar Dados.
Observação: quando a chamada ao método do controlador é feita, o texto Loading... é exibido abaixo da caixa de texto. Quando a chamada é concluída, uma mensagem semelhante a You said This is a test, and the time is 9/16/2010 12:00:46 AM é exibida.
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.
Observação: quando a chamada ao método do controlador é feita, o texto Loading... é exibido abaixo da caixa de texto. Quando a chamada é concluída, 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 botão Fechar.
12. Feche o Visual Studio 2010.
• Na janela jQueryEventHandlers — Microsoft Visual Studio, clique no botão Fechar.
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 179
Módulo 14 Implantações do ASP.NET
Sumário: Lição 1: Visão geral de implantações de aplicativos Web 180
Lição 2: Visão geral de implantações de sites 182
180 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Lição 1 Visão geral de implantações de aplicativos Web
Sumário: Perguntas e respostas 181
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 181
Perguntas e respostas Pacotes de implantação da Web
Pergunta: Em quais cenários você usou pacotes de implantação da Web? Quais foram as vantagens? Quais foram as desvantagens?
Resposta: Pode variar.
Publicação com um clique Pergunta: Em quais cenários você usou o recurso de publicação com um clique? Quais foram as vantagens? Quais foram as desvantagens?
Resposta: Pode variar.
Cenários empresariais Pergunta: Quantos ambientes intermediários você viu em um cenário empresarial? Você encontrou um cenário em que não foram usados ambientes intermediários?
Resposta: Pode variar.
Cenários de hospedagem de terceiros Pergunta: Quais provedores de hospedagem você usou? Eles possuíam ambientes de hospedagem compartilhados? Eles possuíam servidores dedicados? Como esses recursos afetaram o modo como você implantou seus aplicativos?
Resposta: Pode variar.
Implantação de um banco de dados do SQL Server Pergunta: Como você propaga as estruturas de dados e os dados no momento? Quais são as vantagens? Quais são as desvantagens?
Resposta: Pode variar
Extensão da Plataforma de Publicação 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 não implantar esses componentes corretamente?
Resposta: Pode variar
182 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Lição 2 Visão geral de implantações de sites
Sumário: Perguntas e respostas 183
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 183
Perguntas e respostas A ferramenta Copy Web Site
Pergunta: Onde você utilizou a ferramenta Copy Web Site?
Resposta: Pode variar
Pergunta: Quais são algumas das vantagens de não precisar recompilar um aplicativo?
Resposta: É mais rápido e há menos chance de um componente não funcionar adequadamente.
O utilitário Publish Web Site Pergunta: Onde você utilizou o utilitário Publish Web Site?
Resposta: Pode variar.
Pergunta: Quais são algumas das vantagens de recompilar o aplicativo?
Resposta: Isso garante que todo o código está atualizado e qualquer erro de compilação foi encontrado.
Implantação do arquivo Web.config Pergunta: Onde você utilizou o utilitário Publish Web Site?
Resposta: Pode variar.
184 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Módulo 15 Desenvolvimento de um aplicativo Web usando o Silverlight
Sumário: Lição 3: Criar um aplicativo Silverlight 185
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 185
Lição 3 Criar um aplicativo Silverlight
Sumário: Perguntas e respostas 186
Passos detalhados de demonstração 187
186 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Perguntas e respostas Demonstração: Criação da estrutura de um projeto do Silverlight
Pergunta: Explique por que um projeto host é necessário em uma solução Silverlight.
Resposta: O Silverlight deve estar hospedado para poder ser executado. Você pode hospedá-lo em um projeto de host ou em uma página HTML simples.
Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010 187
Passos detalhados de demonstração Demonstração: Criação da estrutura de um projeto do Silverlight Nesta demonstração, 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.
• 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. 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 diálogo 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.
3. Na caixa de diálogo New Silverlight Application, verifique as informações a seguir e clique em OK.
a. Verifique se a opção Host the Silverlight Application in a new Web site está selecionada (o padrão).
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.
4. Observe que foram criados dois projetos.
• 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. Além disso, seu arquivo code-behind é usado para manipular eventos globais no nível de aplicativo, como Startup e Exit, de maneira semelhante a Global.asax em um aplicativo ASP.NET.
• MainPage.xaml é a página Silverlight padrão do aplicativo. Esse projeto é criado em um arquivo XAP e usado pelo plug-in Silverlight para baixar e executar o aplicativo no navegador do usuário. O arquivo XAP contém os recursos e os assemblies compactados necessários para executar o aplicativo.
• SilverlightApp.Web é o projeto de hospedagem. Ele contém as páginas da Web que hospedarão o aplicativo Silverlight.
5. Observe a pasta chamada ClientBin.
• O arquivo SilverlightApp.xap é o pacote de aplicativo referente a SilverlightApp. O Visual Studio atualizará esse arquivo XAP quando o projeto for criado.
6. Abra SilverlightAppTestPage.aspx.
• Alterne para o modo Código-fonte. O elemento object é o contêiner do aplicativo Silverlight SilverlightApp. Ele conterá referências ao Silverlight runtime, inclusive um link para baixá-lo, se ele ainda não estiver instalado no navegador do usuário.
188 Desenvolvimento de aplicativos Web com o Microsoft® Visual Studio® 2010
Envie-nos seus comentários Para obter informações sobre problemas conhecidos, você pode pesquisar a Base de Dados de Conhecimento Microsoft em Ajuda e Suporte da Microsoft, antes de enviar comentários. Pesquise pelo número e pela revisão do curso ou por seu título.
Observação 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.
Comentários sobre o curso Envie todos os comentários sobre o curso para [email protected]. Somos gratos por seu interesse e sua contribuição. Analisamos todos os emails recebidos e encaminhamos as informações para a equipe apropriada. Infelizmente, por conta do volume, não podemos fornecer uma resposta, mas podemos usar seus comentários para melhorar sua experiência futura com os produtos do Microsoft Learning.
Relatório de erros Ao enviar comentários, inclua o nome e o número do produto de treinamento na linha de assunto do email. Ao enviar comentários ou relatar bugs, inclua os seguintes dados:
1. Número da peça do documento ou CD
2. Número da página ou local
3. Descrição completa do erro ou da alteração sugerida
Forneça todos os detalhes necessários para nos ajudar a verificar o problema.
Importante Todos os erros e sugestões são avaliados, mas apenas os que são validados são adicionados ao artigo da Base de Dados de Conhecimento do produto.