A couple of months ago, I wrote some code that used LINQ to XML to parse WordML files. It was interesting to do, and relatively easy. I posted it on this blog, and some other people here at MS used it for various purposes. Then it came to the attention of one of the Gurus at MS, and he (kindly) pointed out that I didn't quite understand how to compose query expressions properly. Specifically, what he said is that anytime he sees someone writing imperative code after declarative code, it shows that they don't understand something. That motivated me, and I started studying the issue of composing queries. After some time and effort, a few lights started going on. This tutorial is my attempt to share my process and ease the way for other programmers to make the same transition.
Here is the link to the tutorial:
This tutorial might be more accurately titled:
Please send feedback on this tutorial (or make comments on each topic).