Stackify is now BMC. Read theBlog

Why .NET Core and C# are the Next Big Thing

By: mwatson
  |  March 27, 2017
Why .NET Core and C# are the Next Big Thing

I have been playing with .NET Core for over a year now and have been very impressed with it.  Since our company creates developer tools that also work with .NET Core, I feel like we are more plugged into what is going on. We talk to customers every day who are already running .NET Core apps in production. .NET Core is picking up steam fast, and I predict the demand will continue for .NET Core and C# developers throughout 2018.

According to the TIOBE programming index, C# is already one of the top 5 programming languages.

.Net C# Programming Languagesas

Top 6 Things to Know About C# and .NET Core

Find out why .NET Core is pushing C# to the top of the list of most popular programming languages.

1. Easy to Learn

If you have done any programming in C, java, or even javascript, the syntax of C# will feel very familiar to you. The syntax is simple to understand and read. Based on the TIOBE index I posted above, there are millions of developers who could easily make the switch from Java or C.

There are lots of online resources to help you learn C#. Many are free and there are some that are low cost as well.

Also Read-https://stackify.com/managing-teams-github/

2. Modern Language Features

.NET has been around a long time now and has steadily changed and improved over 15 years. Over the years I have seen awesome improvements like MVC, generics, LINQ, async/await and more. As someone who has dedicated myself to the language, it is awesome to see it improve over time. With .NET Core, a lot has changed, including all of the ASP.NET stack being completely overhauled. The C# programming language has been around for about 15 years and continues to improve over time.

Here are some of .NET Core’s top features:

  • Strongly typed
  • Robust base class libraries
  • Asynchronous programming – easy to use async/await pattern
  • Garbage collection, automatic memory management
  • LINQ – language integrated queries
  • Generics – List<T>, Dictionary<T, T>
  • Package management
  • Share binaries across multiple platforms and frameworks
  • Easy to use frameworks to create MVC web apps and RESTful APIs

3. Versatility: Web, Mobile, Server, Desktop

One of the best things about C# and .NET is the versatility of it. I can write desktop apps, web applications, background services, and even mobile apps thanks to Xamarin. Besides C#, all I really have to know is a little JavaScript (aided by TypeScript) to hack some UI code together (which I still try to avoid!). ASP.NET Core templates even make use of Bootstrap layouts and npm for pulling in client-side libraries.

The versatility is a big deal because your investment in learning the language can be used for a wide array of things. Your skillset is highly portable. You can also jump from building web apps to mobile apps if you want to mix up what you are doing. This is a stark difference to most other programming languages that only work server side.

And let’s not forget the first class support for Microsoft Azure. It’s never been easier to get up and running, and then deployed to the cloud in just a few clicks. Docker containers are also supported which makes it easy to deploy your app to AWS or other hosting providers as well.

Docker containers are also supported which makes it easy to deploy your app to AWS or other hosting providers as well.

4. Awesome Developer Tools

Visual Studio has always been regarded as one of the best IDEs available for developers. It is a great code editor that supports features like code completion, debugging, profiling, git integration, unit testing, and much more. Visual Studio now offers a full featured free community edition.

It is also possible to write code for .NET Core as basic text files with your favorite text editor. You can also use Visual Studio Code on any OS as a great basic code editor. For those of you who will never give up your vim or emacs, you can even do C# development too. You could also install a plug-in for Visual Studio to add all of your favorite shortcut keys.

The whole .NET ecosystem is also full of amazing developer tools. For example, I couldn’t imagine living without Resharper from Jetbrains. There are dozens of awesome tools that exist, including a mixture of open source and commercial products.

5. Standardization of Skills

.NET comes with a very good set of base class libraries. Unlike node.js, simple string functions like LeftPad() are built in. The wide array of base classes greatly lessens the need for external packages. Microsoft does lean on some community projects as well, like JSON.NET, to be key libraries widely used in most projects.

Microsoft provides a very good set of patterns and practices for .NET. For example, there are standard data access (entity framework) and model-view-controller (MVC) frameworks built-in. Most developers use those standard frameworks. This makes it easy as a developer to move between teams and quickly understand how things work. Your knowledge and skills become more portable due to this.

6. .NET Core is Open Source

One of the biggest changes to ever happen to .NET was the open sourcing of the code. Virtually all of the code is now on GitHub for anyone to review, fork, and contribute to. This is a huge change that most people in the industry never thought would happen.

As a developer, from time to time you need to look under the covers to see what your code is really doing. For example, in the past I once wondered if I called Dispose() on a database connection if that closes the connection or not. If you can access the source code somehow, you can quickly verify these types of questions.

Even if you don’t contribute to the source code, you benefit from the huge community that is. Problems and improvements are quickly discussed, coded, and released for you to use on a regular basis. Gone are the days of waiting years in between releases for major improvements or minor bug fixes.

Conclusion on Why .NET Core and C#

For years, I have read about polyglot programmers and how some new language was the new cool thing. Over time, It has been programming languages like ruby, python, scala, go, node.js, swift and others. It is amazing to see what Microsoft, and the community, have done with .NET Core and how it has become the cool new thing. I have even ported a .NET app over to run on a Mac, which was pretty amazing to see in action after all these years!

The problem with many of the existing programming languages is they are good at one use case. Ruby and php are awesome for web applications. Swift or Objective C are great for creating iOS or MacOS applications. If you wanted to write a background service you could use python, java, or other languages. Besides C#, JavaScript and Java may be the only languages that can be applied to a wide set of use cases.

It is hard for me to apply my skills to a broad set of problems if I have to learn many programming languages. It limits my job opportunities. The awesome thing about C# is the wide versatility of it that can be used for a wide variety of types of applications. Now with .NET Core working on MacOS and Linux, there truly is no limit to what you can do.

Want to learn C#? Check out our list of C# tutorials.

Improve Your Code with Retrace APM

Stackify's APM tools are used by thousands of .NET, Java, PHP, Node.js, Python, & Ruby developers all over the world.
Explore Retrace's product features to learn more.

Learn More

Want to contribute to the Stackify blog?

If you would like to be a guest contributor to the Stackify blog please reach out to [email protected]