|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
C#是不行的,比如说美国的航天飞船里就有java开发的程序以上是我的愚见,其实不管那种语言,你学好了,都能找到好的工作,坦率地说,VisualStudio默许天生的WCF客户端有成绩。它不克不及间接婚配服务器端接口代码,这招致了很多代码和数据共享成绩,并且经由了这么多年,天生的代码仍旧有一个分明的Bug。在题为《更智能的WCF服务客户端》的系列文章中,MichaelTaylor会商了这些成绩和他为办理这些成绩所做的勉力。
关于WCF客户端代办署理,一个尽人皆知的成绩是,只要在服务器真正运转的时分才干天生。关于很多团队来讲,这使得在构建时更新服务援用即便大概也十分坚苦。但是,团队不能不依托影象将变更关照对方,并依据必要手动更新服务援用。Michael持续写道:用于天生援用的URL存储在天生的代码中(.svcmap)。假如援用被更新,就会利用原始URL。而假如原始URL过期了大概援用了开辟职员的呆板,这就会发生成绩。更糟的是,即便没有变动实践的代码,为了从头天生援用而变动URL也会招致一切的文件产生变更。 在利用服务援用款式的WCF客户端时,一个罕见毛病是利用“using”块。固然罕见,但这类做法其实不符合,由于当挪用Dispose时,WCF客户端大概会抛出非常。这就是所谓的“WCFDispose成绩”,而变通做法良多。
Michael还枚举了别的成绩,包含:
- 固然WCF利用接口来埋没完成细节,但天生的代码实践上包括了一个分歧的接口,而这个接口刚巧共享了不异的名字。该接口在服务援用代码中界说。这使得跨项目利用原始接口加倍坚苦。
- 更糟的是,部分办法署名大概会变更。好比,列举和汇合会默许转换成数组。乃至参数都能够挪动。
- 在VisualStudio中,开辟职员可使用“查找一切援用(FindAllReferences)”来找出对一切范例和成员的援用。但假如利用服务援用,那末FAR就没法检测到它们,这仍是由于服务援用天生了新接口。
- 别的,任何已订立的数据左券都能够修正,包含不属于原始对象的属性。假如任何代码利用了这些属性,而如今正在利用WCF供应的基本举措措施,那末这会使单位测试更坚苦。
- 由一个项目标服务援用天生的数据别想在别的任何项目中共享(即便是不异的服务)。关于编译器而言,不论名字怎样,范例是分歧的。
- WCF利用接口的全体缘故原由是笼统,但因为服务援用的事情机制,没有复杂的办法能够笼统服务的实践用法。
Michaels起首供应了ClientBase<T>的一个子类,该类准确完成了IDisposable形式。他写道:关于包装器,另有一点值得注重,那就是它完成了IDisposable。ClientBase<T>已完成了这个接口,为何我们还要完成它?由于基范例没有依照准确的办法完成这个接口。完成该接口的类应当供应一个可重写的办法供派生类完成,但该类没有如许做。为了修复清算代码,我们不能不从头完成该接口和详细的办法。不外,我们会准确地完成它,不论是在派生范例方面,仍是在妨碍通道处置方面。 在其系列文章的第三部分,Michael谈了怎样削减使单个服务挪用自成一行所需的榜样文件。好比:
ServiceClientFactory.InvokeMethod<ServiceReference1.IEmployeeService>(c=>c.Update(dlg.Employee));
你希望java的IDE整合。这个是没有必要的,重要的是你理解java有多深以及怎么组织你的代码,即使没有IDE,代码照样能够编译运行的。 |
|