我正在研究大型企业系统架构。需要有多个移动客户端,Web UI和外部应用程序的API。因此,很明显我们应该实现面向服务的体系结构。我们将使用WCF作为服务层,使用ASP.Net MVC作为Web应用程序的框架。
我想知道如何在Web应用程序和服务层之间实现交互。对于大多数情况,它们将托管在同一台服务器上。只有大客户才能为服务层和Web应用程序使用单独的服务器。从性能的角度来看,使用http绑定在Web和服务层之间进行交互看起来非常糟糕。是否可以在没有通信开销的情况下使用托管在同一服务器上(甚至在同一个.Net进程内)的WCF作为MVC应用程序?
答案 0 :(得分:1)
您可以尝试被认为最安全的interprocess communication binding(不接受来自其他计算机的调用)以及WCF支持的最快(比TCP更轻)的绑定。
答案 1 :(得分:1)
如果您正在与WCF通信,则始终会有开销。所以我认为一个更合适的问题是这个开销是否可以处理,或者你是否需要以其他方式缓解它。
如果您的WCF服务正在为移动客户端执行逻辑和/或为数据层提供接口以及为外部应用程序提供API调用,则不能将该逻辑移动到服务使用的公共API,如果运行您组织内部的应用程序(即Web应用程序)可以使用相同的API层来避免服务?这可能是我接近它的方式。还有一层,但是WCF可以使用该层来公开,或者直接由ASP.NET应用程序(或任何有权访问资源的.NET应用程序)使用。