C# is an object oriented programming language developed by Microsoft. The C# language is designed to be platform independent, and borrows its syntax heavily from both Java and C++ (so any experience of those languages will help those starting out). The name comes from the musical notation, and indicates a progression or incremental verison of C++.
C# is part of the wider Microsoft .NET Framework. The .NET framework is a set of libraries and standards that can be used across a variety of languages (including C#). The framework offers support for a number of user interface, data access and web application libraries and is the primary means of creating modern Windows applications.
Why use C#?
C# has become the goto language for Windows application developers for a number of reasons. Firstly it is heavily promoted in this way by Microsoft, and they offer a strong suite of tools to support it - Visual Studio being the most obvious example.
C# is also a popular language for projects involving the .NET Framework. Included with the Windows operating system (Windows Server 2008 and Windows Vista shipped with .NET 3.0. Version 3.5 was included with Windows 7 and Windows Server 2008 R2. Windows 8 includes version 4.5 by default) .NET has been adopted as somewhat of a standard for applications on the platform.
The .NET framework has been implemented on other platforms (such as Linux), by the Mono Project, so those wanting to develop away from Windows have options. Xamarin also offer a number of products that allow developers to create mobile applications in C#. Microsoft recently unveiled news of a new open source compiler for .NET called Roslyn with which they are plotting the future of both Visual Basic and C#.
Performance wise C# was never designed to challenge languages like C or C++, running as it does on top of a ‘Just In Time’ (JIT) compiler (Languages like C++ are compiled for specific platforms). Its design goals are centered more around sound object oriented principles, and providing resilience and relatively easy debugging. That said for hardware independent projects it is a more than capable modern language. Rosyln is part of a wider project by Microsoft to open source a lot of its development technologies, which many expect will help improve both compatibility and performance in the future.
Useful tools to look out for
Visual Studio (more information on Update 2 for Visual Studio 2013 here) is the obvious tool for anyone wanting to get serious about C# development. As well as offering the features you would expect (syntax highlight, intelligence, integration with other Microsoft tools and technologies) it is also extremely well supported by the wider development community.
However Visual Studio is far from the only tool the budding C# developer should be aware of. Here are a couple more:
- User interface developer tools from Infragistics - Our own set of tools are perfect for anyone getting serious about C# Development. Our Windows Forms tools are particularly popular with C# developers.
- Reshaper - Code refactoring and inspection all integrated into Visual Studio. A very useful tool.
- GhostDoc - A Visual Studio extension to aid code documentation.
More information
Hopefully this article has given you a good feel for C#, what it is, and how you can make it work for your projects. Those wanting to continue their education should have a look at the following links and resources:
- Our blog - The Infragistics blog contains a wealth of useful information for the budding C# developer.
- The Scott Hanseman Blog - Scott works on the web platform team at Microsoft and runs a well known blog covering a host of technical subjects. Well loved by developers, there are always interesting posts covering C# and the .NET framework.
- Visual C# resources from Microsoft - A great set of guides for those just starting out.
- Bill Wagner blog - Bill is a C# MVP (Microsoft ‘Most Valued Professional’) and the author of many C# books. His blog is very in-depth, and often technical, but is a valuable resource from a real subject matter expert.