Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 在单用户环境中通过直接调用DLL绕过WCF_.net_Wcf_Architecture_Deployment_Remoting - Fatal编程技术网

.net 在单用户环境中通过直接调用DLL绕过WCF

.net 在单用户环境中通过直接调用DLL绕过WCF,.net,wcf,architecture,deployment,remoting,.net,Wcf,Architecture,Deployment,Remoting,我正在帮助一家公司提供一个软件包,该软件包将灵活地支持多种部署方案。这个包是用.NET编写的,有一个定义良好的BLL,并使用SQL Server作为数据库 该设计要求在数据访问和服务(BLL)与UI之间进行清晰的划分。此时至少有两个UI前端(WinForms和Web)。我们提出了一个WCF解决方案来运行BLL层,该层可以在健壮的应用服务器上运行。这条路径在这里得到了很好的标记和理解,涵盖了我们所需的部署场景之一 部署场景包括(无特定顺序): 具有1-n个应用服务器的大型多用户环境,所有应用服务器

我正在帮助一家公司提供一个软件包,该软件包将灵活地支持多种部署方案。这个包是用.NET编写的,有一个定义良好的BLL,并使用SQL Server作为数据库

该设计要求在数据访问和服务(BLL)与UI之间进行清晰的划分。此时至少有两个UI前端(WinForms和Web)。我们提出了一个WCF解决方案来运行BLL层,该层可以在健壮的应用服务器上运行。这条路径在这里得到了很好的标记和理解,涵盖了我们所需的部署场景之一

部署场景包括(无特定顺序):

  • 具有1-n个应用服务器的大型多用户环境,所有应用服务器都使用大小合适的专用SQL server

  • 多用户环境在每个个人的计算机上运行UI/BLL,所有用户都访问共享SQL server

  • 单用户环境,一台机器在其机箱(包括SQL server)上运行整个应用程序

  • 我关心的与其说是场景(1),不如说是场景(2)和场景(3)。如果部署是(2)或(3)类型,那么WCF在这一点上并没有真正为我们买任何东西,并且会影响性能。有人能建议一种设计应用程序的方法,以便在场景(1)中部署应用程序时,它使用在应用程序服务器上运行的BLL,但在(2)或(3)中,如果大部分(如果不是全部)堆栈都在一台机器上,则可以通过对BLL的更传统的调用绕过WCF吗

    BLL逻辑在所有场景之间保持不变。在(2)或(3)中,我希望将BLL DLL加载到内存中,直接调用它,而out必须通过WCF


    我真的很感谢社区对这方面的任何建议

    > P>可以考虑NULL传输绑定。在每种情况下都提供相同的语义,即使用WCF,但在情况(2)和(3)中没有开销。

    使用命名管道作为传输。它仍然会为序列化带来开销,但这相当小