Language Integrated Query (LINQ)

Historically and industry-wide, programming and data have been two different islands. The development of data-enabled applications has presented developers with multiple challenges in the past decade.  Developers have been asked to master multiple languages to build enterprise scale data-enabled applications.  There are some key challenges primarily related to the semantic differences between the programming world and the data world.  I recently heard one of our RDs (Regional Directors) use a nice metaphor to describe the situation – “This is like using one language to order the drinks and another to order the main dinner”.

At PDC 2005, we are announcing a solution to the above problem for the .NET platform.  This solution is based on some innovative and ground-breaking work on programming languages, driven by Anders Hejlsberg in the division, and is called the Language Integrated Query (LINQ) project.  LINQ is an extensible set of language extensions currently available for Visual C# and Visual Basic.NET.  LINQ enables developers to query objects, databases and XML using a unified programming model because LINQ makes data transforms and queries first class NET citizens.

I strongly believe LINQ will significantly enhance developer productivity, which has been a key goal with every new version of Visual Studio.  We are releasing a preview version of the technology at PDC 2005.

I would love to hear your feedback on this.



Comments (14)

  1. wOOdy says:

    Yes, Data is the main key feature of any application, and that’s why Visual FoxPro did it right from the beginning with its seamlesss integration of data into the language. And it’s really impressive to see, how VFP’s "way of doing data" finally made his debut into NET. The only bad taste is that it needed so many years to get to that point, because of those some people who stil deny the existence of that great tool.

  2. Steven says:

    Great, were can we find more info and some beta downloads to start testing with this?

  3. Richard Reukema says:

    Wow – could not believe how simplistic the interface is – so close to SQL that I had to shake my head. Will need to think hard about the Data Layer….and with the CLR in SQL..the business logic layer…I know it’s early, but any early white papers on when/where to use this technology?

  4. Gabe says:

    This looks incredible. If you would have told me 10 years ago that VB would have lambda expressions, I would have died laughing!

    I am concerned that I don’t see any obvious way to do outer joins, though.

  5. Erik Meijer says:

    Hi Gabe,

    Two remarks about outer joins: (a) since you can create hierarchical results, you can usually use a nested query instead of an outer join. (b) We are considering supporting outer join syntax in Visual Basic query comprehensions.

    I am curious if and why you prefer the denormalized result of an outer join as opposed to a nested result set.

    Hope this helps,

    Erik Meijer

  6. Daniel Moth says:

    Blog link of the week 37