ASP.NET高级程序设计

出版时间:2009  出版社:Matthew MacDonald、Mario Szpuszta、 博思工作室 人民邮电出版社 (2009-11出版)  作者:Matthew MacDonald, Mario Szpustza  页数:1209  译者:博思工作室  
Tag标签:无  

前言

Microsoft.NET技术已经发展了接近10年的时间了,整个.NET技术平台也变得越来越强大。在.NET技术平台之上,各个分支基础架构也不断地发展变化,其中ASP.NET尤为重要。ASENET从发布之初,就迅速得到广大Web开发者的青睐。ASENET提供了类似WinForm的可视化快速开发模式以及自身不断更新的Web控件,成为一个极具活力以及具有极高开发效率和开发质量的Web开发平台。在2007年11月,微软正式发布了Visual Studi02008以及ASRNET3.5,它们是非常重要的里程碑版本。Visual Studio 2008允许你构建针对多个.NET Framework版本的应用,这意味着你可以使用VisualStudio 2008打开、编辑和编译现有的.NET 2.0和ASENET 2.0应用(包括使用了ASENET AJAX 1.0的ASRNET 2.0应用),继续在.NET 2.0机器上部署这些应用。ASP.NET AJAX已经成为.NET 3.5的一部分,不再需要单独下载了。除了包括ASENET AJAx 1.0的所有功能外,ASP.NET 3.5现在还包括下面这些丰富的支持:集成了WebParts的UpdatePanel,与和等控件的ASP.NETAJAX集成,WCF对JSON的支持,以及许许多多AJAx方面的改进。LINQ to SQL是.NET3.5中内置的对象关系映射(ORM),它允许你使用.NET对象模型对关系数据库进行建模。然后你可以使用LINQ对数据库进行查询,并能更新、插入和删除数据。LINQ to SQL完全支持事务、视图和存储过程。它还提供了一个简易方式把业务逻辑和验证规则结合进数据模型。Silveflight是微软用以对抗Flash的Web技术,从Silverlight 1开始,微软就倾注了大量人力物力在其上。Silverlight2正式发布以来,Silverlight平台更是发展迅速,对于已经面世很久的Flash构成了较大威胁。Silverlight 2也提供了大量新技术新特性,从而可以更好地支持Intemet富媒体技术。本书作为升级版,对ASP.NET 3.5以及Silverlight 2做了较为全面的阐述。另外,本书也简要介绍了ASP.NET 4.0和Silverlight 3。由于时间仓促,难免有翻译欠妥之处,希望读者能谅解。如果有任何建议以及错误反馈,请联系:uestc95@gmail.com苏红超网名Uestc95,喜好.NET技术,曾著有《ASENET深入解析》(科学出版社,2003),并于2004/2005/2006/2007连续4年荣获微软MVP称号,目前主要从事超大规模Web应用研究以及web安全研究。E-mail/MSN:uestc95@gmail.com朱琦资深.NET开发人员,企业顾问,主持研发了数个大型企业级软件产品,目前就职于明基研发中心。

内容概要

  《ASP.NET高级程序设计(第3版)》是ASP.NET领域的鸿篇巨制,全面讲解了ASP.NET的各种特性及其背后的工作原理,并给出了许多针对如何构建复杂、可扩展的网站从实践中得出的建议。《ASP.NET高级程序设计(第3版)》还深入讲述了其他ASP.NET图书遗漏的高级主题,如自定义控件的创建、图像处理、加密等。此外,《ASP.NET高级程序设计(第3版)》专门提供了两章的内容来教你如何用Ajax技术制作快速响应的页面,以及如何使用微软的ASP.NET AJAX平台。另外,还介绍了微软的新一代RIA技术Silverlight。  《ASP.NET高级程序设计(第3版)》适用于各层次的ASP.NET开发人员。

作者简介

作者:(美国)Matthew MacDonald (美国)Mario Szpuszta 译者:博思工作室Matthew MacDonald 世界顶尖的微软技术专家,微软MVP。他是Inside Visual Basic、ASP Today、Hardcore Visual Studio .NET等著名软件开发杂志的特约作者,还写作了多部脍炙人口的编程畅销书,本书为其代表作。Mario Szpuszta微软奥地利开发者和平台组架构师,有丰富的Web应用和安全软件开发和集成经验。他也是社区内非常活跃的技术专家,经常在各种顶级技术会议中发表演讲。除本书外,他还是名著Advanced .NET Remoting的作者。

书籍目录

