<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" version="2.0">
  <channel>
    <title>Steve Eichert - linq</title>
    <link>http://iqueryable.com/</link>
    <description />
    <language>en-us</language>
    <copyright>Steve Eichert</copyright>
    <lastBuildDate>Mon, 21 Jan 2008 14:32:52 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.9.6264.0</generator>
    <managingEditor>steve.eichert@gmail.com</managingEditor>
    <webMaster>steve.eichert@gmail.com</webMaster>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=e37b5b23-a04e-4727-b938-6637a9e5c048</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,e37b5b23-a04e-4727-b938-6637a9e5c048.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <iframe src="http://rcm.amazon.com/e/cm?t=steveeichert-20&amp;o=1&amp;p=8&amp;l=as1&amp;asins=1933988169&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr" style="padding: 5px; width: 120px; height: 240px;" marginwidth="3" marginheight="3" align="right" frameborder="0" scrolling="no">
        </iframe>
After many, many, many long months of work, LINQ in Action is finally done!  <a href="http://weblogs.asp.net/fmarguerie/">Fabrice</a>, <a href="http://www.devauthority.com/blogs/jwooley/">Jim</a>,
and I are very proud of the final product and really hope you enjoy it.  We've
already heard a lot of positive feedback from those who purchased the Early Access
Preview from Manning, and are hopefull that LINQ in Action will be a valuable resource
for everyone who is trying to add LINQ to their development toolbox.  My favorite
quote thus far is from Ben Hayat on the <a href="http://www.manning-sandbox.com/forum.jspa?forumID=302&amp;start=0">LINQ
in Action forums</a> where he said <a href="http://www.manning-sandbox.com/thread.jspa?threadID=22751&amp;tstart=0">"I
had gotten other books on Linq, and this book is simply the <b>BEST</b>!"</a>. 
Now for those of you who don't know Ben, it should be very clear that he's extremely
smart and intelligent and you should believe everything he says, especially when it
comes to what the best LINQ book is! :D  
<br /><br />
Since the book is on the printers as we speak, it isn't yet available on Amazon for
immediate shipping, however, I've been told it should make it's way over there in
the next couple of weeks.  Given that, now is a great time to head over and <a href="http://www.amazon.com/gp/product/1933988169?ie=UTF8&amp;tag=steveeichert-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1933988169">pre-order
it</a>!  If you want the book sooner rather than later the best way to get it
is <a href="http://www.manning.com/affiliate/idevaffiliate.php?id=253_74">directly
via Manning's website</a>.<br /><br />
To keep updated on the status of the book, including errata, code samples, or to ask
Fabrice, Jim, or I any questions about our <a href="http://www.linq-book.com/">LINQ
book</a> you should drop by the <a href="http://www.linq-book.com/">LINQ in Action
website</a> or the <a href="http://www.manning-sandbox.com/forum.jspa?forumID=302&amp;start=0">author
forums on the Manning website</a>.<br /><p></p><img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=e37b5b23-a04e-4727-b938-6637a9e5c048" /></body>
      <title>Coming to a store near you...LINQ in Action!</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,e37b5b23-a04e-4727-b938-6637a9e5c048.aspx</guid>
      <link>http://iqueryable.com/2008/01/21/ComingToAStoreNearYouLINQInAction.aspx</link>
      <pubDate>Mon, 21 Jan 2008 14:32:52 GMT</pubDate>
      <description>&lt;iframe src="http://rcm.amazon.com/e/cm?t=steveeichert-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as1&amp;amp;asins=1933988169&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="padding: 5px; width: 120px; height: 240px;" marginwidth="3" marginheight="3" align="right" frameborder="0" scrolling="no"&gt;
&lt;/iframe&gt;
After many, many, many long months of work, LINQ in Action is finally done!&amp;nbsp; &lt;a href="http://weblogs.asp.net/fmarguerie/"&gt;Fabrice&lt;/a&gt;, &lt;a href="http://www.devauthority.com/blogs/jwooley/"&gt;Jim&lt;/a&gt;,
and I are very proud of the final product and really hope you enjoy it.&amp;nbsp; We've
already heard a lot of positive feedback from those who purchased the Early Access
Preview from Manning, and are hopefull that LINQ in Action will be a valuable resource
for everyone who is trying to add LINQ to their development toolbox.&amp;nbsp; My favorite
quote thus far is from Ben Hayat on the &lt;a href="http://www.manning-sandbox.com/forum.jspa?forumID=302&amp;amp;start=0"&gt;LINQ
in Action forums&lt;/a&gt; where he said &lt;a href="http://www.manning-sandbox.com/thread.jspa?threadID=22751&amp;amp;tstart=0"&gt;"I
had gotten other books on Linq, and this book is simply the &lt;b&gt;BEST&lt;/b&gt;!"&lt;/a&gt;.&amp;nbsp;
Now for those of you who don't know Ben, it should be very clear that he's extremely
smart and intelligent and you should believe everything he says, especially when it
comes to what the best LINQ book is! :D&amp;nbsp; 
&lt;br&gt;
&lt;br&gt;
Since the book is on the printers as we speak, it isn't yet available on Amazon for
immediate shipping, however, I've been told it should make it's way over there in
the next couple of weeks.&amp;nbsp; Given that, now is a great time to head over and &lt;a href="http://www.amazon.com/gp/product/1933988169?ie=UTF8&amp;amp;tag=steveeichert-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=1933988169"&gt;pre-order
it&lt;/a&gt;!&amp;nbsp; If you want the book sooner rather than later the best way to get it
is &lt;a href="http://www.manning.com/affiliate/idevaffiliate.php?id=253_74"&gt;directly
via Manning's website&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
To keep updated on the status of the book, including errata, code samples, or to ask
Fabrice, Jim, or I any questions about our &lt;a href="http://www.linq-book.com/"&gt;LINQ
book&lt;/a&gt; you should drop by the &lt;a href="http://www.linq-book.com/"&gt;LINQ in Action
website&lt;/a&gt; or the &lt;a href="http://www.manning-sandbox.com/forum.jspa?forumID=302&amp;amp;start=0"&gt;author
forums on the Manning website&lt;/a&gt;.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=e37b5b23-a04e-4727-b938-6637a9e5c048" /&gt;</description>
      <category>.net;books;linq;linq in action;linq to sql;linq to xml;writing</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=5c55ad96-2cb3-427c-875d-0fb7b170bf5d</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,5c55ad96-2cb3-427c-875d-0fb7b170bf5d.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">Over the last year I've spent a lot of
my "free" time with LINQ.  When not writing and/or experimenting with LINQ I've
been <a href="http://iqueryable.com/2007/07/12/MyPathToLearningRuby.aspx">trying to
learn Ruby</a>.  Since I'm primarily a Microsoft guy, I've spent time in some
Microsoft "friendly" Ruby communities such as <a href="http://www.softiesonrails.com/">SoftiesOnRails</a>.
As I think is typical in most passionate technology oriented communities, most Ruby
peeps aren't real big fans of Microsoft.  I've heard numerous people in the Ruby
community discount all things Microsoft, which led me to wonder if any Rubyists would
ever give LINQ a fair look.  A couple weeks ago I came across Chris' "<a href="http://errtheblog.com/post/10722">Full
of Ambition</a>" post on the <a href="http://errtheblog.com/">err the blog</a> site. 
As soon as I saw ambition, I thought to myself "<a href="http://twitter.com/steveeichert/statuses/237337372">hey,
it's LINQ for Ruby</a>".  From reading over the initial post, it didn't sound
like the guys behind ambition where inspired by LINQ at all, but instead were gunning
for <a href="http://rack.rubyforge.org/">Rack</a>.  A noble ambition, but surely
LINQ would be a better and more ambitious goal!  Well it turns out that since
their initial post the gents behind ambition have found LINQ, and set it as their
new target!  In their most recent post about ambition they state:<br /><blockquote><i>We’ve moved our sights from <a href="http://rack.rubyforge.org/">Rack</a> to <span class="caps"><span class="caps">LINQ</span></span>.
That is, we don’t want to only support other ORMs—we want Ambition to be a query language
for <span class="caps"><span class="caps">SQL</span></span>, <span class="caps">LDAP</span>,
XPath, the works. The 1.0 release will be backend-agnostic. Maybe then we’ll change
the name to Hubris? Time will tell.</i><br /></blockquote> As a big fan of both LINQ and Ruby I'm glad to see some LINQ'ness finding
it's way into Ruby.  
<br /><br /><i>Links:</i><br /><a href="http://errtheblog.com/post/10722">Intro to Ambition</a><br /><a href="http://errtheblog.com/post/11998">Update to Ambition, with LINQ as the new
target</a><br /><img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=5c55ad96-2cb3-427c-875d-0fb7b170bf5d" /></body>
      <title>LINQ comes to Ruby?</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,5c55ad96-2cb3-427c-875d-0fb7b170bf5d.aspx</guid>
      <link>http://iqueryable.com/2007/09/12/LINQComesToRuby.aspx</link>
      <pubDate>Wed, 12 Sep 2007 17:27:04 GMT</pubDate>
      <description>Over the last year I've spent a lot of my "free" time with LINQ.&amp;nbsp; When not writing and/or experimenting with LINQ I've been &lt;a href="http://iqueryable.com/2007/07/12/MyPathToLearningRuby.aspx"&gt;trying
