使用松散耦合WCF Web服务的ASP.NET MVC

本文关键字:服务 ASP NET MVC Web WCF 耦合 | 更新日期: 2023-09-27 18:25:28

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

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

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

这是更好的方法吗?就可扩展性和性能而言,我无意冒犯实体框架爱好者。

使用松散耦合WCF Web服务的ASP.NET MVC

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

了解WCF是一个通用且强大的框架,用于通过各种传输协议实现通信。它可以同样有效地用于原始XML消息传递和对象编程。对象序列化和去序列化是框架的一个可选的额外部分,而不是要求。(实际上没有"传递对象引用"这回事-最终它是一个在通信通道中传播的XML信息集。此外,实体框架不是WCF的一部分-它是一种独特的ORM框架,如果你愿意,可以与WCF一起使用,但这是你的选择。)

在数据和操作合同方面,可扩展性和性能与服务的设计完全正交。您应该可以随意采用任何最适合您的应用程序的方法来定义您的服务。如果这是XML消息,那没关系——不要让任何人告诉你其他情况。