仓酷云 发表于 2015-1-18 11:20:54

ASP.NET网页编程之让WCF客户真个“挪用”成为一种“享用”仓酷云

中间码是基于一个虚拟机器。源代码是最高层的,理论上从源代码开始直接编译成本地码能提供最大优化的。而中间码只能是转译成本地码,效率上难免受到损耗。根据虚拟机器所设定的体系结构的特点,和本地机器的差异的多少。刚入手下手利用WCF时,老是在using中举行挪用,好比:
using(CnblogsWcfClientclient=newCnblogsWcfClient()){client.Say("Hello,cnblogs.com!");}厥后发明,这是微软的一个“圈套”,事先我写了篇博客“不要在using语句中挪用WCF服务”。
今后改成如许挪用:
CnblogsWcfClientclient=newCnblogsWcfClient();client.Say("Hello,cnblogs.com!");try{client.Close();}catch{client.Abort();}每当写到如许的代码,心思老是有些不恬逸。经由近10个月如许的不恬逸以后,再也没法忍耐。。。
因而,明天决意办理这个成绩。。。
从WhatisthebestworkaroundfortheWCFclient`using`blockissue?找到PracticalFunctionalC#-PartII,发明懂得决之道,但个中供应的代码不完全,经由几个小时的探索,终究找到中意的办理办法。
让WCF客户真个挪用成为“享用”的代码以下:
使用程序中挪用代码:
//IUserService就是WCF的ServiceContract,是客户端主动天生的代办署理类WcfClient.UseService((IUserServiceuserService)=>(userService.GetUser(userId)));WcfClient完成代码:
publicclassWcfClient{publicstaticTReturnUseService<TChannel,TReturn>(Func<TChannel,TReturn>func){varchanFactory=newChannelFactory<TChannel>("*");TChannelchannel=chanFactory.CreateChannel();TReturnresult=func(channel);try{((IClientChannel)channel).Close();}catch{((IClientChannel)channel).Abort();}returnresult;}}办理这个成绩的次要工夫花在找到下面代码中的谁人星号,星号对应的参数名是endpointConfigurationName。
入手下手时困扰于怎样给endpointConfigurationName参数传值。厥后,研讨了一下主动天生的代办署理类,也没有与endpointConfigurationName相干的信息,只是承继自System.ServiceModel.ClientBase<T>。然后,经由过程ILSPy反编译ClientBase<T>的代码,找到了这个星号,见下图:

小结
大概另有更“享用”的挪用WCF客户端办法,可是我以为最少比之前的办法用起来更恬逸。办理成绩以后,最好的庆贺体例就是写一篇博客。分享的不单单是办理办法,另有办理成绩以后的那种镇静!
感觉很多控件都必须自己去写代码;用了WebMatrix感觉也不是很好,毕竟没有很强的WYSIWYG效果。现在就不知道如何是好了。

第二个灵魂 发表于 2015-1-20 12:12:29

JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。

山那边是海 发表于 2015-1-29 07:06:11

在一个项目中谁敢保证每天几千万甚至几亿条的数据不丢失?谁敢保证应用的高可靠性?有可以借签的项目吗?

变相怪杰 发表于 2015-1-31 15:40:03

主流网站开发语言之CGI:CGI就是公共网关接口(CommonGatewayInterface)的缩写。它是最早被用来建立动态网站的后台技术。这种技术可以使用各种语言来编写后台程序,例如C,C++,Java,Pascal等。

不帅 发表于 2015-2-6 20:02:27

通过这次激烈的讨论,我从大家身上学到了太多,开阔了眼界,不管是支持我的还是骂我的,都感谢你们。

admin 发表于 2015-2-13 07:51:06

众所周知,Windows以易用而出名,也因此占据不少的服务器市场。

谁可相欹 发表于 2015-2-17 20:38:13

但是目前在CGI中使用的最为广泛的是Perl语言。所以,狭义上所指的CGI程序一般都是指Perl程序,一般CGI程序的后缀都是.pl或者.cgi。

莫相离 发表于 2015-2-18 15:51:25

ASP.NET:ASP.net是Microsoft.net的一部分,作为战略产品,不仅仅是ActiveServerPage(ASP)的下一个版本;它还提供了一个统一的Web开发模型,其中包括开发人员生成企业级Web应用程序所需的各种服务。ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。

若相依 发表于 2015-3-6 08:36:42

在一个项目中谁敢保证每天几千万甚至几亿条的数据不丢失?谁敢保证应用的高可靠性?有可以借签的项目吗?

蒙在股里 发表于 2015-3-6 18:50:50

在asp.net虚拟主机的服务提供商中,目前首推的是CNNIC的其中一家域名注册机构---时代互联(www.now.net.cn),他们早在2001年微软刚推出Asp.net时就推出了对应的Asp.net虚拟主机了,经笔者的使用测试,他提供的Asp.net性能非常的稳定,版本也会定期的更新,目前他的

若天明 发表于 2015-3-10 17:52:22

对于中小项目来说.net技术是完全可以胜任,但为什么现在大型公司或网站都选择php或java呢?就是因为微软不够开放,没有提供从硬件到应用服务器再到业务应用的整套解决方案。

小女巫 发表于 2015-3-11 18:24:24

市场决定一切,我个人从经历上觉得两者至少在很长时间内还是要共存下去,包括C和C++,至少从找工作就看得出来,总不可能大家都像所谓的时尚一样,追捧一门语言并应用它。

精灵巫婆 发表于 2015-3-19 06:48:18

JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。

愤怒的大鸟 发表于 2015-3-27 11:04:59

提供基于组件、事件驱动的可编程网络表单,大大简化了编程。还可以用ASP.NET建立网络服务。
页: [1]
查看完整版本: ASP.NET网页编程之让WCF客户真个“挪用”成为一种“享用”仓酷云