to learn Ruby&lt;/a&gt;.&amp;nbsp; Since I'm primarily a Microsoft guy, I've spent time in some
Microsoft "friendly" Ruby communities such as &lt;a href="http://www.softiesonrails.com/"&gt;SoftiesOnRails&lt;/a&gt;.
As I think is typical in most passionate technology oriented communities, most Ruby
peeps aren't real big fans of Microsoft.&amp;nbsp; I've heard numerous people in the Ruby
community discount all things Microsoft, which led me to wonder if any Rubyists would
ever give LINQ a fair look.&amp;nbsp; A couple weeks ago I came across Chris' "&lt;a href="http://errtheblog.com/post/10722"&gt;Full
of Ambition&lt;/a&gt;" post on the &lt;a href="http://errtheblog.com/"&gt;err the blog&lt;/a&gt; site.&amp;nbsp;
As soon as I saw ambition, I thought to myself "&lt;a href="http://twitter.com/steveeichert/statuses/237337372"&gt;hey,
it's LINQ for Ruby&lt;/a&gt;".&amp;nbsp; From reading over the initial post, it didn't sound
like the guys behind ambition where inspired by LINQ at all, but instead were gunning
for &lt;a href="http://rack.rubyforge.org/"&gt;Rack&lt;/a&gt;.&amp;nbsp; A noble ambition, but surely
LINQ would be a better and more ambitious goal!&amp;nbsp; Well it turns out that since
their initial post the gents behind ambition have found LINQ, and set it as their
new target!&amp;nbsp; In their most recent post about ambition they state:&lt;br&gt;
&lt;blockquote&gt;&lt;i&gt;We’ve moved our sights from &lt;a href="http://rack.rubyforge.org/"&gt;Rack&lt;/a&gt; to &lt;span class="caps"&gt;&lt;span class="caps"&gt;LINQ&lt;/span&gt;&lt;/span&gt;.
That is, we don’t want to only support other ORMs—we want Ambition to be a query language
for &lt;span class="caps"&gt;&lt;span class="caps"&gt;SQL&lt;/span&gt;&lt;/span&gt;, &lt;span class="caps"&gt;LDAP&lt;/span&gt;,
XPath, the works. The 1.0 release will be backend-agnostic. Maybe then we’ll change
the name to Hubris? Time will tell.&lt;/i&gt;
&lt;br&gt;
&lt;/blockquote&gt; As a big fan of both LINQ and Ruby I'm glad to see some LINQ'ness finding
it's way into Ruby.&amp;nbsp; 
&lt;br&gt;
&lt;br&gt;
&lt;i&gt;Links:&lt;/i&gt;
&lt;br&gt;
&lt;a href="http://errtheblog.com/post/10722"&gt;Intro to Ambition&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://errtheblog.com/post/11998"&gt;Update to Ambition, with LINQ as the new
target&lt;/a&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=5c55ad96-2cb3-427c-875d-0fb7b170bf5d" /&gt;</description>
      <category>linq;ruby</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=d2d87cba-d1c6-4d32-9869-32912b735eeb</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,d2d87cba-d1c6-4d32-9869-32912b735eeb.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">A while back I posted an example of how
to <a href="http://steve.emxsoftware.com/LINQ/ConvertingaCSVfiletoXMLusingLINQtoXMLandFunctionalConstruction">convert
a comma seperated file (CSV) to XML using LINQ to XML and functional construction</a>. 
We're in the final push to get LINQ in Action to production and as such I've been
spending a lot of time going back through the chapters cleaning things up, as well
as making sure both a C# and VB.NET example is provided for every code sample presented
in the book.  Tonight I was converting a code sample from Chapter 12 that shows
how to convert a CSV file to XML using LINQ to XML.  While the <a href="http://steve.emxsoftware.com/LINQ/ConvertingaCSVfiletoXMLusingLINQtoXMLandFunctionalConstruction">C#
code is very nice</a>, I like the VB version that is shown below even better.<br /><br />
Imports System.IO<br />
Imports System.Xml.Linq<br /><br />
Module FlatFileToXmlWithXmlLiterals<br />
  Sub Main()<br />
    Dim xml As XElement = &lt;books&gt;<br />
                         
&lt;%= From line In File.ReadAllLines("books.txt") _<br />
                         
Where Not line.StartsWith("#") _<br />
                         
Let items = line.Split(",") _<br />
                         
Select _<br />
                         
&lt;book&gt;<br />
                           
&lt;title&gt;&lt;%= items(1) %&gt;&lt;/title&gt;<br />
                           
&lt;authors&gt;<br />
                             
&lt;%= From authorFullName In items(2).Split(";") _<br />
                               
Let authorNameParts = authorFullName.Split(" ") _<br />
                               
Select &lt;author&gt;<br />
                                        
&lt;firstName&gt;&lt;%= authorNameParts(0) %&gt;&lt;/firstName&gt;<br />
                                        
&lt;lastName&gt;&lt;%= authorNameParts(1) %&gt;&lt;/lastName&gt;<br />
                                      
&lt;/author&gt; _<br />
                             
%&gt;<br />
                           
&lt;/authors&gt;<br />
                           
&lt;publisher&gt;&lt;%= items(3) %&gt;&lt;/publisher&gt;<br />
                           
&lt;publicationDate&gt;&lt;%= items(4) %&gt;&lt;/publicationDate&gt;<br />
                           
&lt;price&gt;&lt;%= items(5) %&gt;&lt;/price&gt;<br />
                           
&lt;isbn&gt;&lt;%= items(0) %&gt;&lt;/isbn&gt;<br />
                         
&lt;/book&gt; _<br />
                       
%&gt;<br />
                     
&lt;/books&gt;<br /><br />
    Console.WriteLine(xml)<br />
  End Sub<br />
End Module<br /><br />
As an aside, if you've been meaning to <a href="http://www.manning.com/affiliate/idevaffiliate.php?id=253_74">learn
about LINQ</a>, or if you've already begun your journey, now is a great time to checkout
the <a href="http://www.manning.com/affiliate/idevaffiliate.php?id=253_74">early access
edition of LINQ in Action</a>.  We have every chapter available for download,
and will very shortly be making the source code available.  We still have a little
ways to go, but we're getting close!<br /><br />
Download the sample project here: <a href="http://iqueryable.com/content/binary/Chapter12.FlatFileToXml.Vb.zip">Chapter12.FlatFileToXml.Vb.zip
(10.09 KB)</a><img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=d2d87cba-d1c6-4d32-9869-32912b735eeb" /></body>
      <title>Converting a CSV file to XML using VB 9 XML Literals</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,d2d87cba-d1c6-4d32-9869-32912b735eeb.aspx</guid>
      <link>http://iqueryable.com/2007/08/31/ConvertingACSVFileToXMLUsingVB9XMLLiterals.aspx</link>
      <pubDate>Fri, 31 Aug 2007 01:26:49 GMT</pubDate>
      <description>A while back I posted an example of how to &lt;a href="http://steve.emxsoftware.com/LINQ/ConvertingaCSVfiletoXMLusingLINQtoXMLandFunctionalConstruction"&gt;convert
a comma seperated file (CSV) to XML using LINQ to XML and functional construction&lt;/a&gt;.&amp;nbsp;
We're in the final push to get LINQ in Action to production and as such I've been
spending a lot of time going back through the chapters cleaning things up, as well
as making sure both a C# and VB.NET example is provided for every code sample presented
in the book.&amp;nbsp; Tonight I was converting a code sample from Chapter 12 that shows
how to convert a CSV file to XML using LINQ to XML.&amp;nbsp; While the &lt;a href="http://steve.emxsoftware.com/LINQ/ConvertingaCSVfiletoXMLusingLINQtoXMLandFunctionalConstruction"&gt;C#
code is very nice&lt;/a&gt;, I like the VB version that is shown below even better.&lt;br&gt;
&lt;br&gt;
Imports System.IO&lt;br&gt;
Imports System.Xml.Linq&lt;br&gt;
&lt;br&gt;
Module FlatFileToXmlWithXmlLiterals&lt;br&gt;
&amp;nbsp; Sub Main()&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim xml As XElement = &amp;lt;books&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;%= From line In File.ReadAllLines("books.txt") _&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Where Not line.StartsWith("#") _&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Let items = line.Split(",") _&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Select _&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;book&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;title&amp;gt;&amp;lt;%= items(1) %&amp;gt;&amp;lt;/title&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;authors&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;%= From authorFullName In items(2).Split(";") _&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Let authorNameParts = authorFullName.Split(" ") _&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Select &amp;lt;author&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;firstName&amp;gt;&amp;lt;%= authorNameParts(0) %&amp;gt;&amp;lt;/firstName&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;lastName&amp;gt;&amp;lt;%= authorNameParts(1) %&amp;gt;&amp;lt;/lastName&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/author&amp;gt; _&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
%&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/authors&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;publisher&amp;gt;&amp;lt;%= items(3) %&amp;gt;&amp;lt;/publisher&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;publicationDate&amp;gt;&amp;lt;%= items(4) %&amp;gt;&amp;lt;/publicationDate&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;price&amp;gt;&amp;lt;%= items(5) %&amp;gt;&amp;lt;/price&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;isbn&amp;gt;&amp;lt;%= items(0) %&amp;gt;&amp;lt;/isbn&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/book&amp;gt; _&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
%&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/books&amp;gt;&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(xml)&lt;br&gt;
&amp;nbsp; End Sub&lt;br&gt;
End Module&lt;br&gt;
&lt;br&gt;
As an aside, if you've been meaning to &lt;a href="http://www.manning.com/affiliate/idevaffiliate.php?id=253_74"&gt;learn
about LINQ&lt;/a&gt;, or if you've already begun your journey, now is a great time to checkout
the &lt;a href="http://www.manning.com/affiliate/idevaffiliate.php?id=253_74"&gt;early access
edition of LINQ in Action&lt;/a&gt;.&amp;nbsp; We have every chapter available for download,
and will very shortly be making the source code available.&amp;nbsp; We still have a little
ways to go, but we're getting close!&lt;br&gt;
&lt;br&gt;
Download the sample project here: &lt;a href="http://iqueryable.com/content/binary/Chapter12.FlatFileToXml.Vb.zip"&gt;Chapter12.FlatFileToXml.Vb.zip
(10.09 KB)&lt;/a&gt;&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=d2d87cba-d1c6-4d32-9869-32912b735eeb" /&gt;</description>
      <category>books;linq;linq in action;linq to xml</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=0508b835-90cf-45fc-95ff-1721342f2bda</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,0508b835-90cf-45fc-95ff-1721342f2bda.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">While working on our <a href="http://www.manning.com/affiliate/idevaffiliate.php?id=253_74">LINQ
