Secret Microsoft Project Ties IronPython to ASP.NET

Microsoft unveils a new plan to meld its IronPython and ASP.NET languages and introduces a "secret project" to use them to build data-bound applications.

LAS VEGAS—Microsoft continues to work to integrate dynamic languages into its set of offerings for developers, and is prototyping a method for facilitating data manipulation via dynamic languages.

Microsoft officials have said the company has big plans for increased support for dynamic languages, starting with its Python implementation and moving to more dynamic languages.

In a session at the DevConnections conference here, David Ebbo, an architect on Microsofts CLR (Common Language Runtime) dynamic language team, and Jeff King, a program manager in the Microsoft Developer Division, discussed how Microsoft has implemented IronPython on the companys ASP.NET platform.

IronPython is Microsofts implementation of the Python language for .Net. The company released IronPython 1.0 in September 2006.

Meanwhile, Ebbo said Microsoft has released a CTP (Community Technology Preview) of a new Microsoft IronPython for ASP.Net product that is focused on helping developers to create richer Web applications when using Microsofts Visual Studio or Visual Web Developer tools.

In addition, Ebbo said his team has delivered a prototype of a "secret project" called Simplified Data Scenarios where developers can "easily build data-bound applications from scratch" starting only with a database.

The prototype enables users to customize applications declaratively using ASP.NET or programmatically using IronPython, Ebbo said.

Meanwhile, King said IronPython is "really just the first of a series of dynamic languages" Microsoft will support. "Were looking at Ruby, PowerShell, JScript" and others, he said.

Ebbo said the Simplified Data Scenarios framework will work with other dynamic languages as well. "Well have it first on IronPython, but it will work with others," he said.

In a blog post on the subject, Dmitry Robsman, Development Manager for ASP.NET and IIS (Internet Information Services), said IronPython for ASP.NET "might look as just another language for ASP.NET (in addition to C#, VB.NET, and J#), but in fact the technology is quite a bit different.

"We do not use CodeDOM to support IronPython, but use Lightweight Code Generation instead. This makes pages much snappier (no Assemblies created on disk by launching a command line compiler) and it scales much better to a large number of pages (generated code is garbage collectable). And Python is a cool dynamic language that makes possible a few things difficult with static languages."

Robsman also said the new offering also includes Visual Studio integration, including the support for Visual Web Developer. "It is not quite to the par with C# in VB.NET (IntelliSense is a more difficult problem with static languages), but most things work pretty nicely," he wrote.

/zimages/1/28571.gifSurvey: Microsoft IIS 6 ahead of Apache. Click here to read more.

Ebbo said performance with dynamic languages is typically not as good as with static languages, as "C# is faster than IronPython."

However, compilation time is faster with IronPython, he said. Moreover, Ebbo said IronPython has proven to be scaleable, as Microsoft has tested it on more than one million pages.

Microsoft describes IronPython for ASP.NET as a free extension to ASP.NET that is targeted at ASP.NET developers looking to enjoy the simplicity and flexibility of a dynamic language, specifically IronPython and Python developers looking to harness the power of ASP.NET and its RAD (rapid application development) environment.

Meanwhile, Microsoft continues to make moves regarding support for dynamic languages, including hiring top talent.

In 2004, the company hired Jim Hugunin, the creator of IronPython. And last month the company trumpeted its hire of John Lam, the creator of the RubyCLR bridge between the Ruby language and the Microsoft CLR.

/zimages/1/28571.gifCheck out eWEEK.coms for the latest news, reviews and analysis in programming environments and developer tools.