What is C# used for? 5 things you can create with C#
Tags: csharp, softwaredevelopment, programming, dotnet
Published: 2022-02-11 17:49:44

Choosing a programming language for learning and software development can be tough. The choice depends on lots of factors, from ease of use to the number of available libraries and frameworks it has and many more. One of the most crucial considerations is WHAT exactly you can create with the help of a certain technology. This post focuses on the C# programming language, its features and use cases. 

## What is C#? 

C# (pronounced See Sharp) is a relatively simple, general-purpose, object-oriented language developed by Microsoft Corporation to build apps on their [.NET framework](https://www.altexsoft.com/blog/engineering/the-good-and-the-bad-of-net-framework-programming/). C# based on C and C++ languages is meant to be more modern and easier to use. 

With the introduction of .NET Core – a cross-platform, cloud-friendly, and open-source version of the framework – C# can now run across different operating systems like macOS and Linux.  Also, the acquisition of [Xamarin](https://www.altexsoft.com/blog/mobile/pros-and-cons-of-xamarin-vs-native/) provided opportunities to use C# for cross-platform mobile app development. 

### The popularity of C#
 
Since its release in 2000, C# has evolved into a mature and popular programming language. How popular? In 2012, it was granted the award of the programming language of the year by the [PopularitY of Programming Language](https://pypl.github.io/PYPL.html) (PYPL) index. Now C# ranks 5th in this rating, standing slightly behind Python, Java, JavaScript, and C/C++.

Also, C# is the 8th most popular programming language among professional developers who took part in the [2021 Stack Overflow Developer Survey](https://insights.stackoverflow.com/survey/2021#most-popular-technologies-webframe-prof). 


