【发布时间】:2020-08-08 21:49:30
【问题描述】:
我的情况是 - 我正在开发一个系统,帮助汽车服务与客户沟通,反之亦然。将有两种产品——一个用 Xamarin.Forms 编写的移动应用程序和一个用 ASP.Net 编写的网页——它们或多或少都在做同样的事情,这是一种替代方案。该数据库将托管在 SQL Server 上。现在我对“中间”层感到困惑。我已经阅读了很多关于 WCF 和 WebAPI 的内容,但我仍然不知道哪个更适合我。对这种情况有什么建议吗?
【问题讨论】:
-
通常哪个更好问题作为基于意见或寻求建议而结束。所以我只能给你一个意见。我建议选择较晚的(WebAPI)和Net.Core,因为它们现在支持更多,但是有很多因素需要评估。 ISP 支持?熟悉框架?时间限制?对不起,但你可以看到为什么这些问题是题外话。答案不可避免地是不精确的,它们的用处会随着时间的推移而消失
-
我强烈强烈建议不要将 WCF 用于任何新项目。 WCF 已过时。 WCF 是围绕 SOAP、XML 和 WS-* 系列的“Enterprise-y”Web 服务标准构建的,这些标准在今天几乎无关紧要(SAML 在某种程度上仍然存在......)。 WCF 仅通过适配器层支持 RESTful-esque 服务和 JSON,这很难配置(服务合同、行为、端点,都在 web.config 中配置,具有冗余和重叠问题)。
-
所有声称的 WCF 内置自动生成客户端代码的“好处”都适用于使用 Swagger 的 RESTful Web 服务 - 自 2008 年以来,WCF 客户端生成代码基本保持不变 -
svcutil程序甚至不支持 2010 年后的 TAP(基于Task的异步模式),取而代之的是 it generates legacyiAsyncResultor Event-based asynchronous code,它与现代开发平台不兼容,只是 .NET 中的陈旧和 alien核心。 -
简而言之:不要将 WCF 用于新项目!(我之所以大喊大叫,是因为看到有人没有做最少的研究来看到 WCF完全死了和过时了)。只需在 Google 上搜索“wcf obsolete”,就可以看到过去 8 年中数百篇博客文章庆祝 WCF 无关紧要的事实(因为 ASP.NET Web API 是在 2012 年左右发布的)。
-
@Dai 我所做的不仅仅是“最少的研究”,而且我没有注意到它已经死了。无论如何,谢谢你的意见。
标签: c# asp.net wcf xamarin webapi