<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://codebetter.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">John Papa [MVP C#]</title><subtitle type="html">.NET Code Samples, Data Access, and Other Musings</subtitle><id>http://codebetter.com/blogs/john.papa/atom.aspx</id><link rel="alternate" type="text/html" href="http://codebetter.com/blogs/john.papa/default.aspx" /><link rel="self" type="application/atom+xml" href="http://codebetter.com/blogs/john.papa/atom.aspx" /><generator uri="http://communityserver.org" version="4.1.31106.3070">Community Server</generator><updated>2008-05-07T23:07:05Z</updated><entry><title>All Posts Are Migrated</title><link rel="alternate" type="text/html" href="/blogs/john.papa/archive/2008/05/22/all-posts-are-migrated.aspx" /><id>/blogs/john.papa/archive/2008/05/22/all-posts-are-migrated.aspx</id><published>2008-05-22T14:01:46Z</published><updated>2008-05-22T14:01:46Z</updated><content type="html">&lt;p&gt;Just a quick note ... &lt;/p&gt;  &lt;p&gt;A few days ago that all of my content will now be over on my new web site at &lt;a href="http://johnpapa.net"&gt;johnpapa.net&lt;/a&gt;. What I forgot to clarify (thanks to some emails people sent to me) is that all of my content from CodeBetter has been migrated over to &lt;a href="http://johnpapa.net/"&gt;johnpapa.net&lt;/a&gt;. So you will be able to find all of my old post and comments over there. (I was not able to migrate the images, unfortunately, but the posts are all there.)&lt;/p&gt;  &lt;p&gt;Saturday May 24th is the official grand opening of &lt;a href="http://johnpapa.net/"&gt;johnpapa.net&lt;/a&gt; and the official closing of my CodeBetter blog. All content has been migrated already so I figured I would give it a few days more of overlap before I make the hard switch.&lt;/p&gt;  &lt;p&gt;Thanks and hope to see you at &lt;a href="http://johnpapa.net/"&gt;my new home&lt;/a&gt;!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=178591" width="1" height="1"&gt;</content><author><name>johnpapa</name><uri>http://codebetter.com/members/johnpapa/default.aspx</uri></author><category term="Random Stuff" scheme="http://codebetter.com/blogs/john.papa/archive/tags/Random+Stuff/default.aspx" /></entry><entry><title>Last Post, Moving Over to JohnPapa.net</title><link rel="alternate" type="text/html" href="/blogs/john.papa/archive/2008/05/20/last-post-moving-over-to-johnpapa-net.aspx" /><id>/blogs/john.papa/archive/2008/05/20/last-post-moving-over-to-johnpapa-net.aspx</id><published>2008-05-21T03:11:00Z</published><updated>2008-05-21T03:11:00Z</updated><content type="html">&lt;p&gt;This will be my last post on CodeBetter. I&amp;#39;ve been here for 3 years and Brendan has been awesome by letting me do my thing. But &lt;a href="http://johnpapa.net/"&gt;I&amp;#39;ve finally gotten my own site up and running over at johnpapa.net&lt;/a&gt; and its time to move everything over. Now that Graffiti went to its full release version and I have had a few months to tweak some settings and test it out thoroughly I am ready to stop cross posting to both &lt;a href="http://johnpapa.net/"&gt;johnpapa.net&lt;/a&gt; and codebetter.&lt;/p&gt;
&lt;p&gt;I created my site using &lt;a href="http://graffiticms.com/"&gt;Graffiti CMS&lt;/a&gt; from &lt;a href="http://telligent.com/"&gt;Telligent&lt;/a&gt;, which is a pretty simple tool with low maintenance. I have so much on my plate that I never have the time to deal with a tool like Community Server (I know Brendan puts a lot of time into it). But Graffiti makes it very easy for me to host my site and my blog. So basically I finally found a piece of software that made it as close to a no brainer as I needed :)&lt;/p&gt;
&lt;p&gt;So if you are looking for my content, please come visit me over at &lt;a href="http://johnpapa.net/"&gt;johnpapa.net&lt;/a&gt;. You can subscribe to my posts from &lt;a href="http://johnpapa.net/"&gt;my main site&lt;/a&gt; or you can just &lt;a href="http://feeds.feedburner.com/JohnPapa"&gt;click this link here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Thanks!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=178541" width="1" height="1"&gt;</content><author><name>johnpapa</name><uri>http://codebetter.com/members/johnpapa/default.aspx</uri></author><category term="Random Stuff" scheme="http://codebetter.com/blogs/john.papa/archive/tags/Random+Stuff/default.aspx" /></entry><entry><title>10 Things to Consider Before Writing a Book</title><link rel="alternate" type="text/html" href="/blogs/john.papa/archive/2008/05/20/10-things-to-consider-before-writing-a-book.aspx" /><id>/blogs/john.papa/archive/2008/05/20/10-things-to-consider-before-writing-a-book.aspx</id><published>2008-05-20T20:32:42Z</published><updated>2008-05-20T20:32:42Z</updated><content type="html">&lt;p&gt;There are several things to consider before you sit down to write a book. But here are 10 I wanted to share because I think they are either very important or not spoken of enough.I&amp;#39;ve gone down this road many times, but I took a long break between books and instead focused on other areas. Of course I am talking about writing about technology, not Harry Potter #8.&lt;/p&gt;  &lt;p&gt;I am currently in the early stages of writing &lt;a href="http://johnpapa.net/all/silverlight-2-book-cover-mock-up/"&gt;my new book tentatively titled &amp;quot;Data Access with Silverlight 2&lt;/a&gt;&amp;quot;. The publishing has not changed much other than that the number of books sold has decreased significantly over the years. In the late 1990&amp;#39;s and in to 2000 many decent technical books were selling 15,000 to $25,000 copies. Today most never reach 10,000 copies sold. It was not a money maker back then and certainly is not now. Which leads me to rule #1&lt;/p&gt;  &lt;p&gt;&lt;em&gt;NOTE: Yes, these are completely arbitrary rules, but hey, its my blog so I make the rules today :)&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Rule #1)&amp;#160; Don&amp;#39;t write the book with the goal being to make money. You may hit the jackpot, but very few books do. &lt;/p&gt;  &lt;p&gt;Rule #2) Spend a good amount of brain cycles on writing the book proposal. Not only will your publisher appreciate it, but it will help you clarify the purpose of your book, the flow, and what should be included and excluded.&lt;/p&gt;  &lt;p&gt;Rule #3)&amp;#160; Keep the content focused. So many books seem to have everything under the sun between its covers. Let&amp;#39;s face it, who wants a 1000 page brick on their desk (unless its a reference only)?&lt;/p&gt;  &lt;p&gt;... &lt;/p&gt;  &lt;p&gt;Read the &lt;a href="http://johnpapa.net/all/10-things-to-consider-before-writing-a-book/"&gt;full post&lt;/a&gt; at &lt;a href="http://johnpapa.net/all/10-things-to-consider-before-writing-a-book/"&gt;johnpapa.net&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=178528" width="1" height="1"&gt;</content><author><name>johnpapa</name><uri>http://codebetter.com/members/johnpapa/default.aspx</uri></author><category term=".NET" scheme="http://codebetter.com/blogs/john.papa/archive/tags/.NET/default.aspx" /><category term="Silverlight" scheme="http://codebetter.com/blogs/john.papa/archive/tags/Silverlight/default.aspx" /></entry><entry><title>A GUI Interface in VB to Track an IP Address?</title><link rel="alternate" type="text/html" href="/blogs/john.papa/archive/2008/05/20/a-gui-interface-in-vb-to-track-an-ip-address.aspx" /><id>/blogs/john.papa/archive/2008/05/20/a-gui-interface-in-vb-to-track-an-ip-address.aspx</id><published>2008-05-20T20:24:18Z</published><updated>2008-05-20T20:24:18Z</updated><content type="html">&lt;p&gt;I had to laugh at this. It is from CSI NY. Just &lt;a href="http://johnpapa.net/all/a-gui-interface-in-vb-to-track-an-ip-address/"&gt;watch this 15 second video&lt;/a&gt; ... no explanation needed.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=178525" width="1" height="1"&gt;</content><author><name>johnpapa</name><uri>http://codebetter.com/members/johnpapa/default.aspx</uri></author><category term=".NET" scheme="http://codebetter.com/blogs/john.papa/archive/tags/.NET/default.aspx" /></entry><entry><title>Entity Framework &amp; LINQ in Miramar, FL</title><link rel="alternate" type="text/html" href="/blogs/john.papa/archive/2008/05/19/entity-framework-amp-linq-in-miramar-fl.aspx" /><id>/blogs/john.papa/archive/2008/05/19/entity-framework-amp-linq-in-miramar-fl.aspx</id><published>2008-05-20T00:35:00Z</published><updated>2008-05-20T00:35:00Z</updated><content type="html">&lt;p&gt;I&amp;#39;ll be heading to &lt;a href="http://fladotnet.com/"&gt;Miramar, FL on July 8th&lt;/a&gt; for the local .NET User Group meeting to speak to the group about the Entity Framework and LINQ. I &amp;quot;hope&amp;quot; the final bits are released by then, but not on July 8th, please (yikes!). I went through a major overhaul of my demonstrations last week when the latest beta bits were released and it was the day before my last presentation on LINQ and the Entity Framework. It went well, but it was a bit too much &amp;quot;last minute&amp;quot; for me. Especially when I am spending every free moment writing my Silverlight book and its examples.&lt;/p&gt;
&lt;p&gt;There is a lot to demonstrate .... showing why it exists, how it works, how to use it with a real world application. There are also the discussions of where it is heading, when to use it, when not to use it, and how it compares to existing tools. I often get asked &amp;quot;should I use EF in my app?&amp;quot;. The answer always depends of course. But I generally do not encourage people to rip out their existing architecture and replace it with anything unless there is a major benefit that you can receive. The EF is a great tool, no doubt, but it still does not support certain aspects that would make it great (i.e. POCO). Can EF be everything to everyone? No, certainly not. Can EF be a valuable piece of your architecture? Absolutely. Would I jump up and down continuously for a week if they made it work with POCO?&amp;nbsp; HECK YES!&lt;/p&gt;
&lt;p&gt;Anyway ... its a good topic and always stirs up a good discussion, which is why I love talking about it. Its not about the model and its not about the data. Its about both, together.&lt;/p&gt;
&lt;p&gt;If you are going to be in the area, &lt;a href="http://fladotnet.com/"&gt;please stop by. Should be a good discussion in South Florida&lt;/a&gt;! Here is the &lt;a href="http://www.fladotnet.com/Reg.aspx?EventID=306"&gt;registration link&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Cross posted from &lt;a href="http://johnpapa.net/"&gt;johnpapa.net&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=178452" width="1" height="1"&gt;</content><author><name>johnpapa</name><uri>http://codebetter.com/members/johnpapa/default.aspx</uri></author><category term="ADO.NET" scheme="http://codebetter.com/blogs/john.papa/archive/tags/ADO.NET/default.aspx" /><category term=".NET" scheme="http://codebetter.com/blogs/john.papa/archive/tags/.NET/default.aspx" /><category term="EF &amp;amp; LINQ " scheme="http://codebetter.com/blogs/john.papa/archive/tags/EF+_2600_amp_3B00_+LINQ+/default.aspx" /></entry><entry><title>Trying Code for my Book in VB and C#</title><link rel="alternate" type="text/html" href="/blogs/john.papa/archive/2008/05/19/trying-code-for-my-book-in-vb-and-c.aspx" /><id>/blogs/john.papa/archive/2008/05/19/trying-code-for-my-book-in-vb-and-c.aspx</id><published>2008-05-19T17:06:01Z</published><updated>2008-05-19T17:06:01Z</updated><content type="html">&lt;p&gt;I&amp;#39;ve decided to at least try to put all of the code sample in my &lt;a href="http://johnpapa.net/all/silverlight-2-book-cover-mock-up/"&gt;Data Access with Silverlight 2 book&lt;/a&gt; in both VB and C#. While VB was once my main language, C# has long since been the primary language I use.&amp;#160; Thankfully, there is the tool from &lt;a href="http://www.tangiblesoftwaresolutions.com/index.htm"&gt;Tangible Software Solutions&lt;/a&gt; called &lt;a href="http://www.tangiblesoftwaresolutions.com/Product_Details/Instant_VB.htm"&gt;Instant VB&lt;/a&gt; that converts C# code to VB code. It can convert a snippet of code, a file, or an entire solution. Its pretty darn fast too.&lt;/p&gt;  &lt;p&gt;For example, here is a class I created in C# ...&lt;/p&gt;  &lt;div style="border-right:gray 1px solid;padding-right:4px;border-top:gray 1px solid;padding-left:4px;font-size:8pt;padding-bottom:4px;margin:20px 0px 10px;overflow:auto;border-left:gray 1px solid;width:97.5%;cursor:text;max-height:200px;line-height:12pt;padding-top:4px;border-bottom:gray 1px solid;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;"&gt;   &lt;div style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;     &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; Customer&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;{&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;    &lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; id;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;    &lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; companyName;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;    &lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; Address companyAddress;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&amp;#160;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; ID&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;    {&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;        get { &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; id; }&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;        set { id = &lt;span style="color:#0000ff;"&gt;value&lt;/span&gt;; }&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;    }&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&amp;#160;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; CompanyName&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;    {&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;        get { &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; companyName; }&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;        set { companyName = &lt;span style="color:#0000ff;"&gt;value&lt;/span&gt;; }&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;    } &lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&amp;#160;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; Address2 CompanyAddress&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;    {&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;        get { &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; companyAddress; }&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;        set { companyAddress = &lt;span style="color:#0000ff;"&gt;value&lt;/span&gt;; }&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;    } &lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;}&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;and here is the code that Instant VB created for me.&lt;/p&gt;