book</a> I've come to really enjoy LINQ to XML. I've worked with a lot of XML API's
over the years, however, the LINQ to XML API is my favorite...by far. In addition
to providing all the nice query facilities made available by LINQ, it also provides
a lot of other great features that many people overlook. As I promised long ago, I'm
going to begin to talk about the things that I enjoy about LINQ to XML in hopes that
it will help you realize that the red headed step child of LINQ has some things to
offer the world as well. :) 
<br /><br />
One of the most common things that we need to do when dealing with XML is transform
it. We're usually transforming it into an alternate XML format, or transforming the
XML into a set of objects. In this post I'm going to quickly look at some of the transformation
capabilities offered by LINQ to XML. To help us get started I'm going to use the following
XML which is the XML representation of a contact in <a href="http://highrisehq.com">Highrise</a>. 
<br /><br />
&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />
&lt;person&gt;<br />
  &lt;author-id type="integer"&gt;1436&lt;/author-id&gt;<br />
  &lt;background/&gt;<br />
  &lt;company-id type="integer"&gt;1226900&lt;/company-id&gt;<br />
  &lt;created-at type="datetime"&gt;2007-06-09T03:13:15Z&lt;/created-at&gt;<br />
  &lt;first-name&gt;Steve&lt;/first-name&gt;<br />
  &lt;group-id type="integer"/&gt;<br />
  &lt;id type="integer"&gt;1226899&lt;/id&gt;<br />
  &lt;last-name&gt;Eichert&lt;/last-name&gt;<br />
  &lt;owner-id type="integer"/&gt;<br />
  &lt;title/&gt;<br />
  &lt;updated-at type="datetime"&gt;2007-06-09T03:15:16Z&lt;/updated-at&gt;<br />
  &lt;visible-to&gt;Everyone&lt;/visible-to&gt;<br />
  &lt;contact-data&gt;<br />
    &lt;email-addresses type="array"&gt;<br />
      &lt;email-address&gt;<br />
        &lt;address&gt;steve.eichert at google
mail dot com&lt;/address&gt;<br />
        &lt;id type="integer"&gt;559722&lt;/id&gt;<br />
        &lt;location&gt;Work&lt;/location&gt;<br />
      &lt;/email-address&gt;<br />
    &lt;/email-addresses&gt;<br />
    &lt;web-addresses type="array"&gt;<br />
      &lt;web-address&gt;<br />
        &lt;id type="integer"&gt;942962&lt;/id&gt;<br />
        &lt;location&gt;Work&lt;/location&gt;<br />
        &lt;url&gt;http://iqueryable.com/&lt;/url&gt;<br />
      &lt;/web-address&gt;<br />
    &lt;/web-addresses&gt;<br />
  &lt;/contact-data&gt;<br />
&lt;/person&gt;<br /><br />
Rather than be stuck with our contact in XML, let's see what we can do to transform
the above XML into the <a href="http://en.wikipedia.org/wiki/HCard">hCard microformat</a>.
We're going to ignore a bunch of data, such as all the ids, since it doesn't have
any meaning outside of Highrise. When we're done we'll end up with the much simplified
XML shown below: 
<br /><br />
&lt;div class="vcard"&gt;<br />
  &lt;div class="fn"&gt;Steve Eichert&lt;/div&gt;<br />
  &lt;div&gt;Email: &lt;span class="email"&gt;steve.eichert at google mail dot
com&lt;/span&gt;&lt;/div&gt;<br />
  &lt;a class="url" href="http://iqueryable.com/"&gt;http://iqueryable.com/&lt;/a&gt;<br />
&lt;/div&gt;<br /><br />
The first step for transforming our Highrise XML into the hCard microformat is to
load the Highrise XML into an XElement. 
<p></p><p>
XElement highriseRoot = XElement.Load("highrise-contact.xml");<br /></p><p>
We use the static Load method of XElement to load the XML contained within the "highrise-contact.xml"
file that we've saved locally. I don't believe the Highrise API is officially supported
at the moment so I'm not going to load the contact details directly from the highrisehq.com
site. Perhaps, in a future post we can explore that as an option. 
</p><p></p><p>
Anywho, once our XML is loaded into an XElement, we can transform our Highrise XML
into the hCard microformat by building a new XElement. We'll use the Element query
axis method to retrieve the first and last name of the contact, and we'll embed query
expressions and make use of the Descendants query axis method for selecting all the
email and web addresses for the contact within the source XML. When we put it all
together we end up with the C# code below:
</p><p>
XElement highriseRoot = XElement.Load("highrise-contact.xml");<br /><br />
XElement hCard = 
<br />
    new XElement("div",<br />
        new XAttribute("class", "vcard"),<br />
        new XElement("div",<br />
            new XAttribute("class", "fn"),<br />
            highriseRoot.Element("first-name")
+ " " + highriseRoot.Element("last-name")<br />
        ),<br />
        from emailElement in highriseRoot.Descendants("email-address")<br />
        select new XElement("div",<br />
            "Email:",<br />
            new XElement("span",<br />
                new XAttribute("class",
"email"),<br />
                (string)
emailElement.Element("address")<br />
            )<br />
        ),<br />
        from webElement in highriseRoot.Descendants("web-address")<br />
        select 
<br />
        new XElement("a",<br />
            new XAttribute("class", "url"),<br />
            new XAttribute("href", (string)
webElement.Element("url")),<br />
            (string) webElement.Element("url")<br />
        )<br />
    );<br /><br />
Console.WriteLine(hCard);<br /></p><p></p><p>
At first glance, the above code might be overwhelming. However, once you come to understand
the power of functional construction you'll quickly realize how wonderful LINQ to
XML can be for transforming XML to alternate XML formats. In addition to making it
easy to transform XML into alternate XML formats, LINQ to XML also makes it very easy
to transform XML into objects. If we have a Contact class defined as: 
</p><p></p><p>
public class Contact {<br />
    public string Name { get; set; }<br />
    public IEnumerable&lt;string&gt; EmailAddresses { get; set; }<br />
    public IEnumerable&lt;string&gt; Urls { get; set; }<br />
}
</p><p>
We can transform the contact details in our XML into a Contact instance with the following
code:
</p><p>
Contact contact = new Contact {<br />
    Name = (string) highriseRoot.Element("first-name") + " " + (string)
highriseRoot.Element("last-name"),<br />
    EmailAddresses = highriseRoot.Descendants("email-address").Select(e
=&gt; (string)e.Element("address")),<br />
    Urls = highriseRoot.Descendants("web-address").Select(e =&gt; (string)e.Element("url"))<br />
};<br /></p><p></p><p>
After looking back at the sample here I wish I had chosen an XML fragment with a little
more hierarchy, however it's much too late for that now. Hopefully, the code included
in this post gives you a small taste of the types of XML transformations possible
with LINQ to XML. As you begin to work with LINQ to XML, you'll find that functional
construction, combined with query axis methods, and query expressions provide a tremendous
amount of flexibility for transforming XML. Additionally, the new object initializer
syntax and LINQ to XML's ability to easily construct objects from XML makes it very
easy to create objects from XML. I've attached a zip file with the code above to this
post. (VS2008 Beta 2 Required) <a href="http://iqueryable.com/content/binary/LINQtoXMLTransformSample.zip">LINQtoXMLTransformSample.zip
(23.69 KB)</a></p><img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=0508b835-90cf-45fc-95ff-1721342f2bda" /></body>
      <title>Transforming XML with LINQ to XML</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,0508b835-90cf-45fc-95ff-1721342f2bda.aspx</guid>
      <link>http://iqueryable.com/2007/08/03/TransformingXMLWithLINQToXML.aspx</link>
      <pubDate>Fri, 03 Aug 2007 03:20:02 GMT</pubDate>
      <description>While working on our &lt;a href="http://www.manning.com/affiliate/idevaffiliate.php?id=253_74"&gt;LINQ
