Академический Документы
Профессиональный Документы
Культура Документы
“Omar e seus colaboradores aplicaram seus incríveis talentos e dedicaram bastante tempo para criar o
que parece ser o mais avançado site da web baseado em ASP.NET e Ajax. Neste livro, Omar detalha tudo
que aprendeu com sua experiência, aprofundando-se nos objetivos relacionados a design, arquitetura e
implementação, incluindo várias armadilhas que também nos ensina a evitar. Se você está decidido a criar
um site ASP.NET, baseado em Ajax, moderno e de alta performance, Construindo um Portal Web 2.0 com
ASP.NET 3.5 foi feito para você.”
“Um excelente panorama das tecnologias, técnicas e das melhores práticas envolvidas no trabalho com o
modelo de aplicação web mais popular da atualidade. Altamente recomendado para qualquer desenvolvedor
web que pretenda se destacar.”
Omar AL Zabir
Omar AL Zabir
Do original Building a Web 2.0 Portal with ASP.NET 3.5 Copyright © 2009 da Starlin Alta Con. Com. Ltda.
Authorized translation from English language edition, entitled Building a Web 2.0 Portal with ASP.NET 3.5,
published by O’Reilly Media, Inc. Copyright © 2009 by O’Reilly Media, Inc..
Portuguese language edition published by Starlin Alta Con. Com. Ltda, Copyright © 2009 by Starlin Alta Con. Com. Ltda.
Todos os direitos reservados e protegidos pela Lei 5988 de 14/12/73. Nenhuma parte deste livro, sem autorização prévia
por escrito da editora, poderá ser reproduzida ou transmitida sejam quais forem os meios empregados: eletrônico,
mecânico, fotográfico, gravação ou quaisquer outros. Todo o esforço foi feito para fornecer a mais completa e adequada
informação, contudo a editora e o(s) autor(es) não assumem responsabilidade pelos resultados e usos da informação
fornecida. Recomendamos aos leitores testar a informação, bem como tomar todos os cuidados necessários (como o
backup), antes da efetiva utilização. Este livro não contém CD-ROM, disquete ou qualquer outra mídia.
Erratas e atualizações: Sempre nos esforçamos para entregar a você, leitor, um livro livre de erros técnicos ou
de conteúdo; porém, nem sempre isso é conseguido, seja por motivo de alteração de software, interpretação ou
mesmo quando alguns deslizes constam na versão original de alguns livros que traduzimos. Sendo assim, criamos
em nosso site, www.altabooks.com.br, a seção Erratas, onde relataremos, com a devida correção, qualquer erro
encontrado em nossos livros.
Avisos e Renúncia de Direitos: Este livro é vendido como está, sem garantia de qualquer tipo, seja expressa
ou implícita.
Marcas Registradas: Todos os termos mencionados e reconhecidos como Marca Registrada e/ou comercial são de
responsabilidade de seus proprietários. A Editora informa não estar associada a nenhum produto e/ou fornecedor
apresentado no livro. No decorrer da obra, imagens, nomes de produtos e fabricantes podem ter sido utilizados, e
desde já a Editora informa que o uso é apenas ilustrativo e/ou educativo, não visando ao lucro, favorecimento ou
desmerecimento do produto/fabricante.
Impresso no Brasil
O código de propriedade intelectual de 1º de Julho de 1992 proíbe expressamente o uso coletivo sem autorização
dos detentores do direito autoral da obra, bem como a cópia ilegal do original. Esta prática generalizada nos
estabelecimentos de ensino, provoca uma brutal baixa nas vendas dos livros a ponto de impossibilitar os autores de
criarem novas obras.
Prefácio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
vii
viii | Sumário
Índice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
Sumário | ix
O portal Web 2.0 com a tecnologia Ajax está entre os aplicativos web mais bem sucedidos da geração da Web
2.0. O iGoogle e o Pageflakes (páginas iniciais personalizadas) são os pioneiros nesse mercado e estão entre os
primeiros a demonstrar o potencial da tecnologia Ajax. Os sites desse portal fornecem aos usuários uma home
page (página inicial) personalizada com acesso, de uma única vez, a informações e entretenimento de toda a Web,
assim como os painéis que agregam valor a negócios e empresas. O portal Web 2.0 pode ser utilizado como um
local de armazenamento de conteúdos, tal qual os sites do SharePoint ou do DotNetNuke. Como a tecnologia Ajax
foi desenvolvida para enriquecer a interatividade do cliente, o portal Web 2.0 aprimora a praticidade e fornece
uma performance mais rápida em comparação aos websites (sites da Internet) que não utilizam a tecnologia
Ajax. Além disso, já que os portais são comumente compostos de widgets (componentes de interface gráfica com
o usuário), pequenos aplicativos plug-and-play, não existe limite para a funcionalidade fornecida simplesmente
por adicionarmos mais widgets. A utilização dos widgets mantém a arquitetura básica do portal clara e simples,
uma vez que eles são desenvolvidos e preservados independentemente. O DotNetNuke é um bom exemplo do
conceito de um portal construído por widgets, criando-se uma nova era dos aplicativos web.
Este livro possui uma visão recente sobre as soluções para portais, utilizando-se a mais nova tecnologia
da Microsoft. Ao desenvolver portais pessoais, educacionais, comunitários e empresariais, tivemos de lidar
com interessantes desafios em relação ao design, ao desenvolvimento, à escalabilidade, à performance e
à produção. Neste livro, tentamos demonstrar as soluções para alguns desses desafios ao construirmos
um protótipo do portal Web 2.0 com código aberto. Poderemos, então, passar aos desafios em relação
ao design e à arquitetura, aos modernos conceitos da tecnologia Ajax, às técnicas de aprimoramento de
performances e à escalabilidade do servidor. O protótipo também nos demonstra a implementação prática
dos modernos frameworks .NET 3.0 e 3.5, incluindo o LINQ (Language Integrated Query – Linguagem
Integrada de Consulta) e o WF (Windows Workflow Foundation). Além disso, ele explora os detalhes do
website com a tecnologia Ajax, como também os desafios concernentes à performance e à compatibilidade
do browser (navegador), à segurança e às vantagens e desvantagens da estrutura ASP.NET AJAX.
O projeto está disponível no site www.dropthings.com. O Dropthings é um exemplo do que pode ser feito com as
novas tecnologias da Microsoft a partir de um código aberto. Cabe ressaltar que esse projeto se destina apenas
a propósitos educacionais. Apesar de se aproximar de um verdadeiro portal web portal (como o Pageflakes),
no que diz respeito a recursos, performance, segurança e escalabilidade, esse projeto desempenha uma ótima
função ao nos demonstrar como unir novas tecnologias em um aplicativo web prático.
Público-alvo
Este livro destina-se, primeiramente, aos programadores do ASP.NET 2.0 ou 3.5 que já desenvolveram um ou
mais aplicativos web e que possuem um bom domínio do JavaScript e do ASP.NET 2.0. O leitor também deve
ter conhecimentos básicos sobre o ASP.NET AJAX. Essa informação encontra-se em inúmeras publicações,
incluindo-se algumas de O’Reilly, as quais estão enumeradas nas referências bibliográficas deste livro.
Programadores de nível intermediário que procuram obter uma idéia acerca dos desafios de programação
da web e aprender como um website é construído e executado de forma bem sucedida serão beneficiados
com este livro. Já os programadores de nível mais avançado aprenderão como construir um aplicativo
web sólido que possa suportar milhões de hits diariamente; como conservar a demanda repentina por
escalabilidade; como prevenir ataques de hackers e de negação de serviços; como instalar e executar
xi
Organização
Inicialmente, definiremos o portal web Ajax (também conhecido como portal Web 2.0) e sua utilização
como um modelo para websites pessoais, para Intranet de empresas ou para aplicativos web de consumo
em massa. Posteriormente, passaremos aos desafios da arquitetura deste aplicativo e forneceremos um
guia em que incluiremos o passo a passo para a resolução de questões concernentes ao design. Além
disso, explicaremos o conceito de widget e como sua arquitetura pode criar um aplicativo web altamente
segmentado, de modo que se permita a adição de um número infinito de recursos a um website.
Uma vez que a fundação básica estiver construída, poderemos nos ocupar dos desafios mais difíceis, tais
como a performance de um primeiro acesso, a compatibilidade do navegador e os vazamentos de memória
(memory leaks), as técnicas de cache avançadas, a colocação de muitos conteúdos e funcionalidade em
uma única página etc. Então, ingressaremos nos desafios reais do Ajax e do ASP.NET 2.0/3.5, os quais
foram solucionados em portais comerciais de grande volume.
Neste livro, também mencionamos inúmeros fatos reais que ressaltam alguns dos verdadeiros
problemas na construção de portais como o Dropthings. Encontraremos essas dificuldades, de forma
não surpreendente, quando nos depararmos com o título “Exemplos práticos”.
Por derradeiro, apresentaremos alguns dos desafios mais complexos em relação à escalabilidade e à
segurança dos portais web Ajax, além dos treze desastres mais comuns na produção dos aplicativos
web, o que atinge milhões de usuários em todo o mundo.
Realizaremos uma breve introdução sobre os atributos do portal web e dos aplicativos cuja construção
aprenderemos no decorrer do livro. Além disso, este capítulo demonstrará como o ASP.NET AJAX e o
.NET 3.5 são utilizados.
Forneceremos uma visão geral a respeito da arquitetura do Dropthings.com, bem como explicaremos
a arquitetura dos widgets e a construção de aplicativos web altamente segmentados por meio da
utilização dos widgets. Além disso, este capítulo retratará os desafios concernentes à performance
e à segurança dos websites com a tecnologia Ajax.
Explicaremos, detalhadamente, como os aplicativos web são construídos a partir de uma home page
e dos widgets. Demonstraremos, também, como as funções “arrastar” e “soltar” são disponibilizadas
pelo ASP.NET AJAX 1.0; como um widget é construído e como o ASP.NET 3.5 é utilizado para se
construir um servidor que faça parte de uma camada web.
xii | Prefácio
Demonstraremos como o LINQ é utilizados para se obter um posterior acesso aos dados e como o
.NET 3.0 é utilizado para se construir uma camada de negócios com a larga utilização do WF.
Demonstraremos como construir os widgets, utlizando-se o JavaScript, para se obter performances mais
rápidas e memória cache melhor. Demonstraremos, também, como um conteúdo ponte ou um servidor
proxy são construídos de modo que os widgets possam trazer conteúdos de uma fonte externa.
Aprofundaremos os estudos acerca dos princípios da tecnologia Ajax a fim de construirmos sites mais
rápidos e escalonáveis, com mais memória cachê disponível. Falaremos, especificamente, a respeito
dos desafios do navegador e de muitas técnicas desconhecidas, para se obter uma performance
máxima fora da estrutura do Ajax.
Um aplicativo web ASP.NET 2.0 possui algumas surpresas quanto à performance e à escalabilidade
quando os números de usuários dos websites aumentam, passando de centenas para milhares de
usuários. Aprenderemos, também, como resolver problemas concernentes à performance, à segurança
e à escalabilidade de um website que tenha um alto volume.
Os portais web Ajax concedem diversas funcionalidades ao navegador do cliente, de modo que
surgem desafios específicos quanto a ele, bem como problemas de performance do JavaScript.
Além disso, forneceremos muitas dicas para solucionar problemas em relação à sua velocidade e
memória, como também para que a Interface de Usuário (UI) carregue mais rapidamente e seja
mais responsiva.
O último passo para o desenvolvimento de um portal web é a instalação bem sucedida do produto
e sua execução em 24x7. Aprenderemos como instalar e executar um website que tenha alto
volume, resolvendo-se problemas quanto ao software, ao hardware, à hospedagem e à infra-
estrutura da Internet, itens que podem prejudicar nosso website e ocasionar grandes malefícios
a nossos negócios.
Pré-requisitos
Precisaremos do Visual Studio 2008 Professional Edition e do SQL Server 2005 Developer Edition, os quais
podem ser obtidos por meio de download no site www.codeplex.com/dropthings e instalados localmente.
Prefácio | xiii
Recursos gráficos
Os seguintes recursos gráficos são utilizados neste livro:
Indica títulos, opções e botões do menu, como também os atalhos do teclado (exemplos: Alt e Ctrl).
Itálico
Indica novos termos, URLs, endereços de e-mail, nomes de arquivos, extensões, nome do caminho,
diretórios e utilitários do Unix.
Largura contínua
Indica comandos, opções, chaves, variáveis, atributos, teclas, funções, tipo, classes, namespaces,
métodos, módulos, propriedades, parâmetros, valores, objetos, eventos, manipuladores de eventos,
caracteres de XML e de HTML, macros, conteúdo de arquivos ou saída de comandos.
Indica comandos ou outros textos que devem ser digitados ipisis literis pelos usuários.
xiv | Prefácio
É apreciada, apesar de não exigida, a referência bibliográfica, que, normalmente, inclui o título, o
autor, a editora e o ISBN da obra. Por exemplo: ZABIR, Omar AL. Construindo o Portal Web 2.0 com o
ASP.NET 3.5. AltaBooks: Rio de Janeiro, 2008, ISBN nº 978-0-596-51050-3.
Caso seja necessário requisitar a permissão para o uso dos códigos exemplificados, deve-se entrar
em contato com o e-mail altabooks@altabooks.com.br.
Agradecimentos
Meu profundo respeito e apreciação por meus pais, por seu suporte no momento em que escrevia esta
obra. Agradecimentos especiais a Mike Pope, da Microsoft, e a Craig Wills, da Infusion, pelo apoio
sincero, pelas idéias e pelas cuidadosas revisões.
Prefácio | xv