.NET CLI: Truths & Fiction
page 1 of 1
Published: 26 Sep 2003
Unedited - Community Contributed
A .NET Framework overview focused on separating fact from fiction.
by Peter Johnson
Average Rating: This article has not yet been rated.
Views (Total / Last 10 Days): 14601/ 38

Who should read this article: Anyone interested in programming with Microsoft's .NET Framework and separating the facts from the fiction. I assume very basic familiarity with what the .NET Framework is, and go from there

By now you've certainly heard of Microsoft.NET, ASP.NET, and the .NET Framework. If not, here's where you can read up:

Common Language Infrastructure (CLI) is essentially synonymous with .NET Framework. You see the term ".NET Framework" more often, but I use "CLI" because it emphasizes that it is a standard, not just another Microsoft proprietary technology, or another Microsoft "standard" that only Microsoft implements. Click to read the PowerPoint presentation on the specification that Microsoft and others submitted to ECMA for standardization so far.

What the CLI is

The CLI is the framework for .NET applications. This includes anything written in ASP.NET and anything written with WinForms. It includes the libraries and objects necessary for common language types--that is, string, integer, array, and many more are all in the CLI, not in the particular language (C#, VB.NET, COBOL.NET, etc.). It also includes a vast number of higher-level libraries to handle network communication, regular expressions, XML, and of course, web services. The CLI is a unified replacement for all the similar libraries that exist today--the Visual Basic runtime, Microsoft Foundation Classes, Active Template Library, Windows Foundation Classes, and Object Windows Library. This library is 100% object oriented; types like char and int that have always been literals are treated as objects in the CLI, which for example makes them available for inheritance just like any other object.

The CLI is language-independent. You can write code for the CLI in C#, C++, JScript.NET, or VB.NET using Microsoft's compilers. External vendors such as Dyadic and Fujitsu are providing compilers for languages supported by their tools (such as APL and COBOL, respectively).

Programs written for the CLI are platform-independent. The .NET high-level development languages all compile to MSIL (Microsoft Intermediate Language), which is a sort of high-level assembly language, but includes no platform-specific instructions or information. Programs written for the CLI are not based on the Win32 API, unlike programs written in older versions of Microsoft Visual Basic, Visual C++, Dyalog APL/W, etc.

What the CLI is not

The CLI really isn't a "new version" of anything per se. It would be misleading to think of it this way. It's a complete rewrite, not based on any previous Visual Basic/Visual C++ libraries. They're not pitching out developers' existing code base, though; there is an upgrade tool for Visual Basic projects, COM components can be called from .NET applications, and "classic" ASP can run alongside ASP.NET on the same server and even in the same application.

Contrary to a few news articles I've read, the CLI and .NET Framework is not the C# language. It is a platform, not tied to any language. As I said, it does include the MSIL, but developers do not write apps in MSIL. They write them in C#, VB.NET, APL.NET, Perl.NET, etc. and then these applications are compiled to MSIL. The obvious similarities and differences between this programming model and the Java programming model will be discussed in another article.

The CLI does not require any particular programming/coding tool. Sun Microsystems incorrectly claims that it does, and that Microsoft "would force [developers to use] Visual Studio (or some other tool that plugs into Visual Studio)". This is not at all true. Developers can write .NET code in any text editor (think Notepad or emacs), then compile the code using command-line compilers.

While programs written for the CLI are platform-independent, they are not yet cross-platform in such a form that they can be used for professional-level development. The CLI does not include ASP.NET (web application development), ADO.NET (database access), or WinForms (Windows client development) which are part of the .NET Framework for Windows, leaving business logic and console applications. Third parties must develop these pieces for non-Windows platforms. There are projects underway to implement the CLI on other platforms; when these other implementations are done, your apps will be run optimized on those platforms without recompiling. The CLI is being implemented on:

Note that for ASP.NET apps, you can still access those through any web browser on any platform; it's the server that must be running Microsoft Windows.

Finally, here is a small sample of the high traffic, production sites that are running ASP.NET now:

What this means

The CLI and the languages that target the CLI almost guarantee a revolution in Windows development. ASP developers have widely and unanimously embraced it and are using it; indeed, existing ASP technologies (2.0, 3.0) are already viewed as classic, and almost legacy. Every popular Windows development language is supported, many for both Windows client and web development. It has the potential for a big impact on other platforms as well.

User Comments

No comments posted yet.

Product Spotlight
Product Spotlight 

Community Advice: ASP | SQL | XML | Regular Expressions | Windows

©Copyright 1998-2017 ASPAlliance.com  |  Page Processed at 2017-03-23 4:10:46 PM  AspAlliance Recent Articles RSS Feed
About ASPAlliance | Newsgroups | Advertise | Authors | Email Lists | Feedback | Link To Us | Privacy | Search