Is the Future Cloudy or Bright for .NET?

Azavar has been pioneering technology since 1996 and we’ve used a variety of programming languages and platforms over the years. We’re dedicated to the principle of pushing the limits of web and mobile devices to create rich online user experience. The most innovative solutions that we currently build utilize the .NET framework.

Since our success hinges on .NET, we often try to take a step back and assess the environment around this technology. What’s working, what’s not, how is the marketplace utilizing .NET, and what challenges does the framework face?

If you’re not familiar, the .NET Framework is a set of tools, libraries, languages to build Windows applications, and runtime required to run those applications. It is the large set of libraries that have provided access to the Microsoft platform for the last 15 years or so. This includes all libraries that are available to you right out of the box when programming on most .NET environments.

Many consider .NET as Microsoft's reaction to Java in 2001. Java's strengths at the time were its stability, prevalent usage, and portability. According to the TIOBE Programming Community index, which is an indicator of the popularity of programming languages, Java owned a 26% rating in 2001, easily eclipsing C at 20%.

TIOBE Programming Community Index

Today, Microsoft .NET has become one of the most used and mainstream platforms of software development. Although Java is a language while .NET is a framework, proponents consider the power it provides a significant upgrade over Java. While .NET is primarily aimed at businesses writing business applications, it’s powerful and flexible enough to write just about anything with it.

What Can .NET Be Used For?

When the .NET Framework was first introduced, it supported limited applications. Today, you can  develop almost any kind of app.

Here are some of the application types that can be built using .NET framework:

  • Windows client applications (Windows Presentation Foundation, Windows Forms)
  • Windows Store Apps
  • Android Mobile apps
  • Apple iOS apps
  • Cross-platform responsive web applications using HTML 5/JavaScript and CSS
  • Enterprise applications
  • SharePoint, Office, SQL Server and cloud enabled apps
  • Components and libraries
  • 2D and 3D games

Programming Languages Used With .NET

C#, C++ .NET, VB.NET, and F# are typically considered the most popular languages to build .NET applications. However, there are close to 50 different languages that are supported by the .NET framework.

At Azavar, most of our developers use C#. Like .NET, C# is now open source and evolving. While C# is a very mature language, we believe it has an exciting future as well.

The .NET Core Components

.NET currently has 5 major components:

The .NET Core Components

  • .NET Framework has traditional .NET libraries like WPF, Windows Forms, and ASP.NET
  • .NET Core is open source component and supports Universal Windows Platform and ASP.NET Core
  • Xamarin brings mobile development using C# and F# for iOS, Android, and Windows Phone
  • .NET Standard library is used as common libraries for all the common top layer components
  • Common Infrastructure Tools, Languages, and Runtime components are all shared along the top-level components 

.NET Competitors

The main .NET competitors in the web development space are Ruby on Rails, PHP, Django and Python. 

Another competitor is The MEAN stack, which is a collection of JavaScript-based technologies (MongoDB, ExpressJS, AngularJS, NodeJS). Its strength includes being open source while the front-end and back-end use the same language so there’s no need for translations. The MEAN stack is also less complex and bulky, allowing you to do a lot with fewer lines of code.

However, as appealing it may appear to be to use one language for both front-end and back-end, many web developers consider general purpose languages, like Java and C#, to have more robust design and tools, compared to JavaScript which is designed mainly to be a client-side language. This makes them a better choice for back-end development.

Challenges for Microsoft and .NET 

Over the past decade, .NET reached a point where it was losing popularity among young developers, primarily due to its higher price point. Consequently, colleges and developers started using open source frameworks such as Ruby on Rails, Node.js, and many other open-source tools. Microsoft has since worked to combat this by providing Visual Studio Community Edition for free and releasing Visual Studio Code which is an integrated development environment that can be used for several open source languages.

In 2015, Microsoft made the server side of .NET open source and recently released .NET Core.  .NET Core is a general-purpose development platform maintained by Microsoft and the .NET community on GitHub that allows .NET to be run on environments other than Windows-based. It includes most of the .NET components including compilers, languages, libraries, and tools.

Mobile app development has been another of Microsoft’s biggest challenges. The company recently addressed the problem in a big way by acquiring Xamarin cross-platform development tools for mobile development, integrating it with Visual Studio, and making it open source. Additionally they released Visual Studio for Mac.

The Strengths of .NET

There are many strengths and advantages for working with .NET. Since it’s a common framework that allows engineers to understand the overall process, once an engineer knows .NET they can walk into any .NET shop and have a leg up on understanding how things work.

.NET can be extended by creating an ecology of libraries that are easy to use and enrich the entire community of programmers and businesses that use .NET or Java. The framework includes the integrated development environment (IDE), Visual Studio, that has several built-in tools to help maximize programmer productivity.

For developers, much of the tedious work that is done over and over is immediately available as reusable code. There’s also an extensive ecosystem of official and third-party libraries that are available through a robust package manager that can take the .NET framework and use it for web development, mobile development, desktop development, and much more.

Here are some additional positives for .NET:

  • Ability to write all sorts of apps
  • Not restricted to one language (C#, VB .NET, etc.)
  • Compatibility with Microsoft technologies and products such as SQL Server
  • Popularity and robustness of C# as a programming language
  • Great for object-oriented programming
  • Pre-built functions
  • Scalable
  • Secure

Summary

While a mature framework, Microsoft .NET continues to be a quickly evolving platform with a tremendous future. The .NET Core is open source and the community is growing rapidly. More and more companies and developers who are looking to leverage these powerful tools are joining the .NET Core community. 

We believe that cross-platform is key to the success of .NET. With the new tools and improvements over the past few years, .NET developers can now build just about any type of application they want.

As the industry grows and changes, .NET will continue to evolve based on the needs of the developer. There’s an exciting future ahead for .NET; it’s cross platform, open source, and full of features that rival any modern set of tools and languages.