aspnet应用开发与实践期末考试复习课案.docx
《aspnet应用开发与实践期末考试复习课案.docx》由会员分享,可在线阅读,更多相关《aspnet应用开发与实践期末考试复习课案.docx(14页珍藏版)》请在冰豆网上搜索。
![aspnet应用开发与实践期末考试复习课案.docx](https://file1.bdocx.com/fileroot1/2023-1/26/30794d08-f1f6-49c0-8d3b-6068a635897d/30794d08-f1f6-49c0-8d3b-6068a635897d1.gif)
aspnet应用开发与实践期末考试复习课案
一、什么是WEB?
是一种基于超文本方式工作的信息系统,能够处理声音,图像,视频,文字,提供了以“超文本”、“超媒体”,“超文本传输协议”为主的信息资源
二、B/S?
Browser/Server:
浏览器/服务器结构,在这种结构中,客户端不需要开发任何用户界面,而统一采用浏览器的显示方式,将业务处理交给了服务器。
三、C/S?
Client/Server:
客户端/服务器结构,客户端需要安装专用的客户端软件,而且服务器通常采用高性能的PC站或者工作站,并采用大型数据库(Oracle,SQLServer等)
四、B/S和C/S的比较
1.开发和维护成本方面:
C/S结构的开发和维护成本都比B/S高,因为每当系统更新或者出错的时候,C/S结构要对每一个客户端进行更新、修改;B/S结构就不用了,直接对服务端进行更新修改,然后所有用户通过浏览器访问的页面都是经过了更新的。
2.客户端负载:
C/S的客户端不仅负责与用户的交互,收集信息,还需要完成对数据库、文档等信息的处理工作。
B/S端则是把事务处理交给了服务器,由服务器进行处理,浏览器只负责显示。
这明显表明B/S的客户端负载更低,性能更好。
3.安全性:
C/S适合专人使用的系统,B/S适合多人使用的系统,所以C/S结构的安全性更高
五、CSS简介
答:
级联样式表,用来定义网页中控件、字体、图像等元素的样式,例如字体的颜色。
有两种使用方法:
1.直接在网页中使用:
2.引入外部样式:
六、javascript简介
答:
是一种基于事件和对象驱动的具有安全性的解释型脚本语言,不仅可以编写客户端的脚本程序,还可以编写服务器端的脚本程序。
有两种使用方法:
1.直接在网页中使用:
...
2.引入外部js:
七、HTTP
HyperTextTransferProctocal,超文本传输协议:
是浏览器和服务器之间的应用层通信协议。
HTTP协议是基于TCP/IP的协议,它不仅需要能正确的传输超文本,还要求能控制传输超文本中某一部分的内容,还要求能控制显示超文本中的某一部分内容
八、web系统三层架构
三层架构是指系统的业务应用划分为:
逻辑层、表示层、数据层,使得系统更有利于开发、维护、扩展,实现了高内聚,低耦合的目标。
为什么使用?
优点?
1.从开发角度和应用角度来看:
三层架构比二层架构,单层架构具有更大的优势,适合团队合作,每个人都有自己的分工,协同合作使工作效率倍增。
而且只需要少数人对系统有全面的了解,从一定程度上降低了开发的难度。
2.可以更好地支持分布式计算:
逻辑层的应用程序可以在多个机器上运行,充分利用网络的计算功能,分布式计算潜力巨大。
3.安全性高:
这是三层架构最大的优点,比如必须得经过控制层才能访问数据层(数据安全性),减少了入口点,提升系统安全性。
九、什么是MVC?
(一)Model-View-Controller:
mvc包含三个控件:
1.Model:
模型层,实体类的定义,包含它的属性、方法等
2.View:
表示层,展示数据,用户可以看到并与之交互的界面。
3.Controller:
控制层,连接模型层和数据层,用户通过View层发送请求,Controller层调用Model层进行处理,得到结果数据,再次在View层上展示出来
(二)MVC原理:
mvc架构使得程序的输入、处理输出强制性分离,使得软件的可读性、可维护性、可扩展性、可封装性得到了显著提高,mvc包含三个控件
(三)mvc优点:
1.提高代码重用率:
多个视图能共享一个模型,因为已经将数据和业务从表示层分离出来,所以可以最大化的重用代码。
2.提高程序的可维护性、可扩展性、可读性、可封装性:
各部分相互独立,互不影响,因为控制层和视图层相分离,所以很容易修改数据层和业务层。
3.有利于团队开发:
因为有良好的项目框架,可以减少编码工作量,部分模型(model)和存储过程一般可以用工具自动生成
十、的优势:
1.高效的运行性能:
采用页面脱离代码技术,以及采用缓存机制,提高性能
2.简易性、灵活性:
很多功能都可以扩展,可以轻松的将自定义功能添加到程序当中
3.可管理性:
中新增的功能使得管理程序更加方便
4.开发效率:
内置大量服务器控件,可高效快速的创建网站
十一、网站的运行原理
网站运行时,当一个HTTP请求被IIS服务器接受到以后,IIS首先通过客户端请求的页面类型为其加载相应的dll文件,然后在处理过程中将这条请求发送给能处理这条请求的模块(mvc中的模块层model)。
在中,这个模块叫做HTTPHandler(HTTP处理程序组件),之所以aspx这样的文件可以被服务器处理,就是因为在服务器中有专门的HTTPHandler去处理aspx文件。
当然,在发送到HttpHandler之前,还要经过HttpModule,有四个原因:
一、为了某些必须得过程;二、安全性;三、为了提高效率;四、为了用户能在更多的环节上进行控制,增加用户的控制能力。
十二、网站的运行机制
Http请求-->IIS服务器(由于安装.NETFrameWork时,注册了ISAPI扩展功能(aspnet_isapi.dll))-->
接下来asp会判断站点是否是第一次被访问,如果是第一次被访问,则运行初始化工作(如加载bin目录中的dll动态链接库等)。
asp运行时还要创建HttpContext上下文实例响应HttpTextWriter实例,然后就是寻找合适的HttpHandler,并等待其经过处理然后返回的结果。
最后还要一些后续工作(如保存session),再通过IIS把响应结果返回给客户端。
十三、.net框架,两个主要的组件
1.公共语言运行库(CommonlanguageRuntime)(CLR):
是所有.net程序的执行引擎,为每一个.net程序准备了一个独立、安全、稳定的执行环境,包括内存管理、安全控制、代码执行、代码完全验证.....
2.类库(ClassLibrary):
是所有.net程序的一个公共的基础类库,程序开发人员只要思考程序的逻辑部分,其他(如数学计算、数据库操作)等各种复杂功能,利用这些类库实现即可。
十四、内置对象包括:
1.request:
响应对象,是HttpRequest类的一个实例,它提供对当前页请求的访问,包括标题,Cookie...
2.response:
请求对象,将数据从服务器发送回浏览器,它允许将数据作为请求的结果发送至浏览器中,并提供有关相应的信息。
3.application:
全局应用对象,用于共享应用程序级信息,即多个用户共享一个Application对象
4.session:
会话对象,session对象和application对象有些类似,都是用来存储跨网页程序的变量或者对象。
5.cookie:
保存信息对象,用于保存浏览器访问的服务器页面,也可以用它存放非敏感的用户信息。
6.server:
服务器信息处理对象,提供对服务器上属性和方法的访问,用于访问服务器上的资源
7.Page
7.Request.From和Request.QueryString对应的是Form提交时的两种不同提交方法_取得客户端在FROM表单中所输入的信息方法和_从查询字符串中读取用户提交的数据方法
8.Application提供两个事件_ApplicationOnStartApplication开始的时候调用该事件__Application_OnEnd_____Application结束时调用该事件
大题:
一、在iis上发布程序:
使用Vs2008的IDE自带的发布功能,进行发布操作.
a.在经过VS调试且运行正常的ASP.NET网站项目中,右键点击网站项目,选择"发布网站"后点击"目标路径"后便的Browser按钮(就那个...按钮),将弹出一个"发布网站"对话框.
b.在弹出的对话框中,先点击左侧的"本地IIS",然后在右侧的"资源管理器"上方,点击"创建新Web应用程序"后(也可以点击"创建虚拟目录"),输入应用程序的名字,之后一路ok就可以了
二、编程题:
关于DataTable、DataView(10分)
1.简述DataSet,DataTable,DataView三者之间的关系。
(1)一个DataSet对象包括一组DataTable对象和DataRelation对象,其中,每个DataTable对象由DataColumn、DataRow和DataRelation对象组成。
(2)在ADO.NET中,DataTable对象用于表示DataSet中的表。
DataTable表示一个内存内关系数据的表
(3)在ADO.NET中,DataView对象表示用于排序、筛选、搜索、编辑和导航的DataTable的可绑定数据的自定义视图;另外,可以自定义DataView来表示DataTable中数据的子集。
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.SqlClient;
2.连接数据库并调用指定存储过程
//连接数据库
SqlConnectionconn=newSqlConnection(@"server=.;
database=ccc;IntegratedSecurity=True");
SqlCommandcmd=newSqlCommand("p_student",conn);
//指定类型为存储过程
cmd.CommandType=CommandType.StoredProcedure;
SqlDataAdaptersda=newSqlDataAdapter(cmd);
//数据集
DataSetds=newDataSet();
sda.Fill(ds);
this.dataGridView1.DataSource=
ds.Tables[0];
3.手动构造DataTable对象,并显示数据
privatevoidbutton1_Click(objectsender,EventArgse)
{
#region手动构造DataTable对象数据表
DataTabledt=newDataTable("student");
//产生列id
DataColumncol=newDataColumn("id");
//添加到表的列集合中
dt.Columns.Add(col);
//产生列name
DataColumncolname=newDataColumn("name");
//添加到表的列集合中
dt.Columns.Add(colname);
//产生列sex
DataColumncolsex=newDataColumn("sex");
//添加到表的列集合中
dt.Columns.Add(colsex);
//产生数据保存到dt中
DataRowrow=dt.NewRow();
//赋值1张三男
row[0]=1;//等价于row["id"]=1;
row[1]="张三";
row["sex"]="男";//等价于row[2]="男";
//添加到集合中
dt.Rows.Add(row);
DataRowrow2=dt.NewRow();
//赋值2张三男
row2[0]=2;
row2[1]="李四";
row2["sex"]="女";
//添加到集合中
dt.Rows.Add(row2);
#endregion
#regionDataView对象数据视图对象
//主要用于对DataTable表中数据的筛选和排序
DataViewdv=newDataView(dt);
//数据筛选where
//查询所有姓李的学生信息
//dv.RowFilter="namelike'李%'";
//排序orderby列名asc/desc升序/降序默认升序
dv.Sort="iddesc";
#endregion
//DataSet内存数据库数据集
DataSetds=newDataSet();
//将数据表添加到数据库中
ds.Tables.Add(dt);
//显示到界面上
this.dataGridView1.DataSource=ds.Tables[0];
}
4.构造DataSet对象,并显示数据
privatevoidbutton1_Click(objectsender,EventArgse)
{
//构造DataSet对象
DataSetds=newDataSet();
#region构造一个DataTable对象
DataTabledt=newDataTable("stu");
//产生几个列
DataColumncol=newDataColumn("id");
//添加到表中
dt.Columns.Add(col);
DataColumncol2=newDataColumn("name");
//添加到表中
dt.Columns.Add(col2);
DataColumncol3=newDataColumn("sex");
//添加到表中
dt.Columns.Add(col3);
//数据行
DataRowrow=dt.NewRow();
//给行中的数据赋值
row[0]="1";//等价于row["id"]="1";
row[1]="张三";
row[2]="男";
//将数据行添加到dt中
dt.Rows.Add(row);
DataRowrow2=dt.NewRow();
//给行中的数据赋值
row2[0]="2";//等价于row["id"]="2";
row2[1]="李四";
row2[2]="男";
//将数据行添加到dt中
dt.Rows.Add(row2);
#endregion
//将表dt添加到ds中
ds.Tables.Add(dt);
//DataView对象
DataViewview=newDataView(dt);
//排序
//view.Sort="iddesc";//asc/desc升序/降序默认升序
//筛选
view.RowFilter="len(name)=2";//"namelike'张%'";
//显示数据到DataGridView中
this.dataGridView1.DataSource=view;
}
5.通过sql语句查询数据库,并通过datagridview显示数据
privatevoidbutton1_Click(objectsender,EventArgse)
{
//查询数据库
SqlConnectionconn=new
SqlConnection(@"DataSource=.;
InitialCatalog=CCC;
IntegratedSecurity=True");
//查询语句
stringsql="select*fromstudent";
//适配器对象
SqlDataAdaptersda=
newSqlDataAdapter(sql,conn);
//数据集对象
DataSetds=newDataSet();
sda.Fill(ds);
this.dataGridView1.DataSource=
ds.Tables[0];
}
6.通过存储过程查询数据库,并通过datagridview显示数据
privatevoidbutton2_Click(objectsender,EventArgse)
{
//查询数据库
SqlConnectionconn=new
SqlConnection(@"DataSource=.;
InitialCatalog=CCC;
IntegratedSecurity=True");
//查询语句
//适配器对象
SqlDataAdaptersda=
newSqlDataAdapter("p_select",conn);
//指定命令类型为存储过程
sda.SelectCommand.CommandType=
CommandType.StoredProcedure;
//数据集对象
DataSetds=newDataSet();
sda.Fill(ds);
this.dataGridView1.DataSource=
ds.Tables[0];
}
三、文件流操作(10分)
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.IO;
1.打开会话窗口,获取某一个文件夹的路径
privatevoidbutton1_Click(objectsender,EventArgse)
{//弹出文件夹浏览对话框
FolderBrowserDialogf=newFolderBrowserDialog();
//显示出来
DialogResultdr=f.ShowDialog();
if(dr==DialogResult.OK)
{//选择了打开
//获取选中的路径
stringpath=f.SelectedPath;
this.textBox1.Text=path;
}
}
2.显示某一个文件夹下的所有文件
privatevoidbutton2_Click(objectsender,EventArgse)
{
stringcondition=this.textBox2.Text;
//获取文件夹下的所有子文件
stringpath=this.textBox1.Text;
//创建文件夹对象
DirectoryInfodir=
newDirectoryInfo(path);
//获取所有的子文件
FileInfo[]fs=dir.GetFiles(condition);
//循环显示到ListView中
//for(inta:
arr)
//清空
this.listView1.Items.Clear();
foreach(variteminfs)
{
ListViewItemlvi=
newListViewItem(item.Name);
lvi.SubItems.Add(item.Extension);
lvi.SubItems.Add(item
.CreationTime.ToString());
//添加到ListView中
this.listView1.Items.Add(lvi);
}
}
2.调用存储过程
SqlConnectionconn=newSqlConnection("server=.;database=master;integratedsecurity=true");
SqlCommandcmd=newSqlCommand("test1",conn);
//指定类型为存储过程
cmd.CommandType=CommandType.StoredProcedure;
//查询结果
SqlDataAdaptersda=newSqlDataAdapter(cmd);
DataSetds=newDataSet();
sda.Fill(ds);
this.dataGridView1.DataSource=ds.Tables[0];
3.IO流读取操作
//1.创建文件流
FileStreamfsRead=newFileStream("1.txt",FileMode.Open);
//2.创建缓冲区,正常情况下,是不会直接等于文件大小的。
这里只有读,所以就这么干了。
byte[]bytes=newbyte[fsRead.Length];
//3.开始读取,返回值是读取到的长度。
intr=fsRead.Read(bytes,0,bytes.Lenght);
//4.关闭释放流
fsRead.Close();
fsRead.Dispose();
4.IO流写入操作
//1.创建写入的文件流
FileStreamfsWritefsWrite=newFileStream(@"xxx",FileMode.OpenOrCreate);
//2.创建缓冲区
Stringmsg="HelloWorld";
byte[]bytes=Enconding.UTF8.GetBytes(msg);
//3.开始写入
fsWrite.Write(bytes,0,bytes.Length);
//4.关闭
fsWrite.Close();
fsWrite.Dispose();
1.在文件流写入的时候,经常需