Schema evolution with Hadoop Avro in C#
<p><strong>In short: How can I generate a JSON schema for multiple .Net assemblies, and still use strong type deserialization?</strong></p>

<p>We are using <a href="https://hadoopsdk.codeplex.com/wikipage?title=Avro%20Library" rel="nofollow">Microsoft Avro</a> to serialize .Net (C#) objects between systems.</p>

<p>Because Avro is using sequential indices to keep references of types, and because we are using Reflection to serialize, every time we compile a new version, the type indices change.</p>

<p>Sender and receiver end up having different type indices, and they then end up deserializing for the wrong type; which means best case, we get an error, worst case, we get mismatching data.</p>

<p>Upgrading all systems at once is not possible.</p>

<p>The only way I see to avoid this problem is to use a Schema, but I cannot find 1) How to generate that schema using code (I don't want to manually create the schema), and 2) Keep using strong type when serializing/deserializing</p>

<p>I read through this: <a href="https://github.com/Azure/azure-content/blob/master/articles/hdinsight/hdinsight-dotnet-avro-serialization.md" rel="nofollow">https://github.com/Azure/azure-content/blob/master/articles/hdinsight/hdinsight-dotnet-avro-serialization.md</a> and I cannot find a way to achieve this... It seems to me that this should be a typical problem developers using Avro should have, so what am I missing?</p>