科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件移植到ADO.NET的最佳时机

移植到ADO.NET的最佳时机

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在分布式系统中,数据层通常是人们注意最少的地方。事实上,在设计和实施阶段,大部分注意力都转向了看似较大的问题......

作者:佚名 来源:Microsoft 2007年11月5日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
通过三步完成移植

  为将现有系统移植到.NET,至少要在一台服务器上安装.NET运行时。然后就开始修改原始中间层对象。你可强迫它们调用运行在独立服务器(此服务器应安装了.NET)上的新网页和组件。

图 1.现有系统通过Web服务接口与新的.NET系统通讯

  用户将继续调用ASP网页,而这些网页将继续调用相同的中间层对象。然而,这些对象能打开通向后端.NET系统的新通道。COM(+)与.NET对象如何通信呢?通过Web服务接口。为了调用Web服务,你只需知道它的编程接口(现在被称为Web服务描述语言),并能立即处理返回的XML字符串。下面的脚本代码利用MSXML 3.0从ASP网页或COM对象中调用一个Web服务的方法。

Set srvXmlHttp = CreateObject("MSXML2.ServerXMLHTTP")
Set xmlResult = CreateObject("MSXML2.DomDocument")
srvXmlHttp.Open "GET",
"http://myserver/myapp/webservice.asmx/Method",
false
srvXmlHttp.Send ""
Set xmlResult = srvXmlHttp.responseXML

  xmlResult 对象得到服务返回的带有数据的XMLDOM文档。

  另一个可选的方法涉及到所谓的COM 可调用封装器(CCW)引挚,它运行在通用语言运行时(CLR)中,并将.NET类接口轮换为与COM兼容的接口。换句话说,CCW将.NET类转换到COM对象中,这样任何现有的COM客户端就可以对它进行调用。

  中、长期移植的第二步如下所示:

图 2. 表示层和数据层现在从中间层分离出来了

  现在你就可以利用灵活的表示层了,表示层能够调用ASP和ASPX网页。你不需要做多聪明的事,只要知道.NET子系统暴露了什么样的功能,而COM(+)组件又仍要发挥什么样的作用。

  在后端,数据提供者没有发生变化。你在非管理代码中使用OLE DB,新的管理提供者来自于.NET方案。

  最后,移植过程的第三个阶段要求你将两个中间层的功能合并为一个企业层。尽管这样做,你必须重新考虑所有企业逻辑和数据访问策略的实现。在发生这种情况后,移植过程就完成了。总结如何这样做并不容易。这个过程,如果不全是,大部分依赖你所工作的特定结构和上下文。

  在.NET讲ADO?

  移植的最大好处是你可以组建、优化你的.NET技巧。

  在.NET应用程序中使用ADO对象当然也是可行的,你可以用运行时可调用的封装器(RCW)--CCW的COM-.NET对应物--将ADO COM对象导入到任何.NET应用程序中,这样做后,你就能通过内置的ADO接口操纵ADO记录集,命令和指针。

  这允许你重用拥有的代码,但这也可能引入令人不快的副面效应。它已经过时,效率低,功能弱,不能使你利用ADO .NET固有的更加可扩展、可交互操作的结构。换句话说,只是因为你做到的是对你没有多大意义的事。

  因此,对于本节的问题,在.NET领域中你应当讲ADO吗?不,除非特别必要。在下期中,我将专门探讨这个主题。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章