2010-10-11 6 views
14

Nous cherchons à utiliser les tampons de protocole de Google pour gérer la sérialisation entre une application C++ et une application C# via le réseau.Tampons de protocole de Google dans C#

Ma question est, j'ai trouvé quelques verifications différentes pour C#. Les deux semblent très bien, cependant, personne ne sait ce qui est différent (le cas échéant) entre les deux

  1. protobuf-net
  2. jskeet/dotnet-protobufs
+7

Le premier est écrit par [Marc Gravell] (http://stackoverflow.com/users/23354/marc-gravell) (classé 2ème en réputation ici), et le second est écrit par [Jon Skeet] (http://stackoverflow.com/users/22656/jon-skeet) (classé 1er en réputation ici). Même si je n'ai jamais utilisé l'un ou l'autre, je parierais que vous ne pourriez pas vous tromper de toute façon. –

+2

Étant donné que Jon Skeet travaille pour Google, j'essaierais d'abord sa version. – Gabe

+3

Mais quel est le meilleur? Il n'y a qu'une seule façon de le savoir ... COMBAT! (Cela pourrait avoir du sens si vous savez qui est Harry Hill - sinon cela pourrait sembler anormalement agressif ...) –

Répondre

13

Bien sûr; dotnet-protobufs est un portage de la version java, donc partage une API et une approche très similaires à l'implémentation principale de google; code-gem, immutability, etc.

Protobuf-net est compatible avec les octets, mais est une ré-implémentation complète de zéro, suivant les idiomes standard .NET - est donc familier aux utilisateurs de XmlSerializer, etc. des objets (et immuable en fonction de la configuration, et struct v2), et a des crochets en option pour WCF, Remoting, etc.

les deux peuvent travailler à partir .proto (sans doute dotnet-protobufs est mieux à ce que protobuf- net); mais protobuf-net peut fonctionner contre .net poco/DTO existant sans .proto ou n'importe quel codegen. En outre, protobuf-net offre des fonctionnalités telles que le support de l'héritage, mais vous ne pouvez pas choisir de l'utiliser dans votre scénario car il ne correspond pas aussi facilement aux définitions .proto.

Questions connexes