若相依 发表于 2015-1-18 11:30:52

ASP.NET网页设计“轻松把握WCF 帮你找到进门砖”访谈实录仓酷云

c语言的编译器,几乎是所有新平台都有的。因此从这点上看,c语言的程序,比其他任何语言更加容易跨平台。3月24日下战书2:00到3:00,51CTO约请张逸和赵铝轿焕鲜Γ“轻松把握WCF帮你找到进门砖”这一主题举行现场会商,并回覆网友在事情和进修中的困难。上面是本次佳宾访谈的对话实录:收场白
掌管人:如今两位先生已离开了我们的谈天室,先给人人打个召唤!同时,也给人人先复杂做下毛遂自荐吧!
张逸:人人好!
张逸:我是《WCF服务编程》的译者,对WCF有必定的履历,也曾使用WCF开辟过一些项目,但愿此次交换可以对人人进修WCF有必定的匡助。
赵拢人人好!我是个开辟职员。平常关于.NET开辟相干方面有对照年夜的乐趣,也投进了很多。次要“功劳”就在于写了一些手艺文章。WCF今朝已是微软散布式通讯的“现实尺度”(已有这个偏向了),关于这方面有需求的伴侣懂得一下WCF仍是很主要的。
WCF简介
张逸:我先注释一下WCF是甚么?
张逸:严厉的说,WCF就是专门用于服务定制、公布与运转和动静传送和处置的一组专门类的汇合,也就是所谓的“类库”。这些类经由过程必定体例被构造起来,配合合作,并为开辟者供应了一个一致的编程形式。WCF之以是特别,是在于它所应对的场景与一般的.NET类库分歧,它次要用于处置历程间以致于呆板之间动静的传送与处置,同时它引进了SOA的计划头脑,以服务的体例发布并运转,以便利客户端跨历程和呆板对服务举行挪用。实践上,WCF就是微软关于散布式处置的编程手艺的集年夜成者,它将DCOM、Remoting、WebService、WSE、MSMQ集成在一同,从而下降了散布式体系开辟者的进修曲线,并一致了开辟尺度。
掌管人:您打仗WCF有多长工夫了呢?
张逸:应当说,我从WCF的前身indigo入手下手,就对其发生了极年夜的乐趣,究竟我最后利用.NETRemotin开辟了一些项目,对散布式开辟对照热中于懂得。
张逸:从WCF所处的地位来看,它是包括在.NET3.0(也包含.NET3.5)当中的。我们注重对照.NET3.0与.NET2.0,实在独一的区分就是.NET3.0包括了WCF、WPF、WF(大概另有CardSpace)罢了。因而,我们以为WCF是.NET框架的一部分,仿佛其实不为过。尤其关头的是,WCF其实不能离开.NET框架而独自存在(但非WCF客户端能够挪用WCF服务),因而,固然WCF是微软用以应对SOA办理计划的开辟需求而专门推出的,但它并非比方Spring、Struts那样的框架,也不是像EJB那样的容器大概服务器。微软真正切合SOA企业使用服务器脚色的,我想应当是BiztalkServer。
现场成绩解答
1、网友发问:进修WCF必要甚么常识背景吗?
张逸:进修WCF其实不难,实在把握.NET的基础常识就能够动手WCF了。固然,假如多懂得有关散布式开辟和SOA的相干常识,会对照简单了解个中的一些观点。
2、网友发问:我在xbap里想挪用WCF,用的是TCP/IP协定,可是权限被沙箱锁了,有甚么举措能够完成挪用WCF服务!?xbap的部署是部署到IIS里的!!我在xbap里想挪用WCF,用的是TCP/IP协定,可是权限被沙箱锁了,有甚么举措能够完成挪用WCF服务!?xbap的部署是部署到IIS里的!!
赵拢关于XBAP的权限成绩,这个和AJAX一样,由于要包管功能成绩,因而运转在一个SecuritySandbox。办理办法也和AJAX一样,用服务器端作代办署理便可。
赵拢办理XBAP的砂箱限定的办法,就是利用服务器端作为代办署理来会见WCF服务。
张逸:批准老赵的概念。微软的手艺都是云云,使用复杂,深切则坚苦。由于微软的计划师们有一套化繁为简的本领。但如果要了解怎样化繁为简的,就必要你深切研讨了。
赵拢复杂的说,就是让您的XBAP程序哀求您本人的某个资本(好比某个HttpHandler或WCFservice),然后您的背景程序吸收到哀求后,再往哀求您的方针服务,然后您的背景程序把了局前往给XBAP。
3、网友发问:为何要用WCF,我初学,WCF有甚么优点?
赵拢WCF今朝已是微软散布式通讯的“现实尺度”(已有这个偏向了),关于这方面有需求的伴侣懂得一下WCF仍是很主要的。
张逸:复杂说,WCF就是将你提到的一切这些与服务相干、与散布式开辟相干的微软手艺集成在一同了。你用WCF能够办理之前必要多种手艺才干完成的成绩。
赵拢假如您的事情必要(也就是必要在.NET平台下利用散布式通讯),天然进修WCF是不贰的选择。
张逸:假如你不盘算开辟企业使用程序,而且不会碰着互操纵性的成绩,同时不思索可扩大性的请求,和办理企业体系之间信息孤岛的成绩,我以为天然不用进修WCF。反过去说,上述的这些场景恰是WCF的用武之地。
4、网友发问:弱弱地问:WCF程序编写起来简单吗?必要把握甚么样的基本?
张逸:编写WCF程序十分简单,假如你只是WCF的使用者,只必要把握一些WCF独有的attribute就能够了。
掌管人:能够举例申明吗?
张逸:比方、等。由于WCF的编程形式与传统的编程形式区分不年夜。这也是微软的一个良苦专心(也能够说是邪恶专心:-)),如许就下降了进修者的手艺门坎。
张逸:WCF的服务编程天然仍是基于Windows平台的。
赵拢固然,这是微软手艺的一向特性,利用复杂。可是假如要深切的话,仍是要投进很多精神的。.NET3.0中的部件是用于处置企业级需求的,因为营业各不不异,天真多变,因而WCF的初级部分一定也会引进相称的庞大度和天真度。
5、网友发问:WCF里的remoting的功能比.net2.0的remoting的功能好要良多吗?
张逸:不知老赵有无对功能举行过测试,坦率说,我没有对.NETRemoting和WCF举行功能的比对,这个成绩不克不及冒然回覆,呵呵!
赵拢我没有做过体系的功能测试,可是微软官方已经公布过一篇白皮书,暗示在一样(或相似)的协定下,WCF的功能广泛优于.NET之前的散布式通讯办理计划。我信任NetTcpBinding功能优于.netRemoting。
6、网友发问:能否举一个实际中的例子来讲明甚么样的需求,利用WCF办理更好?
赵拢关于“甚么样的需求,利用WCF办理更好”,感到不是很好回覆。
实在WCF实在也已渐渐成为.NET下散布式通讯的尺度手艺了。假如您有这方面需求天然必要进修。比方:对外开释WebService。体系使用服务器对交际互,体系中基于MSMQ的异步操纵,等等。
7、网友发问:能否给出编程中通用的事例Hello来举行解说?
张逸:实在,cool所说的例子,网上有良多。用WCF编写hello,很复杂:
usingSystem.ServiceModel;publicinterfaceIHello{voidSayHello(stringmsg);}publicclassHello:IHello{publicvoidSayHello(stringmsg){Console.WriteLine(msg);}}张逸:呵呵!上述例子中除几个Attribute以外,和一般编程没有太年夜区分。独一分歧的是,当我们开辟了这个服务以后,还必要Host。
8、网友发问:请两位先生复杂地说一下,您们以为WCF最年夜的上风在哪?
赵拢团体以为WCF的最年夜上风在于一致和简化了散布式手艺的使用。之前利用分歧的散布式手艺,写法天差地别。而如今,常常只必要举行Attribute标志,再加上设置就能够完成分歧手艺下的散布式通讯了。如许让程序员把更多精神能够放在营业相干的逻辑上,而不会拘泥于手艺完成自己。
9、网友发问:WCF最年夜的长处是否是就是在接口稳定的情形下,能够修正通讯体例?假如我临时没有如许的需求是否是能够先不思索利用WCF?换句话说,从remoting到WCF切换有甚么风险?
赵拢从Remoting到WCF切换的风险次要仍是在于工程上,而不是手艺上。一样平常说来,Remoting可以完成的功效WCF都可以胜任,可是此类“移植”的事情也有良多与手艺有关的成绩,好比泯灭的本钱,移植后所带来的风险等等。
张逸:假如仅范围于在局域网中的话,假如已用Remoting开辟了一个很不乱的体系,我其实不倡议轻率地将其晋级为WCF。
10、掌管人:使用WCF,分歧体系之间能够举行通讯,同时,层与层之间也能够基于WCF来举行通讯。关于UI层与BLL层之间的通讯,假如是基于WPF或WinForm的C/S架构,那末基于WCF长短常便利的,可是假如是B/S的架构,ASP.NET页面与营业逻辑层大概部署在统一个IIS中,之前能够间接基于API来挪用营业逻辑层,如今有没有需要也基于WCF来完成?
赵拢“散布式使用的第一条原则就是不散布式”,散布式通讯相对历程间通讯切实其实会带来较为分明的功能下降,像您说的情形,好比ASP.NET的Web层和营业逻辑,极可能就不该该利用WCF来通讯。现实上,假如用Java一脉的手艺来讲,之前EJB远程会见横行,可是如今的互联网使用几近都不太合用EJB了,而是利用Struct、Spring等轻量级框架,由于远程通讯价值很高。
张逸:选择某种手艺,起首要看其详细使用的场景和需求,而不是以为这门手艺好大概新就选用。关于B/S体系而言,假如需求没有请求其他体系接纳服务的体例挪用该B/S体系,那就没有需要接纳WCF手艺。最公道的体例是,在B/S体系中,专门计划一个服务层,表现所谓面向服务的特性,这个服务层中的服务绝对粒度较粗一点,并且应当是其他体系大概会挪用的。我们能够事前思索到这一层的计划。它其实不必定是B/S体系外部挪用,而是思索将来的扩大。
11、网友发问:我另有一个成绩,我以为WCF仍是没有一个分明的使用服务器。假如部署在iis的,那实在就是webservice了吧!不晓得WCF是不是会有一个真实的使用服务器,就仿佛com+和ejb的使用服务器那样,供应完全的组件办理,调剂,负载平衡等功效。
张逸:实在BizTalk就是很好的一个使用服务器。固然,我们也能够使用WCF开辟一个轻量级的使用服务器。网上有这方面的文章。赵拢旱比唬蚴虏荒芤桓哦郏杂谝恍┢笠涤τ茫蛘叽蠊婺5南低臣桑芸赡芤彩切枰褂WCF将营业逻辑举行开释。这也就是为何互联网使用多数不必要独自的使用服务器,而企业使用良多城市有自力的使用层。
12、网友发问:WCF程序如今的不乱水平怎样?能够年夜范围在企业开辟中使用吗?
张逸:今朝WCF已失掉充足的开展,不乱性方面完整可以合用于企业开辟。独一十全十美的是,关于Internet场景,使用HttpBinding传输的体例,在功能上还存在必定的范围性。
13、网友发问:WCF有哪些扩大点?好比我自界说transfersink,本人在传输链路中到场平安机制等?
赵拢WCF供应了很天真也很庞大的扩大。我没有了解您的意义,假如您只是说完成本人的平安机制,这个天然能够。可是假如您是指在TCP/IP协定级别(或相似的通讯级别)的扩大,那末很分明WCF就力所不及了。
4、网友发问:WCF撑持一个接口表露成RSET服务吗?
赵拢在.NET3.5中供应了WCFHTTPService,专为开释RESTful接口而计划。
张逸:今朝WCF撑持对绑定和举动的扩大。倡议你浏览一下MSDN中AaronSkonnard的文章,他关于这些内容已做了很好的先容。您能够看看这篇文章:http://msdn.microsoft.com/msdnmag/issues/07/12/ServiceStation/Default.aspx?loc=zh。别的,WCF3.5撑持REST服务。
15、网友发问:有人说WCF是Vista的构成部分,的确是如许吗?它们之间有甚么干系?
赵拢Vista包括了WCF,可是WCF是个能够自力于Vista的组件,比方您也能够在Server2003中安装利用。
16、网友发问:Ajax挪用WCF,会不会减轻服务器的接受才能?
赵拢WCF自己不会对服务器增年夜压力,带来压力的一样平常都是营业自己。也就是说,WCF很难成为功能瓶颈。不会由于AJAX挪用WCF而形成功能成绩。
17、网友发问:Remoting有一种工场体例的创立界限对象的办法利用还很普遍,WCF中仿佛没找到对应的体例。WCF里有Duplex动静互换形式,但仍是不克不及办理remoting客户端从一个复杂接口批量猎取一群界限对象的成绩,最少不克不及完整取代。
张逸:不分明您所指,是不是是说Remoting中接纳Marshal体例创立对象呢?
张逸:界限对象是说BoundObject?
网友发问:就是说能挪用远程办法的对象。就是说在服务端声明一个Marshalbyref的对象,然后用一个工场办法往猎取这个对象。固然这个工场办法也要表露为remoting接口,如许客户端就能够是用这个工场办法一下猎取很多多少远程对象来利用。
张逸:我以为WCF包括的三种实例形式,完整涵盖了已往Remoting的三种激活形式。
张逸:如今WCF关于客户真个加强,不单单表现在Deplex上,并且WCF对回调办法的强无力撑持,已增强了服务端与客户真个交互才能。
张逸:我分明了您的成绩了,这个成绩我之前在进修Remoting的时分,提出过。实践上,如今使用WCF的ChannelFactory就可以够完成这一方针。在《WCF服务编程》中也将其分为办理体例与编程体例两种。
18、网友发问:WCF怎样利用linqtosql完成企业级使用!?
赵拢LINQtoSQL和WCF实在没有一定接洽,一个是数据会见手艺,一个是散布式通讯手艺,能够随便搭配利用。固然,大概也有一点必要注重的中央,那就是LINQtoSQL的一些范例好比EntitySet,是不克不及被WCF序列化的,传输的时分转换成其他数据范例。
赵拢AJAX挪用WCF自己不会形成功能成绩,功能成绩常常是由程序开辟引发的。WCF和AJAX自己都是很地道的手艺,公道使用不会有任何成绩。
张逸:实在老赵说的对象序列化的成绩,也是今朝我对WCF不中意的中央。这增添了利用WCF的难度。
19、网友发问:WCF在成绩排查方面庞易吗?好比抓dump和抓收集包等,有很简单的调试及排查询题的计划吗?
赵拢WCF实在其实质就是一般的散布式通讯手艺,以往用于排查询题的手腕和工具都可使用。固然,一些WCF框架独有的体例偶然候也会呈现奇效,比方本人编写一个用于Debug的扩大“拔出”WCF的实行过程当中。
张逸:对您提出的成绩排查询题,实在与WCF自己手艺有关。不外有一点,散布式程序的测试自己对照坚苦一点,visualstudio2008针对WCF推出了一些小工具,能够在计划服务的时分,就可以够摹拟客户端对服务举行测试,但没有相似于Linux下dump之类关于收集传输和数据包之类的工具。
20、网友发问:我用x509考证,但比不必要慢好几秒,叨教怎样能够进步考证的较率!?
赵拢是每次挪用城市慢几秒吗?团体以为不该该如许,您碰到的是否是只是初始化时对照耗时的成绩呢?
张逸:您提出的成绩对照深切,关于平安的成绩,生怕存在功能和平安的衡量。如必要增强平安,对功能就不成制止会有影响。以是,《WCF服务编程》的作者倡议,先歹意地忖度最伤害的,然后依据详细场景慢慢下降对平安的请求。
21、网友发问:作为Java用户,WCF的呈现让我应当注重些甚么吗?
张逸:假如你是Java的开辟者,假如必要开辟与.NET程序交互的体系时,生怕就要进修WCF了。至于怎样进修,最好可以了解.NET的一些公用的与Java分歧的中央。实在外部的运转机制仍是很类似的,包含托管、使用程序域等等。最次要的是要了解SOA的特质。
赵拢作为Java用户,大概最体贴的就是和WCF的Inteop的成绩了。实在WCF完成了良多基于尺度的通讯协定。一样平常来讲不会呈现成绩。别的,WCF也已可以很好的撑持RESTfulAPI了,因而和各类手艺之间互操纵性上多数也就没有成绩了。由于RESTful利用了HTTP协定,这个协定早就被普遍采取了。
22、网友发问:WS-寻址,WS-牢靠性和WS-平安性。这三点不晓得未来会不会周全撑持WS-I标准?
张逸:您的成绩欠好回覆,不外WCF对WS-*的撑持相对是完整的,但有个成绩是这触及到很多好处相干者之间的博弈。
张逸:p2p在xp下是可以撑持的,但要指定好对等网名、独一的路径和端口。
赵拢P2P假如要在WCF中利用的话,还必要在WindowsXP上安装PNRP,您能够在互连网上搜刮一下相干内容。
张逸:xp应当是在sp1之上才能够的。
赵拢而假如您用XPSP2的话应当是能够的。
来自:http://www.ckuyun.com/wayfarer/archive/2008/03/25/1121378.html
有个问题想请教你一下,呵呵:)你觉得将来学什么方向比较好,我真是想不出来,知道的太少了,麻烦了。

