仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1364|回复: 11
打印 上一主题 下一主题

[学习教程] ASP.NET网页编程之.net中反射、emit、expression和dynamic的功能对照仓酷云

[复制链接]
灵魂腐蚀 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:16:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
不过你如果学.net的话,你就不要选os了,这课比较底层的。你可以旁听数据库加上软件构件和中间件。(webservices和面向服务的课也应该听一听)
  1. classStudent{publicstringName{get;set;}}staticdoubleTest(intloop,Studentstu,Func<Student,string>action){varwatch=Stopwatch.StartNew();strings=null;for(vari=0;i<loop;i++)s=action(stu);returnwatch.ElapsedTicks;}staticFunc<Student,string>NativeGetter(){returns=>s.Name;}staticFunc<Student,string>ReflectedGetter(){vartype=typeof(Student);varprop=type.GetProperty("Name");returns=>(string)prop.GetValue(s,null);}staticFunc<Student,string>EmittedGetter(){vardm=newDynamicMethod(name:"EmittedGetter",returnType:typeof(string),parameterTypes:new[]{typeof(Student)},owner:typeof(Student));vartype=typeof(Student);varprop=type.GetMethod("get_Name");varil=dm.GetILGenerator();il.Emit(OpCodes.Ldarg_0);il.Emit(OpCodes.Call,prop);il.Emit(OpCodes.Ret);return(Func<Student,string>)dm.CreateDelegate(typeof(Func<Student,string>));}staticFunc<Student,string>ExpressionGetter(){vartype=typeof(Student);varprop=type.GetMethod("get_Name");ParameterExpressionpa=Expression.Parameter(typeof(Student));Expressionbody=Expression.Call(pa,prop);returnExpression.Lambda<Func<Student,string>>(body,pa).Compile();}staticFunc<Student,string>DynamicGetter(){returns=>{dynamicd=s;returnd.Name;};}[MethodImpl(MethodImplOptions.NoOptimization)]publicstaticvoidRun(){constintloop=5000000;varstu=newStudent{Name="Mike"};vardynamic=Test(loop,stu,DynamicGetter());varexpression=Test(loop,stu,ExpressionGetter());varnative=Test(loop,stu,NativeGetter());varemitted=Test(loop,stu,EmittedGetter());varreflected=Test(loop,stu,ReflectedGetter());Console.WriteLine("native:{0}ndynamic:{1}nemit:{2}nexpression:{3}nreflection:{4}",1,dynamic/native,emitted/native,expression/native,reflected/native);Console.ReadKey();}
复制代码


测试了局

1.当轮回次数对照小的时分,loop=1000
native:1
dynamic:540.444964871194
emit:0.704918032786885
expression:0.224824355971897
reflection:8.37002341920375
2.loop=5000000
native:1
dynamic:4.37328053807767
emit:0.96159470600998
expression:1.00412887828162
reflection:35.909097418095
捆绑编译器。用户不需要受制于厂家,自己就能将程序在新平台上编译运行。除了牛B轰轰的linux,估计也没有系统捆绑c/c++的编译器,而且许多新平台都无法支持复杂的c/c++编译器在上面直接运行。
透明 该用户已被删除
沙发
发表于 2015-1-20 18:58:22 | 只看该作者
市场决定一切,我个人从经历上觉得两者至少在很长时间内还是要共存下去,包括C和C++,至少从找工作就看得出来,总不可能大家都像所谓的时尚一样,追捧一门语言并应用它。
再现理想 该用户已被删除
板凳
发表于 2015-1-22 14:44:18 | 只看该作者
在asp.net虚拟主机的服务提供商中,目前首推的是CNNIC的其中一家域名注册机构---时代互联(www.now.net.cn),他们早在2001年微软刚推出Asp.net时就推出了对应的Asp.net虚拟主机了,经笔者的使用测试,他提供的Asp.net性能非常的稳定,版本也会定期的更新,目前他的
再见西城 该用户已被删除
地板
发表于 2015-1-23 18:04:26 | 只看该作者
在asp.net虚拟主机的服务提供商中,目前首推的是CNNIC的其中一家域名注册机构---时代互联(www.now.net.cn),他们早在2001年微软刚推出Asp.net时就推出了对应的Asp.net虚拟主机了,经笔者的使用测试,他提供的Asp.net性能非常的稳定,版本也会定期的更新,目前他的
飘灵儿 该用户已被删除
5#
发表于 2015-1-31 18:37:22 来自手机 | 只看该作者
同时也感谢博客园给我们这个平台,也感谢博客园的编辑们做成专题引来这么多高人指点。
因胸联盟 该用户已被删除
6#
发表于 2015-2-6 20:55:17 | 只看该作者
是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。
活着的死人 该用户已被删除
7#
发表于 2015-2-11 06:33:53 | 只看该作者
Asp.net:首先来说,Asp.net和Asp没什么关系,看着像是升级版本什么的,其实没什么联系。Asp是脚本编程,用的是ASP语言,而ASP.net用的是C#语言,完全不同的东西。
只想知道 该用户已被删除
8#
发表于 2015-3-1 23:12:59 | 只看该作者
有一丝可惜的是,这个系列太强了,Java阵营的朋友根本就是哑口无言...争论之火瞬间被浇灭,这不是我想这么早就看到的,但是值了。
柔情似水 该用户已被删除
9#
发表于 2015-3-4 10:03:44 | 只看该作者
JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。
灵魂腐蚀 该用户已被删除
10#
 楼主| 发表于 2015-3-11 18:11:42 | 只看该作者
最强的技术支持WebService,而且有.NET的所有library做后盾。而且ASP.NET在.NET3.5中还有微软专门为AJAX开发的功能--ASP.NETAJAX。
深爱那片海 该用户已被删除
11#
发表于 2015-3-19 06:24:57 | 只看该作者
ASP.NET可以无缝地与WYSIWYGHTML编辑器和其他编程工具(包括MicrosoftVisualStudio.NET)一起工作。这不仅使得Web开发更加方便,而且还能提供这些工具必须提供的所有优点,包括开发人员可以用来将服务器控件拖放到Web页的GUI和完全集成的调试支持。微软为ASP.net设计了这样一些策略:易于写出结构清晰的代码、代码易于重用和共享、可用编译类语言编写等等,目的是让程序员更容易开发出Web应用,满足计算向Web转移的战略需要。
山那边是海 该用户已被删除
12#
发表于 2015-3-27 09:20:55 | 只看该作者
通过这次激烈的讨论,我从大家身上学到了太多,开阔了眼界,不管是支持我的还是骂我的,都感谢你们。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 12:45

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表