2011-09-07 33 views
1

每当我们创建.NET应用程序时,我们都会考虑像数据访问层(DAL)或业务层(BL)这样的几种体系结构。 在这些层中,我们通常编写与数据库交互的代码。 因此,要与这些层中编写的这些方法进行交互,我们有几个选项。这里我关注的是项目参考和服务参考。.NET中项目引用和服务引用的区别

第一个是 - 右键单击​​项目< <在项目选项卡添加引用< <选择项目 第二个是 - 创建ASMX/WCF服务主机他们的项目。右键点击项目< <添加 服务参考< <选择需要的服务进行交互。

这些选项在性能或任何其他参数方面有什么不同?

回答

1

就性能而言,差异取决于,但作为一般规则,如果服务和直接项目引用在同等可比的系统上执行完全相同的计算,则项目引用将导致性能下降较少。

你不是真的在苹果比较苹果,在这里。

项目的引用会导致Visual Studio编译引用的项目,并将输出(通常为.dll)包含在主项目中。这意味着有一个编译过程(无论如何是字节码)与你的应用程序一起工作。引用一个项目与直接引用一个.dll或com组件类似,因为你最终会引用一个生活在你的应用程序中的代码。发生的任何处理都与您的代码在同一台机器上发生。

服务导致Visual Studio来生成通过网络调用该服务的代理客户端类的引用(通过HTTP,TCP,或其他有效的方法,根据服务的配置方式。)的服务可能存在于您的机器上,或者它可能位于全球一半的服务器上。服务内完成的处理正在该机器上完成。

我之前说过,如果项目引用比服务引用性能更好,如果它们执行完全相同的计算,则服务执行计算并具有建立网络连接的开销,处理网络交通等

当然其他因素可能会影响性能。该服务可能托管在性能问题旧的过时机器上,在这种情况下,服务方案的性能会更差。另一方面,如果您的程序在低速PC上运行,但SERVICE运行在超级服务器上,则处理速度更快的服务器可能会超过网络流量的性能。

顺便提一句,服务的使用(您在添加服务引用时得到的)是SOA(面向服务的体系结构)的宗旨。 Wikipedia上涵盖了基本的描述,优点和用途:http://en.wikipedia.org/wiki/Service-oriented_architecture。这是一个很好的起点。如果您需要了解更多信息,您可以查看Web服务(SOAP和REST变种 - Visual Studio很好地处理SOAP Web服务),然后查看WCF,这是微软在SOA领域推出的新产品。

相关问题