book&lt;/a&gt; I've come to really enjoy LINQ to XML. I've worked with a lot of XML API's
over the years, however, the LINQ to XML API is my favorite...by far. In addition
to providing all the nice query facilities made available by LINQ, it also provides
a lot of other great features that many people overlook. As I promised long ago, I'm
going to begin to talk about the things that I enjoy about LINQ to XML in hopes that
it will help you realize that the red headed step child of LINQ has some things to
offer the world as well. :) 
&lt;br&gt;
&lt;br&gt;
One of the most common things that we need to do when dealing with XML is transform
it. We're usually transforming it into an alternate XML format, or transforming the
XML into a set of objects. In this post I'm going to quickly look at some of the transformation
capabilities offered by LINQ to XML. To help us get started I'm going to use the following
XML which is the XML representation of a contact in &lt;a href="http://highrisehq.com"&gt;Highrise&lt;/a&gt;. 
&lt;br&gt;
&lt;br&gt;
&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br&gt;
&amp;lt;person&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;author-id type="integer"&amp;gt;1436&amp;lt;/author-id&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;background/&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;company-id type="integer"&amp;gt;1226900&amp;lt;/company-id&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;created-at type="datetime"&amp;gt;2007-06-09T03:13:15Z&amp;lt;/created-at&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;first-name&amp;gt;Steve&amp;lt;/first-name&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;group-id type="integer"/&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;id type="integer"&amp;gt;1226899&amp;lt;/id&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;last-name&amp;gt;Eichert&amp;lt;/last-name&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;owner-id type="integer"/&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;title/&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;updated-at type="datetime"&amp;gt;2007-06-09T03:15:16Z&amp;lt;/updated-at&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;visible-to&amp;gt;Everyone&amp;lt;/visible-to&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;contact-data&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;email-addresses type="array"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;email-address&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;address&amp;gt;steve.eichert at google
mail dot com&amp;lt;/address&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;id type="integer"&amp;gt;559722&amp;lt;/id&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;location&amp;gt;Work&amp;lt;/location&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/email-address&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/email-addresses&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;web-addresses type="array"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;web-address&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;id type="integer"&amp;gt;942962&amp;lt;/id&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;location&amp;gt;Work&amp;lt;/location&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;url&amp;gt;http://iqueryable.com/&amp;lt;/url&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/web-address&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/web-addresses&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;/contact-data&amp;gt;&lt;br&gt;
&amp;lt;/person&amp;gt;&lt;br&gt;
&lt;br&gt;
Rather than be stuck with our contact in XML, let's see what we can do to transform
the above XML into the &lt;a href="http://en.wikipedia.org/wiki/HCard"&gt;hCard microformat&lt;/a&gt;.
We're going to ignore a bunch of data, such as all the ids, since it doesn't have
any meaning outside of Highrise. When we're done we'll end up with the much simplified
XML shown below: 
&lt;br&gt;
&lt;br&gt;
&amp;lt;div class="vcard"&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;div class="fn"&amp;gt;Steve Eichert&amp;lt;/div&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;div&amp;gt;Email: &amp;lt;span class="email"&amp;gt;steve.eichert at google mail dot
com&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;a class="url" href="http://iqueryable.com/"&amp;gt;http://iqueryable.com/&amp;lt;/a&amp;gt;&lt;br&gt;
&amp;lt;/div&amp;gt;&lt;br&gt;
&lt;br&gt;
The first step for transforming our Highrise XML into the hCard microformat is to
load the Highrise XML into an XElement. 
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
XElement highriseRoot = XElement.Load("highrise-contact.xml");&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
We use the static Load method of XElement to load the XML contained within the "highrise-contact.xml"
file that we've saved locally. I don't believe the Highrise API is officially supported
at the moment so I'm not going to load the contact details directly from the highrisehq.com
site. Perhaps, in a future post we can explore that as an option. 
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Anywho, once our XML is loaded into an XElement, we can transform our Highrise XML
into the hCard microformat by building a new XElement. We'll use the Element query
axis method to retrieve the first and last name of the contact, and we'll embed query
expressions and make use of the Descendants query axis method for selecting all the
email and web addresses for the contact within the source XML. When we put it all
together we end up with the C# code below:
&lt;/p&gt;
&lt;p&gt;
XElement highriseRoot = XElement.Load("highrise-contact.xml");&lt;br&gt;
&lt;br&gt;
XElement hCard = 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; new XElement("div",&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; new XAttribute("class", "vcard"),&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; new XElement("div",&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; new XAttribute("class", "fn"),&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; highriseRoot.Element("first-name")
+ " " + highriseRoot.Element("last-name")&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ),&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; from emailElement in highriseRoot.Descendants("email-address")&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; select new XElement("div",&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; "Email:",&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; new XElement("span",&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; new XAttribute("class",
"email"),&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; (string)
emailElement.Element("address")&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ),&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; from webElement in highriseRoot.Descendants("web-address")&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; select 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; new XElement("a",&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; new XAttribute("class", "url"),&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; new XAttribute("href", (string)
webElement.Element("url")),&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; (string) webElement.Element("url")&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br&gt;
&lt;br&gt;
Console.WriteLine(hCard);&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
At first glance, the above code might be overwhelming. However, once you come to understand
the power of functional construction you'll quickly realize how wonderful LINQ to
XML can be for transforming XML to alternate XML formats. In addition to making it
easy to transform XML into alternate XML formats, LINQ to XML also makes it very easy
to transform XML into objects. If we have a Contact class defined as: 
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
public class Contact {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public string Name { get; set; }&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public IEnumerable&amp;lt;string&amp;gt; EmailAddresses { get; set; }&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public IEnumerable&amp;lt;string&amp;gt; Urls { get; set; }&lt;br&gt;
}
&lt;/p&gt;
&lt;p&gt;
We can transform the contact details in our XML into a Contact instance with the following
code:
&lt;/p&gt;
&lt;p&gt;
Contact contact = new Contact {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Name = (string) highriseRoot.Element("first-name") + " " + (string)
highriseRoot.Element("last-name"),&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; EmailAddresses = highriseRoot.Descendants("email-address").Select(e
=&amp;gt; (string)e.Element("address")),&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Urls = highriseRoot.Descendants("web-address").Select(e =&amp;gt; (string)e.Element("url"))&lt;br&gt;
};&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
After looking back at the sample here I wish I had chosen an XML fragment with a little
more hierarchy, however it's much too late for that now. Hopefully, the code included
in this post gives you a small taste of the types of XML transformations possible
with LINQ to XML. As you begin to work with LINQ to XML, you'll find that functional
construction, combined with query axis methods, and query expressions provide a tremendous
amount of flexibility for transforming XML. Additionally, the new object initializer
syntax and LINQ to XML's ability to easily construct objects from XML makes it very
easy to create objects from XML. I've attached a zip file with the code above to this
post. (VS2008 Beta 2 Required) &lt;a href="http://iqueryable.com/content/binary/LINQtoXMLTransformSample.zip"&gt;LINQtoXMLTransformSample.zip
(23.69 KB)&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=0508b835-90cf-45fc-95ff-1721342f2bda" /&gt;</description>
      <category>linq;linq in action;linq to xml</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=e026feb6-f1f9-43e3-b0e5-ff5ae254f1b9</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,e026feb6-f1f9-43e3-b0e5-ff5ae254f1b9.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <a href="http://blogs.msdn.com/mattwar/">Matt
Warren</a>, who has been one of the lead developers on many aspects of LINQ, recently
posted two very interesting stories describing <a href="http://blogs.msdn.com/mattwar/archive/2007/05/31/the-origin-of-linq-to-sql.aspx">The
Origins of LINQ to SQL</a>, and <a href="http://blogs.msdn.com/mattwar/archive/2007/06/01/iqueryable-s-deep-dark-secret.aspx">IQueryable's
Deep Dark Secret</a>.  In his first post on the <a href="http://blogs.msdn.com/mattwar/archive/2007/05/31/the-origin-of-linq-to-sql.aspx">Origins
of LINQ to SQL</a>, Matt talks about some of the previous dead projects, such as ObjectSpaces
and WinFS, that influenced LINQ to SQL.  I found it interesting to hear about
how LINQ to SQL came to be, and some of the internal politics that had to be overcome
to make it a reality.  In his second post, <a href="http://blogs.msdn.com/mattwar/archive/2007/06/01/iqueryable-s-deep-dark-secret.aspx">IQueryable's
Deep Dark Secret</a>, Matt talks about how a call from <a href="http://pluralsight.com/blogs/dbox/">Don
Box</a> eventually led to what is now at the core of LINQ, IQueryable.<br /><p></p><img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=e026feb6-f1f9-43e3-b0e5-ff5ae254f1b9" /></body>
      <title>LINQ to SQL and IQueryable Tales</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,e026feb6-f1f9-43e3-b0e5-ff5ae254f1b9.aspx</guid>
      <link>http://iqueryable.com/2007/06/02/LINQToSQLAndIQueryableTales.aspx</link>
      <pubDate>Sat, 02 Jun 2007 00:38:52 GMT</pubDate>
      <description>&lt;a href="http://blogs.msdn.com/mattwar/"&gt;Matt Warren&lt;/a&gt;, who has been one of the
lead developers on many aspects of LINQ, recently posted two very interesting stories
describing &lt;a href="http://blogs.msdn.com/mattwar/archive/2007/05/31/the-origin-of-linq-to-sql.aspx"&gt;The
Origins of LINQ to SQL&lt;/a&gt;, and &lt;a href="http://blogs.msdn.com/mattwar/archive/2007/06/01/iqueryable-s-deep-dark-secret.aspx"&gt;IQueryable's
Deep Dark Secret&lt;/a&gt;.&amp;nbsp; In his first post on the &lt;a href="http://blogs.msdn.com/mattwar/archive/2007/05/31/the-origin-of-linq-to-sql.aspx"&gt;Origins
of LINQ to SQL&lt;/a&gt;, Matt talks about some of the previous dead projects, such as ObjectSpaces
and WinFS, that influenced LINQ to SQL.&amp;nbsp; I found it interesting to hear about
how LINQ to SQL came to be, and some of the internal politics that had to be overcome
to make it a reality.&amp;nbsp; In his second post, &lt;a href="http://blogs.msdn.com/mattwar/archive/2007/06/01/iqueryable-s-deep-dark-secret.aspx"&gt;IQueryable's
Deep Dark Secret&lt;/a&gt;, Matt talks about how a call from &lt;a href="http://pluralsight.com/blogs/dbox/"&gt;Don
Box&lt;/a&gt; eventually led to what is now at the core of LINQ, IQueryable.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=e026feb6-f1f9-43e3-b0e5-ff5ae254f1b9" /&gt;</description>
      <category>linq;orcas;linq to sql</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=acb9f843-9612-4e92-9d62-d77891776d60</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,acb9f843-9612-4e92-9d62-d77891776d60.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <a href="http://blogs.msdn.com/mikechampion/archive/2007/05/15/the-secret-of-linq-design.aspx">Mike
Champion has a great post that offers up some theories for why LINQ to XML has been
getting positive user reviews</a>.  In short, he thinks it could be because Anders
is "the man", and can read every developers mind.  He also has a magical crystal
ball that he can look into to figure out what to include and more importantly what
to exclude from the LINQ to XML API.  I might not be getting all the details
of Mike's post right, so you *may* want to read what he said yourself rather than
taking my word for it.<br /><br />
I've been working with LINQ to XML as part of my work on our <a href="http://www.manning.com/affiliate/idevaffiliate.php?id=253_74">LINQ
book</a>, and I must say it's a seriously kick ass XML API.  I've done a lot
of XML work in the past and I've never had as much fun working with XML as I do when
using LINQ to XML.  The key highlights for me are:<br /><ul><li>
Functional Construction: Have you ever created XML using existing .NET XML API's? 
Enough said, functional construction beats the pants out of anything else out there
for creating XML.</li><li>
Powerful Transformation capabilities: By combining the powerful querying capabilities
of LINQ with the functional construction pattern for XML creation LINQ to XML provides
a lot of really nice transformation capabilities.  In addition to supporting
superb XML to XML transformations, we also get killer support for transforming our
XML into object structures, LINQ to SQL objects, and whatever else you can think up.</li><li>
LINQ: What else needs to be said, sprinkling LINQ query support on top of an XML API
makes for a kick ass query experience.  We get the best of XPath and XQuery but
in a much nicer, cleaner, and straightforward API.</li></ul>
Now that I'm back on the "blogging wagon" I'll be looking to start <a href="http://iqueryable.com/2007/03/06/LINQToXMLDeservesSomeLoveToo.aspx">the
LINQ to XML for president campaign</a> that I promised way back when.<br /><p></p><img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=acb9f843-9612-4e92-9d62-d77891776d60" /></body>
      <title>LINQ to XML's secret sauce.....Anders?</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,acb9f843-9612-4e92-9d62-d77891776d60.aspx</guid>
      <link>http://iqueryable.com/2007/05/16/LINQToXMLsSecretSauceAnders.aspx</link>
      <pubDate>Wed, 16 May 2007 12:14:55 GMT</pubDate>
      <description>&lt;a href="http://blogs.msdn.com/mikechampion/archive/2007/05/15/the-secret-of-linq-design.aspx"&gt;Mike
Champion has a great post that offers up some theories for why LINQ to XML has been
getting positive user reviews&lt;/a&gt;.&amp;nbsp; In short, he thinks it could be because Anders
is "the man", and can read every developers mind.&amp;nbsp; He also has a magical crystal
ball that he can look into to figure out what to include and more importantly what
to exclude from the LINQ to XML API.&amp;nbsp; I might not be getting all the details
of Mike's post right, so you *may* want to read what he said yourself rather than
taking my word for it.&lt;br&gt;
&lt;br&gt;
I've been working with LINQ to XML as part of my work on our &lt;a href="http://www.manning.com/affiliate/idevaffiliate.php?id=253_74"&gt;LINQ
book&lt;/a&gt;, and I must say it's a seriously kick ass XML API.&amp;nbsp; I've done a lot
of XML work in the past and I've never had as much fun working with XML as I do when
using LINQ to XML.&amp;nbsp; The key highlights for me are:&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
Functional Construction: Have you ever created XML using existing .NET XML API's?&amp;nbsp;
Enough said, functional construction beats the pants out of anything else out there
for creating XML.&lt;/li&gt;
&lt;li&gt;
Powerful Transformation capabilities: By combining the powerful querying capabilities
of LINQ with the functional construction pattern for XML creation LINQ to XML provides
a lot of really nice transformation capabilities.&amp;nbsp; In addition to supporting
superb XML to XML transformations, we also get killer support for transforming our
XML into object structures, LINQ to SQL objects, and whatever else you can think up.&lt;/li&gt;
&lt;li&gt;
LINQ: What else needs to be said, sprinkling LINQ query support on top of an XML API
makes for a kick ass query experience.&amp;nbsp; We get the best of XPath and XQuery but
in a much nicer, cleaner, and straightforward API.&lt;/li&gt;
&lt;/ul&gt;
Now that I'm back on the "blogging wagon" I'll be looking to start &lt;a href="http://iqueryable.com/2007/03/06/LINQToXMLDeservesSomeLoveToo.aspx"&gt;the
LINQ to XML for president campaign&lt;/a&gt; that I promised way back when.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=acb9f843-9612-4e92-9d62-d77891776d60" /&gt;</description>
      <category>linq;linq to xml</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=447006ec-f583-4faf-a1cc-b5aead914a4f</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,447006ec-f583-4faf-a1cc-b5aead914a4f.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <a href="http://spellcoder.com/blogs/bashmohandes/">Mohammed
Hossam El-Din</a> has created <a href="http://spellcoder.com/blogs/bashmohandes/archive/2007/04/08/6552.aspx">an
implementation of IQueryable that enables LINQ to be used against Flickr</a>. 
The LINQ to Flickr implementation leverages the <a href="http://www.codeplex.com/FlickrNet/">Flickr.NET</a> library. 
I've been wanting to write my own implementation of IQueryable but it looks like everyone
is beating me to all the good data sources. :)  Hopefully, once I finish my chapters
for the <a href="http://www.manning.com/affiliate/idevaffiliate.php?id=253_74">LINQ
book</a> I'll have a chance to complete an implementation of IQueryable for an interesting
data source...if there are any left  :)<br /><a href="http://spellcoder.com/blogs/bashmohandes/"></a><p></p><img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=447006ec-f583-4faf-a1cc-b5aead914a4f" /></body>
      <title>LINQ to Flickr</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,447006ec-f583-4faf-a1cc-b5aead914a4f.aspx</guid>
      <link>http://iqueryable.com/2007/04/16/LINQToFlickr.aspx</link>
      <pubDate>Mon, 16 Apr 2007 02:06:46 GMT</pubDate>
      <description>&lt;a href="http://spellcoder.com/blogs/bashmohandes/"&gt;Mohammed Hossam El-Din&lt;/a&gt; has
created &lt;a href="http://spellcoder.com/blogs/bashmohandes/archive/2007/04/08/6552.aspx"&gt;an
implementation of IQueryable that enables LINQ to be used against Flickr&lt;/a&gt;.&amp;nbsp;
The LINQ to Flickr implementation leverages the &lt;a href="http://www.codeplex.com/FlickrNet/"&gt;Flickr.NET&lt;/a&gt; library.&amp;nbsp;
I've been wanting to write my own implementation of IQueryable but it looks like everyone
is beating me to all the good data sources. :)&amp;nbsp; Hopefully, once I finish my chapters
for the &lt;a href="http://www.manning.com/affiliate/idevaffiliate.php?id=253_74"&gt;LINQ
book&lt;/a&gt; I'll have a chance to complete an implementation of IQueryable for an interesting
data source...if there are any left&amp;nbsp; :)&lt;br&gt;
&lt;a href="http://spellcoder.com/blogs/bashmohandes/"&gt;&lt;/a&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=447006ec-f583-4faf-a1cc-b5aead914a4f" /&gt;</description>
      <category>linq</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=fe346464-a76f-4132-acdf-3a0dda3c0185</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,fe346464-a76f-4132-acdf-3a0dda3c0185.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <a href="http://community.bartdesmet.net/blogs/bart/default.aspx">Bart
