C# and .NET are among the leading technologies in the field of software development. The following article describes how the two technologies differ and why they are virtually inseparable.
Software development with .NET
“.NET” (pronounced: dotnet) is the leading development platform from Microsoft. It is a collective term for various software platforms (so-called frameworks). Worth mentioning are in particular
- the .NET Framework (at Wikipedia: https://de.wikipedia.org/wiki/.NET) and
- .NET Core (at Wikipedia: https://de.wikipedia.org/wiki/.NET_Core)
Both the .NET framework and .NET Core consist of other frameworks. Their main task is to make the functions of the operating system and other software components accessible to the application developer.
The .NET Framework runs only on the Windows operating system. .NET Core is a free and open source variant of the .NET framework, which is also available for Linux and macOS.
.NET can be used to program both desktop and web applications for a wide variety of platforms and devices.
Programming with C#
“C#” (pronounced ci-sharp, on Wikipedia: https://de.wikipedia.org/wiki/C-Sharp) is a programming language and is thus suitable for coding programs with algorithms and data structures. The creation of these programs is usually done with the Microsoft Visual Studio development environment. Both Visual Studio and the programs created with C# require for execution under Windows. MacOS and Linux the .NET framework or .NET Core. Xamarin is an exception to this. This is also included in Visual Studio, but is particularly suitable for creating mobile apps. The program code created with Xamarin is translated into the native programming languages of iOS and Android and executed on the devices directly without the involvement of .NET.
While C# contains only a two-digit number of language elements, .NET’s class library has several thousand elements (methods, functions, members, etc.). In order to program efficiently, a good knowledge of C# and extensive knowledge of the class libraries to be used are required. Besides C#, there are other programming languages that can be used to develop software applications based on .NET technology. However, C# is one of the most widely used programming languages in the world.
What are the advantages and disadvantages of C# and .NET for custom software?
Developing custom software with C# and .NET has many advantages. There is an almost inexhaustible supply of resources worldwide, i.e. literature, forums, training courses and programmers. Thus, the investment in a custom-developed software is secured. Even if a programmer or service provider should fail, one can still find a replacement many years from now.
C# and .NET were developed by Microsoft and are continuously developed further by Microsoft. So there is a solid company behind it that provides support for the products. So again, it is very likely that further development will be assured for many years.
Through the development of Xamarin and .NET Core, the technologies are now available on all common platforms. It is suitable for developing virtually any type of enterprise software. There are only two exceptions: C# and .NET are just as unsuitable for applications that are run very close to the hardware, such as hardware drivers, as they are for applications that have to run in real time down to the millisecond.