Is there a barrier to entry for .Net?
Tags: dotnet, csharp, beginners
Published: 2020-01-24 19:19:20

So, if you want to know who I am, check out this quick video. It's easier to say than fill half a post with introductions.
{% youtube gCCQDWMhv5U %}

## Where we start
The reason we are here is a perception, that .Net isn't an easy entry into development. Until recently I thought the same, however, what changed my mind, why don't we see these easy entries and how do we change the preconception that .Net is hard, compared to other languages?

## My initial thoughts
I like most thought, yes .Net is **NOT** an easy access framework, whereas some, for example, Javascript and Python, you can get something on the screen in fewer steps and less time. It's 2020, people, including me, have developed a need for instant gratification. The following was my initial thoughts, that at the time I wrote in an email conversation I was having with fellow developers.

### Javascript:
1. Install Node.js
1. Open notepad 
1. Write basic Hello World
1. Open CMD/Terminal
1. node index.js 

### Python:
1. Install Python
1. Open notepad
1. write basic Hello World
1. Open CMD/Terminal
1. python3 hello.py

### .Net: 
1. Do I want the Full Framework or Core
1. What is Core?
1. Oh hang on isn't .Net Windows only?
1. Okay Visual Studio Code or Visual Studio as an IDE?
1. Okay install Visual Studio - massive install with many options including Python and Node
1. okay now I'm ready to code something
1. Build
1. dotnet run

Here .Net has the distinct disadvantage of being a bit of mess, where there are multiple frameworks in multiple versions. People who are looking to start development don't know or understand the differences. 

Although an IDE is not necessarily needed, if you don't use Visual Studio or  Visual Studio Code, you're putting yourself at another disadvantage. Then the size of something like Visual Studio doesn't help (although it is free)

There are also perceptions that .Net is for windows only, only middle-aged men use it and it's not as popular as it once was.

## What changed my mind?

2020 the release of .Net 5, this means a unified framework, none of this "Core vs Full" and well we get a single framework that's multi-platform. This brings less complication on where to start.

A comment from a fellow developer & Microsoft MVP Ben Adams, of how the future will look, when .Net 5 comes around went a little something like:

> ### .NET
> 1. Install .Net 5 (https://get.dot.net/)
> 1. type: dotnet new console
> 1. open Program.cs in notepad (see it already says "Hello World")
> 1. type: dotnet run

Now, this seems to be way better, I agree it does and yes no IDE needed. Okay, this all makes sense. So the next question...

## WHY?
Why are we not seeing this very basic "Getting started in .Net" or "Getting started with C#". I don't know to be honest with you. Is it because as a 15 year veteran in .Net I've never had to start from scratch in .Net and C#? The answer is most likely yes. 

Since .Net and C# have changed so much in the last few years with the advent of .Net Core and the soon to be .Net 5. Is it time we start looking at bringing more developers into the community that is .Net. Well, some already have been doing this for a few years, so let's ramp this up and bring in more.....

## So here's my first
Welcome to the first, Getting started with .Net and C# in 5 easy steps!

1. [Download .Net SDK 3.1 from here ](https://dotnet.microsoft.com/download) for your selected OS
1. Install what you downloaded
1. Open CMD or Terminal (in a directory of your choosing) and run the following: `dotnet new console`
1. Open Program.cs in your favourite text editor, oh look Hello World is done for you.
1. Back in CMD or Terminal (in the directory you were in before run: `dotnet run`

## Final Thoughts
Is there a barrier to entry with .Net? Yes, there is. 

Should there be? No, I don't feel there should.

What can we do to change that? Don't over-complicate the "Getting started", change the way we the .Net veterans teach and talk those new to .Net. Don't jump straight in with "Let's do SignalR". Let's try and encourage the new developers, let's give them instant gratification. Can we go back to a simpler time, were a Hello World tutorial didn't mean spending a large amount of time downloading all the pre-requisites before we even start.

What are your thoughts?