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.
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
- Install Node.js
- Open notepad
- Write basic Hello World
- Open CMD/Terminal
- node index.js
- Install Python
- Open notepad
- write basic Hello World
- Open CMD/Terminal
- python3 hello.py
- Do I want the Full Framework or Core
- What is Core?
- Oh hang on isn't .Net Windows only?
- Okay Visual Studio Code or Visual Studio as an IDE?
- Okay install Visual Studio - massive install with many options including Python and Node
- okay now I'm ready to code something
- 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:
- Install .Net 5 (https://get.dot.net/)
- type: dotnet new console
- open Program.cs in notepad (see it already says "Hello World")
- 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 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!
- Download .Net SDK 3.1 from here for your selected OS
- Install what you downloaded
- Open CMD or Terminal (in a directory of your choosing) and run the following:
dotnet new console
- Open Program.cs in your favourite text editor, oh look Hello World is done for you.
- Back in CMD or Terminal (in the directory you were in before run:
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?
Top comments (8)
I believe since .net core exists the technical barrier of entry is very low I'd take those 5 steps into 3'ish
I think it's more a mentality/opinion barrier the one .net needs to take down
many people I know these days still thinks like this
"oh, .net that's Microsoft no thanks"
"web frameworks in .net? you mean asp.net right?"
"yeah but is fake OSS"
".net GUI stacks are windows only, no thanks"
these points are strong for people looking on the outside but as far as I can see, we have projects like Giraffe, SAFE Stack, Uno Platform, Avalonia basically refute those opinions
I'd say in a couple of years people will realize that now that .net is cross platform they don't really need to rely on Microsoft to grow just as java projects don't really rely on Oracle to grow
Just want to say this is easily the best thing I accidentally discovered throughout last year, and I cannot wait until I have more time to learn more about it, as a non-dotnet user currently.
I agree with you, it’s not about the technicalities, it’s about the number of choices that come with something that’s almost 20 years old. It’s what people don’t know and assume, they do this off the old school ways that Microsoft has previously been known for and that they have been trying to shake for the last decade.
As you say it’s not down to Microsoft to bring in those new developers (although I’m sure they would like it). It’s down to veterans of .Net to maybe simplify down to the basic level and bring back the “Hello World” examples.
Well .net 5 will sort out question 1 and 2 listed under .net
question 3 can allso be assigned to history with .et5 as it wil be only one .net and it will be cross platform.
as for the vs code or vs question: if you are on windows deffenetly visual studio as later tutorials ofren assume that you have this installed. On masc; well that is stil an pen question as vs fro mac is not a mac port of vs butn an update of the former Xsamarin studio. on linuxs: as far as i know yout only choice is vs code or maybe you can get vs running with wine, no Idea as I've never tried.
I grre that the dowmloads might be a berier, at least if you ar on a slov and/or metered connection but that problem is unfortunatly a bit outside the scome of this discussion
Isn't it just:
Install VS, a typical download of around 6GB
ye a beginners tuturial shuld realy tell peiople to remove a few things from that install , like game development and languages they dont plan to play with at once, IMHO C# is a giodd startingpoint and the workloads they want, maby windows desktop and mabe web , ut as thing skan be added later wihout re downloading what you allredy have. this is not a big problem
I was wondering the same... perhaps we only know one portion of the .Net world. For me the only barrier of entry was installing VS and then figuring out which kind of application I will build.