This article is more than 1 year old

Microsoft's .NET at ten: big hits, strange misses

Silverlight, C# and, er, JScript.NET

We take it for granted now, but it was ten years ago this week — July 7, 2000 — that Microsoft announced its brand-new application development initiative, the .NET Framework, at TechEd Amsterdam. The company then provided more detail at its Professional Developers Conference in Orlando, Florida, the following week.

It was Paul Maritz, now VMware's chief executive competing with Microsoft, but then Microsoft's platforms group vice president, who announced initial developer availability of the new .NET Framework and Visual Studio.NET for "building, integrating and running next-generation, XML-based web services."

The press release is still online.

It has become hard to imagine Microsoft's platform without .NET and the C# language. Even so, some things did not turn out as planned. Here are some hits and misses from the .NET story.

Miss: Code Access Security Policy

Code Access Security Policy was intended to secure Windows by giving administrators the power to control what permissions were assigned to .NET applications and libraries. Unfortunately, configuring the policy successfully was too complex for mere mortals to understand, as Microsoft has now admitted. It has mostly been removed from .NET Framework 4.0.

Hit: ASP.NET MVC

Microsoft's ASP.NET web forms seemed a brilliant advance at the time. You could code a web application almost like a desktop application, with state managed transparently by the framework. As time went on, ASP.NET has become less attractive, with its complex page lifecycle, inelegant hidden variables, and aversion to unit testing. First released in 2009, ASP.NET MVC provides an alternative that is cleaner, faster, more testable, and more in tune with the URL-oriented Representational State Transfer (REST).

Microsoft's Jscript.net

JScript.Net - now a hidden feature of .NET Framework 4.0

Miss: JScript.NET

JScript.NET is a version of JavaScript for .NET, and was fully supported with its own project types in the first Visual Studio .NET. It appeared before a surge of interest in Ruby and Python made dynamic languages fashionable, and attracted little use. Like Adobe's ActionScript, JScript was intended to implement the ill-fated ECMAScript 4.0, which never found its way into web browsers.

Scripted boost for IE?

Speaking of browsers, this post from 2000 makes an intriguing comment concerning Visual Basic .NET: "We intend to add these features back into the Visual Basic .NET language in the next release, in time for our integration with Microsoft Internet Explorer (where the dynamic features of the language are more useful)."

The implication is that Microsoft intended the .NET runtime to be the script engine for IE. That never happened, unless you count Silverlight. If Microsoft had delivered this feature, maybe scripts in IE would not now be so slow compared to those in Firefox, Safari, and Chrome.

Jscript still exists in .NET Framework 4.0, though nobody talks about it.

Hit: C#

Establishing a new language is not easy, but Microsoft's C# has been a success. Its lead architect is Anders Hejlsberg, who cut his teeth on Turbo Pascal and Delphi at Borland. C# rescued .NET from the verbosity of Visual Basic and the complications of Managed C++. C# skills are in high demand, and since the first release Microsoft has added strong language features including generics, Language Integrated Query (LINQ), implicit types, and dynamic types.

Miss: XBAP

The XBAP is a XAML Browser Application, essentially a full Windows Presentation Foundation application but hosted in the browser like an applet. It was originally intended that Windows Forms applications would work like this, as well. Security concerns meant that the feature never really worked until the arrival of XBAPs in .NET Framework 3.0. The question is now: why do a Windows-only XBAP when cross-platform Silverlight has many of the same features and easier deployment?

Hit: Silverlight

First announced as "Windows Presentation Foundation Everywhere", Silverlight is a browser plug-in for Windows and Mac that implements a cut-down .NET Framework along with a multimedia player. Performance is good, and the latest version also supports desktop "out of browser" applications that can be sandboxed or run with full trust for access to local resources. Microsoft has finally delivered cross-platform .NET, but with Apple disallowing plug-ins on iPhone and iPad, and with Adobe Flash entrenched elsewhere, Silverlight looks unlikely to make it as a universal runtime.

Microsoft's Silverlight

Silverlight at last delivers lightweight, cross-platform .NET

Miss: Rotor — open-source .NET for Unix

In the early days of .NET Microsoft flirted with the idea of a cross-platform, standardised .NET that would out-do Sun Microsystems' Java. C# and the Common Language Infrastructure (CLI) was standardised by ECMA, but the standard does not cover the .NET Framework Library. Microsoft also released source code for Windows and BSD Linux, in a project called Rotor and then the Shared Source CLI. Microsoft ensured that Rotor was guarded by a license permitting only non-commercial use, and described the implementation as experimental. The last release was in 2006 for Windows only, and it has all gone quiet.

Hit: PowerShell

Code-named Monad, PowerShell was released in 2006. It is a .NET command-line shell and scripting language aimed at system administrators. PowerShell is particularly useful on Windows Server Core, which is Windows Server without a graphical user interface. Version 2.0, which came with Windows 7 and Server 2008 R2, includes the ability to open a PowerShell session on a remote machine. Microsoft's Exchange Server is now best managed using PowerShell, with PowerShell elegant and easy to extend. ®

More about

TIP US OFF

Send us news


Other stories you might like