只想知道 发表于 2015-1-18 19:10:20

ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码。

若相依 发表于 2015-1-23 05:18:53

ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。

冷月葬花魂 发表于 2015-1-31 14:23:27

有一丝可惜的是,这个系列太强了,Java阵营的朋友根本就是哑口无言...争论之火瞬间被浇灭,这不是我想这么早就看到的,但是值了。

柔情似水 发表于 2015-2-6 17:26:49

ASP是把代码交给VBScript解释器或Jscript解释器来解释,当然速度没有编译过的程序快了。

小魔女 发表于 2015-2-17 08:31:07

Asp.net:首先来说,Asp.net和Asp没什么关系,看着像是升级版本什么的,其实没什么联系。Asp是脚本编程,用的是ASP语言,而ASP.net用的是C#语言,完全不同的东西。

分手快乐 发表于 2015-2-24 01:54:36

ASP在执行的时候,是由IIS调用程序引擎,解释执行嵌在HTML中的ASP代码,最终将结果和原来的HTML一同送往客户端。

深爱那片海 发表于 2015-2-27 21:06:24

我的意思是.net好用,从功能上来说比JAVA强还是很明显的。

再现理想 发表于 2015-3-6 00:28:22

关于ASP.NET功能上,ASP.NET比微软以前的ASP(96年出现)有更强大的library,更好的稳定性。ASP.NET可以使用.NETFramework中所有组件(也就是说.NET能实现的,ASP.NET一样能实现)。

