【问题标题】:ASP.NET MVC using Loosely-Coupled WCF Web Service使用松耦合 WCF Web 服务的 ASP.NET MVC
【发布时间】:2012-02-23 09:41:03
【问题描述】:

我之所以需要松耦合的 WCF,是因为 Entity Framework 是紧耦合的。当我说松耦合时,不需要实例化数据库上下文或添加 WCF 的服务引用。当开发人员需要更改服务器、IP 地址或服务 url 时,它只是依赖 web 配置或一些不需要编译的 .ini 文件。

相反,MVC(比如控制器)只会发送请求消息,然后从 WCF 服务获取响应数据。但是我们仍然不能没有基于数据库的模型(因为我们需要它在智能感知中用于视图标记),WCF 将在其中获取数据。假设我们已经有了这些数据库对象类,创建一些将 WCF 数据绑定到 MVC 模型的存储库。

我的意思是 WCF Web 服务,它只包含消息,不再传递对象引用,因为那是新的 SOA 定义。传递消息而不是传递对象更有意义。

这是更好的方法吗?在可扩展性和性能方面,我并不是要冒犯 Entity Framework Fans。

【问题讨论】:

    标签: c# asp.net-mvc wcf entity-framework


    【解决方案1】:

    根据只使用基本类型的消息模式来定义 WCF Web 服务是一种完全有效的方法,因此客户端无需了解 WCF 即可使用该服务。否则 WCF 将无法与其他平台(例如 Java)进行互操作。

    了解 WCF 是一个通用且强大的框架,用于通过各种传输协议实现通信。它可以同样有效地用于原始 XML 消息传递和对象编程。对象序列化和反序列化是框架的可选附加功能,而不是要求。 (实际上没有“传递对象引用”之类的东西 - 最终它是一个跨越通信通道的 XML 信息集。此外,实体框架不是 WCF 的一部分 - 它是一个独特的 ORM 框架,您可以将其与 WCF 一起使用如果你愿意,但这是你的选择。)

    就数据和运营合同而言,可扩展性和性能与服务设计完全正交。您应该随意采用最适合您的应用程序的任何方法来定义您的服务。如果那是 XML 消息,那很好 - 不要让任何人告诉你。

    【讨论】:

    • 谢谢克里斯,这就是我要说的,XML ;)
    猜你喜欢
    • 1970-01-01
    • 2018-11-19
    • 1970-01-01
    • 1970-01-01
    • 2020-09-13
    • 1970-01-01
    • 2010-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多