zoukankan      html  css  js  c++  java
  • Interface Definition Language

    Interface Definition Language

    With Windows Communication Foundation (WCF), services can expose description metadata by using the Web Service Definition Language (WSDL). WSDL is generated dynamically by using .NET reflection at runtime. Developers can use this metadata to generate clients for those services, potentially in other languages if they're using a platform-neutral binding such as SOAP over HTTP.

    gRPC uses the Interface Definition Language (IDL) from Protocol Buffers. The Protocol Buffers IDL is a custom, platform-neutral language with an open specification. Developers author .proto files to describe services, along with their inputs and outputs. These .proto files can then be used to generate language- or platform-specific stubs for clients and servers, allowing multiple different platforms to communicate. By sharing .proto files, teams can generate code to use each others' services, without needing to take a code dependency.

    One of the advantages of the Protobuf IDL is that as a custom language, it enables gRPC to be completely language and platform agnostic, not favoring any technology over another. 和语言以及平台无关

    The Protobuf IDL is also designed for humans to both read and write, whereas WSDL is intended as a machine-readable/writable format. Changing the WSDL of a WCF service typically requires changing the service, running the service and regenerating the WSDL file from the server. By contrast, with a .proto file, changes are simple to apply with a text editor, and automatically flow through the generated code. Visual Studio 2019 builds .proto files in the background when they are saved. With other editors, such as VS Code, the changes are applied when the project is built.

    When compared with XML, and particularly SOAP, messages encoded by using Protobuf have many advantages. Protobuf messages tend to be smaller than the same data serialized as SOAP XML, and encoding, decoding, and transmitting them over a network can be faster.

    The potential disadvantage of Protobuf compared to SOAP is that, because the messages aren't readable by humans, additional tooling is required to debug message content.

    Tip

    gRPC does support server reflection for dynamically accessing services without pre-compiled stubs, although it's intended more for general-purpose tools than application-specific clients. For more information, see GRPC Server Reflection Protocol on GitHub.

    Note

    WCF's binary format, used with the NetTCP binding, is much closer to Protobuf in terms of compactness and performance. But NetTCP is only usable between .NET clients and servers, whereas Protobuf is a cross-platform solution.

    Compare gRPC services with HTTP APIs

  • 相关阅读:
    MVC HtmlHelper用法大全
    非常完善的Log4net详细说明
    SQLSERVER2008R2正确使用索引
    DataReader和DataSet区别
    淘宝下单高并发解决方案
    承接小程序外包 微信小程序外包 H5外包 就找北京动点软件
    H5外包 微信小程序外包 小程序外包 就找北京动点开发团队
    NGUI外包开发总结一下今天的收获
    祝大家2018事业有事,大吉大利!
    AR图像识别 AR识别图像 AR摄像头识别 外包开发 AR识别应用开发就找北京动点软件
  • 原文地址:https://www.cnblogs.com/chucklu/p/13156512.html
Copyright © 2011-2022 走看看