This week we have begun an experiment by publishing on the C# Developer Center a draft of one of the specifications for Orcas. This gives you an opportunity to see and comment on a C# specification while it is still under development. If this trial works, then we will be posting more specifications in the near future. For now, you can post your comments as replies to this post.
The document we choose to start with is taken from the specification for LINQ to SQL (aka DLINQ). It describes the Mapping Format LINQ uses to translates between a class in your source code and a table in a relational database.
Suppose you want to use LINQ to access a table called Customers. Inside your C# project there needs to be either a class or an XML document that defines how the fields of the Customer table are mapped to the variables in your C# code. For instance, if a field has type int, then this specification shows the syntax you can use to define what type that field should have when it is referenced in your program.
The specification defines the rules that govern the relationship between tables and classes, and the specific syntax used to describe that relationship. It defines the format of the C# classes or XML files that allow you to use LINQ to query or update a table from inside a C# program. Both the Visual Studio IDE and a command line tool will provide mechanisms for automatically generating the classes or XML files that contain the syntax described in this specification.