Beginner Question: dot net- Why do we need it?


It must be a dated question. Since i’m from Electronics background, i unaware of dot net. So let me ask, Why do we need dot net and it applications?


Languages like .Net and Java allow developers to create web, desktop, mobile, embedded and enterprise solutions.


Before .NET, writing desktop applications meant either using Visual Basic or C++. Visual Basic sucks, and C++ can be difficult. .NET made things a little more approachable, and using C# makes you feel like a real programmer (as compared to Visual Basic). .NET functions a lot like Java and its run time environment.

The real answer to your question is another question: Why do we need any high level language?

EDIT: To clarify, you can still use Visual Basic .NET, but most people prefer C#.


.NET was Microsoft’s answer to Java, and Java’s huge market share.

.NET is a ‘safe’ sandbox for otherwise possibly malicious programs to run safely on your computer, just like Java’s JRE or the Java Runtime Environment.

.NET uses languages like C# and F# and visual Basic.

And C# is lovely to program in…


It really really is…


It’s the Java that Java wanted to be.


.NET is a big generic term. But it’s basically Microsoft’s platform/framework for developing web, desktop and mobile apps.

There’s the ASP.NET family (starting from MVC 1.0 to MVC 5)… there’s also the .NET Framework (from 3.5 to 4.5.1, 4.6.x)

Now, we have the new/latest .NET Core 1.0 (with 2.0 Preview currently out). This is the “new” Microsoft where everything is open-sourced, and cross-platform (Windows, OSX, Linux). The same project/source code will run on all 3 platforms in the same way. (Previously, .NET is only hosted on Windows servers).

You can create .NET applications using C#, VB, C++, F# being the most common. All in all, 44 different languages are supported by .NET. A few sampling:

COBOL for Microsoft .NET.
Perl for Microsoft .NET.
Eiffel for Microsoft .NET.
Python for Microsoft .NET.
Pascal for Microsoft .NET.
Mercury for Microsoft .NET.
Mondrian for Microsoft .NET.
Oberon for Microsoft .NET.
Salford FTN95 (Fortran) for Microsoft .NET.
SmallTalk for Microsoft .NET.
Standard ML for Microsoft .NET.
Dyalog APL for Microsoft .NET.

How big is the .NET framework? .NET Standard 1.6 has 13,000 API calls.
The new .NET Standard 2.0 has 32,000+ API calls!!!

One advantage of .NET is you can debug and step into your source code while debugging… something that other languages cannot do (by others, I mean PHP, JS, scripting languages, etc)

Also, you can deploy your application to your production server without also bringing the source code to the same server. The source code stays in your dev machine (or within your company) and you have the option to not deploy it on the production server. i.e. safe and secure.


Annnnnnd Visual Studio is the best darn IDE!


I would like to point out that this is not correct at all. You can step into your source code using virtually any programming language once you attach debugger to it. This includes PHP (Xdebug being one example of debugger capable of such), in addition to that PHP 5.6 and later ships with internal debugger. With JS it’s even easier, an example of it being browsers’ built-in devtools - they usually come with interactive Javascript debugger.

Nevertheless, .NET is pretty good in that Windows IDE - Visual Studio - is built specifically for .NET framework in mind, therefore it comes with huge amount of integrated tools, like debugger, code analysis, etc.

The framework itself (I have not been working with .NET since 4.5v) is superb. C#, programming language I used mostly, I must say is the best language I had chance to work with in terms of design. I don’t work with .NET anymore, although I do consider going back to it following .NET Core release and ability to code & run .NET applications on linux.


Thanks for the clarification and correction. I’m not too familiar with PHP and it’s ecosystem.

I guess I was thinking of the VS IDE with it’s built-in debugger, tools, etc.


That’s exactly right on the money. I learned Java as my first serious language, and C# later, and to me C# is more or less java except the rough edges were ground off and some very nice bits added.


I couldn’t say it better guys. I did learn C#/.NET first, then I started learning Java (Android SDK, JavaFX after that) and I quickly gave up. I feel C# and .NET does solve a lot of problems Java had for a long time now and I don’t think they will be solved anytime soon.

To be more specific, things like:

  • handling of generics
  • asynchronous programming (async / await :heart_eyes::heart_eyes::heart_eyes:)
  • Task Parallel Library
  • dedicated IDE (I hope they port VS to linux at some point)

Makes C# much better language than Java.