第一部分 核心概念第1章 ASP.NET简介 21.1 Web开发技术的演进 21.1.1 早期的Web开发 21.1.2 .NET革命 31.2 ASP.NET的7大要点 31.2.1 要点1:ASP.NET是同.NET Framework集成在一起的 31.2.2 要点2:ASP.NET是编译执行的,而不是解释执行的 41.2.3 要点3:ASP.NET支持多语言 61.2.4 要点4:ASP.NET运行在公共语言运行库内 71.2.5 要点5:ASP.NET是面向对象的 81.2.6 要点6:ASP.NET是跨设备和跨浏览器的 101.2.7 要点7:ASP.NET易于部署和配置 101.3 ASP.NET:故事在继续 111.3.1 ASP.NET 2.0 111.3.2 ASP.NET 3.5 121.3.3 .NET 3.5 Service Pack 1 161.3.4 ASP.NET 4.0预览 161.3.5 Silverlight 171.4 总结 17第2章 Visual Studio 182.1 .NET开发模型 192.1.1 编译器 192.1.2 Visual Studio集成开发环境 192.1.3 网站和Web项目 202.1.4 创建无项目文件的网站 202.1.5 多目标 232.1.6 设计网页 242.2 Visual Studio集成开发环境 292.2.1 解决方案资源管理器 302.2.2 文档窗口 312.2.3 工具箱 322.2.4 错误列表和任务列表 322.2.5 服务器资源管理器 342.3 代码编辑器 352.3.1 添加程序集引用 352.3.2 智能感知和大纲显示 372.4 编码模型 392.4.1 代码隐藏文件如何与页面连接 412.4.2 控件标签如何与页面变量连接 422.4.3 事件如何与事件处理程序连接 432.5 Web项目 442.5.1 创建Web项目 462.5.2 迁移旧版Visual Studio创建的网站 472.6 Visual Studio调试 482.6.1 单步调试 492.6.2 变量监视 512.6.3 高级断点 512.7 Visual Studio宏 522.8 Web Development Helper 542.9 总结 55第3章 Web窗体 563.1 页面处理 563.1.1 HTML表单 563.1.2 动态用户界面 583.1.3 ASP.NET事件模型 593.1.4 自动回送 593.1.5 视图状态 613.1.6 XHTML兼容性 643.2 Web窗体处理阶段 683.2.1 页面框架初始化 693.2.2 用户代码初始化 693.2.3 验证 693.2.4 事件处理 703.2.5 自动数据绑定 703.2.6 清除 713.2.7 页面流示例 713.3 作为控件容器的页面 733.3.1 显示控件树 733.3.2 页头 773.3.3 动态控件的创建 773.4 Page类 793.4.1 Session、Application和Cache 793.4.2 Request 803.4.3 Response 813.4.4 Server 823.4.5 User 853.4.6 Trace 853.4.7 访问其他类中的HTTP上下文 893.5 总结 90第4章 服务器控件 914.1 服务器控件的类型 914.2 HTML服务器控件 934.2.1 HtmlControl类 934.2.2 HtmlContainerControl类 944.2.3 HtmlInputControl类 944.2.4 HTML服务器控件类 954.2.5 设置Style特性和其他属性 964.2.6 编程创建服务器控件 974.2.7 处理服务器端事件 984.3 Web控件 1004.3.1 WebControl基类 1014.3.2 基本的Web控件类 1024.3.3 单位 1034.3.4 枚举 1044.3.5 颜色 1044.3.6 字体 1054.3.7 焦点 1064.3.8 默认按钮 1074.3.9 可滚动面板 1084.3.10 处理Web控件事件 1084.4 List控件 1114.4.1 Selectable列表控件 1124.4.2 BulletedList控件 1134.5 输入验证控件 1154.5.1 验证控件 1154.5.2 验证流程 1164.5.3 BaseValidator类 1184.5.4 RequiredFieldValidator控件 1184.5.5 RangeValidator控件 1194.5.6 CompareValidator控件 1194.5.7 RegularExpressionValidator控件 1204.5.8 CustomValidator控件 1224.5.9 ValidationSummary控件 1234.5.10 通过编程使用验证器 1234.5.11 验证组 1254.6 富控件 1264.6.1 AdRotator控件 1274.6.2 Calendar控件 1284.7 总结 130第5章 ASP.NET应用程序 1315.1 剖析ASP.NET应用程序 1315.1.1 应用程序域 1315.1.2 应用程序生命周期 1325.1.3 应用程序更新 1335.1.4 应用程序目录结构 1345.2 global.asax应用程序文件 1345.2.1 应用程序事件 1365.2.2 演示应用程序事件 1375.3 ASP.NET配置 1385.3.1 machine.config文件 1395.3.2 web.config文件 1415.3.3 设置 1445.3.4 通过编程读写配置节 1485.3.5 网站管理工具(WAT) 1505.3.6 扩展配置文件结构 1505.3.7 加密配置节 1555.4 .NET组件 1565.4.1 创建组件 1575.4.2 通过App_Code目录使用组件 1585.4.3 通过Bin目录使用组件 1595.5 扩展HTTP管道 1615.5.1 HTTP处理程序和HTTP模块 1615.5.2 创建自定义的HTTP处理程序 1635.5.3 配置自定义的HTTP处理程序 1645.5.4 在不配置IIS的情况注册HTTP处理程序 1655.5.5 创建高级的HTTP处理程序 1665.5.6 为非HTML内容创建HTTP处理程序 1675.5.7 创建自定义HTTP模块 1705.6 总结 173第6章 状态管理 1746.1 ASP.NET状态管理 1746.2 视图状态 1766.2.1 视图状态示例 1766.2.2 在视图状态中保存对象 1786.2.3 保持成员变量 1796.2.4 视图状态评估 1806.2.5 视图状态安全 1826.3 在页面间传送信息 1836.3.1 查询字符串 1836.3.2 跨页回发 1856.4 cookie 1906.5 会话状态 1916.5.1 会话架构 1916.5.2 使用会话状态 1936.5.3 配置会话状态 1946.5.4 会话状态安全 1986.6 应用程序状态 1996.7 总结 202第二部分 数据访问第7章 ADO.NET基础 2047.1 ADO.NET架构 2057.1.1 ADO.NET数据提供程序 2057.1.2 ADO.NET的标准化 2077.1.3 基本ADO.NET类 2077.2 Connection类 2087.2.1 连接字符串 2087.2.2 测试连接 2097.2.3  连接池 2117.2.4 连接统计 2127.3 Command类和DataReader类 2137.3.1 Command基础 2137.3.2 DataReader类 2147.3.3 ExecuteReader()方法和DataReader 2157.3.4 ExecuteScalar()方法 2197.3.5 ExecuteNonQuery()方法 2197.3.6 SQL注入攻击 2207.3.7 使用参数化命令 2227.3.8 调用存储过程 2237.4 事务 2267.4.1 事务和ASP.NET应用程序 2267.4.2 隔离级别 2307.4.3 保存点 2317.5 提供程序无关的代码 2327.5.1 创建工厂 2327.5.2 用工厂创建对象 2337.5.3 使用提供程序无关的代码的查询 2347.6 总结 235第8章 数据组件和DataSet 2368.1 构建数据访问组件 2368.1.1 数据包 2378.1.2 存储过程 2388.1.3 数据应用类 2398.1.4 测试数据库组件 2458.2 非连接的数据 2478.2.1 Web应用程序和DataSet 2478.2.2 XML集成 2488.3 DataSet类 2488.4 DataAdapter类 2498.4.1 填充DataSet 2518.4.2 使用多个表和关系 2528.4.3 查找特定行 2548.4.4 在数据访问类里使用DataSet 2558.4.5 数据绑定 2568.5 DataView类 2578.5.1 使用DataView排序 2578.5.2 使用DataView过滤 2588.5.3 使用关系的高级过滤 2608.5.4 计算列 2618.6 强类型DataSet 2628.6.1 自定义TableAdapter 2638.6.2 创建强类型DataSet 2648.6.3 深入强类型DataSet 2658.6.4 使用强类型DataSet 2688.7 总结 269第9章 数据绑定 2709.1 基本的数据绑定 2709.1.1 单值绑定 2719.1.2 其他类型的表达式 2729.1.3 重复值绑定 2769.2 数据源控件 2829.3 SqlDataSource 2849.3.1 选择记录 2859.3.2 参数化命令 2879.3.3 错误处理 2909.3.4 更新记录 2919.3.5 删除记录 2949.3.6 插入记录 2959.3.7 SqlDataSource的不足 2969.4 ObjectDataSource 2969.4.1 选择记录 2979.4.2 更新记录 3019.4.3 使用数据对象执行更新 3029.5 数据源控件的限制 3059.5.1 问题 3059.5.2 添加其他项 3069.5.3 使用SqlDataSource处理其他选项 3079.5.4 使用ObjectDataSource处理其他选项 3079.6 总结 308第10章 富数据控件 30910.1 GridView 31010.2 格式化GridView 31310.2.1 格式化字段 31310.2.2 样式 31510.2.3 格式化特定值 31810.3 GridView行选择 31910.3.1 使用选择来创建主-从表单 32010.3.2 SelectedIndexChanged事件 32110.3.3 将数据字段用作选择按钮 32210.4 对GridView排序 32310.4.1 使用SqlDataSource排序 32310.4.2 使用ObjectDataSource排序 32410.4.3 排序和选择 32510.4.4 高级排序 32610.5 GridView分页 32710.5.1 自动分页 32810.5.2 ObjectDataSource的自定义分页 32910.5.3 自定义分页栏 33110.6 GridView模板 33210.6.1 使用多个模板 33410.6.2 在Visual Studio中编辑模板 33510.6.3 绑定到方法 33610.6.4 处理模板中的事件 33710.6.5 使用模板编辑 33810.7 ListView 34310.7.1 分组 34510.7.2 分页 34610.8 DetailsView和FormView 34710.8.1 DetailsView 34810.8.2 FormView 35010.9 高级网格 35210.9.1 GridView中的汇总 35210.9.2 单个表中的父/子视图 35310.9.3 使用查找表编辑字段 35510.9.4 处理来自数据库的图片 35710.9.5 探测并发冲突 36210.10 总结 366第11章 缓存和异步页面 36711.1 理解ASP.NET缓存 36711.2 输出缓存 36811.2.1 声明性的输出缓存 36811.2.2 缓存和查询字符串 36911.2.3 使用特定查询字符串参数的缓存 37011.2.4 自定义缓存控制 37011.2.5 使用HttpCachePolicy类进行缓存 37211.2.6 缓存后替换和部分页缓存 37211.2.7 缓存用户配置 37411.2.8 缓存配置 37511.3 数据缓存 37611.3.1 向缓存添加项目 37711.3.2 简单的缓存测试 37811.3.3 缓存优先级 37911.3.4 使用数据源控件的缓存 38011.4 缓存依赖 38311.4.1 文件和缓存项目依赖 38311.4.2 聚合依赖 38411.4.3 移除项目回调 38411.4.4 理解SQL缓存通知 38611.4.5 SQL Server 2000中的缓存通知 38711.4.6 SQL Server 2005和SQL Server 2008中的缓存通知 39111.5 自定义缓存依赖 39311.5.1 基本的自定义缓存依赖 39311.5.2 使用消息队列的自定义缓存依赖 39411.6 异步页面 39711.6.1 创建异步页面 39711.6.2 在异步页面中查询数据 39911.6.3 错误处理 40011.6.4 在异步任务中使用缓存 40311.6.5 多异步任务和超时 40511.7 总结 406第12章 文件和流 40712.1 使用文件系统 40712.1.1 Directory类和File类 40712.1.2 DirectoryInfo类和FileInfo类 40912.1.3 DriveInfo类 41212.1.4 使用Attributes 41212.1.5 使用通配符过滤文件 41412.1.6 获取文件的版本信息 41412.1.7 Path类 41512.1.8 文件浏览器 41712.2 使用流读写文件 42112.2.1 文本文件 42212.2.2 二进制文件 42412.2.3 上传文件 42412.2.4 使文件对多用户安全 42612.2.5 压缩 43012.3 序列化 43112.4 总结 434第13章 LINQ 43513.1 LINQ基础 43513.1.1 延迟执行 43713.1.2 LINQ是如何工作的 43713.1.3 LINQ表达式 43813.1.4 揭秘LINQ表达式 44413.2 LINQ to DataSet 44713.2.1 强类型的DataSet 44813.2.2 空值 44913.3 LINQ to SQL 44913.3.1 数据实体类 45113.3.2 DataContext 45213.3.3 揭秘LINQ to SQL查询 45313.3.4 LINQ to SQL和数据库组件 45513.3.5 选取单个记录或值 45813.3.6 自动生成数据类 45913.3.7 关系 46413.3.8 为存储过程生成方法 47113.3.9 提交变更 47213.4 LinqDataSource 47713.4.1 显示数据 47813.4.2 获取关联数据 48013.4.3 编辑数据 48113.4.4 验证 48213.5 总结 484第14章 XML 48514.1 什么时候使用XML 48514.2 XML简介 48614.2.1 XML的优点 48714.2.2 格式良好的XML 48714.2.3 XML命名空间 48814.2.4 XML架构 48914.3 基于流的XML处理 49114.3.1 写XML文件 49114.3.2 读取XML文件 49414.4 内存中的XML处理 49614.4.1 XmlDocument 49714.4.2 XPathNavigator 50014.4.3 XDocument 50214.5 搜索XML内容 50614.5.1 搜索XmlDocument 50714.5.2 使用XPath搜索XmlDocument 50914.5.3 使用LINQ搜索XDocument 51014.6 验证XML内容 51214.6.1 基本架构 51214.6.2 验证XmlDocument 51314.6.3 使用XDocument进行验证 51414.7 转换XML内容 51514.7.1 基本的样式表 51514.7.2 使用XslCompiledTransform 51614.7.3 使用Xml控件 51814.7.4 使用LINQ to XML转换XML 51814.8 XML数据绑定 52014.8.1 非层次化绑定 52014.8.2 使用XPath 52214.8.3 嵌套的网格 52414.8.4 使用TreeView的层次化绑定 52514.8.5 使用XSLT 52714.8.6 绑定到来自其他源的XML内容 52814.8.7 通过XmlDataSource更新XML 52914.9 XML和ADO.NET数据集 52914.9.1 把DataSet转换为XML 53014.9.2 把DataSet作为XML访问 53114.10 总结 533第三部分 构建ASP.NET网站第15章 用户控件 53615.1 用户控件基础 53615.1.1 创建简单的用户控件 53715.1.2 把页面转换成用户控件 53815.2 为用户控件添加代码 53915.2.1 处理事件 53915.2.2 添加属性 54015.2.3 使用自定义对象 54115.2.4 添加事件 54415.2.5 公开内部Web控件 54715.3 动态加载用户控件 54715.4 局部页面缓存 55015.4.1 VaryByControl 55115.4.2 共享缓存控件 55215.5 总结 553第16章 主题和母版页 55416.1 层叠样式表 55416.1.1 创建样式表 55416.1.2 应用样式表规则 55616.2 主题 55816.2.1 主题文件夹和外观 55916.2.2 应用简单主题 56016.2.3 处理主题冲突 56116.2.4 为同一控件创建多个外观 56216.2.5 含有模板和图片的外观 56216.2.6 在主题里使用CSS 56416.2.7 通过配置文件来应用主题 56416.2.8 动态应用主题 56516.3 标准化网站布局 56616.4 母版页基础 56716.4.1 简单的母版页 56716.4.2 简单的内容页 56916.4.3 默认内容 57116.4.4 具有表格和CSS布局的母版页 57116.4.5 母版页和相对路径 57416.4.6 通过配置文件应用母版页 57416.5 高级母版页 57516.5.1 和母版页类交互 57516.5.2 动态设置母版页 57616.5.3 嵌套母版页 57716.6 总结 578第17章 网站导航 57917.1 多视图页面 57917.1.1 MultiView控件 58017.1.2 Wizard控件 58317.2 站点地图 59017.2.1 定义站点地图 59017.2.2 绑定站点地图 59217.2.3 导航路径 59217.2.4 显示站点地图的一部分 59417.2.5 站点地图对象 59717.2.6 加入自定义站点地图信息 59817.2.7 创建自定义的SiteMapProvider 59917.2.8 URL映射 60517.2.9 安全调整 60617.3 TreeView控件 60717.3.1 TreeNode 60817.3.2 按需填充结点 61017.3.3 TreeView样式 61217.4 Menu控件 61517.4.1 Menu样式 61717.4.2 Menu模板 61817.5 总结 620第18章 网站部署 62118.1 IIS 62118.1.1 IIS站点和虚拟目录 62218.1.2 IIS管理控制台和IIS配置 62318.1.3 将网址、虚拟目录和文件映射到URL 62418.1.4 深入IIS架构 62518.1.5 安装IIS 63818.2 管理网站 64218.2.1 管理虚拟目录以及使用IIS 5.x和IIS 6.0的网站 64318.2.2 管理IIS 6.0中的应用程序池 64718.2.3 在IIS 7.0里管理虚拟目录和站点 65218.2.4 在IIS 7.0里管理应用程序池 66218.3 部署ASP.NET应用程序 66418.3.1 在IIS 5.x和IIS 6.0上验证ASP.NET安装 66518.3.2 在IIS 5.x和IIS 6.0上ASP.NET并行执行 66618.3.3 IIS 7.0里的ASP.NET并行执行 66718.3.4 在IIS 5.x上部署时配置HTTP运行时设置 66818.3.5 在ASP.NET中编译模型 66918.3.6 使用Visual Studio进行部署 67218.3.7 Visual Studio 2005 Web部署项目 67318.4 ASP.NET中的VirtualPathProvider 67718.5 ASP.NET里的健康监视 68118.5.1 理解基本结构 68218.5.2 事件和提供程序 68218.6 总结 685第四部分 安全第19章 ASP.NET安全模型 68819.1 何为创建安全软件 68819.1.1 理解潜在的威胁 68819.1.2 安全编程原则 68919.1.3 理解Gatekeeper 69019.2 理解安全级别 69119.2.1 验证 69119.2.2 授权 69219.2.3 机密性和完整性 69319.2.4 互相协作 69419.3 IIS安全 69519.3.1 IIS 5.x和IIS 6.0中的验证和授权 69619.3.2 IIS 7.0的安全配置 69819.3.3 理解SSL 70219.4 ASP.NET安全架构 70919.4.1 验证 71019.4.2 授权 71119.4.3 安全上下文 71219.4.4 成员资格API和角色API 71319.5 总结 714第20章 表单验证 71520.1 表单验证介绍 71520.1.1 为什么使用表单验证 71620.1.2 为什么不使用表单验证 71720.1.3 为什么不自己实现cookie验证 71920.1.4 表单验证类 71920.2 实现表单验证 72020.2.1 配置表单验证 72020.2.2 禁止匿名用户访问 72220.2.3 创建自定义登录页面 72320.2.4 自定义凭证存储 72820.2.5 表单验证中的持久化cookie 72920.3 IIS 7.0和表单验证 73020.4 总结 735第21章 成员资格 73621.1 介绍ASP.NET的成员资格API 73621.2 使用成员资格API 73821.2.1  配置表单验证 74021.2.2 创建数据存储 74021.2.3 配置连接字符串和成员资格提供程序 74521.2.4 创建并验证用户 74821.3 使用安全控件 74921.3.1 Login控件 75021.3.2 LoginStatus控件 75921.3.3 LoginView控件 76021.3.4 PasswordRecovery控件 76121.3.5 ChangePassword控件 76421.3.6 CreateUserWizard控件 76521.4 在IIS 7.0里配置成员资格 76921.4.1 配置提供程序和用户 76921.4.2 在其他应用程序里使用成员资格API 77021.5 使用Membership类 77221.5.1 从存储中获得用户 77321.5.2 更新存储中的用户 77521.5.3 创建和删除用户 77621.5.4 检验用户 77721.5.5 在Windows窗体中使用成员资格 77721.6 总结 779第22章 Windows验证 78022.1 介绍Windows验证 78022.1.1 为什么使用Windows验证 78022.1.2 为什么不使用Windows验证 78222.1.3 Windows验证机制 78222.2 实现Windows验证 78722.2.1 配置IIS 5.x和IIS 6.0 78722.2.2 配置IIS 7.0 78922.2.3 配置ASP.NET 79022.2.4 禁止匿名用户访问 79322.2.5 访问Windows用户信息 79422.3 身份模拟 79922.3.1 在Windows 2000中执行身份模拟 79922.3.2 在Windows XP上面执行身份模拟 80022.3.3 在Windows Server 2003上执行身份模拟和委托 80122.3.4 在Windows Vista上执行身份模拟 80222.3.5 在Windows Server 2008上执行身份模拟和委托 80322.3.6 经过配置的身份模拟 80322.3.7 可编程的身份模拟 80622.4 总结 808第23章 授权和角色 80923.1 URL授权 80923.2 文件授权 81523.3 在代码中检查授权 81523.3.1 使用IsInRole()方法 81523.3.2 使用PrincipalPermission类 81623.4 为基于角色的授权使用角色API 81823.4.1 和角色一起使用LoginView控件 82323.4.2 通过程序访问角色 82423.4.3 在Windows验证中使用角色API 82623.5 在IIS 5.x和IIS 6.0中保护非ASP.NET资源 82823.5.1 添加文件类型的映射 82923.5.2 编写自定义的HTTP处理程序 83023.6 IIS 7.0里的授权和角色 83123.6.1 在IIS 7.0里使用ASP.NET角色授权 83323.6.2 在IIS 7.0中管理ASP.NET角色 83523.7 总结 837第24章 用户配置 83824.1 理解用户配置 83824.1.1 用户配置的性能 83824.1.2 用户配置如何存储数据 83924.1.3 用户配置和验证 84024.1.4 用户配置与自定义的数据组件 84024.2 使用SqlProfileProvider 84124.2.1 创建用户配置表 84124.2.2 配置提供程序 84324.2.3 定义用户配置属性 84424.2.4 使用用户配置属性 84524.2.5 用户配置序列化 84624.2.6 用户配置组 84824.2.7 用户配置和自定义的数据类型 84824.2.8 用户配置API 85224.2.9 匿名用户配置 85424.3 自定义的用户配置提供程序 85624.3.1 自定义的用户配置提供程序类 85624.3.2 设计FactoredProfileProvider 85824.3.3 通过编码实现FactoredProfileProvider 85924.3.4 测试FactoredProfileProvider 86224.4 总结 865第25章 加密 86625.1 加密数据:机密性问题 86625.2 .NET加密命名空间 86725.3 理解.NET加密类 87025.3.1 对称加密算法 87025.3.2 非对称加密 87225.3.3 抽象加密类 87225.3.4 ICryptoTransform接口 87325.3.5 CryptoStream类 87325.4 加密敏感数据 87425.4.1 管理秘密信息 87525.4.2 使用对称算法 87625.4.3 使用非对称算法 88125.4.4 加密数据库中的敏感数据 88325.5 加密查询字符串 88725.5.1 包装查询字符串 88825.5.2 创建一个测试页面 89025.6 总结 892第26章 自定义成员资格提供程序 89326.1 自定义提供程序的架构 89326.2 创建自定义提供程序的基本步骤 89526.2.1 自定义提供程序的总体设计 89526.2.2 设计并实现自定义存储 89626.2.3 实现提供程序类 90326.2.4 使用自定义提供程序类 92126.3 总结 925第五部分 高级用户界面第27章 自定义服务器控件 92827.1 自定义服务器控件入门 92827.1.1 创建简单的自定义控件 92827.1.2 使用自定义控件 93027.1.3 工具箱中的自定义控件 93127.1.4 创建支持样式属性的Web控件 93327.1.5 呈现过程 93627.2 处理不同的浏览器 93727.2.1 HtmlTextWriter 93727.2.2 浏览器检测 93827.2.3 浏览器属性 94027.2.4 覆盖浏览器类型侦测 94227.2.5 自适应呈现 94227.3 控件状态和事件 94427.3.1 视图状态 94427.3.2 控件状态 94627.3.3 回传数据和change事件 94727.3.4 触发回传 95027.4 扩展现有的Web控件 95127.4.1 组合控件 95227.4.2 派生控件 95427.5 模板化控件 95727.5.1 创建模板化控件 95727.5.2 使用自定义模板 95927.5.3 样式 96227.6 总结 965第28章 设计时支持 96628.1 主要成员 96628.2 设计时特性 96728.2.1 “属性”窗口 96728.2.2 特性与继承 97028.2.3 工具箱图标 97128.3 Web资源 97228.3.1 创建资源 97228.3.2 获取资源 97328.3.3 文本替换 97328.4 代码序列化 97428.4.1 类型转换器 97428.4.2 序列化特性 98128.4.3 类型编辑器 98328.5 控件设计器 98528.5.1 设计时HTML 98528.5.2 智能标签 98728.6 总结 991第29章 动态图形和GDI+ 99229.1 ImageMap控件 99229.1.1 创建热点 99329.1.2 处理热点单击 99429.1.3 自定义热点 99529.2 使用GDI+画图 99629.2.1 简单绘制 99729.2.2 图像格式和质量 99829.2.3 Graphics类 99929.2.4 使用GraphicsPath 100129.2.5 画笔 100229.2.6 画刷 100429.3 在网页上嵌入动态图形 100629.3.1 使用PNG格式 100729.3.2 传递信息给动态图像 100729.3.3 使用GDI+的自定义控件 101029.4 用GDI+绘制图表 101329.5 总结 1018第30章 使用Web部件页面的门户 101930.1 典型门户页面 101930.2 初级Web部件页面 102130.2.1 创建页面设计 102130.2.2 WebPartManager和WebPartZone控件 102230.2.3 向页面添加Web部件 102430.2.4 定制页面 102730.3 创建Web部件 102930.3.1 简单的Web部件任务 102930.3.2 开发高级Web部件 103630.3.3 Web部件编辑器 104430.3.4 连接Web部件 105030.3.5 自定义动词和Web部件 105630.3.6 用户控件和高级Web部件 105730.3.7 动态上传Web部件 106030.3.8 针对Web部件的授权 106530.3.9 个性化的最后任务 106630.4 总结 1066第六部分 客户端程序设计第31章 JavaScript和Ajax技术 106831.1 JavaScript本质 106831.1.1 HTML文档对象模型 106931.1.2 客户端事件 106931.1.3 脚本块 107131.1.4 操纵HTML元素 107331.1.5 调试JavaScript 107331.2 基本的JavaScript示例 107531.2.1 创建JavaScript页面处理器 107531.2.2 使用JavaScript异步下载图片 107831.2.3 呈现脚本块 108231.3 脚本注入攻击 108331.3.1 请求验证 108331.3.2 禁用请求验证 108431.4 带有JavaScript的自定义控件 108531.4.1 弹出窗口 108531.4.2 滚动按钮 108931.5 框架 109131.5.1 框架导航 109231.5.2 内联框架 109331.6 理解Ajax 109431.6.1 XMLHttpRequest对象 109531.6.2 Ajax示例 109731.7 在客户端回调中使用Ajax 110031.7.1 创建客户端回调 110031.7.2 深入了解客户端回调 110531.7.3 自定义控件里的客户端回调 110631.8 总结 1109第32章 ASP.NET AJAX 111032.1 介绍ASP.NET AJAX 111032.1.1 客户端的ASP.NET AJAX:脚本库 111132.1.2 服务器端的ASP.NET AJAX:ScriptManager 111232.2 服务器回调 111332.2.1 ASP.NET AJAX中的Web服务 111332.2.2 Web服务代理 112032.2.3 在页面里放置Web方法 112132.2.4 ASP.NET AJAX应用程序服务 112232.3 ASP.NET AJAX服务器控件 112832.3.1 使用UpdatePanel的局部呈现 112932.3.2 使用Timer的定时刷新 113532.3.3 使用UpdateProgress的长时间更新 113632.3.4 管理浏览器历史 113932.4 深入客户端库 114232.4.1 理解客户端模型 114332.4.2 JavaScript的面向对象编程 114432.4.3 网页框架 115032.5 控件扩展器 115532.5.1 安装ASP.NET AJAX控件工具包 115632.5.2 AutoCompleteExtender 115732.5.3 ASP.NET AJAX控件工具包 115932.6 总结 1162第33章 Silverlight 116333.1 理解Silverlight 116333.1.1 Silverlight与Flash对比 116433.1.2 Silverlight系统需求 116633.1.3 为Visual Studio安装Silverlight工具 116733.2 创建Silverlight解决方案 116733.2.1 Silverlight编译 116833.2.2 入口页面 116933.3 创建Silverlight项目 117333.3.1 设计Silverlight页面 117433.3.2 理解XAML 117733.3.3 设置属性 117833.3.4 XAML代码隐藏 117933.3.5 处理事件 118033.3.6 了解Silverlight类库 118133.4 布局 118233.4.1 画布(Canvas) 118233.4.2 网格(Grid) 118733.5 动画 119133.5.1 动画基础知识 119133.5.2 定义动画 119133.5.3 StoryBoard类 119233.5.4 交互式动画实例 119433.5.5 变换 119833.6 Silverlight和ASP.NET 120133.6.1 Silverlight使用Web服务 120133.6.2 MediaPlayer控件 120633.7 总结 1209