De Smart</a> has a great series of posts on how to create a custom implemention of
IQueryable that enables LINQ support for LDAP.<br /><div class="post"><div class="posthead"><ul><li><p><a id="ctl00___ctl00___ctl01___Results___postlist___EntryItems_ctl07_PostTitle" href="http://community.bartdesmet.net/blogs/bart/archive/2007/04/05/the-iqueryable-tales-linq-to-ldap-part-0.aspx">The
IQueryable tales - LINQ to LDAP - Part 0: Introduction</a></p></li><li><p><a id="ctl00___ctl00___ctl01___Results___postlist___EntryItems_ctl06_PostTitle" href="http://community.bartdesmet.net/blogs/bart/archive/2007/04/06/the-iqueryable-tales-linq-to-ldap-part-1-key-concepts.aspx">The
IQueryable tales - LINQ to LDAP - Part 1: Key concepts</a></p></li><li><p><a id="ctl00___ctl00___ctl01___Results___postlist___EntryItems_ctl05_PostTitle" href="http://community.bartdesmet.net/blogs/bart/archive/2007/04/06/the-iqueryable-tales-linq-to-ldap-part-2-getting-started-with-iqueryable-t.aspx">The
IQueryable tales - LINQ to LDAP - Part 2: Getting started with IQueryable&lt;T&gt;</a></p></li><li><p><a id="ctl00___ctl00___ctl01___Results___postlist___EntryItems_ctl04_PostTitle" href="http://community.bartdesmet.net/blogs/bart/archive/2007/04/07/the-iqueryable-tales-linq-to-ldap-part-3-why-do-we-need-entities.aspx">The
IQueryable tales - LINQ to LDAP - Part 3: Why do we need entities?</a></p></li><li><p><a id="ctl00___ctl00___ctl01___Results___postlist___EntryItems_ctl03_PostTitle" href="http://community.bartdesmet.net/blogs/bart/archive/2007/04/10/the-iqueryable-tales-linq-to-ldap-part-4-parsing-and-executing-queries.aspx">The
IQueryable tales - LINQ to LDAP - Part 4: Parsing and executing queries</a><br /></p></li><li><p><a id="ctl00___ctl00___ctl01___Results___postlist___EntryItems_ctl02_PostTitle" href="http://community.bartdesmet.net/blogs/bart/archive/2007/04/10/the-iqueryable-tales-linq-to-ldap-part-5-supporting-updates.aspx">The
IQueryable tales - LINQ to LDAP - Part 5: Supporting updates</a></p></li></ul></div></div><div class="postfoot"><div><span id="ctl00___ctl00___ctl01___Results___postlist___EntryItems_ctl02_InlineTagEditorPanel"><a href="http://community.bartdesmet.net/blogs/bart/archive/tags/LINQ/default.aspx" rel="tag"></a></span><input name="ctl00$_$ctl00$_$ctl01$_$Results$_$postlist$_$EntryItems$ctl02$InlineTagEditorPanel" id="ctl00___ctl00___ctl01___Results___postlist___EntryItems_ctl02_InlineTagEditorPanel_State" value="nochange" type="hidden" /></div></div><div class="postfoot"><div><span id="ctl00___ctl00___ctl01___Results___postlist___EntryItems_ctl03_InlineTagEditorPanel"><a href="http://community.bartdesmet.net/blogs/bart/archive/tags/LINQ/default.aspx" rel="tag"></a></span><input name="ctl00$_$ctl00$_$ctl01$_$Results$_$postlist$_$EntryItems$ctl03$InlineTagEditorPanel" id="ctl00___ctl00___ctl01___Results___postlist___EntryItems_ctl03_InlineTagEditorPanel_State" value="nochange" type="hidden" /></div></div><div class="postfoot"><div><span id="ctl00___ctl00___ctl01___Results___postlist___EntryItems_ctl04_InlineTagEditorPanel"><a href="http://community.bartdesmet.net/blogs/bart/archive/tags/LINQ/default.aspx" rel="tag"></a></span><input name="ctl00$_$ctl00$_$ctl01$_$Results$_$postlist$_$EntryItems$ctl04$InlineTagEditorPanel" id="ctl00___ctl00___ctl01___Results___postlist___EntryItems_ctl04_InlineTagEditorPanel_State" value="nochange" type="hidden" /></div></div><div class="postfoot"><div><span id="ctl00___ctl00___ctl01___Results___postlist___EntryItems_ctl05_InlineTagEditorPanel"><a href="http://community.bartdesmet.net/blogs/bart/archive/tags/LINQ/default.aspx" rel="tag"></a></span><input name="ctl00$_$ctl00$_$ctl01$_$Results$_$postlist$_$EntryItems$ctl05$InlineTagEditorPanel" id="ctl00___ctl00___ctl01___Results___postlist___EntryItems_ctl05_InlineTagEditorPanel_State" value="nochange" type="hidden" /></div></div><div class="postfoot"><div><span id="ctl00___ctl00___ctl01___Results___postlist___EntryItems_ctl06_InlineTagEditorPanel"></span><input name="ctl00$_$ctl00$_$ctl01$_$Results$_$postlist$_$EntryItems$ctl06$InlineTagEditorPanel" id="ctl00___ctl00___ctl01___Results___postlist___EntryItems_ctl06_InlineTagEditorPanel_State" value="nochange" type="hidden" /></div></div><p></p><img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=fe346464-a76f-4132-acdf-3a0dda3c0185" /></body>
      <title>LINQ to LDAP</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,fe346464-a76f-4132-acdf-3a0dda3c0185.aspx</guid>
      <link>http://iqueryable.com/2007/04/16/LINQToLDAP.aspx</link>
      <pubDate>Mon, 16 Apr 2007 01:56:28 GMT</pubDate>
      <description>&lt;a href="http://community.bartdesmet.net/blogs/bart/default.aspx"&gt;Bart De Smart&lt;/a&gt; has
