内容简介
第一部分 核心概念
第1章ASP.NET简介
1.1 ASRNET的7大要点
1.1.1要点1:ASP.NET是同.NET Framework集成在一起的
1.1.2要点2:ASP.NET是编译执行的,而不是解释执行的
1.1.3要点3:ASP.NET支持多语言
1.1.4要点4:ASP.NET运行在公共语言运行库内
1.1.5要点5:ASP.NET是面向对象的
1.1.6要点6:ASP.NET支持所有的浏览器
1.1.7要点7:ASP.NET易于部署和配置
1.2 ASRNET的演变
1.2.1 ASP.NET 1.0和ASP.NET1.1
1.2.2 ASP.NET 2.0
1.2.3 ASP.NET 3.5
1.2.4 ASP.NET 4
1.2.5 Silverlight
1.3总结
第2章Visual Studio
2.1 Visual Studio
2.1.1网站和Web项目
2.1.2创建无项目文件的网站
2.1.3设计网页
2.2 Visual StudiolDE
2.2.1解决方案资源管理器
2.2.2文档窗口
2.2.3工具箱
2.2.4错误列表和任务列表
2.2.5服务器资源管理器
2.3代码编辑器
2.3.1添加程序集引用
2.3.2智能感知和大纲显示
2.3.3 Visual Studio 2010改进
2.4编码模型
2.4.1代码隐藏文件如何与页面连接
2.4.2控件标签如何与页面变量连接
2.4.3事件如何与事件处理程序连接
2.5 Web项目
2.5.1基于项目的开发
2.5.2创建Web项目
2.5.3迁移旧版Visual Studio创建的网站
2.6 Visual Studio调试
2.6.1单步调试
2.6.2变量监视
2.6.3高级断点
2.7 Web Development Helper
2.8总结
第3章Web窗体
3.1页面处理
3.1.1 HTML表单
3.1.2动态用户界面
3.1.3 ASP.NET事件模型
3.1.4自动回送
3.1.5视图状态
3.1.6 XHTML兼容性
3.1.7客户端控件ID
3.2 Web窗体处理阶段
3.2.1页面框架初始化
3.2.2用户代码初始化
3.2.3验证
3.2.4事件处理
3.2.5自动数据绑定
3.2.6清除
3.2.7页面流示例
3.3作为控件容器的页面
3.3.1显示控件树
3.3.2页头
3.3.3动态控件的创建
3.4 Page类
3.4.1 Session、 Application和Cache
3.4.2 Request
3.4.3 Response
3.4.4 Server
3.4.5 User
3.4.6Trace
3.4.7访问其他类中的HTTP上下文
3.5总结
第4章 服务器控件
4.1服务器控件的类型
4.2 HTML服务器控件
4.2.1 HtmlControl类
4.2.2 HtmlContainerControl类
4.2.3HtmlInputControl类
4.2.4 HTML服务器控件类
4.2.5设置Style特性和其他属性
4.2.6通过编程创建服务器控件
4.2.7处理服务器端事件
4.3 Web控件
4.3.1 WebControl基类
4.3.2基本的Web控件类
4.3.3单位
4.3.4枚举
4.3.5颜色
4.3.6字体
4.3.7焦点
4.3.8默认按钮
4.3.9可滚动面板
4.3.10处理Web控件事件
4.4 List控件
4.4.1 Selectable列表控件
4.4.2 BulletedList控件
4.5输入验证控件
4.5.1验证控件
4.5.2验证流程
4.5.3 BaseValidator类
4.5.4 RequiredFieldValidator控件
4.5.5 RangeValidator控件
4.5.6 CompareValidator控件
4.5.7 RegularExpressionValidator控件
4.5.8 CustomValidator控件
4.5.9 ValidationSummary控件
4.5.10通过编程使用验证器
4.5.11验证组
4.6富控件
4.6.1 AdRotator控件
4.6.2 Calendar控件
4.7总结
第5章ASRNET应用程序
5.1剖析ASPNET应用程序
5.1.1应用程序域
5.1.2应用程序生命周期
5.1.3应用程序更新
5.1.4应用程序目录结构
5.2 global.asax应用程序文件
5.2.1应用程序事件
5.2.2演示应用程序事件
5.3 ASP.NET配置
5.3.1 machine.config文件
5.3.2 web.config文件
5.3.3 <system.web>设置
5.3.4 <system.webServer>
5.3.5 <appSettings>
5.3.6 <connectionStrings>
5.3.7通过编程读写配置节
5.3.8网站管理工具(WAT)
5.3.9扩展配置文件结构
5.3.10加密配置节
5.4 .NET组件
5.4.1创建组件
5.4.2通过App_Code目录使用组件
5.4.3通过 Bin目录使用组件
5.5扩展HTTP管道
5.5.1 HTTP处理程序
5.5.2创建自定义的HTTP处理程序
5.5.3配置自定义的HTTP处理程序
5.5.4使用无须配置的HTTP处理程序
5.5.5创建高级的HTTP处理程序
5.5.6为非HTML内容创建HTTP处理程序
5.5.7 HTTP模块
5.5.8创建自定义HTTP模块
5.6总结
第6章 状态管理
6.1 ASPNET状态管理
6.2视图状态
6.2.1视图状态示例
6.2.2在视图状态中保存对象
6.2.3视图状态评估
6.2.4有选择地禁用视图状态
6.2.5视图状态安全
6.3在页面间传送信息
6.3.1查询字符串
6.3.2跨页回发
6.4 cookie
6.5会话状态
6.5.1会话架构
6.5.2使用会话状态
6.5.3配置会话状态
6.5.4会话状态安全
6.6应用程序状态
6.7总结
第二部分 数据访问
第7章ADONET基础
7.1 ADONET架构
7.1.1 ADONET数据提供程序
7.1.2 ADONET的标准化
7.1.3基本ADONET类
7.2 Connection类
7.2.1连接字符串
7.2.2测试连接
7.2.3连接池
7.3 Command类和DataReader类
7.3.1 Command基础
7.3.2 DataReader类
7.3.3 ExecuteReader()方法和DataReader
7.3.4 ExecuteScalar()方法
7.3.5 ExecuteNonQuery()方法
7.3.6 SQL注入攻击
7.3.7使用参数化命令
7.3.8调用存储过程
7.4事务
7.4.1事务和ASPNET应用程序
7.4.2隔离级别
7.4.3保存点
7.5提供程序无关的代码
7.5.1创建工厂
7.5.2用工厂创建对象
7.5.3使用提供程序无关的代码的查询
7.6总结
第8章 数据组件和DataSet
8.1构建数据访问组件
8.1.1数据包
8.1.2存储过程
8.1.3数据应用类
8.1.4测试数据库组件
8.2非连接的数据
8.2.1 Web应用程序和DataSet
8.2.2 XML集成
8.3 DataSet类
8.4 DataAdapter类
8.4.1填充DataSet
8.4.2使用多个表和关系
8.4.3查找特定行
8.4.4在数据访问类里使用DataSet
8.4.5数据绑定
8.5 DataView类
8.5.1使用DataView排序
8.5.2使用DataView过滤
8.5.3使用关系的高级过滤
8.5.4计算列
8.6总结
第9章 数据绑定
9.1基本的数据绑定
9.1.1单值绑定
9.1.2其他类型的表达式
9.1.3重复值绑定
9.2数据源控件
9.3 SqlDataSource
9.3.1选择记录
9.3.2参数化命令
9.3.3错误处理
9.3.4更新记录
9.3.5删除记录
9.3.6插入记录
9.3.7 SqlDataSource的不足
9.4 ObjectDataSource
9.4.1选择记录
9.4.2更新记录
9.4.3使用数据对象执行更新
9.5数据源控件的限制
9.5.1问题
9.5.2添加其他项
9.5.3使用SqlDataSource处理其他选项
9.5.4使用ObjectDataSource处理其他选项
9.6总结
第10章 富数据控件
10.1 GridView
10.2格式化GridView
10.2.1格式化字段
10.2.2样式
10.2.3格式化特定值
10.3 GridView行选择
10.3.1使用选择来创建主—从表单
10.3.2 SelectedIndexChanged事件
10.3.3将数据字段用作选择按钮
10.4对GridView排序
10.4.1使用SqlDataSource排序
10.4.2使用ObjectDataSource排序
10.4.3排序和选择
10.4.4高级排序
10.5 GridView分页
10.5.1自动分页
10.5.2分页和选择
10.5.3 ObjectDataSource的自定义分页
10.5.4定制分页栏
10.6 GridView模板
10.6.1使用多个模板
10.6.2在Visual Studio中编辑模板
10.6.3绑定到方法
10.6.4处理模板中的事件
10.6.5使用模板编辑
10.6.6模板中的客户端
10.7 ListView
10.7.1分组
10.7.2分页
10.8 DetailsView和FormView
10.8.1 DetailsView
10.8.2 FormView
10.9高级网格
10.9.1 GridView中的汇总
10.9.2单个表中的父/子视图
10.9.3使用查找表编辑字段
10.9.4处理来自数据库的图片
10.9.5探测并发冲突
10.10总结
第11章 缓存和异步页面
11.1理解ASENET缓存
11.2输出缓存
11.2.1声明性的输出缓存
11.2.2缓存和查询字符串
11.2.3使用特定查询字符串参数的缓存
11.2.4自定义缓存控制
11.2.5使用HttpCachePolicy类进行缓存
11.2.6缓存后替换和部分页缓存
11.2.7缓存用户配置
11.2.8缓存配置
11.2.9输出缓存扩展
11.3数据缓存
11.3.1向缓存添加项目
11.3.2简单的缓存测试
11.3.3缓存优先级
11.3.4使用数据源控件的缓存
11.4缓存依赖
11.4.1文件和缓存项目依赖
11.4.2聚合依赖
11.4.3移除项目回调
11.4.4理解SQL缓存通知
11.4.5缓存通知的工作方式
11.4.6启用通知
11.4.7创建缓存依赖
11.5自定义缓存依赖
11.5.1基本的自定义缓存依赖
11.5.2使用消息队列的自定义缓存依赖
11.6异步页面
11.6.1创建异步页面
11.6.2在异步页面中查询数据
11.6.3错误处理
11.6.4在异步任务中使用缓存
11.6.5多异步任务和超时
11.7总结
第12章 文件和流
12.1使用文件系统
12.1.1 Directory类和File类
12.1.2 DirectoryInfo类和FileInfo类
12.1.3 DriveInfo类
12.1.4使用Attributes
12.1.5使用通配符过滤文件
12.1.6获取文件的版本信息
12.1.7 Path类
12.1.8文件浏览器
12.2使用流读写文件
12.2.1文本文件
12.2.2二进制文件
12.2.3上传文件
12.2.4使文件对多用户安全
12.2.5压缩
12.3序列化
12.4总结
第13章LINQ
13.1 LINQ基础
13.1.1延迟执行
13.1.2 LINQ是如何工作的
13.1.3 LINQ表达式
13.1.4揭秘LINQ表达式
13.2 LINQ to DataSet
13.2.1强类型的DataSet
13.2.2空值
13.3 LINQ to Entities
13.3.1生成数据模型
13.3.2数据模型类
13.3.3实体关系
13.3.4查询存储过程
13.3.5 LINQ to Entities查询揭
13.4数据库操作
13.4.1插入
13.4.2更新
13.4.3删除
13.4.4管理并发
13.4.5处理并发冲突
13.5 EntityDataSource控件
13.5.1显示数据
13.5.2获取关联数据
13.5.3编辑数据
13.5.4验证
13.6使用QueryExtender控件
13.6.1使用SearchExperssion
13.6.2使用RangeExpression
13.6.3使用PropertyExpression
13.6.4使用MethodExpression
13.7总结
第14章XML
14.1什么时候使用XML
14.2 XML简介
14.2.1 XML的优点
14.2.2格式良好的XML
14.2.3 XML命名空间
14.2.4 XML架构
14.3基于流的XML处理
14.3.1写XML文件
14.3.2读取XML文件
14.4内存中的XML处理
14.4.1 XmlDocument
14.4.2 XPathNavigator
14.4.3 XDocument
14.5搜索XML内容
14.5.1搜索XmlDocument
14.5.2使用XPath搜索XmlDocument
14.5.3使用LINQ搜索XDocument
14.6验证XML内容
14.6.1基本架构
14.6.2验证XmIDocument
14.6.3使用XDocument进行验证
14.7转换XML内容
14.7.1基本的样式表
14.7.2使用XslCompiledTransform
14.7.3使用Xml控件
14.7.4使用LINQ to XML转换 XML
14.8 XML数据绑定
14.8.1非层次化绑定
14.8.2使用XPath
14.8.3嵌套的网格
14.8.4使用TreeView的层次化绑定
14.8.5使用XSLT
14.8.6绑定到来自其他源的XML内容
14.8.7通过XmIDataSource更新XML
14.9 XML和ADONET数据集
14.9.1把DataSet转换为XML
14.9.2把DataSet作为XML访问
14.10总结
第三部分 构建ASP.NET网站
第15章 用户控件
15.1用户控件基础
15.1.1创建简单的用户控件
15.1.2把页面转换成用户控件
15.2为用户控件添加代码
15.2.1处理事件
15.2.2添加属性
15.2.3使用自定义对象
15.2.4添加事件
15.2.5公开内部Web控件
15.3动态加载用户控件
15.4局部页面缓存
15.4.1 VaryByControl
15.4.2共享缓存控件
15.5总结
第16章 主题和母版页
16.1层叠样式表
16.1.1创建样式表
16.1.2应用样式表规则
16.2主题
16.2.1主题文件夹和外观
16.2.2应用简单主题
16.2.3处理主题冲突
16.2.4为同一控件创建多个外观
16.2.5含有模板和图片的外观
16.2.6在主题里使用CSS
16.2.7通过配置文件来应用主题
16.2.8动态应用主题
16.3标准化网站布局
16.4母版页基础
16.4.1简单的母版页
16.4.2简单的内容页
16.4.3默认内容
16.4.4具有表格和CSS布局的母版页
16.4.5母版页和相对路径
16.4.6通过配置文件应用母版页
16.5高级母版页
16.5.1和母版页类交互
16.5.2动态设置母版页
16.5.3嵌套母版页
16.6总结
第17章 网站导航
17.1多视图页面
17.1.1 MultiView控件
17.1.2 Wizard控件
17.2站点地图
17.2.1定义站点地图
17.2.2绑定站点地图
17.2.3导航路径
17.2.4显示站点地图的一部分
17.2.5站点地图对象
17.2.6加入自定义站点地图信息
17.2.7创建自定义的 SiteMapProvider
17.2.8安全调整
17.3 URL映射和路由
17.3.1 URL映射
17.3.2 URL路由
17.4 TreeView控件
17.4.1 TreeNode
17.4.2按需填充节
17.4.3 TrecView样式
17.5 Menu控件
17.5.1 Menu样式
17.5.2 Menu模板
17.6总结
第18章 网站部署
18.1安装和配置HS
18.1.1安装HS 7
18.1.2管理IIS 7
18.2部署网站
18.2.1通过复制文件进行部署
18.2.2使用Web部署
18.2.3通过FTP部署
18.3管理网站
18.3.1创建新站点
18.3.2创建虚拟目录
18.3.3使用VirtualPathProvider
18.3.4使用应用程序池
18.3.5使用应用程序预热
18.4扩展集成管道
18.4.1创建处理程序
18.4.2部署处理程序
18.4.3配置处理程序
18.4.4测试处理程序
18.5总结
第四部分 安全
第19章ASP NET安全模型
19.1为何创建安全软件
19.1.1理解潜在的威胁
19.1.2安全编程原则
19.1.3理解Gatekeeper
19.2理解安全级别
19.2.1验证
19.2.2授权
19.2.3机密性和完整性
19.2.4互相协作
19.3理解SSL
19.3.1理解证书
19.3.2理解SSL
19.3.3在IIS 7x中配置 SSL
19.4总结
第20章 表单验证
20.1表单验证介绍
20.1.1为什么使用表单验证
20.1.2为什么不使用表单验证
20.1.3为什么不自己实现cookie 验证
20.1.4表单验证类
20.2实现表单验证
20.2.1配置表单验证
20.2.2禁止匿名用户访问
20.2.3创建自定义登录页面
20.2.4自定义凭证存储
20.2.5表单验证中的持久化cookie
20.3 IIS 7x和表单验证
20.4总结
第21章 成员资格
21.1介绍ASP NET的成员资格API
21.2使用成员资格API
21.2.1配置表单验证
21.2.2创建数据存储
21.2.3配置连接字符串和成员资格提供程序
21.2.4创建并验证用户
21.3使用安全控件
21.3.1 Login控件
21.3.2 LoginStatus控件
21.3.3 LoginView控件
21.3.4 PasswordRecovery控件
21.3.5 ChangePassword控件
21.3.6 CreateUserWizard控件
21.4在HS 7x里配置成员资格
21.4.1配置提供程序和用户
21.4.2在其他应用程序里使用成员资格API
21.5使用Membership类
21.5.1从存储中获得用户
21.5.2更新存储中的用户
21.5.3创建和删除用户
21.5.4检验用户
21.6总结
第22章Windows验证
22.1介绍Windows验证
22.1.1为什么使用Windows验证
22.1.2为什么不使用Windows验证
22.1.3 Windows验证机制
22.2实现Windows验证
22.2.1配置IIS 7x
22.2.2配置ASP.NET
22.2.3 IIS 7x管道
22.2.4禁止匿名用户访问
22.2.5访问Windows用户信息
22.3身份模拟
22.3.1 Windows中的身份模拟和委托
22.3.2经过配置的身份模拟
22.3.3可编程的身份模拟
22.4总结
第23章 授权和角色
23.1 URL授权
23.2文件授权
23.3在代码中检查授权
23.3.1使用IsInRole()方法
23.3.2使用PrincipalPermission类
23.4为基于角色的授权使用角色API
23.4.1和角色一起使用LoginView 控件
23.4.2通过编程访问角色
23.4.3在Windows验证中使用角色 API
23.5 IIS 7x里的授权和角色
23.5.1在IIS 7x里使用ASP.NET 角色授权
23.5.2在IIS 7x中管理ASP.NET角色
23.6总结
第24章 用户配置
24.1理解用户配置
24.1.1用户配置的性能
24.1.2用户配置如何存储数据
24.1.3用户配置和验证
24.1.4用户配置与自定义的数据组件
24.2使用SqlProfileProvider
24.2.1创建用户配置表
24.2.2配置提供程序
24.2.3定义用户配置属性
24.2.4使用用户配置属性
24.2.5用户配置序列化
24.2.6用户配置组
24.2.7用户配置和自定义的数据类型
24.2.8用户配置API
24.2.9匿名用户配置
24.3自定义的用户配置提供程序
24.3.1自定义的用户配置提供程序类
24.3.2设计FactoredProfileProvider
24.3.3通过编码实现 FactoredProfileProvider
24.3.4 测试FactoredProfileProvider
24.4总结
第25章 加密
25.1加密数据:机密性问题
25.2 .NET加密命名空间
25.3理解.NET加密类
25.3.1对称加密算法
25.3.2非对称加密
25.3.3抽象加密类
25.3.4 ICryptoTransform接口
25.3.5 CryptoStream类
25.4加密敏感数据
25.4.1管理秘密信息
25.4.2使用对称算法
25.4.3使用非对称算法
25.4.4加密数据库中的敏感数据
25.5加密查询字符串
25.5.1包装查询字符串
25.5.2创建一个测试页面
25.6总结
第26章 自定义成员资格提供程序
26.1自定义提供程序的架构
26.2创建自定义提供程序的基本步骤
26.2.1自定义提供程序的总体设计
26.2.2设计并实现自定义存储
26.2.3实现提供程序类
26.2.4使用自定义提供程序类
26.3总结
第五部分 高级用户界面
第27章 自定义服务器控件
27.1自定义服务器控件入门
27.1.1创建简单的自定义控件
27.1.2使用自定义控件
27.1.3工具箱中的自定义控件
27.1.4创建支持样式属性的Web控件
27.1.5呈现过程
27.2处理不同的浏览器
27.2.1 HtmlTextWriter
27.2.2浏览器检测
27.2.3浏览器属性
27.2.4覆盖浏览器类型侦测
27.2.5自适应呈现
27.3控件状态和事件
27.3.1视图状态
27.3.2控件状态
27.3.3回传数据和change事件
27.3.4触发回传
27.4扩展现有的Web控件
27.4.1组合控件
27.4.2派生控件
27.5总结
第28章 图形、GDI+和图表
28.1 ImageMap控件
28.1.1创建热点
28.1.2处理热点单击
28.1.3自定义热点
28.2使用GDI+画图
28.2.1简单绘制
28.2.2图像格式和质量
28.2.3 Graphics类
28.2.4使用Graphi csPath
28.2.5画笔
28.2.6画刷
28.3在网页上嵌入动态图形
28.3.1使用PNG格式
28.3.2传递信息给动态图像
28.3.3使用GDI+的自定义控件
28.4使用Chart控件
28.4.1创建基本的图表
28.4.2用数据填充图表
28.5总结
第29章JavaScript和Ajax技术
29.1 JavaScript本质
29.1.1 HTML DOM
29.1.2客户端事件
29.1.3脚本块
29.1.4操纵HTML元素
29.1.5调试JavaScript
29.2基本的JavaScript示例
29.2.1创建JavaScript页面处理器
29.2.2使用JavaScript异步下载图片
29.2.3呈现脚本块
29.3脚本注入攻击
29.3.1请求验证
29.3.2禁用请求验证
29.3.3扩展请求验证
29.4带有JavaScript的自定义控件
29.4.1弹出窗口
29.4.2滚动按钮
29.5框架
29.5.1框架导航
29.5.2内联框架
29.6理解Ajax
29.6.1 XMLHttpRequest对象
29.6.2 Ajax示例
29.7在客户端回调中使用Aj ax
29.7.1创建客户端回调
29.7.2深入了解客户端回调
29.7.3自定义控件里的客户端回调
29.8总结
第30章ASP.NETAJAX
30.1介绍ASPNET AJAX
30.1.1客户端的ASP.NET AJAX:脚本库
30.1.2服务器端的ASPNET AJAX:ScriptManager
30.2服务器回调
30.2.1 ASPNET AJAX中的Web服务
30.2.2在页面里放置Web方法
30.2.3 ASP.NET AJAX应用程序服务
30.3 ASP.NET AJAX服务器控件
30.3.1使用UpdatePanel的局部呈现
30.3.2使用Timer的定时刷新
30.3.3使用UpdateProgress的耗时更新
30.3.4管理浏览器历史
30.4深入客户端库
30.4.1理解客户端模型
30.4.2 JavaScript的面向对象编程
30.4.3网页框架
30.5控件扩展器
30.5.1安装ASPNET AJAX控件工具包
30.5.2 AutoCompleteExtender
30.5.3 ASPNET AJAX控件工具包
30.6总结
第31章 使用Web部件页面的门户网站
31.1典型门户页面
31.2基本Web部件页面
31.2.1创建页面设计
31.2.2 WebPartManager和WebPartZone
31.2.3向页面添加Web部件
31.2.4定制页面
31.3创建Web部件
31.3.1简单的Web部件任务
31.3.2开发高级Web部件
31.3.3 Web部件编辑器
31.3.4连接Web部件
31.3.5自定义动词和Web部件
31.3.6用户控件和高级Web部件
31.3.7动态上传Web部件
31.3.8对Web部件的授权
31.3.9个性化的最后任务
31.4总结
第32章MVC
32.1 MVC和Web表单的选择
32.2创建基本的MVC应用程序
32.2.1创建模型
32.2.2创建控制器
32.2.3创建Index视图
32.2.4测试(未完成的)应用程序
32.2.5完成控制器和视图
32.2.6修改Site.Master文件
32.3扩展基础的MVC应用程序
32.3.1配置路由
32.3.2增加错误处理
32.3.3增加验证
32.3.4增强数据存储访问
32.3.5增加对外键约束的支持
32.4自定义视图
32.4.1修改视图
32.4.2增加视图数据
32.5强化模型
32.6验证数据
32.6.1执行基本的验证
32.6.2增加验证标注
32.7使用动作结果
32.7.1返回JSON数据
32.7.2调用其他控制器方法
32.8总结
第33章 动态数据
33.1创建动态数据应用程序
33.1.1创建动态数据网站
33.1.2检验动态数据网站
33.2深入理解动态数据项目
33.3自定义动态数据网站
33.3.1使用模板进行自定义
33.3.2使用路由进行自定义
33.3.3使用元数据进行自定义
33.3.4自定义验证
33.4总结
第34章Silverlight
34.1理解Silverlight
34.1.1 Silverlight与Flash对比
34.1.2 Silverlight 系统需求
34.2创建Silverlight解决方案
34.2.1 Silverlight编译
34.2.2入口页面
34.3创建Silverlight项目
34.3.1设计Silverlight页面
34.3.2理解XAML
34.3.3设置属性
34.3.4 XAML代码隐藏
34.3.5处理事件
34.3.6了解Silverlight类库
34.4布局
34.4.1 Canvas
34.4.2网格
34.5动画
34.5.1动画基础知识
34.5.2定义动画
34.5.3 StoryBoard类
34.5.4交互式动画实例
34.5.5变换
34.6 Silverlight使用Web服务
34.6.1创建Web服务
34.6.2添加Web引用
34.6.3调用Web服务
34.6.4配置Web服务URL
34.6.5跨域Web服务调用
34.7总结