《用ASP.NET 3.5建立Web 2.0门户》

 “学习如何应用ASP.NET, .NET 3.5, LINQ, Windows WF以及更多(最新技术)来建立最尖端的Ajax网站”

前言

Web 2.0 Ajax门户站点属于Web 2.0时代最成功的网络应用。iGoogle和Pageflakes作为该市场的先入者率先展示了Ajax的潜能。门户站点给予用户一个个人化的主页,提供了对所有来自于网络的信息和娱乐的一站式访问同时为企业提供了交付强有力内容聚合的仪表盘。Web 2.0门户能够被作为一个内容仓库,就像一个SharePoint或者DotNetNuke的网站一样。因为它们凭借Ajax来交付丰富的客户端交互性,和非Ajax网站相比,Web 2.0网站改进了可用性同时提供了更快的性能表现。也因为门户通常由窗口组件(Widgets,小巧的、即插即用类型的应用程序)组成,你能够提供多少功能是没有限制的——只要简单地添加更多的窗口组件就行了。使用它们也保持了门户核心架构的干净和简单——因为窗口组件都是独立开发和维护的。DotNetNuke是强大的窗口组件门户概念非常好的例子,它在高度分离的企业网络应用程序方面开创了一个新的时代。

本书利用来自微软最新的尖端技术对门户解决方案进行了一次全新的观察。在开发个人、教育、社团和企业的门户期间,我处理过许多有趣的设计、开发、扩展性、性能以及生产环境的挑战。在本书中,我尝试着通过建立一个开放源码的Web 2.0门户原型来展示一些针对这些挑战的解决方案,接着带你领略设计和架构方面的挑战、高级Ajax概念、性能优化技术、以及相关的服务器端扩展性挑战。该原型同时向你展示了实用的尖端.NET 3.0和3.5框架实现方式,其中包括LINQ和Windows工作流基础(Windows Workflow Foundation)。此外,它还探索了Ajax网站的细节、浏览器性能兼容性挑战、安全挑战、以及ASP.NET AJAX框架的优缺点。

该项目提供在www.dropthings.com。Dropthings是个开放源码的例子,它告诉你用微软的新技术到底可以做出什么来,这只作为教学目的之用。虽然它的确在特性、性能、安全和扩展性方面和真实的网络门户(如Pageflakes)非常相像,但它的主要目的是向你展示如何把几个新技术在一个正常运转的Web应用程序中放在一起。

*本书写给谁

本书主要写给那些已经开发了一个或多个Web应用程序、同时很好把握了JavaScript和ASP.NET 2.0的ASP.NET 2.0或3.5的程序员。我们还期望读者能够对ASPNET AJAX有个基本的了解。该信息能在大量的出版物中找到,包括一些在本书路线图上列出的O'Reilly出版物。

寻找洞悉网络开发挑战之道和学习一个成功运作的网站是如何建立和运行的中级程序员将从本书中获益非浅。高级程序员将学习如何创建一个坚如磐石的网络应用程序,它能够抵抗每天24小时数百万的点击、从突发的扩展性需求中幸存、防止黑客企图和拒绝服务攻击、利用内容交付网络在分布式集群环境中部署和运行网站、面对现实生活的产品挑战等等。

*本书如何组织
*使用本书,你需要什么
*本书使用的命名约定
*利用代码样本
*Safari在线图书
*如何联系我们
*致谢

1。Web门户和Dropthings.com介绍

1.1 Web门户定义
1.2 Web 2.0门户定义
1.3 使用Web门户
1.3.1 具有Ajax能力的起始页是如何的不同
1.4 Dropthings导航
1.5 使用ASP.NET AJAX
1.6 使用C# 3.0和.NET 3.5
1.7 总结
1.7.1 补充资源

2。Web门户和窗口组件构建

2.1 对象模型
2.2 应用程序组件
2.3 数据模型
2.4 解决方案文件
2.5 更新面板
2.6 拖放操作
2.7 使用窗口组件框架
2.7.1 设计窗口组件容器
2.8 添加窗口组件
2.9 最大化初次访问体验
2.10 渲染再次访问体验
2.11 改进ASP.NET AJAX性能
2.11.1 服务器端渲染对比客户端渲染
2.11.2 运行时大小分析
2.11.3 减少扩展和UpdatePanels来改善浏览器响应
2.11.4 Debug模式对Release模式的比较
2.12 添加认证和授权
2.13 防止拒绝服务攻击
2.14 总结

3。用ASP.NET AJAX建立Web层

3.1 实现Web门户的起始页
3.1.1 现实生活举例:当缓存不为你工作时
3.1.2 Header区域
3.1.3 添加原料区域:窗口组件相册
3.1.4 标签条
3.1.5 窗口组件区域:三列窗口组件视图
3.1.6 加载起始页
3.2 为多列放置区建立自定义的拖放扩展
3.3 实现WidgetContainer
3.3.1 WidgetContainer.cs
3.3.1.1 更新
3.3.1.2 保存和编辑
3.3.1.3 添加InstanceID
3.3.1.4 关闭窗口组件
3.4 建立窗口组件
3.4.1 建立一个Flikr照片窗口组件
3.4.1.1 Flikr窗口组件用户界面控件
3.4.2 建立一个Atom或RSS窗口组件
3.5 页面转换:模拟无回送体验
3.6 在Web服务中使用Profile对象
3.7 实现认证和授权
3.8 实现注销
3.8.1 Handlers
3.9 总结
3.9.1 补充资源