a great series of posts on how to create a custom implemention of IQueryable that
enables LINQ support for LDAP.&lt;br&gt;
&lt;div class="post"&gt;
&lt;div class="posthead"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
&lt;a id="ctl00___ctl00___ctl01___Results___postlist___EntryItems_ctl07_PostTitle" href="http://community.bartdesmet.net/blogs/bart/archive/2007/04/05/the-iqueryable-tales-linq-to-ldap-part-0.aspx"&gt;The
IQueryable tales - LINQ to LDAP - Part 0: Introduction&lt;/a&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
&lt;a id="ctl00___ctl00___ctl01___Results___postlist___EntryItems_ctl06_PostTitle" href="http://community.bartdesmet.net/blogs/bart/archive/2007/04/06/the-iqueryable-tales-linq-to-ldap-part-1-key-concepts.aspx"&gt;The
IQueryable tales - LINQ to LDAP - Part 1: Key concepts&lt;/a&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
&lt;a id="ctl00___ctl00___ctl01___Results___postlist___EntryItems_ctl05_PostTitle" href="http://community.bartdesmet.net/blogs/bart/archive/2007/04/06/the-iqueryable-tales-linq-to-ldap-part-2-getting-started-with-iqueryable-t.aspx"&gt;The
IQueryable tales - LINQ to LDAP - Part 2: Getting started with IQueryable&amp;lt;T&amp;gt;&lt;/a&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
&lt;a id="ctl00___ctl00___ctl01___Results___postlist___EntryItems_ctl04_PostTitle" href="http://community.bartdesmet.net/blogs/bart/archive/2007/04/07/the-iqueryable-tales-linq-to-ldap-part-3-why-do-we-need-entities.aspx"&gt;The
IQueryable tales - LINQ to LDAP - Part 3: Why do we need entities?&lt;/a&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
&lt;a id="ctl00___ctl00___ctl01___Results___postlist___EntryItems_ctl03_PostTitle" href="http://community.bartdesmet.net/blogs/bart/archive/2007/04/10/the-iqueryable-tales-linq-to-ldap-part-4-parsing-and-executing-queries.aspx"&gt;The
IQueryable tales - LINQ to LDAP - Part 4: Parsing and executing queries&lt;/a&gt; 
&lt;br&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
&lt;a id="ctl00___ctl00___ctl01___Results___postlist___EntryItems_ctl02_PostTitle" href="http://community.bartdesmet.net/blogs/bart/archive/2007/04/10/the-iqueryable-tales-linq-to-ldap-part-5-supporting-updates.aspx"&gt;The
IQueryable tales - LINQ to LDAP - Part 5: Supporting updates&lt;/a&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="postfoot"&gt;
&lt;div&gt;&lt;span id="ctl00___ctl00___ctl01___Results___postlist___EntryItems_ctl02_InlineTagEditorPanel"&gt;&lt;a href="http://community.bartdesmet.net/blogs/bart/archive/tags/LINQ/default.aspx" rel="tag"&gt;&lt;/a&gt;&lt;/span&gt;
&lt;input name="ctl00$_$ctl00$_$ctl01$_$Results$_$postlist$_$EntryItems$ctl02$InlineTagEditorPanel" id="ctl00___ctl00___ctl01___Results___postlist___EntryItems_ctl02_InlineTagEditorPanel_State" value="nochange" type="hidden"&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="postfoot"&gt;
&lt;div&gt;&lt;span id="ctl00___ctl00___ctl01___Results___postlist___EntryItems_ctl03_InlineTagEditorPanel"&gt;&lt;a href="http://community.bartdesmet.net/blogs/bart/archive/tags/LINQ/default.aspx" rel="tag"&gt;&lt;/a&gt;&lt;/span&gt;
&lt;input name="ctl00$_$ctl00$_$ctl01$_$Results$_$postlist$_$EntryItems$ctl03$InlineTagEditorPanel" id="ctl00___ctl00___ctl01___Results___postlist___EntryItems_ctl03_InlineTagEditorPanel_State" value="nochange" type="hidden"&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="postfoot"&gt;
&lt;div&gt;&lt;span id="ctl00___ctl00___ctl01___Results___postlist___EntryItems_ctl04_InlineTagEditorPanel"&gt;&lt;a href="http://community.bartdesmet.net/blogs/bart/archive/tags/LINQ/default.aspx" rel="tag"&gt;&lt;/a&gt;&lt;/span&gt;
&lt;input name="ctl00$_$ctl00$_$ctl01$_$Results$_$postlist$_$EntryItems$ctl04$InlineTagEditorPanel" id="ctl00___ctl00___ctl01___Results___postlist___EntryItems_ctl04_InlineTagEditorPanel_State" value="nochange" type="hidden"&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="postfoot"&gt;
&lt;div&gt;&lt;span id="ctl00___ctl00___ctl01___Results___postlist___EntryItems_ctl05_InlineTagEditorPanel"&gt;&lt;a href="http://community.bartdesmet.net/blogs/bart/archive/tags/LINQ/default.aspx" rel="tag"&gt;&lt;/a&gt;&lt;/span&gt;
&lt;input name="ctl00$_$ctl00$_$ctl01$_$Results$_$postlist$_$EntryItems$ctl05$InlineTagEditorPanel" id="ctl00___ctl00___ctl01___Results___postlist___EntryItems_ctl05_InlineTagEditorPanel_State" value="nochange" type="hidden"&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="postfoot"&gt;
&lt;div&gt;&lt;span id="ctl00___ctl00___ctl01___Results___postlist___EntryItems_ctl06_InlineTagEditorPanel"&gt;&lt;/span&gt;
&lt;input name="ctl00$_$ctl00$_$ctl01$_$Results$_$postlist$_$EntryItems$ctl06$InlineTagEditorPanel" id="ctl00___ctl00___ctl01___Results___postlist___EntryItems_ctl06_InlineTagEditorPanel_State" value="nochange" type="hidden"&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=fe346464-a76f-4132-acdf-3a0dda3c0185" /&gt;</description>
      <category>linq</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=a56467a1-e9a5-4b19-9d53-b843b38f47f6</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,a56467a1-e9a5-4b19-9d53-b843b38f47f6.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">If you're an NHibernate user, and/or interesting
in learning about how you can create custom implementations of LINQ using IQueryable,
I strongly urge you to checkout what <a href="http://www.ayende.com/Blog/category/509.aspx">Ayende</a> and <a href="http://blogs.magiconsoftware.com/blogs/bdiaz/archive/tags/Linq/default.aspx">Bobby
Diaz</a> (and others?) have been up to with LINQ to NHibernate.<br /><br />
Here are some of my favorite posts thus far:<br /><ul><li><a href="http://www.ayende.com/Blog/archive/2007/03/17/Implementing-Linq-for-NHibernate-A-How-To-Guide--Part.aspx">Implmenting
Linq for NHibernate: A How to Guide Part 1<br /></a></li><li><a id="ctl00___ctl00___ctl01___Results___postlist___EntryItems_ctl02_PostTitle" href="http://blogs.magiconsoftware.com/blogs/bdiaz/archive/2007/03/29/implementing-linq-for-nhibernate-part-2-ordering-and-paging.aspx">Implementing
Linq for NHibernate - Part 2 (Ordering and Paging)</a></li><li><a id="ctl00___ctl00___ctl01___Results___postlist___EntryItems_ctl01_PostTitle" href="http://blogs.magiconsoftware.com/blogs/bdiaz/archive/2007/04/03/implementing-linq-for-nhibernate-part-3-aggregate-and-element-operators.aspx">Implementing
Linq for NHibernate - Part 3 (Aggregate and Element Operators)</a></li></ul><p></p><img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=a56467a1-e9a5-4b19-9d53-b843b38f47f6" /></body>
      <title>LINQ to NHibernate</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,a56467a1-e9a5-4b19-9d53-b843b38f47f6.aspx</guid>
      <link>http://iqueryable.com/2007/04/05/LINQToNHibernate.aspx</link>
      <pubDate>Thu, 05 Apr 2007 12:44:09 GMT</pubDate>
      <description>If you're an NHibernate user, and/or interesting in learning about how you can create custom implementations of LINQ using IQueryable, I strongly urge you to checkout what &lt;a href="http://www.ayende.com/Blog/category/509.aspx"&gt;Ayende&lt;/a&gt; and &lt;a href="http://blogs.magiconsoftware.com/blogs/bdiaz/archive/tags/Linq/default.aspx"&gt;Bobby
Diaz&lt;/a&gt; (and others?) have been up to with LINQ to NHibernate.&lt;br&gt;
&lt;br&gt;
Here are some of my favorite posts thus far:&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.ayende.com/Blog/archive/2007/03/17/Implementing-Linq-for-NHibernate-A-How-To-Guide--Part.aspx"&gt;Implmenting
Linq for NHibernate: A How to Guide Part 1&lt;br&gt;
&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a id="ctl00___ctl00___ctl01___Results___postlist___EntryItems_ctl02_PostTitle" href="http://blogs.magiconsoftware.com/blogs/bdiaz/archive/2007/03/29/implementing-linq-for-nhibernate-part-2-ordering-and-paging.aspx"&gt;Implementing
Linq for NHibernate - Part 2 (Ordering and Paging)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a id="ctl00___ctl00___ctl01___Results___postlist___EntryItems_ctl01_PostTitle" href="http://blogs.magiconsoftware.com/blogs/bdiaz/archive/2007/04/03/implementing-linq-for-nhibernate-part-3-aggregate-and-element-operators.aspx"&gt;Implementing
Linq for NHibernate - Part 3 (Aggregate and Element Operators)&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=a56467a1-e9a5-4b19-9d53-b843b38f47f6" /&gt;</description>
      <category>linq;nhibernate</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=d26bd57e-329c-4d0d-a452-745266c2216c</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,d26bd57e-329c-4d0d-a452-745266c2216c.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">I'm going to document the things I run
into as I transition from the May 2006 CTP of LINQ to the full March 2007 CTP of Orcas.
Tonight after sorting out my data source issue I ran into a compile error with my
Visual Basic code samples that are using XML Axis properties. The error is "XML Axis
properties do not support late binding". Hopefully I'll be able to post back here
shortly with an answer to why I'm getting this....<br /><br /><b>UPDATE</b>:  Thanks to a comment from Avner I figured out that this is due
to a regression in the capability of VB9 to infer types.  Previously things worked
swimmingly with the following code:<br /><br />
    Dim rss = XElement.Load("rss.xml")<br />
    Dim items = rss...&lt;item&gt;<br /><br />
With the March CTP the type of "rss" needs to be explicitly defined like so:<br /><br />
    Dim rss <b>As XElement</b> = XElement.Load("rss.xml") 
