As Exchange 12 Looms, Microsoft Tackles Monad Bugs
Microsoft is busily prepping Monad, its new command-line scripting language, for initial public appearance in Exchange 12. But with beta 3 of Monad available since January 2006, early users keep finding new bugs in the new scripting environment—and anyone who wants to use Monad with old releases of Visual Studio (VS) is now just about out of luck.
Officially known as the Monad Shell Scripting Language (MSH), the new environment is getting big billing from Microsoft as a quick method of automating Exchange tasks without relying on GUI-based systems management tools.
Yet, also importantly, Monad remains a separate entity from the Exchange messaging server. Well-versed users are sure to find countless other ways to use the shell for customizing administrative controls, and ultimately for saving time on Windows application development.
But although Monad scripting can be quick, it isn’t necessarily all that easy at first. Microsoft officials acknowledge that a certain learning curve is attached.
Concepts for Grokking
"There [is] a set of cornerstone concepts that people need to grok, or Monad won’t make sense to them," said Jeffrey Snover, Microsoft’s Windows Command Shell architect, in a recent posting to an Internet newsgroup.
Monad brings a number of departures from command shell tradition. Unlike many command shells, which revolve around text commands, Monad is object-based. Monad does employ commands that are somewhat analogous to those used in other shells, but Monad’s scripts, known as cmdlets (pronounced "command-lets"), are typically much smaller and lighter.
Monad’s cmdlets are expressed as noun-verb pairs, such as Get-Process. The commands use facilities that include other cmdlets, providers, object pipelines, and user interaction, for example.
There are also many smaller differences between Monad and other scripting shells. For one thing, with a lot of other scripting shells, you only deal with a single "provider," because you’re always working inside a directory. But with Monad, you’d better get used to the notion that the filesystem provider is just one of many providers, notes Keith Hill, a Microsoft MVP.
Microsoft released beta 2 of Monad at its Professional Developers Conference (PDC) in September 2005, at the same time unveiling its intention to use Monad scripts to replace Windows Management Instrumentation (WMI) providers and Collaboration Data Objects for Exchange Management (CDOEXM) starting in Exchange 12.
The x86 and x64 editions of Monad beta 3 went up for download from Microsoft’s web site early in 2006, a couple of months prior to the much rumored—yet still unconfirmed by Microsoft—March 2006 release date for Exchange 12 beta 2.
Along the way, Microsoft’s Monad and Exchange 12 development teams have relied quite heavily on early users for bug sightings and other feedback about features and usability.