<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://linqinaction.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>LINQ in Action - LINQ Book &amp; News</title><link>http://linqinaction.net/blogs/main/default.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>LINQ in Action Second Edition is being printed!</title><link>http://linqinaction.net/blogs/main/archive/2008/05/07/linq-in-action-second-edition-is-being-printed.aspx</link><pubDate>Wed, 07 May 2008 21:59:00 GMT</pubDate><guid isPermaLink="false">474e9fbe-b00d-4298-b93d-72ccda50e72d:3205</guid><dc:creator>Fabrice Marguerie</dc:creator><slash:comments>2</slash:comments><comments>http://linqinaction.net/blogs/main/comments/3205.aspx</comments><wfw:commentRss>http://linqinaction.net/blogs/main/commentrss.aspx?PostID=3205</wfw:commentRss><wfw:comment>http://linqinaction.net/blogs/main/rsscomments.aspx?PostID=3205</wfw:comment><description>&lt;p&gt;&lt;a href="http://www.amazon.com/gp/product/1933988169?ie=UTF8&amp;amp;tag=sharptoolbox-20&amp;amp;link_code=as3&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=1933988169"&gt;&lt;img src="http://linqinaction.net/photos/main/images/2422/original.aspx" title="Our LINQ book" alt="Our LINQ book" border="0" height="320" width="281"&gt;&lt;/a&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;LINQ in Action is doing well. We're all happy with the sales and &lt;a href="http://linqinaction.net/blogs/main/archive/2008/03/24/linq-in-action-reviews-and-quotes.aspx"&gt;all the reviews&lt;/a&gt;, on Amazon (5 stars on average) or on blogs.&lt;br&gt;In fact, the book is doing so well that the publisher has to print a second edition! We didn't expect that it would happen so soon :-)&lt;br&gt;&lt;/p&gt;&lt;p&gt;We've updated the text where needed, according to &lt;a href="http://linqinaction.net/blogs/main/pages/linq-in-action-errata-first-edition.aspx"&gt;the errata&lt;/a&gt; we've collected since the first edition was published, back in February. The new files are being sent to the printer right now.&lt;br&gt;If you see something else that could be improved (for the third edition...), feel free to post a comment to &lt;a href="http://linqinaction.net/blogs/main/pages/linq-in-action-errata.aspx"&gt;the new errata page&lt;/a&gt; or in &lt;a href="http://www.manning-sandbox.com/forum.jspa?forumID=302"&gt;the forum&lt;/a&gt;.&lt;br&gt;&lt;/p&gt;&lt;p&gt;LINQ in Action can be found &lt;a href="http://www.manning.com/affiliate/idevaffiliate.php?id=252_74"&gt;on Manning's website&lt;/a&gt; (with all the details and sample chapters), on &lt;a href="http://www.amazon.com/gp/product/1933988169?ie=UTF8&amp;amp;tag=sharptoolbox-20&amp;amp;link_code=as3&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=1933988169"&gt;Amazon.com&lt;/a&gt;, &lt;a href="http://www.amazon.co.uk/gp/product/1933988169?ie=UTF8&amp;amp;tag=sharptoolbox-20&amp;amp;link_code=as3&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=1933988169"&gt;Amazon.co.uk&lt;/a&gt;, &lt;a href="http://www.amazon.ca/gp/product/1933988169?ie=UTF8&amp;amp;tag=sharptoolbox-20&amp;amp;link_code=as3&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=1933988169"&gt;Amazon.ca&lt;/a&gt;, &lt;a href="http://www.amazon.fr/gp/product/1933988169?ie=UTF8&amp;amp;tag=sharptoolbox-20&amp;amp;link_code=as3&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=1933988169"&gt;Amazon.fr&lt;/a&gt;, &lt;a href="http://www.amazon.jp/gp/product/1933988169?ie=UTF8&amp;amp;tag=sharptoolbox-20&amp;amp;link_code=as3&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=1933988169"&gt;Amazon.jp&lt;/a&gt;, &lt;a href="http://www.amazon.de/gp/product/1933988169?ie=UTF8&amp;amp;tag=sharptoolbox-20&amp;amp;link_code=as3&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=1933988169"&gt;Amazon.de&lt;/a&gt;, &lt;a href="http://search.barnesandnoble.com/Linq-in-Action/Fabrice-Marguerie/e/9781933988160/"&gt;BarnesAndNoble.com&lt;/a&gt;, and many more online and offline bookstores!&lt;br&gt;&lt;/p&gt;&lt;img src="http://linqinaction.net/aggbug.aspx?PostID=3205" width="1" height="1"&gt;</description></item><item><title>To var or not to var</title><link>http://linqinaction.net/blogs/main/archive/2008/04/24/to-var-or-not-to-var.aspx</link><pubDate>Thu, 24 Apr 2008 13:24:00 GMT</pubDate><guid isPermaLink="false">474e9fbe-b00d-4298-b93d-72ccda50e72d:3126</guid><dc:creator>Fabrice Marguerie</dc:creator><slash:comments>0</slash:comments><comments>http://linqinaction.net/blogs/main/comments/3126.aspx</comments><wfw:commentRss>http://linqinaction.net/blogs/main/commentrss.aspx?PostID=3126</wfw:commentRss><wfw:comment>http://linqinaction.net/blogs/main/rsscomments.aspx?PostID=3126</wfw:comment><description>C# 3.0 and VB.NET 9.0 introduced implicit typing. When you use anonymous types, it's required. The rest of the time, it's mostly a judgment call to decide whether to use implicitly-typed local variables or not.&lt;br&gt;&lt;a href="http://codebetter.com/blogs/jean-paul_boodhoo/archive/2008/04/22/got-var.aspx"&gt;An interesting discussion&lt;/a&gt; is going on about this on Jean-Paul S. Boodhoo's blog. See all the comments.&lt;br&gt;&lt;img src="http://linqinaction.net/aggbug.aspx?PostID=3126" width="1" height="1"&gt;</description></item><item><title>My TechDays 2007 sessions available in video</title><link>http://linqinaction.net/blogs/main/archive/2008/03/27/my-techdays-2007-sessions-available-in-video.aspx</link><pubDate>Thu, 27 Mar 2008 11:08:00 GMT</pubDate><guid isPermaLink="false">474e9fbe-b00d-4298-b93d-72ccda50e72d:2925</guid><dc:creator>Fabrice Marguerie</dc:creator><slash:comments>0</slash:comments><comments>http://linqinaction.net/blogs/main/comments/2925.aspx</comments><wfw:commentRss>http://linqinaction.net/blogs/main/commentrss.aspx?PostID=2925</wfw:commentRss><wfw:comment>http://linqinaction.net/blogs/main/rsscomments.aspx?PostID=2925</wfw:comment><description>
&lt;p&gt;&lt;a href="http://weblogs.asp.net/fmarguerie/archive/2008/01/14/techdays-france-2008-et-mes-sessions-sur-linq.aspx"&gt;The two sessions I co-presented&lt;/a&gt; during the Microsoft TechDays in February (and all the other sessions) were recorded, and the videos are now available. This is all in French, but I plan on recording soon an English version of my session about LINQ and C# 3. Stay tuned.&lt;br&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="http://weblogs.asp.net/fmarguerie/archive/2008/01/14/techdays-france-2008-et-mes-sessions-sur-linq.aspx"&gt;Les deux sessions que j'ai co-présentées&lt;/a&gt; durant les Microsoft TechDays en février (et toutes les autres sessions) ont été enregistrées, et les vidéos sont maintenant disponibles.&lt;br&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.microsoft.com/france/vision/mstechdays08/WebcastMSDN.aspx?EID=64962a3a-9582-4d41-833a-e8a3e4fb986c"&gt;La session &lt;i&gt;Introduction à LINQ&lt;/i&gt;&lt;/a&gt;&lt;br&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.microsoft.com/france/vision/mstechdays08/WebcastMSDN.aspx?EID=b028d284-c1d9-4e23-bf4d-f86568ff7f31"&gt;La session &lt;i&gt;ADO.NET Entity Framework et LINQ&lt;/i&gt;&lt;/a&gt;&lt;br&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://linqinaction.net/aggbug.aspx?PostID=2925" width="1" height="1"&gt;</description></item><item><title>LINQ in Action reviews and quotes</title><link>http://linqinaction.net/blogs/main/archive/2008/03/24/linq-in-action-reviews-and-quotes.aspx</link><pubDate>Sun, 23 Mar 2008 22:13:00 GMT</pubDate><guid isPermaLink="false">474e9fbe-b00d-4298-b93d-72ccda50e72d:2873</guid><dc:creator>Fabrice Marguerie</dc:creator><slash:comments>3</slash:comments><comments>http://linqinaction.net/blogs/main/comments/2873.aspx</comments><wfw:commentRss>http://linqinaction.net/blogs/main/commentrss.aspx?PostID=2873</wfw:commentRss><wfw:comment>http://linqinaction.net/blogs/main/rsscomments.aspx?PostID=2873</wfw:comment><description>&lt;p&gt;Since our LINQ in Action book was published last month, we are lucky to receive a lot of nice feedback and comments. Steve, Jim, and I worked hard to make LINQ in Action a book that readers would enjoy. It's very encouraging to see what readers think about our work!&lt;br&gt;I have collected &lt;a href="http://linqinaction.net/blogs/main/pages/linq-in-action-reviews-and-quotes-list.aspx"&gt;a list of reviews and quotes&lt;/a&gt;.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;"By far the best book available on LINQ"&lt;/li&gt;&lt;li&gt;"I have the LINQ books, and this is by far the best"&lt;/li&gt;&lt;li&gt;"One of the best overall tutorial texts on software development I have ever come across in 15 years"&lt;/li&gt;&lt;li&gt;"LINQ in Action ROCKS!"&lt;/li&gt;&lt;li&gt;"A pure pleasure to read"&lt;/li&gt;&lt;li&gt;"I'm having a hard time putting down LINQ in Action, to do my actual job!"&lt;/li&gt;&lt;li&gt;"One of the best .NET books ever written"&lt;/li&gt;&lt;li&gt;"Best book I've read in a while"&lt;/li&gt;&lt;li&gt;"I enjoy this book for its practical advice without trying to cover up any holes in the inaugural edition of LINQ"&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://linqinaction.net/blogs/main/pages/linq-in-action-reviews-and-quotes-list.aspx"&gt;Read more&lt;/a&gt;&lt;br&gt;&lt;/p&gt;&lt;img src="http://linqinaction.net/aggbug.aspx?PostID=2873" width="1" height="1"&gt;</description></item><item><title>LINQ in Action book signing session in Paris</title><link>http://linqinaction.net/blogs/main/archive/2008/03/14/linq-in-action-book-signing-session-in-paris.aspx</link><pubDate>Thu, 13 Mar 2008 22:41:00 GMT</pubDate><guid isPermaLink="false">474e9fbe-b00d-4298-b93d-72ccda50e72d:2815</guid><dc:creator>Fabrice Marguerie</dc:creator><slash:comments>0</slash:comments><comments>http://linqinaction.net/blogs/main/comments/2815.aspx</comments><wfw:commentRss>http://linqinaction.net/blogs/main/commentrss.aspx?PostID=2815</wfw:commentRss><wfw:comment>http://linqinaction.net/blogs/main/rsscomments.aspx?PostID=2815</wfw:comment><description>
&lt;p&gt;A book signing session for &lt;a href="http://linq-book.com"&gt;LINQ in Action&lt;/a&gt; will take place at the &lt;a href="http://lmet.fr"&gt;Monde en Tique&lt;/a&gt; bookstore in Paris at the end of the month.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Une session de dédicaces du livre &lt;a href="http://linq-book.com"&gt;LINQ in Action&lt;/a&gt; est prévue au &lt;a href="http://lmet.fr"&gt;Monde en Tique&lt;/a&gt; à Paris le samedi 29 mars. N'hésitez pas à passer nombreux entre 15h et 18h au &lt;a href="http://maps.google.fr/maps?f=l&amp;amp;hl=fr&amp;amp;geocode=&amp;amp;q=le+monde+en+tique&amp;amp;near=&amp;amp;sll=48.850969,2.349976&amp;amp;sspn=0.006347,0.016909&amp;amp;ie=UTF8&amp;amp;ll=48.852503,2.350817&amp;amp;spn=0.012693,0.033817&amp;amp;z=16&amp;amp;iwloc=A"&gt;6 rue Maître Albert&lt;/a&gt; dans le 5ème, à deux pas de Notre-Dame, pour discuter du livre, de LINQ, de .NET ou même d'autre chose.&lt;br&gt;&lt;/p&gt;&lt;img src="http://linqinaction.net/aggbug.aspx?PostID=2815" width="1" height="1"&gt;</description></item><item><title>LINQ in Action is for VB developers too</title><link>http://linqinaction.net/blogs/main/archive/2008/03/05/linq-in-action-is-for-vb-developers-too.aspx</link><pubDate>Wed, 05 Mar 2008 18:20:00 GMT</pubDate><guid isPermaLink="false">474e9fbe-b00d-4298-b93d-72ccda50e72d:2747</guid><dc:creator>Fabrice Marguerie</dc:creator><slash:comments>2</slash:comments><comments>http://linqinaction.net/blogs/main/comments/2747.aspx</comments><wfw:commentRss>http://linqinaction.net/blogs/main/commentrss.aspx?PostID=2747</wfw:commentRss><wfw:comment>http://linqinaction.net/blogs/main/rsscomments.aspx?PostID=2747</wfw:comment><description>&lt;p&gt;A frequent question we get about our &lt;a href="http://www.manning.com/affiliate/idevaffiliate.php?id=252_74"&gt;LINQ book&lt;/a&gt; is whether it's been written for C# developers only. If you think so, you're making a mistake.&lt;/p&gt;&lt;p&gt;We cover both C# and VB.NET in the book. This is one big difference
with competing books. Even if not all code samples are in both
languages all the time in the book, we make sure to demonstrate and
explain the differences between both languages when it makes sense.&lt;a href="http://linqinaction.net/blogs/main/archive/2007/12/12/linq-in-action-samples-source-code.aspx"&gt;&lt;br&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;In addition, to determine if this book is for you before buying it, you can take a look at all the resources we made available for free. This includes &lt;b&gt;3 free chapters and the source code&lt;/b&gt;. You can find them all on &lt;a href="http://www.manning.com/affiliate/idevaffiliate.php?id=252_74"&gt;the book homepage&lt;/a&gt;.&lt;br&gt;The complete source code for all the code samples in the book is &lt;a href="http://linqinaction.net/blogs/main/archive/2007/12/12/linq-in-action-samples-source-code.aspx"&gt;available as a free download&lt;/a&gt;. All code files and projects are provided in C# and in VB.&lt;br&gt; &lt;/p&gt;&lt;p&gt;By the way, &lt;a href="http://thinqlinq.com"&gt;Jim&lt;/a&gt; is a VB.NET MVP. Do you think he'd been ok if we didn't cover VB in the book? &lt;img src="http://linqinaction.net/emoticons/emotion-5.gif" alt="Wink" /&gt;&lt;br&gt;&lt;/p&gt;&lt;img src="http://linqinaction.net/aggbug.aspx?PostID=2747" width="1" height="1"&gt;</description></item><item><title>Ever wanted to see LINQ in action, visually?</title><link>http://linqinaction.net/blogs/main/archive/2008/02/26/ever-wanted-to-see-linq-in-action-visually.aspx</link><pubDate>Tue, 26 Feb 2008 19:06:00 GMT</pubDate><guid isPermaLink="false">474e9fbe-b00d-4298-b93d-72ccda50e72d:2665</guid><dc:creator>Fabrice Marguerie</dc:creator><slash:comments>0</slash:comments><comments>http://linqinaction.net/blogs/main/comments/2665.aspx</comments><wfw:commentRss>http://linqinaction.net/blogs/main/commentrss.aspx?PostID=2665</wfw:commentRss><wfw:comment>http://linqinaction.net/blogs/main/rsscomments.aspx?PostID=2665</wfw:comment><description>&lt;p&gt;It's not always easy to grasp and follow what's happening when a LINQ query is executed. Well, thanks to clever code by &lt;a href="http://msmvps.com/blogs/jon.skeet/"&gt;Jon Skeet&lt;/a&gt;, it's now possible to see LINQ queries execute in front of your eyes! At least LINQ to Objects queries that is.&lt;/p&gt;&lt;p&gt;See &lt;a href="http://msmvps.com/blogs/jon.skeet/archive/2008/02/20/visual-linq-watch-query-expressions-as-they-happen.aspx"&gt;this post about Visual LINQ&lt;/a&gt; in which Jon introduces the concept and the prototype implementation. You may want to watch the video or execute the code to instantly understand what it's all about.&lt;/p&gt;&lt;img src="http://linqinaction.net/aggbug.aspx?PostID=2665" width="1" height="1"&gt;</description></item><item><title>Here it is: the LINQ in Action paper book!</title><link>http://linqinaction.net/blogs/main/archive/2008/02/02/here-it-is-the-linq-in-action-paper-book.aspx</link><pubDate>Sat, 02 Feb 2008 12:37:00 GMT</pubDate><guid isPermaLink="false">474e9fbe-b00d-4298-b93d-72ccda50e72d:2423</guid><dc:creator>Fabrice Marguerie</dc:creator><slash:comments>15</slash:comments><comments>http://linqinaction.net/blogs/main/comments/2423.aspx</comments><wfw:commentRss>http://linqinaction.net/blogs/main/commentrss.aspx?PostID=2423</wfw:commentRss><wfw:comment>http://linqinaction.net/blogs/main/rsscomments.aspx?PostID=2423</wfw:comment><description>&lt;p&gt;After two years of work on our LINQ book, and 10 days after &lt;a href="http://linqinaction.net/blogs/main/archive/2008/01/21/linq-in-action-final-pdf-ebook-available.aspx"&gt;the PDF ebook&lt;/a&gt;, here is the paper book!&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.manning.com/affiliate/idevaffiliate.php?id=252_74" title="LINQ book"&gt;&lt;img src="http://linqinaction.net/photos/main/images/2422/original.aspx" border="0"&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;You can buy it directly from &lt;a href="http://www.manning.com/affiliate/idevaffiliate.php?id=252_74"&gt;Manning's website&lt;/a&gt; to receive it immediately. It will become available on &lt;a href="http://www.amazon.com/gp/product/1933988169?ie=UTF8&amp;amp;tag=sharptoolbox-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=1933988169"&gt;Amazon&lt;/a&gt; and in all the other bookstores shortly.&lt;/p&gt;&lt;p&gt;The book already received a lot of very positive feedback! I'll share it with you soon.&lt;br&gt;&lt;/p&gt;&lt;img src="http://linqinaction.net/aggbug.aspx?PostID=2423" width="1" height="1"&gt;</description></item><item><title>LINQ in Action final PDF ebook available!</title><link>http://linqinaction.net/blogs/main/archive/2008/01/21/linq-in-action-final-pdf-ebook-available.aspx</link><pubDate>Mon, 21 Jan 2008 01:05:00 GMT</pubDate><guid isPermaLink="false">474e9fbe-b00d-4298-b93d-72ccda50e72d:2286</guid><dc:creator>Fabrice Marguerie</dc:creator><slash:comments>5</slash:comments><comments>http://linqinaction.net/blogs/main/comments/2286.aspx</comments><wfw:commentRss>http://linqinaction.net/blogs/main/commentrss.aspx?PostID=2286</wfw:commentRss><wfw:comment>http://linqinaction.net/blogs/main/rsscomments.aspx?PostID=2286</wfw:comment><description>&lt;p&gt;The &lt;b&gt;PDF&lt;/b&gt; of our &lt;a href="http://linq-book.com"&gt;LINQ book&lt;/a&gt; has been finalized! You can &lt;a href="http://www.manning.com/affiliate/idevaffiliate.php?id=252_74"&gt;buy it on Manning's website&lt;/a&gt; for $27.50.&lt;/p&gt;&lt;p&gt;There, you'll also find the following documents:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;About This Book&lt;/li&gt;&lt;li&gt;Table of Contents&lt;/li&gt;&lt;li&gt;Preface&lt;/li&gt;&lt;li&gt;Foreword&lt;/li&gt;&lt;li&gt;Index&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;We also have &lt;b&gt;sample and bonus chapters&lt;/b&gt; awaiting you for free on the home page:&amp;nbsp;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Sample Chapter 1 (Introducing LINQ)&lt;/li&gt;&lt;li&gt;Sample Chapter 3 (LINQ building blocks)&lt;/li&gt;&lt;li&gt;Bonus Chapter 14 (Working with LINQ and DataSets)&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Finally, &lt;a href="http://www.manning.com/affiliate/idevaffiliate.php?id=252_74"&gt;the same book home page&lt;/a&gt; contains links to the following &lt;b&gt;resources&lt;/b&gt;:&amp;nbsp;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Author/Book Forum&lt;/li&gt;&lt;li&gt;Book Support Site&lt;/li&gt;&lt;li&gt;Source Code site&lt;/li&gt;&lt;li&gt;The Author's blogs&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;In short, we offer you everything you need to become a LINQ champion :-)&lt;br&gt;&lt;/p&gt;&lt;p&gt;If you bought the ebook during the MEAP (Manning's Early Access Program) and haven't received the updated PDF, you should contact Manning directly.&lt;br&gt;&lt;/p&gt;&lt;p&gt;The &lt;b&gt;paper book&lt;/b&gt; is just around the corner now. It's expected for January 31&lt;sup&gt;st&lt;/sup&gt;. The earliest place for people to buy the book will be from &lt;a href="http://www.manning.com/affiliate/idevaffiliate.php?id=252_74"&gt;Manning's website&lt;/a&gt;. The books should then arrive in bookstores and &lt;a href="http://www.amazon.com/exec/obidos/ASIN/1933988169/sharptoolbox-20"&gt;Amazon&lt;/a&gt; shortly after. Of course, you can already pre-order the paper book from these places.&lt;br&gt;&lt;/p&gt;&lt;img src="http://linqinaction.net/aggbug.aspx?PostID=2286" width="1" height="1"&gt;</description></item><item><title>LINQ in Action preface</title><link>http://linqinaction.net/blogs/main/archive/2008/01/20/linq-in-action-preface.aspx</link><pubDate>Sun, 20 Jan 2008 14:56:00 GMT</pubDate><guid isPermaLink="false">474e9fbe-b00d-4298-b93d-72ccda50e72d:2283</guid><dc:creator>Fabrice Marguerie</dc:creator><slash:comments>0</slash:comments><comments>http://linqinaction.net/blogs/main/comments/2283.aspx</comments><wfw:commentRss>http://linqinaction.net/blogs/main/commentrss.aspx?PostID=2283</wfw:commentRss><wfw:comment>http://linqinaction.net/blogs/main/rsscomments.aspx?PostID=2283</wfw:comment><description>&lt;p&gt;Here is the preface I wrote for &lt;a href="http://www.manning.com/affiliate/idevaffiliate.php?id=252_74"&gt;LINQ in Action&lt;/a&gt;:&lt;/p&gt;&lt;p&gt;&lt;i&gt;I chose software development as the way to make a living mainly because it’s a technology that is constantly evolving. There’s always something new to learn. No chance of getting bored in this line of work! In addition to learning, I also enjoy teaching software development. Writing LINQ in Action was a good opportunity to both learn and teach at the same time.&lt;br&gt;&lt;br&gt;When we started writing this book, LINQ was still an early prototype. We followed its evolution as it was taking shape. There was a lot to discover and a lot to understand. This is part of a software developer’s everyday job. We have to stay up-to-date with the technologies we use and learn new ones as they come out. The software development environment is evolving at an increasingly fast pace, and I don’t see any signs that that’s going to change.&lt;br&gt;&lt;br&gt;.NET is a fast-moving environment. Over the last couple of years, we’ve seen two major releases of the .NET Framework, and several companion technologies have appeared: Windows Presentation Foundation, Windows Communication Foundation, Windows Workflow Foundation, ASP.NET AJAX, Silverlight, and LINQ have joined our developer toolbox. Another trend in .NET is the multiplication of programming languages. F#, which will receive the same support as C# or VB.NET in Visual Studio, introduces functional programming in .NET. Dynamic languages, such as Python and Ruby, are going to be supported by the .NET Dynamic Language Runtime.&lt;br&gt;&lt;br&gt;In coming years, we’ll have to deal with more programming languages than the ones we currently master. An advantage of C#, Visual Basic, and the other .NET languages is that they are constantly adapting. C# and VB.NET have been improved in their latest versions to offer support for language-integrated querying through LINQ.&lt;br&gt;&lt;br&gt;In addition to offering novel approaches to deal with data, LINQ represents a shift toward declarative and functional programming. When people ask me for reasons to learn LINQ, I tell them that they should learn it in order to be able to use it with XML, relational data, or in-memory collections, but above all to be able to start using declarative programming, deferred execution, and lambda expressions.&lt;br&gt;&lt;br&gt;Start learning LINQ now! When you do, you’ll not only learn how to use this new technology, but you’ll also discover where programming is heading. One of our main goals with LINQ in Action was to help you fully comprehend the new approaches associated with LINQ.&lt;br&gt;&lt;br&gt;Fabrice Marguerie &lt;br&gt;&lt;/i&gt;&lt;/p&gt;&lt;img src="http://linqinaction.net/aggbug.aspx?PostID=2283" width="1" height="1"&gt;</description></item><item><title>Query syntax vs. Method syntax</title><link>http://linqinaction.net/blogs/main/archive/2008/01/20/query-syntax-vs-method-syntax.aspx</link><pubDate>Sun, 20 Jan 2008 14:51:00 GMT</pubDate><guid isPermaLink="false">474e9fbe-b00d-4298-b93d-72ccda50e72d:2282</guid><dc:creator>Fabrice Marguerie</dc:creator><slash:comments>1</slash:comments><comments>http://linqinaction.net/blogs/main/comments/2282.aspx</comments><wfw:commentRss>http://linqinaction.net/blogs/main/commentrss.aspx?PostID=2282</wfw:commentRss><wfw:comment>http://linqinaction.net/blogs/main/rsscomments.aspx?PostID=2282</wfw:comment><description>In the &lt;a href="http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=123&amp;amp;SiteID=1"&gt;official LINQ forum&lt;/a&gt;, someone &lt;a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2681967&amp;amp;SiteID=1"&gt;asked&lt;/a&gt; whether it's better to use query syntax (query expression) or method syntax (dot notation).&lt;br&gt; 
&lt;p&gt;My answer is that it's mostly a matter of tastes and it depends on the query.&lt;br&gt;If I'm writing a query that uses many query operators that aren't supported by the query syntax, then I use the method syntax. Mixing the two syntaxes in one single query can quickly make it hard to read, with all the parentheses.&lt;br&gt;If I'm writing a query that consists of only one operation, then I use the method syntax as well.&lt;br&gt;In other cases, the query syntax has advantages, like the ability to use "range" variables. The ones defined in from clauses. If you use the method syntax, then you have to redeclare the variables in each lambda expression passed as a parameter to a query operator.&lt;/p&gt;
&lt;p&gt;Let's consider the following example:&lt;br&gt;&lt;/p&gt;&lt;div style="font-family:Courier New;color:Navy;"&gt;from &lt;b&gt;person&lt;/b&gt; in persons&lt;br&gt;where person.Age &amp;gt; 12&lt;br&gt;orderby person.LastName&lt;br&gt;select person.LastName;&lt;br&gt;&lt;/div&gt;&lt;p&gt;Here, person is declared once and used in the &lt;i&gt;where&lt;/i&gt;, &lt;i&gt;orderby&lt;/i&gt;, and &lt;i&gt;select&lt;/i&gt; clauses.&lt;br&gt;If you write the same query using the method syntax, you have to "redeclare" person each time in the lambda expressions:&lt;/p&gt;&lt;div style="font-family:Courier New;color:Navy;"&gt;persons&lt;br&gt;&amp;nbsp; .Where(&lt;b&gt;person&lt;/b&gt; =&amp;gt; person.Age &amp;gt; 12)&lt;br&gt;&amp;nbsp; .OrderBy(&lt;b&gt;person&lt;/b&gt; =&amp;gt; person.LastName)&lt;br&gt;&amp;nbsp; .Select(&lt;b&gt;person&lt;/b&gt; =&amp;gt; person.LastName);&lt;br&gt;&lt;/div&gt;&lt;p&gt;Another advantage of the query syntax is the ability to use &lt;i&gt;let&lt;/i&gt; clauses. This is really useful in complex queries or simply to avoid performing the same operation several times in a query, by storing temporary results in a variable.&lt;br&gt;Here is a sample query expression with a &lt;i&gt;let&lt;/i&gt; clause:&lt;/p&gt;&lt;div style="font-family:Courier New;color:Navy;"&gt;from person in persons&lt;br&gt;
&lt;b&gt;let&lt;/b&gt; name = person.FirstName+person.LastName&lt;br&gt;
select new { Name = name, Phones = person.Phones.Count() }&lt;br&gt;&lt;/div&gt;&lt;p&gt;
To reproduce the same using the method syntax, you have to write the following:&lt;/p&gt;&lt;div style="font-family:Courier New;color:Navy;"&gt;persons&lt;br&gt;
&amp;nbsp; .Select(person =&amp;gt; new { person = person, name = person.FirstName+person.LastName })&lt;br&gt;
&amp;nbsp; .Select(x =&amp;gt; new { Name = x.name, Phones = x.person.Phones.Count() });&lt;/div&gt;
&lt;br&gt;
Not so easy to read, don't you think? This is what the compiler
generates when it encounters the above query expression, by the way.
&lt;p&gt;There are other advantages to each syntax, but the ones listed above are already enough to decide which one to use in most cases.&lt;br&gt;&lt;/p&gt;&lt;img src="http://linqinaction.net/aggbug.aspx?PostID=2282" width="1" height="1"&gt;</description></item><item><title>Getting really close now</title><link>http://linqinaction.net/blogs/main/archive/2008/01/17/getting-really-close-now.aspx</link><pubDate>Wed, 16 Jan 2008 23:11:00 GMT</pubDate><guid isPermaLink="false">474e9fbe-b00d-4298-b93d-72ccda50e72d:2236</guid><dc:creator>Fabrice Marguerie</dc:creator><slash:comments>5</slash:comments><comments>http://linqinaction.net/blogs/main/comments/2236.aspx</comments><wfw:commentRss>http://linqinaction.net/blogs/main/commentrss.aspx?PostID=2236</wfw:commentRss><wfw:comment>http://linqinaction.net/blogs/main/rsscomments.aspx?PostID=2236</wfw:comment><description>Book sent to the printer! Yeah!&lt;br&gt;&lt;img src="http://linqinaction.net/aggbug.aspx?PostID=2236" width="1" height="1"&gt;</description></item><item><title>LINQ sessions during TechDays France 2008</title><link>http://linqinaction.net/blogs/main/archive/2008/01/15/linq-sessions-during-techdays-france-2008.aspx</link><pubDate>Mon, 14 Jan 2008 23:10:00 GMT</pubDate><guid isPermaLink="false">474e9fbe-b00d-4298-b93d-72ccda50e72d:2212</guid><dc:creator>Fabrice Marguerie</dc:creator><slash:comments>0</slash:comments><comments>http://linqinaction.net/blogs/main/comments/2212.aspx</comments><wfw:commentRss>http://linqinaction.net/blogs/main/commentrss.aspx?PostID=2212</wfw:commentRss><wfw:comment>http://linqinaction.net/blogs/main/rsscomments.aspx?PostID=2212</wfw:comment><description>&lt;p&gt;From February 11 to 13 will take place the &lt;a href="http://www.microsoft.com/france/mstechdays/default.aspx?e=commiwproago"&gt;Microsoft TechDays France 2008&lt;/a&gt;. It will be the main Microsoft event of the year in France, with no less than 280 sessions.&lt;/p&gt;

