.net - 简单的轻量级服务层

标签 .net wcf web-services asp.net-web-api service-layer

我需要在本地将一些逻辑公开为服务......

逻辑发送/接收的对象非常大,信息敏感,逻辑永远不需要暴露在外部,它仅在本地服务器上使用。

一些 MVC 开发人员认为应该使用 WEB Api 服务来公开它 - 值得实现这个吗?

他们的论点是,使用 Web API,它可以更好地集成到 MVC 中,并使显示结果变得更加容易(我对这方面一无所知),我担心我们将不得不实现复杂的授权并牺牲性能。

有没有更好的适合这种场景的轻量级服务层? WCF 命名管道对我来说似乎很合乎逻辑,或者只是将其作为类库引用 - 是的,配置文件很痛苦,但不是世界末日。基本上我们只是想在本地提供一些逻辑。

最佳答案

Web API 是 Microsoft 迄今为止最佳高级 HTTP 实现。因此,它前所未有地支持 HTTP,并提供了许多在普通 MVC 下不可能实现的灵 active 。

内容协商等功能对于任何服务(无论是内部还是外部)都非常重要。

但是,我还发现 WCF 提供了更好的内聚性,因为它是一个纯 RPC 框架。但它的重量绝对不轻。我有一个博客here其中讨论了这个问题并做了一些比较(无耻插件!)。

如果您只关心在私有(private)环境中调用方法,WCF 就可以。但请记住,命名管道/TCP 在某些防火墙条件下可能无法工作。

使用 Web API 会失去的另一件事是契约(Contract)。 Web API 领域中没有 WSDL - 这可能是好是坏,具体取决于您如何看待它。如果您的公司对服务契约(Contract)非常严格,WCF 是更好的选择。

关于.net - 简单的轻量级服务层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10139726/

相关文章:

c# - 'using' 指令应该在命名空间内部还是外部?

c# - 批量插入最好的办法是什么? + 帮助我完全理解我目前的发现

java - Java 中存在哪些工具相当于 .NET 的 svcutil.exe?

wcf - 我可以在没有证书存储且不使用 netsh http add sslcert 的情况下在 WCF 中自行托管 HTTPS 服务吗?

json - WCF 无法反序列化 JSON 请求

c - Windows : Connect TI-Launchpad to Amazon Web Services

.net - 使用反射获取类型的静态字段值

java - 在jax-ws中配置访问Wsdl的Endpoint地址

asp.net - 通过 HTTPS 和 HTTP 访问时 WCF 服务不工作

.net - 如何使用生成器遍历树结构?