“What do you do ?”
This simple question can be a real pain to answer for people like me. It is not because I’m shy or anything like this. It’s because I work in a complex domain, software development, and it can be really hard to explain especially to non technical people. Yet some of them were/are interested by the topic. And this is why I’m creating this blog post. I want to give them an overview of what I do without being too technical.
The short answer to the previous question is : “I am a .NET developer”. A what ?! First of all, I am a developer and thus I create software/programs for computers and to do so I use a technology called .NET (pronounced “dotnet”).
As a developer/programmer I spend a lot of my time writing code. This code is used to do specifics actions on a computer in an automated way, this is what we called a program or a software. People use software everyday and in a lot of things. A video game is a software, a website is a software, the web browser you use to visit these websites is also a software. Where there are electronic components it is likely that there are also some programs written by developers. The code of these programs are written using programming languages and there are a lot of them and I mostly use the one called CSharp (C#) which leads me to the next topic.
.NET is a framework developed by Microsoft. A framewhat ?! You can check the Wikipedia page to have a better understanding (or not) of a software framework but let’s say that is the kind of toolbox that help a programmer to build software.
So is C# a framework ? No, C# and .NET are two different things. C# is a programming language which is compatible with the .NET framework, it means that C# can use the functionalities present in .NET. It is possible to use .NET with a different language than C# (a list of compatible languages can be found here), for example I made an introduction for F# in my last article which can work with .NET. It is also possible to use C# without .NET even if it is not recommended since this language has been created for the framework. The blog post you are currently reading can be an analogy to this concept : I used several tools (~ a framework) to help me write it and I chose to use english (language) to express my thoughts, I could have done the same in french with the same tools to express the same thoughts.
So what can people do with the .NET framework and a compatible language ?
There is a part of the framework called ASP .NET that allows developers to build websites and other web-based functionnalities. I use the features provided by this part of the framework in my everyday job, especially the MVC extension and a few others.
I also use a feature called WCF (Windows Communication Foundation) in order to create services that provide information across the Internet. For example the Facebook application on a smartphone will use these kind of services to retrieve your personal informations and the updates related to your account.
The .NET framework offers features to develop applications (on a computer or on a smartphone) with WPF (Windows Presentation Foundation). Back in school I used this technology to build a media player like the one available in Windows.
There are also some tools available with .NET to ease the development process. The .NET developer best friend is Visual Studio, this software allows a programmer to write code in C# (or in another language) and to test it, debug it and organize it. We also use a tool called TFS (Team Foundation Server) which provides team management functionnalities. TFS also provides source control management that allow a team to create backups of its work.
I won’t go into the details but the .NET framework also provides functionnalities and tools for video game creation (on PC, Xbox, Kinect), for cloud management (Azure) and much more. Microsoft is behind this framework so it can be used with almost every product this company has to offer. This is what I like about this technology : it’s wide and offers a lot of interesting features.
I hope this will help you have a better understanding of my profession and passion. Feel free to comment if some parts are still confusing or too technical.
See you next time !