书名:ASP.NET 开发从入门到精通
ISBN:978-7-115-41971-2
本书由人民邮电出版社发行数字版。版权所有,侵权必究。
您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。
我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。
如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。
• 著 张明星
责任编辑 张 涛
• 人民邮电出版社出版发行 北京市丰台区成寿寺路11号
邮编 100164 电子邮件 315@ptpress.com.cn
• 读者服务热线:(010)81055410
反盗版热线:(010)81055315
本书由浅入深地详细讲解了ASP.NET的开发技术,并通过具体实例的实现过程演练了各个知识点的应用。全书共21章,其中第1~2章是ASP.NET的基础知识,包括ASP.NET基础和搭建开发环境;第3~10章是ASP.NET的核心技术,分别讲解了C#语法、面向对象编程、内置对象、服务器控件等内容,第11~16章分别讲解了数据库开发、母版页、样式、主题、皮肤的基本知识,这些内容是ASP.NET开发技术的重点和难点;第17~20章分别讲解了4个ASP.NET典型模块的具体实现过程;第21章通过综合实例的实现过程,介绍了ASP.NET技术在综合项目中的开发应用。全书内容循序渐进,以“技术解惑”和“范例演练”贯穿全书,引领读者全面掌握ASP.NET开发。
本书不但适用于ASP.NET的初学者,也适用于有一定ASP.NET基础的读者,也可以作为大专院校相关专业师生的学习用书和培训学校的教材。
从你开始学习编程的那一刻起,就注定了以后所要走的路:从编程学习者开始,依次经历实习生、程序员、软件工程师、架构师、CTO等职位的磨砺;当你站在职位顶峰的位置蓦然回首,会发现自己的成功并不是偶然,在程序员的成长之路上会有不断修改代码、寻找并解决Bug、不停测试程序和修改项目的经历;不可否认的是,只要你在自己的开发生涯中稳扎稳打,并且善于总结和学习,最终将会得到可喜的收获。
对于一名想从事程序开发的初学者来说,究竟如何学习才能提高自己的开发技术呢?其一的答案就是买一本合适的程序开发书籍进行学习。但是,市面上许多面向初学者的编程书籍中,大多数篇幅都是基础知识讲解,多偏向于理论;读者读了以后面对实战项目时还是无从下手,如何实现从理论平滑过渡到项目实战,是初学者迫切需要的书籍,为此,作者特意编写了本书。
本书用一本书的容量讲解了入门类、范例类和项目实战类3类图书的内容。并且对实战知识不是点到为止地讲解,而是深入地探讨。用纸质书+光盘资料(视频和源程序)+网络答疑的方式,实现了入门+范例演练+项目实战的完美呈现,帮助读者从入门平滑过渡到适应项目实战的角色。
为了使读者能够完全看懂本书的内容,本书遵循“入门到精通”基础类图书的写法,循序渐进地讲解这门开发语言的基本知识。
本书不是编程语言知识点的罗列式讲解,为了帮助读者学懂基本知识点,每章都会有“技术解惑”板块,让读者知其然又知其所以然,也就是看得明白,学得通。
书中一共有233个实例,其中76个正文实例,4个典型模块实例,1个综合实例。每一个正文实例都穿插加入了2个与知识点相关的范例,即有152个拓展范例。通过对这些实例及范例的练习,实现了对知识点的横向切入和纵向比较,让读者有更多的实践演练机会,并且可以从不同的角度展现一个知识点的用法,真正实现了举一反三的效果。
书中每一章节均提供声、图并茂的语音教学视频,这些视频能够引导初学者快速入门,增强学习的信心,从而快速理解所学知识。
本书根据需要在各章安排了很多“注意”“说明”和“技巧”等小板块,让读者可以在学习过程中更轻松地理解相关知识点及概念,更快地掌握个别技术的应用技巧。
因为本书的内容非常多,不可能用一本书的篇幅囊括“基础+范例+项目案例”的内容,所以,需要配套DVD光盘来辅助实现。在本书的光盘中不但有全书的源代码,而且还精心制作了实例讲解视频。本书配套的PPT资料可以在网站下载(www.toppr.net)。
本书作者为了方便给读者答疑,特提供了网站论坛、QQ群等技术支持,并且随时在线与读者互动。让大家在互学互帮中形成一个良好的学习编程的氛围。
本书的学习论坛是:www.toppr.net。
本书的QQ群是:347459801。
本书循序渐进、由浅入深地详细讲解了ASP.NET语言开发的技术,并通过具体实例的实现过程演练了各个知识点的具体应用。全书共21章,分别讲解了ASP.NET基础、搭建开发环境、C#基础、面向对象编程、ASP.NET的页面结构、内置对象和应用程序配置、HTML服务器控件和Web服务器控件、数据控件、验证控件、用户控件和自定义控件、ASP.NET新增功能、ADO.NET、母版页、样式、主题和皮肤、个性化设置、使用WebPart构建门户网站、使用缓存、构建安全的ASP.NET站点、用户登录验证模块、在线信息搜索模块、图文处理模块、在线留言本模块和在线聊天系统等内容。全书以“技术讲解”→“范例演练”→“技术解惑”贯穿全书,引领读者全面掌握ASP.NET开发。
本书的最大特色是实现了入门知识、实例演示、范例演练、技术解惑、综合实战5大部分内容的融合。其中各章内容由如下模块构成。
① 入门知识:循序渐进地讲解了ASP.NET程序开发的基本知识点。
② 实例演示:遵循理论加实践的学习模式,用76个实例演示了各个入门知识点的用法。
③ 范例演练:为了加深对知识点的融会贯通,每个实例配套了2个演练范例,全书共计152个范例,多角度演示了各个知识点的用法和技巧。
④ 技术解惑:把读者容易混淆的部分单独用一个板块进行讲解和剖析,对读者所学的知识实现了“拔高”处理。
下面以本书第6章为例,演示本书各章内容版式的具体结构。
① 入门知识
ASP.NET内置对象介绍
知识点讲解:光盘:视频\PPT讲解(知识点)\第6章\ASP.NET内置对象介绍.mp4
在ASP中有5个常用内置对象,它们能够满足Web中动态功能的数据交互需求。ASP.NET的内置对象和ASP内置对象的功能完全一样,甚至很多名字都完全一样,如图6-1所示。
图6-1 ASP和ASP.NET的内置对象对比
Response对象
使用Clear方法之前的数据并没有出现在浏览器中,所以,程序开始时是存在缓冲区内的。如果在相同的程序中加上代码“Response.BufferOutput=false”,这样执行后将先清除缓存,清除的数据不会出现在浏览器上,具体代码如下。
<%
Response.Write("清除缓存了<Br>");
%>
<Script Language="C#" Runat="Server">
void Page_Load(Object sender, EventArgs e){
Response.BufferOutput=false;
Response.Write("清除缓冲区前的信息" + "<Br>");
Response.Clear();
}
</Script>
② 实例演示
实例013 输出系统的当前时间
源码路径 光盘\daima\6\Write.aspx 视频路径 光盘\视频\实例\第6章\013
本实例使用Response对象的Write方法实现,实例文件Write.aspx的主要实现代码如下。
③ 范例演练
#<script runat="server">
void Page_Load(object sender, EventArgs e)
{
Response.Write("当前时间" + DateTime.Now);
}
</script>
范例025:使用URL传递参数
源码路径:光盘\演练范例\025\
视频路径:光盘\演练范例\025\
范例026: Session对象跨页面传值
源码路径:光盘\演练范例\026\
视频路径:光盘\演练范例\026\
在上述代码中,用Response对象的Write方法输出系统的当前时间。实例执行后的效果如图6-2所示。
图6-2 输出当前时间
④ 技术解惑
技术解惑
有少数运算符有规定表达式求值的顺序?
Session对象和Cookie对象的比较
Application对象和Session对象的区别
对Application、Session、Cookie、ViewState和Cache的选择
初学编程的自学者 编程爱好者
大中专院校的教师和学生 相关培训机构的教师和学员
毕业设计的学生 初、中级程序开发人员
软件测试人员 参加实习的初级程序员
在职程序员
本书在编写过程中十分感谢我的家人给予的巨大支持。本人水平毕竟有限,书中存在纰漏之处在所难免,诚请读者提出意见或建议,以便修订并使之更臻完善。编辑联系邮箱:zhangtao@ptpress.com.cn。
最后感谢您购买本书,希望本书能成为您编程路上的领航者,祝您阅读快乐!
作者
实例001:手动编译C#程序
范例001:使用匿名类型、var关键字
范例002:演示扩展方法的使用
实例002:演示C#装箱操作的实现过程
范例003:泛型委托和Lamdba实现计算器
范例004:整型数组排序
实例003:演示拆箱操作的实现过程
范例005:使用LINQ与正则表达式筛选聊天记录
范例006:检索XML文档中的数据
实例004:计算经过多少年得到指定目标的存款
范例007:泛型委托和Lamdba实现计算器
范例008:实现货币和日期格式转换
实例005:将指定数组内的数据从小到大进行排列
范例009:计算两日期时间间隔
范例010:获取当前日期和时间
实例006:根据分支参数的值执行对应的处理程序
范例011:获取星期信息
范例012:获取当前年的天数
实例007:交换处理函数内的参数值
范例013:获取当前月的天数
范例014:获取当前日期的前一天
实例008: 根据用户的姓名输出对应的QQ名
范例015:字符串比较
范例016:定位子字符串
实例009:使用C#属性输出类成员的操作结果
范例017:字符串连接
范例018:分割字符串
实例010:根据用户输入的字符动态输出对应的提示信息
范例019:设置当前页为浏览器默认页
范例020:将本站添加至收藏夹
实例011:演示@Reference指令的使用方法
范例021:在弹出的广告窗口中添加【关闭】按钮
范例022:使用JavaScript刷新广告窗口的父窗口
实例012:通过用户控件输出对应属性信息
范例023:模仿Office的下拉式菜单导航栏
范例024:动态显示提示信息的解释菜单
实例013:输出系统的当前时间
范例025:使用URL传递参数
范例026:Session对象跨页面传值
实例014:通过QueryString属性获取页面的传递参数
范例027:统计在线人数
范例028:登录日志
实例015:通过Application对象实现页面的在线统计
范例029:综合统计用户在线时间
范例030:获取网站访问人数
实例016:演示创建和使用Session的流程
范例031:获取单日访问人数
范例032:发布公告信息
实例017:通过TimeOut属性设置页面中Session的有效期限是1分钟
范例033:实现私聊功能
范例034:保持用户登录状态
实例018:通过Server对象获取页面所在服务器的基本信息
范例035:检测客户端浏览器类型
范例036:投票保护
实例019:演示Cookie对象的基本使用方法
范例037:获取客户端操作系统等信息
范例038:获取购物车中的商品
实例020:获取用户表单内的输入数据并隐藏输出
范例039:使用文本框制作登录页面
范例040:实现网络问卷调查
实例021:获取用户输入的登录数据,并判定登录密码是否正确
范例041:使用密码框
范例042:使用Label控件显示日期
实例022:演示File的具体使用方法
范例043:使用金额格式的文本
范例044:多行文本框应用
实例023:单击按钮后能根据用户的选择输出不同的提示
范例045:动态添加DropDownList项
范例046:DropDownList的数据绑定
实例024:演示按钮控件的具体使用方法
范例047:用RadioButton实现互斥
范例048:制作网络调查问卷
实例025:为用户提供信息选择列表,当选择并单击按钮后输出对应的选择结果
范例049:动态添加CheckBoxList的选择项
范例050:LinkButton控件与HyperLink控件
实例026: 将指定数据库的数据绑定到DataList控件,并在前台页面中调用显示
范例051:实现热点地图导航
范例052:实现一个简单图片导航
实例027:演示Wizard控件和WizardStep控件的用法
范例053:在sitemap文件中设计站点导航地图
范例054:使用sitemap文件和实现网站导航
实例028:用AdRotator控件轮显广告
范例055:使用sitemap和Menu制作导航栏
范例056:使用TreeView制作OA导航栏
实例029:计算用户单击Button的次数
范例057:使用Login控件
范例058:创建用户并登录
实例030:上传文件并输出上传文件的名称和大小
范例059:在数据绑定控件中动态显示图片
范例060:头像选择窗口
实例031:根据用户单击图片的位置输出对应的提示
范例061:图片的上传和下载
范例062:制作网上商城注册页面
实例032:演示DetailsView控件的数据绑定
范例063:显示绑定表达式格式化的数据
范例064:绑定数据库中的图片
实例033:用FormView控件绑定数据库“Students”的数据
范例065:泛型集合数据绑定
范例066:绑定表达式
实例034:演示数据绑定,并显示数据库内的数据
范例067:绑定方法返回值
范例068:Repeater控件实现商品展示
实例035:用SqlDataSource控件建立和SQL Server数据库的连接
范例069:ListBox控件的数据绑定
范例070:用其他集合对象作为数据源
实例036:使用AccessDataSource控件实现数据绑定
范例071:用XmlDataSource绑定TreeView
范例072:用XML作为数据
实例037:建立和指定XML文件的连接
范例073:用XPath表达式过滤XML数据
范例074:绑定方法返回值
实例038:获取站点内地图文件的信息
范例075:数据库连接向导
范例076:GridView控件简单数据绑定
实例039:用ObjectDataSource控件绑定数据访问层
范例077:用GridView控件的事件管理员工信息
范例078:用GridView实现简单的数据排序
实例040:用RangeValidator控件验证输入表单的数据
范例079:日期类型验证
范例080:年龄范围验证
实例041:验证用户输入表单的日期是否合法
范例081:护照验证
范例082:用正则表达式验证身份证
实例042:验证用户输入表单的邮件地址是否合法
范例083:常用用户名格式验证
范例084:入学日期必须小于毕业日期
实例043:验证用户输入框的数据
范例085:使用自定义验证控件验证货币格式
范例086:ValidationSummary显示验证消息
实例044:验证用户输入框的数据
范例087:在校友录注册页面中使用验证控件
范例088:在用户注册页面中使用自定义验证控件
实例045:验证用户输入框的数是否为空
范例089:获取购物车中的商品
范例090:清空购物车
实例046:演示用户控件方法和属性的具体使用方法
范例091:移除指定商品
范例092:使用AutoCompleteExtender控件
实例047:演示用户控件动态加载的方法
范例093:实现文本智能匹配
范例094:智能密码强度提示
实例048:演示ViewStateMode属性的用法
范例095:追加字符串
范例096:插入字符串
实例049:演示ClientIDMode属性的用法
范例097:删除字符串
范例098:替换字符串
实例050:演示EnablePersistedSelection属性的用法
范例099:URL编码
范例100:URL解码
实例051:演示EnableDynamicData的使用
范例101:使用Accordion控件实现折叠面板
范例102:用DragPanelExtender实现拖曳层
实例052:演示DynamicHyperLink的使用
范例103:用Timer控件实现Ajax聊天室
范例104:CollapsiblePanelExtender实现最小化
实例053:演示For循环的并行运算
范例105:倒计时秒表
范例106:实现阴影效果的模态窗口
实例054:演示ForEach的并行运算
范例107:用Ajax Calendar实现日期选择
范例108:在商城展示页面中使用Ajax技术
实例055:演示支持服务端 RowCount
范例109:Office文件操作
范例110:使用System.Web.Mail发送邮件
实例056:演示支持服务端分页
范例111:使用Jmail组件接收E-mail
范例112:实现简单搜索
实例057:演示对外键的支持
范例113:实现复杂的搜索
范例114:普通登录
实例058:演示对复杂类型的支持
范例115:单击登录
范例116:MD5加密登录用户密码
实例059:获取并显示指定SQL Server数据源的数据
范例117:Access数据库连接
范例118:使用登录密码的Access数据库
实例060:在非连接环境下使用ADO.NET
范例119:访问Excel文件
范例120:连接SQL Server数据库
实例061:通过ADO.NET对象操作指定数据库中的数据
范例121:MySQL数据库连接
范例122:录入员工信息
实例062:获取数据库中指定表的所有内容
范例123:插入多记录
范例124:更新员工信息
实例063:通过Visual Studio 2012创建嵌套的母版页
范例125:在ASP.NET和HTML页面中定义样式
范例126:在页面引用外部样式表文件
实例064:使用Visual Studio 2012创建主题
范例127:鼠标单击链接的样式
范例128:控制鼠标悬停的样式
实例065:为控件创建皮肤文件
范例129:ASP.NET常见控件适用样式
范例130:使用复杂数据绑定样式
实例066:演示匿名用户的个性化用户配置
范例131:绘制直线、矩形和多边形
范例132:绘制圆形、椭圆形和扇形
实例067:为注册用户实现个性化用户配置
范例133:混合验证码
范例134:汉字验证码
实例068:实现一个样式可以改变的日历界面
范例135:投票结果统计
范例136:网站流量柱形图表
实例069:自行设置日历界面的颜色和高度
范例137:人口出生率折线图表
范例138:男女比例饼形图
实例070:使用CatalogZone控件改变日历界面的效果
范例139:通过下拉列表获取头像
范例140:通过弹出窗口获取头像
实例071:定义一个缓存页显示当前的时间
范例141:通过鼠标滑轮控制图片大小
范例142:显示随机图像
实例072:用@ OutputCache和API输出页面缓存
范例143:获取图像的实际尺寸
范例144:页面插入Flash动画
实例073:使用Substitution控件实现缓存后替换
范例145:文本长度控制
范例146:文本换行
实例074:使用@ OutputCache指令设置输出缓存
范例147:主外键表数据显示
范例148:将数据导入Excel
实例075:实现应用程序数据缓存的各种应用
范例149:读取Excel中的数据
范例150:数据导入Excel时进行格式控制
实例076:获取指定文件的列表信息
范例151:查询指定列数据
范例152:列别名和表别名
综合实例01:用户登录验证系统
综合实例02:在线信息搜索系统
综合实例03:图文处理系统
综合实例04:在线留言本系统
综合实例05:在线聊天系统
ASP.NET技术是一门Web开发技术,是微软公司提出的在.NET平台上的开发技术。通过ASP.NET技术可以迅速地创建动态页面,并且能够根据客户的需要进行灵活调整。ASP.NET技术是当前Web开发技术的核心力量之一,并且因为本身的简洁性、高效性和灵活性,为大多数Web程序员所青睐。
知识点讲解:光盘:视频\PPT讲解(知识点)\第1章\认识网页和网站.mp4
在现代生活中,网络给我们带来了极大方便,网上查询天气、查询车票、浏览新闻……现代生活越来越离不开网络了。在学习ASP.NET之前,读者应先了解网页和网站的基本知识。网页和网站是相互关联的两个技术,两者之间通过相互作用,实现了现实中的应用站点,并共同推动了互联网技术的飞速发展。在本节的内容中,将首先讲解网页和网站的基本知识。
所谓的网页,是指目前在互联网上看到的丰富多彩的站点页面。从严格定义上讲,网页是Web站点中使用HTML等标记语言编写的单位文档。它是Web中的信息载体。网页由多个元素构成,是这些构成元素的集合体。一个典型的网页由如下几个元素构成。
文本是网页中最重要的信息,在网页中,可以通过字体、大小、颜色、底纹、边框等来设置文本的属性。在网页概念中的文本是指文字,而非图片中的文字。在网页制作中,可以方便地设置字体的大小和颜色。
图像是网页中最为重要的构成部分。只有加入图像,网页才会变得丰富多彩,可见图像在网页中的重要性。网页设计中常用的图像格式为JPG和GIF。
超链接是指从一个网页指向另一个目的端的链接,是从文本、图片、图形或图像映射到全球广域网上网页或文件的指针。在全球广域网上,超链接是网页之间和Web站点中主要的导航方法。
表格是传统网页排版的灵魂,即使CSS(级联样式表)标准推出后也能够继续发挥作用。通过表格可以精确地控制各网页元素在网页中的位置。
表单是用来收集站点访问者信息的域集,是网页中站点服务器处理的一组数据输入域。当访问者单击按钮或图形来提交表单后,数据就会传送到服务器上。它是网页与服务器之间传递信息的途径。表单网页可以用来收集浏览者的意见和建议,以实现浏览者与站点之间的互动。
框架是网页中的一种重要组织形式,它能够将相互关联的多个网页的内容组织在一个浏览器窗口中显示。从实现方法上讲,框架由一系列相互关联的网页构成,并且相互间通过框架网页来实现交互。框架网页是一种特别的HTML网页,它可将浏览器视窗分为不同的框架,而每一个框架又可显示一个不同网页。
网站对我们来说不陌生,网站是由网页构成的,它是一系列页面构成的整体。一个网站可能由一个页面构成,也可能由多个页面构成,并且这些页面相互间存在着某种联系。一个典型网站的基本组成结构如图1-1所示。
图1-1 网站基本结构图
上述结构中的各网站元素,在服务器上被保存在不同的文件夹中,如图1-2所示。
图1-2 网站存储结构图
知识点讲解:光盘:视频\PPT讲解(知识点)\第1章\Web技术介绍和工作原理.mp4
网站的工作原理很简单,如图1-3所示。
图1-3 本地计算机和远程服务器的工作流程
学习Web开发,不得不提到本地计算机和远程服务器的概念。顾名思义,本地计算机是指用户正在使用的、浏览站点页面的机器。对于本地计算机来说,最重要的构成模块是Web浏览器。
浏览器是WWW(Word Wide Web,万维网)系统的重要组成部分,它是运行在本地计算机中的程序,负责向服务器发送请求,并且将服务器返回的结果显示给用户。用户就是通过浏览器这个窗口来分享网上丰富的资源的。常见的网页浏览器有Internet Explorer、Firefox、Opera和Safari。
远程服务器是一种高性能计算机,作为网络的节点,存储、处理网络上80%的数据、信息,因此也被称为网络的灵魂。它是网络上一种为客户端计算机提供各种服务的高性能计算机,它在网络操作系统的控制下,将与其相连的硬盘、磁带、打印机、Modem及各种专用通信设备提供给网络上的客户站点共享,也能为网络用户提供集中计算、信息发表及数据管理等服务。它的高性能主要体现在高速度的运算能力、长时间的可靠运行、强大的外部数据吞吐能力等方面。
远程服务器的主要功能是接收客户浏览器发来的请求,分析请求,并给予响应,响应的信息通过网络返回给用户浏览器。本地计算机和远程服务器的工作流程如图1-3所示。
用户访问互联网资源的前提是必须首先获取站点的地址,然后通过页面链接来浏览具体页面的内容。上述过程是通过浏览器和服务器进行的,下面以访问搜狐网为例来讲解Web应用程序的工作原理。
(1)在浏览器地址栏中输入搜狐网的首页地址“http://www.sohu.com”。
(2)用户浏览器向服务器发送访问搜狐网首页的请求。
(3)服务器获取客户端的访问请求。
(4)服务器处理请求。如果请求页面是静态文档,则只需将此文档直接传送给浏览器即可;如果是动态文档,则将处理后的静态文档发送给浏览器。
(5)服务器将处理后的结果在客户端浏览器中显示。
站点页面按照性质可划分为静态页面和动态页面。其中静态页面是指网页的代码都在页面中,不需要执行动态程序生成客户端网页代码的网页。例如,HTML页面文件。
动态页面和静态页面是相对的,是指页面内容是动态交互的,它可以根据系统的设置来显示不同的内容。例如,可以通过网站后台管理系统对网站的内容进行更新管理。
随着互联网的普及和电子商务的迅速发展,人们对站点的要求也越来越高。为此,开发动态、高效的Web站点已经成为社会发展的需求。在这种趋势下,各种动态网页技术便应运而生。
早期的动态网页主要采用CGI(Common Gateway Interface,公用网关接口)技术。其最大优点是可以使用不同的程序语言编写,如Visual Basic、Delphi或C/C++等。虽然CGI技术已经发展成熟而且功能强大,但由于编程困难、效率低下、修改复杂,所以逐渐退出历史舞台。
在现实中,常用的动态网页技术有ASP技术、PHP技术、JSP技术和.NET技术。这些技术充分结合XML以及新兴的AJAX(异步Java Script与XML技术),帮助开发人员设计出功能强大、界面美观的动态页面。
因为网页分为静态网页和动态网页,所以Web开技术也分为静态Web开发技术和动态Web开发技术。在接下来的内容中,将详细讲解这两种Web开发技术的基本知识。
目前,常用的静态Web开发技术有HTML和XML两种,具体说明如下。
HTML文件都是以<HTML>开头,以</HTML>结束的。<head>…</head>之间是文件的头部信息,除了<title>…</title>之间的内容,其余内容都不会显示在浏览器上。<body>…</body>之间的代码是HTML文件的主体,客户浏览器显示的内容主要在这里定义。
HTML是制作网页的基础,我们在现实中所见到的静态网页,就是以HTML为基础制作的网页。早期的网页都是直接用HTML代码编写的,不过现在有很多智能化的网页制作软件(常用的如FrontPage、Dreamweaver等)通常不需要人工编写代码,而是由这些软件自动生成的。尽管不需要自己编写代码,但了解HTML代码仍然非常重要,因为这是学习Web开发技术的基础。
XML是eXtensible Markup Language的缩写,译为可扩展的标记语言。与HTML相似,XML是一种显示数据的标记语言,它能使数据通过网络无障碍地进行传输,并显示在用户的浏览器上。XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。它也是元标记语言,即定义了用于定义其他与特定领域有关的、语义的、结构化的标记语言的句法语言。
使用上述静态Web开发技术也能够实现页面的绚丽效果,并且静态网页相对于动态页面来说,其显示速度比较快。所以在现实应用中,为了满足页面的特定需求,需要在站点中使用静态网页技术来显示访问速度比较高的页面。
但是静态网页技术只能实现页面内容的简单显示,不能实现页面的交互效果。随着网络技术的发展和使用需求的提高,静态网页技术越来越不能满足客户的需要。为此,更新、更高级的网页技术便登上了Web领域的舞台。
除了本书介绍的ASP.NET外,常用的动态Web开发技术还有ASP、PHP、JSP和ASP.NET等。
ASP(Active Server Pages,动态服务器网页)是微软公司推出的一种用以取代CGI(Commom Gateway Interface,通用网关接口)的技术。ASP以微软操作系统的强大普及性作为支撑,一经推出后,便迅速成为最主流的Web开发技术。
ASP是Web服务器端的开发环境,利用它可以创建和执行动态、高效、交互的Web服务应用程序。ASP技术是一种HTML、Script与CGI的结合体,但是其运行效率却比CGI更高,程序编制也比HTML更方便且更有灵活性。
PHP(Hyper text Preprocessor,超文本预处理器)也是流行的生成动态网页的技术之一。PHP是完全免费的,可以从PHP官方站点自由下载。用户可以不受限制地获得PHP源代码,甚至可以向其中添加自己需要的特色。PHP可在大多数UNIX平台,以及GUN/Linux和微软Windows平台上运行。
JSP(Java Server Pages)是Sun公司为创建高度动态的Web应用而提供的一个独特的开发环境。和ASP技术一样,JSP拥有在HTML代码中混合某种程序代码,并由语言引擎解释执行程序代码的能力。
ASP.NET是微软公司动态服务页技术的新版本。它提供了一个统一的Web开发模型,其中包括开发人员生成企业级Web应用程序所需的各种服务。ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。
ASP.NET是一个已编译的、基于.NET的环境,可以用任何与.NET兼容的语言编写应用程序。另外,任何ASP.NET应用程序都可以使用.NET Framework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等。
在微软推出.NET框架后,ASP.NET迅速火热起来,其各方面技术与ASP相比都发生了很大的变化。它不是解释执行语句程序,而是将其编译为二进制数,并将其以DLL形式存储在机器硬盘,提高了程序的安全性和执行效率。
注意:动态技术比静态技术灵活。
随着网络技术的发展和客户应用需求的不断提高,动态网页技术逐渐取代传统的静态网页技术,成为当前Web领域的主流开发技术。每种动态技术都有其各自的特点,深受不同类型用户的青睐。另外,随着微软公司的大力推广和宣传,.NET技术逐渐成为了最新兴和最有发展前景的Web开发技术之一。
首先看一下动态Web的工作过程。用户在客户端发出请求信息,用户的需求信息被传递给服务器,服务器此时会对接收的请求进行处理,并将处理后的结果返回给浏览器。那么ASP.NET在此过程中有什么作用呢?从本质上讲,ASP.NET引擎是服务器的一个扩展。当用户访问某个ASP.NET页面时,服务器会将请求转交给ASP.NET引擎进行处理。ASP.NET引擎将请求处理完毕后,会将最终的处理结果经过服务器返回给客户端用户。
因为ASP.NET页面包含某些特定元素,所以,这些页面通常由普通的HTML标签和ASP.NET特有的Web控件标签组成。而Web服务器的职责就是将用户提交的请求进行处理,返回客户端的则是静态的HTML或XML等格式的请求结果。所以,ASP.NET引擎在此过程中只是负责Web控件处理,而对普通的HTML内容不会做任何改变就传递给浏览者。
知识点讲解:光盘:视频\PPT讲解(知识点)\第1章\介绍Web标准.mp4
随着网络技术的迅速发展,人们对网站的需求大大增加,各种网站也如雨后春笋般纷纷建立起来。由于网络的无限性和共享性,以及各种设计软件的推出,多样化的站点展示方式随即应运而生。与此同时,各种技术的兼容问题也随之引发,而Web标准就是为了解决技术冲突而诞生的。
顾名思义,Web标准是所有站点在建设时必须遵循的一系列硬性规范。
从页面构成来看,网页主要由3部分组成:结构(Structure)、表现(Presentation)和行为(Behavior)。因此,对应的Web标准也分为如下3个方面。
当前使用的结构化标准语言是HTML和XHTML,具体信息如下。
HTML是Hyper Text Markup Language(超文本标记语言)的缩写,是构成Web页面的主要元素,是网页上信息的符号标记语言。
XHTML是Extensible Hyper Text Markup Language的缩写。XHTML是在XML标准的基础上建立起来的标识语言,其目的是实现HTML向XML的过渡。
目前的表现性语言是CSS ,它是Cascading Style Sheets(层叠样式表)的缩写。当前新的CSS规范是W3C从2007年开始陆续发布的CSS3。通过CSS可以对网页进行布局,控制网页的表现形式。CSS可以与XHTML语言相结合,实现页面表现和结构的完整分离,提高站点的使用性和维护效率。
当前推荐遵循的行为标准是DOM和ECMAScript。DOM是Document Object Model(文档对象模型)的缩写,根据W3C DOM规范,DOM是一种与浏览器、平台和语言的接口,使得用户可以访问页面其他的标准组件。简单理解就是,DOM解决了Netscaped的JavaScript和Microsoft的Jscript之间的冲突,给予Web设计师和开发者一个标准的方法,让他们来访问站点中的数据、脚本和表现层对像。从本质上讲,DOM是一种文档对象模型,是建立在网页和Script及程序语言之间的桥梁。
知识点讲解:光盘:视频\PPT讲解(知识点)\第1章\ASP.NET基础.mp4
从本节开始,将详细讲解ASP.NET这门神奇的动态Web开发技术,为读者学习本书后面的知识打下基础。
ASP是微软公司推出的一种使嵌入网页中的脚本可由因特网服务器执行的服务器端脚本技术,指动态服务器页面(Active Server Pages,ASP)运行于IIS之中的程序。在2000年第二季度时,微软公司正式推动.NET策略,ASP也顺理成章地改名为ASP.NET。经过几年的开发,第一个版本的ASP.NET在2002年1月5日亮相。目前最新的版本是ASP.NET 5.0以及.NET Framework 5.0。
和其他动态Web开发技术相比,ASP.NET的突出优势如下。
(1)世界级的工具支持
ASP.NET构架可以用微软公司最新的产品Visual Studio.NET开发环境进行开发,并可进行WYSIWYG(What You See Is What You Get所见即为所得)的编辑。这些仅是ASP.NET强大软件支持功能的一小部分。
(2)强大性和适应性
因为ASP.NET是基于通用语言的编译运行的程序,所以,它的强大性和适应性使它几乎可以运行在Web应用软件开发者的全部的平台上。通用语言的基本库、消息机制、数据接口的处理都能无缝地整合到ASP.NET的Web应用中。ASP.NET同时也是语言独立化的,所以,用户可以选择一种最适合自己的语言来编写程序,或者选择很多种语言来写,现在已经支持的有C#(C++和Java的结合体)、VB、Jscript、C++。
ASP.NET一般分为两种开发语言:VB.NET和C#。C#相对比较常用,因为是.NET独有的语言;VB.NET则为以前VB程序设计,适合于以前VB程序员。如果新接触.NET,没有其他开发语言经验,建议直接学习C#即可。
(3)简单性和易学性
ASP.NET使运行一些很平常的任务,如表单的提交、客户端的身份验证、分布系统和网站配置等变得非常简单。例如,ASP.NET页面构架允许用户建立自己的用户分界面,使其不同于常见的VB-Like界面。
(4)高效可管理性
ASP.NET使用一种字符基础的、分级的配置系统,使服务器环境和应用程序的设置更加简单。因为配置信息都保存在简单文本中,新的设置有可能都不需要启动本地的管理员工具就可以实现。这种方式使ASP.NET的基于应用的开发更加具体和快捷。
.NET Framework为开发人员提供了公共语言运行库的运行时环境,它能够运行代码并为开发过程提供更轻松的服务。公共语言运行库的功能是通过编译器和工具分开,开发人员可以编写利用此托管执行环境的代码。托管代码是指使用基于公共语言运行库的语言编译器开发的代码。托管代码具有许多优点,如跨语言集成、跨语言异常处理、增强的安全性、版本控制和部署支持、简化的组件交互模型、调试和分析服务等。
当前新的版本是.NET Framework 4.5,与以往版本相比,.NET Framework 4.5的新增功能如下。
(1)适用于Windows应用商店应用的.NET
Windows应用商店为特定窗体因素而设计并利用Windows操作系统的功能。通过使用C#或Visual Basic,.NET Framework 4.5的子集可用于生成Windows的Windows应用商店应用程序。
(2)可移植类库
在Visual Studio 2012中的可移植类库可让用户编写和生成在多个.NET Framework平台上运行的托管程序集。使用“可移植类库”项目可以选择这些平台(如Windows Phone和适用于Windows应用商店应用的.NET)作为目标。
(3)并行计算
.NET Framework 4.5为并行计算提供若干新功能和性能改进,主要包括提高了原有技术的性能,增加了新的控件,为异步编程提供了更好的支持,对数据流库、并行调试器和性能分析提供了更好的支持。
具体来说,ASP.NET 4.5主要包括如下所示的新功能。
CLR是Common Language Runtime的缩写,译为公共语言运行时。CLR是所有.NET应用程序运行时环境,是所有.NET应用程序都使用的编程基础。CLR可以看作一个在执行时管理代码的代理,管理代码是CLR的基本原则,能够被管理的代码称为托管代码,反之称为非托管代码。CLR由两个部分组成:CLS(Common Language Specification,公共语言规范)和CTS(Common Type Stytem,通用类型系统)。
(1)CTS
C#和Visual Basic.NET都是公共语言运行时的托管代码,它们的语法和数据类型各不相同。CLR是如何对这两种不同的语言进行托管的呢?CTS用于解决不同语言的数据类型不同的问题,如C#中的整型是int,而Visual Basic.NET中的整型是Integer,通过CTS可以把它们两个编译成通用的类型Int32。所有的.NET语言共享这一类型系统,在它们之间实现无缝互操作。
(2)CLS
编程语言的区别不仅在于类型,语法或者说语言规范也都有很大的区别。因此,.NET通过定义CLS,限制了由这些不同点引发的互操作性问题。CLS是一种最低的语言标准,制定了一种以.NET平台为目标的语言所必须支持的最小特征,以及该语言与其他.NET语言之间实现互操作所需要的完备特征。凡是遵守这个标准的语言在.NET框架下都可以互相调用。例如,C#中命名是区分大小写的,而Visual Basic.NET中不区分大小写,这样CLS就规定编译后的中间代码必须除了大小写之外,还要有其他的不同之处。
(3)NET编译技术
为了实现跨语言开发和跨平台的战略目标,.NET所有编写的应用都不编译为本地代码,而是编译为微软中间代码(Microsoft Intermediate Language,MSIL)。它将由JIT(Just In Time)编译器转换成机器代码。C#和Visual Basic.NET代码通过它们各自的编译器编译成MSIL,MSIL遵守通用的语法,CPU不需要了解它,再通过JIT编译器编译成相应的平台专用代码(这里所说的平台是指我们的操作系统)。这种编译方式实现了代码托管,同时提高了程序的运行效率。
知识点讲解:光盘:视频\PPT讲解(知识点)\第1章\3种必备技术.mp4
ASP.NET技术是一门功能强大的Web开发技术,它能够迅速实现动态页面。但是ASP.NET也并不是万能的,它需要和其他的页面技术相结合,例如常见的HTML、CSS和JavaScript等。在本节的内容中,将简要介绍和ASP.NET相关的网页技术,为读者学习本书后面内容做好铺垫。
HTML是制作网页的基础,现实中的各种网页都是建立在HTML基础之上的。通过HTML可以实现对页面元素的布局处理。在本节的内容中,将简要讲解HTML技术的基本知识。
静态网页上的内容是静态不变的,它是网站技术的基础。静态网页能够迅速将内容展现在用户面前,是网站技术不可缺少的组成部分。
(1)设置网页头部和标题
网页头部位于网页的顶部,用于设置与网页相关的信息。例如,页面标题、关键字和版权等信息。当页面执行后,不会在页面正文中显示头部元素信息。
HTML网页头部有如下3种设置信息。
文档类型(DOCTYPE)的功能是定义当前页面所使用标记语言(HTML或XHTML)的版本。合理选择当前页面的文档类型是设计标准Web页面的基础。只有定义了页面的文档类型后,页面中的标记和CSS才会生效。
编码类型的功能是设置页面正文中字符的格式,确保页面文本内容正确地在浏览器中显示。常用的编码类型有GB2312编码、UTF-8编码和HZ编码。
页面标题(Title)的功能是设置当前网页的标题。设置后的标题不在浏览器正文中显示,而在浏览器的标题栏中显示。
(2)设置页面正文和注释
正文和注释是页面的主体,网页通过正文向浏览者展示页面的基本信息。注释是编程语言和标记语言中不可缺少的要素。通过注释不但可以方便用户对代码的理解,并且便于系统程序的后续维护。
网页正文定义了其显示的主要内容和显示格式,是整个网页的核心。在HTML等标记语言中设置正文的标记是“<body>..</body>”,其语法格式为:
<body>页面正文内容</body>
注释的主要作用是方便用户对代码的理解,并便于对系统程序的后续维护。HTML中插入注释的语法格式为:
<!--注释内容 -->
(3)文字和段落处理
文档由文字组成,是网页技术中的核心内容之一。网页通过文档和图片等元素向浏览用户展示站点的信息。
网页设计中的标题是指页面中文本的标题,而不是HTML中的<title>标题。标题在浏览器的正文中显示,而不是在浏览器的标题栏中显示。
在页面中使用标题文字的语法格式为:
<hn align=对齐方式 > 标题文字 </hn>
HTML标记语言不但可以给文本标题设置大小,而且可以给页面内的其他文本设置显示样式,如字体大小、颜色和所使用的字体等。
文本文字标记:<font >
在网页中为了增强页面的层次,其中的文字可以用<font>标记为不同的大小、字体、字型和颜色。<font>标记的语法格式为:
<font size=数字 face=字体名 color=颜色> 被设置的文字 </font >
网页中的字型是指页面文字的风格,例如,文字加粗、斜体、带下划线、上标和下标等。常用字型标记的具体说明如表1-1所示。
表1-1 常用字型标记列表
字 型 标 记 |
描 述 |
---|---|
<B></B> |
设置文本加粗显示 |
<I></I> |
设置文本倾斜显示 |
<U></U> |
设置文本加下划线显示 |
<TT></TT> |
设置文本以标准打印字体显示 |
<SUB></SUB> |
设置文本下标 |
<SUP></SUP> |
设置文本上标 |
<BIG><BIG> |
设置文本以大字体显示 |
<SMALL></SMALL> |
设置文本以小字体显示 |
段落标记<p>的功能是定义一个新段落的开始。标记<P>不但能使后面的文字换到下一行,还可以使两段之间多一空行。由于一段的结束意味着新一段的开始,所以使用<P>也可省略结束标记。
段落标记<P>的语法格式为:
<P align = 对齐方式>
(4)超链接处理
超链接是指从一个网页指向另一个目的端的转换标记,是从文本、图片、图形或图像映射到全球广域网上网页或文件的指针。在万维网(WWW)上,超链接是网页之间和Web站点之中主要的导航方法。
网页中的超链接功能是由<a>标记实现的。标记<a>可以在网页上建立超文本链接,通过单击一个词、句或图片可从此处转到目标资源,并且这个目标资源有唯一的URL地址。
标记<a>的语法格式为:
< a href=地址 name=字符串 target=打开窗口方式> 热点 </ a >
(5)插入图片
图片是Web网页中的重要组成元素之一,页面通过图片的修饰可以向浏览者展现出多彩的效果。在Web网页中,图片通常有GIF和JPEG两种格式。
背景图片是指将图片作为网页的背景。在网页设计过程中,经常为满足特定需求而将一幅图片作为背景。无论是背景图片,还是背景颜色,都可以通过<BODY>标记的相应属性来设置。
使用<BODY>标记的background属性,可为网页设置背景图片。其语法格式为:
<BODY background=图片文件名>
如果页面需要将图片作为主体内容,则可以在页面中插入图片。在具体实现上,通常使用图片标记<img>将一幅图片插入到网页中。使用图片标记后,可以设置图片的替代文本、尺寸、布局等属性。
<img>标记的语法格式为:
<img src=文件名 alt=说明 width=x height=y border=n hspace=h vspace=v align=对齐方式>
(6)列表处理
列表是HTML页面中常用的基本标记。常用的列表分为无序列表和有序列表。带序号标志(如数字、字母等)的表项就组成有序列表,否则为无序列表。
无序列表中每一个表项的最前面是项目符号,例如“●”“■”等。在页面中通常使用标记<UL>和<LI>创建无序列表,其语法格式为:
<UL type=符号类型>
<LI type=符号类型1> 第一个列表项
<LI type=符号类型2> 第二个列表项
…
</UL>
有序列表中,列表前的项目编号是按照顺序样式显示的。例如,1、2、3…或Ⅰ、Ⅱ…通过带序号的列表可以更清楚地表达信息的顺序。使用<OL>标记可以建立有序列表,表项的标记仍为<LI>。其语法格式为:
<OL type=符号类型>
<LI type=符号类型1> 表项1
<LI type=符号类型2> 表项2
…
</OL>
页面布局是整个网页技术的核心,通过HTML标记可以对页面进行布局处理,分配各元素在网页中的显示位置。在下面的内容中,将对HTML布局标记的基本知识进行简要介绍。
(1)使用表格标记
表格是Web网页中的重要组成元素之一,页面通过表格的修饰可以提供用户需求的显示效果。在页面中创建表格的标记是<table>,创建行的标记为<tr>,创建表项的标记为<td>。表格中的内容写在“<td>…</td>”之间。“<tr>…</tr>”用来创建表格中的每一行,它只能放在<table></table>标记对之间使用,并且在里面加入的文本是无效的。
表格标记的语法格式为:
<table align=left|center|right border=n width=值 height=值%>
<tr> <th>表头1<th>表头2…<th>表头n
<tr> <td>表项1<td>表项2…<td>表项n
……
<tr> <td>表项1<td>表项2…<td>表项n
</table >
(2)使用框架标记
框架是Web网页中的重要组成元素之一,页面通过框架可以满足用户特定需求的显示效果。
通过框架页面,可以将信息分类显示。框架是框架集内各框架的可视化表示形式,能够显示框架集的层次结构。例如,图1-4所示的就是一个典型的左右两侧的框架页面。
图1-4 框架页面效果图
在页面中实现框架功能的标记有框架组标记“<FRAMESET>…</FRAMESET>”和框架标记“<FRAME>” 两个。其中,前者用于划分一个整体的框架,而“<FRAME>”的功能是设置整体框架中的某一个框架,并声明其中框架页面的内容。
上述框架标记的语法格式为:
<FRAMESET>
<FRAME src="URL">
<FRAME src="URL">
…
</FRAMESET>
(3)使用层标记
div是网页标记语言中的重要组成元素之一,网页通过div可以实现页面的规划和布局。div的全称是division,意为“区分”的意思。div主要功能是对页面内的网页元素进行区分处理,使之划分为不同的区域,并且这些区域可以进行单独修饰处理。
div标记是一个对称双标记,它的起始标签和结束标签之间所有的内容都用来构成这个块元素,其中所包含元素的特性由div标签的属性来控制,或通过使用样式表来进行控制。
因为div元素是一个块元素,所以其中可以包含文本、段落、表格和章节等复杂内容。在页面中使用div标记的格式为:
<div 参数>中间部分</div>
CSS是一种装扮网页的技术,不但可以控制页面内某个元素的显示样式,而且可以控制整个站点内某元素的样式,让页面更加绚丽。在本节的内容中,将简要讲解CSS技术的基本知识。
在网页中最为常见的应用便是层叠样式表(Cascading Style Sheets,CSS)。当网页需要将指定内容按照指定样式显示时,利用CSS即可轻松实现。在网页中使用CSS的方式有如下两种。
网页设计中常用的CSS属性如表1-2所示。
表1-2 常用的CSS属性列表
取 值 |
描 述 |
---|---|
color |
设置文字或元素的颜色 |
background-color |
设置背景颜色 |
background-image |
设置背景图像 |
font-family |
设置字体 |
font-size |
设置文字的大小 |
list |
设置列表的样式 |
cursor |
设置鼠标的样式 |
border |
设置边框的样式 |
padding |
设置元素的内补白 |
margin |
设置元素的外边距 |
CSS可以用任何书写文本的工具进行开发。例如,常用的文本工具等。CSS也是一种语言, CSS是用来美化网页用的,使用CSS语言可以控制网页的外观。
作为一种网页样式显示技术,CSS主要有如下几个特点。
CSS对Web开发技术的发展带来了巨大的冲击和革新,并且为网页设计者带来了真正的好处。CSS引入网页制作领域后主要具有如下意义。
因为经常用到的CSS元素是选择符、属性和值。所以,在CSS的语法中主要涉及上述3种元素。CSS的基本语法结构为:
<style type="text/css">
<!--
. 选择符{属性:值}
-->
</style>
JavaScript是一门基于对象(Object)和事件驱动(Event Driven)的脚本技术,并具有安全性能的脚本语言。设计JavaScript的目的是与HTML、Java脚本语言(Java小程序)相互结合,实现在Web页面中链接多个对象,并与Web客户交互的效果,从而实现客户端应用程序的开发。
JavaScript的语法格式为:
<Script Language ="JavaScript">
JavaScript脚本代码1
JavaScript脚本代码2
……
</Script>
例如,可以编写如下代码,执行后将弹出一个提示对话框:
<html>
<head>
<Script Language ="JavaScript">
// JavaScript 开始
alert("这是第一个JavaScript例子!"); //提示语句
alert("欢迎你进入JavaScript世界!"); //提示语句
alert("今后我们将共同学习JavaScript知识!"); //提示语句
</Script>
</Head>
</Html>
在上述代码中,<Script Language="JavaScript">与</Script>之间的部分是JavaScript脚本语句。实例执行后的显示效果如图1-5所示。
图1-5 显示效果图
上述实例文件是HTML文档,其标识格式为标准的HTML格式。而在实际应用中,JavaScript脚本程序将被专门编写,并保存为“.js”格式的文件。当Web页面需要这些脚本程序时,只需通过“<script src="文件名">…</script>”调用即可。
ASP.NET功能强大,能够为我们开发出各种应用的动态Web站点。因此,ASP.NET一直深受广大程序员的喜爱。作为一名初学者,肯定会在学习过程中遇到很多疑问和困惑。为此在本节中,笔者将自己的心得体会与大家分享,希望能帮助读者解决困惑问题。
近年来,随着HTML 5的推广和发展,HTML 5技术带来的许多新特性已经被人们所认可,例如新的HTML标记,原生的视频和音频支持,以及拖放操作等。未来的ASP.NET首先会支持HTML 5中更符合语义的标记。例如,在ASP.NET 2.0中,<asp:Menu />控件会生成复杂的table标记,在ASP.NET 4中则会变成符合目前语义的ul/il嵌套,而在未来的ASP.NET中,可能会生成<menu />标记。此外,HTML 5的Web Storage功能允许将数据储存在浏览器上,未来的Microsoft Ajax库中将会提供一个可选的IntermediateDataContext用于替换目前的AdoNetDataContext,后者将数据通过WCF接口存放在服务器端,而前者则将数据保存在本地。
(1)基础要扎实,学习要深入
基础的作用不言而喻,在此重点说明“深入”的作用。职场不是学校,企业要求你能高效地完成项目功能,这就要求我们在学习的过程中,不仅要扎实掌握ASP.NET的基础知识,而且要将ASP.NET技术的精髓吃透。
(2)恒心,演练,举一反三
学习编程是一个枯燥的过程,要想成为编程高手,必须持之以恒,学会在枯燥中寻找编程的乐趣。另外,编程最注重实践,最怕闭门造车。每一个语法,每一个知识点,都要反复演练,并且做到举一反三,灵活运用,这样才能加深对知识的理解。
(3)语言之争的时代更要学会坚持
有很多意志不坚定的初学者,热衷于追逐新奇的方技术,而忽视于基本功的学习。例如Ajax技术刚刚诞生时,就马上投入到Ajax热潮中,而苹果公司在刚刚推出Swift语言时,就急忙加入到学习大军中,这种见异思迁的行为不值得广大程序员学习。
到现在为止,C语、C#和Java一直活跃于程序开发领域,这些已经诞生并流行的开发语言有着强大的生命力,值得我们去坚持!
ASP.NET是一门功能强大的Web开发技术,它是建立在特定的开发平台之上的。所以在进行ASP.NET开发前,需要为其建立专门的开发平台,搭建开发环境。在本章中,将简要介绍搭建ASP.NET开发环境的方法,为读者学习本书后面的内容打好基础。
知识点讲解:光盘:视频\PPT讲解(知识点)\第2章\配置ASP.NET环境.avi
因为ASP.NET应用程序的宿主是IIS,它包含在微软的Windows系统中。对于个人用户,可以通过IIS将计算机虚拟为Web服务器,这样就可以在本地测试使用ASP.NET程序。本节将详细讲解为ASP.NET配置开发环境的方法。
IIS(Internet Information Services,互联网信息服务)是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。最初是Windows NT版本的可选包,随后内置在Windows 2000、Windows XP Professional、Windows Server 2003、Windows 7中一起发行,但在Windows XP Home版本上并没有IIS。由此可见,对于当前最普遍的Windows 7系统来说,因为已经内置了IIS,所以我们无需单独进行安装。如果用户使用的是比较老的版本,则需要单独安装IIS。下面以Windows XP系统为例,介绍安装IIS的方法。
(1)依次单击【开始】→【设置】→【控制面板】命令,打开“控制面板”界面,效果如图2-1所示。
图2-1 “控制面板”界面效果图
(2)双击“添加或删除程序”图标,打开“添加或删除程序”对话框,如图2-2所示。
图2-2 “添加或删除程序”对话框
(3)在“添加或删除程序”对话框左侧,单击“添加/删除Windows组件”图标,打开“Windows组件向导”对话框,如图2-3所示。
图2-3 “Windows组件向导”对话框
(4)选中“组件”列表框中的“Internet信息服务(IIS)”选项,单击【下一步】按钮,组件向导即开始安装所选组件。
(5)在安装向导的最后一页单击【完成】按钮,完成IIS组件的安装。
(6)在【控制面板】界面中双击【管理工具】图标,弹出“管理工具”对话框,在其中双击“Internet信息服务”图标,打开“Internet信息服务”对话框,如图2-4所示。
图2-4 “Internet信息服务”对话框
注意:如果此处“默认网站”状态为停止,应右键单击后选择“启动”命令,使服务器运行,如图2-5所示。
图2-5 启动IIS效果图
IIS安装完成后,在浏览器地址栏中输入“http://localhost/iishelp/iis/misc/”,即可看到IIS自带的帮助文档和ASP文档,如图2-6所示。
图2-6 IIS帮助文档主页效果图
注意:安装IIS的默认主目录是C:\Inetpub\wwwroot,不需要做任何改动即可使用IIS。
成功安装并启动IIS后,还需要做一些合理的配置工作,才能使自己的站点正确、高效地运行。
如果网站包含的ASP执行文件不在主目录文件夹中,则必须创建虚拟目录将这些文件包含到网站中。如果要执行的文件在其他计算机上,还需要指定此目录的通用名称,并提供具有访问权限的用户名和密码。
(1)在图2-4所示的对话框中,用鼠标右击默认网站,在弹出的快捷菜单中选择【新建虚拟目录】命令,打开虚拟目录创建向导,效果如图2-7所示。
图2-7 创建虚拟目录
(2)单击【下一步】按钮,打开“虚拟目录别名”对话框,如图2-8所示,在“别名”对话框中输入别名。
图2-8 “虚拟目录别名”对话框
(3)单击【下一步】按钮,打开“网站内容目录”对话框,如图2-9所示。在该对话框中输入要发布到的位置(本书实例为E:\123),然后在打开的“访问权限”对话框中增加该目录开放的权限,这里选中“执行”复选框。
图2-9 “网站内容目录”对话框
完成IIS的配置工作后,还是不能运行ASP.NET程序,需要安装.NET Framework。.NET Framewark只有安装后才能测试和配置ASP.NET程序。因为在微软的Visual Studio 2012集成开发工具中,已经包含了.NET Framework 4.5,所以在此省略对.NET Framework 4.5的安装和配置。
知识点讲解:光盘:视频\PPT讲解(知识点)\第2章\全新的Visual Studio 2012.avi
Visual Studio.NET是微软为适用.NET平台而推出的专用开发工具,它是一个集成的开发环境,能够编写Visual Basic.NET、Visual C++ .NET、Visual C#.NET和Visual J# .NET等专业编程语言。通过Visual Studio 2012可以在同一项目内使用不同的语言,并能实现它们之间的相互无缝接口处理,共同实现指定的功能。微软的.NET被称为软件行业的革命,而Visual Studio.NET则为这个跨时代的革命提供了强有力的实现支持,为.NET的推广和程序员的学习、使用带来了极大的方便。所以Visual Studio.NET一经推出后,便受到了用户的欢迎和认可。当前最新的版本是Visual Studio 2012。本节将详细介绍Visuao Studio 2012集成开发工具的基本知识。
2012年9月12日,微软公司在西雅图发布Visual Studio 2012。其实早在同年的8月16日Visual Studio 2012和.NET Framework 4.5就已经可以下载了,微软公司负责Visual Studio部门的公司副总裁Jason Zander还发表博客,列举了升级到Visual Studio 2012版的12大理由。
微软公司为不同的团队需求和规模,及其成员的不同角色量身定制了不同的版本。下面简要介绍这些版本的具体功能。
(1)Ultimate 2012 with MSDN
这是MSDN旗舰版,包含最全的Visual Studio套件功能及Ultimate MSDN订阅,除包含Premium版的所有功能外,还包含可视化项目依赖分析组件、重现错误及漏洞组件(IntelliTrace)、可视化代码更改影响、性能分析诊断、性能测试工具、负载测试工具和架构设计工具。
(2)Premium 2012 with MSDN : MSDN高级版
此版本包含Premium版MSDN订阅,除了包含Professional 2012 with MSDN所有功能外,也包含同级代码评审功能、多任务处理时的挂起恢复功能(TFS)、自动化UI测试功能、测试用例及测试计划工具、敏捷项目管理工具、虚拟实验室、查找重复代码功能及测试覆盖率工具。
(3)Professional 2012 with MSDN
这是MSDN专业版,包含Professional版MSDN订阅,除了包含Professional 2012所有功能外,也包含Windows Azure账号、Windows在线商店账号、Windows Phone商店账号、TFS生产环境许可及在线持续获取更新的服务。
(4)Professional 2012
这是专业版,在IDE集成开发环境中,提供了为web、桌面、服务器、Azure和Windows phone等应用开发的解决方案,为上述应用开发提供了程序调试分析和代码优化功能,并且通过单元测试提高了代码的质量。
(5)Test Professional 2012 with MSDN
这是测试专业版,包含Test Professional版本的MSDN订阅,包含测试、质量分析、团队管理的功能,但不包含代码编写及调试的功能,拥有TFS生产环境授权及Windows Azure账号、Windows在线商店账号、Windows Phone商店账号。
(6)免费版本
针对面向不同平台的学生和初学者,提供了面向不同应用的速成免费版的Visual Studio。
Visual Studio 2012是Visual Studio.NET家族中较卓越的版本。和以往的版本相比,Visual Studio 2012包含以下新功能。
(1)全新的外观和感受
整个IDE界面经过了重新设计,简化了工作流程,并且提供了访问常用工具的捷径。工具栏经过了简化,减少了选项卡的混乱性,用户可以使用全新、快速的方式找到代码。所有这些改变都可以让用户更轻松地导航应用程序,以用户喜爱的方式工作。
(2)为Windows 8做好准备
Visual Studio 2012 提供了新的模板、设计工具以及测试和调试工具——在尽可能短的时间内构建具有强大吸引力的应用程序所需要的一切。同时,Blend for Visual Studio还为用户提供了一款可视化工具集,这样可以充分利用Windows 8全新而美观的界面。Visual Studio 2012最有价值的地方是通过Windows Store将产品展现在数百万的客户面前,所以开发人员可以轻松编写代码和销售软件。
(3)Web开发升级
对于Web开发,Visual Studio 2012也为开发人员提供了新的模板、更优秀的发布工具和对新标准(如HTML5和CSS3)的全面支持。此外,开发人员还可以利用Page Inspector 在IDE中与正在编码的页面进行交互,从而更轻松地进行调试。通过ASP .NET技术,可以使用优化的控件针对手机、平板电脑等小屏幕设备来创建应用程序。
(4)新增了一些可以提高团队生产力的新功能
Visual Studio 2012新增了一些可以提高团队生产力的新功能。这些新功能包括:
(5)云功能
以前每个人都需要维护一台服务器,仅扩展容量这一项便占用了基础架构投资的一大半。而现在可以利用云环境中动态增加存储空间和计算能力的功能快速访问无数虚拟服务器。Visual Studio提供了新的工具来让我们将应用程序发布到Windows Azure(包括新模板和发布选项),并且支持分布式缓存,维护时间更少。
(6)为重要业务做好准备
在SharePoint开发中会发现很多重要的改进,包括新设计工具、模板以及部署选项。用户可以利用为SharePoint升级的应用生命周期管理功能,如性能分析、单元测试和IntelliTrace。但是最令人惊讶的还是LightSwitch,有了它,用户只需编写少量代码就可以创建业务级应用程序。
(7)灵活、敏捷的流程,可靠的应用生命周期管理
随着应用程序变得越来越复杂,需要为开发团队提供更快、更智能工作的工具,这就是大家要加入一种灵活的敏捷方法的原因。利用Visual Studio和Team Foundation Server,可以根据自己的步调采用效率更高的方法,同时还不会影响现有工作流程。另外,还提供了让您的整个组织来参与整个开发测试过程,通过新的方法让利益相关方、客户和业务团队成员跟踪项目进度并提出新的需求和反馈。
在安装Visual Studio 2012之前,需要先明确如下硬件要求。
安装Visual Studio 2012的操作步骤如下。
(1)将安装盘放入光驱,或双击存储在硬盘内的安装文件autorun.exe,弹出安装界面,如图2-10所示。
图2-10 开始安装界面
(2)在弹出的对话框中选择安装路径,并勾选“同意安装条款”复选框,如图2-11所示。
图2-11 选择安装路径
(3)单击【下一步】按钮后弹出安装起始页对话框,在此选择要安装的功能,如图2-12所示。在此建议全部选中,避免以后安装时遇到不可预知的麻烦。
图2-12 选择安装的功能
(4)单击【安装】按钮后弹出安装进度对话框,如图2-13所示。
图2-13 “安装进度”对话框
(5)进度完成后弹出重启对话框,在此单击【立即重新启动】按钮,如图2-14所示。
图2-14 “重启”对话框
(6)重启后弹出执行安装对话框,在这里将完成所有的安装工作,如图2-15所示。
图2-15 “执行安装”对话框
(7)完成安装后,可以从“开始”菜单中启动Visual Studio 2012,如图2-16所示。
图2-16 启动Visual Studio 2012
首次打开Visual Studio 2012,将弹出“选择默认环境设置”对话框。因为在本书中将使用C#开发ASP.NET程序,所以此处选择“Visual C#开发设置”选项,如图2-17所示。单击【启动Visual Studio】按钮后便开始配置,如图2-18所示。
图2-17 “选择默认环境设置”对话框
图2-18 环境配置
配置完成后将打开Visual Studio 2012的集成开发界面,如图2-19所示。
图2-19 Visual Studio 2012默认集成开发界面
通过Visual Studio 2012可以迅速地创建一个项目,包括Windows应用程序、控制台程序和Web应用程序等常用项目。方法是在其菜单栏中依次单击【文件】︱【新建】︱【项目】命令,弹出“新建项目”对话框,在此可以设置项目的类型,如图2-20所示。
图2-20 “新建项目”对话框
在菜单栏中依次单击【文件】︱【新建】︱【网站】命令,弹出“新建网站”对话框,在此可以迅速创建一个不同模板类型的网站项目,如图2-21所示。
图2-21 “新建网站”对话框
在菜单栏中依次单击【文件】︱【新建】︱【文件】命令,弹出“新建文件”对话框,在此可以迅速创建一个不同模板类型的文件,如图2-22所示。
图2-22 “新建文件”对话框
在创建一个新项目后,Visual Studio 2012可以自动生成必需的代码。例如,新建一个Visual C#的ASP.NET Web项目后,将在项目文件内自动生成必需格式的代码,并且在右侧的“解决方案资源管理器”中显示自动生成的项目文件,如图2-23所示。
图2-23 自动生成的代码和文件
解决方案和类视图是Visual Studio 2012的重要组成工具,通过它们可以更加灵活地对项目进行控制和管理。在下面的内容中,将对Visual Studio 2012解决方案和类视图进行简要介绍。
当创建一个项目后,会在“解决方案资源管理器”中显示自动生成的项目文件。解决方案中包含一个或多个“项目”,每个项目都对应于软件中的一个模块。在解决方案资源管理器中,Visual Studio 2012将同类的文件放在一个目录下。当单击这个目录后,会将对应目录下的文件全部显示出来。例如,双击“引用”目录后,引用的程序集将显示出来,如图2-24所示。
图2-24 “引用”目录的程序集
右键单击“解决方案资源管理器”中的每个节点,都将弹出一个上下文菜单,通过选择其中的菜单命令,可以对节点对象进行相应的操作。例如,右键单击项目名并依次选择【添加】︱【新建项】命令后,可以在项目内添加一个新的项目文件,如图2-25所示。
图2-25 新建一个项目
上面介绍的“解决方案资源管理器”是以文件为角度的项目管理,而C#是一种面向对象的编程语言,其基本的对象编程单位是类。为此,Visual Studio 2012提供了类视图对项目对象进行管理。
在依次单击菜单栏中的【视图】︱【类视图】命令,在“解决方案资源管理器”中将显示当前项目内的所有类对象,如图2-26所示。
在图2-26中显示了项目的命名空间、基类和各种子类,现具体说明如下。
图2-26 项目类视图
在上方类视图中选中一个类类型,然后单击鼠标右键,将弹出一系列和类相关的操作命令,如图2-27所示。例如,选择“查看类图”命令,可以查看这个类的关系图结构,并且可以在Visual Studio 2012的底部窗口查看类的详细信息,如图2-28所示。
图2-27 类操作命令
图2-28 类关系结构和详细信息
在“解决方案资源管理器”中双击文件名,即可查看此文件的源代码。如果在Visual Studio 2012中打开多个项目文件,会在文件名栏显示多个文件的文件名,文件名栏如图2-29所示。
图2-29 文件名栏
Visual Studio 2012文本编辑器的主要特点如下。
在Visual Studio 2012文本编辑器中,使用蓝色显示C#的关键字,用绿色显示类名。
在Visual Studio 2012中,文件源代码段落会自动缩进,这样可以加深代码对用户的视觉冲击。图2-30所示的就是段落缩进的代码格式。
图2-30 源代码段落缩进
当用户使用文本编辑器进行代码编写时,编辑器能够根据用户的输入代码来提供对应的语法格式和关键字。例如,在图2-29所示的代码界面中输入字符“na”后,编辑器将自动弹出对应的提示字符,如图2-31所示。
图2-31 语法提示界面效果
在Visual Studio 2012中会显示文件源代码的行数标记,这和Dreamweaver等工具一样,能够便于用户对程序的维护,迅速找到对应代码所在的位置。在初始安装Visual Studio 2012时,默认为不显示代码行数。解决方法如下。
(1)依次单击菜单栏中的【工具】︱【选项】命令,弹出“选项”对话框,如图2-32所示。
图2-32 “选项”对话框
(2)在左侧下拉列表框中依次单击【文本编辑器】︱【所有语言】选项,然后勾选右侧“显示”组中的“行号”复选框,如图2-33所示。
图2-33 选中“行号”复选框
(3)单击【确定】按钮后返回代码界面,此时文件中每行源代码前都将显示一个行号,如图2-34所示。
图2-34 显示行号
依次单击Visual Studio 2012菜单栏中的【生成】︱【生成解决方案】命令,可以生成当前解决方案的所有项目。当使用“生成”命令时,不会编译已经生成过并且生成后没有被修改的文件。如果使用“重新生成”命令,则将重新生成所有的文件。
解决方案和项目有如下两种生成模式。
开发人员可以依次单击菜单栏中的【生成】︱【配置管理器】命令,在弹出的“配置管理器”对话框中设置项目的生成模式,如图2-35所示。
图2-35 “配置管理器”对话框
如果项目中的代码出现错误,则不能成功生成,并在“错误列表内”输出错误提示,如图2-36所示。
图2-36 生成错误提示
Visual Studio 2012能够进行查错处理,在“代码段输出”框将出现错误的信息详细地显示出来,如图2-37所示。
图2-37 查错结果详情
如果将错误修改后则能正确生成,并在“输出”框内显示对应的生成处理结果,如图2-38所示。
图2-38 生成处理结果
在Visual Studio 2012的工具箱中,包含了.NET开发所需要的一切控件,这是计算机工具史上最强大的工具集。在Visual Studio 2012中,对不同类型的控件进行了分类。例如,在创建ASP.NET项目时,工具箱界面效果如图2-39所示。
图2-39 Visual Studio 2012工具箱
其中默认具有如下8类工具。
包含ASP.NET开发过程中经常使用的控件,例如Label控件和TextBox控件等。
包含和数据交互相关的控件,通常是一些常用的数据源控件和数据绑定控件,能够连接不同格式的数据源并显示指定的内容。
包含了所有和数据验证有关的控件,可以实现简单的数据验证功能。
包含了用于实现站内导航的控件,这是从.NET Framework 2.0开始新加入的一组控件,它可以迅速地实现页面导航。
包含了和用户登录相关的所有控件,也是从.NET Framework 2.0开始新加入的一组控件,它可以迅速地实现用户登录功能。
包含了和WebParts相关的所有控件,也是从.NET Framework 2.0开始新加入的一组控件,它能够实现页面的灵活布局,为用户提供个性化的页面服务。
包含常用的HTML控件。
这是一个空组,用户可以将自定义的常用控件添加到该组中。
注意:在实际开发应用中,可能随时需要第三方控件来实现自己的功能。为此开发人员可以下载第三方控件,并将其添加到Visual Studio 2012工具箱中。
知识点讲解:光盘:视频\PPT讲解(知识点)\第2章\编译和部署ASP.NET程序.avi
当一个ASP.NET项目程序设计完毕后,需要运行才能浏览执行效果,效果满意后可以通过部署将网站发布到网络中。
通过使用Visual Studio 2012的菜单命令可以对ASP.NET的代码进行编译和运行。具体方法是依次单击菜单栏中的【生成】︱【重新生成网站】命令,如图2-40所示;也可以在“解决方案资源管理器”中右键单击方案名,然后在弹出的快捷菜单中选择“生成网站”命令,如图2-41所示。
图2-40 利用菜单栏编译、运行ASP.NET程序
图2-41 利用解决方案资源管理器编译、运行ASP.NET程序
在开发网页的过程中,还可以利用Visual Studio 2012顶部的按钮测试当前的网页。例如,使用IE浏览器测试一个ASP.NET网页的执行效果,如图2-42所示。
图2-42 一个ASP.NET网页的执行效果
部署ASP.NET程序的方法也有两种。
图2-43 利用菜单栏部署ASP.NET程序
图2-44 利用解决方案资源管理器部署ASP.NET程序
经过上述操作后会弹出“发布网站”对话框,在其中可以对发布的网站进行设置,如图2-45所示。
图2-45 “发布网站”对话框
知识点讲解:光盘:视频\PPT讲解(知识点)\第2章\第一个ASP.NET 4.5程序.avi
学习完搭建ASP.NET开发环境的基本知识后,接下来将详细讲解利用Visual Studio 2012创建第一个ASP.NET 4.5程序的基本操作。
源码路径 光盘\codes\2\
创建第一个ASP.NET 4.5程序的具体操作如下。
(1)打开Visual Studio 2012,在菜单栏中依次单击【文件】︱【新建网站】命令,在弹出的“新建网站”对话框的左侧选择“Visual C#”选项,在顶部第一个下拉列表框中选择“.NET Framwork 4.5”选项,然后单击“ASP.NET空网站”图标,单击【确定】按钮,如图2-46所示。
(2)在菜单栏中依次单击【文件】、【新建文件】命令,在弹出的“添加新项”对话框的左侧选择“Visual C#”选项,在中部单击“Web窗体”图标,如图2-47所示。
图2-46 “新建网站”对话框
图2-47 “添加新项”对话框
(3)单击【添加】按钮后会自动创建名为“Default.aspx”和“Default.aspx.cs”的文件。其中“.aspx”是ASP.NET程序的扩展名。
文件Default.aspx负责显示网页内容,实现代码如下。
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html>
而文件Default.aspx.cs是一个C#文件,负责处理动态内容,处理的结果会在文件Default.aspx中显示。文件Default.aspx.cs的实现代码如下。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
由此可见,ASP.NET实现了表现和处理的分离。因为上述网页都是在Visual Studio 2012自动创建的,并且是一个空白页面,所以使用按钮调试时会显示一个空白页面,如图2-48所示。
图2-48 显示空白页面的ASP.NET 4.5文件