A key part of what we do in Developer Division is to deliver tools and resources that help developers be highly productive.  In that context, I am very excited to have the next LINQ (.NET Language Integrated Query) CTP available for you to download.


You may remember that at the last PDC in Los Angeles, we announced the .NET Language-Integrated Query (LINQ) project to take .NET developers to the next level of productivity. At that time, we talked about the challenges of building data-intensive applications.  Today’s developers need both language flexibility and data source flexibility – they need languages that allow them to work with multiple data sources in sophisticated applications.  Instead of adding a few APIs to incrementally improve programming with data here and there, we decided to change the game.  Our goal with LINQ is to give developers the ability to transform and aggregate data from different domains while still working in familiar programming languages.  Today’s CTP is a step towards making it easier to write data-intensive applications across a wide variety of data types.


Your feedback and excitement about LINQ helped drive the next stage of innovation on the LINQ project.  This preview combines features that we had planned, features that you requested after trying out the PDC preview and some new ideas beyond the former two.  All together, this preview sets the tone for the innovations in the next release of Visual Studio and the .NET Framework codenamed “Orcas”.  It builds on key technologies in Visual Studio 2005 and .NET Framework 2.0 like generics and light-weight code generation that you can use today in our products.


The preview has a lot of interesting features for both VB and C# developers.  In addition to navigating relationships between objects, you can now also do joins.  Even in joins, we have gone beyond giving you flat results that you get in Structured Query Language (SQL).  You can get hierarchical results like you would expect in the world of objects.  More interestingly, there is new way for you to build your own pluggable query processor – through IQueryable<T>.  The mechanism we used to build DLinq is now streamlined and available for you to build interesting new components that can be programmed using the LINQ pattern.  Now what you can do is bounded only by your creativity.


We are glad that you tried our last preview and gave us frank feedback about things you loved and things you missed. That is exactly how our partnership should work.  This CTP does contain inheritance support in DLinq, enhanced support for stored procedures, support for mapping files, a new designer to build mapped classes and LINQ over DataSet. 


There are samples and documents and lots of goodies like visualizers and better VB IDE support for you to try out the preview more easily. So go ahead and take it for a spin and tell us what you think. We are excited to continue the two-way dialog and feedback as you try out all the new features that include productivity enhancements, support for a broader range of development scenarios and the ability to integrate LINQ with existing code.