Preface: The title might sound very crazy and funny - Beginning .NET - in a time when we're probably reaching the road for .NET to take its next big jump with the next version of the CLR and exciting things like Indigo, Avalon, etc. over the horizon.
The idea of this article series is not to teach somebody how to begin with .NET - but to help many of the developers who are currently “working on .NET projects” to get some insights into the deeper aspects of the framework that is now their bread and butter. I thought the timing for this was never too late, because it is very essential for the developer breed to understand what they're working on, before they go out exploring the next big thing.
Getting Started
What is Microsoft .NET?
Microsoft .NET is the next generation environment that Microsoft launched in early 2000. The environment consisted of a whole new array of enterprise servers, a brand new platform for development and deployment of applications and services - known as the Common Language Runtime (CLR), a set of new languages targetted at building programs for the new platform (like C#, VB.NET, JScript.NET and Managed Extensions for VC++) and a set of developer tools like Visual Studio .NET for assisting rapid application development.
What is the CLR?
In the late 90's, the COM and MTS teams at Microsoft started work on a set of languages and a new platform for development and deployment of applications and services. This platform was first named COM3 as the successor to COM and COM+. There was a problem in some Microsoft operating system versions with having a folder named 'COM3' - and so the name was quickly changed to Component Object Runtime (COR). Other names during the development lifecycle included the COM+ Runtime, Lightning, and the Universal Runtime (URT). Just prior to first beta release, the framework was named the Common Language Runtime (CLR) as we know it today.
The CLR introduces a lot of new and interesting concepts to developers of the Microsoft world. Unlike previous platforms like the VB platform, the CLR brings a very different programming paradigm by exposing developers to more advanced, grassroot level technologies. Earlier, this used to be the niche domain of C++ and Win32 API developers.
The CLR is an “implementation” of the Common Language Infrastructure (CLI), which is a specification that describes the core components of the framework: the Common Type System (CTS) that defines how the types in the framework should be, the Common Intermediary Language (CIL) which defines the common language that all languages compile to and the file formats and metadata formats that any language/compiler developer requires to adhere to in order to target develop CLI-compliant languages.
The CLR is one such implementation of the CLI which is also the only commercial version of the CLI till date. Other implementations of the CLI include the Rotor project and the Mono project.
OK, I'm interested. Where do I start?
Following this entry, there will be a series of articles on working with .NET and its internals. For starters, you will need the following:
1. The Microsoft .NET Framework: The current version is v1.1 (there is a v2.0 in BETA) and the .NET framework is freely downloadable from the Microsoft website. At the time of writing this entry, detailed instructions for the download are available here: http://msdn.microsoft.com/netframework/technologyinfo/howtoget/default.aspx
2. An editor for development: This is where most developers do not know what to do. I've heard people coming up to me and saying that their company does not give them a copy of VS.NET to load at home. Perfectly valid! They are licensed copies and you are not supposed to distribute them freely.
Fortunately, there are a lot of options available:
Visual Studio .NET: This is the commerical option and will cost you money. Details are available on the Microsoft website: www.microsoft.com/vstudio #develop: Pronounced, sharp-develop, this is an open-source option provided by four guys who wrote it while they were still waiting for VS.NET to be released. I have tried it and it is very close to the real thing! Downloadable from: www.icsharpcode.com ASP.NET WebMatrix: If you plan to learn the .NET framework with command-line programs and then do serious development only to build web sites and web applications, then this is the tool for you. Produced by a Microsoft community effort, this is one of the best Web Development tools available out there. Downloadable for FREE at: www.asp.net SciTE: This is one of Rosh's favourites and he'll swear by it any day. (He actually wanted me to add this here!) SciTE is a wonderful text editor and you'll have to do all the hard work of organizing a project of many files yourself. But for a simple text editor, SciTE gives you color-coding and language-specific features which are 100% configurable. SciTE is an implementation of Scintilla - which is an engine for building editors yourself! Details at: www.scintilla.org/SciTE.html Notepad: Works! For most of the simple examples and learning the framework, Notepad is sufficient. So if you don't have the bandwidth and luxury of downloading any of the above, notepad will still suffice.
Visual Studio .NET: This is the commerical option and will cost you money. Details are available on the Microsoft website: www.microsoft.com/vstudio
#develop: Pronounced, sharp-develop, this is an open-source option provided by four guys who wrote it while they were still waiting for VS.NET to be released. I have tried it and it is very close to the real thing! Downloadable from: www.icsharpcode.com
ASP.NET WebMatrix: If you plan to learn the .NET framework with command-line programs and then do serious development only to build web sites and web applications, then this is the tool for you. Produced by a Microsoft community effort, this is one of the best Web Development tools available out there. Downloadable for FREE at: www.asp.net
SciTE: This is one of Rosh's favourites and he'll swear by it any day. (He actually wanted me to add this here!) SciTE is a wonderful text editor and you'll have to do all the hard work of organizing a project of many files yourself. But for a simple text editor, SciTE gives you color-coding and language-specific features which are 100% configurable. SciTE is an implementation of Scintilla - which is an engine for building editors yourself! Details at: www.scintilla.org/SciTE.html
Notepad: Works! For most of the simple examples and learning the framework, Notepad is sufficient. So if you don't have the bandwidth and luxury of downloading any of the above, notepad will still suffice.
Get hold of one of these editors and you're now ready for .NET development.
In my next entry in this series, we'll look at the languages and compilers available when you install the .NET SDK. Also, we'll plunge into our first .NET program and then dissect it on what is happening under the hoods.
Remember Me
Page rendered at Friday, November 21, 2008 4:29:20 AM (India Standard Time, UTC+05:30)
Disclaimer The opinions expressed herein are my own personal opinions and do not represent the views of Microsoft Corporation in anyway.