What is web3 and Where does .NET fit in?
What is this web3 and why should .NET developers be interested in it? In today's post, we try to understand what web3 is and what options are available for .NET developers
In our day-to-day of writing code, we can easily lose track of new trends and what's happening in our industry. The amount of information flying past us on the Internet is staggering. It's hard to keep up.
One of the latest topics flying around the Internet is this web3 term.
In the past 2 weeks, I've seen more posts as to what everyone's chatting about and how others are defining (or interpreting) the term.
But more specifically, what is web3 and what does it mean to .NET developers? Should we care?
For those who feel like this is a familiar topic, it's because I covered this in my newsletter a couple of weeks ago and decided to follow through with a full-blown post for .NET developers.
A Brief History
To understand what web3 is, we need to know how we got here ("What happened to version 1.0 and 2.0?")
The previous versions of the web are what some of the early adopters of the Internet experienced back in the day.
- Web 1.0 (1991 - 2004) - People being introduced to the Internet by creating personal static pages and not really becoming content publishers (not yet anyway). "Webmasters" created sites using tables and iFrames (which I did back in 1996 as well with Vito's Cyber-site, my personal real estate on the web at the time)
- Web 2.0 (2004 - ~2020) - The building of social interactions and utilization with dynamic platforms. Social media, podcasting, and blogging are a few examples. In my opinion, we are in a transition state to web3 ("You/we are here!")
If you look at the dates for when each version appeared, you'll notice the web is due for an upgrade or a change. Web 1.0 lasted for 13 years where Web 2.0 is still going for 15+ years. The change is due.
Of course, there's usually an overlap or transition period for each version, but the funny thing about web3 is that it's been transitioning since 2009.
What is web3?
Have you ever casually read posts on the web and, all of the sudden, out of the blue, there are a number of posts written over a span of two weeks covering a certain topic or trend?
Well lately, it seems everyone is chatting and posting about web3.While everyone has their definition of web3, I wanted to present a brief list of posts where others attempted to define web3.
They review and analyze the current Internet landscape and provide concrete examples of web3 and their related components.
After reading a number of similar posts, I've come to the conclusion that:
web3 = Blockchain technologies
Blockchain has been around since 2008/2009. It's merely a persistent storage method just like SQL Server is to Microsoft developers but decentralized.
While blockchain doesn't work like the standard RDBMS, it uses linked-lists to store the data and to keep a history of changes made to the original items (I also have a Blockchain Collection if interested).
I remember listening to speakers at Codemash talk about blockchain. However, my eyes glazed over at the time and, yes, you guessed it, I got caught up in work and I didn't give it a second thought.
Using blockchain technology, this allows developers to write applications by way of private and public blockchain implementations such as voting, video games, and the government.
Why web3 is not going anywhere
Remember when I said there usually is an overlap period for each version of the web to gain traction?
Well, blockchain was introduced back in 2008/2009 and now, it's gaining some serious traction (Heck of a long transition period, though).
Why didn't it fade away during this transition period?
There are many reasons why it didn't fade away.
- For starters, it was the new, shiny thing. Technologists LOVE new, shiny things.
- By default, it's secure.
- Records are tamper-proof.
- It's a decentralized system meaning the recordkeeping aspect of blockchain requires all decentralized records to be in sync with each other for it to work.
I can tell you one last reason why blockchain is not going anywhere with one word: Cryptocurrency.
Bitcoin was built on top of blockchain as an alternative currency system. When you build an alternative currency system (especially when it's digital), people pay attention and want it to succeed.
So they invest in Bitcoin, Ethereum, and various others.
THIS is why blockchain technologies are not going away anytime soon. When you have your life-savings, investments, and transactions influencing economies with cryptocurrency, do you think people are just going to let the money go and let the technology dissolve?
When finances are associated with technology? Ohhh...they'll make it work.
It's taken over 10 years for blockchain to catch on, but we can thank cryptocurrencies for accelerating this technology over the years. This persistent mechanism is becoming more mainstream and a possible alternative for developers.
What about NFTs?
I'll briefly touch on this since it's so hot right now.
This is another example of a blockchain application.
An NFT is a Non-Fungible Token and is something that can't be replaced. Think of it as a one-of-a-kind trading card, but digitally.
NFTs work on the Ethereum blockchain and contain a record for a digital asset claiming that you own that one-of-a-kind digital asset. If someone purchases that digital asset from you, it's transferred from you to the buyer and recorded on the blockchain so only you "own" it.
So basically, once you purchase an NFT, it's recorded on a blockchain "ledger" and considered yours.
What Options Are Available for .NET Developers?
This may be a different approach to writing applications, but essentially, it's still a persistent storage mechanism...just decentralized.
Since Ethereum is the easiest to program against, it makes sense to look at them if you are interested in writing custom C# .NET blockchain applications. They provide a lot of documentation on how to get started with your own blockchain apps.
While Ethereum created a library for .NET developers, Nethereum is specifically built for .NET developers.
They even have a Nethereum blockchain store library for Azure, a Blazor/WASM library, video tutorials, and web samples.
Algorand is a library I've not heard of. If you scroll down to the SDKs, they don't mention .NET at all.
I also found their .NET implementation as a library on Github.
if you continue to look around the Internet, I bet you'll find more blockchain applications.
Heck, I've already found an interesting post about someone asking why web3 is so bad (He's received some good comments in there).
While other technologies like machine-learning are becoming important, I feel there will be a melding of machine-learning applications built on top of blockchain technology in the near future.
If someone asked me what technology to focus on for the next 5 years, I would have to say blockchain would be in my top 5 to learn.
Honestly...it's already here.
Are you ready for web3? Have you built decentralized applications before? Post your comments below and let's discuss.