Monday, September 22, 2008

DLR Namespace Change Fire Drill

The other significant change in IronPython 2 Beta 5 was a namespace change for one of the core assemblies: Microsoft.Scripting.Core.dll

At the heart of the Dynamic Language Runtime are expression trees - the Abstract Syntax Trees of DLR languages. Another part of the .NET framework (at least since .NET 3.5) is LINQ - Language Integrated Query. LINQ makes querying a first class language concept. In its most basic form (over objects) it resembles Python list comprehensions and generator expressions. With the right providers you can also use LINQ to query XML and databases - with your LINQ expressions being 'compiled' to SQL or an appropriate query language.

LINQ expression trees represent query expressions. In IronPython 2.0 Beta 4 the DLR expression trees merged with LINQ expression trees and were moved into the same namespace.

Unfortunately this caused name collisions all over the shop and made it virtually impossible to use IronPython or the DLR in projects that also used .NET 3.5 (particularly for ASP.NET projects). To resolve this problem the names have been moved again.

Harry Pierson explains the issues and the solutions:
The DLR Hosting blog summarises it more succintly:

"The recent beta release of the DLR allows the usage of LINQ and other CSharp 3.0 features in an application that hosts the DLR."

No comments:

Post a Comment

Note: only a member of this blog may post a comment.