<br />
    Dim items = rss...&lt;item&gt;<br /><br />
I like the old way better :)<br /><br /><br /><img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=d26bd57e-329c-4d0d-a452-745266c2216c" /></body>
      <title>Orcas March CTP - XML Axis properties do not support late binding</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,d26bd57e-329c-4d0d-a452-745266c2216c.aspx</guid>
      <link>http://iqueryable.com/2007/03/08/OrcasMarchCTPXMLAxisPropertiesDoNotSupportLateBinding.aspx</link>
      <pubDate>Thu, 08 Mar 2007 03:00:27 GMT</pubDate>
      <description>I'm going to document the things I run into as I transition from the May 2006 CTP of LINQ to the full March 2007 CTP of Orcas.  Tonight after sorting out my data source issue I ran into a compile error with my Visual Basic code samples that are using XML Axis properties.  The error is "XML Axis properties do not support late binding".  Hopefully I'll be able to post back here shortly with an answer to why I'm getting this....&lt;br&gt;
&lt;br&gt;
&lt;b&gt;UPDATE&lt;/b&gt;:&amp;nbsp; Thanks to a comment from Avner I figured out that this is due
to a regression in the capability of VB9 to infer types.&amp;nbsp; Previously things worked
swimmingly with the following code:&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim rss = XElement.Load("rss.xml")&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim items = rss...&amp;lt;item&amp;gt;&lt;br&gt;
&lt;br&gt;
With the March CTP the type of "rss" needs to be explicitly defined like so:&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim rss &lt;b&gt;As XElement&lt;/b&gt; = XElement.Load("rss.xml") 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim items = rss...&amp;lt;item&amp;gt;&lt;br&gt;
&lt;br&gt;
I like the old way better :)&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=d26bd57e-329c-4d0d-a452-745266c2216c" /&gt;</description>
      <category>.net;linq;linq to xml;orcas</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=cf21117b-2cd7-4148-8050-0e14573cb569</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,cf21117b-2cd7-4148-8050-0e14573cb569.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <a href="http://iqueryable.com/2007/03/06/OrcasMarchCTPUnableToFindTheRequestedNETFrameworkDataProvider.aspx">Yesterday
I mentioned I was having some trouble adding a Data Source in Orcas</a>. I'm happy
to report that following the instructions in the <a href="http://oakleafblog.blogspot.com/2007/03/orcas-march-ctp-on-vista-database.html">Orcas
March CTP on Vista Database Connections Problem Solved</a> post resolved my issue.
Once I commented out the SQL Server CE Data Provider in the machine.config everything
was back to normal.<img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=cf21117b-2cd7-4148-8050-0e14573cb569" /></body>
      <title>Orcas March CTP - Fixing the broken data provider</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,cf21117b-2cd7-4148-8050-0e14573cb569.aspx</guid>
      <link>http://iqueryable.com/2007/03/07/OrcasMarchCTPFixingTheBrokenDataProvider.aspx</link>
      <pubDate>Wed, 07 Mar 2007 02:08:35 GMT</pubDate>
      <description>&lt;a href="http://iqueryable.com/2007/03/06/OrcasMarchCTPUnableToFindTheRequestedNETFrameworkDataProvider.aspx"&gt;Yesterday
I mentioned I was having some trouble adding a Data Source in Orcas&lt;/a&gt;. I'm happy
to report that following the instructions in the &lt;a href="http://oakleafblog.blogspot.com/2007/03/orcas-march-ctp-on-vista-database.html"&gt;Orcas
March CTP on Vista Database Connections Problem Solved&lt;/a&gt; post resolved my issue.
Once I commented out the SQL Server CE Data Provider in the machine.config everything
was back to normal.&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=cf21117b-2cd7-4148-8050-0e14573cb569" /&gt;</description>
      <category>.net;linq;orcas</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=64251005-66ed-4438-b18d-448eb600991f</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,64251005-66ed-4438-b18d-448eb600991f.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">There has been a lot of talk about LINQ
as well as LINQ to SQL.  People seem to be genuinely interested in what they're
going to offer.  LINQ to XML on the other hand doesn't seem to be getting much
love.  I for one think it deserves it.  In the coming weeks I'm going to
start a marketing campaign for LINQ to XML that will aim to convince you that LINQ
to XML deserves some love as well.  Before getting started, let me ask the question,
why aren't you giving LINQ to XML any love?  
<br /><p></p><img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=64251005-66ed-4438-b18d-448eb600991f" /></body>
      <title>LINQ to XML deserves some love too!</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,64251005-66ed-4438-b18d-448eb600991f.aspx</guid>
      <link>http://iqueryable.com/2007/03/06/LINQToXMLDeservesSomeLoveToo.aspx</link>
      <pubDate>Tue, 06 Mar 2007 03:25:18 GMT</pubDate>
      <description>There has been a lot of talk about LINQ as well as LINQ to SQL.&amp;nbsp; People seem to be genuinely interested in what they're going to offer.&amp;nbsp; LINQ to XML on the other hand doesn't seem to be getting much love.&amp;nbsp; I for one think it deserves it.&amp;nbsp; In the coming weeks I'm going to start a marketing campaign for LINQ to XML that will aim to convince you that LINQ to XML deserves some love as well.&amp;nbsp; Before getting started, let me ask the question, why aren't you giving LINQ to XML any love?&amp;nbsp; &lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=64251005-66ed-4438-b18d-448eb600991f" /&gt;</description>
      <category>linq;linq to xml</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=304def0e-1c56-42f0-91fc-b525def18c23</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,304def0e-1c56-42f0-91fc-b525def18c23.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">I had a jolly good fun time tonight updating
my code samples to the March CTP of Orcas.  Well, actually, I'm not quite finished
as of yet because of the wonderful error in the title of this post.  It appears
VS.NET Orcas doesn't want to let me recreate my data connection for my database that
I'm using for some LINQ to SQL examples. Woot!  Hopefully I'll figure out what
the dealy is shortly because I've got chapters I need to finish. :)<br /><p></p><img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=304def0e-1c56-42f0-91fc-b525def18c23" /></body>
      <title>Orcas March CTP - Unable to find the requested .NET Framework Data provider</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,304def0e-1c56-42f0-91fc-b525def18c23.aspx</guid>
      <link>http://iqueryable.com/2007/03/06/OrcasMarchCTPUnableToFindTheRequestedNETFrameworkDataProvider.aspx</link>
      <pubDate>Tue, 06 Mar 2007 03:20:47 GMT</pubDate>
      <description>I had a jolly good fun time tonight updating my code samples to the March CTP of Orcas.&amp;nbsp; Well, actually, I'm not quite finished as of yet because of the wonderful error in the title of this post.&amp;nbsp; It appears VS.NET Orcas doesn't want to let me recreate my data connection for my database that I'm using for some LINQ to SQL examples. Woot!&amp;nbsp; Hopefully I'll figure out what the dealy is shortly because I've got chapters I need to finish. :)&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=304def0e-1c56-42f0-91fc-b525def18c23" /&gt;</description>
      <category>.net;linq;linq in action;orcas</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=a40f0be3-a9e4-4b3c-9adb-dd66a8b91a27</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,a40f0be3-a9e4-4b3c-9adb-dd66a8b91a27.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">I'm <a href="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2007/02/16/9122.aspx">with
Mike</a>, C# 3.0 needs the <a href="http://steve.emxsoftware.com/LINQ/XLinq+has+me+wanting+to+code+in+VBNET">Visual
Basic 9 XML Syntax</a>.  Maybe "needs" is a strong word, since the functional
construction model used for building XML with LINQ to XML is head and shoulders above
what we have available in today's XML API's, but it sure would be nice!  Since
the VB guys already have it done it should be a piece of cake to move over. 
Those Microsoft guys have mad skills, I expect it to be in the next CTP! :)<br /><p></p><img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=a40f0be3-a9e4-4b3c-9adb-dd66a8b91a27" /></body>
      <title>C# 3.0 Needs VB9 XML Literals</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,a40f0be3-a9e4-4b3c-9adb-dd66a8b91a27.aspx</guid>
      <link>http://iqueryable.com/2007/02/16/C30NeedsVB9XMLLiterals.aspx</link>
      <pubDate>Fri, 16 Feb 2007 13:36:33 GMT</pubDate>
      <description>I'm &lt;a href="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2007/02/16/9122.aspx"&gt;with
Mike&lt;/a&gt;, C# 3.0 needs the &lt;a href="http://steve.emxsoftware.com/LINQ/XLinq+has+me+wanting+to+code+in+VBNET"&gt;Visual
Basic 9 XML Syntax&lt;/a&gt;.&amp;nbsp; Maybe "needs" is a strong word, since the functional
construction model used for building XML with LINQ to XML is head and shoulders above
what we have available in today's XML API's, but it sure would be nice!&amp;nbsp; Since
the VB guys already have it done it should be a piece of cake to move over.&amp;nbsp;
Those Microsoft guys have mad skills, I expect it to be in the next CTP! :)&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=a40f0be3-a9e4-4b3c-9adb-dd66a8b91a27" /&gt;</description>
      <category>linq;linq to xml</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=ada5761d-4b07-476f-b09a-4d774a0fa89e</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,ada5761d-4b07-476f-b09a-4d774a0fa89e.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">Over on the XML Team's blog, <span style="font-size: 10pt; font-family: Arial;">Avner <a href="http://blogs.msdn.com/xmlteam/archive/2007/02/11/vb-9-0-xml-in-visual-studio-orcas-february-ctp.aspx">outlines