![C# and .NET positions in Stack Overflow Developer Survey](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7ss54k402v1f00rtfbrl.png)

_C# and .NET positions in Stack Overflow Developer Survey. Source: [stackoverflow.com](https://insights.stackoverflow.com/survey/2021#most-popular-technologies-language)_

In addition to that, ASP.NET Core occupies 5th place among the most commonly-used web frameworks. By the way, Stack Overflow was also created using C#, ASP.NET MVC (Model-View-Controller), and Microsoft SQL Server.

### C# characteristics 

As with any other technology, [C# has its strengths and weaknesses](https://www.altexsoft.com/blog/c-sharp-pros-and-cons/). But let’s better focus on some features that make C# stand out and shine.

**It’s high-level and object-oriented like Java and Python.** Being high-level means that it is closer to human languages than machine code and so it is easier to read, write, and maintain. Object-oriented programming (OOP) provides a clear, modular structure by combining data and code into self-contained, reusable objects that makes programs easier and faster to write, maintain, and scale.  
  
**It’s a part of the .NET platform.** The .NET ecosystem is packed with lots of useful resources and capabilities. It supports two main runtime environments, [.NET Common Language Runtime  (CLR)](https://docs.microsoft.com/en-us/dotnet/standard/clr) and [Mono Runtime](https://www.mono-project.com/docs/advanced/runtime/). Among other things, this makes it possible for C# to be executed cross-platform.  Another advantage of the .NET is the interoperability that allows you to develop different classes of one application in C# and in other compatible languages such as C++, F#, and Visual Basic. As such, you can pass instances of one class to a method of a class written in a language different from C#. On the flip side, C# is highly dependent on the .NET platform, which is complex and has a lot of peculiarities many find difficult to grasp. 

**It is a member of the C-family of languages.** As such, C# knowledge will facilitate the learning process of C, C++, or Java because they have similar syntax and follow similar programming principles. 

**It is well-documented and supported by a large dev community. **Having been on this earth for 20 years, C# can boast of the large community of developers who can lend a helping hand whenever you have an unsolved issue. In addition to that, Microsoft takes good care of thorough documentation and constantly updates it. The materials include text instructions, video explainers, tutorials, and much more. 

Okay, let’s cut to the chase and deal with what C# is good for. 

## 5 C# use cases 

As already said, being a general-purpose language, C# has quite a few use cases. The projects may range from enterprise software to mobile apps to games. Not to mention that C# does the backend work within the SQL Server database allowing for building reports, jobs, and modules. So, what is C# used for?
 

### Windows desktop applications

Initially created for Windows, it makes sense that C# is mainly used for building desktop applications on .NET. The framework provides tons of practical features and UI components. The two major technologies for developing Windows client apps are WPF (Windows Presentation Foundation) and Windows Forms. For example, you can use WPF with XAML for the frontend and C# for the backend when designing your Windows app. You can edit, debug, and build code for these and other client apps within the [Visual Studio](https://docs.microsoft.com/en-us/visualstudio/ide/?view=vs-2022) integrated development environment (IDE).

Examples of apps written in C#: 

- Windows Live Writer,
- NASA World Wind,
- Business Plan Pro,
- Microsoft Office Accounting, and more.

### Game development and VR/AR

Vast support from the community nourishes C#’s growth, allowing the language to keep up with the pace of new trends. Video game development is another sphere where C# shows its potential.

Developers use C# with game engines that provide the environment with all crucial game elements like graphics and audio as well as the capabilities to write functions and see the updates you make in real time. Among game engines that support C# as one of their main programming languages are such popular options as Unity and Godot. C# is most commonly used in the Unity game engine, and both are a good choice for beginner game developers. Besides, [Unity generates 60 percent of all VR/AR content](https://circuitstream.com/blog/unity-vs-unreal/), so C# can be a way to go for those who are interested in creating VR and AR apps. 

The games can be executed on different systems, including the hyped Xbox game console. The code can be reused, which makes the development easier to manage and faster. Pokémon Go and Super Mario Run, for example, were created with the help of C#.

### Mobile applications 

In one of the topic-related articles, it is [said](http://www.colbylwilliams.com/2016/09/27/xamarin-vs-native.html), “Anything that can be done in an iOS application using Objective-C or Swift, and anything that can be done in an Android app using Java, can be done in C# using Xamarin.” This basically means that instead of learning two separate languages to create a mobile app for any mobile device type, you can use only C# in combination with Xamarin — a cross-platform mobile app development tool. 

The framework enables developers to write C# code in Visual Studio IDE, compile it to both iOS and Android, meaning you can reuse the major part of the code to develop high-performance native apps for both platforms. Some examples of mobile apps written in C# with Xamarin are [Olo](https://www.olo.com/) (a digital solution connecting restaurants with their customers) and [Skylight](https://upskill.io/skylight/) platform (an AI-based smart glass technology for field management and complex manufacturing).

### Web apps and services 
 

Since its release in 2002, [ASP.NET](http://asp.net/) has become one the of most commonly used technologies to develop web apps. ASP.NET is a Microsoft framework that allows you to create dynamic websites, web apps, and web services with HTML, CSS, and JavaScript as frontend technologies and C# for the server side. 

You can use the latest technology of the .NET ecosystem — Blazor — to build interactive UI with C# instead of JavaScript. [Blazor](https://dotnet.microsoft.com/en-us/apps/aspnet/web-apps/blazor) allows you to run your client-side C# code directly in the web browser, using WebAssembly.

### Linux and macOS apps
 

You can use Mono runtime with C# to write apps for operating systems other than Windows — Linux, macOS, iOS, Android, and more. The runtime takes care of garbage collection, code generation and execution, and other things. Using the Mono environment, there is no significant difference in how C# applications work on different platforms.

## In conclusion
 
Reading this piece should remove any question about the relevance of C#. For its 20 years of existence, C# has gone through a lot of changes and enhancements, making it applicable in many areas. Now we have the 10th version of C# [introduced](https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-10) along with the latest release of .NET 6. Although C# is particularly useful for creating Windows apps and services, it is confidently taking over the game and mobile development areas. On top of that, the language is easy to learn, especially if you are familiar with C languages or Java. But at the end of the road, no language is bad or good. Everything depends on the needs of the particular project.