ASP.NET 3.5 Web 2.0门户站点 中文版上市
基于Ajax技术构建的Portal是Web 2.0这一代中最为成功的Web应用程序。在这块市场上iGoogle和Pageflakes这两大站点已经走在了时代的前列,同时他们也首次把Ajax的真正潜能挖掘了出来。这些门户站点为个人用户提供了非常个性化的主页,使得他们仅仅通过一个站点就能获取整个互联网上自己关心的信息和娱乐信息,同时也为企业信息内容整合带来了巨大的帮助。企业可以使用基于Web 2.0的 Portal进行内部内容存储和管理,其功能就象SharePoint或DotNetNuke这些站点一样。由于他们采用了Ajax技术来丰富客户端体验,因此基于Web 2.0的 Portal相比于未采用Ajax技术构建的Web站点具有更强的可用性和更快的响应能力。也因为Portal本身是由很多普通的Widgets(小工具、部件)构成(小型插拔式的应用程序),因此对于你需要通过添加更多的Widgets部件来为站点提供更多的功能没有进行限制。Widget部件的开发和维护都是单独进行的,因此他们可以保持整个Portal的核心架构使其外观看起来更干净、使用时更简便。DotNetNuke是一个在Portal中推动Widget部件开发模式的很好例子,他为开发低耦合的企业级Web应用程序开创了一个新时代。
本书通过使用微软最新、最尖端的技术并以崭新的视觉来看待Portal的解决方案。在开发个人、教育、社区、以及企业Portal的过程中,我曾遇到过很多有趣的设计、开发、可扩展性、性能及生产的挑战。在本书中,我试图通过构建一个开源的基于Web 2.0的Portal原型来展示解决这些问题所要面临的一系列挑战,然后循序渐进地告诉你需要面对的包括设计和架构、高级的AJAX应用、性能优化技术、以及服务端可扩展性等在内的挑战。该Portal原型也为你带来了很多新技术的实践实现机会,他们包括:.NET 3.0、.NET 3.5框架、LINQ、Windows Workflow Foundation等最新技术。此外,还探讨了实现基于Ajax技术的站点构建细节,及面临的一些如:浏览器的性能、兼容性、安全等方面的挑战,同时也针对ASP.NET AJAX框架的优点和缺点进行了探讨。
关于该案例可参见www.dropthings.com站点。Dropthings是一个开源的案例,他用以说明使用微软的最新技术到底能实现什么样的功能。本案例仅供学习使用。虽然就他提供的一系列特性如:性能、安全、和可用性等而言很接近一个真实的Web Portal了,但是我并不建议你在一个商业Web程序中使用很多新技术做法。
谁适合这本书
这本书主要针对ASP.NET 2.0 或3.5的开发人员,他们应该已经开发过1个或多个Web程序并且对JavaScript和ASP.NET 2.0有相当的熟悉。也包括希望对ASP.NET AJAX技术有个充分了解的读者。这些信息在很多出版刊物中都都能见到,其中包括很多放在本书导航页列表里O'Reilly的介绍。
对于中级开发人员,为了寻找一种新途径来深入了解Web开发所面临的挑战,并想学习如何成功构建一个真正的Web站点然后正常运行起来的读者,将从这本书中获得更大的益处。高级开发人员将学习到如何构建一个坚固结实的Web程序。使其能够承受每天数百万的点击访问量、因突发事件而引起的功能扩展需求、阻止黑客攻击和决绝服务(DoS)攻击、利用内容传送网络(CDN)将站点部署和运行在一个分布式集群环境中、面对真实产品环境中的问题挑战、等等很多。
本书结构
本书首先描述了什么是一个基于Ajax技术的Web Portal (确切的说应为一个基于Web 2.0的Portal)并且讲述了如何为更多类型的Web站点提供一种有用的模式,如:个人站点、企业内部网、或大众消费的Web应用。然后为你讲解了该类应用程序所面临的架构挑战,并为解决这些设计问题提供一个循序渐进的指导。阐述了什么是Widget部件以及如何架构设计Widget部件来满足在站点上添加无限多特性的情况下,能创建一个高度解耦的Web应用程序。
以下各章,你会一步一步找到对应内容的导航,通过使用ASP.NET 2.0/3.5 和ASP.NET AJAX 1.0开发某些Web工程的组件、使用Workflow Foundation构建业务层、LINQ to SQL构建数据访问层。一旦这些基础设施建立起来,就会面临很多稍微困难的挑战,象用户第一次访问时站点的性能问题、浏览器兼容和内存泄露问题、高级缓存技术问题、把太多的内容和功能放到一个单独页面所出现的问题等等。然后还会面临一些现实生活中有关Ajax和 ASP.NET 2.0/3.5应用的挑战,同时在我构建过的一个高伸缩性的商业Portal中这些挑战都已经得到了解决。
贯穿本书,我也分享了一些实际场景的开发心得,并突出显示我在构建Portal的过程中比如象:Dropthings所遇到的一些实际问题。因此,无论在本书中这个术语"实际情况(Real-Life)"出现在那里都并不奇怪。
最后,针对基于Ajax技术构建的Portal展示了一些很难解决的问题:扩展性的挑战、安全性的挑战。和对于一些普通的其站点用户分布全世界并达到数百万的Web程序会出现的13种灾难问题。
章节概述
本书共包括10章,每章的主要内容如下:
第1章“Web Portals和Dropthings.com简介” 向你介绍Web Portal的一些概念,以及将在本书中构建的案例概述。第1章中还为你展示了如何在你的产品中应用ASP.NET AJAX 和.NET 3.5技术。
第2章“Web Portal 和 Widgets架构” 为你展示dropthings.com站点的一个架构概况。也阐述了Widget部件的架构以及如何使用Widget部件构建一个高度解耦的Web应用程序。这会涉及到一些基于AJAX的Web应用所面临的性能和安全方面的挑战。
第3章“使用ASP.NET AJAX构建Web界面层” 从主页到Widget部件,对于如何构建这种Web程序给出了一个详细的阐述。也展示了如何使用.NET框架提供的ASP.NET AJAX 1.0实现拖拽功能、如何构建一个真实的Widget部件、及如何使用ASP.NET 3.5来构建服务端的Web界面层。
第4章“使用.NET 3.5构建数据和业务层” 展示了如何使用LINQ来构建数据访问层和使用.NET 3.0中的Workflow Foundation来构建业务层。
第5章“构件客户端Widget部件” 展示了如何使用JavaScript来构建基于客户端的Widget部件以此来提升性能和达到优化缓存的目的。也展示了如何构建一个内容桥或代理服务以允许Widget部件从外部源抓取内容。
第6章“优化ASP.NET AJAX” 深入发掘基于Ajax技术的原理来使站点运行更快并加强站点缓存的友好性和可扩展性。他讨论了关于浏览器性能的一些具体问题,也讨论了很多通过Ajax框架(在Ajax框架中)来最优化浏览器性能的技术。
第7章“创建异步、事务化、缓存友好的Web服务” 展示了如何构建一个调用了Ajax句炳的自定义Web服务,这样可以克服ASP.NET AJAX 1.0中的一些缺点,并使你的Web服务变得具有异步、事务化、和更友好的缓存。也谈到了主要依赖Web服务的Web应用程序面临的可伸缩性和安全性挑战。
第8章“提升服务端的性能和伸缩性” 一个基于ASP.NET 2.0的 Web应用程序当其站点用户从数百人到数百万的时候,提高性能和可伸缩性会给你带来意象不到的惊喜。了解如何解决这种高访问量的Web站点面临的性能、可靠性、和可伸缩性的挑战。
第9章“提升客户端的性能” 基于Ajax的Web站点为客户端浏览器提供了很多功能并介绍了很多浏览器面临的具体挑战和JavaScript性能问题。本章提供了很多策略方法来克服浏览器上的速度和内存问题。并且使得UI加载更快和更快的响应。
第10章“应对普通的部署、主机、和产品挑战” Web项目开发的最后一步就是成功的部署产品并运行他。了解如何才能部署和运行一个高产量的Web站点需要解决软件、硬件、主机、和Internet设施等问题。这些因素都会对你的站点以及业务造成及大的不利。
使用本书需要什么
你需要Visual Studio 2008 Professional Edition版本 和 SQL Server 2005 Developer Edition版本。你可以下载该开源项目的最新源代码:www.codeplex.com/dropthings然后在本地安装配置他。
以Dropthings命名运行的开源项目将因你的贡献而获益。欢迎加入开发行列,你可以对现有核心框架进行扩展或为该项目构建一些新的Widget部件。