Data+AI时代,如何打造下一代数智平台? 了解详情
写点什么

服务器端 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:009192
用户头像

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

关注

评论

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

53w字!阿里首推系统性能优化指南太香了,堪称性能优化最优解

爱好编程进阶

Java 面试 后端开发

LLVM之父Chris Lattner:编译器的黄金时代

OneFlow

编程语言 编译器 LLVM 加速器 MLIR

2021最新最全Java基础高频面试题汇总(1W字详细解析)

爱好编程进阶

Java 面试 后端开发

36天突击腾讯终拿Offer! Redis、高并发

爱好编程进阶

Java 面试 后端开发

Ceph实战(一)-分布式存储介绍与原理架构概述

爱好编程进阶

Java 面试 后端开发

如何选择合适的 Neo4j 版本(2022)

亮小猪

neo4j 图数据库 图算法

二进制文件版本控制工具选择难?看完这篇你会找到答案

龙智—DevSecOps解决方案

perforce Helix Core

龙智被评估为CMMI [3] 级

龙智—DevSecOps解决方案

CMMI 龙智

Docker:第七章:Docker搭建私服-本地镜像库

爱好编程进阶

Java 面试 后端开发

企业官网有啥用?一定要搭建官方网站吗?

源字节1号

微信小程序 网站开发

用数字“钥匙”打开发展新空间

CECBC

阿里云云效研发协同服务相关协议条款 |云效

阿里云云效

云计算 阿里云 运维 研发 研发协同

解锁OpenHarmony技术日!年度盛会,即将揭幕!

OpenHarmony开发者

OpenHarmony 技术日

Docker镜像超详细介绍

爱好编程进阶

Java 面试 后端开发

Filter 过滤器和 Listener 监听器

爱好编程进阶

Java 面试 后端开发

2022年4月中国数据库排行榜:春风拂面春意暖,分数回升四月天

墨天轮

数据库 opengauss 国产数据库 KingBase gbase8a

“如何实现集中管理、灵活高效的CI/CD”在线研讨会精彩内容分享

龙智—DevSecOps解决方案

CI/CD CloudBees

IDEA中Maven依赖下载失败解决方案

爱好编程进阶

Java 面试 后端开发

如何以Sonar为例创建一个适用与所有企业的测试步骤

阿里云云效

阿里云 运维 测试 sonar 研发测试

一级等保怎么做?要收费吗?等保要求是什么?

行云管家

网络安全 等保 等保2.0 一级等保

游戏+NFT,脱虚向实外的另一可行场景

CECBC

研讨会回放视频:如何提升Jenkins能力,使其成为真正的DevOps平台

龙智—DevSecOps解决方案

CI/CD CloudBees

2020年4面美团(多线程+redis

爱好编程进阶

Java 面试 后端开发

Alibaba内部流行的“Java突击宝典”

爱好编程进阶

Java 面试 后端开发

海口等保测评公司有几家?具体在哪里?哪里可以查到?

行云管家

网络安全 等保 等保测评 海南 海口

数据仓库架构演变和建设思路

五分钟学大数据

数据仓库 4月月更

区块链+数字资产,未来财富的新起点

CECBC

索信达获金融街资本1亿元投资

索信达控股

最佳实践 | 通过使用 Jira Service Management 改进 HR 工作流程

龙智—DevSecOps解决方案

Atlassian jsm

一文了解全面静态代码分析

龙智—DevSecOps解决方案

perforce Helix QAC

2021金九银十最新338道大厂Java架构面试高频题目+答案详解

爱好编程进阶

Java 面试 后端开发

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