C#, the Java of Microsoft

The C# language is easier to use than C++, however, it require the runtime of .NET to run programs. You can convert you C++ code with no difficulty.

C# was designed by Microsoft (tm) in 2000 for its new .NET platform as an alternative to Java, inspired (as it) by C++, by Java and various other languages. It keeps most Java improvement, a clear object orientation.
Over time it has features that go far beyond what Java provides. For example generic programming that was implemented by Jave recently only. It also allows parallel programming, has a framework of event programming event (improperly called reactive).

C# may be compiled to native on the new Roselyn platform. The native tool chain is described on the MSDN blogs.

Many other languages are implemented on this platform also. This include C++, Pascal, Python, Java and even Cobol and Fortran.
You can mix languages on the .NET platform and use C# along any language, they can share the same objects.

A language for the future?

The future of the language was not clearly defined beyond the Windows plateform, until the announcement of April 2014. Previously, one could have thought that its implementation in Silverlight, once considered as the platform of the future for Web and mobile apps, will make it an essential language. Then Microsoft moved to Metro/Modern UI, on Windows 8 using HTML 5 and JavaScript (along XAML and C#).
C# seems no longer to be viewed by Microsoft as the sole language for immersive apps on the Modern UI.
Microsoft has even created a new language, TypeScript, with classes, interfaces and modules, which is compiled into JavaScript, that reinforces the importance of the latter.

But in 2014, Microsoft announced that the new Roslyn compiler is open source like a large part of the .NET tools, and will be managed by an independent foundation. This greatly facilitates its use on all platforms.
Now it a language for desktop applications, for server-side apps, and also for mobiles, so it is universal (there is even a micro-framework for embedded systems).

Features and differences with C++

C# compiles into intermediate language, the CIL (Common Intermediate Language), which runs on a virtual machine, the CLR (Common Language Runtime). It is the implementation of the CLI, the common language infrastructure.

The main difference with C++ is the use of a garbage collector to manage memory.

Compared to Java it where each class is stored in a separate file, this constraint that does not exist for C#.

Sample of C# code : Merging two strings and displaying the characters.

 string s = "demo" + "trail";
 foreach (char c in s)

Development tools

Microsoft provides a true RAD (Rapid Application Development) for free, Visual Studio Express and they are several open source alternatives.

.NET compatible platform including a C# compiler.

Visual Studio Express
A C# compiler is included.

Mono Develop
A fork of Sharp Develop by Xamarin. Is not comparable to Visual Studio but is an alternative to the Express version for all systems.

Sharp Develop
IDE for applications made in C# and other .NET languages.

Compile the C# language to bytecode for the Dalvik virtual machine of Android. May be useful to businesses, but the license is a deterrent.

Source code of the C# compiler of Microsoft, included in Visual Studio.

Tool chain to make native code. Requires VS.

Compile C# to JavaScript (with Roslyn and Visual Studio) to make Web apps.