Epo*_*iam 6 c# wcf distributed
多年来,我一直在使用.NET开发n层应用程序.但我仍然不知道如何将层/层(dll)分发给其他服务器.
假设我有一个包含4个项目的MVC Web应用程序,即MVC(UI),业务,服务和数据.如果所有类库dll都在一个服务器中,一切正常.
如果我想通过将服务层(dll)和数据层(dll)分发到其他2台服务器来扩展应用程序,我应该将类库转换为WCF服务库项目(使用TCP或管道作为通信协议以获得更好的性能) ?或者我应该使用其他技术,如.NET远程处理或Web API?
这会是很多工作吗?
这是创建多层应用程序的目的之一吗?
谢谢.
更新:
您是否有任何链接(来自Microsoft)详细解释如何通过分发DLL将n层架构应用程序扩展到多个服务器?
如果我想通过将服务层(dll)和数据层(dll)分发到其他2个服务器来扩展应用程序,我应该将类库转换为WCF服务库项目(使用TCP或管道作为通信协议以获得更好的性能) ?
是的,由于它们位于不同的计算机上,因此您需要某种超越简单 DLL 调用的通信机制。
或者我应该使用其他技术,例如 .NET 远程处理或 Web API?
您选择哪种方法取决于许多因素,例如复杂性、性能......有很多选择,例如
显然,远程调用也会变慢,对性能等产生潜在影响。
工作量会很大吗?
这将是更多的工作,在我看来,“更多的工作”确实应该是合理的。使您的架构尽可能简单或更好,仅根据实际需要复杂程度。
另一种方法可能是拥有一些部署管道,将整个应用程序部署在不同的服务器实例上,并具有一些智能负载平衡策略。在这种情况下,您唯一需要注意的是在实例之间正确共享会话(无状态会更好;))。