gen*_*ser 5 wcf wcf-data-services odata
是否可以将oData与WCF服务应用程序一起使用但不能使用WCF数据服务?
如果有人能够更多地了解oData,那将会很棒.我已经在这个主题上做了一些谷歌搜索,但每当我搜索"wcf odata"时,我都会获得有关WCF数据服务的信息.
任何帮助/链接将不胜感激.
mar*_*c_s 12
WCF数据服务是一般OData协议的Microsoft实现.因此,只有WCF数据服务/支持/实施的OData -一个"正常"的WCF服务确实不(可以不).
您可能需要详细说明为什么您认为需要或敦促使用OData但不使用WCF数据服务.你对这个设置有什么问题?为什么要仅使用"普通"WCF服务?
更新:好的,所以你想拥有以不同的方式和不同的方法公开数据的服务.您可以做的是创建一个定义的WCF服务,该服务既暴露SOAP端点又暴露webHttpBindingREST端点.这将工作 - 但它是一个"常规"WCF服务,其方法采用参数并返回一些数据结构.这不是 WCF数据服务(OData).
OData更像是"这里是我的数据集合,你可以在其中浏览"这种方法 - 它更多的是使用REST 将整个数据模型暴露给外部世界.这不会与SOAP混合和匹配 - 这是更多面向过程的,例如LoadCustomer,SaveInvoice等等.
因此,虽然绝对有可能让面向过程的WCF服务同时暴露SOAP和REST端点,但我真的不知道如何为WCF数据服务混合和匹配"公开此资源"方法/ OData与SOAP绑定 - 我相信这不起作用.
因此,如果必须公开WCF数据服务(OData)的数据模型,则需要为SOAP客户端创建第二个非常不同的常规WCF服务,这些服务最终可能基于相同的数据(访问相同的数据)例如,数据库),但它的"面孔"看起来会完全不同.
微软有一个名为WCF WebApi(NuGet Package)的新(ish)项目,它简化了RESTful WCF.它真的需要关注REST的"表示"部分,以便您可以基于内容协商(或任选的任何约定)以多种方式(JSON,XML,oData,PNG等)公开您的数据.服务合同运作.目前已融入框架的是通过简单地返回集合来支持oData GET查询的能力.AsQueryable().
虽然这不是纯粹的WCF/oData解决方案,但正如您所说的那样,我想我会提及该项目,以防它符合您的具体要求.目前的Go-Live许可证可能会令人望而却步,因为此代码的"预览"状态可能会如此; 但如果没有,这可能是一个解决方案.
*UPDATE*这个项目已经进入ASP.NET(通常与ASP.NET MVC一起使用),不再属于WCF团队.新产品称为ASP.NET WebAPI.
| 归档时间: |
|
| 查看次数: |
5384 次 |
| 最近记录: |