章节摘录

插图:微软在创建.NET技术平台时,不仅着眼于未来,同时也考虑到了如何解决当前Web开发技术中存在的那些令人头疼的问题和限制。在开始学习ASRNET之前,我们先回过头去看看这些问题,这有助于我们更深入地了解.NET提供的解决方案。在本章中,你将会了解Web开发技术是如何一路走来并发展为ASENET的,同时快速了解.NET技术平台的重要特性,预览ASRNET新版本中的一些重要的核心变化。如果你是初次接触ASP.NET,本章可以帮助你快速起步。如果你是一个非常熟悉.NET技术的开发人员,可以有两个选择。首先,快速翻阅本章,回顾一下现状;其次,可以直接跳到1.3节预览一下ASRNET最新版本的技术特性。1.1 Web开发技术的演进大约15年前,蒂姆·伯纳斯一李(Tim Berners-Lee)首次用HTTP(超文本传输协议)传输数据。从那时起,HTTP就开始爆炸性地普及,已经从之前只限于计算科学领域逐渐普及到个人以及商业领域。到了今天,HTTP几乎家喻户晓。在最初建立HTTP时,开发人员面临的挑战是如何设计彼此可以发现并进行交互的应用程序。为了迎接这种挑战,一些标准陆续制定出来,比如HTML(超文本标记语言)和XML(可扩展标记语言)等。HTML实现了一个简单的语言规范,几乎可以用来在任何计算机平台上显示丰富的文档。XML制定了一套规则,构建平台无关的数据格式,使得不同的应用程序能够通过XML来彼此交换数据。所有的这些标准保证了任何人都能在任何地方通过任何计算系统来访问Web。

