资源描述
(1)北京-恒远智达软件公司
1、 ASP.NET里命名空间的定义;
NameSpace 命名空间嵌套
2、 .net中类与对象的关系;
类是对象的抽象,对象是类的实体。
3、 ASP.NET中页面传值的方法;
Cookies
QueryString
Session
Appliction
Server.Transfor
4、 IspostBack的作用,当其值为TRUE或FALSE时的作用;
是否加载首页,true是回发。False是首次加载
5、 写出求某字段最大值的SQL语句.
Select Max(Id) From Class
(2)广州-地球村科技 ASP.NET题目
1. 接口和抽象类的区别?
1.定义不同;都能实现对类的行为约束,接口叫Interface,抽象类叫
Abstract。
2.对接口来说实现一对多。抽象类实现单继承。
3.定义范围;接口定义属性,索引器,方法。
4.定义含义;抽象类可以定义变量,接口定义范围
2. 解释(DataSet)ds 和 ds as DataSet 的含义?
Ds强转报异常。
Ds as DataSet 如果出现Null,不会出现异常。
3. WebService是什么意思?什么情况下用WebService?
它是Web服务。
1.实现分布式应用程序。
2.使用HTTP通讯。
3.可以穿越防火墙,自由通信。
4.利用Soop消息异地调用
在跨地域调用时,实现分布式应用的时候。例如:银行支付的接口。实现接口时。
4. ASP.NET中内置对象是什么?
1.Cookies
2.Session
3.Appliction
4.Page
5.Server
6.Response
7.Request
5. OLEDBConnection 和SQLConnection 有什么区别?
OLEDBConnection:如果是sccess数据库。连接池会自动关闭
SQLConnection:它可以连接sccess,Sqlserver2005的数据库连接。连接池会自动关闭
6. 采用怎样的方法保证数据的完整性?
唯一约束,检查(Check)约束,主外键约束,默认约束。
(3)广州-乐天科技试题
1. C/S和B/S的区别,优缺点有哪些?
两种结构的区别
C/S又称Client/Server或客户/服务器模式。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或 SQL Server。客户端需要安装专用的客户端软件。
B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。浏览器通过Web Server 同数据库进行数据交互。
C/S的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。缺点主要有以下几个:
只适用于局域网。而随着互联网的飞速发展,移动办公和分布式办公越来越普及,这需要我们的系统具有扩展性。这种方式远程访问需要专门的技术,同时要对系统进行专门的设计来处理分布式的数据。
客户端需要安装专用的客户端软件。首先涉及到安装的工作量,其次任何一台电脑出问题,如病毒、硬件损坏,都需要进行安装或维护。特别是有很多分部或专卖店的情况,不是工作量的问题,而是路程的问题。还有,系统软件升级时,每一台客户机需要重新安装,其维护和升级成本非常高。
对客户端的操作系统一般也会有限制。可能适应于Win98, 但不能用于Win2000或Windows XP。或者不适用于微软新的操作系统等等,更不用说Linux、Unix等。
B/S 最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件。只要有一台能上网的电脑就能使用,客户端零维护。系统的扩展非常容易,只要能上网,再由系统管理员分配一个用户名和密码,就可以使用了。甚至可以在线申请,通过公司内部的安全认证(如CA证书)后,不需要人的参与,系统可以自动分配给用户一个账号进入系统。
C/S 与 B/S 区别:
Client/Server是建立在局域网的基础上的.Browser/Server是建立在广域网的基础上的.
C/S结构
B/S结构
硬件环境不同:
一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务.
建立在广域网之上的, 不必是专门的网络硬件环境,例与电话上网, 租用设备. 信息自己管理. 有比C/S更强的适应范围, 一般只要有操作系统和浏览器就行
对安全要求不同
一般面向相对固定的用户群, 对信息安全的控制能力很强. 一般高度机密的信息系统采用C/S 结构适宜. 可以通过B/S发布部分可公开信息.
建立在广域网之上, 对安全的控制能力相对弱, 面向是不可知的用户群.
对程序架构不同
程序可以更加注重流程, 可以对权限多层次校验, 对系统运行速度可以较少考虑.
对安全以及访问速度的多重的考虑, 建立在需要更加优化的基础之上. 比C/S有更高的要求 B/S结构的程序架构是发展的趋势, 从MS的.Net系列的BizTalk 2000 Exchange 2000等, 全面支持网络的构件搭建的系统. SUN 和IBM推的JavaBean 构件技术等,使 B/S更加成熟.
软件重用不同
程序可以不可避免的整体性考虑, 构件的重用性不如在B/S要求下的构件的重用性好.
对的多重结构,要求构件相对独立的功能. 能够相对较好的重用。
系统维护不同
程序由于整体性, 必须整体考察, 处理出现的问题以及系统升级. 升级难. 可能是再做一个全新的系统, 系统维护开销大
构件组成,方面构件个别的更换,实现系统的无缝升级. 系统维护开销减到最小.用户从网上自己下载安装就可以实现升级.
处理问题不同
程序可以处理用户面固定, 并且在相同区域, 安全要求高需求, 与操作系统相关. 应该都是相同的系统
建立在广域网上, 面向不同的用户群, 分散地域, 这是C/S无法作到的. 与操作系统平台关系最小.
用户接口不同
多是建立的Window平台上,表现方法有限,对程序员普遍要求较高
建立在浏览器上, 有更加丰富和生动的表现方式与用户交流. 并且大部分难度减低,减低开发成本.
信息流不同
程序一般是典型的中央集权的机械式处理, 交互性相对低
信息流向可变化, B-B B-C B-G等信息、流向的变化, 更象交易中心
2.ADO.NET的常用对象
Connection Command DataReader DataSet DataAdapter
3.MVC指的是什么?
模型 Model
视图 View
控制器 Controller
4.三层架构?
表示层,业务处理层,数据访问层,模板层,接口层。
5.为什么要用ISPORTBACK?
首次加载,下次加载时不用再次加载数据了,提高加载速度
6.用户自定义控件?
特点:用户自定义组合控件,封转独立功能,方便编辑和拖拽,后缀名为:ascx
作用:页面代码的重用,重用页面内容,重用页面逻辑
7.WEBSERVERS调用主要有哪两种方法?)
WDS命令工具,添加Web工具
8.怎样在ASP.NET中改变DATAGRID的自动换行?
设置宽度,设置<br/>标签
9.怎样布置一个ASP.NET的界面?。
Div+Css样式 table布局
10.谈谈你对ASP和ASP.NET的区别?
Asp是微软开发的早期版本,
Asp.Net是后期的版本。
Asp.Net优点:与浏览器无关。方便设置断点,易于调试。编译后执行,运行效率高。丰富的控件库,代码后置,逻辑分明。
(4)南京-嘉环笔试题
1.面向对象的思想主要包括什么?
类、对象、 继承、属性、方法、静态、重载、隐藏、重构、声明、定义、初始化、赋值
继承 多态 封装
封装:用抽象的数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据类型内部。
继承:子类拥有父类的所有数据和操作。
多态:一个程序中同名的不同方法共存的情况。
有两种形式的多态– 重载与重写。
2.什么是ASP.net中的用户控件
用户控件 (user control)
在 ASP.NET 中:使用与 ASP.NET 页相同的语法,以声明方式创作的服务器控件。该控件用 .ascx 扩展名保存为文本文件。用户控件允许对页功能进行分区和重用。第一次请求时,页框架立即将用户控件分析为从 System.Web.UI.UserControl 派生的类,并将该类编译到一个程序集中;页框架在后面的请求中将重用该程序集。因为用户控件不需要预编译就可以进行页面样式创作和部署,所以开发起来很容易。
在 Windows 窗体中:在应用程序内部或应用程序之间提供一致性行为和用户界面的复合控件。用户控件可以是某个应用程序的本地控件,也可以添加到库中并编译成 DLL 供多个应用程序使用。
用户控件使程序员能够很容易地跨ASP.NET WEB应用程序划分和重复使用公共UI功能。
4.列举一下你所了解的XML技术及其应用
一、DOM (文档对象模型)
为 XML 文档的已解析版本定义了一组接口。解析器读入整个文档,然后构建一个驻留内存的树结构,然后代码就可以使用 DOM 接口来操作这个树结构。
优点:整个文档树在内存中,便于操作;支持删除、修改、重新排列等多种功能;
缺点:将整个文档调入内存(包括无用的节点),浪费时间和空间;
使用场合:一旦解析了文档还需多次访问这些数据;
硬件资源充足(内存、CPU)
二、SAX
为解决DOM的问题,出现了SAX。
SAX ,事件驱动。当解析器发现元素开始、元素结束、文本、文档的开始或结束等时,发送事件,程序员编写响应这些事件的代码,保存数据。
优点:不用事先调入整个文档,占用资源少;
SAX解析器代码比DOM解析器代码小,适于Applet,下载
缺点:不是持久的;事件过后,若没保存数据,那么数据就丢了;
无状态性;从事件中只能得到文本,但不知该文本属于哪个元素;
使用场合:Applet;
只需XML文档的少量内容,很少回头访问;
机器内存少;
三、JDOM
为减少DOM、SAX的编码量,出现了JDOM;
优点:20-80原则,极大减少了代码量
使用场合:要实现的功能简单,如解析、创建等,但在底层,JDOM还是使用SAX(最常用)、DOM、Xanan
四、JAXP
为多个XML解析器提供了统一编程接口
更换解析器,不用更改代码
使用场合:若不用Jdom,一般建议使用JAPX,将代码与各种解析器的实现细节隔离。
java操作xml用的最多的应该是jdom开源包了,
xml用于配置,用于保存静态数据类
型.接触XML最多的是web Services..和
config
a.数据库交换技术
b.分布式处理
c.信息发布
d.智能化的web应用程序和数据集成
e.电子商务应用
5.值类型和引用类型的区别?写出C#的样例代码。
如果数据类型在它自己的内存分配中存储数据,则该数据类型就是“值类型”。“引用类型”包含指向存储数据的其他内存位置的指针。
值类型
值类型包括:
所有数字数据类型
Boolean、Char 和 Date
所有结构,即使其成员是引用类型
枚举,因为其基础类型总是 SByte、Short、Integer、Long、Byte、UShort、UInteger 或 ULong
引用类型
引用类型包括:
String
所有数组,即使其元素是值类型
类类型,如 Form
委托
非类型的元素
以下编程元素未限定为类型,因为您无法将它们中的任何一个指定为声明元素的数据类型:
命名空间
模块
事件
属性和过程
变量、常数和字段
使用对象数据类型
可以将引用类型或值类型指派给 Object 数据类型的变量。Object 变量总是存储指向数据的指针,从不存储数据本身。然而,如果将值类型指派给 Object 变量,则 Object 变量将表现得像存储自己的数据一样。有关更多信息,请参见 Object 数据类型。
通过将 Object 变量传递给 Microsoft.VisualBasic 命名空间中 Information 类的 IsReference 方法,可以确定该变量是用作引用类型还是值类型。如果 Object 变量的内容表示引用类型,则 Information..::.IsReference 返回 True。
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Person
{
public int Blood = 10;
}
class Program
{
public static void Add(int x)
{
x += 10;
Console.WriteLine("值类型当参数被传递并修改之后:"+x);
}
public static void Add(Person person)
{
person.Blood += 10;
Console.WriteLine("引用类型当参数被传递并修改之后:" + person.Blood);
}
static void Main(string[] args)
{
//值类型变量
int i = 10;
Console.WriteLine("i的原值:" + i);
Add(i);
Console.WriteLine("但是i的值并没有因为函数的修改而修改:" + i);
//引用类型变量
Person person = new Person();
Console.WriteLine("Blood的原值:" + person.Blood);
Add(person);
Console.WriteLine("但是Blood的值因为函数的修改而修改:" + person.Blood);
//值类型和引用类型的区别,就在于当函数参数传递的时候.
//值类型是把自己的值复制一份传递给别的函数操作.无论复制的值怎么被改变.其自身的值是不会改变的
//而引用类型是把自己的内存地址传递给别的函数操作.操作的就是引用类型值的本身.所以值被函数改变了.
//这就是传值和传址的区别
Console.ReadLine();
}
}
}
6.ADO.net中常用的对象有哪些?分别描述一下。
SqlConnection 数据库连接对象
SqlCommand 数据库命令对象,T-SQL语句对象
SqlDataAdapter 数据适配器
SqlDataReader 数据库读取器,“只读、向前”,不能后退地读取数据
DataSet 数据集,相当于内存中的数据库
DataSet对象:表示内存中数据的缓存,可以把它想像成一个临时的数据库,它里可以存多个表(DataTable),而且是断开式的,不用每进行一次操作就对数据库进行更新,从而提高了效率。
DataReader对象:它与DataSet最大的不同是有连接式的,每次对数据库进行存取都会影响到数据库。
Connection对象:用于连接数据库的对象,表示到数据源的一个唯一的连接。
Command对象:表示要对数据库执行的一个SQL语句或一个存储过程。
DataAdapter对象:该对象是与DataSet配合使用的对象,用于把表填充到DataSet,和更新DataSet等。
8.C#中的接口和类有什么异同。
抽象类和接口的共同点:
1.都代表系统的抽象层,使用继承类时,应尽可能把引用变量声明为上层的抽象类型
2.都不能被实例化
3.都包含抽象方法,这些方法描述提供哪些服务,但不提供具体的实现
抽象类和接口的区别:
1.抽象类中可以为部分方法提供默认的实现,避免在子类中重复实现
2.一个类可以实现多个接口,是接口的优势所在
接口是负责功能的定义,项目中通过接口来规范类,操作类以及抽象类的概念!
而类是负责功能的具体实现!
在类中也有抽象类的定义,抽象类与接口的区别在于:
抽象类是一个不完全的类,类里面有抽象的方法,属性,也可以有具体的方法和属性,需要进一步的专业化。
但接口是一个行为的规范,里面的所有东西都是抽象的!
一个类只可以继承一个基类也就是父类,但可以实现多个接口
PS:接口除了规范一个行为之外,在具体项目中的实际作用也是十分重要的,在面向对象的设计原则以及设计模式的使用中,无不体现作为一个接口的使用好处,最直接的就是设计原则中OCP(开放封闭原则),我们使用接口,而不需要关心他的具体实现,具体实现的细节变化也无关客户端(使用接口的类)的使用,对与扩展是开放的,我们可以另写一个接口的实现来扩展当前程序,而不影响上层的使用,但对修改是封闭的,即我们不能够再去修改接口的定义,当然这个“不能够”是指在规范原则上不应该这么做!
都是引用类型.
接口实质上是功能说明书,说明有什么属性和功能(属性和方法)
接口理论上是继承者的父类,因此它可以作为实现类的引用,来封装类的复杂实现。
用接口引用 指向 new 的实例,则该引用只呈现接口中约定的属性和方法(封装)
接口可以理解为是纯抽象的类。它与类的关系好比自动洗衣机的说明书 和自动洗衣机的关系。
说明书里描述了自动加水、自动洗衣、自动脱水等功能方法,也有环保、节能、省水等特(属性)。
但是你不能用这个说明书来洗衣服吧? 你得用这些功能的实现者--洗衣机来洗衣服。
虽然是全自动洗衣机,但是它使用就很简单,1 打开盖子,放入衣服; 2 按下“开始”开关
主人完全不用关心洗衣机的内部是如何的复杂(封装)。
体现在代码上就是:
1 约定全自动洗衣机的功能,定义一个接口说明书
public Iterface IWashMac{
void 放入衣服();
void 开始洗衣();
}
public class Wasmac: IWashMac{
public void 放入衣服(){
//...
}
public void 开始洗衣(){
//...
}
}
9.。net中读写数据库需要用到哪些类?他们的作用
1、 DataSet 用来无连接的储存多个表的数据,并包含表与表之间的关联关系
2、DataTable 用来存储一个表的数据
3、SqlConnection 用来创建一个到数据库的连接
4、SqlCommand 用来执行SQL语句
5、SqlDataReader 用来顺序读取数据
6、SqlDataAdapter 用来将数据填充到DataSet或DataTable
10.UDP连接和TCP连接的异同。
前者只管传,不管数据到不到,无须建立连接.后者保证传输的数据准确,须要连结.
都可以实现远程连接,TCP需要连接,传输数据可靠;
UDP 不需要,效率高,资源占用少。
从专业的角度说,TCP的可靠保证,是它的三次握手机制,这一机制保证校验了数据,保证了他的可靠性。而UDP就没有了,所以不可靠。不过UDP的速度是TCP比不了的,而且UDP的反应速度更快,QQ就是用UDP协议传输的,HTTP是用TCP协议传输的,不用我说什么,自己体验一下就能发现区别了。再有就是UDP和TCP的目的端口不一样(这句话好象是多余的),而且两个协议不在同一层,TCP在三层,UDP不是在四层就是七层。
TCP/IP协议介绍
TCP/IP的通讯协议
这部分简要介绍一下TCP/IP的内部结构,为讨论与互联网有关的安全问题打下基础。TCP/IP协议组之所以流行,部分原因是因为它可以用在各种各样的信道和底层协议(例如T1和X.25、以太网以及RS-232串行接口)之上。确切地说,TCP/IP协议是一组包括TCP协议和IP协议,UDP(User Datagram Protocol)协议、ICMP(Internet Control Message Protocol)协议和其他一些协议的协议组。
TCP/IP整体构架概述
TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网路层、传输层、话路层、表示层和应用层。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为:
应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。
传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。
互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。
网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。
TCP/IP中的协议
以下简单介绍TCP/IP中的协议都具备什么样的功能,都是如何工作的:
1. IP
网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议。
IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。
高层的TCP和UDP服务在接收数据包时,通常假设包中的源地址是有效的。也可以这样说,IP地址形成了许多服务的认证基础,这些服务相信数据包是从一个有效的主机发送来的。IP确认包含一个选项,叫作IP source routing,可以用来指定一条源地址和目的地址之间的直接路径。对于一些TCP和UDP的服务来说,使用了该选项的IP包好象是从路径上的最后一个系统传递过来的,而不是来自于它的真实地点。这个选项是为了测试而存在的,说明了它可以被用来欺骗系统来进行平常是被禁止的连接。那么,许多依靠IP源地址做确认的服务将产生问题并且会被非法入侵。
2. TCP
如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向‘上’传送到TCP层。TCP将包排序并进行错误检查,同时实现虚电路间的连接。TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。
TCP将它的信息送到更高层的应用程序,例如Telnet的服务程序和客户程序。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。
面向连接的服务(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它们使用了TCP。DNS在某些情况下使用TCP(发送和接收域名数据库),但使用UDP传送有关单个主机的信息。
3.UDP
UDP与TCP位于同一层,但对于数据包的顺序错误或重发。因此,UDP不被应用于那些使用虚电路的面向连接的服务,UDP主要用于那些面向查询---应答的服务,例如NFS。相对于FTP或Telnet,这些服务需要交换的信息量较小。使用UDP的服务包括NTP(网落时间协议)和DNS(DNS也使用TCP)。
欺骗UDP包比欺骗TCP包更容易,因为UDP没有建立初始化连接(也可以称为握手)(因为在两个系统间没有虚电路),也就是说,与UDP相关的服务面临着更大的危险。
4.ICMP
ICMP与IP位于同一层,它被用来传送IP的的控制信息。它主要是用来提供有关通向目的地址的路径信息。ICMP的‘Redirect’信息通知主机通向其他系统的更准确的路径,而‘Unreachable’信息则指出路径有问题。另外,如果路径不可用了,ICMP可以使TCP连接‘体面地’终止。PING是最常用的基于ICMP的服务。
5. TCP和UDP的端口结构
TCP和UDP服务通常有一个客户/服务器的关系,例如,一个Telnet服务进程开始在系统上处于空闲状态,等待着连接。用户使用Telnet客户程序与服务进程建立一个连接。客户程序向服务进程写入信息,服务进程读出信息并发出响应,客户程序读出响应并向用户报告。因而,这个连接是双工的,可以用来进行读写。
两个系统间的多重Telnet连接是如何相互确认并协调一致呢?TCP或UDP连接唯一地使用每个信息中的如下四项进行确认:
源IP地址 发送包的IP地址。
目的IP地址 接收包的IP地址。
源端口 源系统上的连接的端口。
目的端口 目的系统上的连接的端口。
端口是一个软件结构,被客户程序或服务进程用来发送和接收信息。一个端口对应一个16比特的数。服务进程通常使用一个固定的端口,例如,SMTP使用25、Xwindows使用6000。这些端口号是‘广为人知’的,因为在建立与特定的主机或服务的连接时,需要这些地址和目的地址进行通讯。
11.ASP.net的身份验证方式有哪些?分别是什么原理?
winndows 身份验证提供程序:
提供有关如何将 Windows 身份验证与 Microsoft Internet 信息服务 (IIS) 身份验证结合使用来确保 ASP.NET 应用程序安全的信息。
Forms 身份验证提供程序 :
提供有关如何使用您自己的代码创建应用程序特定的登录窗体并执行身份验证的信息。使用 Forms 身份验证的一种简便方法是使用 ASP.NET 成员资格和 ASP.NET 登录控件,它们一起提供了一种只需少量或无需代码就可以收集、验证和管理用户凭据的方法。
Passport 身份验证提供程序 :
提供有关由 Microsoft 提供的集中身份验证服务的信息,该服务为成员站点提供单一登录和核心配置
Windows: 使用IIS验证方式
Forms: 使用基于窗体的验证方式
Passport: 采用Passport cookie验证模式
None: 不采用任何验证方式
Windwos(默认)用IIS...From(窗体)用帐户....Passport(密钥)
12.进程和线程分别怎么理解?
进程简单理解为单个程序,它至少有一个线程
一个进程可以有多个线程,一个线程也可以同时为多个进程使用。
我们平常用电脑任务管理器里那个进程就是这个进程了,而线程则是更加具体更加小一级的操作
线程更轻量级一些 创建销毁消耗少 可以共享一些资源
进程要比线程重一些 每个进程之间的数据相对是隔离的
简单的说:进程指正在运行的程序。
线程指执行任务时,为执行任务开辟的通道个数。通道个数越多,执行越快。
线程是指程序的一个指令执行序列,WIN32 平台支持多线程程序,允许程序中存在多个线程。 在单 CPU 系统中,系统把 CPU 的时间片按照调度算法分配给各个线程,因此各线程实际上是分时执行的,在多 CPU 的 Windows NT 系统中, 同一个程序的不同线程可以被分配到不同的 CPU 上去执行。由于一个程序的各线程是在相同的地址空间运行的,因此设及到了如何共享内存, 如何通信等问题,这样便需要处理各线程之间的同步问题,这是多线程编程中的一个难点。
线程,也被称为轻量进程(lightweight processes)。计算机科学术语,指运行中的程序的调度单位。
线程是进程中的实体,一个进程可以拥有多个线程,一个线程必须有一个父进程。线程不拥有系统资源,只有运行必须的一些数据结构;它与父进程的其它线程共享该进程所拥有的全部资源。线程可以创建和撤消线程,从而实现程序的并发执行。一般,线程具有就绪、阻塞和运行三种基本状态。
在多中央处理器的系统里,不同线程可以同时在不同的中央处理器上运行,甚至当它们属于同一个进程时也是如此。大多数支持多处理器的操作系统都提供编程接口来让进程可以控制自己的线程与各处理器之间的关联度(affinity)。
进程是程序在一个数据集合上运行的过程(注:一个程序有可能同时属于
多个进程),它是操作系统进行资源分配和调度的一个独立单位,进程可以简单的分为系统进程(包括一般
Windows程序和服务进程)和用户进程
13.什么是code-Behind技术。
ASP.NET程序可以理解为网站目录中的页面文件以及GAC中的代码库,ASP.NET技术最终生成的网页可以用如下两种方式创建。
1.传统的单文件页面模型
该方法类似于传统的ASP程序,将服务器端代码和HTML、CSS、JavaScript等前台网页技术的代码混合编写,以单个*.aspx文件的形式存在。服务器端的代码编写方法也有两种,如以下代码所示。
方法一:
<script runat="server" type="text/C#">
protected void Page_Load(object sender, EventArgs e)
{
string hello;
hello = "Hello,World!";
Response.Write(hello);
}
</script>
方法二:
<%
string hello;
hello = "Hello,World!";
Response.Write(hello);
%>
第1种方法类似于网页前台的客户端脚本(如浏览器端的JavaScript、VBScript)编写方式,不过ASP.NET的服务端代码和脚本代码有本质的区别。在<script>脚本块声明中标注“runat”属性为“server”,即服务端运行,而JavaScript、VBScript之类的脚本语言编写前台程序时,运行于浏览器端(在ASP中,也可以运行于服务端)。并在“type”属性中注明了编写语言为C#(也可以为VB),即程序代码块为托管语言编写,并不是解释性的脚本语言。该方法中的代码包含了该页面实例所属类的类体代码,如各种事件处理方法,类中的字段声明及属性等内容。这种方法编写的代码块为了和HTML相关的前台代码分开,习惯上编写于HTML代码前面,即<html>标签前面。
说明:WEB标准的页面(即XHTML)中,应该将服务端代码块编写于<!DOCTYPE>标签前面。
第2种方法为ASP.NET的嵌入式代码块,主要用于保留传统的ASP代码编写习惯。一般情况下,将嵌入式代码块用于复杂的编程逻辑并不是最佳做法,因为当页中的代码与标记混合时,很难进行调试和维护。此外,由于代码仅在呈现页的过程中执行,因此与将代码置于适当的页处理阶段以执行后台代码或脚本块代码相比,其灵活性大大降低。
2.Code-Behind技术创建的多文件模型
Code-Behind技术也成为代码隐藏技术,该方法是VS中WEB应用程序模板的默认方式,即每个ASP.NET中的网页都由*.aspx和*.cs这两个文件构成。假设指定网页为Index.aspx,在Index.aspx文件中原则上仅仅编写前台的代码(如HTML、CSS和JavaScript)和服务端控件代码,必要时也可以编写少量其他服务端代码,如数据绑定等。而ASP.NET代码中的业务逻辑部分则完全编写于对应的Index.aspx..cs文件中,该文件即为网页所属的类(System.Web.UI.Page类的派生类)的分部类,是主要的逻辑代码(如页面中控件以及页面本身的事件处理方法定义)。除此之外,这个网页还可能由其他文件组成,如VS 2008的WEB项目模板自动生成的Index.aspx.designer.cs文件,该文件实质上仍然是一个*.cs文件,其内容为VS 2008自动生成的控件变量声明及相关代码。这种方法就是Windows窗体编程在.NET程序中的创建方式,VS 2008生成的所有代码被放置在Index.aspx.designer.cs文件的页面分部类(编译时该类与Index.aspx.cs中的分部类合并)中,从而使计算机生成的代码和编程者代码实现完全的分离。
说明:组成Index.aspx网页的*.cs文件将被编译为*.dll文件。
主要是通过aspx页面指向对应的CS文件,可以实现显示逻辑和处理逻辑的分离,这样做有别于以前的asp页面和代码全混在一起不容易后期的修改和维护,使用code behind更容易维护,美工和程序员可以很好的分工
中读写XML的类都归属于哪些命名空间?
using System.Collections.Generic
using System.Xml
Asp.Net XML操作基类(修改,删除,新增,创建)
using System.Xml;
namespace EC
{
///
/// XML操作基类
///
public class XmlObject : IDisposable
{
//以下为单一功能的静态类
#region 读取XML到DataSet
/**************************************************
* 函数名称:GetXml(string XmlPath)
* 功能说明:读取XML到DataSet
* 参 数:XmlPath:xml文档路径
* 使用示列:
* using EC; //引用命名空间
* string xmlPath =Server.MapPath("/EBDnsConfig/DnsConfig.xml"); //获取xml路径
* DataSet ds =EC.XmlObject.GetXml(xmlPath); //读取xml到DataS
展开阅读全文