<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en"><title type="html">DonXml's All Things Techie</title><subtitle type="html"> </subtitle><id>http://donxml.com/allthingstechie/atom.aspx</id><link rel="alternate" type="text/html" href="http://donxml.com/allthingstechie/default.aspx" /><generator uri="http://communityserver.org" version="2.1.60809.935">Community Server</generator><updated>2008-02-17T11:15:48Z</updated><link rel="license" type="text/html" href="http://creativecommons.org/licenses/by/2.0/" /><logo>http://www.feedburner.com/fb/images/pub/fb_pwrd.gif</logo><link rel="self" href="http://feeds.feedburner.com/DonXmlAllThingsTechie" type="application/atom+xml" /><entry><title>WCF, jQuery and WebForms Slides and Code</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DonXmlAllThingsTechie/~3/EwY8paadS2E/WCF_2C00_-jQuery-and-WebForms-Slides-and-Code.aspx" /><id>http://donxml.com/allthingstechie/archive/2009/04/22/WCF_2C00_-jQuery-and-WebForms-Slides-and-Code.aspx</id><published>2009-04-22T18:47:04Z</published><updated>2009-04-22T18:47:04Z</updated><content type="html">&lt;p&gt;I’m finally getting around to &lt;a href="http://cid-2839b6e34c142198.skydrive.live.com/self.aspx/.Public/Wcf%7C_And%7C_jQuery%7C_SoCal%7C_Version.zip" target="_blank"&gt;publishing my slides and code&lt;/a&gt; for my recent user group talks on using jQuery with WCF in ASP.Net WebForms.&amp;#160; The latest version is from my SoCal .Net Architecture talk.&amp;#160; You can also see my MessageBody WCF style in this code.&amp;#160; Eventually I’ll publish the sample app as an open source project, since it has a couple of different uses.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://donxml.com/allthingstechie/archive/2009/04/22/WCF_2C00_-jQuery-and-WebForms-Slides-and-Code.aspx&amp;amp;;subject=WCF%2c+jQuery+and+WebForms+Slides+and+Code" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2009/04/22/WCF_2C00_-jQuery-and-WebForms-Slides-and-Code.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://donxml.com/allthingstechie/archive/2009/04/22/WCF_2C00_-jQuery-and-WebForms-Slides-and-Code.aspx&amp;amp;;title=WCF%2c+jQuery+and+WebForms+Slides+and+Code" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2009/04/22/WCF_2C00_-jQuery-and-WebForms-Slides-and-Code.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://donxml.com/allthingstechie/archive/2009/04/22/WCF_2C00_-jQuery-and-WebForms-Slides-and-Code.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2009/04/22/WCF_2C00_-jQuery-and-WebForms-Slides-and-Code.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://donxml.com/allthingstechie/archive/2009/04/22/WCF_2C00_-jQuery-and-WebForms-Slides-and-Code.aspx&amp;amp;title=WCF%2c+jQuery+and+WebForms+Slides+and+Code" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2009/04/22/WCF_2C00_-jQuery-and-WebForms-Slides-and-Code.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://donxml.com/allthingstechie/archive/2009/04/22/WCF_2C00_-jQuery-and-WebForms-Slides-and-Code.aspx&amp;amp;;title=WCF%2c+jQuery+and+WebForms+Slides+and+Code" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2009/04/22/WCF_2C00_-jQuery-and-WebForms-Slides-and-Code.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://donxml.com/allthingstechie/archive/2009/04/22/WCF_2C00_-jQuery-and-WebForms-Slides-and-Code.aspx&amp;amp;;title=WCF%2c+jQuery+and+WebForms+Slides+and+Code&amp;amp;;top=1" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2009/04/22/WCF_2C00_-jQuery-and-WebForms-Slides-and-Code.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://donxml.com/aggbug.aspx?PostID=3698" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?a=EwY8paadS2E:12Dxa47bbpU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?a=EwY8paadS2E:12Dxa47bbpU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DonXmlAllThingsTechie/~4/EwY8paadS2E" height="1" width="1"/&gt;</content><author><name>donxml</name><uri>http://donxml.com/members/donxml.aspx</uri></author><category term=".Net Communities" scheme="http://donxml.com/allthingstechie/archive/tags/.Net+Communities/default.aspx" /><category term="WCF" scheme="http://donxml.com/allthingstechie/archive/tags/WCF/default.aspx" /><category term="WCFMsssageBody" scheme="http://donxml.com/allthingstechie/archive/tags/WCFMsssageBody/default.aspx" /><category term="jQuery" scheme="http://donxml.com/allthingstechie/archive/tags/jQuery/default.aspx" /><feedburner:origLink>http://donxml.com/allthingstechie/archive/2009/04/22/WCF_2C00_-jQuery-and-WebForms-Slides-and-Code.aspx</feedburner:origLink></entry><entry><title>The Tale of WCF, MessageContract, and JSON</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DonXmlAllThingsTechie/~3/GjwXxMarptc/The-Tale-of-WCF_2C00_-MessageContract_2C00_-and-JSON.aspx" /><id>http://donxml.com/allthingstechie/archive/2009/04/10/The-Tale-of-WCF_2C00_-MessageContract_2C00_-and-JSON.aspx</id><published>2009-04-10T14:51:00Z</published><updated>2009-04-10T14:51:00Z</updated><content type="html">&lt;p&gt;Yes, I know it had been a long time since I&amp;rsquo;ve blogged, and even longer since I&amp;rsquo;ve blogged any decent technical content.&amp;nbsp; But I have a feeling that the drought is over, and a series of tech content is on the way ;)&lt;/p&gt;&lt;p&gt;This is the tale of how I spent a good part of a week trying to build something &amp;ldquo;the right way&amp;rdquo; only to be reminded that &amp;ldquo;the right way&amp;rdquo; is determined by your context (which way you want to look at something).&amp;nbsp; You see, I&amp;rsquo;m an old school web service developer, and with that, teaching developers that the way to build services is to make sure not to forget that you are sending messages, not executing remote procedure calls.&amp;nbsp; Way back when, people use to argue, do you build services code first, or contract first, and I came to the conclusion that it really didn&amp;rsquo;t matter as long as you designed them &lt;a href="http://donxml.com/allthingstechie/archive/2006/03/18/2605.aspx" target="_blank"&gt;Message First&lt;/a&gt;.&amp;nbsp; But I must not have done a good job spreading the word, because the overwhelming majority of Service code out there seems to be written in a RPC style.&amp;nbsp; It still tries to encourage the developer to write the same style code, be it a call to a function within the same App Domain, or to Service in another App Domain (or even another machine running a totally different framework).&lt;/p&gt;&lt;p&gt;So here&amp;rsquo;s how this starts.&amp;nbsp; I decide that I want more &amp;ldquo;modern&amp;rdquo; look and feel to administer ASP.Net Membership, and to do that, I want to use jQuery and WCF.&amp;nbsp; Rick Strahl has done some excellent work getting &lt;a href="http://www.west-wind.com/WebLog/posts/400990.aspx" target="_blank"&gt;jQuery and WCF JSON to work together&lt;/a&gt;, but like so many other examples out there, his examples use WCF&amp;rsquo;s DataContracts, and don&amp;rsquo;t implement a more explicit messaging model.&amp;nbsp; I eventually want to open source this, so I give it the project name w00ton.&amp;nbsp; I start to build out a WCF UserAdministrationService, write some integration tests (using NUnit, .Net client and host it in a Web Project), and everything is cool.&amp;nbsp; I have explicit Message, Data, and Fault contracts, in a Service Factory style (except I put them all in one project, instead of separate projects like SF does).&amp;nbsp; So here&amp;rsquo;s what the code looks like:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;The Service Interface&lt;/strong&gt;&lt;/p&gt;&lt;pre style="background-color:#fbfbfb;min-height:40px;width:600px;overflow:auto;border:#cecece 1px solid;padding:5px;"&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;&lt;span style="color:#0000ff;"&gt;namespace&lt;/span&gt; w00ton.MembershipAdministration.ServiceContracts
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;{
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;    [ServiceContract(Namespace = &amp;quot;&lt;span style="color:#8b0000;"&gt;urn:w00ton.MembershipAdministration.ServiceContracts&lt;/span&gt;&amp;quot;,
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;    Name = &amp;quot;&lt;span style="color:#8b0000;"&gt;UserAdministrationService&lt;/span&gt;&amp;quot;,
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;    SessionMode = SessionMode.NotAllowed,
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;    ProtectionLevel = ProtectionLevel.None)]
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;interface&lt;/span&gt; IUserAdministrationService
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;    {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;        [FaultContract(&lt;span style="color:#0000ff;"&gt;typeof&lt;/span&gt;(Faults.DuplicateEmailAddressFault))]
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;        [FaultContract(&lt;span style="color:#0000ff;"&gt;typeof&lt;/span&gt;(Faults.DuplicateUserNameFault))]
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;        [FaultContract(&lt;span style="color:#0000ff;"&gt;typeof&lt;/span&gt;(Faults.InvalidEmailAddressFault))]
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;        [FaultContract(&lt;span style="color:#0000ff;"&gt;typeof&lt;/span&gt;(Faults.InvalidUserNameFault))]
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;        [FaultContract(&lt;span style="color:#0000ff;"&gt;typeof&lt;/span&gt;(Faults.InvalidPasswordFault))]
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;        [OperationContract(IsTerminating = &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;,
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;            IsInitiating = &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;,
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;            IsOneWay = &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;,
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;            AsyncPattern = &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;,
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;            Action = &amp;quot;&lt;span style="color:#8b0000;"&gt;CreateUser&lt;/span&gt;&amp;quot;,
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;            ProtectionLevel = ProtectionLevel.None)]
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;        Messages.CreateUserResponse CreateUser(Messages.CreateUserRequest request);
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;        [OperationContract(IsTerminating = &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;,
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;            IsInitiating = &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;,
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;            IsOneWay = &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;,
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;            AsyncPattern = &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;,
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;            Action = &amp;quot;&lt;span style="color:#8b0000;"&gt;GetAllUsersByPage&lt;/span&gt;&amp;quot;,
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;            ProtectionLevel = ProtectionLevel.None)]
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;        Messages.GetAllUsersByPageResponse GetAllUsersByPage(Messages.GetAllUsersByPageRequest request);
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;    }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;}&lt;/pre&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Message Contract&lt;/strong&gt;&lt;/p&gt;&lt;pre style="background-color:#fbfbfb;min-height:40px;width:600px;overflow:auto;border:#cecece 1px solid;padding:5px;"&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;&lt;span style="color:#0000ff;"&gt;namespace&lt;/span&gt; w00ton.MembershipAdministration.ServiceContracts.MessageContracts
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;{
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;    [MessageContract(IsWrapped = &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;)]
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; GetAllUsersByPageRequest
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;    {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;        [MessageBodyMember(Name = &amp;quot;&lt;span style="color:#8b0000;"&gt;Body&lt;/span&gt;&amp;quot;)]
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;        &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; GetAllUsersByPageRequestBody Body { &lt;span style="color:#0000ff;"&gt;get&lt;/span&gt;; &lt;span style="color:#0000ff;"&gt;set&lt;/span&gt;; }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;    }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;}&lt;/pre&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Data Contract&lt;/strong&gt;&lt;/p&gt;&lt;pre style="background-color:#fbfbfb;min-height:40px;width:600px;overflow:auto;border:#cecece 1px solid;padding:5px;"&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;&lt;span style="color:#0000ff;"&gt;namespace&lt;/span&gt; w00ton.MembershipAdministration.ServiceContracts.DataContracts
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;{
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;    [DataContract(Namespace = &amp;quot;&lt;span style="color:#8b0000;"&gt;urn:w00ton.MembershipAdministration.DataContracts&lt;/span&gt;&amp;quot;,
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;    Name = &amp;quot;&lt;span style="color:#8b0000;"&gt;GetAllUsersByPageRequestBody&lt;/span&gt;&amp;quot;)]
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; GetAllUsersByPageRequestBody : IExtensibleDataObject
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;    {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;        [DataMember(Name = &amp;quot;&lt;span style="color:#8b0000;"&gt;PageIndex&lt;/span&gt;&amp;quot;, IsRequired = &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;, Order = 0)]
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;        &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; PageIndex { &lt;span style="color:#0000ff;"&gt;get&lt;/span&gt;; &lt;span style="color:#0000ff;"&gt;set&lt;/span&gt;; }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;        [DataMember(Name = &amp;quot;&lt;span style="color:#8b0000;"&gt;PageSize&lt;/span&gt;&amp;quot;, IsRequired = &lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;, Order = 1)]
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;        &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; PageSize { &lt;span style="color:#0000ff;"&gt;get&lt;/span&gt;; &lt;span style="color:#0000ff;"&gt;set&lt;/span&gt;; }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;        #region Implementation of IExtensibleDataObject
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;        &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; ExtensionDataObject ExtensionData
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;        {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;            &lt;span style="color:#0000ff;"&gt;get&lt;/span&gt;; &lt;span style="color:#0000ff;"&gt;set&lt;/span&gt;;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;        }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;        #endregion
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;    }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;}&lt;/pre&gt;&lt;/pre&gt;&lt;p&gt;The code style I&amp;rsquo;m using here is something I call the MessageBody style.&amp;nbsp; I&amp;rsquo;ll have to write up that style, and why I use it in another blog post.&amp;nbsp; It&amp;rsquo;s just something I&amp;rsquo;ve developed over time that seems to work for me.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;.Net Client Test&lt;/strong&gt;&lt;/p&gt;&lt;pre style="background-color:#fbfbfb;min-height:40px;width:600px;overflow:auto;border:#cecece 1px solid;padding:5px;"&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;[TestFixture]
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; GetUsersTestFixture
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;{
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;    [Test]
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; Must_Be_Able_To_Get_Users()
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;    {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;        &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; (UserAdministrationServiceClient Client = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; UserAdministrationServiceClient())
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;        {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;            var Response =
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;                Client.GetAllUsersByPage(&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; GetAllUsersByPageRequest
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;                {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;                    Body = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Data.GetAllUsersByPageRequestBody
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;                    {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;                        PageIndex = 0,
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;                        PageSize = 10
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;                    }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;                });
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;            Assert.That(Response.Body.MembershipUsers != &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;);
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;        }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;    }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;}&lt;/pre&gt;&lt;/pre&gt;&lt;p&gt;So, the test works and the WCF service seems to be fine, so I decide to try to call it using ASP.Net AJAX and the code gen&amp;rsquo;d Proxy class:&lt;/p&gt;&lt;pre style="background-color:#fbfbfb;min-height:40px;width:600px;overflow:auto;border:#cecece 1px solid;padding:5px;"&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; GetAllUsersByPage(pageIndex, pageSize)
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;{
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;    &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; tn = { &amp;quot;&lt;span style="color:#8b0000;"&gt;PageIndex&lt;/span&gt;&amp;quot;: pageIndex, &amp;quot;&lt;span style="color:#8b0000;"&gt;PageSize&lt;/span&gt;&amp;quot;: pageSize };
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;    w00ton.MembershipAdministration.ServiceContracts.UserAdministrationService.GetAllUsersByPage(tn,
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;        &lt;span style="color:#0000ff;"&gt;function&lt;/span&gt;(GetAllUsersByPageResponse)
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;        {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;            &lt;span style="color:#0000ff;"&gt;alert&lt;/span&gt;(GetAllUsersByPageResponse);
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;        }, onPageError
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;    );
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;    &lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; onPageError(error)
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;    {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;        &lt;span style="color:#0000ff;"&gt;alert&lt;/span&gt;(&amp;quot;&lt;span style="color:#8b0000;"&gt;An error occurred:\r\n\r\n&lt;/span&gt;&amp;quot; + error.Message);
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;    }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;}&lt;/pre&gt;&lt;/pre&gt;&lt;p&gt;But when I test that code, it throws an error, &amp;ldquo;An Error Occured: Undefined&amp;rdquo;.&amp;nbsp; So I check out what is being sent via Fiddler.&lt;/p&gt;&lt;pre style="background-color:#fbfbfb;min-height:40px;width:600px;overflow:auto;border:#cecece 1px solid;padding:5px;"&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;{&amp;quot;&lt;span style="color:#8b0000;"&gt;Body&lt;/span&gt;&amp;quot;:{&amp;quot;&lt;span style="color:#8b0000;"&gt;PageIndex&lt;/span&gt;&amp;quot;:0,&amp;quot;&lt;span style="color:#8b0000;"&gt;PageSize&lt;/span&gt;&amp;quot;:5}}&lt;/pre&gt;&lt;/pre&gt;&lt;p&gt;Hmm, seems like the ASP.Net AJAX proxy automagically, adds the wrapping Body property.&amp;nbsp; I didn&amp;rsquo;t put that in my JSON, ASP.Net AJAX did, and here is the complete error message:&lt;/p&gt;&lt;pre style="background-color:#fbfbfb;min-height:40px;width:600px;overflow:auto;border:#cecece 1px solid;padding:5px;"&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;{&amp;quot;&lt;span style="color:#8b0000;"&gt;ExceptionDetail&lt;/span&gt;&amp;quot;:{&amp;quot;&lt;span style="color:#8b0000;"&gt;HelpLink&lt;/span&gt;&amp;quot;:&lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;,&amp;quot;&lt;span style="color:#8b0000;"&gt;InnerException&lt;/span&gt;&amp;quot;:
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;{&amp;quot;&lt;span style="color:#8b0000;"&gt;HelpLink&lt;/span&gt;&amp;quot;:&lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;,&amp;quot;&lt;span style="color:#8b0000;"&gt;InnerException&lt;/span&gt;&amp;quot;:&lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;,
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;&amp;quot;&lt;span style="color:#8b0000;"&gt;Message&lt;/span&gt;&amp;quot;:&amp;quot;&lt;span style="color:#8b0000;"&gt;The data contract type 
&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;&amp;#39;w00ton.MembershipAdministration.ServiceContracts.DataContracts.GetAllUsersByPageRequestBody&amp;#39;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt; cannot be deserialized because the required data members &amp;#39;PageIndex, PageSize&amp;#39; 
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;were not found.&amp;quot;&lt;/pre&gt;&lt;/pre&gt;&lt;p&gt;So, it seems as though the JSON Serializer isn&amp;rsquo;t expecting the wrapping Body property, and chokes because it can&amp;rsquo;t find the 2 properties in the GetAllUsersByPageRequestBody DataContract.&amp;nbsp;&amp;nbsp; But I didn&amp;rsquo;t add the wrapping Body property, the ASP.Net AJAX code gen&amp;rsquo;d that in the proxy.&amp;nbsp; So to prove it, I decide to call Sys.Net.WebServiceProxy directly, instead of going thru the generated version:&lt;/p&gt;&lt;pre style="background-color:#fbfbfb;min-height:40px;width:600px;overflow:auto;border:#cecece 1px solid;padding:5px;"&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; GetAllUsersByPageDirect(pageIndex, pageSize)
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;{
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;    &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; tn = { &amp;quot;&lt;span style="color:#8b0000;"&gt;PageIndex&lt;/span&gt;&amp;quot;: pageIndex, &amp;quot;&lt;span style="color:#8b0000;"&gt;PageSize&lt;/span&gt;&amp;quot;: pageSize };
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;    Sys.Net.WebServiceProxy.invoke(&amp;#39;../UserAdmin.svc&amp;#39;, &amp;#39;GetAllUsersByPage&amp;#39;, &lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;, tn,
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;        &lt;span style="color:#0000ff;"&gt;function&lt;/span&gt;(GetAllUsersByPageResponse)
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;        {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;            &lt;span style="color:#0000ff;"&gt;alert&lt;/span&gt;(GetAllUsersByPageResponse);
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;        }, onPageError, &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;, 1000
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;    );
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;} &lt;/pre&gt;&lt;/pre&gt;&lt;p&gt;And sure enough, it works!&lt;/p&gt;&lt;p&gt;So, I don&amp;rsquo;t know if I&amp;rsquo;m doing something wrong, because I&amp;rsquo;d expect that the MessageContract style would work with ASP.Net AJAX and JSON.&amp;nbsp; I&amp;rsquo;d at least expect that someone else has bumped into this issue, but I can&amp;rsquo;t seem to find a blog entry or a question on a public newsgroup or discussion list.&amp;nbsp; All I know is that I got it working with ASP.Net AJAX by skipping the code generated proxy, and that if you want to use jQuery&amp;rsquo;s AJAX&amp;nbsp; the code is just about the same as the direct call in ASP.Net AJAX (using Rick&amp;rsquo;s ServiceProxy).&lt;/p&gt;&lt;pre style="background-color:#fbfbfb;min-height:40px;width:600px;overflow:auto;border:#cecece 1px solid;padding:5px;"&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; GetAllUsersByPage(pageIndex, pageSize) {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;    UserAdminProxy.invoke(&amp;quot;&lt;span style="color:#8b0000;"&gt;GetAllUsersByPage&lt;/span&gt;&amp;quot;,
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;                    {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;                        PageIndex: pageIndex,
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;                        PageSize: pageSize     
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;                    }
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;                    ,
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;                    &lt;span style="color:#0000ff;"&gt;function&lt;/span&gt;(FindUsersByNameResponse) {
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;                        &lt;span style="color:#008000;"&gt;// your code here&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;                    },
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;                    onPageError);
&lt;/pre&gt;&lt;pre style="background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,'Courier New',courier,monospace;font-size:10px;"&gt;}&lt;/pre&gt;&lt;/pre&gt;&lt;p&gt;Just to prove that I wasn&amp;rsquo;t going insane, I rewrote the code using just DataContracts and no MessageContracts (just using the GetAllUsersByPageRequestBody) and sure enough, you do need to wrap the properties in GetAllUsersByPageRequestBody with a property of the same name as the parameter name used in the ServiceContract (which makes total sense, because that is the way every AJAX and WCF sample is written).&amp;nbsp; &lt;/p&gt;&lt;p&gt;The key to getting this to work is knowing that when using MessageContracts the WCF JSON Serializer, it doesn&amp;rsquo;t behave the same way as if you use just DataContracts.&amp;nbsp; It skips the Message and the MessageBody in both the request and the response (so do add them in or expect them in a response).&lt;/p&gt;&lt;p&gt;This sample code can be &lt;a href="http://cid-2839b6e34c142198.skydrive.live.com/self.aspx/.Public/Wcf%7C_And%7C_jQuery%7C_NJDotNetVersion.zip" target="_blank"&gt;found here&lt;/a&gt; along with a presentation on using WCF &amp;amp; jQuery with WebForms.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://donxml.com/allthingstechie/archive/2009/04/10/The-Tale-of-WCF_2C00_-MessageContract_2C00_-and-JSON.aspx&amp;amp;;subject=The+Tale+of+WCF%2c+MessageContract%2c+and+JSON" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2009/04/10/The-Tale-of-WCF_2C00_-MessageContract_2C00_-and-JSON.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://donxml.com/allthingstechie/archive/2009/04/10/The-Tale-of-WCF_2C00_-MessageContract_2C00_-and-JSON.aspx&amp;amp;;title=The+Tale+of+WCF%2c+MessageContract%2c+and+JSON" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2009/04/10/The-Tale-of-WCF_2C00_-MessageContract_2C00_-and-JSON.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://donxml.com/allthingstechie/archive/2009/04/10/The-Tale-of-WCF_2C00_-MessageContract_2C00_-and-JSON.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2009/04/10/The-Tale-of-WCF_2C00_-MessageContract_2C00_-and-JSON.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://donxml.com/allthingstechie/archive/2009/04/10/The-Tale-of-WCF_2C00_-MessageContract_2C00_-and-JSON.aspx&amp;amp;title=The+Tale+of+WCF%2c+MessageContract%2c+and+JSON" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2009/04/10/The-Tale-of-WCF_2C00_-MessageContract_2C00_-and-JSON.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://donxml.com/allthingstechie/archive/2009/04/10/The-Tale-of-WCF_2C00_-MessageContract_2C00_-and-JSON.aspx&amp;amp;;title=The+Tale+of+WCF%2c+MessageContract%2c+and+JSON" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2009/04/10/The-Tale-of-WCF_2C00_-MessageContract_2C00_-and-JSON.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://donxml.com/allthingstechie/archive/2009/04/10/The-Tale-of-WCF_2C00_-MessageContract_2C00_-and-JSON.aspx&amp;amp;;title=The+Tale+of+WCF%2c+MessageContract%2c+and+JSON&amp;amp;;top=1" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2009/04/10/The-Tale-of-WCF_2C00_-MessageContract_2C00_-and-JSON.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://donxml.com/aggbug.aspx?PostID=3694" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?a=GjwXxMarptc:ioHF-qdF9QE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?a=GjwXxMarptc:ioHF-qdF9QE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DonXmlAllThingsTechie/~4/GjwXxMarptc" height="1" width="1"/&gt;</content><author><name>donxml</name><uri>http://donxml.com/members/donxml.aspx</uri></author><feedburner:origLink>http://donxml.com/allthingstechie/archive/2009/04/10/The-Tale-of-WCF_2C00_-MessageContract_2C00_-and-JSON.aspx</feedburner:origLink></entry><entry><title>PDC 2008 Session Calendar Synchronization Tip</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DonXmlAllThingsTechie/~3/mQysWmundzo/PDC-2008-Session-Calendar-Synchronization-Tip.aspx" /><id>http://donxml.com/allthingstechie/archive/2008/10/24/PDC-2008-Session-Calendar-Synchronization-Tip.aspx</id><published>2008-10-24T13:35:55Z</published><updated>2008-10-24T13:35:55Z</updated><content type="html">&lt;p&gt;If you are attending &lt;a href="http://www.microsoftpdc.com/" target="_blank"&gt;PDC 2008&lt;/a&gt;, you may have noticed that on the &lt;a href="https://sessions.microsoftpdc.com/timeline.aspx" target="_blank"&gt;Sessions page&lt;/a&gt;, if you log in, you can chose the sessions you are interested in attending, along with a link so you can add it to your favorite calendar program.&amp;#160; The only problem is that one of my favorite calendar programs (Google Calendar) will throw an parsing error if you try to import it.&amp;#160; But, Outlook 2007 doesn’t seem to have a problem with it.&amp;#160; So I have a solution, just use &lt;a href="http://www.syncmycal.com/" target="_blank"&gt;SyncMyCal&lt;/a&gt;.&amp;#160; Scott Hanselman turned me onto this inexpensive tool, and I’ve got to say, it would be hard to live without it.&amp;#160; One of my problems with the way that Outlook subscribes to calendar feeds is that it create a brand new calendar in Outlook, and there isn’t an easy way to merge them with you main calendar.&amp;#160; So, what I do use SyncMyCal to handle the merges (plus I grant my family access to my Google Calendar, so they know what I’m up to).&lt;/p&gt;  &lt;p&gt;So here is the setup, Outlook imports my PDC Session Calendar.&amp;#160; I have SyncMyCal setup to push that calendar to my main Google Calendar.&amp;#160; Then I have SyncMyCal merge my main Google Calendar with my main Outlook Calendar.&amp;#160; If I wanted to, I could have sync’d the Outlook PDC Calendar to a new Google PDC Calendar, and then pull then merge that with my main Outlook Calendar, setting the category and even labeling them with a color, but I decided that was a little much.&lt;/p&gt;  &lt;p&gt;Once that is done, then I can sync my Outlook calendar with my phone, and I’m all set.&amp;#160; Got to love technology ;)&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://donxml.com/allthingstechie/archive/2008/10/24/PDC-2008-Session-Calendar-Synchronization-Tip.aspx&amp;amp;;subject=PDC+2008+Session+Calendar+Synchronization+Tip" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/10/24/PDC-2008-Session-Calendar-Synchronization-Tip.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://donxml.com/allthingstechie/archive/2008/10/24/PDC-2008-Session-Calendar-Synchronization-Tip.aspx&amp;amp;;title=PDC+2008+Session+Calendar+Synchronization+Tip" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/10/24/PDC-2008-Session-Calendar-Synchronization-Tip.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://donxml.com/allthingstechie/archive/2008/10/24/PDC-2008-Session-Calendar-Synchronization-Tip.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/10/24/PDC-2008-Session-Calendar-Synchronization-Tip.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://donxml.com/allthingstechie/archive/2008/10/24/PDC-2008-Session-Calendar-Synchronization-Tip.aspx&amp;amp;title=PDC+2008+Session+Calendar+Synchronization+Tip" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/10/24/PDC-2008-Session-Calendar-Synchronization-Tip.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://donxml.com/allthingstechie/archive/2008/10/24/PDC-2008-Session-Calendar-Synchronization-Tip.aspx&amp;amp;;title=PDC+2008+Session+Calendar+Synchronization+Tip" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/10/24/PDC-2008-Session-Calendar-Synchronization-Tip.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://donxml.com/allthingstechie/archive/2008/10/24/PDC-2008-Session-Calendar-Synchronization-Tip.aspx&amp;amp;;title=PDC+2008+Session+Calendar+Synchronization+Tip&amp;amp;;top=1" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/10/24/PDC-2008-Session-Calendar-Synchronization-Tip.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://donxml.com/aggbug.aspx?PostID=3663" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?a=mQysWmundzo:iZiiRbEHYg4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?a=mQysWmundzo:iZiiRbEHYg4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DonXmlAllThingsTechie/~4/mQysWmundzo" height="1" width="1"/&gt;</content><author><name>donxml</name><uri>http://donxml.com/members/donxml.aspx</uri></author><category term="PDC" scheme="http://donxml.com/allthingstechie/archive/tags/PDC/default.aspx" /><category term="Tech Ramblings" scheme="http://donxml.com/allthingstechie/archive/tags/Tech+Ramblings/default.aspx" /><feedburner:origLink>http://donxml.com/allthingstechie/archive/2008/10/24/PDC-2008-Session-Calendar-Synchronization-Tip.aspx</feedburner:origLink></entry><entry><title>Just Say No to Console App Demos</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DonXmlAllThingsTechie/~3/I2_ANDSNnUs/Just-Say-No-to-Console-App-Demos.aspx" /><id>http://donxml.com/allthingstechie/archive/2008/10/24/Just-Say-No-to-Console-App-Demos.aspx</id><published>2008-10-24T12:51:15Z</published><updated>2008-10-24T12:51:15Z</updated><content type="html">&lt;p&gt;It is a major pet peeve of mine; presenters that use Console Application Projects to demo some non-UI code.&amp;#160; That’s so 1990’s.&amp;#160; So, what should a presenter use?&amp;#160; Well, Test Projects, of course!&amp;#160; It is something that I think should be added to Scott Hanselman’s &lt;a href="http://www.hanselman.com/blog/11TopTipsForASuccessfulTechnicalPresentation.aspx" target="_blank"&gt;11 Top Tips for a Successful Technical Presentation&lt;/a&gt; (it sort of fits under Tip # 8).&amp;#160; At one time, when I would approach a known speaker about using Test Projects, the typical answer was that the majority of .Net developers don’t install NUnit, and MSTest is only available in Team System, so they would be using a tool that the masses don’t use.&amp;#160; My reply was that more developers should be using Test Projects, and we as presenters could influence them if we would just use them in or demos.&amp;#160;&amp;#160; Well, now that MSTest is now available in everything but the Express versions, that excuse is shot.&amp;#160; So, it comes down to old habits, and those are hard to break without a little incentive.&amp;#160; To provide that incentive, what I’d suggest that you do is the next time you are in a session where the presenter uses a console project to demo some code, when you fill out the eval form, leave a comment that would would prefer that they used a Test Project instead of a console application.&amp;#160; As a tech presenter, I really appreciate constructive comments from attendees, and I’m sure that if the presenter got enough requests to use Test Projects, they will make sure to get comfortable using them instead of console apps in their demos.&lt;/p&gt;  &lt;p&gt;I’ll be at PDC 2008, and I’ll be looking out for presentations that use console app demos, making sure to leave a comment in the eval.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://donxml.com/allthingstechie/archive/2008/10/24/Just-Say-No-to-Console-App-Demos.aspx&amp;amp;;subject=Just+Say+No+to+Console+App+Demos" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/10/24/Just-Say-No-to-Console-App-Demos.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://donxml.com/allthingstechie/archive/2008/10/24/Just-Say-No-to-Console-App-Demos.aspx&amp;amp;;title=Just+Say+No+to+Console+App+Demos" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/10/24/Just-Say-No-to-Console-App-Demos.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://donxml.com/allthingstechie/archive/2008/10/24/Just-Say-No-to-Console-App-Demos.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/10/24/Just-Say-No-to-Console-App-Demos.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://donxml.com/allthingstechie/archive/2008/10/24/Just-Say-No-to-Console-App-Demos.aspx&amp;amp;title=Just+Say+No+to+Console+App+Demos" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/10/24/Just-Say-No-to-Console-App-Demos.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://donxml.com/allthingstechie/archive/2008/10/24/Just-Say-No-to-Console-App-Demos.aspx&amp;amp;;title=Just+Say+No+to+Console+App+Demos" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/10/24/Just-Say-No-to-Console-App-Demos.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://donxml.com/allthingstechie/archive/2008/10/24/Just-Say-No-to-Console-App-Demos.aspx&amp;amp;;title=Just+Say+No+to+Console+App+Demos&amp;amp;;top=1" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/10/24/Just-Say-No-to-Console-App-Demos.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://donxml.com/aggbug.aspx?PostID=3661" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?a=I2_ANDSNnUs:dQy7JT5MDMI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?a=I2_ANDSNnUs:dQy7JT5MDMI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DonXmlAllThingsTechie/~4/I2_ANDSNnUs" height="1" width="1"/&gt;</content><author><name>donxml</name><uri>http://donxml.com/members/donxml.aspx</uri></author><category term=".Net" scheme="http://donxml.com/allthingstechie/archive/tags/.Net/default.aspx" /><category term="PDC" scheme="http://donxml.com/allthingstechie/archive/tags/PDC/default.aspx" /><feedburner:origLink>http://donxml.com/allthingstechie/archive/2008/10/24/Just-Say-No-to-Console-App-Demos.aspx</feedburner:origLink></entry><entry><title>Static Code Analysis and Custom FxCop Rules for Enterprise ASP.Net Development</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DonXmlAllThingsTechie/~3/3vMEE8VWUqU/Static-Code-Analysis-and-Custom-FxCop-Rules-for-Enterprise-ASP.Net-Development.aspx" /><id>http://donxml.com/allthingstechie/archive/2008/06/18/Static-Code-Analysis-and-Custom-FxCop-Rules-for-Enterprise-ASP.Net-Development.aspx</id><published>2008-06-19T00:40:31Z</published><updated>2008-06-19T00:40:31Z</updated><content type="html">&lt;p&gt;Over the last couple months I've been doing a bit of work with &lt;a href="http://msdn.microsoft.com/en-us/library/bb429476(VS.80).aspx" target="_blank"&gt;FxCop&lt;/a&gt; and Static Code Analysis.&amp;#160; If you remember playing with FxCop back in the day, it was a cool tool to check for possible design, localization, performance, and security issues with your .Net code.&amp;#160; But, for most of us, that's where things stopped, playing with a cool tool and then forgetting about it.&amp;#160; Sure, Microsoft built it into VS 2005 as Visual Studio Code Analysis, but still most developers forget about it, and never turn it on.&amp;#160; Well, I've been on a Continuous Integration kick for over a year now (with &lt;a href="http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET" target="_blank"&gt;CruiseControl.Net&lt;/a&gt; or TFS 2008, depending on the client), and it is easy to an things like FxCop and &lt;a href="http://www.ndepend.com/" target="_blank"&gt;NDepend&lt;/a&gt; to your build process.&amp;#160; Yes, there are a lot of pre-built rules out there, but for most of us, some of the rules are extremely valuable, but some are just annoying, and there are still a lot of personal best practices that you have developed over the years that don't have rules.&amp;#160; &lt;/p&gt;  &lt;p&gt;Well, that is where writing your own FxCop rules can come in handy.&amp;#160; It isn't the easiest thing to work with, since there is no official documentation of Microsoft.Cci (which is the heart and soul of FxCop).&amp;#160; But, Jason Kresowaty has created some &lt;a href="http://www.binarycoder.net/fxcop/html/index.html" target="_blank"&gt;helpful documentation&lt;/a&gt; (although not complete by any means), and he also created the extremely helpful &lt;a href="http://www.binarycoder.net/fxcop/" target="_blank"&gt;Introspector tool&lt;/a&gt; to go along with spelunking assemblies using the introspection object model.&amp;#160; After writing a couple of my own custom rules, I figured I should poke around and see if anyone has released some FxCop rule libraries, checking out CodePlex and SourceForge, but I didn't find any.&amp;#160; I did find one blog post by Richard Banks on a great &lt;a href="http://richardsbraindump.blogspot.com/2008/02/how-to-create-wcf-custom-code-analysis.html" target="_blank"&gt;WCF FxCop rule example, EnsureFaultContractsAreDeclared&lt;/a&gt;, and sure, the Patterns &amp;amp; Practices team releases custom rules as part of their Software Factories, but I thought that there would be more out there.&amp;#160; It seems like something that would be perfect for groups like ASP Insiders, Sharepoint MVPs, Connected Systems MVPs, etc. and they could band together and come up with some good rules to go along with all the best practices we seem to come up with.&lt;/p&gt;  &lt;p&gt;So, I'll try to start this thing rolling, and try to put together a bunch of rules around best practices for building Enterprise-ready ASP.Net applications.&amp;#160; But I can't do it alone, so I'm asking the community to help me out, and either leave their own ASP.Net rules as comments, or post them up on their blog (if you have one, and link back to this post).&amp;#160; I'll document them, and if we get enough traction, I'll start up a CodePlex project where we can coordinate this.&amp;#160; Here's an example:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Rule&lt;/strong&gt;: EnsureAspSessionVariablesAreSerializable       &lt;br /&gt;&lt;strong&gt;Name&lt;/strong&gt; - Asp.Net Session variables must be marked serializable      &lt;br /&gt;&lt;strong&gt;Description&lt;/strong&gt;: All session variables must be marked serializable if you will be using a SessionStateMode other than inproc      &lt;br /&gt;&lt;strong&gt;Resolution&lt;/strong&gt;: Mark the variable to be stored in session with the Serializable attribute&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I'm sure others have similar rules, that they use implicitly, and I'd like to gather them up, put them into rule libraries and then publish them on CodePlex.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://donxml.com/allthingstechie/archive/2008/06/18/Static-Code-Analysis-and-Custom-FxCop-Rules-for-Enterprise-ASP.Net-Development.aspx&amp;amp;;subject=Static+Code+Analysis+and+Custom+FxCop+Rules+for+Enterprise+ASP.Net+Development" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/06/18/Static-Code-Analysis-and-Custom-FxCop-Rules-for-Enterprise-ASP.Net-Development.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://donxml.com/allthingstechie/archive/2008/06/18/Static-Code-Analysis-and-Custom-FxCop-Rules-for-Enterprise-ASP.Net-Development.aspx&amp;amp;;title=Static+Code+Analysis+and+Custom+FxCop+Rules+for+Enterprise+ASP.Net+Development" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/06/18/Static-Code-Analysis-and-Custom-FxCop-Rules-for-Enterprise-ASP.Net-Development.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://donxml.com/allthingstechie/archive/2008/06/18/Static-Code-Analysis-and-Custom-FxCop-Rules-for-Enterprise-ASP.Net-Development.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/06/18/Static-Code-Analysis-and-Custom-FxCop-Rules-for-Enterprise-ASP.Net-Development.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://donxml.com/allthingstechie/archive/2008/06/18/Static-Code-Analysis-and-Custom-FxCop-Rules-for-Enterprise-ASP.Net-Development.aspx&amp;amp;title=Static+Code+Analysis+and+Custom+FxCop+Rules+for+Enterprise+ASP.Net+Development" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/06/18/Static-Code-Analysis-and-Custom-FxCop-Rules-for-Enterprise-ASP.Net-Development.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://donxml.com/allthingstechie/archive/2008/06/18/Static-Code-Analysis-and-Custom-FxCop-Rules-for-Enterprise-ASP.Net-Development.aspx&amp;amp;;title=Static+Code+Analysis+and+Custom+FxCop+Rules+for+Enterprise+ASP.Net+Development" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/06/18/Static-Code-Analysis-and-Custom-FxCop-Rules-for-Enterprise-ASP.Net-Development.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://donxml.com/allthingstechie/archive/2008/06/18/Static-Code-Analysis-and-Custom-FxCop-Rules-for-Enterprise-ASP.Net-Development.aspx&amp;amp;;title=Static+Code+Analysis+and+Custom+FxCop+Rules+for+Enterprise+ASP.Net+Development&amp;amp;;top=1" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/06/18/Static-Code-Analysis-and-Custom-FxCop-Rules-for-Enterprise-ASP.Net-Development.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://donxml.com/aggbug.aspx?PostID=3616" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?a=3vMEE8VWUqU:tf1Knqixuco:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?a=3vMEE8VWUqU:tf1Knqixuco:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DonXmlAllThingsTechie/~4/3vMEE8VWUqU" height="1" width="1"/&gt;</content><author><name>donxml</name><uri>http://donxml.com/members/donxml.aspx</uri></author><category term=".Net" scheme="http://donxml.com/allthingstechie/archive/tags/.Net/default.aspx" /><category term="Open Source" scheme="http://donxml.com/allthingstechie/archive/tags/Open+Source/default.aspx" /><feedburner:origLink>http://donxml.com/allthingstechie/archive/2008/06/18/Static-Code-Analysis-and-Custom-FxCop-Rules-for-Enterprise-ASP.Net-Development.aspx</feedburner:origLink></entry><entry><title>Cache Or Session State - Similar But Different</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DonXmlAllThingsTechie/~3/8Q8f_gZxTlc/Cache-Or-Session-State-_2D00_-Similar-But-Different.aspx" /><id>http://donxml.com/allthingstechie/archive/2008/06/06/Cache-Or-Session-State-_2D00_-Similar-But-Different.aspx</id><published>2008-06-06T21:32:52Z</published><updated>2008-06-06T21:32:52Z</updated><content type="html">&lt;p&gt;This week at TechEd Microsoft announce the &lt;a href="http://msdn.microsoft.com/en-us/data/cc655792.aspx" target="_blank"&gt;Velocity project&lt;/a&gt;, a distributed in-memory object caching system, which got folks like &lt;a href="http://www.25hoursaday.com/weblog/2008/06/06/VelocityADistributedInMemoryCacheFromMicrosoft.aspx" target="_blank"&gt;Dare&lt;/a&gt; and &lt;a href="http://simpable.com/code/velocity/" target="_blank"&gt;ScottW&lt;/a&gt; talking about using a distributed caching solution for boosting the performance of web sites. That got me thinking more about the differences between Cache and Session State.&amp;#160; Although they seem to be the same, and often caching solutions are used for storing session data, I'm not a big fan of putting session in a cache solution (and I really hate putting session in a relational database, since there is nothing relational about the data).&amp;#160; But before I describe my preferred solution, let's define the terms:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Cache&lt;/strong&gt; (via &lt;a href="http://en.wikipedia.org/wiki/Cache" target="_blank"&gt;Wikipedia&lt;/a&gt;) - a cache is a collection of data duplicating original values stored elsewhere or computed earlier, where the original data is expensive to fetch (owing to longer access time) or to compute, compared to the cost of reading the cache. In other words, a cache is a temporary storage area where frequently accessed data can be stored for rapid access. Once the data is stored in the cache, future use can be made by accessing the cached copy rather than re-fetching or recomputing the original data, so that the average access time is shorter. Cache, therefore, helps expedite data access that the CPU would otherwise need to fetch from main memory.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Session&lt;/strong&gt; (via &lt;a href="http://en.wikipedia.org/wiki/Session_%28computer_science%29" target="_blank"&gt;Wikipedia&lt;/a&gt;) - a session is a semi-permanent interactive information exchange, also known as a dialogue, a conversation or a meeting, between two or more communicating devices, or between a computer and user (see Login session). A session is set up or established at a certain point in time, and torn down at a later point in time. An established communication session may involve more than one message in each direction. A session is typically, but not always, stateful, meaning that at least one of the communicating parts need to save information about the session history in order to be able to communicate, as opposed to stateless communication, where the communication consists of independent requests with responses.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;HTTP session token&lt;/strong&gt; (via &lt;a href="http://en.wikipedia.org/wiki/Session_%28computer_science%29" target="_blank"&gt;Wikipedia&lt;/a&gt;) - A session token is a unique identifier (usually in the form of a hash generated by a hash function) that is generated and sent from a server to a client to identify the current interaction session. The client usually stores and sends the token as an HTTP cookie and/or sends it as a parameter in GET or POST queries. The reason to use session tokens is that the client only has to handle the identifier (a small piece of data which is otherwise meaningless and thus presents no security risk) - all session data is stored on the server (usually in a database, to which the client does not have direct access) linked to that identifier. Examples of the names that some programming languages use when naming their cookie include JSESSIONID (JSP), PHPSESSID (PHP), and ASPSESSIONID (Microsoft ASP). &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;As the Wikipedia article mentioned, session data is usually stored in a database, which IMHO is the wrong thing to do.&amp;#160; So, you may think that I'd prefer to use a Distributed Cache, and Velocity does just that and lists it as one of its key features:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Provides tight integration with ASP.NET to be able to cache ASP.NET session data in the cache without having to write it to source databases. It can also be used as a cache for application data to be able to cache application data across the entire Web farm.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;But, IMHO, using a caching engine for session, although better than a database, is still the wrong implementation for the problem.&amp;#160; I've mentioned before (but never in my blog), that it seems as though a message solution is a much better implementation for session data.&amp;#160; You see, what you are really doing when you writing some data out to session in a stateless system is sending a message to a future version of yourself.&amp;#160; Images of Star Trek: The Next Generation episode &amp;quot;&lt;a href="http://en.wikipedia.org/wiki/USS_Bozeman" target="_blank"&gt;Cause and Effect&lt;/a&gt;&amp;quot; come to mind.&amp;#160; In that episode, the Enterprise is stuck in a time loop, where it keeps get destroyed, until Data sends a message to a future version of himself, and breaks the loop.&amp;#160; I learned the trick of using Message Queues for Session Data back in my mainframe days, and I've found that if something scaled for the mainframe, using the same techniques on other platforms is usually the best way.&amp;#160; Back on the Mainframe, CICS is the transaction service used in online systems, and works in a stateless manner, very similar to the web.&amp;#160; To send data between each instance of a screen, one of the primary techniques is to use a Temp Storage Queue, and a queue is created for each session, based on the session id.&lt;/p&gt;  &lt;p&gt;I've always wanted to try to do the same thing with ASP.Net, using MSMQ as the Message Queue, but until MSMQ 4.0 (released with Vista and Win2k8 Server), it really wasn't feasible.&amp;#160; Creating a new queue for each ASP.Net session wasn't a simple and efficient thing to do, so I never tried it.&amp;#160; With MSMQ 4.0, they have added a subqueues, which are implicitly created local queues that are logical partitions of a physical queue.&amp;#160; This way, I can create one or more message queues for an ASP.Net application, and easily have them &amp;quot;indexed&amp;quot; by a sessionid.&amp;#160; The downside of using MSMQ is that very few companies have a network admin staff that know how to support MSMQ.&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;I always wondered why the ASP.Net team never released a MSMQ session provider, so I'm going to have a go at it and see what sort of perf gains I can get over using SQL Server Mode, or maybe even Out-of-process Mode.&lt;/p&gt;  &lt;p&gt;The first issue I've run across is that System.Messaging wasn't updated in .Net 3.5 to take advantage of MSMQ 4.0.&amp;#160; Reading from a subqueue is the same as reading from a regular queue, but you can't write to a subqueue using the System.Messaging namespace.&amp;#160; So, I'll have to implement that myself, and I'll publish the code.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://donxml.com/allthingstechie/archive/2008/06/06/Cache-Or-Session-State-_2D00_-Similar-But-Different.aspx&amp;amp;;subject=Cache+Or+Session+State+-+Similar+But+Different" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/06/06/Cache-Or-Session-State-_2D00_-Similar-But-Different.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://donxml.com/allthingstechie/archive/2008/06/06/Cache-Or-Session-State-_2D00_-Similar-But-Different.aspx&amp;amp;;title=Cache+Or+Session+State+-+Similar+But+Different" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/06/06/Cache-Or-Session-State-_2D00_-Similar-But-Different.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://donxml.com/allthingstechie/archive/2008/06/06/Cache-Or-Session-State-_2D00_-Similar-But-Different.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/06/06/Cache-Or-Session-State-_2D00_-Similar-But-Different.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://donxml.com/allthingstechie/archive/2008/06/06/Cache-Or-Session-State-_2D00_-Similar-But-Different.aspx&amp;amp;title=Cache+Or+Session+State+-+Similar+But+Different" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/06/06/Cache-Or-Session-State-_2D00_-Similar-But-Different.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://donxml.com/allthingstechie/archive/2008/06/06/Cache-Or-Session-State-_2D00_-Similar-But-Different.aspx&amp;amp;;title=Cache+Or+Session+State+-+Similar+But+Different" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/06/06/Cache-Or-Session-State-_2D00_-Similar-But-Different.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://donxml.com/allthingstechie/archive/2008/06/06/Cache-Or-Session-State-_2D00_-Similar-But-Different.aspx&amp;amp;;title=Cache+Or+Session+State+-+Similar+But+Different&amp;amp;;top=1" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/06/06/Cache-Or-Session-State-_2D00_-Similar-But-Different.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://donxml.com/aggbug.aspx?PostID=3600" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?a=8Q8f_gZxTlc:bJQF7AIx4hw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?a=8Q8f_gZxTlc:bJQF7AIx4hw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DonXmlAllThingsTechie/~4/8Q8f_gZxTlc" height="1" width="1"/&gt;</content><author><name>donxml</name><uri>http://donxml.com/members/donxml.aspx</uri></author><feedburner:origLink>http://donxml.com/allthingstechie/archive/2008/06/06/Cache-Or-Session-State-_2D00_-Similar-But-Different.aspx</feedburner:origLink></entry><entry><title>New York City IT Architect Regional Conference</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DonXmlAllThingsTechie/~3/RcvNWyBEkAY/New-York-City-IT-Architect-Regional-Conference.aspx" /><id>http://donxml.com/allthingstechie/archive/2008/04/26/New-York-City-IT-Architect-Regional-Conference.aspx</id><published>2008-04-27T00:49:56Z</published><updated>2008-04-27T00:49:56Z</updated><content type="html">&lt;p&gt;The NYC IASA chapter is holding an &lt;a href="http://www.iasahome.org/web/itarc/nyc" target="_blank"&gt;IT Architect Regional Conference&lt;/a&gt; in New York City on May 22-23 at the NYC Microsoft office.&amp;#160; The speaker list is quite impressive, and has a couple local Microsoft MVPs among the list (Mark Pollack, Ambrose Little and Steve Forte), along with local Microsoft Architect Evangelist, Bill Zack and Keith Pijanowski.&amp;#160; There is a $100 discount if you &lt;a href="http://www.iasahome.org/web/itarc/nyc/registration" target="_blank"&gt;register by April 30th&lt;/a&gt;.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://donxml.com/allthingstechie/archive/2008/04/26/New-York-City-IT-Architect-Regional-Conference.aspx&amp;amp;;subject=New+York+City+IT+Architect+Regional+Conference" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/04/26/New-York-City-IT-Architect-Regional-Conference.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://donxml.com/allthingstechie/archive/2008/04/26/New-York-City-IT-Architect-Regional-Conference.aspx&amp;amp;;title=New+York+City+IT+Architect+Regional+Conference" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/04/26/New-York-City-IT-Architect-Regional-Conference.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://donxml.com/allthingstechie/archive/2008/04/26/New-York-City-IT-Architect-Regional-Conference.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/04/26/New-York-City-IT-Architect-Regional-Conference.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://donxml.com/allthingstechie/archive/2008/04/26/New-York-City-IT-Architect-Regional-Conference.aspx&amp;amp;title=New+York+City+IT+Architect+Regional+Conference" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/04/26/New-York-City-IT-Architect-Regional-Conference.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://donxml.com/allthingstechie/archive/2008/04/26/New-York-City-IT-Architect-Regional-Conference.aspx&amp;amp;;title=New+York+City+IT+Architect+Regional+Conference" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/04/26/New-York-City-IT-Architect-Regional-Conference.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://donxml.com/allthingstechie/archive/2008/04/26/New-York-City-IT-Architect-Regional-Conference.aspx&amp;amp;;title=New+York+City+IT+Architect+Regional+Conference&amp;amp;;top=1" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/04/26/New-York-City-IT-Architect-Regional-Conference.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://donxml.com/aggbug.aspx?PostID=3570" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?a=RcvNWyBEkAY:NGZqG4TOoys:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?a=RcvNWyBEkAY:NGZqG4TOoys:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DonXmlAllThingsTechie/~4/RcvNWyBEkAY" height="1" width="1"/&gt;</content><author><name>donxml</name><uri>http://donxml.com/members/donxml.aspx</uri></author><feedburner:origLink>http://donxml.com/allthingstechie/archive/2008/04/26/New-York-City-IT-Architect-Regional-Conference.aspx</feedburner:origLink></entry><entry><title>Mixing Object, Functional and Aspect Oriented Programming</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DonXmlAllThingsTechie/~3/F9pfabd3zrw/Mixing-Object_2C00_-Functional-and-Aspect-Oriented-Programming.aspx" /><id>http://donxml.com/allthingstechie/archive/2008/04/20/Mixing-Object_2C00_-Functional-and-Aspect-Oriented-Programming.aspx</id><published>2008-04-21T03:57:58Z</published><updated>2008-04-21T03:57:58Z</updated><content type="html">&lt;p&gt;I spent the last week in Seattle and Redmond, attending both the MVP Summit and the ALT.Net Conference, and spent the majority of time discussing the future of programming, both on the .Net platform and other platforms.&amp;#160; By Saturday night, my brain was pretty much on extreme overload.&amp;#160; One of the things I've been doing a lot of over the last few months is pondering the effect of mixing functional programming with object oriented programming.&amp;#160; I've learned that functional programming twists your developer mindset.&amp;#160; For years, I've been using object oriented programming, and have developed the habit of thinking objects, first.&amp;#160; Functional programming tends to get you thinking in terms of, well, functions, first.&amp;#160; I've also been thinking a lot about Domain Specific Languages (both internal and external), and how they map to our traditional programming paradigms.&amp;#160; So, late last night, my brain popped out this little nugget:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Within a DSL it would be cool if you could map its Nouns to Objects (described via OOP), its Verbs to Functions (described via FP), and its Adjectives and Adverbs to Aspects (via AOP).&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I have to do some research, but does this fit within the definition of a composable language?&amp;#160; I tried to fine a definition of what a composable language, but didn't seem to find one.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://donxml.com/allthingstechie/archive/2008/04/20/Mixing-Object_2C00_-Functional-and-Aspect-Oriented-Programming.aspx&amp;amp;;subject=Mixing+Object%2c+Functional+and+Aspect+Oriented+Programming" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/04/20/Mixing-Object_2C00_-Functional-and-Aspect-Oriented-Programming.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://donxml.com/allthingstechie/archive/2008/04/20/Mixing-Object_2C00_-Functional-and-Aspect-Oriented-Programming.aspx&amp;amp;;title=Mixing+Object%2c+Functional+and+Aspect+Oriented+Programming" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/04/20/Mixing-Object_2C00_-Functional-and-Aspect-Oriented-Programming.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://donxml.com/allthingstechie/archive/2008/04/20/Mixing-Object_2C00_-Functional-and-Aspect-Oriented-Programming.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/04/20/Mixing-Object_2C00_-Functional-and-Aspect-Oriented-Programming.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://donxml.com/allthingstechie/archive/2008/04/20/Mixing-Object_2C00_-Functional-and-Aspect-Oriented-Programming.aspx&amp;amp;title=Mixing+Object%2c+Functional+and+Aspect+Oriented+Programming" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/04/20/Mixing-Object_2C00_-Functional-and-Aspect-Oriented-Programming.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://donxml.com/allthingstechie/archive/2008/04/20/Mixing-Object_2C00_-Functional-and-Aspect-Oriented-Programming.aspx&amp;amp;;title=Mixing+Object%2c+Functional+and+Aspect+Oriented+Programming" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/04/20/Mixing-Object_2C00_-Functional-and-Aspect-Oriented-Programming.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://donxml.com/allthingstechie/archive/2008/04/20/Mixing-Object_2C00_-Functional-and-Aspect-Oriented-Programming.aspx&amp;amp;;title=Mixing+Object%2c+Functional+and+Aspect+Oriented+Programming&amp;amp;;top=1" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/04/20/Mixing-Object_2C00_-Functional-and-Aspect-Oriented-Programming.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://donxml.com/aggbug.aspx?PostID=3561" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?a=F9pfabd3zrw:lDdYlUYrS7s:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?a=F9pfabd3zrw:lDdYlUYrS7s:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DonXmlAllThingsTechie/~4/F9pfabd3zrw" height="1" width="1"/&gt;</content><author><name>donxml</name><uri>http://donxml.com/members/donxml.aspx</uri></author><category term=".Net" scheme="http://donxml.com/allthingstechie/archive/tags/.Net/default.aspx" /><category term=".Net Communities" scheme="http://donxml.com/allthingstechie/archive/tags/.Net+Communities/default.aspx" /><category term="LINQ VBx" scheme="http://donxml.com/allthingstechie/archive/tags/LINQ+VBx/default.aspx" /><feedburner:origLink>http://donxml.com/allthingstechie/archive/2008/04/20/Mixing-Object_2C00_-Functional-and-Aspect-Oriented-Programming.aspx</feedburner:origLink></entry><entry><title>VSLive San Francisco Workshop - LINQ - One Query Syntax To Rule Them All</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DonXmlAllThingsTechie/~3/GZ8sMLWxxT0/VSLive-San-Francisco-Workshop-_2D00_-LINQ-_2D00_-One-Query-Syntax-To-Rule-Them-All.aspx" /><id>http://donxml.com/allthingstechie/archive/2008/03/03/VSLive-San-Francisco-Workshop-_2D00_-LINQ-_2D00_-One-Query-Syntax-To-Rule-Them-All.aspx</id><published>2008-03-03T21:25:34Z</published><updated>2008-03-03T21:25:34Z</updated><content type="html">&lt;p&gt;Since I'm talking about conferences, I should also mention that I'll be giving a full day pre-conference workshop, &lt;a href="http://vslive.com/2008/sf/workshops.aspx#vpr4" target="_blank"&gt;LINQ &amp;#8212; One Query Syntax to Rule Them All&lt;/a&gt; at &lt;a href="http://vslive.com/2008/sf/default.aspx" target="_blank"&gt;VSLive! San Francisco 2008&lt;/a&gt;:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;By now you have probably already heard about LINQ and think it is all about querying SQL Server. Well, yes, with LINQ to SQL you can query SQL Server. But, LINQ is so much more. LINQ extends both C# and Visual Basic with native language syntax for queries, provides class libraries to take advantage of these capabilities, and you can even write your own query provider. In this workshop will cover the basics of how to use LINQ with in memory collections and the language constructs that make LINQ possible (for both C# 3.0 and Visual Basic 9.0). We will then explore the details of LINQ to SQL, LINQ to Entities and LINQ to XML, and even how to build your own query provider. Towards the end of the day we will go into best practices on where, when, how to use and take advantage of LINQ to SQL and LINQ to Entities. This workshop will use both C# 3.0 and Visual Basic 9.0 &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;It has been quite a few years since I've been to San Fran, and unfortunately I will not be there more than a couple days.&amp;#160; Just enough time to fly in for the workshop and have a few beers.&amp;#160; If you'll be there, let me know.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://donxml.com/allthingstechie/archive/2008/03/03/VSLive-San-Francisco-Workshop-_2D00_-LINQ-_2D00_-One-Query-Syntax-To-Rule-Them-All.aspx&amp;amp;;subject=VSLive+San+Francisco+Workshop+-+LINQ+-+One+Query+Syntax+To+Rule+Them+All" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/03/03/VSLive-San-Francisco-Workshop-_2D00_-LINQ-_2D00_-One-Query-Syntax-To-Rule-Them-All.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://donxml.com/allthingstechie/archive/2008/03/03/VSLive-San-Francisco-Workshop-_2D00_-LINQ-_2D00_-One-Query-Syntax-To-Rule-Them-All.aspx&amp;amp;;title=VSLive+San+Francisco+Workshop+-+LINQ+-+One+Query+Syntax+To+Rule+Them+All" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/03/03/VSLive-San-Francisco-Workshop-_2D00_-LINQ-_2D00_-One-Query-Syntax-To-Rule-Them-All.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://donxml.com/allthingstechie/archive/2008/03/03/VSLive-San-Francisco-Workshop-_2D00_-LINQ-_2D00_-One-Query-Syntax-To-Rule-Them-All.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/03/03/VSLive-San-Francisco-Workshop-_2D00_-LINQ-_2D00_-One-Query-Syntax-To-Rule-Them-All.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://donxml.com/allthingstechie/archive/2008/03/03/VSLive-San-Francisco-Workshop-_2D00_-LINQ-_2D00_-One-Query-Syntax-To-Rule-Them-All.aspx&amp;amp;title=VSLive+San+Francisco+Workshop+-+LINQ+-+One+Query+Syntax+To+Rule+Them+All" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/03/03/VSLive-San-Francisco-Workshop-_2D00_-LINQ-_2D00_-One-Query-Syntax-To-Rule-Them-All.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://donxml.com/allthingstechie/archive/2008/03/03/VSLive-San-Francisco-Workshop-_2D00_-LINQ-_2D00_-One-Query-Syntax-To-Rule-Them-All.aspx&amp;amp;;title=VSLive+San+Francisco+Workshop+-+LINQ+-+One+Query+Syntax+To+Rule+Them+All" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/03/03/VSLive-San-Francisco-Workshop-_2D00_-LINQ-_2D00_-One-Query-Syntax-To-Rule-Them-All.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://donxml.com/allthingstechie/archive/2008/03/03/VSLive-San-Francisco-Workshop-_2D00_-LINQ-_2D00_-One-Query-Syntax-To-Rule-Them-All.aspx&amp;amp;;title=VSLive+San+Francisco+Workshop+-+LINQ+-+One+Query+Syntax+To+Rule+Them+All&amp;amp;;top=1" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/03/03/VSLive-San-Francisco-Workshop-_2D00_-LINQ-_2D00_-One-Query-Syntax-To-Rule-Them-All.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://donxml.com/aggbug.aspx?PostID=3544" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?a=GZ8sMLWxxT0:XC5mNrIgQt0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?a=GZ8sMLWxxT0:XC5mNrIgQt0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DonXmlAllThingsTechie/~4/GZ8sMLWxxT0" height="1" width="1"/&gt;</content><author><name>donxml</name><uri>http://donxml.com/members/donxml.aspx</uri></author><category term="LINQ" scheme="http://donxml.com/allthingstechie/archive/tags/LINQ/default.aspx" /><feedburner:origLink>http://donxml.com/allthingstechie/archive/2008/03/03/VSLive-San-Francisco-Workshop-_2D00_-LINQ-_2D00_-One-Query-Syntax-To-Rule-Them-All.aspx</feedburner:origLink></entry><entry><title>Devscovery 2008 - New York City April 1-3</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DonXmlAllThingsTechie/~3/SRQJcOdhcTw/Devscovery-2008-_2D00_-New-York-City-April-1_2D00_3.aspx" /><id>http://donxml.com/allthingstechie/archive/2008/03/03/Devscovery-2008-_2D00_-New-York-City-April-1_2D00_3.aspx</id><published>2008-03-03T21:15:49Z</published><updated>2008-03-03T21:15:49Z</updated><content type="html">&lt;p&gt;I can't believe it is March already.&amp;#160; For those of you in the New York City area, &lt;a href="http://www.devscovery.com/travel.aspx?locationID=1" target="_blank"&gt;Devscovery&lt;/a&gt; be here, April 1st-3rd, and I'll be doing 2 talks, &lt;em&gt;An Introduction to LINQ to SQL&lt;/em&gt;, and &lt;em&gt;An Introduction to LINQ to Entities&lt;/em&gt;.&amp;#160; If you haven't heard about Devscovery, here's the details right from their &lt;a href="http://www.devscovery.com/faqs.aspx" target="_blank"&gt;FAQs&lt;/a&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Devscovery is a three-day multi-track in-depth technical conference produced by Wintellect. In 2008, Infragistics is collocating its user conference expanding Devscovery from 33 sessions to 55 for the same low price of just $900.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Just check out the speakers list:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Andres Aguiar&lt;/li&gt;    &lt;li&gt;Jason Beres&lt;/li&gt;    &lt;li&gt;Roger Dahlman&lt;/li&gt;    &lt;li&gt;Phil Haack&lt;/li&gt;    &lt;li&gt;Scott Hanselman&lt;/li&gt;    &lt;li&gt;Dennis Hurst&lt;/li&gt;    &lt;li&gt;J. Ambrose Little&lt;/li&gt;    &lt;li&gt;Anthony Lombardo&lt;/li&gt;    &lt;li&gt;Paul Mehner&lt;/li&gt;    &lt;li&gt;Jeff Prosise&lt;/li&gt;    &lt;li&gt;Jeffrey Richter&lt;/li&gt;    &lt;li&gt;Walt Ritscher&lt;/li&gt;    &lt;li&gt;John Robbins&lt;/li&gt;    &lt;li&gt;Josh Smith&lt;/li&gt;    &lt;li&gt;Todd Snyder&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Not a bad little list ;)&amp;#160; Should be a lot of fun. &lt;/p&gt;  &lt;p&gt;The down side of the that list, my sessions are at the same time as Walt Ritscher and Jeff Prosise.&amp;#160; It will be hard for me to give a talk and try to sit in on their talks, too ;)&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://donxml.com/allthingstechie/archive/2008/03/03/Devscovery-2008-_2D00_-New-York-City-April-1_2D00_3.aspx&amp;amp;;subject=Devscovery+2008+-+New+York+City+April+1-3" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/03/03/Devscovery-2008-_2D00_-New-York-City-April-1_2D00_3.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://donxml.com/allthingstechie/archive/2008/03/03/Devscovery-2008-_2D00_-New-York-City-April-1_2D00_3.aspx&amp;amp;;title=Devscovery+2008+-+New+York+City+April+1-3" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/03/03/Devscovery-2008-_2D00_-New-York-City-April-1_2D00_3.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://donxml.com/allthingstechie/archive/2008/03/03/Devscovery-2008-_2D00_-New-York-City-April-1_2D00_3.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/03/03/Devscovery-2008-_2D00_-New-York-City-April-1_2D00_3.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://donxml.com/allthingstechie/archive/2008/03/03/Devscovery-2008-_2D00_-New-York-City-April-1_2D00_3.aspx&amp;amp;title=Devscovery+2008+-+New+York+City+April+1-3" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/03/03/Devscovery-2008-_2D00_-New-York-City-April-1_2D00_3.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://donxml.com/allthingstechie/archive/2008/03/03/Devscovery-2008-_2D00_-New-York-City-April-1_2D00_3.aspx&amp;amp;;title=Devscovery+2008+-+New+York+City+April+1-3" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/03/03/Devscovery-2008-_2D00_-New-York-City-April-1_2D00_3.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://donxml.com/allthingstechie/archive/2008/03/03/Devscovery-2008-_2D00_-New-York-City-April-1_2D00_3.aspx&amp;amp;;title=Devscovery+2008+-+New+York+City+April+1-3&amp;amp;;top=1" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/03/03/Devscovery-2008-_2D00_-New-York-City-April-1_2D00_3.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://donxml.com/aggbug.aspx?PostID=3543" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?a=SRQJcOdhcTw:k1WuIQj1icI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?a=SRQJcOdhcTw:k1WuIQj1icI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DonXmlAllThingsTechie/~4/SRQJcOdhcTw" height="1" width="1"/&gt;</content><author><name>donxml</name><uri>http://donxml.com/members/donxml.aspx</uri></author><category term="New Jersey Developer Community Events" scheme="http://donxml.com/allthingstechie/archive/tags/New+Jersey+Developer+Community+Events/default.aspx" /><feedburner:origLink>http://donxml.com/allthingstechie/archive/2008/03/03/Devscovery-2008-_2D00_-New-York-City-April-1_2D00_3.aspx</feedburner:origLink></entry><entry><title>Diskeeper 2008 Professional Review</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DonXmlAllThingsTechie/~3/v0_11Mqsv_0/Diskeeper-2008-Professional-Review.aspx" /><id>http://donxml.com/allthingstechie/archive/2008/03/03/Diskeeper-2008-Professional-Review.aspx</id><published>2008-03-03T15:26:43Z</published><updated>2008-03-03T15:26:43Z</updated><content type="html">&lt;p&gt;&lt;em&gt;Disclaimer - the folks at Diskeeper gave me a free copy of Diskeeper 2008 Pro Premier. But, I've purchased previous versions of their product.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;I've been using &lt;a href="http://www.diskeeper.com/defrag.asp" target="_blank"&gt;Diskeeper&lt;/a&gt; for a couple years now, and I've got to say, I love this product.&amp;#160; Back before Vista was released, I had purchased and installed it on my Win XP Pro machine, and compared to the Windows Defrag utility, well, there is no comparison.&amp;#160; Where Windows Defrag takes forever to run, Diskeeper was finished in no time.&amp;#160; When I put Vista on my laptop, it was going back to the defrag dark ages until I got the new Vista ready version of Diskeeper.&amp;#160; Since then, they came out with Diskeeper 2008, which just keeps improving on a great tool.&lt;/p&gt;  &lt;p&gt;Diskeeper for Home/Home Office comes in &lt;a href="http://www.diskeeper.com/diskeeper/home/diskeeper.asp" target="_blank"&gt;4 versions&lt;/a&gt;, Home, Pro, Pro Premier, and Home Server.&amp;#160; The Home Server edition is something that is going to be sorely needed, a version of a desktop utility that needs to run on a server, but not at the price of a server version.&amp;#160; The Home version is $29.95, and the Home Server version is $69.95, which is a very reasonable price.&amp;#160; When I was beta testing Home Server, one of the issues I had was the price of things like Antivirus and defrag utilities, because it is basically Windows Server, which most desktop OS utilities will not run, and the price of server versions are a lot more than what a hobbyist will want to spend.&lt;/p&gt;  &lt;p&gt;I have a HP 8510p notebook with Vista Ultimate installed, and Diskeeper is one of the first programs I installed.&amp;#160; As a developer, I tend to install and uninstall lots of programs.&amp;#160; Combine that with Source Control and versioning, and my harddrive tends to fragment pretty quickly, so a tool like Diskeeper keeps my drives from getting fragmented and performing up to their potential.&amp;#160; The only issue I have with Diskeeper (and it isn't so much of an issue with Diskeeper) is that it doesn't integrate with my Security/Anti-virus Utility of choice, &lt;a href="http://onecare.live.com/standard/en-us/default.htm" target="_blank"&gt;Windows Live OneCare&lt;/a&gt;.&amp;#160; OneCare likes to schedule &amp;quot;Tune Ups&amp;quot;, which basically consist of running things like virus scans and defrag.&amp;#160; The problem is that OneCare doesn't have a way to let it know that I don't use the Windows Defrag tool, and use Diskeeper instead (OneCare has the same problem with Backup Utilities).&amp;#160; So, it during the tune up, it tries to run the Windows Defrag Utility, which is slow, and doesn't seem to like the way Diskeeper defrags.&amp;#160; I also am not a big fan of the amount of time OneCare takes to scan my disk for viruses, but that is a whole other post (but OneCare is still my favorite Vista Security/Antivirus Utility).&amp;#160; Other than that slight issue, I love Diskeeper.&amp;#160; If you are a developer, or just abuse your harddrive with lots of new/updated/deleted files, Diskeeper is a must.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://donxml.com/allthingstechie/archive/2008/03/03/Diskeeper-2008-Professional-Review.aspx&amp;amp;;subject=Diskeeper+2008+Professional+Review" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/03/03/Diskeeper-2008-Professional-Review.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://donxml.com/allthingstechie/archive/2008/03/03/Diskeeper-2008-Professional-Review.aspx&amp;amp;;title=Diskeeper+2008+Professional+Review" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/03/03/Diskeeper-2008-Professional-Review.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://donxml.com/allthingstechie/archive/2008/03/03/Diskeeper-2008-Professional-Review.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/03/03/Diskeeper-2008-Professional-Review.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://donxml.com/allthingstechie/archive/2008/03/03/Diskeeper-2008-Professional-Review.aspx&amp;amp;title=Diskeeper+2008+Professional+Review" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/03/03/Diskeeper-2008-Professional-Review.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://donxml.com/allthingstechie/archive/2008/03/03/Diskeeper-2008-Professional-Review.aspx&amp;amp;;title=Diskeeper+2008+Professional+Review" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/03/03/Diskeeper-2008-Professional-Review.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://donxml.com/allthingstechie/archive/2008/03/03/Diskeeper-2008-Professional-Review.aspx&amp;amp;;title=Diskeeper+2008+Professional+Review&amp;amp;;top=1" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/03/03/Diskeeper-2008-Professional-Review.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://donxml.com/aggbug.aspx?PostID=3542" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?a=v0_11Mqsv_0:ydoQsQE9vPI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?a=v0_11Mqsv_0:ydoQsQE9vPI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DonXmlAllThingsTechie/~4/v0_11Mqsv_0" height="1" width="1"/&gt;</content><author><name>donxml</name><uri>http://donxml.com/members/donxml.aspx</uri></author><category term="Tech Reviews" scheme="http://donxml.com/allthingstechie/archive/tags/Tech+Reviews/default.aspx" /><feedburner:origLink>http://donxml.com/allthingstechie/archive/2008/03/03/Diskeeper-2008-Professional-Review.aspx</feedburner:origLink></entry><entry><title>Petition To Get Chris Sells To Host Another SellsCon Before The End Of 2008</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DonXmlAllThingsTechie/~3/LqfErjdxiwE/Petition-To-Get-Chris-Sells-To-Host-Another-SellsCon-Before-The-End-Of-2008.aspx" /><id>http://donxml.com/allthingstechie/archive/2008/02/26/Petition-To-Get-Chris-Sells-To-Host-Another-SellsCon-Before-The-End-Of-2008.aspx</id><published>2008-02-27T01:38:09Z</published><updated>2008-02-27T01:38:09Z</updated><content type="html">&lt;p&gt;&lt;a href="http://www.oreillynet.com/pub/au/2354" target="_blank"&gt;M. David Peterson&lt;/a&gt; kickstarted the process to get Chris Sells to host another SellsCon by creating a &lt;a href="http://www.facebook.com/group.php?gid=8303143963" target="_blank"&gt;new Facebook group&lt;/a&gt;.&amp;nbsp; I've got to say, the ALT.Net conference in Austin sort of reminded me of the spirit of a SellsCon (getting a bunch of bright passionate folks into one local for a couple days of deep dives and alcohol).&amp;nbsp; I'm not sure what Chris' schedule looks like for the rest of 2008, but maybe he can squeeze one in, just for old times sake.&amp;nbsp; I've only attended 2 SellCons, but I've got to say, they made a big impact in my professional life.&lt;/p&gt; &lt;p&gt;If Chris throws a SellsCon, I'll be there.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://donxml.com/allthingstechie/archive/2008/02/26/Petition-To-Get-Chris-Sells-To-Host-Another-SellsCon-Before-The-End-Of-2008.aspx&amp;amp;;subject=Petition+To+Get+Chris+Sells+To+Host+Another+SellsCon+Before+The+End+Of+2008" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/02/26/Petition-To-Get-Chris-Sells-To-Host-Another-SellsCon-Before-The-End-Of-2008.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://donxml.com/allthingstechie/archive/2008/02/26/Petition-To-Get-Chris-Sells-To-Host-Another-SellsCon-Before-The-End-Of-2008.aspx&amp;amp;;title=Petition+To+Get+Chris+Sells+To+Host+Another+SellsCon+Before+The+End+Of+2008" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/02/26/Petition-To-Get-Chris-Sells-To-Host-Another-SellsCon-Before-The-End-Of-2008.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://donxml.com/allthingstechie/archive/2008/02/26/Petition-To-Get-Chris-Sells-To-Host-Another-SellsCon-Before-The-End-Of-2008.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/02/26/Petition-To-Get-Chris-Sells-To-Host-Another-SellsCon-Before-The-End-Of-2008.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://donxml.com/allthingstechie/archive/2008/02/26/Petition-To-Get-Chris-Sells-To-Host-Another-SellsCon-Before-The-End-Of-2008.aspx&amp;amp;title=Petition+To+Get+Chris+Sells+To+Host+Another+SellsCon+Before+The+End+Of+2008" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/02/26/Petition-To-Get-Chris-Sells-To-Host-Another-SellsCon-Before-The-End-Of-2008.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://donxml.com/allthingstechie/archive/2008/02/26/Petition-To-Get-Chris-Sells-To-Host-Another-SellsCon-Before-The-End-Of-2008.aspx&amp;amp;;title=Petition+To+Get+Chris+Sells+To+Host+Another+SellsCon+Before+The+End+Of+2008" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/02/26/Petition-To-Get-Chris-Sells-To-Host-Another-SellsCon-Before-The-End-Of-2008.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://donxml.com/allthingstechie/archive/2008/02/26/Petition-To-Get-Chris-Sells-To-Host-Another-SellsCon-Before-The-End-Of-2008.aspx&amp;amp;;title=Petition+To+Get+Chris+Sells+To+Host+Another+SellsCon+Before+The+End+Of+2008&amp;amp;;top=1" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/02/26/Petition-To-Get-Chris-Sells-To-Host-Another-SellsCon-Before-The-End-Of-2008.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://donxml.com/aggbug.aspx?PostID=3538" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?a=LqfErjdxiwE:LLKPkTLAxaw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?a=LqfErjdxiwE:LLKPkTLAxaw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DonXmlAllThingsTechie/~4/LqfErjdxiwE" height="1" width="1"/&gt;</content><author><name>donxml</name><uri>http://donxml.com/members/donxml.aspx</uri></author><category term="XML" scheme="http://donxml.com/allthingstechie/archive/tags/XML/default.aspx" /><feedburner:origLink>http://donxml.com/allthingstechie/archive/2008/02/26/Petition-To-Get-Chris-Sells-To-Host-Another-SellsCon-Before-The-End-Of-2008.aspx</feedburner:origLink></entry><entry><title>Wanted: Developer Version Of Sharepoint</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DonXmlAllThingsTechie/~3/xezV62zaAOM/Wanted_3A00_-Developer-Version-Of-Sharepoint.aspx" /><id>http://donxml.com/allthingstechie/archive/2008/02/23/Wanted_3A00_-Developer-Version-Of-Sharepoint.aspx</id><published>2008-02-23T19:42:56Z</published><updated>2008-02-23T19:42:56Z</updated><content type="html">&lt;p&gt;Bil Simser &lt;a href="http://weblogs.asp.net/bsimser/archive/2008/02/23/do-sharepoint-developers-want-a-developer-version-of-sharepoint.aspx" target="_blank"&gt;asks the question&lt;/a&gt; "Do SharePoint Developers Want a Developer Version of SharePoint?", and I've got to say YES.&amp;nbsp; Yes, Sharepoint desperately needs a version that a developer can use on a desktop OS.&amp;nbsp; As Bil mentions, Biztalk has this, why not Sharepoint?&amp;nbsp; Developing on a Virtual Image (VPC or VMWare) so you can run Win2k3 Server is a pain, and not always possible (I know of some financial firms in the area that do not allow it).&amp;nbsp; If you try really hard, yes you can do some development using a desktop OS and use remote debugging, but all the development tools I've used seem to require Sharepoint to be installed along with Visual Studio.&lt;/p&gt; &lt;p&gt;I was sort of, kind of, hoping that once the process of installing MOSS or WSS 3 on Windows Server 2008 was smoothed out, there would be some sort of announcement that WSS installed on Vista would be possible (and supported).&amp;nbsp; My thought process was, since Server 2k8 is running IIS 7, and Vista is running IIS 7, that it would be possible to install WSS 3 on Vista.&amp;nbsp; Now, I've never tried it, and I'm not sure if there are licensing issues, so I'm not going to try it.&amp;nbsp; It seems as though &lt;a href="http://www.andrewconnell.com/blog/archive/2007/02/26/5995.aspx" target="_blank"&gt;Andrew Connell had the same idea&lt;/a&gt;.&amp;nbsp; But if anyone is listening, yes, I'd really like to have a version of Sharepoint that can be installed on my desktop OS (aka Vista).&amp;nbsp; Until that time, I'll make do with a combination of remote debugging and/or developing on virtual machines.&lt;/p&gt; &lt;p&gt;As always, these are just my opinions and I haven't heard officially or unofficially of any plans to have a developer edition of Sharepoint (or even the inverse, that there was no plans).&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://donxml.com/allthingstechie/archive/2008/02/23/Wanted_3A00_-Developer-Version-Of-Sharepoint.aspx&amp;amp;;subject=Wanted%3a+Developer+Version+Of+Sharepoint" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/02/23/Wanted_3A00_-Developer-Version-Of-Sharepoint.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://donxml.com/allthingstechie/archive/2008/02/23/Wanted_3A00_-Developer-Version-Of-Sharepoint.aspx&amp;amp;;title=Wanted%3a+Developer+Version+Of+Sharepoint" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/02/23/Wanted_3A00_-Developer-Version-Of-Sharepoint.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://donxml.com/allthingstechie/archive/2008/02/23/Wanted_3A00_-Developer-Version-Of-Sharepoint.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/02/23/Wanted_3A00_-Developer-Version-Of-Sharepoint.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://donxml.com/allthingstechie/archive/2008/02/23/Wanted_3A00_-Developer-Version-Of-Sharepoint.aspx&amp;amp;title=Wanted%3a+Developer+Version+Of+Sharepoint" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/02/23/Wanted_3A00_-Developer-Version-Of-Sharepoint.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://donxml.com/allthingstechie/archive/2008/02/23/Wanted_3A00_-Developer-Version-Of-Sharepoint.aspx&amp;amp;;title=Wanted%3a+Developer+Version+Of+Sharepoint" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/02/23/Wanted_3A00_-Developer-Version-Of-Sharepoint.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://donxml.com/allthingstechie/archive/2008/02/23/Wanted_3A00_-Developer-Version-Of-Sharepoint.aspx&amp;amp;;title=Wanted%3a+Developer+Version+Of+Sharepoint&amp;amp;;top=1" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/02/23/Wanted_3A00_-Developer-Version-Of-Sharepoint.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://donxml.com/aggbug.aspx?PostID=3534" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?a=xezV62zaAOM:PcnDiDldyCI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?a=xezV62zaAOM:PcnDiDldyCI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DonXmlAllThingsTechie/~4/xezV62zaAOM" height="1" width="1"/&gt;</content><author><name>donxml</name><uri>http://donxml.com/members/donxml.aspx</uri></author><category term="Sharepoint" scheme="http://donxml.com/allthingstechie/archive/tags/Sharepoint/default.aspx" /><feedburner:origLink>http://donxml.com/allthingstechie/archive/2008/02/23/Wanted_3A00_-Developer-Version-Of-Sharepoint.aspx</feedburner:origLink></entry><entry><title>My Comments On The D Language In Redmond Developer News</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DonXmlAllThingsTechie/~3/hlMFHgoOFpE/My-Comments-On-The-D-Language-In-Redmond-Developer-News.aspx" /><id>http://donxml.com/allthingstechie/archive/2008/02/22/My-Comments-On-The-D-Language-In-Redmond-Developer-News.aspx</id><published>2008-02-22T20:12:56Z</published><updated>2008-02-22T20:12:56Z</updated><content type="html">&lt;p&gt;In a &lt;a href="http://reddevnews.com/news/article.aspx?editorialsid=9558#post" target="_blank"&gt;recent article&lt;/a&gt; on the Redmond Developer News website about the new Microsoft Declarative Language D, I was quoted, but it is was slightly inaccurate.&amp;nbsp; The first part is corrected:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;"said he believes both the D language and Oslo will be featured at the Microsoft Professional Developers Conference (PDC) in October."&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Which clearly states that I believe (and hope) that the D Language will be featured at the PDC.&amp;nbsp; Right after the I also stated:  &lt;blockquote&gt; &lt;p&gt;"The D Language is the reason why the PDC was cancelled last year," Demsak said. "All I know is that they (Microsoft) have been very, very quiet about the D Language. I'm hoping to see more at the MVP summit, but I really don't hold out much hope for the language, if they have gone towards making it data-driven."&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;The missing part is that it was &lt;strong&gt;my opinion that is was part of the&lt;/strong&gt; reason PDC was canceled, along with my usual disclaimers (like if someone in Microsoft actually told me that, then I couldn't say it because of my NDAs).&amp;nbsp; So, yes, it is all my opinion, and not something I've been told by anyone in Microsoft.&amp;nbsp; I'm usually pretty good at being careful about what I say to the press, and make sure to phrase things as my opinion when I'm expressing just that.&amp;nbsp; And, yes that means I don't know anything about the D Language other than what has been officially published, which is why I felt that I could express my opinion.&amp;nbsp; Otherwise, there wouldn't have been a quote from me.  &lt;p&gt;Here's the official statement on why the PDC was canceled last year:  &lt;blockquote&gt; &lt;p&gt;Q: Why was the PDC canceled last fall?&lt;br&gt;A: The PDC was actually rescheduled.&amp;nbsp; Microsoft tries to time the PDC to be in front of major platform milestones, and the size and scope of the PDC requires us to schedule a suitable venue far in advance. For 2007, we intended to align PDC with the next wave of platform technologies, such as Windows Server 2008, Visual Studio 2008, Silverlight and SQL Server (codenamed “Katmai”).&amp;nbsp; However, these platform deliverables were already in developers’ hands. Rather than hold a PDC focused on a review of those technologies, Microsoft chose to reschedule the PDC to align with the next wave of platform technologies to be released beyond 2008.&amp;nbsp; &lt;/p&gt;&lt;/blockquote&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://donxml.com/allthingstechie/archive/2008/02/22/My-Comments-On-The-D-Language-In-Redmond-Developer-News.aspx&amp;amp;;subject=My+Comments+On+The+D+Language+In+Redmond+Developer+News" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/02/22/My-Comments-On-The-D-Language-In-Redmond-Developer-News.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://donxml.com/allthingstechie/archive/2008/02/22/My-Comments-On-The-D-Language-In-Redmond-Developer-News.aspx&amp;amp;;title=My+Comments+On+The+D+Language+In+Redmond+Developer+News" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/02/22/My-Comments-On-The-D-Language-In-Redmond-Developer-News.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://donxml.com/allthingstechie/archive/2008/02/22/My-Comments-On-The-D-Language-In-Redmond-Developer-News.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/02/22/My-Comments-On-The-D-Language-In-Redmond-Developer-News.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://donxml.com/allthingstechie/archive/2008/02/22/My-Comments-On-The-D-Language-In-Redmond-Developer-News.aspx&amp;amp;title=My+Comments+On+The+D+Language+In+Redmond+Developer+News" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/02/22/My-Comments-On-The-D-Language-In-Redmond-Developer-News.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://donxml.com/allthingstechie/archive/2008/02/22/My-Comments-On-The-D-Language-In-Redmond-Developer-News.aspx&amp;amp;;title=My+Comments+On+The+D+Language+In+Redmond+Developer+News" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/02/22/My-Comments-On-The-D-Language-In-Redmond-Developer-News.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://donxml.com/allthingstechie/archive/2008/02/22/My-Comments-On-The-D-Language-In-Redmond-Developer-News.aspx&amp;amp;;title=My+Comments+On+The+D+Language+In+Redmond+Developer+News&amp;amp;;top=1" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/02/22/My-Comments-On-The-D-Language-In-Redmond-Developer-News.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://donxml.com/aggbug.aspx?PostID=3529" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?a=hlMFHgoOFpE:zOdQqIV_JyU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?a=hlMFHgoOFpE:zOdQqIV_JyU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DonXmlAllThingsTechie/~4/hlMFHgoOFpE" height="1" width="1"/&gt;</content><author><name>donxml</name><uri>http://donxml.com/members/donxml.aspx</uri></author><feedburner:origLink>http://donxml.com/allthingstechie/archive/2008/02/22/My-Comments-On-The-D-Language-In-Redmond-Developer-News.aspx</feedburner:origLink></entry><entry><title>Raleigh Code Camp Slide Deck and Demo</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/DonXmlAllThingsTechie/~3/DdCvZ23awgs/Raleigh-Code-Camp-Slide-Deck-and-Demo.aspx" /><id>http://donxml.com/allthingstechie/archive/2008/02/17/Raleigh-Code-Camp-Slide-Deck-and-Demo.aspx</id><published>2008-02-17T16:15:48Z</published><updated>2008-02-17T16:15:48Z</updated><content type="html">&lt;p&gt;&lt;a href="http://www.sqldiva.com" target="_blank"&gt;Melissa&lt;/a&gt; and I had a blast at the Raleigh Code Camp.&amp;nbsp; Thanks to all the folks that helped to coordinate this event!&lt;/p&gt; &lt;p&gt;Here' the &lt;a href="http://www.donxml.com/presentations/Linq2Sql_RaleighCodeCamp.pdf" target="_blank"&gt;slide deck&lt;/a&gt; and the &lt;a href="http://www.donxml.com/presentations/Linq2Sql_RaleighCodeCamp_demo.zip" target="_blank"&gt;demo app&lt;/a&gt;.&amp;nbsp; It was a great opportunity to work on my material for the full day pre-conference on LINQ at VSLive San Fran.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://donxml.com/allthingstechie/archive/2008/02/17/Raleigh-Code-Camp-Slide-Deck-and-Demo.aspx&amp;amp;;subject=Raleigh+Code+Camp+Slide+Deck+and+Demo" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/02/17/Raleigh-Code-Camp-Slide-Deck-and-Demo.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://donxml.com/allthingstechie/archive/2008/02/17/Raleigh-Code-Camp-Slide-Deck-and-Demo.aspx&amp;amp;;title=Raleigh+Code+Camp+Slide+Deck+and+Demo" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/02/17/Raleigh-Code-Camp-Slide-Deck-and-Demo.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://donxml.com/allthingstechie/archive/2008/02/17/Raleigh-Code-Camp-Slide-Deck-and-Demo.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/02/17/Raleigh-Code-Camp-Slide-Deck-and-Demo.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://donxml.com/allthingstechie/archive/2008/02/17/Raleigh-Code-Camp-Slide-Deck-and-Demo.aspx&amp;amp;title=Raleigh+Code+Camp+Slide+Deck+and+Demo" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/02/17/Raleigh-Code-Camp-Slide-Deck-and-Demo.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://donxml.com/allthingstechie/archive/2008/02/17/Raleigh-Code-Camp-Slide-Deck-and-Demo.aspx&amp;amp;;title=Raleigh+Code+Camp+Slide+Deck+and+Demo" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/02/17/Raleigh-Code-Camp-Slide-Deck-and-Demo.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://donxml.com/allthingstechie/archive/2008/02/17/Raleigh-Code-Camp-Slide-Deck-and-Demo.aspx&amp;amp;;title=Raleigh+Code+Camp+Slide+Deck+and+Demo&amp;amp;;top=1" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2008/02/17/Raleigh-Code-Camp-Slide-Deck-and-Demo.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://donxml.com/aggbug.aspx?PostID=3525" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?a=DdCvZ23awgs:4Si8iCXpamg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?a=DdCvZ23awgs:4Si8iCXpamg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DonXmlAllThingsTechie?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DonXmlAllThingsTechie/~4/DdCvZ23awgs" height="1" width="1"/&gt;</content><author><name>donxml</name><uri>http://donxml.com/members/donxml.aspx</uri></author><category term="Community Events" scheme="http://donxml.com/allthingstechie/archive/tags/Community+Events/default.aspx" /><feedburner:origLink>http://donxml.com/allthingstechie/archive/2008/02/17/Raleigh-Code-Camp-Slide-Deck-and-Demo.aspx</feedburner:origLink></entry></feed>