媒体关注与评论

“对于想真正精通ASP.NET的人,我强烈推荐本书。它远远超出了同类图书,绝不避重就轻,而是讨论了许多常见难题的解决办法。”  ——David Hayden,Microsoft MVP,资深Web软件工程师“ASP.NET工程师的必读之作!不仅是绝佳的学习教程,也是不可或缺的参考手册。”  ——.NET Developer’s Journal

编辑推荐

《ASP.NET高级程序设计(第3版)》是ASP.NET领域公认经典名著的中文版,原书出自两位世界顶级技术专家之手。书中不仅清晰透彻而且恰到好处地全面讲述了ASP.NET的基础知识,更深入内幕,剖析了ASP.NET的内部机理,使你知其然,又知其所以然。对于系统所提供的各种特性,《ASP.NET高级程序设计(第3版)》也客观地解释了其优缺点,使读者能够根据具体情况做出明智选择。更为难能可贵的是,作者直面许多实战中困难的主题,给出了优雅的解决方案。所附C#实例设计精心,同样极富指导意义,可以很容易地应用于实际项目。这一版不仅对原有章节进行了全面的修订、更新和改进,还简要介绍了ASP.NET 4.O和Silverlight的新特性。ASP.NET经典著作之屠龙刀,涵盖ASP.NET 4.0和Silverlight全面、深入、贴近实战,让你感受世界顶尖专家的不凡功力国内MVP担纲翻译,名著名译,相得益彰

图书封面

图书标签Tags

评论、评分、阅读与下载


    ASP.NET高级程序设计 PDF格式下载


用户评论 (总计11条)

 
 

  •   内容很多很全,基本上asp.net常用的都写到了我把它当字典使用
  •   看了好些英文版的内容,真不错。才购买这中文版(毕竟会快很多。并且这本书是“知识性”的,不是“原理性”的。看中文没什么影响吧)固然,希望中文翻译得不错。
  •   我已经学习完了,书很厚,内容也很全
  •   值得购买的技术介绍书籍
  •   感觉不错,之前看了一部分,因为后来不涉及WEB编程,转向WINFORM了,所以,后面没看,就我看过的部分而言,这本书我觉得不错!
  •   知识解释很透彻,能配合ASP.NET揭秘看就更好.
  •   真是大而全,但又不失细节,好书!
  •   参考不错,但是asp.net最好是参考案例学习。
  •   很厚,内容也挺全,看了几节,发现讲得太啰嗦,本来很简单的一个概念,讲得老长。代码没有在书上给全,需要自己找代码去看看,最讨厌这样,怎么练习?
  •   2月入手的书, 现在觉得对自己有很大的帮助, 也是案头一本必备的参考书!
  •   内容不错,能学到很多东西
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7