&lt;p&gt;LINQ will be one of the major subjects covered this year: seven
sessions will be related to LINQ. I'll be presenting two of them. The
first one will be an introduction to LINQ. The second one will cover
the ADO.NET Entity Framework and LINQ. You can &lt;a href="http://weblogs.asp.net/fmarguerie/archive/2008/01/14/techdays-france-2008-et-mes-sessions-sur-linq.aspx"&gt;learn more about my sessions on my blog&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;See you in paris next month!&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.microsoft.com/france/mstechdays/default.aspx?e=commiwproago"&gt;&lt;img src="http://www.comscamp.com/images/campagnes/89/728x90_dev_techdays2008.gif" border="0" height="90" width="728"&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://linqinaction.net/aggbug.aspx?PostID=2212" width="1" height="1"&gt;</description></item><item><title>Randomizing LINQ to SQL queries</title><link>http://linqinaction.net/blogs/main/archive/2008/01/10/randomizing-linq-to-sql-queries.aspx</link><pubDate>Wed, 09 Jan 2008 23:16:00 GMT</pubDate><guid isPermaLink="false">474e9fbe-b00d-4298-b93d-72ccda50e72d:2183</guid><dc:creator>Fabrice Marguerie</dc:creator><slash:comments>0</slash:comments><comments>http://linqinaction.net/blogs/main/comments/2183.aspx</comments><wfw:commentRss>http://linqinaction.net/blogs/main/commentrss.aspx?PostID=2183</wfw:commentRss><wfw:comment>http://linqinaction.net/blogs/main/rsscomments.aspx?PostID=2183</wfw:comment><description>&lt;p&gt;Yesterday, a developer asked in the &lt;a href="http://www.manning-sandbox.com/thread.jspa?threadID=22342&amp;amp;tstart=0"&gt;LINQ in Action forum&lt;/a&gt; and in &lt;a href="http://forums.microsoft.com/MSDN/showpost.aspx?postid=2652613&amp;amp;siteid=1"&gt;Microsoft's official LINQ forum&lt;/a&gt; how to write a LINQ to SQL query that would return random records from the database.&lt;/p&gt;
&lt;p&gt;It's not something built-in. There is no &lt;i&gt;Random&lt;/i&gt; query operator provided by Microsoft. In addition, it can't be done simply by using the &lt;i&gt;System.Random&lt;/i&gt; class, because everything in a LINQ to SQL query must be translatable to SQL.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.devauthority.com/blogs/jwooley/default.aspx"&gt;Jim&lt;/a&gt; replied with several options:&lt;br&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use a pass-through query to get the results&lt;/li&gt;
&lt;li&gt;Use a view to return the ID of the record from tblImages from your subselect and map to that view. Then use a LINQ query to join the tblProperties through the Randomize view and then to the tblImages&lt;/li&gt;
&lt;li&gt;Use a scalar TSQL Function to get a random picture and include that in your LINQ query.&lt;/li&gt;
&lt;li&gt;Use a stored procedure to return the results.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As Jim points out, we discuss consuming pass-through queries, functions and stored procedures in chapter 8 of &lt;a href="http://www.manning.com/affiliate/idevaffiliate.php?id=252_74"&gt;LINQ in Action&lt;/a&gt;.&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Let's detail the solution that uses a SQL user-defined function. The most common way to sort records randomly is to use the &lt;a href="http://msdn2.microsoft.com/en-us/library/aa276822%28SQL.80%29.aspx"&gt;NEWID&lt;/a&gt; SQL Server function. This is what this solution uses.&lt;br&gt;&lt;/p&gt;
&lt;p&gt;First, create the following view:&lt;br&gt;&lt;/p&gt;
&lt;p style="font-family:Courier New;color:Navy;"&gt;CREATE VIEW RandomView&lt;br&gt;AS&lt;br&gt;SELECT NEWID() As ID&lt;/p&gt;Then create the following function that uses the view:&lt;p style="font-family:Courier New;color:Navy;"&gt;CREATE FUNCTION GetNewId&lt;br&gt;(&lt;br&gt;)&lt;br&gt;RETURNS uniqueidentifier&lt;br&gt;AS&lt;br&gt;BEGIN&lt;br&gt;RETURN (SELECT ID FROM RandomView)&lt;br&gt;END&lt;/p&gt;
&lt;p&gt;The view is required because it's not possible to directly use &lt;i&gt;NEWID&lt;/i&gt; in a scalar function.&lt;br&gt;&lt;/p&gt;
&lt;p&gt;You can then map the &lt;i&gt;GetNewId&lt;/i&gt; user-defined function using LINQ to SQL's &lt;a href="http://technet.microsoft.com/en-us/library/system.data.linq.mapping.functionattribute.aspx"&gt;Function&lt;/a&gt; attribute. Again, see chapter 8 for the details.&lt;br&gt;&lt;/p&gt;
&lt;p&gt;That's it! You can now write LINQ queries as usual. Here is an example to pick a random object:&lt;br&gt;&lt;/p&gt;
&lt;p style="font-family:Courier New;color:Navy;"&gt;var tool = db.Tools.OrderBy(t =&amp;gt; db.GetNewId()).First()&lt;/p&gt;
&lt;p&gt;Here is another example that uses &lt;i&gt;GetNewId&lt;/i&gt; to sort results randomly:&amp;nbsp;&lt;/p&gt;
&lt;p style="font-family:Courier New;color:Navy;"&gt;var tools =&lt;br&gt;&amp;nbsp; from tool in db.Tools&lt;br&gt;&amp;nbsp; orderby db.GetNewId()&lt;br&gt;&amp;nbsp; select tool.Name;&lt;/p&gt;&lt;img src="http://linqinaction.net/aggbug.aspx?PostID=2183" width="1" height="1"&gt;</description></item><item><title>LINQ in Action samples source code</title><link>http://linqinaction.net/blogs/main/archive/2007/12/12/linq-in-action-samples-source-code.aspx</link><pubDate>Wed, 12 Dec 2007 12:59:00 GMT</pubDate><guid isPermaLink="false">474e9fbe-b00d-4298-b93d-72ccda50e72d:1964</guid><dc:creator>Fabrice Marguerie</dc:creator><slash:comments>7</slash:comments><comments>http://linqinaction.net/blogs/main/comments/1964.aspx</comments><wfw:commentRss>http://linqinaction.net/blogs/main/commentrss.aspx?PostID=1964</wfw:commentRss><wfw:comment>http://linqinaction.net/blogs/main/rsscomments.aspx?PostID=1964</wfw:comment><description>&lt;p&gt;LINQ in Action won't be available as a &lt;a href="http://www.amazon.com/gp/product/1933988169?ie=UTF8&amp;amp;tag=sharptoolbox-20&amp;amp;link_code=as3&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=1933988169"&gt;paper book&lt;/a&gt; before January, but the &lt;a href="http://www.manning.com/affiliate/idevaffiliate.php?id=252_74"&gt;e-book&lt;/a&gt; is already available in preview, and of course .NET 3.5 and Visual Studio 2008 are there. This is why we are now able to publish the &lt;b&gt;&lt;a href="http://linqinaction.net/files/folders/linqinaction/entry1952.aspx"&gt;complete source code&lt;/a&gt;&lt;/b&gt; for all the samples included in the book (this includes updated source code for &lt;a href="http://linqinaction.net/blogs/main/archive/2006/06/26/introducing_linq_to_amazon.aspx"&gt;LINQ to Amazon&lt;/a&gt;). This download is available &lt;b&gt;for free&lt;/b&gt;. All the examples contained in the book and sample projects are included &lt;b&gt;in both C# and VB.NET&lt;/b&gt;.&lt;br&gt;&lt;/p&gt;&lt;p&gt;Feel free to download the source code even if you don't own the book (yet) and provide feedback in &lt;a href="http://linqinaction.net/blogs/main/archive/2007/12/04/linq-in-action-forum.aspx"&gt;the book's forum&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Enjoy LINQ!&lt;/p&gt;&lt;img src="http://linqinaction.net/aggbug.aspx?PostID=1964" width="1" height="1"&gt;</description></item></channel></rss>