As the author of a C# book, I have been working with Microsoft's .NET Framework and the Microsoft C# compiler for a couple of years now. Recently, I've spent a bit of time working with C# and .NET without using any of Microsoft's .NET products.
If you are interested in .NET, you might want to check out some of the non-Microsoft initiatives that are happening. The one that I've been watching recently is the Mono project. Like Microsoft, this group has created a C# compiler that works. Additionally, they are creating an implementation of the Common Library Infrastructure (CLI) as well as the .NET Framework classes. When this project is done, you should be able to do complete C# development of full-fledged .NET applications that include nearly everything you can do on Microsoft's .NET Framework. You'll be able to do this without using Microsoft's runtime or tools.
The Mono project is even working to convert other features that are needed by developers. This includes features such as database access and windows features. Within the Mono project there are groups of people working to create implementations of ADO.NET, Windows.Forms, and more. There is even work being done on converting the Microsoft.VisualBasic classes that are in Microsoft's implementation of the .NET Framework. This would provide support for Visual Basic .NET applications when using Mono.
The Mono project is targeting more than just the Windows operating systems. Its primary targets are actually Linux and Unix. Although the code is not even at a beta stage, the mono Web site currently lists downloads of the project in Red Hat, Mandrake, SuSE, Debian, and Windows. You can also pull down the code to use on other operating systems. Be aware that the 'fullest' release is labeled as 0.19.
Even at this stage, you can see the Mono project coming together. The command line C# compiler works. If you stick to the syntax of the C# language, then you can write, compile, and run programs. While I've not ran every listing yet, I have ran most of the code listings in the first fourteen chapters of my Teach Yourself C# in 21 Days book. With the exception of the Windows Forms applications, everything has compiled with the Mono compiler and executed using the Mono runtime. These first fourteen chapters cover the C# language as defined in the ECMA standard. They include some of the System classes such as those for printing to the console (Write and WriteLine), for working with random numbers, and for reading from the console. Additionally, they cover language features that range from data types and basic language constructs to indexers, properties, inheritance, polymorphism, and much more. Listings with all of these features compile and execute!
The C# language can be the foundation of what is in the .NET Framework classes. As such, I believe it is safe to say that the foundation of the Mono project has been built and it works. It is only a matter of time for the classes to be built. The result will be C# and .NET tools as well a runtime environment that can be used on multiple platforms — that are not Microsoft Windows!
Resources to check out:
- The Mono Web site: www.go-mono.com
- C# standards information: www.ecma.ch/publications/standards/ECMA-334.HTM
- CLI standards information: www.ecma.ch/publications/standards/ECMA-335.HTM
- My C# book: Sams Teach Yourself C# in 21 Days
# # #