谁可相欹 发表于 2015-3-12 08:05:33

大哥拜托,Java在95年就出来了,微软垄断个妹啊,服务器市场微软完全是后后来者,当年都是Unix的市场,现在被WindowsServer和Linux抢下大片,包括数据库也一样。

简单生活 发表于 2015-3-15 05:29:14

以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。

蒙在股里 发表于 2015-3-17 20:27:05

我的意思是.net好用,从功能上来说比JAVA强还是很明显的。

若天明 发表于 2015-3-18 22:03:39

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

再见西城 发表于 2015-3-25 11:15:59

这也就是最近几年来随着各种新的后台技术的诞生,CGI应用在Internet上越来越少的原因。CGI方式不适合大访问量的应用。

飘灵儿 发表于 2015-3-27 09:11:05

有一丝可惜的是,这个系列太强了,Java阵营的朋友根本就是哑口无言...争论之火瞬间被浇灭,这不是我想这么早就看到的,但是值了。

仓酷云 发表于 2015-4-7 21:15:29

那么,ASP.Net有哪些改进呢?

海妖 发表于 2015-4-20 21:20:39

可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强ASP应用程序的功能。ASP.NET是一个已编译的、基于.NET的环境,可以用任何与.NET兼容的语言(包括VisualBasic.NET、C#和JScript.NET.)创作应用程序。另外,任何ASP.NET应用程序都可以使用整个.NETFramework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。

admin 发表于 2015-4-21 10:37:58

能产生和执行动态、交互式、高效率的站占服务器的应用程序。运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写。

变相怪杰 发表于 2015-5-1 01:12:30

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

小妖女 发表于 2015-6-22 18:09:22

ASP在执行的时候,是由IIS调用程序引擎,解释执行嵌在HTML中的ASP代码,最终将结果和原来的HTML一同送往客户端。
页: [1]
查看完整版本: ASP.NET网页设计“轻松把握WCF 帮你找到进门砖”访谈实录仓酷云