ASP.NET网页设计静态代办署理DynamicProxy 先容
c语言的编译器,几乎是所有新平台都有的。因此从这点上看,c语言的程序,比其他任何语言更加容易跨平台。我们利用静态代办署理,次要是由于静态代办署理具有如许的才能--使得某个范例A在运转的时分能转化为一个指定的接口I,即便这个范例A在界说的时分并没有从这个指定的接口I承继。这句话是甚么意义了?仍是回到当泛型的参数范例是静态的...一文中的谁人例子,在例子中,List并没有从ISimpleList承继,可是从外表看来,在运转的时分,我们经由过程静态代办署理能够以ISimpleList接口来“援用”List范例的工具。静态代办署理是在运转时在内存中构建的一品种型,该范例完成了接口I,可是它将一切的办法挪用都转发给范例A。
注重,下面我利用了“办法”挪用的转发,因为,事务、属性都是办法的变体,以是,对接口中界说的一切元素的Call都能够主动态代办署理转发。那末,接口(I)中的办法与被代办署理者(Target)的办法怎样婚配起来了?一般的办法是,举行“同名”婚配,好比ISimpleList接口的Add办法就天然婚配到List的Add办法。关于庞大的需求,能够界说一个办法名映照表来婚配分歧名的办法。
因为,静态代办署理具有这类为范例(Target)“换脸”的才能,以是,在良多场所可使用它来文雅地办理一些之前难以处置的成绩(一般,之前我们利用反射来办理这些贫苦),好比:
(1)“泛型参数范例是静态的”,利用静态代办署理办理这类成绩不但能够制止反射带来的功能丧失,并且还能够取得强范例办法挪用的优点。
(2)为一组范例“变脸”。好比,TextBox、RichTextBox、ListView等windows控件都有Clear办法,可是它们都没有完成一个一致的接口(好比,该接口中界说了Clear办法),以是当我要清空某个GroupBox中一切控件的内容时,没法用一种一致的体例挪用,你不克不及如许做:
以下为援用的内容:
foreach(Controlcontrolinthis.groupBox1.Controls)
{
control.Clear();//Control不存在Clear办法,编译报错
}
可是有了静态代办署理以后,我们就能够为这些控件界说一个NewFace:
以下为援用的内容:
publicinterfaceINewFace
{
voidClear();
}
然后文雅地如许挪用:
以下为援用的内容:
foreach(Controlcontrolinthis.groupBox1.Controls)
{
INewFaceface=DynamicTypeEmitter.CreateDynamicProxy<INewFace>(control);
face.Clear();
}
你能够持续发掘利用静态代办署理的别的场所,发扬你的设想力,来展示静态代办署理的能力。
关于ESBasic中的DynamicTypeEmitter完成,有一点缺憾,那就是临时还不撑持“泛型办法”的挪用转发,我还不晓得怎样利用Emit发射对静态范例参数的泛型办法的挪用,有晓得的伴侣请引导下。
我以前很喜欢Serv-U,自从它用Java重写之后我就再也没用过,实在是太慢了,我宁可用IIS搭建FTP,虽然IIS搭建FTP在权限管理上很不灵活。 可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性。 Servlet却在响应第一个请求的时候被载入,一旦Servlet被载入,便处于已执行状态。对于以后其他用户的请求,它并不打开进程,而是打开一个线程(Thread),将结果发送给客户。由于线程与线程之间可以通过生成自己的父线程(ParentThread)来实现资源共享,这样就减轻了服务器的负担,所以,JavaServlet可以用来做大规模的应用服务。 代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。 对于中小项目来说.net技术是完全可以胜任,但为什么现在大型公司或网站都选择php或java呢?就是因为微软不够开放,没有提供从硬件到应用服务器再到业务应用的整套解决方案。 当然我们在选择Asp.net主机是,除了要考虑服务提供商在版本是否是实时更新以外,机房的环境和配置也是非常重要的,通常选择骨干网的机房,在速度和稳定性上会非常有保证。 那么,ASP.Net有哪些改进呢? 平台无关性是PHP的最大优点,但是在优点的背后,还是有一些小小的缺点的。如果在PHP中不使用ODBC,而用其自带的数据库函数(这样的效率要比使用ODBC高)来连接数据库的话,使用不同的数据库,PHP的函数名不能统一。这样,使得程序的移植变得有些麻烦。不过,作为目前应用最为广泛的一种后台语言,PHP的优点还是异常明显的。 这也就是最近几年来随着各种新的后台技术的诞生,CGI应用在Internet上越来越少的原因。CGI方式不适合大访问量的应用。
页:
[1]