C#和F#默认接口方法更新

作者: 云计算机网 分类: 云主机 发布时间: 2019-04-18 15:22

默认接口方法(Default Interface Methods)特性提案将允许C#、F#及其他.NET语言实现有限形式的多继承。受Java的默认方法启发,库作者将可以向已发布的接口中添加新方法而不破坏向后兼容性,其中也包括默认实现。

对于这个人们热议的特性,争论双方都固执己见。在这一点上,什么 都没变。最新消息是,这可能只是一个.NET Core特性。

在讨论F#中的默认接口方法提案时,来自微软的Phillip Carter写道:

我得说一下,默认接口方法确实为我们提供了一个.NET运行时支持的方式,用于支持#243(在某种程度上)。不过,这项修改仅限于.NET Core,因为修改桌面CLR支持底层运行时特性的可能性微乎其微。因此,就像C#一样,F#也将会有一个只有在你使用了CoreCLR是才有效的特性。

[hellip;]

默认接口方法需要修改运行时。这也意味着需要进行检查,看看特定的运行时是否支持这个特性:https://github.com/dotnet/csharplang/blob/master/proposals/default-interface-methods.md#clr-support-api

已推出的.NET Framework版本现在还没有支持这个特性的,它们将来提供支持的可能性也微乎其微,因为那会有破坏现在广泛存在的已有应用的风险。.NET Core最终将在其运行时中包含这个特性,但是,现在还没有完全确定,它是否也会包含在.NET Framework、mono或UWP运行时的某个未来版本中。正如@jnm2提到的那样,除非每一种支持.NET Standard的运行时都包含这个特性,否则你就无法在.NET Standard中使用它们。它也不在即将到来的.NET Standard 2.1的计划中。

我考虑的是,从长远规划的角度看,我们所能做的不仅仅是在面对这样一种结构时保持冷静。这个特性是从C#复制的?恐怕不是。一个成熟的traits/typeclasses系统?那需要花时间进行恰当的设计。它如何与已有的东西如SRTP合理共存?对于现在的接口、将来的接口、函数即接口、常规的泛型、SRTP及其他东西,该如何考虑?但至少,在我看来,实现某种东西的机制即将到来,因此,在一个比较高的层面上考虑下还是有好处的,那是什么东西,它会有哪种行为,它如何与这方面的现有特性合理共存。

在C#提案话题中,Joseph Musser做出了以下回应:

作为库作者,这意味着,如果其中一个库的目标不是.NET Framework或者在.NET Framework上运行的一个.NET Standard版本,那么DIM在现如今这种情况下就无助于API的演化。添加一个接口方法仍然是一项破坏性修改。

对此,Thomas Levesque补充说,对于该特性而言,由于库是最重要的使用场景,那会使得整个特性几乎没用hellip;hellip;

查看英文原文:Update on C# and F#rsquo;s Default Interface Methods

  • 像许多新产品和新技术刚刚面市一样,许多潜在用户虽然表现出对SD-WAN(软件定义广域网)的极大兴趣,但却因为了解有限,因而对是否要进行PoC测试始终犹豫不决。下面让我们花一些时间了解一下支撑SD-WAN的基础架构,或许会有新的发现,同时为您的决策提供支持。

    解放控制平面

    我们可以说,SD-WAN的关键架构特征就是控制平面脱离网元(即路由器)数据平面。这使得控制平面能够集中发挥作用,引导数据包穿过许许多多网络节点。

    如果您错误地认为控制平面和数据平面永远都以一夫一妻制的关系结合在一起,在郊外的某个网络节点中一起愉快地居住着的话,不妨花点时间慢慢领会。不要误解我的意思,我不是说控制平面的运转杂乱无章,只是说它获得了解放而已。

    有了SD-WAN,控制平面可以生活在一个豪华的IT公寓中。开放式网络基金会发表的《软件定义网络架构综述》中,将这个平台描述为具有更广阔的可控资源视野,可以对如何部署这些资源做出更好的决策。通过解耦和集中控制来提高可扩展性,不断提升网络资源的全局视图而非细节视图。

    软件定义约会

    软件定义广域网(SD-WAN)数据平面设备按照行为规范和行为禁忌列表工作。通常在运行过程中,它们按照先前控制器传来的规则来路由流量。数据包根据按规则编码的相关应用和相关用户,被转发至某个路径。

    当一个不熟悉的数据包到达某个SD-WAN设备时,数据平面将会向控制器发出路由请求,就如同向朋友了解一个陌生人的情况一样。

    SD-WAN控制器还可以记录网络容量和需求。当链路拥塞时,它可以引导数据平面重新路由数据包,保持流量的平稳传输。

    如果我们形象地描述这一过程就是:你好VoIP。这是数据平面。关于我们今天的晚餐hellip;hellip;MPLS餐馆在晚8:45前没有空位。我们去咖啡宽带吧。那里菜品不错,等待时间也很短。好棒哦!现在就动身hellip;hellip;。

    居于主导地位

    在这一点上,你或许会认为控制平面正在SD-WAN架构中发号施令,但该架构的实际主导者是位于第三层的应用平面。SD-WAN应用通过控制平面操控管理、安全及其他某些特定功能。所以当数据平面惟命是从时,控制平面就会在主仆之间变换角色。

    一个控制器从多个网络设备收集信息(包括统计信息和事件),然后传递至应用,以构建网络抽象视图,用于生成报告并为决策提供支持。

    研究人员对比了有和没有SD-WAN的网络节点在各种配置中的行为特征。他们发现,SD-WAN可以在节点之间实现更快速的连接,并增加部署全网状拓扑的可能性。

    走下象牙塔

    对学术研究而言这就足够了。而在现实环境中,管理员可以使用SD-WAN的管理应用程序来实现可视化,查看网络运行状况并按需做出修改。#p#分页标题#e#

    例如,可以配置一个SD-WAN策略引擎,为统一通信流量提供一个高优先级,并将其转发至低延迟路径加快在网络中的传输速度。再配置一个策略,用来保护机密信息,通过最安全的路径发送与财务应用或管理层用户相关的数据包。这些业务意图策略被转换成规则发送至控制器,继而发送至物理网络设备。

    SD-WAN应用的另一个例子是分析引擎,它能够处理查找可疑活动的网络数据。这种入侵检测系统通过由控制器跟踪的流量来识别恶意软件流量,同时发送指令,以便在感染网络之前自动隔离这些数据包。

    你想知道的都在这里

    应用、控制和数据平面的功能分离只是SD-WAN架构的出发点。实现SD-WAN架构全部功能的技术包括层间(跨平面)通信、网络虚拟化、自动化和可编程性编排等协议。

  • 相关推荐:

  • 拥抱SD
  • 工业和信息化部副部长陈
  • 软通动力成为华为云“同
  • 赛迪顾问隆重发布《20
  • 洋河酒业私有云和智慧渠
  • 创新加速云计算普及和驱
  • Aruba发布首个资产追踪解
  • 华为云联合Hyperledger和相
  • 华为云数据复制服务DR
  • 华为云容器和微服务,云
  • 网站内容禁止违规转载,转载授权联系中国云计算网