CoreWCF 1.0.0 发布,微软正式支持WCF
2022年4月28日,我们达到了一个重要的里程碑,并发布了CoreWCF的1.0.0版本。对Matt Connew (微软WCF团队成员)来说,这是5年前即 2017年1月开始的漫长旅程的结束。Matt Connew 用3 周的时间来构建一个基于 .NET Core 的 WCF 服务实现的POC 基本原型。在3周结束时,Matt Connew 有了一个可以工作的玩具,可以使用BasicHttpBinding托管服务。然后,Matt Connew 的原型作为概念证明坐在那里收集灰尘,同时决定如何处理它。.NET团队在2019年的Build 大会上 已经决定了不在继续在.NET Core中支持WCF,这也是微软官宣的事情,我想大家都记忆尤新,没有资源将这个玩具开发为具有与 WCF 功能奇偶校验的完整产品,但是有许多客户 无法在不对其WCF服务进行完全重写的情况下迁移到 .NET Core。 Matt Connew最终决定 将花一些时间打磨一下的原型实现,包括添加NetTcp支持,并将代码捐赠给开源社区,托管到.NET基金会,看看这是否社区将围绕它构建的东西,以便在Microsoft之外生存下去。
Matt Connew 个人对 WCF 充满热情,因为它以有趣且通常很复杂的方式解决了许多难题,并且Matt Connew 喜欢解决有趣而复杂的问题。有人问Matt Connew 是否想亲自拥有这个项目。起初Matt Connew 很犹豫,因为Matt Connew 担心将会是自己亲自承诺移植大部分代码库。2019年6月7日 Matt Connew将Core WCF的初始代码提交到了Github https://github.com/corewcf/corewcf, 在项目开始公开开发后不久,来自 Amazon AWS 的 Biroj Nayak 联系了Matt Connew,询问他们如何帮助为 Core WCF 做出贡献。AWS 有自己的客户询问可以做些什么来将其 WCF 服务移植到云中。这开始了微软与亚马逊的多年合作,AWS将一些非常大且重要的功能从WCF移植到Core WCF。在 ASP.NET Core之上重建通道层需要对大部分代码库进行重大重构,并且某些功能涉及大量需要提交在一个大块代码中。Biroj 承担了长达数月的任务,将一些较大的缺失功能移植到 CoreWCF。
随后,我们开始从社区获得一些较小的贡献。添加对未包含的狭窄方案的支持,或修复新代码无法处理的边缘情况。随着时间的流逝,社区贡献的规模和数量逐渐不断增加。我们已经看到越来越多的公司贡献了开发人员资源来移植重要功能。Matt Connew对成为唯一一个致力于将WCF移植到.NET Core的人的担忧已经完全消除。我们最近达到了一个里程碑,即Matt Connew 向核心 WCF 存储库贡献的提交不到一半,有一个Core WCF社区来推动WCF的演进。Matt Connew现在将大部分时间用于 Core WCF,用于审查其他人的代码,并承担更多的架构师角色,以使其他人能够做出贡献。我们要向所有为这个项目做出贡献的人表示衷心的感谢,以使其取得成功。
1.0 版本 标签代表什么意义?
除了命名变量之外,软件开发中最棘手的问题之一是它何时准备好发布?如果我们等待与 WCF 的功能奇偶校验,我们可能永远不会使用 v1,因为某些功能缺少依赖项。我们决定,当核心 WCF 对大量 WCF 客户在生产中使用“有用”时,我们愿意应用 v1 标签。有用是一个非常模糊和模糊的栅栏,所以我们必须决定这意味着什么。我们想出来的是能够将 SOAP 与 HTTP 传输一起使用,具有会话传输,并能够为服务生成 WSDL。我们已经在 ASP.NET Core的连接处理程序功能之上实现了NetTcp,因此涵盖了支持会话传输的内容。剩下的主要事情是 WSDL 支持。在此过程中,社区决定为TransportWithMessageCredentials,WS-Federation,Configuration,ReSTful服务的WebHttpBinding以及许多其他较小的功能提供支持,包括一些甚至在WCF上不存在的功能。随着最近 WSDL 生成的完成,我们现在处于一个阶段,我们认为核心 WCF 应该对许多使用 WCF 的开发人员有用。
仍然缺少一些值得注意的功能。例如,我们尚不支持跟踪,您需要在 ASP.NET 核心中配置 HTTP 身份验证,而不是通过绑定。如果这是你第一次考虑使用 CoreWCF,我建议你阅读前面的博客文章,因为它们包含许多有关如何将服务移植到 Core WCF 的答案。
缺少我需要的功能,我该怎么办?
缺少的功能分为两类。
- 实现已存在,但不是公开的
- 完全没有实现
当实现在那里但不是公开的,那是因为我们还没有测试它。在没有测试端口中所做的任何更改都没有问题的情况下公开API将导致大量噪音和不良体验。如果您发现需要一个内部扩展点,则获得支持的最快方法是提交一个 PR,使其公开,并进行一些测试,以验证可扩展性点是否按预期工作。
如果完全没有所需的功能,您有两种选择:
- 第一个选项是检查它是否在功能路线图问题上,如果不是,请添加它。然后按照问题顶部的说明对该功能投赞成票。在决定下一步要处理哪个功能时,我们会强烈权衡需求。
- 第二个选项是提供开发人员资源来移植功能。WebHttp 功能就是这种情况的一个例子。对于一个需要它的客户来说,移植WebHttpBinding在优先级列表中太低了,因此在一些指导下,他们移植了该功能。
另一种方法可能是修改服务以使用提供相同功能的其他功能。例如,如果您当前使用的是 NetNameedPipeBinding,则切换到 NetTcpBinding。
自 0.4.0 以来的新增功能
自 Core WCF 0.4.0 发布以来,添加了以下新功能:
- WebHttpBinding 支持 OpenApi 功能 - Jonathan Hope, Digimarc (@JonathanHopeDMRC)
- WS-Federation 支持 - Biroj Nayak, Amazon AWS (@birojnayak)
- WSDL 支持,包括 ServiceDebugBehavior - Matt Connew, Microsoft (@mconnew)
- 新增了对将 HttpContext、HttpRequest 和 HttpResponse 对象注入到服务实现方法中的支持。这还包括支持coreWCF InjectedAttribute之外 ASP.NET Core FromServicesAttribute - Guillaume Delahaye(@g7ed6e)
- 配置的自定义绑定支持 - (@kbrowdev)
有 3 篇新的博客文章讨论了其中一些新功能:
-WebHttpBinding 支持
-WSDL 支持
-WS-Federation 支持
微软官方支持
随着Core WCF的v1.0.0版本,Microsoft正在提供支持。当前支持生命周期可在 http://aka.ms/corewcf/support 中找到。Microsoft 发布了一篇博客文章,解释了 Core WCF 的支持策略。
本文翻译自 https://corewcf.github.io/blog/2022/04/28/corewcf-1_0_0_release ,并对背景做些解读。
CoreWCF 1.0.0 发布,微软正式支持WCF的更多相关文章
- [转帖]银河麒麟Kydroid 2.0全新发布:原生支持海量安卓APP
银河麒麟Kydroid 2.0全新发布:原生支持海量安卓APP https://news.cnblogs.com/n/652299/将手机操作系统 转移到 桌面 跟chromebook 类似的策略吧 ...
- .NET 5.0 RC2 发布,正式版即将在 11 月 .NET Conf 大会上发布
原文:http://dwz.win/ThX 作者:Richard 翻译:精致码农-王亮 说明:本译文舍弃了少许我实在不知道如何翻译但又不是很重要的语句. 今天(10月13日)我们发布了 .NET 5. ...
- Redis 3.0正式版发布,正式支持Redis集群
Redis是一个开源.基于C语言.基于内存亦可持久化的高性能NoSQL数据库,同时,它还提供了多种语言的API.近日,Redis 3.0在经过6个RC版本后,其正式版终于发布了.Redis 3.0的最 ...
- 微软今日发布汇总:VS2015, .NET 4.6, C# 6.0, F# 4.0等重量级产品正式上线
Visual Studio Visual Studio 2015 下载 VS2015新功能列表 ‘ Visual Studio 2013 更新包 5.0 下载 其中包含Visual Studio 20 ...
- jQuery 2.0发布,不再支持IE6/7/8
有时发现jQuery库引用的都对,javascript代码写的也没问题,可是jquery就是出现问题,额--我发现换个jquery库就没问题了,长时间不关注jquery的问题而已: 很多人都没有使用最 ...
- Angular4.0.0正式版发布
来源于angular4.0.0发布时的公告,译者:niithub 原文发布时间:Thursday, March 23, 2017 翻译时间:2017年3月24日 angular4.0.0正式版现在可以 ...
- [OSChina]VirtualBox 6.0.0 发布,改进对高端显示器的 HiDPI 支持--尝试一下
VirtualBox 6.0.0 发布,改进对高端显示器的 HiDPI 支持 https://www.oschina.net/news/102838/virtualbox-6-0-0-released ...
- 支持边云协同终身学习特性,KubeEdge子项目Sedna 0.3.0版本发布!
摘要:随着边缘设备数量指数级增长以及设备性能的提升,边云协同机器学习应运而生,以期打通机器学习的最后一公里. 本文分享自华为云社区<支持边云协同终身学习特性,KubeEdge子项目Sedna 0 ...
- QuantumTunnel:v1.0.0 正式版本发布
经过一段时间运行,代码已经稳定是时候发布正式版本了! v1.0.0 正式版本发布 对核心能力的简要说明: 支持协议路由和端口路由:QuantumTunnel:端口路由 vs 协议路由 基于Netty实 ...
随机推荐
- 手撕代码:leetcode 309最佳买卖股票时机含冷冻期
转载于:https://segmentfault.com/a/1190000014746613 给定一个整数数组,其中第i个元素代表了第i天的股票价格. 设计一个算法计算出最大利润.在满足以下约束条件 ...
- kafka follower如何与leader同步数据?
Kafka的复制机制既不是完全的同步复制,也不是单纯的异步复制.完全同步复制要求All Alive Follower都复制完,这条消息才会被认为commit,这种复制方式极大的影响了吞吐率.而异步复制 ...
- Xml 映射文件中,除了常见的 select|insert|updae|delete 标签之外,还有哪些标签?
<resultMap>.<parameterMap>.<sql>.<include>. <selectKey>,加上动态 sql 的 9 个 ...
- 什么是 Daemon 线程?它有什么意义?
所谓后台(daemon)线程,是指在程序运行的时候在后台提供一种通用服务的线 程,并且这个线程并不属于程序中不可或缺的部分.因此,当所有的非后台线程 结束时,程序也就终止了,同时会杀死进程中的所有后台 ...
- Netty学习摘记 —— Netty客户端 / 服务端概览
本文参考 本篇文章是对<Netty In Action>一书第二章"你的第一款 Netty 应用程序"的学习摘记,主要内容为编写 Echo 服务器和客户端 第一款应用程 ...
- 5_终值定理和稳态误差_Final Value Theorem & Steady State Error
- CSS3渐变效果工具
推荐一个css3渐变效果工具,觉得有帮助的可以收藏下. 工具链接 CSS3 渐变(gradients)可以让你在两个或多个指定的颜色之间显示平稳的过渡.CSS3 定义了两种类型的渐变(gradient ...
- CSS:两端对齐原理(text-align:justify)
我是一个小白我是一个小白我是一个小白喷我吧,哈哈 写样式的是时候经常会碰到字体两端对齐的效果,一般就网上找端css样式复制下就结束了,没有考虑过原理是啥贴下代码 <head> <me ...
- 前端网络安全——前端XSS
XSS攻击:Cross Site Scripting(跨站脚本攻击) XSS攻击原理:程序+数据=结果,如果数据中包含了一部分程序,那么结果就会执行不属于站点的程序. XSS攻击能干什么?能注入Scr ...
- 我试试这个昵称好使不队项目NABCD指路
我试试这个昵称好使不队项目NABCD指路:https://www.cnblogs.com/team-development/p/14617203.html