4。用.NET 3.5建立数据和业务层

4.1 介绍LINQ to SQL
4.2 用LINQ to SQL建立数据访问层
4.2.1 用Visual Studio 2008设计器生成数据模型
4.2.2 用数据库助手操作数据
4.2.3 清除不活动的用户及相关数据
4.3 介绍Windows工作流基础
4.4 用工作流建立业务层
4.4.1 映射用户行为到工作流
4.4.2 用新用户处理初次访问
4.4.3 用已存在用户处理再次访问
4.4.4 添加新标签
4.4.5 移动窗口组件
4.5 实现DashboardFacade
4.5.1 实现WorkflowHelper类
4.6 总结

5。建立客户端窗口组件

5.1 延迟服务器端窗口组件加载
5.1.1 延迟RSS/Atom窗口组件加载
5.1.2 延迟Flikr照片窗口组件加载
5.1.3 延迟窗口组件加载的问题
5.2 内容代理
5.2.1 内容代理Web服务
5.2.2 内容代理Web服务的挑战
5.3 建立客户端RSS窗口组件
5.4 建立客户端Flikr窗口组件
5.5 总结

6。优化ASP.NET AJAX

6.1 在一次调用中捆绑多个Ajax调用
6.2 对服务器进行Ajax调用的时间安排和次序
6.2.1 错误的调用使正确的调用超时
6.2.2 现实生活:解决超时的错误报告
6.2.2.1 常见问题
6.2.3 队列中有两个或更多调用时浏览器失去响应
6.2.4 在浏览器上缓存Web服务响应
6.3 使用HTTP GET调用代替HTTP POST
6.4 和this功能一起工作
6.5 总结

7。创建异步的、交互的、缓存友好的Web服务

7.1 Web服务的扩展性挑战
7.1.1 现实生活:修复在请求管道中的堵车
7.2 异步Web方法
7.3 修改ASP.NET AJAX框架来处理Web服务调用
7.3.1 初始化缓存策略
7.4 开发你自己的Web服务处理器
7.4.1 异步Web服务处理器基础
7.4.2 为Web方法添加事务处理能力
7.4.3 添加缓存信息头
7.4.4 现实生活:异常处理
7.4.5 使用属性
7.4.6 处理状态对象
7.5 做个异步及缓存友好的代理
7.6 缩放和保护内容代理
7.6.1 保持速度
7.6.1.1 连接管理
7.6.1.2 DNS解析
7.6.2 避免代理滥用
7.6.3 抵御拒绝服务攻击
7.7 总结

8。改进服务器端的性能和扩展性

8.1 检测代码以辨别性能问题
8.2 优化HTTP管道
8.3 优化ASP.NET 2.0/3.5
8.4 优化ASP.NET成员表中的查询
8.4.1 现实生活:查询ASP.NET成员表
8.5 优化ASP.NET 2.0/3.5配置文件提供者
8.5.1 现实生活:优化存储过程
8.5.2 访问配置文件提供者的使用
8.5.3 用Email作为用户名
8.5.4 现实生活:用Email作为用户名的故障诊断
8.5.5 在ASP.NET 2.0/3.5成员提供者中更改用户名
8.5.6 把页面部件渲染为JavaScript
8.5.6.1 使用HttpModule
8.5.6.2 HttpModule细节
8.6 ASP.NET产品挑战
8.6.1 修复Cookie身份认证问题
8.6.1.1 生成键值
8.6.1.2 每台机器需要一个键值
8.7 把访问从旧站点重定向到新站点
8.7.1 现实生活:避免切换托管提供者时的停机时间
8.8 总结

9。改进客户端性能

9.1 理解Web缓存
9.1.1 Web缓存基础
9.1.2 Web缓存类型
9.1.3 Web缓存问题
9.1.4 Web缓存如何工作
9.1.5 控制响应缓存
9.1.5.1 HTML元标签和HTML信息头
9.1.5.2 响应信息头中的缓存控制
9.1.5.3 Progma HTML信息头
9.1.5.4 用过期的HTTP信息头控制缓存
9.1.5.5 Cache-Control HTML信息头
9.1.5.6 ETag,最后修改的信息头
9.1.6 缓存的最佳使用原则
9.1.7 在IIS中如何配置静态内容缓存
9.2 内容交付网络
9.2.1 没有内容交付网络情况下检测网站性能
9.2.2 不同类型的内容交付网络
9.3 优化IE JavaScript性能
9.3.1 减少IE符号的检查
9.3.1.1 评估本地变量
9.3.1.2 减少对DOM元素的符号检查
9.3.1.3 利用对DOM元素、属性和方法进行缓存来加速符号检查
9.3.2 缓解IE内存泄漏
9.3.2.1 避免使用事件处理器作为结束
9.3.2.2 使用范围外方法
9.3.2.3 删除DOM元素
9.4 减少Web服务调用的工作负荷
9.5 按需调用用户界面
9.6 为Ajax调用使用预读缓存
9.7 在“文本区域”标签中隐藏HTML
9.8 总结

10。解决常见的部署、托管、以及生产的挑战

10.1 在Web农场中部署你的网站
10.2 任何时候都可能发生的13个生产性灾难
10.3 选择正确的托管提供者
10.4 选择网站监测工具
10.5 配置正确的性能计数器
10.6 总结

你可能感兴趣的:(C/C++/C#,asp.net,web,web服务,ajax,dotnetnuke,httpmodule)