Today the C # programming language is one of the most powerful, rapidly developing and in-demand languages in the IT industry. At the moment, a variety of applications are written on it https://www.dataxdev.com/services/dotnet/ : from small desktop programs to large web portals and web services serving millions of users every day.
C # is not a young language anymore and KFK and the entire .NET platform has come a long way. The first version of the language was released along with the release of Microsoft Visual Studio .NET in February 2002. The current version of the language is C # 9.0, which was released on November 10, 2020 along with the release of .NET 5.
C # is a language with a C-like syntax and is close in this respect to C ++ and Java. Therefore, if you are familiar with one of these languages, it will be easier to master C #.
C # is object-oriented, and in this regard has taken over a lot from Java and C ++. For example, C # supports polymorphism, inheritance, operator overloading, static typing. The object-oriented approach allows you to solve the problems of building large, but at the same time flexible, scalable and extensible applications. And C # continues to evolve, and with each new version, more and more interesting functionality appears, such as lambdas, dynamic binding, asynchronous methods, etc.
The Role of the .NET Platform
When people say C #, they often mean .NET platform technologies (Windows Forms, WPF, ASP.NET, Xamarin). Conversely, when people say .NET, they often mean C #. However, although these concepts are related, it is wrong to identify them. The C # language was created specifically to work with the .NET framework, but the concept of .NET itself is somewhat broader.
Bill Gates once said that the .NET platform is the best Microsoft has ever created. Perhaps he was right. The .NET framework provides a powerful framework for building applications. The following main features can be distinguished:
Support for multiple languages. The platform is based on the Common Language Runtime (CLR), thanks to which .NET supports several languages: along with C #, it is also VB.NET, C ++, F #, as well as various dialects of other languages tied to .NET, for example, Delphi. NET. When compiled, code in any of these languages is compiled into an assembly in the Common Intermediate Language (CIL), a kind of assembly language for the .NET platform. Therefore, under certain conditions, we can make separate modules of one application in separate languages.
Cross-platform. .NET is portable (with some limitations). For example, the latest version of the platform at the moment - .NET 5 is supported on most modern operating systems Windows, MacOS, Linux. Using various technologies on the .NET platform, you can develop applications in C # for a wide variety of platforms - Windows, MacOS, Linux, Android, iOS, Tizen.
Powerful class library. .NET provides a single class library for all supported languages. And whatever application we are going to write in C # - a text editor, chat room, or a complex website - one way or another, we use the .NET class library.
Variety of technologies. The common language runtime (CLR) and the base class library are the basis for a whole stack of technologies that developers can use to build certain applications. For example, ADO.NET and Entity Framework Core are designed to work with databases in this technology stack. For building graphical applications with a rich rich interface - WPF and UWP technology, for creating simpler graphical applications - Windows Forms. For mobile app development - Xamarin. For creating websites and web applications - ASP.NET etc.
Add to this the actively developing and growing popularity of Blazor, a framework that runs on top of .NET and which allows you to create web applications on both the server and client side. And in the future, it will support the creation of mobile applications and, possibly, desktop applications.
Performance. In a number of tests, .NET 5 web applications outperform web applications built with other technologies in a number of categories. .NET 5 applications are, in principle, high performance.
Also worth noting is such a feature of the C # language and the .NET framework as automatic garbage collection. This means that in most cases we do not have to worry about freeing memory, unlike C ++. The aforementioned common language runtime (CLR) itself will invoke the garbage collector and clean up memory.