Claro; dotnet-protobufs es un puerto de la versión java, por lo que comparte una API y un enfoque muy similares a la implementación principal de google; código-gema, inmutabilidad, etc.
Protobuf-net es compatible con bytes, pero es una completa implementación desde cero, siguiendo las expresiones idiomáticas .NET estándar, por lo que es familiar para los usuarios de XmlSerializer etc. También funciona contra mutable objetos (e inmutable en función de la configuración y estructuras en v2), y tiene ganchos opcionales para WCF, la comunicación remota, etc.
Ambos pueden trabajar desde .proto (posiblemente dotnet-protobufs es mejor en esto que protobuf- red); pero protobuf-net puede funcionar contra .net poco/DTO existente, etc., sin .proto ni ningún codegen.
Además, protobuf-net ofrece cosas como soporte de herencia, pero es posible que no elija usar eso en su escenario, ya que no se asigna tan fácilmente a las definiciones de .proto.
El primero está escrito por [Marc Gravell] (http://stackoverflow.com/users/23354/marc-gravell) (ocupa el segundo lugar en reputación aquí), y el segundo está escrito por [Jon Skeet] (http://stackoverflow.com/users/22656/jon-skeet) (ocupa el primer lugar en reputación aquí). Aunque nunca he usado ninguno de estos, apostaría a que no puedes equivocarte de ninguna manera. –
Dado que Jon Skeet en realidad trabaja para Google, primero probaría su versión. – Gabe
Pero, ¿cuál es mejor? Solo hay una forma de descubrir ... ¡LUCHA! (Esto podría tener sentido si sabes quién es Harry Hill; de lo contrario, puede sonar inusualmente agresivo ...) –