c#考试PPT资料整理.docx_第1页
c#考试PPT资料整理.docx_第2页
c#考试PPT资料整理.docx_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章 .net Framework.NET Framework 两个主要组件:统一的类库集 公共语言运行时 (CLR)Microsoft. NET Framework 的体系结构.net Framework 组件CLR和MSIL .NET Framework的核心是其运行库的执行环境,称为公共语言运行库(CLR)或.NET运行库。在CLR的控制下运行的代码常常称为托管代码(managed code)。 在CLR执行开发的源代码之前,需要编译(在C#中或其他语言中)。在.NET中,编译分为两个阶段: (1) 把源代码编译为Microsoft中间语言(IL)。 (2) CLR把IL编译为平台专用的代码。托管代码的优点 Microsoft中间语言与Java字节代码共享一种理念:它们都是一种低级语言,语法很简单(使用数字代码,而不是文本代码),可以非常快速地转换为内部机器码。对于代码来说,这种精心设计的通用语法,有很重要的优点。 (1)平台无关性 编译为中间语言就可以获得.NET平台无关性,这与编译为Java字节代码就会得到Java平台无关性是一样的。 (2)提高性能 IL比Java字节代码的作用还要大。IL总是即时编译的(称为JIT编译),而Java字节代码常常是解释性的,Java的一个缺点是,在运行应用程序时,把Java字节代码转换为内部可执行代码的过程会导致性能的损失(但在最近,Java在某些平台上能进行JIT编译)。 JIT编译器并不是把整个应用程序一次编译完(这样会有很长的启动时间),而是只编译它调用的那部分代码。代码编译过一次后,得到的内部可执行代码就存储起来,直到退出该应用程序为止,这样在下次运行这部分代码时,就不需要重新编译了。 JIT编译器确切地知道程序运行在什么类型的处理器上,利用该处理器提供的任何特性或特定的机器代码指令来优化最后的可执行代码。 所以能提高性能 (3)语言的互操作性 使用IL不仅支持平台无关性,还支持语言的互操作性。简言之,就是能将任何一种语言编译为中间代码,编译好的代码可以与从其他语言编译过来的代码进行交互操作。CLS和CTSn 通用语言规范 (CLS) n 规定所有 .NET 语言都应遵循的规则n 生成可与其他语言互操作的应用程序n 公共类型系统 (CTS) 通常n 包含标准数据类型 n 包含准则集.NET的类库 线程 文件输入/输出 (I/O) 数据库支持 XML 解析 数据结构 基本框架类第二章 C#高级特性:委托与事件委托(delegate)和事件(event)n 委托是C#的一种新的object类型,与class相似n 委托是事件的基础委托的声明和使用n 使用delegate关键字声明 n 声明类似函数,但没有函数体 n 可以封装任何参数和返回类型与委托声明的参数和返回类型一致的方法 n 和C+的函数指针类似n 声明格式如下:modifiers delegate result-type Identifier (formal-parameters)n Modifiers为修饰符,如new,public,protected,internal,privaten result-type为返回类型n Identifier为委托名称n formal-parameters为参数类型,如是指针,必须使用unsafe修饰n 例2.1:using System;using System.Collections.Generic;using System.Text;namespace Opns public class AddFunc static public void Add(int fop,int sop)/可委托的函数 int result=fop+sop; Console.WriteLine(0 + 1 = 2,fop,sop,result); public class Math_Op /声明委托类型OpDelegate public delegate void OpDelegate(int fop, int sop); / delegate是一个关键字,与class作用相似,如 public class Student ;/声明一个OpDelegate的对象 public OpDelegate Op; protected int _fop ; protected int _sop; public Math_Op(int fop, int sop) _fop = fop; _sop = sop; class Program static void Main(string args) Math_Op mo = new Math_Op(200,100);/实例化Op对象 mo.Op = new Math_Op.OpDelegate(AddFunc.Add); /使用委托对象Op运行函数Add/ void Add(int fop,int sop)与void OpDelegate(int fop, int sop)返回类型、形/参个数与类型一致mo.Op(10, 20); /Op是OpDelegate类型的一个对象,所以象对象一样用new 。 /OpDelegate相当于一种类型, 象class Student 中的Student一样/Op是Math_Op类的数据成员,AddFunc.Add是AddFunc类的成员函数。/ mo.Op(10, 20)相当于运行AddFunc.Add(10,20) 第三章 ADO.NET数据访问ADO.NET的结构。NET 数据提供程序的四个核心对象 对象 说明 Connection 建立与特定数据源的连接。 Command 对数据源执行命令。 DataReader 从数据源中读取只进且只读的数据流。 DataAdapter 用于将数据填充到 DataSet。 DataSet简介n ADO.NET的核心组件是DataSet,内部用XML描述数据,具有平台无关性。DataSet中常用的对象是DataTable和DataRow等等。n DataSet通过DataAdapter对象从数据源得到数据,DataAdapter是连接DataSet和数据库的一个桥梁,因此命名为:“数据适配器”。Connection对象n SqlConnection为SQL Server 7.0或更高版本提供连接,OleDbconnection为OLE数据源提供连接。n 使用SqlConnection对象连接到SQL Server数据库n 使用OleDbconnection对象连接到OLE数据源 n OleDbConnection与SqlConnection对象常用属性与方法Command对象n Command对象要与采用的连接方式相匹配:对SqlConnection采用SqlCommand;对OleDbConnection则采用OleDbCommand。 n 创建SqlCommand对象n SqlCommand与OleDbCommand对象常用属性和方法ADO.NET优点n ADO.NET可交互的数据更广泛 n 在ADO.NET中,我们将处理断开连接的数据集,将打开连接的时间降至最低。n ADO.NET可以在应用程序间共享数据n 运用DataSet(数据集)n 可编程性n 穿透防火墙第四章 流和串行化创建网络流服务器n 首先创建一个TcpListener对象,监听所选的TCP/IP端口(如65000): TcpListener listener=new TcpListener(65000)n 创建listener对象后,开始监听: listener.Start()n 等待客户连接:Socket socket1=listener.Accept(),Accept()方法将返回一个Socket 对象socket1,表示与特点端点绑定。n 如果套接字已连接,就可以将文件发送客户端,使用socket1对象创建NetworkStream对象n NetworkStream networkstr=new NetworkStream(socket1)n 通过网络流对象networkstr创建StreamWriter对象, StreamWriter strwrite=new StreamWriter(networkstr)n 利用strwrite进行数据写创建网络流客户端n 首先实例化一个TcpClient类对象,它代表一个与主机连接的TCP/IP客户,sockeforserver = new TcpClient(, port); n 用这个TcpClient对象获取NetworkStream对象。NetworkStream networkStream = sockeforserver.GetStream(); n 用networkStream 对象构建StreamReader对象, StreamReader streamReader = new StreamReader(networkStream);n 开始读取数据,outputString = streamReader.ReadLine(); 串行化概念n 串行化(serialization)是指将一个对象的当前状态转换成字节流(a stream of bytes)的过程。n 反串行化(deserialization)是指串行化过程的逆过程,将字节流转换成一个对象。n .NET运行库利用镜像,或更为准确地说是反射。n 程序集含有名为元数据的自描述(self-describing)数据,程序集的元数据完整地表述了内部每一个类型,包括类型中每个私有字段的信息。n 通过反射过程,运行库能识别元数据,并用它来决定类应怎样被串行化。 n System.Runtime.Serialization 命名空间包含可用于将对象序列化和反序列化的类。n 通过 ISerializable 接口,类可以执行其自己的序列化行为。n System.Runtime.Serialization.Formatters命名空间中的类控制封装在序列化对象中的多种数据类型的实际格式。n 在C#中常见的序列化的方法主要也有三个:BinaryFormatter、SoapFormatter、XML序列化 第五章 远程开发分布式应用 (Remotiong)n Remoting是一种分布式处理方式 。n 从微软的产品角度来看,Remoting就是DCOM的一种升级,它改善了很多功能,并极好的融合到.Net平台下 。n .NET Remoting 提供了一种允许对象通过应用程序域与另一对象进行交互的框架。 n Remoting中是通过通道(channel)来实现两个应用程序域之间对象的通信的。如图所示: n 客户端通过Remoting访问通道以获得服务端对象,再通过代理解析为客户端对象。这就提供一种可能性,即以服务的方式来发布服务器对象。n 远程对象代码可以运行在服务器上然后客户端再通过Remoting连接服务器,获得该服务对象并通过序列化在客户端运行。 n Remoting的通道主要有两种:Tcp和Http。n System.Runtime.Remoting.Channel中定义了IChannel接口。IChannel接口包括了TcpChannel通道类型和Http通道类型。它们分别对应Remoting通道的这两种类型。n TcpChannel在名字空间System.Runtime.Remoting.Channel.Tcp中。Tcp通道提供了基于Socket的传输工具,使用Tcp协议来跨越Remoting边界传输序列化的消息流。n TcpChannel类型默认使用二进制格式序列化消息对象,因此它具有更高的传输性能。 n HttpChannel类型放在名字空间System.Runtime.Remoting.Channel.Http中。它提供了一种使用Http协议,使其能在Internet上穿越防火墙传输序列化消息流。n 默认情况下,HttpChannel类型使用Soap格式序列化消息对象,因此它具有更好的互操作性。n 通常在局域网内,我们更多地使用TcpChannel;如果要穿越防火墙,则使用HttpChannel。n HTTP的普及和SOAP的简单性使我们几乎可以从任何环境调用它们,因此成为Web Service的理想基础。 第六章 COM和COM+n COM不是一种语言,而是一组规范和实现(COM库)。它规定了定义一组公共的、用于创建和使用COM对象的约定使得软件的任何部分可以访问其他部分提供的服务。n COM组件是遵循COM规范编写、以Win32动态链接库(DLL)或可执行文件(EXE)形式发布的通用的可执行的二进制代码。只要遵循COM的规范标准,组件与应用程序、组件与组件之间就可以互操作,并能够更方便快速地建立起可伸缩的分布式系统应用。n COM组件可以按下面这种方式分类 n 进程内组件:COM对象(是DLL文件)被加载到客户应用的进程中,它们共享一个地址空间。特点:运行效率高,但不稳定。n 进程外组件:COM对象(可以是DLL或EXE文件)被加载到同一机器的另一个(不同)进程中或另一个(即远程)机器的(不同)进程中。特点:稳定性好,但效率略低。COM+简介n COM+并不是COM的新版本,可以把它理解为COM的新发展,或者COM更高层次上的应用。n COM+的底层结构仍然以COM为基础,它几乎包容了COM的所有内容。n 有人认为COM+是COM、DCOM和MTS(microsoft transaction server)的集成,这种说法有一定的道理,因为COM+确实综合了这些技术要素。n 强名称:强名称包含该程序集的标识,通过一密钥对来签名程序集。找到sn.exe文件所在路径:Program FilesMicrosoft Visual Studio 2005SDKv2.0Bin,进行Sn k mykey.snk ,并把该文件添加到assemblyinfo.cs文件中:assembly: AssemblyKeyFile(“mykey.snk”),指定mykey.snk的文件路径,可放到相对目录objDebug下或把文件路径写进去assembly: AssemblyKeyFile(/server.snk) 第七章 Web 服务n Web Service的定义尚未统一。n 一般地说,Web Service是在Internet上进行分布式计算的基本构造块。开放的标准以及对用户和应用程序之间的通信和协作的关注产生了这样一种环境,在这种环境下,Web Service 成为应用程序集成的平台。n 应用程序是通过使用多个不同来源的Web Service构造而成的,这些服务相互协同工作,而不管它们位于何处或者如何实现。n 不管web Service的定义有多少种,以下3个都是它们的共同点: n Web Service通过标准的Web协议向Web用户提供有用的功能。多数情况下使用SOAP协议。n Web Service可以非常详细地说明其接口,这使用户能够创建客户端应用程序与它们进行通信。这种说明通常包含在称为Web服务说明语言(WSDL)文档的XML文档中。n Web Service已经过注册,以便潜在用户能够轻易地找到这些服务,这是通过通用发现、说明和集成(UDDI) 来完成的。n Web Service体系结构的主要优点之一是:允许在不同平台上、以不同语言编写的各种程序以基于标准的方式相互通信。注意:COM或CORBA也在努力争取做到这一点,但SOAP比这些方法要简

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论