Cet article sera le premier d’une série qui me démangeait depuis quelque temps, sur l’implémentation d’un serializer en C#. Le but de cette implémentation n’est pas de rivaliser avec un protobuf-net, mais plutôt l’occasion d’écrire un peu de code plus bas niveau que d’habitude.
En s’appuyant sur les DataTemplates et les capacités de binding de WPF, on peut très facilement mettre en place des formulaires dynamiques. La première étape est de définir les classes qui serviront à définir les éléments de notre formulaire :
Parfois on peut être améné à vouloir déclarer un service de manière générique :
Parfois il peut arriver d’avoir besoin de baser un style sur un autre déclaré sans x:Key, s’applicant donc a tous les éléments correspondant à l’attribut TargetType. Ici, la clé est de déclarer l’attribut BasedOn avec non pas une ressource, mais le type de l’élément sur lequel appliquer le style.
Protobuf-net est l’implémentation .NET de protocol buffers mis au point par Google, qui l’utilise comme protocole de communication pour ses échanges de données. L’objectif est d’obtenir une sérialisation binaire de faible taille (largement moindre qu’une sérialisation XML par exemple), et peu coûteuse a sérialiser et désérialiser, autant coté serveur que client.