AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

服务器端 WCF 开发计划不明,开发者表示遗憾

  • 2019-06-14
  • 本文字数:1885 字

    阅读完需:约 6 分钟

服务器端 WCF 开发计划不明,开发者表示遗憾

微软在与服务器端 WCF 相关的问题上仍然没有什么进展。在人们看来,服务器端 WCF 似乎已经是一项过时的技术。微软的一名员工表示,这需要点耐心,这与之前的声明并不矛盾。


虽然客户端 WCF 从一开始就可用,但多年来微软一直拒绝将WCF的服务器端移植到.NET Core。除了团队规模问题之外,从来没有人解释为什么没有将它们看成一个整体看待。源代码可以在Reference Source上找到,而且大多数绑定都是跨平台的。


注意,有一些安全选项和绑定只针对 Windows 的(例如命名管道、MSMQ),不过Windows Compatibility Pack已经为其他库解决了这些问题。


在 Scott Hunter 给出如下的描述后,引起了用户新一轮的抱怨:


在.NET Core 3.0 之后,我们将不再从.NET Framework 中移植任何功能。如果你是一个 Web Forms 开发人员,并且希望基于.NET Core 构建一个新的应用程序,我们将推荐使用 Blazor,它提供了最接近的编程模型。如果你是一个 Remoting 或 WCF Server 开发人员,并且希望基于.NET Core 构建一个新的应用程序,我们建议使用ASP.NET Core Web API 或 gRPC,它们提供基于跨平台和跨编程语言的 RPC。如果你是一个 Windows Workflow 开发人员,可以使用开源的 Workflow .NET Core 移植版本。


这让很多.NET 开发人员感到不安,他们一直认为 REST 不能替代 WCF。gRPC 也是一样,从 WCF 用户的角度来看,gRPC 只不过是一个忽略了 WCF 提供的其他功能的绑定。简单地说,它们都没有发挥抽象通信框架的作用,而这正是 WCF 的主要意图。(更不用说因为一些遗留问题和合约原因需要支持 WS-*/SOAP 了)。


GitHub 用户 dgxhubbard 写道:


Scott 的声明说了一件事:“使用 gRPC 愉快!”我希望做出这个决定的人也能使用 gRPC 来编写代码,并替换掉一些 WCF 服务器服务,看看这句话到底意味着什么。我们将不得不重写我们的服务来模拟 WCF,所以我们对.NET Core 3 和更高版本的采用将被搁置一段时间。


Chris Benard 表示赞同:


我表示赞同。我不认为 gRPC 会是一个很好的替代方案。WCF 最大的卖点之一是能够在服务器端和客户端之间共享 DLL,提供了丰富的服务契约模型和接口。在我看来,gRPC 依赖于代理生成。我们的一些服务会保存序列化对象的副本,以便稍后重用它们,我不知道 gRPC 将如何实现这些。

我真的不想再手动使用 NetDataContractSerializer,然后把字节强制放到 gRPC 管道或其他什么东西上(.NET Core 中有 NetDataContractSerializer 吗?我希望或者假设是不存的,但 DataContractSerializer 存在)。

合约对我来说不是什么大事,它是具有相同 DLL 的服务器/客户端之间的模型共享。

此外,还有需要在单个 ServiceHost 上提供多个端点的能力。我们可以在一个端点上具有 TransportSecurity,在另一个端点上具有 MessageSecurity。我们用它来更新端点上的安全性,但 gRPC 似乎都不支持这些。

更不用说我们的用户必须一个接一个地打开出向端口,而且我们不能只使用 gRPC 将同一个端口迁移到集群。

这一切都意味着.NET Core 在很长一段时间内都无法在服务器端使用。感谢上帝,我从未在客户端使用过 WS-Security 或其他任何东西,所以我没有掉进这个坑。但是,我必须重新定义 netstandard2.0 共享的服务器端 DLL,然后尝试了解核心 WCF 客户端和 WCF 服务器之间的工作原理。

这真是一个噩梦,我几乎失去了整个框架。

gRPC 甚至不支持用于本地跨进程远程的命名管道,而这在 WCF 中我认为是理所当然的事情…


微软的 Matt Connew 发表了几条评论,暗示了 WCF 用户的未来之路:


