Why C# / .NET and why does it matter?

The Stratis Platform is the only Blockchain as a Service platform which is built from the ground up in the C# coding language, which was developed by Microsoft as part of the larger .NET ecosystem. Here are some reasons why this a big deal for Stratis:

1. The C# / .NET ecosystem is home to one of the largest suites of development tools in the world of software development. If you are developing a Stratis-based application you can use these tools to aid you in both the development of your application and the auditing of your code. More tools are being developed all the time and the more the ecosystem grows, the more powerful Stratis becomes as a blockchain and dApp development platform. Stratis exists in symbiosis with C# / .NET, an environment which is actively supported and improved upon by Microsoft and numerous other companies and individuals. The value of this relationship should not go understated.

2. C# is an industry standard language, used by many enterprises in part for the very reason outlined in point 1. If an enterprise looking for a blockchain solution is familiar with C#, then being able to utilise the .NET environment will be a very attractive prospect.

3. The community of C# developers is one of the largest in the world and exists across the globe. It is a widespread language used by millions of developers. This means that Stratis will be catering to a massive audience with access to auditing tools and auditors from a community numbering in the millions.

4. Theoretically, any language that can be translated into Common Intermediate Language (CIL) will also be supported for Stratis. This means native C# and F#, VB, and any other language where software has been written to compile to CIL. This opens up the door to developers who want to build specific applications which are better built using a non-turing complete language such as F#. There is a case to be made for smart contracts coded in F# over other languages. This adds further flexibility to the platform at the coding level.