C# 3.0 and the LINQ Project

I believe that C# 3.0 language is interesting for two main reasons. The first reason, that you can see discussed in many places is that it enables the LINQ project, which integrates a support for queries in the language. LINQ also enables technologies like LINQ to SQL, LINQ to XML and other technologies for querying various data sources. The second reason is that C# 3.0 includes some concepts from functional languages, which makes it possible to use several functional programming techniques in a main-stream C# language. When writing about C#, I usually focus on the second reason, because I believe that there are only a few articles on that topic, however some of the ideas are very useful when using technologies like LINQ to SQL.

Articles about LINQ and C# 3.0

  • Using custom grouping operators in LINQ (2/7/2010)

    In LINQ, we can group data using the "group by" clause. However, there are other potentially useful implementations of grouping. For example, we may want to group only adjacent elements or group ascending or descending parts of the data. This article shows how to use custom behavior when grouping data using "group by" in LINQ query.

  • Source code for Real World Functional Programming available! (2/12/2009)

    Just a short update regarding the book I'm working on. First of all, the source code for the first 11 chapters is now available! Secondly, I did some changes to the TOC and you can now find the commented TOC on the book web site.

  • Functional Programming in .NET using C# and F# (Manning Greenpaper) (12/11/2008)

    This article is partially an excerpt from my book. It introduces the benefits of functional pogramming, and explains the essential aspects of the functional style using F# and C# 3.0. Finally, it also shows how functional style influences the application architecture.

  • Reactive Programming (IV.) - Developing a game in Reactive LINQ (11/24/2008)

    In this article, we'll implement a simple iteractve game using the Reactive LINQ project. The article shows that this way of handling events gives us amog other things a great degree of composability.

  • Reactive Programming (III.) - Useful Reactive LINQ Operators (11/21/2008)

    In the previous article, I introduced Reactive LINQ. Today, we're going to look at other operators that canbe used for working with events. We'll see aggregation is useful and how to dynamically change (switch) behavior.

  • Reactive programming (II.) - Introducing Reactive LINQ (11/19/2008)

    In the second part of the series about reactive programming, I introduction the Reactive LINQ project, which allows writing event processing code in C# using LINQ queries.

  • Reactive programming (I.) - First class events in F# (11/16/2008)

    The LINQ project and changes in C# 3.0 are interesting because they allow implementing many ideas from functional languages in C#. In this article I'll explain "first-class events" in F# and later I'll implemet similar concept using LINQ.

  • Calculating with infinite sequences on MSDN (11/13/2008)

    About a year ago, I wrote an article about infinite sequences on MSDN. I remembered about it this week, because these topics will be discussed in the book I'm working on as well...

  • Functional Programming in .NET book - An update (10/20/2008)

    Recently, I announced on my blog that I’m working on a book for Manning called Real-world Functional Programming in .NET. It is more than a month since I wrote about it, so here is a brief update...

  • Asynchronous Programming in C# using Iterators (11/15/2007)

    In this article we will look how to write programs that perform asynchronous operations like manipulation with network in C# using iterators without the typical inversion of control caused by the use of delegates.

  • Lazy Computation in C# on MSDN (10/6/2007)

    I think that one of the interesting things about C# 3.0 is that it gives you the ability to use many techniques known from functional languages...

  • Building LINQ Queries at Runtime in F# (8/18/2007)

    In this article I will introduce FLinq, the F# support for language integrated query and show how we can construct a database queries dynamically in a type-safe way in F#.

  • Building LINQ Queries at Runtime in C# (7/30/2007)

    Common criticism of LINQ is that it doesn't support a scenario where queries are build dynamically at the runtime. In this article I show that this can be acutally done very well for most of the common scenarios.

  • CLinq - LINQ support for the C++/CLI language (3/2/2007)

    CLinq project is a library that makes it possible to use LINQ technologies from the C++/CLI language.

  • Can't return anonymous type from method? Really? (1/23/2007)

    This article describes anonymous types - one of the new C# 3.0 features and shows interesting trick that can be used when returning anonymous type from method.

  • Concepts behind the C# 3.0 language (10/15/2006)

    In this article I'll describe concepts that influenced the design of the C# 3.0. Most of these concepts are known from other programming languages like Haskell, LISP or languages developed at Microsoft Research.

  • LINQ extensions - Simplified keyword search (7/28/2006)

    Article describes LINQ extension that adds support for returning rows that contain any or all of specified keywords in string column.

  • Calling functions in LINQ queries (6/10/2006)

    This article describes method that allows you to reuse parts of LINQ queries across data access layer.

Related Links

Published: October 11, 2007 02:40