Scott 的这句话并不是在讨论 WCF 代码库,因为 WCF 现在与.NET 是分开的,它更像是一个外部库,而不是框架的一部分。虽然目前我还不能对服务器端 WCF 做任何特别的说明,但是将更多的 WCF 特性移植到服务器的可能性还是有的,我们确实希望支持更多的场景。


Matt 最近重申:


我保证,在 Build 大会之后,会有大量的意见被听取,请再耐心一点。大型企业的轮子有时可能又大又重,需要很大的力气才能转动它们,而且可能会移动得很慢。Scott Hunter 在 Build 大会上布有一些东西正在开发中,而且确实如此。


然而,微软的 Stephen Bonikowsky 似乎提出了反驳观点:


在 WCF 服务器端方面,并没有计划将其包含在代码库中。不过,人们对服务器端非常感兴趣,你可以关注 #2695 中正在进行的讨论,特别是 @mconnew 最近在那里发表的评论。


这可能意味着这是一个从服务器端 WCF 单独代码库到整体的重新设计,就像我们在使用 Entity Framework 替换 LINQ-to-SQL 时看到的那样。现在还说不清楚,而且微软还没有准备好公布他们的计划。


查看英文原文Unclear Plans for Server-Side WCF Continues to Frustrate .NET Developers


2019-06-14 08:009207
用户头像

发布了 731 篇内容, 共 469.4 次阅读, 收获喜欢 2007 次。

关注

评论

发布
暂无评论
发现更多内容

macbook防睡眠工具:Caffeinated for mac一键激活版

Rose

Caffeinated下载 Caffeinated破解版 防睡眠工具

助力高效工作!Finder增强工具 TotalFinder for Mac中文版 含注册码

Rose

空间焕新的朱格拉周期,华为全屋智能进化正当时

脑极体

智能家居

iNet Network Scanner:全面而深入的网络分析工具

Rose

AI Transcription for Mac(AI语音转录软件) 支持M1/M2

Rose

数据集成之环境变量 v0.7.2

LIEN

开源 数据集成 业务融合 API对接 mydata

抓住大机遇,共筑新一代数智基础设施和解决方案竞争力

新消费日报

简单上云第一步!华为云耀云服务器L实例亮相华为云开年采购季

轶天下事

文心一言 VS 讯飞星火 VS chatgpt (216)-- 算法导论16.2 3题

福大大架构师每日一题

福大大架构师每日一题

Topaz Gigapixel AI 7.0.4完美激活版 及Topaz Gigapixel AI 7全新功能介绍

Rose

GraphPad Prism 10激活授权秘钥:高效且易于使用的科学研究绘图分析软件

Rose

Blu-ray Player Pro mac v3.3.22中文版 蓝光播放器 兼容m

Rose

电源常用电路:采样电路

芯动大师

驱动 ADC采样 电源

Topaz Photo AI 人工智能降噪 v2.4.1完美激活版 mac/win

Rose

揭秘 Bug 报告的终极技巧——如何写一个好的bug报告?

Chris Zhang

bug bug管理 bug定位 bug报告

《代码整洁之道》PDF

程序员李木子

网络安全知识点总结

知孤云出岫

网络安全

2024年阿里Java岗面试必问,2024Java面经

阿里、莫言

Java java面试 金三银四

WebStorm 2023.3.5 for Mac中文版 (WebStorm 2023永久激活秘钥最新)

Rose

Golang高效流控实践

俞凡

golang

NFTScan 正式上线 Blast NFTScan 浏览器和 NFT API 数据服务

NFT Research

NFT\ NFTScan

敢闯技术无人区 TCL实业斩获多项AWE 2024艾普兰奖

极客天地

CAD如何与EXCEL数据关联

极客天地

PD19虚拟机破解版安装教程及pd19永久密钥

Rose

Github每日热榜2024.03.16

天马行空的大杂烩

GitHub 程序员 码农 开源软件

可用于GPT4.0续费,海淘使用教程

蓉蓉

GPT-4 ChatGPT4 Claude

2024-03-16:用go语言,给你一个正整数数组 nums, 每一次操作中,你可以从 nums 中选择 任意 一个数并将它减小到 恰好 一半。 (注意,在后续操作中你可以对减半过的数继续执行操作)

福大大架构师每日一题

福大大架构师每日一题

服务器端 WCF 开发计划不明,开发者表示遗憾_语言 & 开发_Jonathan Allen_InfoQ精选文章