·基本控件的使用
·语言集成查询LINQ
·ADO.NET数据处理技巧
·文件的上传和在线压缩
·IO操作
·Office文件操作
·RSS资源聚合
·Web Service应用
·水晶报表
·ASP.NET AJAX应用
·网站的身份验证和角色管理
·各种验证码的生成和使用
·数据加密和解密
·WCF应用
·WF应用
·WPF应用
无
软件业在飞速地发展,转眼间Microsoft已经发布了NET Framework的新版本35。Visual Studio 2008则对以前版本的功能进行了改进,增加了很多令人兴奋的新功能,使得应用程序的创建更为简单和规范。
作为一个程序开发人员,及时地了解和掌握最新技术,将有助于提高自身的价值和竞争力。对于一个初学者来说,实例分析能直观地对知识点进行讲解,使读者明白该知识点的使用;对于一个有过编程和项目开发经验的程序员来说,接触最新的技术知识也许是更加渴望的,而且参考实例讲解进行学习,可更快速地掌握相关知识点;对于一个正在进行项目开发的程序员来说,某些实例可直接应用到项目中,免去了先查找资料后进行代码编写来实现某个功能的麻烦。
目前,市面上还没有介绍NET最新技术的书籍出现,鉴于此,笔者结合自己的项目开发经验,并查阅NET Framework 35的官方技术文档,编写了这本实例讲解的书籍。
本书的内容安排
本书采用实例讲解的写作模式,共分为18章。
第1章~第7章,从基本控件的使用,到ADONET的数据处理,这其中包含了语言集成查询 (LINQ)的详细范例。通过这几章的实例讲解,读者可以很轻松地掌握ASPNET 35的最基础的部分,并能提高对ASPNET 35的学习兴趣。
第8章~第12章,分析了关于文件的上传、在线压缩、IO操作以及对Office文件的常规操作等方面的范例。第11、12两章则分别对RSS资源聚合和Web服务方面的范例进行了详细的演示和分析。通过对该部分范例的学习,读者可轻松地在ASPNET中操作文件,并能实现网络资源共享,对于一些相关的小型项目也能轻松应对。
第13章则对目前比较受关注的安全方面,进行了相关范例的演示,包含了网站身份验证和角色管理、比较流行的几种图形验证码的生成以及加密和解密等方面的实例。本章的学习能够为您所参与的项目增加更多的安全保证。
第14章、15章和16章将使用丰富而又具有代表性的实例,来演示NET Framework 35 中增加和增强的3个功能,分别为 Windows Communication Foundation、Windows Workflow Foundation和Windows Presentation Foundation。
第17章对目前比较专业的报表系统“水晶报表”进行了多个方面的实例演示。在学习了本章的实例后,读者完全可以按照实际需要,自己动手完成内容丰富的、复杂的报表的设计。
第18章中,对当前比较流行的ASPNET AJAX技术进行了详尽的演示。学习完本章后,读者使用Ajax技术可以创建高度交互的Web应用。
本书的特点
相比同类图书,本书具有以下明显特色。
1实例写作,直观学习
本书采用实例写作的模式,将技术的实现过程直接展现在读者面前,使读者的学习更直观。对于所有实例,都采用代码、图示相结合的方式,做到了明确直观。
2 知识最新,兼容性强
本书中,各实例都采用Visual Studio 2008进行创建,覆盖了NET 35的各个方面,包含了几乎所有ASPNET 20的知识,帮助读者全面地了解、学习新技术。
3 实例丰富,强调实践
在进行实例设计时注重实际应用。不会让读者读完了还不知道该怎么去应用。本书中的很多例子都来源于作者的实际开发,通过对这些例子的学习,可以增强读者的动手实践能力。
4 代码规范,注释丰富
本书所涉及的程序源代码层次清楚,语句简洁,注释丰富,体现了代码优美的原则。这样从一开始便给读者树立了良好的榜样,有利于读者养成良好的编写代码习惯。
5 讲解循序渐进,章节跨度不大
读者可以根据喜好,选择自己感兴趣的技术进行学习,而不会觉得跨度太大。
6 提供学习论坛
论坛网址是http://wwwrzchinanet,读者可以在上面讨论技术,笔者会及时回答读者提问,并提供各种技术文章,帮助你提高开发水平。
适合阅读本书的读者
从未接触过ASPNET编程的自学人员。
了解一些ASPNET 1x或ASPNET 20,但还要进一步学习ASPNET 35的读者。
Web开发人员,或者正在进行项目开发的程序员。
各大中专院校的在校学生和相关授课老师。
其他编程爱好者。
本书作者
本书由王院峰主持编写。同时参与编写和资料整理的有高会东、王建超、邓薇、黄丽莉、吝晓宁、汪洋、白广元、蔡念光、陈辉、冯彬、刘长江、刘明、沙金、张士强、张洪福、多召英、贾旭、李宽、江宽、陈科、方成林、班晓娟、方中纯、刘兰军、郑雪峰。
编者
·基本控件的使用 ·语言集成查询LINQ ·ADO.NET数据处理技巧 ·文件的上传和在线压缩 ·IO操作 ·Office文件操作 ·RSS资源聚合 ·Web Service应用 ·水晶报表 ·ASP.NET AJAX应用 ·网站的身份验证和角色管理 ·各种验证码的生成和使用 ·数据加密和解密 ·WCF应用 ·WF应用 ·WPF应用
不积跬步,无以至千里
——荀子
初学编程的人很苦恼的一件事是不知道如何上手。其实有两种思路都可以很好地上手。一种是按部就班,像大学里的C程序设计课程一样,从基本语法,到各种具体应用程序逐渐深入;还有一种方法是,把基本语法和一些函数等的用法用比较典型的实例贯穿起来,通过学习这些实例来掌握编程知识,这也是一种很好的方法。因为学习编程需要大量的实践才能学好,而这种方法正好符合这种学习特点,所以也有比较好的效果。按照这个思路我们策划了这套书。
丛书特色
作为一套以实例贯穿始终的图书,本丛书在编写上着重体现以下特色。
1以实例引导学习,可快速入门
本丛书以全新的实例模式编写,每本书都是以实例贯穿始终,读者可以在实例引导下一步一步地学习编程,增强了编程的亲身体验,可以快速入门,达到良好的学习效果。
2编写模式科学,讲解细致
本丛书中贯穿的实例大都是按照“知识要点→实现代码→源程序解读”的模式编写,非常科学,讲解也很细致,容易掌握。
3实例数量丰富,实践性强
本丛书每本书都是以数以百计的实例指导读者学习,这些例子实用强,可为读者以后程序开发奠定坚实的基础。
4代码规范,注释丰富
为了增强代码的易读性,丛书编写时对代码进行了丰富的注释,非常易于读者阅读和理解,增强学习效果。
5光盘内容实用、超值
配书光盘提供了书中所涉及的源代码,以方便读者使用。除此之外,还特别免费提供了大量的编程入门视频和技术文档,以方便相关人员学习和教学使用。
6提供技术支持
本丛书提供了论坛:http://wwwrzchinanet,读者可以在上面提问交流。另外,论坛上还有一些小的教程、视频动画和各种技术文章,可帮助读者提高开发水平。
丛书包含的书目
《Java实例精通》
《Java Web整合开发实例精通——Struts+Hibernate+Spring》
《Visual C++ 60实例精通》
《Visual Basic实例精通》
《C# 30实例精通》
《ASPNET 35实例精通》
《PHP实例精通》
《JavaScript实例精通》
本丛书读者定位
初学编程的人员;
已经入门,需要通过实例提高编程水平的人员;
大中专院校的学生;
社会培训学员;
相关程序员。
阅读本丛书的几点建议
没有基础的读者建议按顺序阅读,不要跳跃,不要跳步。
有基础的读者可以跳过一些特别基础的章节学习。
如果感觉学习本书有困难,建议先阅读机械工业出版社“编程红宝书”丛书中的对应入门图书。
多动手,亲自完成书中的实例,加深理解。
遇到问题,除了本书的技术支持论坛,还可利用网络资源解决。例如,利用Google和Baidu搜索相关资料,或者在相关论坛上发帖提问,会有热心人给你答复。
要重点阅读源代码及其注释,可以有效提高代码理解能力。
正所谓“宝剑锋从磨砺出,梅花香自苦寒来”。编写这样的一套书也实属不易,是一个需要克服很多困难、花费大量心血才能完成的“浩大工程”。同样,在学习编程的道路上也不会一帆风顺,肯定有许多磨难等着你。我们伟大的思想家荀子早都说过,“不积跬步,无以至千里”。做任何事都得脚踏实地,才能走得远,希望以此与各位读者共勉。看到你们能以此套书提升编程水平,便是我们最开心的事了!
丛书策划编辑
王院峰:暂无简介
丛书序
前言
第1章ASPNET入门
11初识ASPNET
12Visual Studio 2008概述
13C# 30概述
C# 30语言中引入了多种新的语言功能,这些新的语言构造可以分别用在各种上下文中,并且可以共同完成语言集成查询(LINQ)。
第2章基本控件的使用
21使用Wizard控件创建向导界面
使用Wizard控件进行向导界面创建,实现用户注册信息的分布收集,并将收集到的信息进行显示。
22多功能日历
使用Calendar控件来进行交互式日历的创建,该日历可对用户所选择的元素进行相应处理。
23在图片上定义热区
演示如何在图片上定义热区,通过ImageMap控件的ImageUrl属性和HotSpots属性集合来进行热区的实现。
24使用隐藏控件缓存页面变量
通过使用隐藏字段控件HiddenField,来实现页面变量的缓存操作,并将缓存的变量输出到页面中。
25使用容器对控件分组管理
使用容器控件Panel,对页面中的控件进行分组管理,如隐藏、显示等。
26创建多视图界面
使用MultiView和View这两个Web服务器控件来实现多视图界面,并进行各视图的切换。
27创建项目列表
使用BulletedList服务器控件,来实现一个项目列表。将DisplayMode属性设置为LinkButton,可对用户的单击事件进行处理。
28将动态内容插入到缓存页
使用Substitution控件,将动态的内容插入到缓存页中,通过该控件的MethodName属性,对内容进行动态更新。
第3章验证类和导航类控件的应用
31用RangeValidator来执行数据的范围验证
使用RangeValidator控件,对用户所输入的数据进行指定范围的验证,这样可将用户输入控制在一个指定的范围。
32用RequiredFieldValidator验证必填项
使用控件RequiredFieldValidator实现必填字段验证,检查该表单项目是否有输入值。
33使用正则表达式执行验证
使用RegularExpressionValidator控件,来进行正则表达式验证,以使输入的数据符合某种格式。
34使用CustomValidator实现自定义验证
通过CustomValidator控件,调用用户自己编写的检验函数,执行自定义的检验。
35制作网页菜单的最简单方式
通过ASPNET提供的Menu控件,进行简单的网页菜单的创建。
36在网页中实现树形导航
使用TreeView控件建立功能强大、可以自由收缩和展开的树形导航。
37实现导航路径
通过SiteMapPath控件,来实现导航路径,使浏览者可随时随地看到自己所处的位置。
第4章登录控件和Web部件的应用
41实现注册和登录功能
Login控件和CreateUserWizard控件与ASPNET成员资格配合,实现注册和登录功能。
42根据登录状态显示不同内容
使用LoginView为不同的登录状态显示不同的内容。
43实现密码修改和找回功能
ChangePassword控件和PasswordRecovery控件联合实现密码修改和找回功能。
44可自由拖动的Web部件
在BrowseDisplayMode显示模式下,实现可自由拖动的Web部件。
45实现Web部件的自由添加
在CatalogDisplayMode显示模式下,实现用户在运行时向Web部件页中添加WebPart 控件或其他服务器控件。
46Web部件的个性设置
实现对添加到页面中的模块进行外观、布局、行为和其他属性的编辑。
47Web部件的导入导出
使用ImportCatalogPart 控件,用户就可以直接将该控件通过预先指定的设置添加到网页中。
第5章数据控件的应用
51获取SQL Server数据
使用SqlDataSource数据源控件完成对SQL Server数据的获取工作。
52获取Access数据
通过AccessDataSource数据源控件,来完成Access数据的获取工作。
53获取XML数据
通过XmlDataSource控件,进行XML数据的获取,并将其绑定到数据绑定控件。
54使用LinqDataSource数据源
用LinqDataSource数据源控件,来获取LINQ to SQL数据模型的数据。
55获取来自类对象的数据
使用ObjectDataSource数据源控件,将页面上的相关数据控件与中间层业务对象进行绑定。
56获取网站地图文件数据
使用SiteMapDataSource控件,访问站点地图文件中的导航信息。
57使用网格分页展示数据
使用GridView控件,以网格的形式将数据展示在页面中,并使用其内置的分页功能。
58使用DataList定制数据显示界面
使用DetailsView控件对数据显示界面进行定制。
59使用DetailsView显示主细表结构的数据
DetailsView控件与GridView控件相配合,显示主细表结构的数据。
510使用FormView实现客户端数据的增、删、改
使用FormView控件,来操作客户端的显示数据,主要包括常见的增加、删除和修改功能。
511获取GridView选择的行并添加删除提示功能
演示GridView的两个小技巧,即获取GridView中用户选择的行,并为GridView控件添加删除提示功能。
512使用ListView实现数据的个性化显示
演示如何使用ListView控件,来实现数据的个性化显示,并展示ListView控件的高定制性。
513使用ListView实现数据的编辑、插入和删除
使用ListView控件,配合数据源控件,在不编写其他代码的情况下,实现数据的新增、修改和删除等操作。
514使用DataPager进行数据分页
演示如何使用DataPager控件,为数据展示控件进行数据分页。
第6章实战LINQ编程
61LINQ to SQL
62LINQ to DataSet
演示在LINQ to DataSet中,如何对DataSet对象中的数据进行检索。
63LINQ to XML
64LINQ to Objects
65使用LinqDataSource控件实现数据的删改
使用LinqDataSource数据源控件,实现数据的删除和修改等操作,这些操作可以无代码实现。
第7章ADONET数据处理技巧
71不使用数据源控件的数据获取
使用ADONET的几个常用对象,实现数据的获取并绑定到数据展示控件。
72手动创建DataTable
通过程序创建DataTable,为其创建行和列,并进行数据的填充。
73缓存DataSet
对DataSet数据集进行缓存操作,将数据保存到服务器的内存中。
74多个DataAdapter对象填充同一DataSet
使用多个DataAdapter对象,来对同一DataSet进行填充,并将数据分别绑定到两个GridView控件,在页面中展示出来。
75不同的查询填充同一DataSet
在只定义一个SqlDataAdapter对象的情况下,更换查询语句,来对同一DataSet进行填充。
76合并两个DataSet数据表
使用DataTable的Merge()方法来进行数据表的合并操作。
77DataSet的复制
使用DataSet对象的Copy()方法,实现DataSet的复制操作。
78应用数据库缓存依赖
使用SqlCacheDependency类创建依赖于数据库中表或行的缓存项。当表中或特定行中发生更改时,带有依赖项的项便会失效,并会从缓存中移除。
79XML文件转换为DataSet
将XML文件数据转换成DataSet,并以网格的形式在页面中显示。
710DataSet转换为XML文件
使用DataSet对象的WriteXml()方法,将DataSet中的数据写入XML文件中。
第8章文件上传
81使用ASPNET上传控件
使用FileUpload控件实现文件的上传,并对上传的文件类型进行限制。
82多文件上传
实现多文件的上传功能,并使用了一个HttpFileCollection对象,来访问从客户端上传的文件。
83FTP上传解决方案
使用ASPNET来完成一个FTP上传解决方案,并使用Directory类来进行目录的删除、创建、检测等操作。
第9章文件解压缩与IO操作
91Rar文件在线压缩
如何在ASPNET中,通过调用程序WinRAR,实现对文件进行在线压缩。
92Rar文件在线解压
在ASPNET中,通过调用程序WinRAR,来实现对文件进行在线解压。
93文件的查找
在ASPNET页面中,如何实现服务器文件的查找功能 本节通过实例进行说明。
94文件浏览
使用DirectoryInfo类和FileSystemInfo类所提供的相关方法,在权限允许的条件下,将硬盘中的文件和文件夹枚举并显示出来。
第10章应用ASPNET的Web服务
101创建简单的Web服务
创建一个简单的Web服务,根据传入的SQL语句进行数据查询,并返回一个查询结果的数据集。
102部署和发布Web服务
本节程序中,演示如何对创建好的Web服务进行部署和发布。
103Web程序中使用Web服务
在Web程序中,通过添加Web引用的方式使用Web服务。
104在桌面程序中使用Web服务
在传统的Windows桌面程序中,通过添加服务引用的方式使用Web服务。
105在控制台程序中使用Web服务
在控制台程序中,通过添加服务引用的方式使用Web服务。
106为Web服务创建代理
为Web服务创建代理类和代理程序,并以使用代理类的方式,来使用Web服务。
第11章RSS实现资源聚合
111创建RSS种子
使用一个名为NETAfritXiaRssFoundation的RSS聚合创建框架,来进行RSS种子的创建。
112读取RSS源的数据
创建一个RSS阅读程序,通过WebRequest对象发出对RSS源的请求,来对RSS源的数据进行读取。
第12章ASPNET对文件的处理
121创建Excel文件
在网页中,通过使用ADONET和COM引用的方式,进行Excel文件的创建。
122Excel文件数据的读取
使用ADONET对象,来读取Excel文件中的数据。
123创建Word文档
在ASPNET中,可通过COM方式来创建Word文档,并写入数据到Word文档中。
124修改Word文档
在页面中打开已有的Word文档,并对其内容进行修改。
125向Word中插入表格和图片
在ASPNET页面中,打开Word文件,然后将图片和表格插入到其中,并进行保存。
126HTML格式的文档转为Word文档
使用Word组件,将HTML格式的文档转换为Word文档。
127Word文件转为HTML文件
使用COM对象,将Word文件转换为HTML文件。
第13章ASPNET的安全和加密、解密
131网站身份验证
通过ASPNET提供的登录控件,来为ASPNET Web应用程序创建一种可靠的、无需编程的登录验证解决方案。
132实现网站的权限级别管理
使用ASPNET角色管理,对用户授权进行控制管理,从而为特定应用程序
指定用户可以访问的资源。
133制作网站登录页的验证码
本节演示如何生成网站登录页的验证码,包括数字和字母混合型的验证码、汉字验证码和数学运算验证码。
134URL参数的加密
为了保证网站程序的安全,可在提交页面之前,对URL参数值进行加密。本程序演示如何使用DES加密算法,来对URL参数加密。
135Cookie数据的加密和解密
Cookie经常以明文的形式存储于客户电脑中,这对于安全性来说十分不利。本节程序演示如何使用DES加密算法,对Cookie进行加密,并在使用的时候进行解密。
136数据库连接信息的加密和解密
本节范例演示了如何对数据库连接信息进行加密和解密,包括对配置文件中的连接信息进行加密和对程序中的连接信息进行加密。
137一个通用的加密和解密类
实现一个通用的DES加密和解密类,可以让更多的人使用它,来完成自己的加密和解密工作。
第14章设计基于WCF的服务
141一个简单的WCF服务及使用
如何创建一个简单的WCF服务,并在应用程序中使用该WCF所提供的服务。
142在托管应用程序中承载WCF服务
通过一个控制台程序,将WCF服务承载于能控制其上下文和生存周期的运行时环境中,以供应用程序调用。
143在WCF服务中模拟客户端程序
演示如何在WCF服务中,通过模拟调用方即客户应用程序,使WCF服务代表客户端来访问系统资源。
144WCF中的寻址
本节范例对WCF中的寻址进行演示,在配置文件中,对WCF的服务地址进行配置。
第15章用WF设计工作流
151一个简单的顺序工作流
本程序使用了两个CodeActivity活动,创建了一个简单的顺序工作流,该工作流输出了两条提示信息。
152工作流中使用延迟
本节范例使用DelayActivity活动,在工作流中创建延迟,为等待某外部系统的响应时设置超时。
153使用IfElseActivity实现工作流的分支
本程序演示如何使用IfElseActivity活动,在工作流中实现条件选择和分支,通过分支IfElseBranchActivity活动的Condition属性,来为该活动设置条件为“代码条件”。
154使用WhileActivity实现工作流的迭代执行
本程序演示如何使用WhileActivity活动,实现对某个子活动的迭代执行。当WhileActivity活动的Condition属性为True时,该活动就以迭代方式对单个子活动进行循环执行。
155一个简单的状态机工作流——请假流程
请假流程,首先由用户发出请假申请,然后由领导进行批示。
申请被批准后,则进行下一状态的执行,最后结束。本节通过工作流实现这个过程。
第16章创建基于WPF的应用程序
161一个简单的WPF应用程序
本节程序实现一个简单的WPF浏览器应用程序,输入一个姓名后,可以让程序向读者朋友问好。
162在WPF中使用菜单
本节程序是在浏览器承载的应用程序中,实现传统Windows应用程序的菜单功能。
163使用Label控件获取鼠标焦点的快捷键
使用Label控件可获取鼠标焦点的快捷键。本节程序使用Label控件,为TextBox控件提供快捷的键盘访问功能。
164实现横向列表的ListBox
传统的ListBox总是竖排的。本节程序演示如何实现一个横向列表的ListBox。
165使用DockPanel进行布局
本节演示使用DockPanel控件,配合Border控件进行布局。
166实现一个可手写的涂鸦板
演示如何使用InkCanvas控件,实现一个简单的绘图板。
167在WPF中实现一个简单的动画
本节程序演示如何在WPF中,通过简单拖动实现一个动画功能。
第17章水晶报表在网站中的应用
171报表中使用各种数据源
172使用向导创建报表
使用报表向导,可很轻松地创建出内容丰富的报表。本节演示如何使用报表创建向导,轻松地完成一张报表的设计工作。
173报表中数据的分组和排序
使用向导创建的报表,大多时候并不能满足实际需要,灵活性也不高。本节
演示如何对报表中的数据进行分组和排序。
174报表中使用参数
如果直接查看所有数据或者需要找出符合某些条件的数据,将是一件很费时费力的事情。本节演示如何使用参数对数据进行筛选。用户只需要输入某些条件,报表就会返回符合该条件的数据。
175报表中使用图表
将数据以图表的形式表示出来,使其看起来更为直观。本节演示如何将数据以图片的形式表示出来。
176报表中数据的层次分组
某些特殊的数据中,使用层次分组,可以将数据中的某些关系更
直观地表现出来。本节演示如何将报表中的数据进行层次分组。
177报表中插入子报表
某些情况下,一张报表并不能满足数据的展示需要,需要再插入一张子报表来进行数据的辅助显示。本节演示如何在报表中插入子报表。
178报表服务
演示如何将报表做为Web服务来进行发布,以方便其他应用程序进行调用。
第18章Ajax拿来即用
181一个简单的Ajax无刷新程序
演示如何使用Ajax技术完成一个无刷新的Tab导航效果。
182Ajax定时刷新
有时会需要页面在某个时刻进行自动刷新,而不需要人为干预。本节程序中,将演示如何使用ASPNET AJAX中的Timer控件,对页面进行自动刷新。
183母版页无刷新更新内容页
应用了母版页的页面中,也可使用Ajax技术。本节程序中,将演示如何在不刷新母版页的基础上,对内容页进行信息更新。
184页面更新提示
页面内容在更新过程中,有时候等待是比较漫长的。本节程序中,将演示如何使用更新进度控件UpdateProgress,来实现页面的更新提示。
185外部事件刷新UpdatePanel
在某些特殊要求下,必须使用外部控件来刷新UpdatePanel内部,这就要使用到触发器。本节程序中,将演示如何使用外部事件,来对UpdatePanel内部信息进行刷新。
186多个UpdatePanel独立更新
演示如何对并存的多个UpdatePanel进行独立刷新。
187UpdatePanel中使用验证控件
在UpdatePanel中使用验证控件,对Email和网址进行非空和格式匹配的检验。
188UpdatePanel的错误处理
演示在UpdatePanel的错误处理时,如何以自定义的方式,向客户端显示自定义错误信息。
189取消异步回发
对于异步回传,如果时间过久的话,用户可随时取消这次控件的交互。本节程序中,将演示如何让用户执行取消异步回发的操作。
1810对多个UpdatePanel使用Timer控件
演示如何使用一个Timer控件对多个UpdatePanel进行定时刷新。
附录免费Ajax控件活学活用