C# 3.0 Language Specification - LINQ Project - DLinq O/R Mapper - XLinq

Microsoft has added several documents and tutorials on C# 3.0, LINQ, DLinq, and XLinq on their website.  You can find all of this information here, and I have provided a summary below along with links to some of my previous and more detail posts.

 

C# 3.0 Language Specification

C# 3.0 (“C# Orcas”) introduces several language extensions that build on C# 2.0 to support the creation and use of higher order, functional style class libraries. The extensions enable construction of compositional APIs that have equal expressive power of query languages in domains such as relational databases and XML. The extensions include:

  • Implicitly typed local variables, which permit the type of local variables to be inferred from the expressions used to initialize them.
  • Extension methods, which make it possible to extend existing types and constructed types with additional methods.
  • Lambda expressions, an evolution of anonymous methods that provides improved type inference and conversions to both delegate types and expression trees.
  • Object initializers, which ease construction and initialization of objects.
  • Anonymous types, which are tuple types automatically inferred and created from object initializers.
  • Implicitly typed arrays, a form of array creation and initialization that infers the element type of the array from an array initializer.
  • Query expressions, which provide a language integrated syntax for queries that is similar to relational and hierarchical query languages such as SQL and XQuery.
  • Expression trees, which permit lambda expressions to be represented as data (expression trees) instead of as code (delegates).

 

LINQ Project

Every C# developer and their brother is excited about the LINQ Project.

I talked about the LINQ Project in an earlier post, LINQ Project - Query Operations for .NET Platform - Language Integrated QUery.

Here is a snippet:

LINQ stands for “Language Integrated QUery.” LINQ fundamentally is about integrating query operations into the .NET platform in a comprehensive and open manner. It’s also about providing a unified way for you to query across any kind of data that you have in your program, whether it’s relational, objects or XML. This, we believe, will represent a tectonic shift in the way that VB programmers will work with data. The possibilities that having query capabilities always available right at your fingertips, regardless of the type of data you’re working with, are immense and will fundamentally alter the way people program..."

 

DLinq - Microsoft .NET O/R Mapper

DLinq, Microsoft's .NET O/R Mapper, is catching a lot of flack by the developer community, because it is based on attributes and people fear it will not only scale, but maintenance will be a nightmare with it.  This may be the case for enterprise development, but I think DLinq will be an excellent solutions for those who do small business development and have been waiting quite some time for Microsoft to deliver an O/R Mapper.

I gave a DLinq example and talked about it in much more detail in the following post:  DLinq - Microsoft O/R Mapper for .NET 2.0 - ObjectSpaces to DLinq.

 

XLinq

XLinq is the same as DLinq with the exception that you are querying XML as opposed to a Relational Database.

 

LINQ Samples - 101 Sample LINQ Queries

Don't forget about the 101 Sample LINQ Queries on the Microsoft website here.

 

O/R Mappers and Code Generators

Feel free to browse the entire list of posts on O/R Mappers and Code Generators

 

posted on Wednesday, September 21, 2005 5:37 PM

Main

News

Green Tea

.NET Development

Enterprise Library

Patterns & Practices