some VB 9.0 XML changes that will be showing up in the February CTP</a>.  
As I've mentioned in the past VB 9's <a href="http://steve.emxsoftware.com/LINQ/Xml+Axis+properties+VBNETs+second+cool+Xml+language+construct">XML
features</a> are very compelling, so much so that they have <a href="http://steve.emxsoftware.com/LINQ/XLinq+has+me+wanting+to+code+in+VBNET">me
wanting to write code in VB</a> which I haven't done since I started working with
.NET.  The major changes in the February CTP include:<br /><br /></span><ul><li>
Attribute axis property is string</li><li>
Global Xml namespace syntax has changed</li><li>
Added auto-completion</li><li>
Xml names are VB symbols</li><li>
Improved error handling</li></ul>
For the full details checkout <a href="http://blogs.msdn.com/xmlteam/archive/2007/02/11/vb-9-0-xml-in-visual-studio-orcas-february-ctp.aspx">Avner's
VB 9.0 Xml in Visual Studio "Orcas" February CTP post</a>.<br /><p></p><img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=ada5761d-4b07-476f-b09a-4d774a0fa89e" /></body>
      <title>VB 9.0 XML Features get a few "tweaks" in latest CTP</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,ada5761d-4b07-476f-b09a-4d774a0fa89e.aspx</guid>
      <link>http://iqueryable.com/2007/02/11/VB90XMLFeaturesGetAFewTweaksInLatestCTP.aspx</link>
      <pubDate>Sun, 11 Feb 2007 19:24:44 GMT</pubDate>
      <description>Over on the XML Team's blog, &lt;span style="font-size: 10pt; font-family: Arial;"&gt;Avner &lt;a href="http://blogs.msdn.com/xmlteam/archive/2007/02/11/vb-9-0-xml-in-visual-studio-orcas-february-ctp.aspx"&gt;outlines
some VB 9.0 XML changes that will be showing up in the February CTP&lt;/a&gt;.&amp;nbsp;&amp;nbsp;
As I've mentioned in the past VB 9's &lt;a href="http://steve.emxsoftware.com/LINQ/Xml+Axis+properties+VBNETs+second+cool+Xml+language+construct"&gt;XML
features&lt;/a&gt; are very compelling, so much so that they have &lt;a href="http://steve.emxsoftware.com/LINQ/XLinq+has+me+wanting+to+code+in+VBNET"&gt;me
wanting to write code in VB&lt;/a&gt; which I haven't done since I started working with
.NET.&amp;nbsp; The major changes in the February CTP include:&lt;br&gt;
&lt;br&gt;
&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
Attribute axis property is string&lt;/li&gt;
&lt;li&gt;
Global Xml namespace syntax has changed&lt;/li&gt;
&lt;li&gt;
Added auto-completion&lt;/li&gt;
&lt;li&gt;
Xml names are VB symbols&lt;/li&gt;
&lt;li&gt;
Improved error handling&lt;/li&gt;
&lt;/ul&gt;
For the full details checkout &lt;a href="http://blogs.msdn.com/xmlteam/archive/2007/02/11/vb-9-0-xml-in-visual-studio-orcas-february-ctp.aspx"&gt;Avner's
VB 9.0 Xml in Visual Studio "Orcas" February CTP post&lt;/a&gt;.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=ada5761d-4b07-476f-b09a-4d774a0fa89e" /&gt;</description>
      <category>linq;linq to xml;vb</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=c10f0326-aa5f-4082-a912-0b1fe1029c5e</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,c10f0326-aa5f-4082-a912-0b1fe1029c5e.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
The LINQ videos seem to be rolling out lately. 
</p>
        <ul>
          <li>
            <a href="http://blogs.msdn.com/wesdyer/">Wes Dyer</a> interviews <a href="http://blogs.msdn.com/charlie/">Charlie
Calvert</a> - <a href="http://download.microsoft.com/download/4/c/a/4cafaeb6-30aa-42f4-bae9-cd1a92e9789d/WesDyer_0002.zip">download</a>.</li>
          <li>
            <a href="http://blogs.msdn.com/charlie/archive/2007/01/26/anders-hejlsberg-on-linq-and-functional-programming.aspx">Anders
Hejlsberg on LINQ and Functional Programming</a>
          </li>
        </ul>
        <img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=c10f0326-aa5f-4082-a912-0b1fe1029c5e" />
      </body>
      <title>More LINQ videos</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,c10f0326-aa5f-4082-a912-0b1fe1029c5e.aspx</guid>
      <link>http://iqueryable.com/2007/02/02/MoreLINQVideos.aspx</link>
      <pubDate>Fri, 02 Feb 2007 14:29:59 GMT</pubDate>
      <description>&lt;p&gt;
The LINQ videos seem to be rolling out lately.&amp;nbsp;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://blogs.msdn.com/wesdyer/"&gt;Wes Dyer&lt;/a&gt; interviews &lt;a href="http://blogs.msdn.com/charlie/"&gt;Charlie
Calvert&lt;/a&gt;&amp;nbsp;- &lt;a href="http://download.microsoft.com/download/4/c/a/4cafaeb6-30aa-42f4-bae9-cd1a92e9789d/WesDyer_0002.zip"&gt;download&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://blogs.msdn.com/charlie/archive/2007/01/26/anders-hejlsberg-on-linq-and-functional-programming.aspx"&gt;Anders
Hejlsberg on LINQ and Functional Programming&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=c10f0326-aa5f-4082-a912-0b1fe1029c5e" /&gt;</description>
      <category>linq</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=51733648-23f7-4053-8333-d9f28eba56f1</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,51733648-23f7-4053-8333-d9f28eba56f1.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1180478&amp;SiteID=1">Boooooooooooooo!</a> :) 
I'd really like to get a new release that includes everything LINQ related that we
saw in the May 2006 CTP so I can start updating all my code samples and use all
the new wizz bang features that I'm sure they've added.
</p>
        <p>
          <strong>Update:</strong> I think I misread the post above.  The next Orcas CTP
isn't being pushed to March, it's just a bunch of LINQ to SQL stuff that isn't making
it into February that will show it's face in March.
</p>
        <img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=51733648-23f7-4053-8333-d9f28eba56f1" />
      </body>
      <title>Next Orcas CTP delayed until March</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,51733648-23f7-4053-8333-d9f28eba56f1.aspx</guid>
      <link>http://iqueryable.com/2007/02/02/NextOrcasCTPDelayedUntilMarch.aspx</link>
      <pubDate>Fri, 02 Feb 2007 14:14:43 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1180478&amp;amp;SiteID=1"&gt;Boooooooooooooo!&lt;/a&gt; :)&amp;nbsp;
I'd really like to get a new release that includes everything LINQ related that we
saw&amp;nbsp;in the May 2006 CTP so I can start updating all my code samples and use all
the new wizz bang features that I'm sure they've added.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Update:&lt;/strong&gt; I think I misread the post above.&amp;nbsp; The next Orcas CTP
isn't being pushed to March, it's just a bunch of LINQ to SQL stuff that isn't making
it into February that will show it's face in March.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=51733648-23f7-4053-8333-d9f28eba56f1" /&gt;</description>
      <category>.net;linq</category>
    </item>
    <item>
      <trackback:ping>http://iqueryable.com/Trackback.aspx?guid=b877178f-cb2b-4c54-9e54-f353ef1c84b6</trackback:ping>
      <pingback:server>http://iqueryable.com/pingback.aspx</pingback:server>
      <pingback:target>http://iqueryable.com/PermaLink,guid,b877178f-cb2b-4c54-9e54-f353ef1c84b6.aspx</pingback:target>
      <dc:creator>Steve Eichert</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">I can't wait for the next CTP of Orcas
to drop since it supposed to have feature parity with the <i>ancient</i> May 2006
LINQ Preview I'm still using.<br /><br /><ul><li>
Mike has a nice post where he looks to <a href="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2007/01/31/9085.aspx">Deconstruct
LINQ</a>.  I often find posts like Mike's, where the author is letting what they've
learned flow out in a post, the most beneficial.</li><li>
Alex is considering a couple implementations of IQueryable, which he is calling <a href="http://base4.net/Blog.aspx?ID=300">LINQ
to Web</a>, that sound very useful.  I've been thinking about writing an implementation
of LINQ to Google or LINQ to Live Search myself.  I have a feeling that a bunch
of what Alex is after in <a href="http://base4.net/Blog.aspx?ID=304">LINQ to DOM</a> could
be handled with a couple extensions on top of LINQ to XML.</li><li>
There is a new <a href="http://channel9.msdn.com/ShowPost.aspx?PostID=273697">video
on Channel 9 with Anders Hejlsberg, Herb Sutter, Erik Meijer, Brian Beckman</a> that
is bound to be full of interesting topics.  I've been having some iPod video
troubles lately and can't seem to find a good WMV to iPod Video Converter that runs
on a Mac.  I should probably just do the video conversion in Parallels...ok started...can't
wait to check it out.<br /></li></ul><p></p><img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=b877178f-cb2b-4c54-9e54-f353ef1c84b6" /></body>
      <title>LINQ Links - February 1st, 2007</title>
      <guid isPermaLink="false">http://iqueryable.com/PermaLink,guid,b877178f-cb2b-4c54-9e54-f353ef1c84b6.aspx</guid>
      <link>http://iqueryable.com/2007/02/02/LINQLinksFebruary1st2007.aspx</link>
      <pubDate>Fri, 02 Feb 2007 04:12:14 GMT</pubDate>
      <description>I can't wait for the next CTP of Orcas to drop since it supposed to have feature parity with the &lt;i&gt;ancient&lt;/i&gt; May
2006 LINQ Preview I'm still using.&lt;br&gt;
&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
Mike has a nice post where he looks to &lt;a href="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2007/01/31/9085.aspx"&gt;Deconstruct
LINQ&lt;/a&gt;.&amp;nbsp; I often find posts like Mike's, where the author is letting what they've
learned flow out in a post, the most beneficial.&lt;/li&gt;
&lt;li&gt;
Alex is considering a couple implementations of IQueryable, which he is calling &lt;a href="http://base4.net/Blog.aspx?ID=300"&gt;LINQ
to Web&lt;/a&gt;, that sound very useful.&amp;nbsp; I've been thinking about writing an implementation
of LINQ to Google or LINQ to Live Search myself.&amp;nbsp; I have a feeling that a bunch
of what Alex is after in &lt;a href="http://base4.net/Blog.aspx?ID=304"&gt;LINQ to DOM&lt;/a&gt; could
be handled with a couple extensions on top of LINQ to XML.&lt;/li&gt;
&lt;li&gt;
There is a new &lt;a href="http://channel9.msdn.com/ShowPost.aspx?PostID=273697"&gt;video
on Channel 9 with Anders Hejlsberg, Herb Sutter, Erik Meijer, Brian Beckman&lt;/a&gt; that
is bound to be full of interesting topics.&amp;nbsp; I've been having some iPod video
troubles lately and can't seem to find a good WMV to iPod Video Converter that runs
on a Mac.&amp;nbsp; I should probably just do the video conversion in Parallels...ok started...can't
wait to check it out.&lt;br&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://iqueryable.com/aggbug.ashx?id=b877178f-cb2b-4c54-9e54-f353ef1c84b6" /&gt;</description>
      <category>linq</category>
    </item>
  </channel>
</rss>