<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>David Aiken</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/daiken/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/daiken/feed.xml</link>
    <description>Management, Building Manageable Applications, Design for Operations, WMI, DSI, MMC, VSMMD and of course Windows Powershell</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:20:42 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>bye MSDN BLOG, Hello davidaiken.com</title>
      <link>https://docs.microsoft.com/archive/blogs/daiken/bye-msdn-blog-hello-davidaiken-com</link>
      <pubDate>Fri, 30 May 2008 04:47:03 GMT</pubDate>
      <dc:creator><![CDATA[daiken]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/daiken/2008/05/30/bye-msdn-blog-hello-davidaiken-com/</guid>
      <description><![CDATA[Only the blog has moved. I still work for Microsoft. See www.davidaiken.com for more.]]></description>
      <content:encoded><![CDATA[<p>Only the blog has moved. I still work for Microsoft. See <a href="https://www.davidaiken.com">www.davidaiken.com</a> for more.</p>]]></content:encoded>
    </item>
    <item>
      <title>Visual Studio Team System Management Model Designer Power Tool (TSMMD) Ships</title>
      <link>https://docs.microsoft.com/archive/blogs/daiken/visual-studio-team-system-management-model-designer-power-tool-tsmmd-ships</link>
      <pubDate>Thu, 21 Feb 2008 20:22:00 GMT</pubDate>
      <dc:creator><![CDATA[daiken]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/daiken/2008/02/21/visual-studio-team-system-management-model-designer-power-tool-tsmmd-ships/</guid>
      <description><![CDATA[Visual Studio Team System Management Model Designer Power Tool (TSMMD) v2.0 CTP is now live at...]]></description>
      <content:encoded><![CDATA[<P>Visual Studio Team System Management Model Designer Power Tool (TSMMD) v2.0 CTP is now live at <A href="https://www.codeplex.com/dfo" mce_href="https://www.codeplex.com/dfo">https://www.codeplex.com/dfo</A>.</P>
<P>This project has two deliverables. </P>
<P>First is the Visual Studio Team System Management Model Designer Power Tool (TSMMD). TSMMD is a tool for modeling line-of-business health scenarios and the associated instrumentation. The tool includes guidance packages that generate platform instrumentation (called Instrumentation Helpers) and validators to confirm that application source code contains instrumentation defined in the Health Model. The tool can then be used to generate Management Packs for System Center Operations Manager 2007. </P>
<P>Second is the Management Guide that contains prescriptive guidance on building highly manageable applications on the Microsoft Windows platform.</P>
<P>TSMMD is in an early stage of development. It was developed to help raise the Architect and Developer awareness of the needs of the ITPRO. </P>
<P>patterns &amp; practices is releasing this CTP with a level of functionality to enable the end-to-end adoption and consumption of the health modeling scenario from Architecture to IT.</P>
<P>We need your feedback. Is the tooling correct? What did we get right and where did we fall short?</P>
<P>New features include:</P>
<OL>
<LI>Improved model and user experience.</LI>
<LI>Limited support for Enterprise Library Logging.</LI>
<LI>Native support for model export to System Center Operations Manager Management Packs.</LI>
<LI>Support for existing applications through MSIL scanning for Event Log, Performance Counter, WMI and Enterprise Library instrumentation.</LI></OL>
<P>Please download the TSMMD right now and starting giving feedback.</P>
<P>THIS POSTING IS PROVIDED "AS IS" WITH NO WARRANTIES, AND CONFERS NO RIGHTS, CONTENTS MAY BE HOT</P>]]></content:encoded>
    </item>
    <item>
      <title>64bit DinnerNow, testing, Virtual Server and Hyper-V</title>
      <link>https://docs.microsoft.com/archive/blogs/daiken/64bit-dinnernow-testing-virtual-server-and-hyper-v</link>
      <pubDate>Wed, 13 Feb 2008 01:02:36 GMT</pubDate>
      <dc:creator><![CDATA[daiken]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/daiken/2008/02/13/64bit-dinnernow-testing-virtual-server-and-hyper-v/</guid>
      <description><![CDATA[A few people have asked questions about, or have had trouble installing the latest version of...]]></description>
      <content:encoded><![CDATA[<p>A few people have asked questions about, or have had trouble installing the latest version of DinnerNow on 64bit Vista machines. I thought I'd take some time out to explain the 64bit story and how you can get things going.</p>  <p>First, we don't support 64bit in the installation. We do support Vista, Vista SP1 and Windows Server 2008, but only 32bit versions. </p>  <p>Why you may ask? Isn't 64bit the future? (or the present depending upon your outlook in life?)</p>  <p>The simple answer is testing. </p>  <p>To get 2.5 out the door, I have to be fairly sure that it will install on a computer outside of Redmond. This means for each test pass I do, I use 3 separate VPC's, one for each OS. The starting point is a bare OS, with none of the prerequisites installed. One by one the prerequisites are installed. If the Dependency Checker fails at any point in any OS, the OS is rolled back to the start, and the test begins again. I use undo disks for this.</p>  <p>Once the DC passes, the undo disks are merged creating a base with the installed prerequisites. </p>  <p>The next task is the walk through document that we include with the install. You can find this in the documents folder. DN is installed fresh and the walk though is attempted. Each time I have to rebuild, we roll back the undo disks and start the walk through again. This is repeated for each OS, so that's all of that, 3 times.</p>  <p>Even worse, if Vista and Vista SP1 pass, then server fails a which requires a code change, the tests are restarted on ALL OS's. (How do I know the fix didn't break something on another OS?). I should really automate this testing, and at some point I may well do that.</p>  <p>So back to 64bit, to support 64bit, not only would the DC require more configuration, but I'd now have to run through 6 complete passes. This is not something I'd like to get to without some serious testing automation. </p>  <p>The other problem with 64bit, is the hardware we have for testing, only in the last week have I found time to upgrade to Hyper-V, which gives me the ability to run a 64bit guest OS. As a side note, Hyper-V is incredible. Even the test version we have runs more guests per server than Virtual Server did. Also if you are brave enough for a core install, its even better. ooooo and having 2 CPU's allocated to your VPC is pretty darn cool too. </p>  <p>The last part of the &quot;why doesn't DinnerNow run on 64bit&quot; is the size of the DN team. There is no build labs, ship teams, test teams, product planners, developers, UX teams or anything else. If there is ever more than 2 people working on DN, its because we have contracted some development out. The final push on DinnerNow 2.5 was James and myself. Other people have helped along the way, and without them we'd never ship anything, but do keep this in mind.</p>  <p>So will DN work on 64bit. Yes it does. The main blocker is the automated install and configuration. So what you have to do is look in the scripts/install folder. Look in the runme.ps1 powershell script file. </p>  <div class="csharpcode">   <pre class="alt"><span class="lnum">   1:  </span>. .\library.ps1</pre>

  <pre><span class="lnum">   2:  </span>cd ..\..</pre>

  <pre class="alt"><span class="lnum">   3:  </span>$DinnerNowRoot = (Get-Location).Path</pre>

  <pre><span class="lnum">   4:  </span>cd scripts\install</pre>

  <pre class="alt"><span class="lnum">   5:  </span>[Environment]::SetEnvironmentVariable(<span class="str">&quot;DinnerNow&quot;</span>,$DinnerNowRoot,<span class="str">&quot;machine&quot;</span>)</pre>

  <pre><span class="lnum">   6:  </span>$env:DinnerNow=$DinnerNowRoot</pre>

  <pre class="alt"><span class="lnum">   7:  </span>&#160;</pre>

  <pre><span class="lnum">   8:  </span>new-DatabaseAlias</pre>

  <pre class="alt"><span class="lnum">   9:  </span>&#160;</pre>

  <pre><span class="lnum">  10:  </span>invoke-SqlRestoreCommand</pre>

  <pre class="alt"><span class="lnum">  11:  </span>&#160;</pre>

  <pre><span class="lnum">  12:  </span>new-WFTrackingDatabase</pre>

  <pre class="alt"><span class="lnum">  13:  </span>&#160;</pre>

  <pre><span class="lnum">  14:  </span>Create-SQLASPMembership</pre>

  <pre class="alt"><span class="lnum">  15:  </span>&#160;</pre>

  <pre><span class="lnum">  16:  </span>enable-SvcExtensions</pre>

  <pre class="alt"><span class="lnum">  17:  </span>&#160;</pre>

  <pre><span class="lnum">  18:  </span>create-DinnerNowVdir</pre>

  <pre class="alt"><span class="lnum">  19:  </span>&#160;</pre>

  <pre><span class="lnum">  20:  </span>new-selfcert</pre>

  <pre class="alt"><span class="lnum">  21:  </span>&#160;</pre>

  <pre><span class="lnum">  22:  </span>bind-SSLCertificate</pre>

  <pre class="alt"><span class="lnum">  23:  </span>&#160;</pre>

  <pre><span class="lnum">  24:  </span>&amp; <span class="str">&quot;.\Build DinnerNow.bat&quot;</span></pre>

  <pre class="alt"><span class="lnum">  25:  </span>&#160;</pre>

  <pre><span class="lnum">  26:  </span>Enable-IISCopyrightHandler</pre>

  <pre class="alt"><span class="lnum">  27:  </span>&#160;</pre>

  <pre><span class="lnum">  28:  </span>Deploy-Gadget</pre>

  <pre class="alt"><span class="lnum">  29:  </span>&#160;</pre>

  <pre><span class="lnum">  30:  </span>Create-desktopicons</pre>
</div>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>

<p>You should see the first few lines load library.ps1. This is where most of the install/configuration code lives. (yes PowerShell is used for almost everything). After that is simple calls to scripts within the library. To get going on 64bit, all you need to do is manually work through the runme.ps1 file one script at a time. Sometimes the script will just work, sometimes you will need to change some paths. Hopefully the scripts are too cryptic and you should get through them.</p>

<p>One last tip. Don't do this on your only machine. Use a 64bit Virtual machine, or a spare. That way when you wreck something you can just role back your undo disc and start again.</p>

<p>Good Luck.</p>

<p>THIS POSTING IS PROVIDED &quot;AS IS&quot; WITH NO WARRANTIES, AND CONFERS NO RIGHTS, NOR WILL IT HELP AS PART OF A CALORIE CONTROLLED DIET</p>]]></content:encoded>
    </item>
    <item>
      <title>Happy Birthday DinnerNow</title>
      <link>https://docs.microsoft.com/archive/blogs/daiken/happy-birthday-dinnernow</link>
      <pubDate>Fri, 08 Feb 2008 18:37:56 GMT</pubDate>
      <dc:creator><![CDATA[daiken]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/daiken/2008/02/08/happy-birthday-dinnernow/</guid>
      <description><![CDATA[It's just over 1 year since we released the first version of DinnerNow to the Web, and I'm proud to...]]></description>
      <content:encoded><![CDATA[<p>It's just over 1 year since we released the first version of DinnerNow to the Web, and I'm proud to announce today we have released DinnerNow version 2.5 - which targets the .net framework 3.5 and Visual Studio 2008.</p>  <p>If you are not familiar with DinnerNow, check out <a href="https://www.dinnernow.net">www.dinnernow.net</a> for more info.</p>  <p>So what's new in this version?</p>  <p>Well, we've replace the entire ServicePortfolio solution with a brand new one which has considerably less code than previous versions and uses some of the new framework 3.5 features such as LINQ and workflow services. The result is something that should be more understandable, and aid in your learning.</p>  <p>We've also done away with the Console and Windows Service host. This time around ALL the WCF Services are hosted in IIS.</p>  <p>The workflow services have been attacked with my complexity axe, removing most of the mapping code. I always felt that got in the way of understanding the workflow - too many Order objects.</p>  <p>We've also moved things around a little, so DinnerNow works from <a href="https://localhost/dinnernow">https://localhost/dinnernow</a>, rather than stealing your IIS root and messing with you hosts files and proxy settings. As part of this, check out the installation steps which show how you can generate via script your own certificate root and SSL certificate (which we bind to the site to support https)</p>  <p>You can also hit F5 in any app and it starts debugging. (Previous versions required attachment to the web application). This coupled with the Service hosting means an impromptu&#160; demo is only a mouse click away.</p>  <p>The Web site has had a few changes too. We've tweak the CSS to work in FireFox, and also implemented more features using AJAX (and not just the update panel). The Web application is always something we hate touching as we are all server guys, so expect a few funnies.</p>  <p>The PowerShell cmdlets have also been tweaked to make it easier to demo and the installation is now almost 100% PowerShell. The dependency checker now correctly detects the OS (for a while Vista SP1 showed up as Server 2008 which caused a few problems when trying to install server roles)</p>  <p>The final piece is the Mobile Delivery application actually uses the CF 3.5 and WCF. It still looks like I designed the GUI, and we had to proxy the call back into the workflow service to enable the conversation to flow.</p>  <p>There are a stack of other minor things, too numerous to mention (and I'm sure to have missed something major out too - like the fact we re-factored the database ready for...).</p>  <p>We'd Love to hear from you about the new release. Comments, Questions are always welcome.</p>  <p>THIS POSTING IS PROVIDED &quot;AS IS&quot; WITH NO WARRANTIES, AND CONFERS NO RIGHTS</p>]]></content:encoded>
    </item>
    <item>
      <title>Keith Pleas shows Design for Operations</title>
      <link>https://docs.microsoft.com/archive/blogs/daiken/keith-pleas-shows-design-for-operations</link>
      <pubDate>Sun, 03 Feb 2008 00:43:57 GMT</pubDate>
      <dc:creator><![CDATA[daiken]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/daiken/2008/02/03/keith-pleas-shows-design-for-operations/</guid>
      <description><![CDATA[Not long after my appearance on .NET Rocks - my good friend Keith appears on show 100 of .Net Rocks...]]></description>
      <content:encoded><![CDATA[<p>Not long after <a href="https://www.dotnetrocks.com/default.aspx?showNum=306" target="_blank">my appearance on .NET Rocks</a> - my good friend Keith appears on show 100 of .Net Rocks TV - <a title="https://www.dnrtv.com/" href="https://www.dnrtv.com/">https://www.dnrtv.com/</a> - talking about and demonstrating the TSMMD. Check out the show and, yes go and watch the other 99 episodes too.</p>  <p>THIS POSTING IS PROVIDED &quot;AS IS&quot; WITH NO WARRANTIES, AND CONFERS NO RIGHTS, NOT NOW, NOT EVER</p>]]></content:encoded>
    </item>
    <item>
      <title>VSTSMMD requirements</title>
      <link>https://docs.microsoft.com/archive/blogs/daiken/vstsmmd-requirements</link>
      <pubDate>Tue, 29 Jan 2008 17:57:26 GMT</pubDate>
      <dc:creator><![CDATA[daiken]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/daiken/2008/01/29/vstsmmd-requirements/</guid>
      <description><![CDATA[Not long ago, I posted about the new version of the Management Model Designer. One thing I did not...]]></description>
      <content:encoded><![CDATA[<p>Not long ago, I posted about the <a href="https://blogs.msdn.com/daiken/archive/2008/01/09/new-year-models-code-discovery-and-management-pack-generation.aspx" target="_blank">new version of the Management Model Designer</a>. One thing I did not post was the requirements, and since I've been asked a few times now, I thought I best blog it.</p>  <p>The designer will require VSTS2008 (yes that is Team System as in Team Architect, Team Developer etc). It will not run in Pro or Std. The designer also has a dependency on the Guidance Automation Extensions (GAX).</p>  <p>Hope this helps.</p>  <p>THIS POSTING IS PROVIDED &quot;AS IS&quot; WITH NO WARRANTIES, AND CONFERS NO RIGHTS NOR WAS IT WRITTEN IN A FACTORY PRODUCING NUTS</p>]]></content:encoded>
    </item>
    <item>
      <title>LINQ and WCF Syndication</title>
      <link>https://docs.microsoft.com/archive/blogs/daiken/linq-and-wcf-syndication</link>
      <pubDate>Tue, 29 Jan 2008 02:44:20 GMT</pubDate>
      <dc:creator><![CDATA[daiken]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/daiken/2008/01/29/linq-and-wcf-syndication/</guid>
      <description><![CDATA[I must admit, having survived the last 22 data access technologies, I'm really liking LINQ. The fact...]]></description>
      <content:encoded><![CDATA[<p>I must admit, having survived the last 22 data access technologies, I'm really liking LINQ. The fact that I can use LINQ to query just about anything, against just about any data source is pretty cool. Lists and Arrays beware. Nested Correlated sub-queries are near - I also love to hear <a href="https://channel9.msdn.com/Showpost.aspx?postid=357683" target="_blank">Luca</a> speak about it.</p>  <p>Anyway, while preparing the latest DinnerNow release (coming soon), I had to rewrite the RSS feed for the restaurant. Obviously using the Syndication Support in WCF.</p>  <p>Since the Feed is simply returning menu items, you can imagine its a simple database call to return the menu items, then a loop to create syndication feed items for each one, then spit them out. Fine, but with LINQ, you can miss most of that out. In fact when I originally wrote this, it had 1 line of code which returned the results of a LINQ query. Some people thought this might be too much so I split it into many more lines as shown below.</p>  <p>Key in creating the Syndication items is line 15, as part of the LINQ query. The query projects directly into SyndicationItems. Note also the Links property being populated on line 27 - all pretty neat.</p>  <p>Since the feed type (atom or rss) is simply formatting, I actually specified this as a parameter and lines 37 to 39 work out which formatter to use, based upon the URL.</p>  <div class="csharpcode">   <pre class="alt"><span class="lnum">   1:  </span><span class="kwrd">public</span> System.ServiceModel.Syndication.SyndicationFeedFormatter GetMenuItems(</pre>

  <pre><span class="lnum">   2:  </span>    <span class="kwrd">string</span> feedType, </pre>

  <pre class="alt"><span class="lnum">   3:  </span>    <span class="kwrd">string</span> restaurantName, </pre>

  <pre><span class="lnum">   4:  </span>    <span class="kwrd">string</span> menuType)</pre>

  <pre class="alt"><span class="lnum">   5:  </span>{</pre>

  <pre><span class="lnum">   6:  </span>     var db = <span class="kwrd">new</span> DinnerNowDataContext();</pre>

  <pre class="alt"><span class="lnum">   7:  </span>&#160;</pre>

  <pre><span class="lnum">   8:  </span>     Uri incomingURI = (OperationContext.Current == <span class="kwrd">null</span> ? </pre>

  <pre class="alt"><span class="lnum">   9:  </span>        <span class="kwrd">new</span> Uri(<span class="str">&quot;https://localhost/&quot;</span>) : </pre>

  <pre><span class="lnum">  10:  </span>        OperationContext.Current.IncomingMessageHeaders.To);</pre>

  <pre class="alt"><span class="lnum">  11:  </span>&#160;</pre>

  <pre><span class="lnum">  12:  </span>     var items = from mi <span class="kwrd">in</span> db.MenuItems.AsEnumerable()</pre>

  <pre class="alt"><span class="lnum">  13:  </span>        <span class="kwrd">where</span> ((mi.Menu.Restaurant.Name == restaurantName) &amp;&amp; (mi.Menu.MenuType.Trim() == menuType))</pre>

  <pre><span class="lnum">  14:  </span>        orderby mi.Name</pre>

  <pre class="alt"><span class="lnum">  15:  </span>        select <span class="kwrd">new</span> SyndicationItem()</pre>

  <pre><span class="lnum">  16:  </span>        {</pre>

  <pre class="alt"><span class="lnum">  17:  </span>            Title = SyndicationContent.CreatePlaintextContent(mi.Name),</pre>

  <pre><span class="lnum">  18:  </span>            PublishDate = DateTime.MinValue,</pre>

  <pre class="alt"><span class="lnum">  19:  </span>            LastUpdatedTime = DateTime.MinValue,</pre>

  <pre><span class="lnum">  20:  </span>            Id = mi.MenuId.ToString(),</pre>

  <pre class="alt"><span class="lnum">  21:  </span>            Content = <span class="kwrd">new</span> TextSyndicationContent(</pre>

  <pre><span class="lnum">  22:  </span>        String.Format(</pre>

  <pre class="alt"><span class="lnum">  23:  </span>            CultureInfo.CurrentCulture,<span class="str">@&quot;&lt;p&gt;{0}&lt;/p&gt;&lt;p&gt;&lt;img src='{1}/{2}' style='border: 0px;width:216px;height:174px;' /&gt;&lt;/p&gt;&quot;</span>,</pre>

  <pre><span class="lnum">  24:  </span>                        mi.Description,</pre>

  <pre class="alt"><span class="lnum">  25:  </span>                        <span class="str">&quot;/DinnerNow&quot;</span>,</pre>

  <pre><span class="lnum">  26:  </span>                        mi.ImageLocation), TextSyndicationContentKind.Html),</pre>

  <pre class="alt"><span class="lnum">  27:  </span>            Links = { SyndicationLink.CreateAlternateLink(<span class="kwrd">new</span> Uri(incomingURI.AbsoluteUri + <span class="str">&quot;/&quot;</span> + mi.Name)) }</pre>

  <pre><span class="lnum">  28:  </span>         };</pre>

  <pre class="alt"><span class="lnum">  29:  </span>&#160;</pre>

  <pre><span class="lnum">  30:  </span>     SyndicationFeed feed = <span class="kwrd">new</span> SyndicationFeed(</pre>

  <pre class="alt"><span class="lnum">  31:  </span>        <span class="str">&quot;DinnerNow - Menu Items&quot;</span>,</pre>

  <pre><span class="lnum">  32:  </span>        <span class="str">&quot;Menu Items for Restaurant&quot;</span>,</pre>

  <pre class="alt"><span class="lnum">  33:  </span>        incomingURI,</pre>

  <pre><span class="lnum">  34:  </span>        items.ToList&lt;SyndicationItem&gt;()</pre>

  <pre class="alt"><span class="lnum">  35:  </span>        );</pre>

  <pre><span class="lnum">  36:  </span>&#160;</pre>

  <pre class="alt"><span class="lnum">  37:  </span>     <span class="kwrd">return</span> (feedType.ToLower(CultureInfo.CurrentCulture).Equals(<span class="str">&quot;atom&quot;</span>) ?</pre>

  <pre><span class="lnum">  38:  </span>        (<span class="kwrd">new</span> Atom10FeedFormatter(feed)) <span class="kwrd">as</span> SyndicationFeedFormatter :</pre>

  <pre class="alt"><span class="lnum">  39:  </span>        <span class="kwrd">new</span> Rss20FeedFormatter(feed));</pre>

  <pre><span class="lnum">  40:  </span>}</pre>
</div>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>

<p>Below is the contract, so you can see how the URL is put together. Something like https://localhost/DinnerNow/service/menussearchservice.svc/rss/restaurants/NorthWind/Dinner would activate the service.</p>

<div class="csharpcode">
  <pre class="alt"><span class="lnum">   1:  </span>[OperationContract]</pre>

  <pre><span class="lnum">   2:  </span>[WebGet(UriTemplate = <span class="str">@&quot;/{feedType}/restaurants/{restaurantName}/{menuType}&quot;</span>)]</pre>

  <pre class="alt"><span class="lnum">   3:  </span>SyndicationFeedFormatter GetMenuItems(<span class="kwrd">string</span> feedType, <span class="kwrd">string</span> restaurantName, <span class="kwrd">string</span> menuType);</pre>
</div>
<style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>

<p>Minus the contract, there really is only 5 lines of code - albeit split into multiple lines. Whilst this in itself is not that cool, the fact my code is no longer plagued with mind-numbing foreach loops is an absolute blessing. (re-write the above using ADO.NET if you want to see what I mean)</p>

<p>Long Live LINQ...</p>

<p>Note: this post was never meant to be a tutorial, simply a look how cool this is...</p>

<p>THIS POSTING IS PROVIDED &quot;AS IS&quot; WITH NO WARRANTIES, AND CONFERS NO RIGHTS </p>

<p>EVEN IF YOU HAVE A NOTE FROM YOUR MUM</p>

<p><font face="Consolas" color="#000000" size="2">&#160;</font></p>]]></content:encoded>
    </item>
    <item>
      <title>How much do you love PowerShell?</title>
      <link>https://docs.microsoft.com/archive/blogs/daiken/how-much-do-you-love-powershell</link>
      <pubDate>Mon, 28 Jan 2008 01:55:57 GMT</pubDate>
      <dc:creator><![CDATA[daiken]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/daiken/2008/01/28/how-much-do-you-love-powershell/</guid>
      <description><![CDATA[Here is someone who possibly loves Windows PowerShell more than I do.  Check out...]]></description>
      <content:encoded><![CDATA[<p>Here is someone who possibly loves Windows PowerShell more than I do.</p>  <p>Check out <a href="https://ca.youtube.com/watch?v=MWWzrp3xkYY">https://ca.youtube.com/watch?v=MWWzrp3xkYY</a>.</p>  <p>THIS POSTING IS PROVIDED &quot;AS IS&quot; WITH NO WARRANTIES, AND CONFERS NO RIGHTS SO THERE</p>]]></content:encoded>
    </item>
    <item>
      <title>Dinnernow at the LEAP Conference</title>
      <link>https://docs.microsoft.com/archive/blogs/daiken/dinnernow-at-the-leap-conference</link>
      <pubDate>Fri, 25 Jan 2008 13:49:00 GMT</pubDate>
      <dc:creator><![CDATA[daiken]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/daiken/2008/01/25/dinnernow-at-the-leap-conference/</guid>
      <description><![CDATA[Yesterday I presented twice a 3 hour session on DinnerNow.NET to Lead Enterprise Architects at the...]]></description>
      <content:encoded><![CDATA[<P>Yesterday I presented twice a 3 hour session on DinnerNow.NET to <A href="https://www.enthusiasm.nl/" target=_blank mce_href="https://www.enthusiasm.nl/">Lead Enterprise Architects at the LEAP Conference</A>. The session walked through our DinnerNow.Net demo (see <A href="https://www.dinnernow.net/" mce_href="https://www.dinnernow.net">www.dinnernow.net</A>) and talked some about the architecture, history and a whopping 1 hour demo.</P>
<P>Since the deck contains some pictures of DinnerNow and juicy bits on the next version, I've included it here.</P>
<P>THIS POSTING IS PROVIDED "AS IS" WITH NO WARRANTIES, AND CONFERS NO RIGHTS </P>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/07/24/44/85/DinnerNow.pptx" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-07-24-44-85/DinnerNow.pptx">DinnerNow.pptx</a></p>]]></content:encoded>
    </item>
    <item>
      <title>.NET ROCKS</title>
      <link>https://docs.microsoft.com/archive/blogs/daiken/net-rocks</link>
      <pubDate>Fri, 11 Jan 2008 11:35:19 GMT</pubDate>
      <dc:creator><![CDATA[daiken]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/daiken/2008/01/11/net-rocks/</guid>
      <description><![CDATA[It was my great pleasure to chat with Carl and Richard earlier this week on www.dotnetrocks.com. The...]]></description>
      <content:encoded><![CDATA[<p>It was my great pleasure to chat with Carl and Richard earlier this week on <a href="https://www.dotnetrocks.com">www.dotnetrocks.com</a>. The show is entitled &quot;<a href="https://www.dotnetrocks.com/default.aspx?showNum=306">David Aiken on Bridging the Gap between Dev and IT</a>&quot; and talks about working with IT Pros to build better managed applications, some of the technologies and strategies you can adopt to make it easier and PowerShell (I have to mention PowerShell everywhere).</p>  <p>One thing I would like to say is that chatting with Carl and Richard was almost the easiest thing I've done. Not only are they super easy to talk too, they also totally get what you are saying and can ask great questions and comment from their own experiences - which makes the conversation even better. (as its not just me on a rant). Do please check out the show and even better subscribe to the RSS feed from here <a title="https://www.intellectualhedonism.com/SyndicationService.asmx/GetRssCategory?categoryName=dnr" href="https://www.intellectualhedonism.com/SyndicationService.asmx/GetRssCategory?categoryName=dnr">https://www.intellectualhedonism.com/SyndicationService.asmx/GetRssCategory?categoryName=dnr</a> in your favorite Zune like media device and listen to the other 305 episodes.</p>  <p>Thanks Carl and Richard - .net ROCKS</p>  <p>THIS POSTING IS PROVIDED &quot;AS IS&quot; WITH NO WARRANTIES, AND CONFERS NO RIGHTS</p>]]></content:encoded>
    </item>
  </channel>
</rss>