Decentralized applications development for .NET developers using Microsoft Visual Studio

Recently blockchain technology drew my attention. Once I started reading about it, I saw a great potential for blockchain decentralized architecture, and it's capabilities for simplifying a variety of

Recently blockchain technology drew my attention. Once I started reading about it, I saw a great potential for blockchain decentralized architecture, and it’s capabilities for simplifying a variety of existing cumbersome processes requiring any form of a “contract.”

As a.NET Developer, I mostly worked with architectures where data was provided by some central source so decentralized concept of blockchain was completely new to me. I quickly saw how it could provide more reliability, integrity, and transparency. I started looking for information that would allow me to start developing decentralized applications with familiar operating system and tools: Windows and Visual Studio.

In the beginning, I had tons of questions about Ethereum blockchain, smart contracts, and decentralized applications.

Where is all the information stored?

Where is smart contract getting deployed to?

Where is Dapp (decentralized application) hosted?

How can testing be done?

Can anyone view and call my contract?

Despite the fact that there is a number of resources available online about blockchain technology in general and blockchain development in particular, they are not consolidated and are not very easy to understand. So I had to dig through a lot of information, including books, white papers, forums, articles. Now I am able to compare typical ASP.NET Application architecture to Blockchain decentralised application architecture:

As you see from this diagram Dapp is no more than a JavaScript calling either smart contract or anything else in the blockchain. The blockchain is playing a server role, except it’s not central at all, but rather a copy that replicates to all nodes (machines) that have Ethereum Virtual Machine (EVM) script running (Geth).

Once I had a clearer picture in my head of how it all works, I could start putting theory into practice. As I said earlier, I wanted to reuse my knowledge and develop DApps and smart contracts using tools and operating system that I know. As a.NET developer, I, of course, was looking into using Visual Studio.

I must say that there are very few articles available on that and most of them were outdated, so that inspired me to do research of my own. I found that BlockApps company has provided a liaison between Microsoft technology stack and Ethereum blockchain technology. As of today, you can try their Visual Studio integration as well as blockchain individual instance in Microsoft Azure.

In order to try that I you have to install Visual Studio 2015 and download the Solidity extension from the Visual Studio Marketplace

After that, you can start coding your smart-contract

DApp using Visual Studio.

In order to compile test and deploy you can use BLOC tool to give Visual Studio project access to BlockApps blockchain environment STRATO. BlockApps has provided instructions on how to use BLOC and STRATO:

After BLOC is up and running, you can compile and deploy your smart contract:

As a result of the deploy, a test page will be generated for you, which allow you to test your smart contract:

This test page together with your deployed smart contract is an example of a Dapp.

As an alternative to setting up your own blockchain environment, BlockApps is also offering you to spin out STRATO environment on Microsoft Azure. It called STRATO Blockchain Individual Instance, and it will consist of a single node:

Current estimated price on top of Microsoft Azure subscription range from 132.51 CAD to 1798.11 CAD per month depending on virtual machine configuration – the number of cores, RAM, the number of disks, disk size, etc.

After that, you can point your Visual Studio project to your new Azure instance, and you can start deploying your smart contracts there:

In case you already have local BLOC up and running you can change config.yaml to point to Azure instance instead.

As you can see, Visual Studio integration is in place for DApps development. Even though additional tools needed to setup your development environment, right now with Microsoft Doubles Down on ethereum With New Blockchain Product. It’s great time to jump onboard to be an earlier adopter on the Microsoft Platform.

Favorite