<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Don Xml's Grok This</title><link>http://donxml.com/default.aspx</link><description>The home of Don Demsak</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 (Build: 60809.935)</generator><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Donxml" /><feedburner:info uri="donxml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><itunes:explicit>no</itunes:explicit><itunes:subtitle>The home of Don Demsak</itunes:subtitle><itunes:category text="Technology"><itunes:category text="Software How-To" /></itunes:category><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site, subject to copyright and fair use.</feedburner:browserFriendly><item><title>Microsoft PDC Workshop - Developing Microsoft BI Applications - The How and The Why</title><link>http://donxml.com/allthingstechie/archive/2009/09/20/Microsoft-PDC-Workshop-_2D00_-Developing-Microsoft-BI-Applications-_2D00_-The-How-and-The-Why.aspx</link><pubDate>Sun, 20 Sep 2009 23:10:10 GMT</pubDate><guid isPermaLink="false">b16b13c4-3978-472b-b5b1-e14c8556d173:3722</guid><dc:creator>donxml</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;Bringing Business Intelligence knowledge to the .Net developer crowd has been something that I’ve been trying to do over the last year.&amp;#160; So, when &lt;a href="http://www.brustblog.com/" target="_blank"&gt;Andrew Brust&lt;/a&gt; offered me an opportunity to work with him on a PDC pre-conference workshop with intent of bringing some BI goodness to the PDC crowd, I couldn’t turn it down.&amp;#160; The workshop is called “&lt;a href="http://microsoftpdc.com/Sessions/Developing-Microsoft-BI-Applications-The-How-and-The-Why" target="_blank"&gt;Developing Microsoft BI Applications - The How and The Why&lt;/a&gt;”, and if you have seen my BI For the .Net Guy talk, you’ll have a good idea as to what attendees will be in for, only a lot more stuff covered, and even better (thanks to the help of Andrew).&amp;#160; We start you off assuming you haven’t done BI before (and let’s face it, .Net BI applications are not, yet, common), and bring up to speed with some of the terms and concepts of BI and OLAP, how to migrate from transactional data stores to BI data stores, and then shoe how to access them using .Net.&amp;#160; We then shift gears and show how to use the various BI Presentation Technologies (Reporting Service, Report Builder, Sharepoint, Performance Point, Gemini and some 3rd party tools).&amp;#160; The last 1/3 of the workshop is all about how to strategically integrate BI into your line of business applications (and engage your business owners/clients and show what can and can’t be done with BI).&lt;/p&gt;  &lt;p&gt;If you want to find out some more, &lt;a href="http://channel9.msdn.com/shows/The+Knowledge+Chamber/PDC09-Workshop-Developing-Microsoft-BI-Applications-The-How-and-The-Why/" target="_blank"&gt;Peter Laudati interviewed Andrew and myself about the workshop&lt;/a&gt;.&amp;#160; Actually, Peter jumped in and helped us (Thanks Peter!), when we couldn’t travel out to Redmond to be interviewed by Robert Hess on “The Knowledge Chamber” (that wouldn’t have been so cool, but it wasn’t meant to be :(&amp;#160; ).&lt;/p&gt;  &lt;p&gt;So, if you headed out to the PDC, signup for the workshops and register for &lt;a href="http://microsoftpdc.com/Sessions/Developing-Microsoft-BI-Applications-The-How-and-The-Why" target="_blank"&gt;Developing Microsoft BI Applications - The How and The Why&lt;/a&gt;.&amp;#160; Yes, I know we are in tough economic times, but the PDC is always my favorite Microsoft conference.&amp;#160; You get to find out about the future of the Microsoft development stack, and hangout with the uber-geeks.&amp;#160; I’m staying at the Westin (seems as though the bar in the lobby is always filled with great late night conversations).&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/09/20/Microsoft-PDC-Workshop-_2D00_-Developing-Microsoft-BI-Applications-_2D00_-The-How-and-The-Why.aspx&amp;amp;;subject=Microsoft+PDC+Workshop+-+Developing+Microsoft+BI+Applications+-+The+How+and+The+Why" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2009/09/20/Microsoft-PDC-Workshop-_2D00_-Developing-Microsoft-BI-Applications-_2D00_-The-How-and-The-Why.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://donxml.com/allthingstechie/archive/2009/09/20/Microsoft-PDC-Workshop-_2D00_-Developing-Microsoft-BI-Applications-_2D00_-The-How-and-The-Why.aspx&amp;amp;;title=Microsoft+PDC+Workshop+-+Developing+Microsoft+BI+Applications+-+The+How+and+The+Why" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2009/09/20/Microsoft-PDC-Workshop-_2D00_-Developing-Microsoft-BI-Applications-_2D00_-The-How-and-The-Why.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://donxml.com/allthingstechie/archive/2009/09/20/Microsoft-PDC-Workshop-_2D00_-Developing-Microsoft-BI-Applications-_2D00_-The-How-and-The-Why.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2009/09/20/Microsoft-PDC-Workshop-_2D00_-Developing-Microsoft-BI-Applications-_2D00_-The-How-and-The-Why.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://donxml.com/allthingstechie/archive/2009/09/20/Microsoft-PDC-Workshop-_2D00_-Developing-Microsoft-BI-Applications-_2D00_-The-How-and-The-Why.aspx&amp;amp;title=Microsoft+PDC+Workshop+-+Developing+Microsoft+BI+Applications+-+The+How+and+The+Why" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2009/09/20/Microsoft-PDC-Workshop-_2D00_-Developing-Microsoft-BI-Applications-_2D00_-The-How-and-The-Why.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://donxml.com/allthingstechie/archive/2009/09/20/Microsoft-PDC-Workshop-_2D00_-Developing-Microsoft-BI-Applications-_2D00_-The-How-and-The-Why.aspx&amp;amp;;title=Microsoft+PDC+Workshop+-+Developing+Microsoft+BI+Applications+-+The+How+and+The+Why" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2009/09/20/Microsoft-PDC-Workshop-_2D00_-Developing-Microsoft-BI-Applications-_2D00_-The-How-and-The-Why.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/09/20/Microsoft-PDC-Workshop-_2D00_-Developing-Microsoft-BI-Applications-_2D00_-The-How-and-The-Why.aspx&amp;amp;;title=Microsoft+PDC+Workshop+-+Developing+Microsoft+BI+Applications+-+The+How+and+The+Why&amp;amp;;top=1" target="_blank" title = "Post http://donxml.com/allthingstechie/archive/2009/09/20/Microsoft-PDC-Workshop-_2D00_-Developing-Microsoft-BI-Applications-_2D00_-The-How-and-The-Why.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://donxml.com/aggbug.aspx?PostID=3722" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Donxml?a=_iS8e9pCgPw:bGzkLckElDM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Donxml?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Donxml/~4/_iS8e9pCgPw" height="1" width="1"/&gt;</description></item><item><title>WCF, jQuery and WebForms Slides and Code</title><link>http://donxml.com/allthingstechie/archive/2009/04/22/WCF_2C00_-jQuery-and-WebForms-Slides-and-Code.aspx</link><pubDate>Wed, 22 Apr 2009 18:47:04 GMT</pubDate><guid isPermaLink="false">b16b13c4-3978-472b-b5b1-e14c8556d173:3698</guid><dc:creator>donxml</dc:creator><slash:comments>3</slash:comments><description>&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/Donxml?a=EwY8paadS2E:VSMqmIFuCH4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Donxml?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Donxml/~4/EwY8paadS2E" height="1" width="1"/&gt;</description><category domain="http://donxml.com/allthingstechie/archive/tags/.Net+Communities/default.aspx">.Net Communities</category><category domain="http://donxml.com/allthingstechie/archive/tags/WCF/default.aspx">WCF</category><category domain="http://donxml.com/allthingstechie/archive/tags/WCFMsssageBody/default.aspx">WCFMsssageBody</category><category domain="http://donxml.com/allthingstechie/archive/tags/jQuery/default.aspx">jQuery</category></item><item><title>The Tale of WCF, MessageContract, and JSON</title><link>http://donxml.com/allthingstechie/archive/2009/04/10/The-Tale-of-WCF_2C00_-MessageContract_2C00_-and-JSON.aspx</link><pubDate>Fri, 10 Apr 2009 14:51:00 GMT</pubDate><guid isPermaLink="false">b16b13c4-3978-472b-b5b1-e14c8556d173:3694</guid><dc:creator>donxml</dc:creator><slash:comments>2</slash:comments><description>&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/Donxml?a=GjwXxMarptc:ZkSEwF5_YVc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Donxml?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Donxml/~4/GjwXxMarptc" height="1" width="1"/&gt;</description></item><item><title>PDC 2008 Session Calendar Synchronization Tip</title><link>http://donxml.com/allthingstechie/archive/2008/10/24/PDC-2008-Session-Calendar-Synchronization-Tip.aspx</link><pubDate>Fri, 24 Oct 2008 13:35:55 GMT</pubDate><guid isPermaLink="false">b16b13c4-3978-472b-b5b1-e14c8556d173:3663</guid><dc:creator>donxml</dc:creator><slash:comments>3</slash:comments><description>&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/Donxml?a=mQysWmundzo:WYlcjEOm0kk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Donxml?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Donxml/~4/mQysWmundzo" height="1" width="1"/&gt;</description><category domain="http://donxml.com/allthingstechie/archive/tags/PDC/default.aspx">PDC</category><category domain="http://donxml.com/allthingstechie/archive/tags/Tech+Ramblings/default.aspx">Tech Ramblings</category></item><item><title>Just Say No to Console App Demos</title><link>http://donxml.com/allthingstechie/archive/2008/10/24/Just-Say-No-to-Console-App-Demos.aspx</link><pubDate>Fri, 24 Oct 2008 12:51:15 GMT</pubDate><guid isPermaLink="false">b16b13c4-3978-472b-b5b1-e14c8556d173:3661</guid><dc:creator>donxml</dc:creator><slash:comments>8</slash:comments><description>&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/Donxml?a=I2_ANDSNnUs:t1IZzc3RgYk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Donxml?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Donxml/~4/I2_ANDSNnUs" height="1" width="1"/&gt;</description><category domain="http://donxml.com/allthingstechie/archive/tags/.Net/default.aspx">.Net</category><category domain="http://donxml.com/allthingstechie/archive/tags/PDC/default.aspx">PDC</category></item><item><title>Static Code Analysis and Custom FxCop Rules for Enterprise ASP.Net Development</title><link>http://donxml.com/allthingstechie/archive/2008/06/18/Static-Code-Analysis-and-Custom-FxCop-Rules-for-Enterprise-ASP.Net-Development.aspx</link><pubDate>Thu, 19 Jun 2008 00:40:31 GMT</pubDate><guid isPermaLink="false">b16b13c4-3978-472b-b5b1-e14c8556d173:3616</guid><dc:creator>donxml</dc:creator><slash:comments>3</slash:comments><description>&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/Donxml?a=3vMEE8VWUqU:bvwGz65J38w:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Donxml?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Donxml/~4/3vMEE8VWUqU" height="1" width="1"/&gt;</description><category domain="http://donxml.com/allthingstechie/archive/tags/.Net/default.aspx">.Net</category><category domain="http://donxml.com/allthingstechie/archive/tags/Open+Source/default.aspx">Open Source</category></item><item><title>Metal &amp; Hard Rock Podcasts</title><link>http://donxml.com/music/archive/2008/06/07/3601.aspx</link><pubDate>Sat, 07 Jun 2008 16:32:26 GMT</pubDate><guid isPermaLink="false">b16b13c4-3978-472b-b5b1-e14c8556d173:3601</guid><dc:creator>donxml</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;I'm always on the lookout for new music podcasts, and since my tastes tend towards metal and hard rock, that's what I like to listen to.&amp;#160; But, I'm also very picky about the sound quality of the podcasts.&amp;#160; Since I'm friends with &lt;a href="http://www.intellectualhedonism.com/" target="_blank"&gt;Carl Franklin&lt;/a&gt;, who does a great job with the &lt;a href="http://www.pwop.com/" target="_blank"&gt;Pwop Productions&lt;/a&gt; podcasts, and he introduced me to podcasting, I tend to be spoiled when it comes to sound quality.&amp;#160; One a side note, Carl built out a full blown recording studio in New London, CT, that along with recording podcasts, is being used by other musicians to record their stuff.&lt;/p&gt;  &lt;p&gt;So, given that background, here are the 2 music podcasts I listen to, and their pros and cons:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a href="http://www.striglsmusicnews.com/podcasts/talkingmetal/index.htm" target="_blank"&gt;Talking Metal&lt;/a&gt; - The reason I started to listen to these guys (and still do even the the audio quality is poor), is that they are about my age, and from my home state, NJ, which means that they have similar tastes (at least closer to mine then the rest of the world).&amp;#160; The recent &lt;a href="http://www.captaint.com/talkingmetal/talkingmetaleps207.mp3" target="_blank"&gt;Del James interview&lt;/a&gt; was killer.&amp;#160; Del is another guy, a little older than me, but closer in musical tastes, and grew up in the 80's NYC/NJ music scene, like me.&amp;#160; Talking Metal covers everything from the Hard Rock of GnR and Def Leppard to the Metal of Priest, Black Label Society, and Ozzy.&amp;#160; They also include &amp;quot;newer&amp;quot; bands like Lamb Of God, Otep, and In This Moment, which is a must for me, because I listen to podcasts to get turned onto new music, not just re-live the old days.&amp;#160; The downside of Talking Metal is that, for a couple guys that are musicians and work in the media business, one would think that they would try to get a decent sound.&amp;#160; There are a lot of episodes (especially the telephone interviews) where it is impossible to listen to the show, except if you play it thru headphones.&amp;#160; And even then, the audio levels tend to suck.&amp;#160; The hosts would be loud and clear, and the guest would be buried in the background.&amp;#160; I know that making a podcast isn't easy, but I expect you to at least run it thru something like Adobe Audition and mix the levels and filter out the background hiss.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.americanheartbreak.com/rnrgeekwp/" target="_blank"&gt;The Rock and Roll Geek Show&lt;/a&gt; -&amp;#160; Somehow I missed the early years of this show, and only recently found it.&amp;#160; Michael Butler's music tastes are usually a little &amp;quot;lighter&amp;quot; than mine, but, there are a lot of similarities (and one would think that since he played in Exodus, he would be pure metal, but he isn't).&amp;#160; The podcast tends to be a bit &amp;quot;campy&amp;quot;, and amateurish, but I think that is the point.&amp;#160; There is little (if any) post production of the show, which does bug me.&amp;#160; The audio levels, especially when he plays some music, well, they tend to be too loud, compared with the rest of the show, but it is what it is.&amp;#160; There are shows that I just can't listen to, the recent driving with Butler is an example, and most of the interviews can be hard to listen to, but overall, it is a decent show, with some good content.&amp;#160; He interviews some cool, &amp;quot;obscure&amp;quot; bands (recently DaD, and Bob Spencer from the Angels).&amp;#160; The Rock of Love Recaps, I can't stand, and don't listen to.&amp;#160; But I love the bootleg reviews (he recently did shows on Iron Maiden and Van Halen).&amp;#160; Basically, the show is hit or miss, but considering what else is out there, it isn't bad, and the music is pretty good.&amp;#160; He plays everything, from the new Judas Priest, to Joan Jett, plus more obscure bands (old and new).&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;I've tried a bunch of other podcasts, but they all pretty much sucked.&amp;#160; The worst tend to be the music label podcasts.&amp;#160; I've tried Mgnatunes' Intense Metal podcast, and it isn't for me, all bands I've never heard of, and don't really ever want to hear.&amp;#160; I had high hopes for Zach and Ron's &lt;a href="http://www.metalpodcast.net/" target="_blank"&gt;Metalscape podcast&lt;/a&gt;, but after a couple episodes, I couldn't take it.&amp;#160; It was like trying to listen to a poor man's imitation of Bevis &amp;amp; Butthead do a podcast, and it wasn't funny.&amp;#160; I haven't listened in a few months, maybe it is better, but I doubt it.&lt;/p&gt;  &lt;p&gt;If you have any hard rock or metal podcasts that you listen to, leave a comment.&amp;#160; I'd like to find a couple more decent podcasts to listen to.&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/music/archive/2008/06/07/3601.aspx&amp;amp;;subject=Metal+%26amp%3b+Hard+Rock+Podcasts" target="_blank" title = "Post http://donxml.com/music/archive/2008/06/07/3601.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://donxml.com/music/archive/2008/06/07/3601.aspx&amp;amp;;title=Metal+%26amp%3b+Hard+Rock+Podcasts" target="_blank" title = "Post http://donxml.com/music/archive/2008/06/07/3601.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://donxml.com/music/archive/2008/06/07/3601.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://donxml.com/music/archive/2008/06/07/3601.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://donxml.com/music/archive/2008/06/07/3601.aspx&amp;amp;title=Metal+%26amp%3b+Hard+Rock+Podcasts" target="_blank" title = "Post http://donxml.com/music/archive/2008/06/07/3601.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://donxml.com/music/archive/2008/06/07/3601.aspx&amp;amp;;title=Metal+%26amp%3b+Hard+Rock+Podcasts" target="_blank" title = "Post http://donxml.com/music/archive/2008/06/07/3601.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/music/archive/2008/06/07/3601.aspx&amp;amp;;title=Metal+%26amp%3b+Hard+Rock+Podcasts&amp;amp;;top=1" target="_blank" title = "Post http://donxml.com/music/archive/2008/06/07/3601.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://donxml.com/aggbug.aspx?PostID=3601" width="1" height="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/Donxml?a=RtRgJs3SQIk:eGHb8gNrNNc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Donxml?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Donxml/~4/RtRgJs3SQIk" height="1" width="1"/&gt;</description><enclosure url="http://www.captaint.com/talkingmetal/talkingmetaleps207.mp3" length="57725495" type="audio/mpeg" /><itunes:explicit>no</itunes:explicit><itunes:subtitle> I'm always on the lookout for new music podcasts, and since my tastes tend towards metal and hard rock, that's what I like to listen to.&amp;#160; But, I'm also very picky about the sound quality of the podcasts.&amp;#160; Since I'm friends with Carl Franklin, w</itunes:subtitle><itunes:summary> I'm always on the lookout for new music podcasts, and since my tastes tend towards metal and hard rock, that's what I like to listen to.&amp;#160; But, I'm also very picky about the sound quality of the podcasts.&amp;#160; Since I'm friends with Carl Franklin, who does a great job with the Pwop Productions podcasts, and he introduced me to podcasting, I tend to be spoiled when it comes to sound quality.&amp;#160; One a side note, Carl built out a full blown recording studio in New London, CT, that along with recording podcasts, is being used by other musicians to record their stuff. So, given that background, here are the 2 music podcasts I listen to, and their pros and cons: Talking Metal - The reason I started to listen to these guys (and still do even the the audio quality is poor), is that they are about my age, and from my home state, NJ, which means that they have similar tastes (at least closer to mine then the rest of the world).&amp;#160; The recent Del James interview was killer.&amp;#160; Del is another guy, a little older than me, but closer in musical tastes, and grew up in the 80's NYC/NJ music scene, like me.&amp;#160; Talking Metal covers everything from the Hard Rock of GnR and Def Leppard to the Metal of Priest, Black Label Society, and Ozzy.&amp;#160; They also include &amp;quot;newer&amp;quot; bands like Lamb Of God, Otep, and In This Moment, which is a must for me, because I listen to podcasts to get turned onto new music, not just re-live the old days.&amp;#160; The downside of Talking Metal is that, for a couple guys that are musicians and work in the media business, one would think that they would try to get a decent sound.&amp;#160; There are a lot of episodes (especially the telephone interviews) where it is impossible to listen to the show, except if you play it thru headphones.&amp;#160; And even then, the audio levels tend to suck.&amp;#160; The hosts would be loud and clear, and the guest would be buried in the background.&amp;#160; I know that making a podcast isn't easy, but I expect you to at least run it thru something like Adobe Audition and mix the levels and filter out the background hiss. The Rock and Roll Geek Show -&amp;#160; Somehow I missed the early years of this show, and only recently found it.&amp;#160; Michael Butler's music tastes are usually a little &amp;quot;lighter&amp;quot; than mine, but, there are a lot of similarities (and one would think that since he played in Exodus, he would be pure metal, but he isn't).&amp;#160; The podcast tends to be a bit &amp;quot;campy&amp;quot;, and amateurish, but I think that is the point.&amp;#160; There is little (if any) post production of the show, which does bug me.&amp;#160; The audio levels, especially when he plays some music, well, they tend to be too loud, compared with the rest of the show, but it is what it is.&amp;#160; There are shows that I just can't listen to, the recent driving with Butler is an example, and most of the interviews can be hard to listen to, but overall, it is a decent show, with some good content.&amp;#160; He interviews some cool, &amp;quot;obscure&amp;quot; bands (recently DaD, and Bob Spencer from the Angels).&amp;#160; The Rock of Love Recaps, I can't stand, and don't listen to.&amp;#160; But I love the bootleg reviews (he recently did shows on Iron Maiden and Van Halen).&amp;#160; Basically, the show is hit or miss, but considering what else is out there, it isn't bad, and the music is pretty good.&amp;#160; He plays everything, from the new Judas Priest, to Joan Jett, plus more obscure bands (old and new). I've tried a bunch of other podcasts, but they all pretty much sucked.&amp;#160; The worst tend to be the music label podcasts.&amp;#160; I've tried Mgnatunes' Intense Metal podcast, and it isn't for me, all bands I've never heard of, and don't really ever want to hear.&amp;#160; I had high hopes for Zach and Ron's Metalscape podcast, but after a couple episodes, I couldn't take it.&amp;#160; It was like trying to listen to a poor man's imitation of Bevis &amp;amp; Butthead do a podcast, and it wasn't funny.&amp;#160; I haven't listened in a fe</itunes:summary></item><item><title>Cache Or Session State - Similar But Different</title><link>http://donxml.com/allthingstechie/archive/2008/06/06/Cache-Or-Session-State-_2D00_-Similar-But-Different.aspx</link><pubDate>Fri, 06 Jun 2008 21:32:52 GMT</pubDate><guid isPermaLink="false">b16b13c4-3978-472b-b5b1-e14c8556d173:3600</guid><dc:creator>donxml</dc:creator><slash:comments>6</slash:comments><description>&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/Donxml?a=8Q8f_gZxTlc:xNsCqcBP_5o:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Donxml?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Donxml/~4/8Q8f_gZxTlc" height="1" width="1"/&gt;</description></item><item><title>New York City IT Architect Regional Conference</title><link>http://donxml.com/allthingstechie/archive/2008/04/26/New-York-City-IT-Architect-Regional-Conference.aspx</link><pubDate>Sun, 27 Apr 2008 00:49:56 GMT</pubDate><guid isPermaLink="false">b16b13c4-3978-472b-b5b1-e14c8556d173:3570</guid><dc:creator>donxml</dc:creator><slash:comments>0</slash:comments><description>&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/Donxml?a=RcvNWyBEkAY:LYqpXlAODME:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Donxml?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Donxml/~4/RcvNWyBEkAY" height="1" width="1"/&gt;</description></item><item><title>Mixing Object, Functional and Aspect Oriented Programming</title><link>http://donxml.com/allthingstechie/archive/2008/04/20/Mixing-Object_2C00_-Functional-and-Aspect-Oriented-Programming.aspx</link><pubDate>Mon, 21 Apr 2008 03:57:58 GMT</pubDate><guid isPermaLink="false">b16b13c4-3978-472b-b5b1-e14c8556d173:3561</guid><dc:creator>donxml</dc:creator><slash:comments>6</slash:comments><description>&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/Donxml?a=F9pfabd3zrw:50Io4ljh8hI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Donxml?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Donxml/~4/F9pfabd3zrw" height="1" width="1"/&gt;</description><category domain="http://donxml.com/allthingstechie/archive/tags/.Net/default.aspx">.Net</category><category domain="http://donxml.com/allthingstechie/archive/tags/.Net+Communities/default.aspx">.Net Communities</category><category domain="http://donxml.com/allthingstechie/archive/tags/LINQ+VBx/default.aspx">LINQ VBx</category></item><item><title>VSLive San Francisco Workshop - LINQ - One Query Syntax To Rule Them All</title><link>http://donxml.com/allthingstechie/archive/2008/03/03/VSLive-San-Francisco-Workshop-_2D00_-LINQ-_2D00_-One-Query-Syntax-To-Rule-Them-All.aspx</link><pubDate>Mon, 03 Mar 2008 21:25:34 GMT</pubDate><guid isPermaLink="false">b16b13c4-3978-472b-b5b1-e14c8556d173:3544</guid><dc:creator>donxml</dc:creator><slash:comments>0</slash:comments><description>&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/Donxml?a=GZ8sMLWxxT0:LO-7jAd-PNk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Donxml?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Donxml/~4/GZ8sMLWxxT0" height="1" width="1"/&gt;</description><category domain="http://donxml.com/allthingstechie/archive/tags/LINQ/default.aspx">LINQ</category></item><item><title>Devscovery 2008 - New York City April 1-3</title><link>http://donxml.com/allthingstechie/archive/2008/03/03/Devscovery-2008-_2D00_-New-York-City-April-1_2D00_3.aspx</link><pubDate>Mon, 03 Mar 2008 21:15:49 GMT</pubDate><guid isPermaLink="false">b16b13c4-3978-472b-b5b1-e14c8556d173:3543</guid><dc:creator>donxml</dc:creator><slash:comments>1</slash:comments><description>&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/Donxml?a=SRQJcOdhcTw:-PAZsuPAPmM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Donxml?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Donxml/~4/SRQJcOdhcTw" height="1" width="1"/&gt;</description><category domain="http://donxml.com/allthingstechie/archive/tags/New+Jersey+Developer+Community+Events/default.aspx">New Jersey Developer Community Events</category></item><item><title>Diskeeper 2008 Professional Review</title><link>http://donxml.com/allthingstechie/archive/2008/03/03/Diskeeper-2008-Professional-Review.aspx</link><pubDate>Mon, 03 Mar 2008 15:26:43 GMT</pubDate><guid isPermaLink="false">b16b13c4-3978-472b-b5b1-e14c8556d173:3542</guid><dc:creator>donxml</dc:creator><slash:comments>7</slash:comments><description>&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/Donxml?a=v0_11Mqsv_0:LGXKTYaD76I:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Donxml?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Donxml/~4/v0_11Mqsv_0" height="1" width="1"/&gt;</description><category domain="http://donxml.com/allthingstechie/archive/tags/Tech+Reviews/default.aspx">Tech Reviews</category></item><item><title>Petition To Get Chris Sells To Host Another SellsCon Before The End Of 2008</title><link>http://donxml.com/allthingstechie/archive/2008/02/26/Petition-To-Get-Chris-Sells-To-Host-Another-SellsCon-Before-The-End-Of-2008.aspx</link><pubDate>Wed, 27 Feb 2008 01:38:09 GMT</pubDate><guid isPermaLink="false">b16b13c4-3978-472b-b5b1-e14c8556d173:3538</guid><dc:creator>donxml</dc:creator><slash:comments>1</slash:comments><description>&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/Donxml?a=LqfErjdxiwE:11wbGkDo1sw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Donxml?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Donxml/~4/LqfErjdxiwE" height="1" width="1"/&gt;</description><category domain="http://donxml.com/allthingstechie/archive/tags/XML/default.aspx">XML</category></item><item><title>Wanted: Developer Version Of Sharepoint</title><link>http://donxml.com/allthingstechie/archive/2008/02/23/Wanted_3A00_-Developer-Version-Of-Sharepoint.aspx</link><pubDate>Sat, 23 Feb 2008 19:42:56 GMT</pubDate><guid isPermaLink="false">b16b13c4-3978-472b-b5b1-e14c8556d173:3534</guid><dc:creator>donxml</dc:creator><slash:comments>5</slash:comments><description>&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/Donxml?a=xezV62zaAOM:Ur0v7j6v8qY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/Donxml?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Donxml/~4/xezV62zaAOM" height="1" width="1"/&gt;</description><category domain="http://donxml.com/allthingstechie/archive/tags/Sharepoint/default.aspx">Sharepoint</category></item></channel></rss>
