Replies By : Keith Farmer
Q0. What is LINQ? DLINQ? XLINQ?
A0. [KF] LINQ stands for "Language Integrated Query". It is a set of features such as lambdas, extension methods, and query comprehensions that enable compilers to understand and implement query logic over in-memory collections of objects. For more information about lambdas, extension methods, and query comprehensions, please refer to http://msdn.microsoft.com/netframework/future/linq and the LINQ Project Overview document at http://msdn.microsoft.com/library/en-us/dndotnet/html/linqprojectovw.asp.
A0. [KF] DLINQ is an implementation of LINQ that allows expression trees to be translated into query syntax for a given database engine. For example, the same tree may be translated differently for SQL Server, Oracle, or MySQL as well as LDAP, WMI, or another data store for which specialized logic may be needed.
A0. [KF] XLINQ provides classes and extensions to more easily query and construct XML documents.
Q1. Where may I find specs, videos, and other official information?
A1. [KF] The LINQ Project: http://msdn.microsoft.com/netframework/future/linq
A1. [KF] VC# Futures: http://msdn.microsoft.com/vcsharp/future
A1. [KF] VB.NET Futures: http://msdn.microsoft.com/vbasic/future
Q2. How may I talk directly to the LINQ development team?
A2. [KF] MSDN Chats allow live Q&A sessions with Microsoft developers. The MSDN Chat schedule is at http://msdn.microsoft.com/chats.
Q3. What is Orcas, and what can be said about its release?
A3. [KF] Orcas is the next release of Microsoft's .NET Framework, the first such release to support the Microsoft Vista operating system, and as such is expected to be short-cycle. An official RTM date has not been made public.
Q4. Isn't LINQ a Microsoft-only technology? Isn't DLINQ only for SQL Server?
A4. [KF] LINQ is extensible by creating extension methods against your own types. Specifically with DLINQ, we are actively working on ways to enable database vendors to more easily hook their products into the query translation pipeline.
Q5. What languages have announced plans to support LINQ?
A5. [KF] Microsoft languages, support starting:
- C# 3,
- F# 18.104.22.168,
- VB 9
A5. [KF] Microsoft languages, no plans to support:
A5. [KF] Microsoft languages, unknown:
A5. [KF] Third-party languages, support:
- Delphi (per http://blogs.borland.com/dcc/archive/2005/09/15/21195.aspx),
- Nemerle (macros being developed per http://thread.gmane.org/gmane.comp.lang.nemerle.devel/1257)
- Phalanger Project (PHP compiler for .NET, LINQ support per http://www.php-compiler.net/Roadmap.htm),
Q6. What is "var", and what is its relation to strong typing?
A6. [KF] In C#3, "var" is a variable declaration keyword that instructs the compiler to infer the correct strong type to assign to the variable. It is not the a "variant" type. For example, the following would generate a compilation error:
var x = "One"; // compiler infers that x is a string x = "Two"; // OK: x is strongly typed to string x = 3; // ERROR: Cannot implicitly convert type 'int' to 'string'
Q7. When may we expect a new preview of LINQ et al? When will they be released?
A7. [KF] The next preview is expected in the spring timeframe. A public release date has not been announced.
Q8. What are our options for run-time definitions of queries?
A8. [KF] We are investigating this.
Q9. Does LINQ work with ASP.NET? How do I get them together?
A9. [KF] The LINQ can be used within an ASP.NET site, provided that ASP.NET is instructed to use the preview compiler. We are currently working on the ASP.NET story, but until more formal support is announced, there is this example (for VB.NET — C# would be similar): http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=290434&SiteID=1.