gpt4 book ai didi

c# - 使用松耦合 WCF Web 服务的 ASP.NET MVC

转载 作者:行者123 更新时间:2023-11-30 12:50:19 25 4
gpt4 key购买 nike

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

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

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

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

最佳答案

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

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

可扩展性和性能与数据和操作契约(Contract)方面的服务设计完全正交。您应该随意采用最适合您的应用程序的任何方法来定义您的服务。如果那是 XML 消息,那很好 - 不要让任何人告诉您其他信息。

关于c# - 使用松耦合 WCF Web 服务的 ASP.NET MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9410464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com