&lt;div style="border-right:gray 1px solid;padding-right:4px;border-top:gray 1px solid;padding-left:4px;font-size:8pt;padding-bottom:4px;margin:20px 0px 10px;overflow:auto;border-left:gray 1px solid;width:97.5%;cursor:text;max-height:200px;line-height:12pt;padding-top:4px;border-bottom:gray 1px solid;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;background-color:#f4f4f4;"&gt;
  &lt;div style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;
    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#0000ff;"&gt;Public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Class&lt;/span&gt; Customer&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;    &lt;span style="color:#0000ff;"&gt;Private&lt;/span&gt; privateID &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Integer&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;    &lt;span style="color:#0000ff;"&gt;Public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Property&lt;/span&gt; ID() &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Integer&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;        &lt;span style="color:#0000ff;"&gt;Get&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;            &lt;span style="color:#0000ff;"&gt;Return&lt;/span&gt; privateID&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;        &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Get&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;        &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt;(&lt;span style="color:#0000ff;"&gt;ByVal&lt;/span&gt; value &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Integer&lt;/span&gt;)&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;            privateID = value&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;        &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;    &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Property&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;    &lt;span style="color:#0000ff;"&gt;Private&lt;/span&gt; privateCompanyName &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;String&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;    &lt;span style="color:#0000ff;"&gt;Public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Property&lt;/span&gt; CompanyName() &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;String&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;        &lt;span style="color:#0000ff;"&gt;Get&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;            &lt;span style="color:#0000ff;"&gt;Return&lt;/span&gt; privateCompanyName&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;        &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Get&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;        &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt;(&lt;span style="color:#0000ff;"&gt;ByVal&lt;/span&gt; value &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;String&lt;/span&gt;)&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;            privateCompanyName = value&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;        &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;    &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Property&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;    &lt;span style="color:#0000ff;"&gt;Private&lt;/span&gt; privateCompanyAddress &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; Address&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;    &lt;span style="color:#0000ff;"&gt;Public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Property&lt;/span&gt; CompanyAddress() &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; Address&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;        &lt;span style="color:#0000ff;"&gt;Get&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;            &lt;span style="color:#0000ff;"&gt;Return&lt;/span&gt; privateCompanyAddress&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;        &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Get&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;        &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt;(&lt;span style="color:#0000ff;"&gt;ByVal&lt;/span&gt; value &lt;span style="color:#0000ff;"&gt;As&lt;/span&gt; Address)&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;            privateCompanyAddress = value&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;        &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;    &lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Property&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, &amp;#39;Courier New&amp;#39;, courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#0000ff;"&gt;End&lt;/span&gt; Class&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;While this small snippet is easy enough to translate, it really comes in handy when you forget an END statement or a line continuation character or some other language specific syntax (or a squiggly bracket in C#). &lt;/p&gt;

