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.
Find out why .NET Core is pushing C# to the top of the list of most popular programming languages.
There are lots of online resources to help you learn C#. Many are free and there are some that are low cost as well.
- Pluralsight – Low cost subscription to great educational content
- Microsoft Virtual Academy – Free videos and assessments
- Microsoft Getting Started with C# – Free interactive tutorials
.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
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.
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.
.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.
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.
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!
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.
- Serilog Tutorial for .NET Logging: 16 Best Practices and Tips - August 15, 2018
- Retrace Log Management: Logs, Errors and Code Level Performance - April 25, 2018
- 5 Awesome Retrace Logging & Error Tracking Features - March 14, 2018
- Developer Things #8: How to Develop More Secure Software with Steve Feldman - February 8, 2018
- 8 Things to Monitor During a Software Deployment - February 2, 2018