ASP网页编程之COM+进门
SQLServer是基于服务器端的中型的数据库,可以适合大容量数据的应用,在功能上管理上也要比Access要强得多。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。早在window2000公布时就已发生了COM+,并集成在操纵体系中,在运转的时分是以服务的情势存在的。COM+增添了一系列的MTS(一种体系服务,用于办理数据库中的耐久性数据,也处置在事件中的耐久性动静行列和文件体系
)服务:
1、事件服务:它确保了在散布式体系中的数据完全性。
2、平安服务:它的平安模子供应了处置平安性而不必编写任何代码的办法。
3、同步服务:供应了有办理地办理组件中并提问题的办法,但却不必编写代码
。
4、资本办理:(包含资本办理器和资本分派器)办理数据库毗连、收集毗连和
内存等。
5、JIT激活:即(JustInTime)是从MTS承继上去的一项服务,当客户挪用时才
将该工具的一个实例坚持为活泼形态并缓存在服务器内存中,利用完工具后,会
关照MTS情况能够开释该工具所占用的资本了,如数据库毗连。
6、工具池:供应一个线程池来寄存现成的工具,以供下次再用,是体系的一项
主动服务。当有使用程序会见COM+组件时,即为使用程序创立该组件的一个实例
并寄存在工具池中,使用程序封闭后即烧毁实例,能够自在设置组件使它的实例
在池中的形态,完成了实例的重用性,进步使用程序的功能和伸缩性。
7、基于脚色的平安:这个简单了解,即考证脚色,赐与平安允许,给分歧的用
户予分歧的权限。
8、行列组件(MSMQ):供应异步动静行列,能够主动按其情势将数据转换成数
据包。
9、共享属性办理器(SPM):用来办理存储在内存中的工具形态信息,在一个服
务器历程内能够用来共享多个工具间的形态,并供应并发处置。
10、抵偿资本办理器(CRM):用于在处置事件时代天生日记文件并可处置体系
溃散。包含CRM事情器(是CRM的次要部分,经由过程CRM的基本举措措施供应的接口将事
务的相干信息写进日记,并在必要时检索日记文件)和CRM抵偿器(用于在事件
完成后,将事件和天生的日记文件提交给实行事件的用户)。
11、并发:即同意一个使用程序中的多个历程同时运转,历程被分红各组高低文
(有不异需求的工具汇合)包括在单位(一个历程内的一组高低文)中,一个进
程可包括多个高低文,都触及到分歧的需求的工具并且每一个高低文都有一个独一
的COM工具来供应COM+事件处置和JIT激活等服务。
使用COM+供应的工具能够创立实行买卖的多层使用程序,还能够处置线程分派
的成绩。OK,先容完COM+的功效上面再先容COM+的范例。
COM+有几种分歧用处的范例:
1、使用程序代办署理:包括使用程序注册信息的文件,即当有客户会见远程盘算机
的服务器程序时,运转在客户真个使用程序代办署理就会将服务器使用程序的信息写
进客户端器盘算机中。
2、服务器使用程序:即在COM+使用程序自己的历程内实行COM+使用程序,同时
利用并发性来处置组件。
3、库使用程序:是在客户使用程序的历程内实行的,装载在客户使用程序历程
内的,利用基于义务的平安性,弱点是不撑持远程会见和行列组件。
4、COM+预安装使用程序:到办理工具中的组件服务中的COM+使用程叙文件夹中
检察就分明甚么是COM+预安装使用程序了,它是在COM+安装过程当中主动安装进组
件服务的使用程序,不克不及修正也不克不及删除。
同时触及到一个叫“程序集(Assembly)”的观点:它是CLR一切范例和其
它资本(如位图文件等)的汇合。可经由过程办理工具下的“设置.NET框架”来检察
。包含有公有和共享的程序集。
公有程序集:它只能被放在与该程序集不异路径的使用程序会见。默许为公有,
必需放在利用它的使用程序的文件夹中。
共享程序集:指增加在GAC(GlobalAssemblyCache)中的程序集。GAC是专门
用来寄存程序会合,使使用程序能够共享这些程序集,有一点必需注重,就是存
放在GAC中的程序集必需有一个独一的名字,能够经由过程在.NET命令实行窗口中打
进sn-kassemblyname.snk来天生一个独一的称号,叫做强称号,天生强称号
后,会有一个公钥附加在此程序集上,用于制止名字类似而被取代的伤害。
.NET中对程序集的平安性供应了两种机制:一种是后面提到的强称号,一种
是利用Signcode(可了解为数字署名)。Signcode.exe用来标志一个程序集,同时
嵌进一个数字署名到程序会合,可让用户辨认创立此程序集的开辟者。
(注:在GAC中不克不及有两个不异称号的强称号,不然就不叫强称号了,但能够存储一个程序集的多个拷贝并且在GAC中的程序集只能被具有必定权限的用户删除)
关于程序集的版本号:每个版本都有一个128位的版本号,暗示为四部
分:Major(为主版本号,项目有变更时即改动).Minor(增加一个功效到项目时改
变).Build.Revision(后两个是主动更新的),这些版本信息能够经由过程在使用
程序中的AssemblyInfo.cs文件来检察。
又是一堆的实际,上面先容COM+的使用:
在.NET中利用COM+服务的组件就叫做.NET服务组件,跟一样平常的组件分歧,区分在
于前者利用了COM+服务。利用.NET服务组件的目标也就是为了能够会见COM+服
<P>务的一些基类如ServicedComponent和主动挛翊恚剩桑裕韵蟪睾桶踩?/P>方面等。
在利用.NET服务组件之前都必需注册服务组件,有三种体例:
1、手动注册:经由过程RegSvcs.exe命令行工具来注册,如:Regsvcs
yourcomponent.dll以后将发生一个yourcomponent.tlb范例库,包括了工具的
范例信息(注重在利用该命令前必需先注册一个yourcomponent的强称号)
2、编程注册:利用RegistrationHelper类,次要是使用在
IregistrationHelper接口中的办法。
3、静态注册:是指在实行使用程序过程当中,反省安装组件的版本,如组件的正
确版本没安装,则在运转时主动安装必要的版本,即主动注册。(注:挪用主动
注册的用户必需是Window2000Administrative组的一个成员,由于静态注册无
法改动COM+目次,不然注册历程失利)
OK,终究写完了,接着看实例:
----------------------------------------------------------------------------------------------------------
usingSystem;
usingSystem.EnterpriseServices; // 必需引进的名空间
usingSystem.Reflection; // 必需引进的名空间
usingSystem.Windows.Forms;
//必需先注册一个叫Calcomp.snk的强称号,同时正文失落在项目里AssemblyInfo.cs文件中的,不然就反复界说。
namespaceCalcomp
{
publicinterfaceICommission
{
voidCommissionCal(stringname,intsalesamt);
}
publicclassCalcomp:ServicedComponent,ICommission // 承继ServicedComponent使之成为一个服务组件
{
publicvoidCommissionCal(stringname,intsalesamt)
{
doublecomm;
//Stringmsgstring;
if(salesamt>=50000)
{
comm=salesamt*0.10;
MessageBox.Show(comm.ToString(),"PrestoSystems");
}
if(salesamt<50000)
{
comm=salesamt*0.05;
MessageBox.Show(comm.ToString(),"PrestoSystems");
}
}
}
}
OK,弄定,上面看怎样挪用这个服务组件
------------------------------------------------------------------------------------------------------------------
usingSystem;
namespaceCalClient
{
classCalculate
{
staticvoidMain(string[]args)
{
Calcomp.Calcompc=newCalcomp.Calcomp();
Console.WriteLine("pleaseinputtheemployeername");
Stringname=Console.ReadLine();
Console.WriteLine("pleaseinputthesalesamt");
Stringsalesamt=Console.ReadLine();
c.CommissionCal(name,int.Parse(salesamt));
}
}
}
(注:在利用服务组件之前要先在项目援用里增加援用下面服务组件天生的DLL的援用)
----------------------------------------------------------------------------------------------------------------
关于COM+服务组件另有良多功效,此篇小文只是使用了个中一块鸡毛。
因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQLServer还有更多的扩展,可以用存储过程,数据库大小无极限限制。 尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。 交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。 你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。 作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。 先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习 Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write 它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。
页:
[1]