&lt;p&gt;So far its going pretty well as I have only run into a few places where it did not convert the code as I expected it would. But it was easily fixed and I suspect that I had a problem because I was just converting a snippet of code (not even an entire method) and the tool could not determine if it was a property, method, or what. As I continue writing the book I will post more on my experiences with this tool, but so far its been pretty good. I don;t know if I trust it to convert my entire solution just yet, but I will be giving it a try once I have time to go through it all and test it.&lt;/p&gt;

&lt;p&gt;They also have a &lt;a href="http://www.tangiblesoftwaresolutions.com/Product_Details/Instant_CSharp.htm"&gt;Instant C#&lt;/a&gt; tool that converts from VB to C#, too.&lt;/p&gt;

&lt;p&gt;And yes, this tool is not free :)&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Cross posted from &lt;a href="http://johnpapa.net/"&gt;johnpapa.net&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=178421" width="1" height="1"&gt;</content><author><name>johnpapa</name><uri>http://codebetter.com/members/johnpapa/default.aspx</uri></author><category term=".NET" scheme="http://codebetter.com/blogs/john.papa/archive/tags/.NET/default.aspx" /><category term="Silverlight" scheme="http://codebetter.com/blogs/john.papa/archive/tags/Silverlight/default.aspx" /></entry><entry><title>Why Use the Entity Framework?</title><link rel="alternate" type="text/html" href="/blogs/john.papa/archive/2008/05/17/why-use-the-entity-framework.aspx" /><id>/blogs/john.papa/archive/2008/05/17/why-use-the-entity-framework.aspx</id><published>2008-05-18T00:42:47Z</published><updated>2008-05-18T00:42:47Z</updated><content type="html">&lt;p&gt;I&amp;#39;ve prepared dozens of articles and presentations on the Entity Framework over the past year and a half and the questions always start with &amp;quot;Why would I want to use this instead of XYZ?&amp;quot; LINQ to SQL, a variety of ORM tools, straight up ADO.NET, custom data layers, CSLA.NET and this list goes on and on. This is a great questions and I was glad to see &lt;a href="http://blogs.msdn.com/dsimmons/archive/2008/05/17/why-use-the-entity-framework.aspx"&gt;Danny Simmons of Microsoft addresses this today&lt;/a&gt; on his blog. Danny mentions the differences between the Entity Framework and a few of these alternatives and specifically points out situations where they don&amp;#39;t follow the same music. &lt;/p&gt;  &lt;p&gt;The differences between the choices are outlined well in Danny&amp;#39;s post. However the key point I want to stress is what Danny calls out in the last paragraph:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&amp;quot;Long-term we are working to build EDM awareness into a variety of other Microsoft products so that if you have an Entity Data Model, you should be able to &lt;font color="#008080"&gt;automatically create REST-oriented web services&lt;/font&gt; over that model (&lt;font color="#008080"&gt;ADO.Net Data Services&lt;/font&gt; aka Astoria),&lt;font color="#800080"&gt; write reports against that model (Reporting Services),&lt;/font&gt; &lt;font color="#ff8000"&gt;synchronize data between a server and an offline client store&lt;/font&gt; where the data is moved atomically as entities even if those entities draw from multiple database tables on the server, create workflows from entity-aware building blocks, etc. etc.&amp;#160; Not only does this increase the value of the data model by allowing it to be reused for many parts of your overall solution, but it also allows us to invest more heavily in common tools which will streamline the development process, make developer learning apply to more scenarios, etc. ...&amp;quot;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Basically the Entity Data Models that are built using the Entity Framework are going to be the centerpiece of communications with several technologies. Its not that its better or worse than XYZ, its that it will collaborate better with other tools (some not yet built nor conceived). &lt;/p&gt;  &lt;p&gt;Again, from Danny;s post ... &amp;quot;&lt;font color="#ff0000"&gt;it&amp;#39;s the first step in a much larger vision of an entity-aware data platform&lt;/font&gt;.&amp;quot; I like this ... rolls off the tongue. Think about this example .. Silverlight applications need to communicate with other &amp;quot;places&amp;quot; to get their data. This could be a web service, a REST request, or even a POX (Plain Old XML) stream.&amp;#160; Making data available via REST is becoming more abundant ... and with ADO.NET Data Services you can use REST to retrieve entities, because ADO.NET Data Services effectively handles the translation of the REST request to and from the entities in an Entity Data Model. So its a win win situation for Silverlight and for developers since we get to reuse our Entity Data Model and leverage our existing code.&lt;/p&gt;  &lt;p&gt;Is it all perfect? Of course not. Does the Entity Framework fit for every situation? Of course not. But one thing is for certain ... Microsoft is making sure its technologies are EF aware.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Cross posted from &lt;a href="http://johnpapa.net/"&gt;johnpapa.net&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=178359" width="1" height="1"&gt;</content><author><name>johnpapa</name><uri>http://codebetter.com/members/johnpapa/default.aspx</uri></author><category term="ADO.NET" scheme="http://codebetter.com/blogs/john.papa/archive/tags/ADO.NET/default.aspx" /><category term=".NET" scheme="http://codebetter.com/blogs/john.papa/archive/tags/.NET/default.aspx" /><category term="EF &amp;amp; LINQ " scheme="http://codebetter.com/blogs/john.papa/archive/tags/EF+_2600_amp_3B00_+LINQ+/default.aspx" /><category term="Silverlight" scheme="http://codebetter.com/blogs/john.papa/archive/tags/Silverlight/default.aspx" /></entry><entry><title>Silverlight Consuming REST Services</title><link rel="alternate" type="text/html" href="/blogs/john.papa/archive/2008/05/16/silverlight-consuming-rest-services.aspx" /><id>/blogs/john.papa/archive/2008/05/16/silverlight-consuming-rest-services.aspx</id><published>2008-05-16T20:45:55Z</published><updated>2008-05-16T20:45:55Z</updated><content type="html">&lt;p&gt;I just finished writing the first draft of a sample I am including in &lt;a href="http://johnpapa.net/all/as-it-once-was-i-am-writing-a-book/"&gt;my upcoming book tentatively titled Data Access with Silverlight 2 by O&amp;#39;Reilly&lt;/a&gt;. Without giving too much away yet since the final details of the contract are not set in stone, the application example consumes a REST service, manipulates it through LINQ to XML, and binds it to various controls and some composite controls. The interaction with the &lt;a href="http://en.wikipedia.org/wiki/Representational_State_Transfer"&gt;REST&lt;/a&gt; (REpresentational State Transfer) services is pretty slick and quite easy when using Silverlight and LINQ to XML. Of course there are always issues to deal with, but overall it works very nicely.&lt;/p&gt;  &lt;p&gt;Why use REST? Well, REST services are becoming more abundant on the web. They do not expose a contract like WCF so when you deal with this type of data you can parse the XML using LINQ to XML or some other XML tools (though LINQ TO XML is so smooth why bother with anything else in this case). So this raw XML comes barreling into your Silverlight application asynchronously, LINQ to XML makes it fall in line, and its bound to where it needs to go via XAML.&lt;/p&gt;  &lt;p&gt;Sending data back via REST is also very cool. I&amp;#39;ve got that working now too. I have to be careful not to go overboard fine tuning the examples though or the book will never get written :) Interacting with REST from Silverlight applications is just one piece of the data access puzzle, but its pretty cool.&lt;/p&gt;  &lt;p&gt;&lt;img height="240" src="http://johnpapa.net/images/book2.png" width="183" alt="" /&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Cross posted from &lt;a href="http://johnpapa.net/"&gt;johnpapa.net&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=178330" width="1" height="1"&gt;</content><author><name>johnpapa</name><uri>http://codebetter.com/members/johnpapa/default.aspx</uri></author><category term="ADO.NET" scheme="http://codebetter.com/blogs/john.papa/archive/tags/ADO.NET/default.aspx" /><category term=".NET" scheme="http://codebetter.com/blogs/john.papa/archive/tags/.NET/default.aspx" /><category term="EF &amp;amp; LINQ " scheme="http://codebetter.com/blogs/john.papa/archive/tags/EF+_2600_amp_3B00_+LINQ+/default.aspx" /><category term="Silverlight" scheme="http://codebetter.com/blogs/john.papa/archive/tags/Silverlight/default.aspx" /></entry><entry><title>DevConnections Las Vegas - Nov 2008</title><link rel="alternate" type="text/html" href="/blogs/john.papa/archive/2008/05/16/devconnections-las-vegas-nov-2008.aspx" /><id>/blogs/john.papa/archive/2008/05/16/devconnections-las-vegas-nov-2008.aspx</id><published>2008-05-16T04:48:11Z</published><updated>2008-05-16T04:48:11Z</updated><content type="html">&lt;p&gt;I&amp;#39;ll be speaking at &lt;a href="http://www.devconnections.com"&gt;DevConnections&lt;/a&gt; in Las Vegas this Fall along with others &lt;a href="http://www.thedatafarm.com"&gt;Julie Lerman&lt;/a&gt; and &lt;a href="http://aspadvice.com/blogs/plitwin"&gt;Paul Litwin&lt;/a&gt;. The 3 topics I will be presenting are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font color="#000080"&gt;Data Access with Silverlight 2&lt;/font&gt; &lt;/li&gt;    &lt;li&gt;&lt;font color="#000080"&gt;Integrating Enterprise Library&amp;#39;s Data Access Application Block with your Project&lt;/font&gt; &lt;/li&gt;    &lt;li&gt;&lt;font color="#000080"&gt;Practical Strategies with the Entity Framework&lt;/font&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://www.devconnections.com/"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="147" alt="image" src="http://codebetter.com/blogs/john.papa/WindowsLiveWriter/DevConnectionsLasVegasNov2008_6E1/image_3.png" width="523" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The past few events have been awesome and getting stronger and more fun each time. If you are planning on attending the conference in the Fall, please stop by and say hi. &lt;/p&gt;  &lt;p&gt;My &lt;a href="http://johnpapa.net/all/silverlight-2-book-cover-mock-up/"&gt;upcoming book tentatively titled Data Access with Silverlight 2&lt;/a&gt; should almost be available by the conference. I am targeting December, but I am hoping I can pull it off for November.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Cross posted from &lt;a href="http://johnpapa.net"&gt;johnpapa.net&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=178298" width="1" height="1"&gt;</content><author><name>johnpapa</name><uri>http://codebetter.com/members/johnpapa/default.aspx</uri></author><category term="Ent Lib" scheme="http://codebetter.com/blogs/john.papa/archive/tags/Ent+Lib/default.aspx" /><category term="ADO.NET" scheme="http://codebetter.com/blogs/john.papa/archive/tags/ADO.NET/default.aspx" /><category term=".NET" scheme="http://codebetter.com/blogs/john.papa/archive/tags/.NET/default.aspx" /><category term="EF &amp;amp; LINQ " scheme="http://codebetter.com/blogs/john.papa/archive/tags/EF+_2600_amp_3B00_+LINQ+/default.aspx" /><category term="Silverlight" scheme="http://codebetter.com/blogs/john.papa/archive/tags/Silverlight/default.aspx" /></entry><entry><title>Silverlight 2 Book Cover Mock Up</title><link rel="alternate" type="text/html" href="/blogs/john.papa/archive/2008/05/14/silverlight-2-book-cover-mock-up.aspx" /><id>/blogs/john.papa/archive/2008/05/14/silverlight-2-book-cover-mock-up.aspx</id><published>2008-05-14T19:08:00Z</published><updated>2008-05-14T19:08:00Z</updated><content type="html">&lt;p&gt;Here is the mock up of my upcoming Silverlight 2 book that &lt;a href="http://johnpapa.net/all/as-it-once-was-i-am-writing-a-book/"&gt;I mentioned earlier today&lt;/a&gt;. The title is still up in the air, as is the cover art, and ... let&amp;#39;s face it ...&amp;#160; just about everything except for the release date of Nov/Dec 2008.&amp;#160; I just wanted to see what it might look like so I mocked up a fake book cover to the amusement of myself and my daughters. Though I think they want a cat or an eagle on the cover :-)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://johnpapa.net/all/silverlight-2-book-cover-mock-up/"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="484" alt="Data Access with Silverlight 2" src="http://codebetter.com/blogs/john.papa/WindowsLiveWriter/Silverlight2BookCoverMockUp_D252/book2_3.png" width="369" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Cross posted from &lt;a href="http://johnpapa.net/"&gt;johnpapa.net&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=178215" width="1" height="1"&gt;</content><author><name>johnpapa</name><uri>http://codebetter.com/members/johnpapa/default.aspx</uri></author><category term="ADO.NET" scheme="http://codebetter.com/blogs/john.papa/archive/tags/ADO.NET/default.aspx" /><category term=".NET" scheme="http://codebetter.com/blogs/john.papa/archive/tags/.NET/default.aspx" /><category term="EF &amp;amp; LINQ " scheme="http://codebetter.com/blogs/john.papa/archive/tags/EF+_2600_amp_3B00_+LINQ+/default.aspx" /><category term="Silverlight" scheme="http://codebetter.com/blogs/john.papa/archive/tags/Silverlight/default.aspx" /></entry><entry><title>As it Once Was, I am Writing a Book</title><link rel="alternate" type="text/html" href="/blogs/john.papa/archive/2008/05/14/as-it-once-was-i-am-writing-a-book.aspx" /><id>/blogs/john.papa/archive/2008/05/14/as-it-once-was-i-am-writing-a-book.aspx</id><published>2008-05-14T17:35:55Z</published><updated>2008-05-14T17:35:55Z</updated><content type="html">&lt;p&gt;It is 3 am and I am learning the subtle balance of typing with one hand while swaying and comforting&amp;#160; my new born child in the other. She was up late crying ... a lot. She had colic. So we took turns staying up with her to comfort her. The problem was I also had a book to finish. &lt;/p&gt;  &lt;p&gt;It has been years since I last wrote any part of a book. I authored or co-authored 8 books on cool topics including SQL Server, ADO, and XML back in the late 90&amp;#39;s and early 2000&amp;#39;s. Then something happened ... something wonderful. 3 times. I had a child, and another, and another. Suddenly the massive amounts of time I was dedicating to writing books morphed into a blissful parenting experience. I still enjoyed writing so I hit the articles hard writing more than 70 articles over the past 7 years and I spoke at several conferences. &lt;/p&gt;  &lt;p&gt;My kids aren&amp;#39;t full grown but I&amp;#39;ve recently had an urge to get a book out. I&amp;#39;ve been deep into the new data access technologies since they were announced. I&amp;#39;ve been working hard at making practical Silverlight 2 applications that are more about how to implement SIlverlight 2 in line of business applications as opposed to just making pretty circles bounce on a screen (though that is cool too). A few weeks later my book idea is refined and on its way to being written and on the shelves. I expect it to be out in November of this year.&lt;/p&gt;  &lt;p&gt;I expect my next few months are now going to be full of work, writing a book and family time ... basically eliminating all sleep. Just like it used to be. At least this time I can use 2 hands to type.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Cross posted from &lt;a href="http://johnpapa.net/"&gt;johnpapa.net&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=178211" width="1" height="1"&gt;</content><author><name>johnpapa</name><uri>http://codebetter.com/members/johnpapa/default.aspx</uri></author><category term="ADO.NET" scheme="http://codebetter.com/blogs/john.papa/archive/tags/ADO.NET/default.aspx" /><category term=".NET" scheme="http://codebetter.com/blogs/john.papa/archive/tags/.NET/default.aspx" /><category term="EF &amp;amp; LINQ " scheme="http://codebetter.com/blogs/john.papa/archive/tags/EF+_2600_amp_3B00_+LINQ+/default.aspx" /><category term="Silverlight" scheme="http://codebetter.com/blogs/john.papa/archive/tags/Silverlight/default.aspx" /></entry><entry><title>Entity Framework &amp; LINQ Tonight in Sarasota</title><link rel="alternate" type="text/html" href="/blogs/john.papa/archive/2008/05/14/entity-framework-amp-linq-tonight-in-sarasota.aspx" /><id>/blogs/john.papa/archive/2008/05/14/entity-framework-amp-linq-tonight-in-sarasota.aspx</id><published>2008-05-14T15:28:52Z</published><updated>2008-05-14T15:28:52Z</updated><content type="html">&lt;p&gt;Tonight I will be joining the &lt;a href="http://sarasotasql.net/"&gt;Sarasota SQL Server User group&lt;/a&gt; and the &lt;a href="http://www.sarasotadev.net/"&gt;Sarasota .NET User group&lt;/a&gt; at their combined May 2008 meeting. I will be presenting the Entity Framework and LINQ using the new bits that came out 2 days ago on Monday including the new features that it brings. I always have a good time at user groups and especially so when its a hot topic like the Entity Framework and LINQ. &lt;/p&gt;  &lt;p&gt;I&amp;#39;ll be showing several demonstrations using the Entity Framework that demonstrate how to use it in different scenarios and its future direction. I&amp;#39;m looking forward it!&lt;/p&gt;  &lt;p&gt;Here is the logistical information for tonight&amp;#39;s event and Here is link to a &lt;a href="http://maps.google.com/maps?sourceid=navclient&amp;amp;ie=UTF-8&amp;amp;rlz=1T4GGIH_en__265__265&amp;amp;q=2635+Fruitville+Rd,+Sarasota,+FL+34237,+USA&amp;amp;um=1&amp;amp;sa=X&amp;amp;oi=geocode_result&amp;amp;resnum=1&amp;amp;ct=title"&gt;google map&lt;/a&gt; for directions.&lt;/p&gt;  &lt;hr /&gt;  &lt;p&gt;&lt;img alt="" src="https://www.clicktoattend.com/images/partners/5125c0dc-4f57-48bb-b86a-ee0cd8023c42.jpg" border="0" /&gt;&lt;/p&gt;  &lt;p&gt;5/14/2008 @ 6:00 PM - 7:30 PM&lt;/p&gt;  &lt;p&gt;Welcome Time:    &lt;br /&gt;5/14/2008 5:45 PM Eastern Time&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Location:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The Community Foundation of Sarasota County&lt;/p&gt;  &lt;p&gt;2635 Fruitville Road&lt;/p&gt;  &lt;p&gt;Sarasota, FL 34237&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Cross posted from &lt;a href="http://johnpapa.net/"&gt;johnpapa.net&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=178204" width="1" height="1"&gt;</content><author><name>johnpapa</name><uri>http://codebetter.com/members/johnpapa/default.aspx</uri></author><category term="ADO.NET" scheme="http://codebetter.com/blogs/john.papa/archive/tags/ADO.NET/default.aspx" /><category term=".NET" scheme="http://codebetter.com/blogs/john.papa/archive/tags/.NET/default.aspx" /><category term="EF &amp;amp; LINQ " scheme="http://codebetter.com/blogs/john.papa/archive/tags/EF+_2600_amp_3B00_+LINQ+/default.aspx" /></entry><entry><title>Visual Studio 2008 and .NET 3.5 SP 1 Beta Download</title><link rel="alternate" type="text/html" href="/blogs/john.papa/archive/2008/05/12/visual-studio-2008-and-net-3-5-sp-1-beta-download.aspx" /><id>/blogs/john.papa/archive/2008/05/12/visual-studio-2008-and-net-3-5-sp-1-beta-download.aspx</id><published>2008-05-12T17:29:42Z</published><updated>2008-05-12T17:29:42Z</updated><content type="html">&lt;p&gt;&lt;a href="http://blogs.msdn.com/somasegar/archive/2008/05/12/visual-studio-2008-and-net-fx-3-5-sp1-beta-available-now.aspx"&gt;Soma&lt;/a&gt; announced this morning that &lt;a href="http://blogs.msdn.com/somasegar/archive/2008/05/12/visual-studio-2008-and-net-fx-3-5-sp1-beta-available-now.aspx"&gt;Visual Studio 2008 and .NET 3.5 SP 1 is now ready and can be downloaded&lt;/a&gt;. This includes several updates, includes support for SQL Server 2008, and has a few new products including the Entity Framework, LINQ to Entities and ADO.NET Data Services (aka Astoria). &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/05/12/visual-studio-2008-and-net-framework-3-5-service-pack-1-beta.aspx"&gt;ScottGu posted some notes&lt;/a&gt; regarding what&amp;#39;s included in the service pack, as well.&lt;/p&gt;  &lt;p&gt;Of course all of this is released 2 days before I have a demonstration on the Entity Framework and LINQ to Entities on Wednesday to the Sarasota .NET and SQL Server User groups. So I have a few modifications to make for my presentations.&lt;/p&gt;  &lt;p&gt;I received an error when I first tried to install it. The problem was that the service pack was in conflict with Silverlight Tools Beta for Visual Studio 2008 which I was using to create/edit Silverlight 2 applications. Once uninstalling this i was able to get the service pack to install properly. Scott Gu&amp;#39;s post discusses this issue as well as the importance of making sure you install Vista SP 1 first.&lt;/p&gt;  &lt;p&gt;Check out &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/05/12/visual-studio-2008-and-net-framework-3-5-service-pack-1-beta.aspx"&gt;ScottGu&amp;#39;s post&lt;/a&gt; for full details.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Cross posted &lt;a href="http://johnpapa.net/"&gt;johnpapa.net&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=178111" width="1" height="1"&gt;</content><author><name>johnpapa</name><uri>http://codebetter.com/members/johnpapa/default.aspx</uri></author><category term="ADO.NET" scheme="http://codebetter.com/blogs/john.papa/archive/tags/ADO.NET/default.aspx" /><category term="SQL" scheme="http://codebetter.com/blogs/john.papa/archive/tags/SQL/default.aspx" /><category term=".NET" scheme="http://codebetter.com/blogs/john.papa/archive/tags/.NET/default.aspx" /><category term="EF &amp;amp; LINQ " scheme="http://codebetter.com/blogs/john.papa/archive/tags/EF+_2600_amp_3B00_+LINQ+/default.aspx" /></entry><entry><title>.NET Development with the Wiimote</title><link rel="alternate" type="text/html" href="/blogs/john.papa/archive/2008/05/12/net-development-with-the-wiimote.aspx" /><id>/blogs/john.papa/archive/2008/05/12/net-development-with-the-wiimote.aspx</id><published>2008-05-12T13:58:07Z</published><updated>2008-05-12T13:58:07Z</updated><content type="html">&lt;p&gt;My friend and colleague &lt;a href="http://www.brianpeek.com/"&gt;Brian Peek&lt;/a&gt; has been developing some awesome and fun applications for a while. As a contributing author to MSDN&amp;#39;s Coding 4 Fun Bran has been creating some cool applications that you should really check out at his site at &lt;a href="http://www.brianpeek.com"&gt;www.brianpeek.com&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Not his latest, but certainly one of his most famous, achievement is his &lt;a href="http://blogs.msdn.com/coding4fun/archive/2007/03/14/1879033.aspx"&gt;Wiimote .NET Library&lt;/a&gt; and the uses that he is putting it to. Brian got the attention of Newsweek magazine for the &lt;a href="http://blogs.msdn.com/coding4fun/archive/2007/03/14/1879033.aspx"&gt;Wiimote .NET library&lt;/a&gt; that he authored. They interviewed him and the article can be found on line at &lt;a href="http://www.newsweek.com/id/136381"&gt;http://www.newsweek.com/id/136381&lt;/a&gt;.&amp;#160; The print article should be in the May 19th issue of the International Edition of Newsweek.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Cross posted from &lt;a href="http://johnpapa.net/"&gt;johnpapa.net&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=178108" width="1" height="1"&gt;</content><author><name>johnpapa</name><uri>http://codebetter.com/members/johnpapa/default.aspx</uri></author></entry><entry><title>Feeling Blue</title><link rel="alternate" type="text/html" href="/blogs/john.papa/archive/2008/05/07/feeling-blue.aspx" /><id>/blogs/john.papa/archive/2008/05/07/feeling-blue.aspx</id><published>2008-05-08T03:07:05Z</published><updated>2008-05-08T03:07:05Z</updated><content type="html">&lt;p&gt;Today I decided to try out a new theme for &lt;a href="http://johnpapa.net/"&gt;my site at johnpapa.net&lt;/a&gt;. &lt;a href="http://richmercer.com/graffiti-themes/#deepblue"&gt;Rich Mercer has a handful of nice themes&lt;/a&gt; posted in his site including this one, which is a variation of the Point Space Blue theme. I&amp;#39;m going to try it out and see where it takes me. Its a pretty clean theme though there are a few items I need to touch up for certain. Hey if anything, my daughter likes this one the best so far.&lt;/p&gt;  &lt;p&gt;I have been thrilled with the flexibility and the low maintenance of &lt;a href="http://graffiticms.com"&gt;Graffiti CMS&lt;/a&gt;. I spend so much less time fixing problems than I used to with other products that I will leave unnamed.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://codebetter.com/blogs/john.papa/WindowsLiveWriter/FeelingBlue_ACFA/image_4.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="484" alt="image" src="http://codebetter.com/blogs/john.papa/WindowsLiveWriter/FeelingBlue_ACFA/image_thumb.png" width="487" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Cross posted from &lt;a href="http://johnpapa.net"&gt;johnpapa.net&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=177855" width="1" height="1"&gt;</content><author><name>johnpapa</name><uri>http://codebetter.com/members/johnpapa/default.aspx</uri></author><category term="Random Stuff" scheme="http://codebetter.com/blogs/john.papa/archive/tags/Random+Stuff/default.aspx" /></entry></feed>