Introduction

The Windows community is a universe of uniformity in which users depend on robust commercial applications and standard graphical utilities. With the Vista release right around the proverbial corner, Microsoft is engaged in much-needed reinvention. Those of you that have kept up with the Redmond renaissance know that Microsoft will soon unleash a number of powerful new developer frameworks and software construction utilities. It is clear that our favorite software giant plans to cultivate a culture of developer empowerment.

On the Linux platform, the text-based shell is the nexus of computational control and the point at which proper articulation of will can transform commands into consequences. The emulated DOS command shell found in Windows is a shallow farce by comparison, and Microsoft has done little over the years to imbue it with greater power. Now Microsoft is prepared to augment its antiquated command line with a revolutionary new shell that will provide Windows users with a whole new level of control. The Microsoft Command Shell (MSH) features a unique object oriented syntax, extensive support for versatile .NET technology, and an adequate assortment of commands. Available for free download from Microsoft's Beta site, the second MSH beta release provides profound insights into the future of the Windows command line.

Since the release of the beta, the features and functions of the Microsoft Command Shell have been a topic of discussion in the Orbiting HQ. How does MSH compare with Linux shell technologies? Does it increase user efficiency or is it more trouble than it is worth? In an attempt to answer those questions and many others, I decided to put it to the test. Now you can learn what the fuss is all about as we explore the myriad mysteries of MSH.

This is a moderately technical overview and it contains content that may be difficult for nonprogrammers to grasp, so those of you that don't have a background in software development may want to skip around and ignore some of the technical details. Rest assured, there is plenty of content here for regular users and system administrators as well as coders. The code samples are instructive by themselves, so if you get really bored, perusal of the examples will illuminate many of the features of MSH and save you some time.

A concise introduction to .NET

From an architectural standpoint, the .NET platform (pronounced "dot net") resembles Parrot and J2EE. The platform consists of a portable development framework and runtime environment that facilitate construction and execution of platform independent applications. With an emphasis on reflection, network transparency, and rapid application development, the .NET API provides a comprehensive set of classes for robust object oriented programming. The Common Language Infrastructure (CLI) is an official ECMA standard that describes the type system, execution environment, instruction set, and base classes of the .NET framework. The machine-independent instruction set, called the Common Intermediate Language (CIL), is a stack-based, low-level, human-readable, object-oriented assembly language that ensures transparent interoperability between the various languages that target the .NET platform. The Common Language Runtime is a virtual machine and runtime environment that effectively implements the CLI standard.

Compilers that target the .NET platform convert source code into CIL, which is then compiled into .NET assembly for deployment in DLL or EXE files that conform with the Portable Executable (PE) format. The .NET assemblies can then be run by the Common Language Runtime (CLR), which translates the .NET assembly into native machine code while execution occurs. Of the approximately 40 languages that target the .NET platform, many are implementations of other languages like Python, Eiffel, and Scheme.

Download the PDF

(This feature for Premier subscribers only.)