Asp.net的视频最近过了一遍,对于其中的例子,大部分是实现了,由于版本原因,所以剩下的自己并没有找到最好的解决办法,当然学过是学过,总结必不可少。
先宏观后微观。刚学完,感觉知识特别乱,所以先画了张图:
对于视频中所讲的内容,也就上面三大块。
一、控件技术:
1.基于web服务器
对于控件当然还有html控件、asp.net控件。而这里的控件就是我们常见的输入输出控件、单选按钮和复选框,还有下拉列表框以及Image等控件。
这些控件运行后生成标准的html表单元素,开发者可以直接使用这些控件为应用程序创建界面。
2.数据验证控件
验证控件,可以轻松实现用户输入的验证,且与用户浏览器无关。由在客户端或服务器中运行的验证代码执行,主要为客户端。
验证控件特点:以调试模式运行,如果验证控件验证出问题,则页面不会提交到服务器执行,说明验证是在客户端进行的。
这里共包括5个内置验证控件:
1).RequiredFieldValidator控件:非空验证控件,确保被验证的控件中包含一个值。如用户名不能为空。
2).CompareValidator控件:用于验证用户输入的内容是否符合要求,一般用于两次密码的比较或者输入的值与某个固定值的对比
3).RangeValidator控件:该控件用于检查用户输入是否在特定的范围内。像年龄范围,时间范围等。
4).RegularExpressionValidator控件:该控件用于检查与正则表达式定义的模式是否匹配,如身份证号码、电话号码、邮政编码等。
5).CustomValidator控件:用户可以自定义控件的验证方式,该控件的验证比较灵活,所以使用比较广泛。
3.用户和自定义控件
有时候我们需要的功能,内置控件并没有。这时,我们可以创建自己的控件。
1).用户控件就是几个Web服务器控件的组合,使这几个控件成为一个控件,并可以定义这些控件的属性和方法。
2).自定义控件。自定义控件就是编写的一个类,此类从control或webcontrol派生。这种笔用户控件复杂,但是更加灵活,功能也更加强大。
二、应用程序
状态管理是在同一页或不同页的多个请求发生时,维护状态和信息的过程。
1.Session:状态保持,存储于服务器端,用于存储会话信息,一般用于当用户登录时记录用户状态,当访问其它页面时判断是否存在该Session,如果为null则用户尚未登录,则转向登录页面即可,不为null时可继续处理。
2.Cookie:状态保持,存储于客户端,用于当用户第一次登录时记录用户信息,以备下次登录时不必再重复输入一些基本信息,例如登录邮箱时所输入的Email地址,登录成功后,第二次不必再输入Email地址信息。
3.Application:状态保持,存储于服务器端,为整个应用程序级的对象,一般用于统计在线人数。用户首次登录时设置Application[”num”]= 0,以后每次有一个用户登录则设置 Application[”num”]=Convert.ToInt32(Application[”num”].ToString())+ 1 ;
4.Page:指向页面自身的方式,整个页面执行期内可使用该对象。 <%@PageLanguage=”C#”AutoEventWireup=”true”CodeFile=”default.aspx.cs”Inherits=“_default”>
注意:AutoEventWireup设置页面是否自动调用网页事件,如果该属性设置为false,则不会触发事件(例如Page_Load等等)
5.Request:存储请求信息,常用属性QueryString可得到URL中 ?后面的参数,Form表单提交方式时取值,ServerVariable包含服务器端和客户端的系统信息,Params以上三种均可取值,因为需要在URL,表单,环境变量中找寻,故速度慢。
6.Response:存储输出信息,常用属性Write方法可输出指定文本内容,Redirect方法为页面重定向操作。
三、数据访问
1.ado.net是.net框架中的一套类库,使用这些类库,开发者在应用程序中可以方便的使用数据。Ado.net分为两种:连接对象和非连接对象。
1).连接对象:面向连接的部分是指那些在与数据源交互和处理时,必须要打开可用连接的对象。
Connection:连接对象,用来建立一个与数据源的连接。
Transaction:事务对象,需要把一系列命令组织到一起执行时需要的对象,即“要么全部执行,要么一个都不执行”。
Command:命令对象,用来执行数据库操作命令。这些命令可能返回结果,也可能不返回。平常所用的增删改查也就是此命令。
DataAdapter:适配器对象,用来建立一个连接,还可以提供一个已建立的连接。
DataReader:只读对象,用来读取数据,是只读/只向前移的游标。这种方式获取数据的速度比较快。
2).在以非连接方式工作时,ADO.NET在不同的访问请求之间,对实际的物理连接进行池化。
DataSet:是ADO.NET非连接数据访问模型的核心,可以把它看做完全在内存中的关系型数据库管理系统。
DataTable:类似于数据库中的表,也是以行/列格式存储数据的。DataTable可以完全转换成XML,而且可以像DataSet那样被序列化。
DataRow:表示一个可列举的DataRow(行)对象集合。
DataColumn:DataTable也包含一个DataColumnCollection类型的Column属性。严格地说,这表示一个DataTable结构。
DataView:类似数据库中的视图。DataView允许在一个DataTable上创建“视图”,一个DataTable上可以定义多个视图。
2.数据绑定
数据显示则是由两种方法,一种是用ado.net代码手写,另一种则是用数据控件绑定后显示。.
1).而对于gridview则是可以进行分页,这可以和我们之前所做牛腩新闻发布系统相结合。
2).对于后两个我们则需要记住他们的模板。这两个控件允许模板定制,为呈现列表样式的数据提供了更大的灵活性。
而对于手动绑定数据方法中:
Eval是只读的单向数据绑定,所绑定的内容不会提交回服务器,使用方式<%# Eval(”user”).ToString() %>,实现格式为<%#Eval(”PublishDate”, ”{0 :dd/MM/yyyy}”) %>显示格式为 ”17/08/2008”。
Bind支持读写功能,为双向数据绑定,所绑定内容自动提交回服务器,常与输入控件一起使用。 <%#Bind(”Title”) %>
通过这一段时间学习asp.net,我们不难发现它有很多优点:
1)与浏览器无关
2) 方便设置断点,易于调试
3) 编译后执行,运行效率高
4)丰富的控件库
5) 代码后置,逻辑分明。
开始看视频的时候,还在想这视频不会就是在讲这成吨的控件吧,是讲它没错,但是我对于这asp.net理解不到位,对于这些控件更是一无所知,甚至这些控件的功能自己想到没有想过。
不怕不知道,就怕不知道。我们要学的知识,指不定还有多少我们听都没听过的,所以还是努力吧,骚年。