<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Benjamin Day Consulting, Inc.: The Blog</title>
        <link>http://blog.benday.com/Default.aspx</link>
        <description>by Benjamin Day</description>
        <language>en-US</language>
        <copyright>Benjamin Day</copyright>
        <managingEditor>benday@benday.com</managingEditor>
        <generator>Subtext Version 1.9.5.176</generator>
        <image>
            <title>Benjamin Day Consulting, Inc.: The Blog</title>
            <url>http://blog.benday.com/images/RSS2Image.gif</url>
            <link>http://blog.benday.com/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>TFS2008: Get the current TFS Data Warehouse update interval</title>
            <category>Team Foundation Server (TFS)</category>
            <link>http://blog.benday.com/archive/2010/03/11/23265.aspx</link>
            <description>&lt;p&gt;It’s always strange to find out what stuff on The Internets is hard to find that you’d think would be a piece of cake to find.  Today, I needed to find out what the current Team Foundation Server 2008 data warehouse update interval was for my customer’s TFS instance and I was surprised by how hard this information was to find.  &lt;/p&gt;  &lt;p&gt;I knew that you needed to go to &lt;a title="http://localhost:8080/Warehouse/v1.0/warehousecontroller.asmx" href="http://your_tfs_name:8080/Warehouse/v1.0/warehousecontroller.asmx"&gt;http://your_tfs_name:8080/Warehouse/v1.0/warehousecontroller.asmx&lt;/a&gt; and then run the GetNextInterval command.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/TFS2008GetthecurrentTFSDataWarehouseupda_E2C6/image_6.png" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/TFS2008GetthecurrentTFSDataWarehouseupda_E2C6/image_thumb_2.png" width="545" height="578" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The problem was figuring out what the “lastInterval” parameter was supposed to be.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/TFS2008GetthecurrentTFSDataWarehouseupda_E2C6/image_8.png" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/TFS2008GetthecurrentTFSDataWarehouseupda_E2C6/image_thumb_3.png" width="530" height="348" /&gt;&lt;/a&gt;  &lt;/p&gt;  &lt;p&gt;The answer came from &lt;a href="http://blogs.msdn.com/alanh/archive/2008/05/12/some-helpful-administrative-operations.aspx" target="_blank"&gt;Alan Herbert’s blog post on administrative operations&lt;/a&gt; and was simply ‘0’.  &lt;/p&gt;  &lt;p&gt;So.  The question: How do you get the current interval for the TFS Warehouse update service and what is the correct value for the lastInterval parameter?  &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The answer: &lt;/strong&gt;Go to &lt;a title="http://eglvicea:8080/Warehouse/v1.0/warehousecontroller.asmx?op=GetNextInterval" href="http://your_tfs_name:8080/Warehouse/v1.0/warehousecontroller.asmx?op=GetNextInterval"&gt;http://your_tfs_name:8080/Warehouse/v1.0/warehousecontroller.asmx?op=GetNextInterval&lt;/a&gt; and enter ‘0’ for the ‘lastInterval’ parameter.&lt;/p&gt;  &lt;p&gt;-Ben &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;em&gt;-- Want help using, configuring, or migrating to Team Foundation Server 2008 or Team Foundation Server 2010?  Need help with automated QA testing with Visual Studio 2010 Ultimate Edition?  Drop us a line: &lt;a href="mailto:info@benday.com"&gt;info@benday.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&lt;img src="http://blog.benday.com/aggbug/23265.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Benjamin Day</dc:creator>
            <guid>http://blog.benday.com/archive/2010/03/11/23265.aspx</guid>
            <pubDate>Thu, 11 Mar 2010 21:21:51 GMT</pubDate>
            <wfw:comment>http://blog.benday.com/comments/23265.aspx</wfw:comment>
            <comments>http://blog.benday.com/archive/2010/03/11/23265.aspx#feedback</comments>
            <wfw:commentRss>http://blog.benday.com/comments/commentRss/23265.aspx</wfw:commentRss>
            <trackback:ping>http://blog.benday.com/services/trackbacks/23265.aspx</trackback:ping>
        </item>
        <item>
            <title>&amp;ldquo;NoSQL in the Cloud&amp;rdquo; panel discussion today (3/11/2010)</title>
            <category>Windows Azure Services</category>
            <link>http://blog.benday.com/archive/2010/03/11/23264.aspx</link>
            <description>&lt;p&gt;Sorry for the late notice on this but in a few hours I’m going to be participating in a panel discussion at the &lt;a href="http://nosqlboston.eventbrite.com/" target="_blank"&gt;“NoSQL Live” Boston conference&lt;/a&gt;. I’ll be the Microsoft guy on the panel and I’m guessing that I’ll be talking a lot about Windows Azure Storage.  &lt;/p&gt;  &lt;p&gt;The event runs from 8am to 11pm today at the John Hancock Hotel &amp;amp; Conference Center (40 Trinity Place, Boston, MA 02116).  The “NoSQL in the Cloud” panel discussion runs from 10:45a to 11:45a.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;NoSQL in the Cloud &lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;Moderated by Adam Wiggins &lt;/p&gt;    &lt;p&gt;Adam Wiggins is a hacker, entrepreneur, and open source enthusiast. As a cofounder of Heroku, he spends most of his time thinking about how to best deploy, run, and scale apps in the cloud.  He blogs at &lt;a href="http://adam.blog.heroku.com/"&gt;http://adam.blog.heroku.com/&lt;/a&gt; where he can be heard complaining about relational databases, and championing the new generation of datastores. &lt;/p&gt;    &lt;p&gt;Adam Kocoloski     &lt;br /&gt;Adam Kocoloski is CTO of Cloudant. Cloudant is a non-relational, zero-configuration, distributed database service based on Apache CouchDB. &lt;/p&gt;    &lt;p&gt;Daniel Rinehart     &lt;br /&gt;Daniel Rinehart is the Chief Software Architect at Allurent, where he is helping to build a new generation of innovative online shopping experiences using Flex. He has worked in the field of software development as an engineer and architect for the past ten years. Prior to joining Allurent he worked at Ruckus Network, Towers Perrin, and BiT Group. Allurent runs its infrastructure on the Amazon EC2 framework and as part of its production environment utilizes Amazon's SimpleDB service. &lt;/p&gt;    &lt;p&gt;Benjamin Day     &lt;br /&gt;Benjamin Day is a consultant and trainer specializing in software development best practices using Microsoft’s development tools, Windows Azure, Team Foundation Server, and Scrum.  He is a Microsoft MVP for Visual Studio Team System and a member of the Visual Studio Team System Customer Advisory Council at Microsoft.  Recently, Ben became one of the first certified trainers for the new Scrum Developer class from Scrum.org.  When not developing software, Ben likes to hang out with his wife and cats, play jazz piano, and geek out on all things food.  He can be contacted via &lt;a href="http://www.benday.com"&gt;http://www.benday.com&lt;/a&gt; and &lt;a href="http://blog.benday.com"&gt;http://blog.benday.com&lt;/a&gt;. &lt;/p&gt;    &lt;p&gt;Jonathan Ellis     &lt;br /&gt;Jonathan built a scalable, multi-petabyte storage system based on Reed-Solomon encoding for the Mozy backup service.  He is currently project chair for the Apache Cassandra distributed database and a Systems Architect for The Rackspace Cloud. &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;-Ben&lt;/p&gt;&lt;img src="http://blog.benday.com/aggbug/23264.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Benjamin Day</dc:creator>
            <guid>http://blog.benday.com/archive/2010/03/11/23264.aspx</guid>
            <pubDate>Thu, 11 Mar 2010 11:21:56 GMT</pubDate>
            <wfw:comment>http://blog.benday.com/comments/23264.aspx</wfw:comment>
            <comments>http://blog.benday.com/archive/2010/03/11/23264.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blog.benday.com/comments/commentRss/23264.aspx</wfw:commentRss>
            <trackback:ping>http://blog.benday.com/services/trackbacks/23264.aspx</trackback:ping>
        </item>
        <item>
            <title>TFS 2010 Iteration Backlog Workbook and Macro Execution Warnings</title>
            <category>Visual Studio Team System 2010 (VSTS2010)</category>
            <category>Team Foundation Server 2010</category>
            <category>Application Lifecycle Management (ALM)</category>
            <link>http://blog.benday.com/archive/2010/03/07/23263.aspx</link>
            <description>&lt;p&gt;Now I’m not an Excel genius or anything so if I’m doing this wrong, let me know.  Anyway, I went in TFS2010 to play around with the TFS2010 Agile Iteration Backlog workbook (Iteration Backlog.xlsm) and I ran in to some problems with Excel macro execution.  The Iteration Backlog workbook helps you to plan out the work in your Agile Iterations (or Scrum Sprints) using historical data from TFS about previous sprints and items in your &lt;a href="http://blog.benday.com/archive/2010/02/28/23262.aspx" target="_blank"&gt;product backlog&lt;/a&gt;.  In order to do it’s magic, the worksheet needs to be able to execute its macros.&lt;/p&gt;  &lt;p&gt;To open the iteration backlog workbook, open up Visual Studio 2010, go to Team Explorer, and find your Team Project.  From the Team Project, drill in to Documents –&amp;gt; Shared Documents –&amp;gt; Iteration 1.  Now you should see Iteration Backlog.xlsm.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/TFS2010IterationBacklogWorkbookandMacroE_8BA7/image_2.png" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/TFS2010IterationBacklogWorkbookandMacroE_8BA7/image_thumb.png" width="337" height="274" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;If you double-click the document, you’ll see the following File Download warning.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/TFS2010IterationBacklogWorkbookandMacroE_8BA7/image_4.png" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/TFS2010IterationBacklogWorkbookandMacroE_8BA7/image_thumb_1.png" width="481" height="252" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Hit OK.&lt;/p&gt;  &lt;p&gt;Excel should pop up and you should see a Server Workbook warning and a Security Warning.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/TFS2010IterationBacklogWorkbookandMacroE_8BA7/image_6.png" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/TFS2010IterationBacklogWorkbookandMacroE_8BA7/image_thumb_2.png" width="604" height="306" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;According to the &lt;a href="http://msdn.microsoft.com/en-us/library/dd380681(VS.100).aspx" target="_blank"&gt;current version of the documentation&lt;/a&gt;, you should be able to click the Options… button on the Security Warning to enable the Macros.  But instead -- at least on my machine – Excel goes in to a “hourglass” waiting mode and then I get a TF208085 error from TFS saying that “Office Excel has disabled macros in the workbook.  To recover the macros, save and re-open the workbook”.  &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/TFS2010IterationBacklogWorkbookandMacroE_8BA7/image_8.png" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/TFS2010IterationBacklogWorkbookandMacroE_8BA7/image_thumb_3.png" width="504" height="179" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Hmm.  Well, I don’t really want to do that.  Click OK on the Excel message box and then POOF! the Security Warning’s Option button disappears.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/TFS2010IterationBacklogWorkbookandMacroE_8BA7/image_10.png" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/TFS2010IterationBacklogWorkbookandMacroE_8BA7/image_thumb_4.png" width="581" height="274" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;At this point, you may be wondering “well, are the macros really disabled?”  Yes.  Totally disabled.  In case you’re wondering, click on the Capacity worksheet tab at the bottom of the Excel window.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/TFS2010IterationBacklogWorkbookandMacroE_8BA7/image_12.png" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/TFS2010IterationBacklogWorkbookandMacroE_8BA7/image_thumb_5.png" width="547" height="138" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You should now be on the Capacity worksheet and you should see a bunch of Macro warnings.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/TFS2010IterationBacklogWorkbookandMacroE_8BA7/image_14.png" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/TFS2010IterationBacklogWorkbookandMacroE_8BA7/image_thumb_6.png" width="632" height="234" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;(Doh!)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Here’s how to enable the macros.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/TFS2010IterationBacklogWorkbookandMacroE_8BA7/image_16.png" rel="lightbox"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/TFS2010IterationBacklogWorkbookandMacroE_8BA7/image_thumb_7.png" width="189" height="139" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Click on the &lt;strong&gt;big button in the upper left corner of Excel&lt;/strong&gt;. &lt;/p&gt;  &lt;p&gt;This should bring up a menu like the next picture.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/TFS2010IterationBacklogWorkbookandMacroE_8BA7/image_18.png" rel="lightbox"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/TFS2010IterationBacklogWorkbookandMacroE_8BA7/image_thumb_8.png" width="477" height="584" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Click on &lt;strong&gt;Excel Options&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;You should now be on the Excel Options dialog.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/TFS2010IterationBacklogWorkbookandMacroE_8BA7/image_20.png" rel="lightbox"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/TFS2010IterationBacklogWorkbookandMacroE_8BA7/image_thumb_9.png" width="511" height="282" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Select the &lt;strong&gt;Popular&lt;/strong&gt; tab page.  &lt;br /&gt;Check &lt;strong&gt;Show Developer tab in the Ribbon.     &lt;br /&gt;&lt;/strong&gt;Click the &lt;strong&gt;OK&lt;/strong&gt; button.&lt;/p&gt;  &lt;p&gt;The &lt;strong&gt;Developer &lt;/strong&gt;tab should now be visible in Excel.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/TFS2010IterationBacklogWorkbookandMacroE_8BA7/image_22.png" rel="lightbox"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/TFS2010IterationBacklogWorkbookandMacroE_8BA7/image_thumb_10.png" width="437" height="140" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Click the &lt;strong&gt;Developer&lt;/strong&gt; tab and locate the &lt;strong&gt;Code&lt;/strong&gt; section of the tab.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/TFS2010IterationBacklogWorkbookandMacroE_8BA7/image_24.png" rel="lightbox"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/TFS2010IterationBacklogWorkbookandMacroE_8BA7/image_thumb_11.png" width="304" height="173" /&gt;&lt;/a&gt;  &lt;/p&gt;  &lt;p&gt;Click &lt;strong&gt;Macro Security &lt;/strong&gt;to bring up the &lt;strong&gt;Trust Center&lt;/strong&gt; dialog.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/TFS2010IterationBacklogWorkbookandMacroE_8BA7/image_26.png" rel="lightbox"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/TFS2010IterationBacklogWorkbookandMacroE_8BA7/image_thumb_12.png" width="632" height="281" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Select &lt;strong&gt;Enable all macros (not recommended; potentially dangerous code can run)&lt;/strong&gt;.  (NOTE: this is the part where I’m wondering if there’s a better way to make this work.  That warning on the radio button option is sounds pretty dire.  If you know of a better way, please let me know.)&lt;/p&gt;  &lt;p&gt;Click &lt;strong&gt;OK&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Now that you’ve changed the Macro Settings, you need to re-open the Excel workbook.  &lt;/p&gt;  &lt;p&gt;Close Excel and re-open &lt;strong&gt;Iteration Backlog.xlsm&lt;/strong&gt; from Team Explorer.&lt;/p&gt;  &lt;p&gt;Now the macros should be working.&lt;/p&gt;  &lt;p&gt;-Ben&lt;/p&gt;&lt;img src="http://blog.benday.com/aggbug/23263.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Benjamin Day</dc:creator>
            <guid>http://blog.benday.com/archive/2010/03/07/23263.aspx</guid>
            <pubDate>Sun, 07 Mar 2010 15:18:15 GMT</pubDate>
            <wfw:comment>http://blog.benday.com/comments/23263.aspx</wfw:comment>
            <comments>http://blog.benday.com/archive/2010/03/07/23263.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blog.benday.com/comments/commentRss/23263.aspx</wfw:commentRss>
            <trackback:ping>http://blog.benday.com/services/trackbacks/23263.aspx</trackback:ping>
        </item>
        <item>
            <title>Creating a Project Backlog: Breaking down product ideas and requirements in to TFS2010 User Stories (PBIs)</title>
            <category>Visual Studio Team System 2010 (VSTS2010)</category>
            <category>Visual Studio Team System (VSTS)</category>
            <category>Team Foundation Server 2010</category>
            <category>Scrum</category>
            <category>Application Lifecycle Management (ALM)</category>
            <link>http://blog.benday.com/archive/2010/02/28/23262.aspx</link>
            <description>&lt;p&gt;It’s kind of amazing how much hidden detail and complexity there is in even the simplest software product and application ideas.  &lt;/p&gt;  &lt;p&gt;I lead a .NET user group that meets in Cambridge, MA called Beantown .NET.  Although I delegate some of the management of the group to other people, it essentially is my responsibility to schedule meetings, find speakers, manage the website, send out meeting invitations, and manage the RSVP list.  It’s not all that hard but lately I’ve been thinking that this could be streamlined and would make a good Windows Azure application.  A couple of days ago, I started taking some notes about what I wanted.  Here is what I wrote down:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;-    Add Meeting     &lt;br /&gt;  -    Meeting Id      &lt;br /&gt;  -    Topic      &lt;br /&gt;  -    Date      &lt;br /&gt;  -    Speaker Name      &lt;br /&gt;  -    Bio      &lt;br /&gt;  -    Abstract      &lt;br /&gt;  -    Location      &lt;br /&gt;  -    Attachments      &lt;br /&gt;-    Meeting RSVP Viewer      &lt;br /&gt;-    Export RSVP List      &lt;br /&gt;-    Send Invitations      &lt;br /&gt;-    Send Reminder      &lt;br /&gt;-    RSVP To Meeting      &lt;br /&gt;-    View/Edit Members      &lt;br /&gt;-    Send Test Email      &lt;br /&gt;-    Edit Email Template      &lt;br /&gt;-    Join Beantown&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Not too detailed.  Just enough to start to give my thoughts some shape.    &lt;/p&gt;  &lt;p&gt;Since I’m a Scrum and Team Foundation Server 2010 guy, I decided to try to turn this in to a Product Backlog and put it in TFS2010.  A Product Backlog is the grand wish-list for the product.  In this case, the product is the website for the user group and the tools to manage it.  If you’re using Scrum, the backlog is made up of Product Backlog Items (PBIs).  In Team Foundation Server 2010, the backlog is made up of User Story work items.  Whether you call them PBIs or User Stories, the idea is that try to describe what a user of your application wants to do, what kind of user the person is, and why they want to do that thing.  This “who? what? why?” usually turns in to a sentence that looks like “As a &amp;lt;&lt;em&gt;type of user&amp;gt;&lt;/em&gt;, I want to &amp;lt;&lt;em&gt;do something&amp;gt; &lt;/em&gt;because I &amp;lt;&lt;em&gt;reason&amp;gt;&lt;/em&gt;.”  &lt;/p&gt;  &lt;p&gt;Now, I’m kind of a food nerd and I do a lot of cooking.  When you’re making some kind of bread or you’re making pizza dough, it involves a series of steps of the course of hours or days.  In between these steps, the yeast is working on the dough causing it to rise and change flavor.  If you let your dough rise for 2 hours, you get a reasonably flavorful dough.  If let it go for 8 hours, it’s much better.  If you leave it for 24 hours, it’s worlds better.  (My $0.02, you need to let pizza dough rise for 24 hours.)  Your brain does similar stuff and when you’re working on User Stories, software architectures, or class designs and it’s helpful to walk away from time to time and let your brain work on the problem in the background.  &lt;/p&gt;  &lt;p&gt;So, the next day, I came back and tried to turn my notes in to some actual User Stories.  &lt;/p&gt;  &lt;p&gt;Here’s what I came up with:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;-    As a user group leader, I would like to schedule a meeting so I can begin the process of promoting the event.     &lt;br /&gt;-    As a user group leader, I would like to send out invitations to a meeting by email.      &lt;br /&gt;-    As a user group leader, I would like to send out a test meeting invitation so that I can verify that the invitation email is correct.      &lt;br /&gt;-    As a user group leader, I would like to send out an email reminder about a meeting.      &lt;br /&gt;-    As a user group leader, I would like to see a list of user group members so that I can view the details, edit, create, and delete members.      &lt;br /&gt;-    As a user group leader, I would like to edit an existing member.      &lt;br /&gt;-    As a user group leader, I would like to edit the meeting invitation template.      &lt;br /&gt;-    As a user group leader, I would like to edit the meeting reminder template.      &lt;br /&gt;-    As an invited member, I would like to RSVP for a  meeting.      &lt;br /&gt;-    As an invited member, I would like to un-RSVP for a meeting.      &lt;br /&gt;-    As a user group leader, I would like to view the RSVP list for a meeting.      &lt;br /&gt;-    As a user group leader, I would like to export the RSVP list for a meeting so I can use the list in other applications like excel, email, or in printed form.      &lt;br /&gt;-    As a user group member, I would like to unsubscribe from meeting announcements.       &lt;br /&gt;-    As a non-member, I would like to RSVP for a meeting and optionally be put on the email list.      &lt;br /&gt;-    As a non-member, I would like to join the email list so I can be invited to future meetings.       &lt;br /&gt;-    As a user group leader, I would like to post attachments related to a meeting so that anyone can download them from the website.       &lt;br /&gt;-    As a visitor to the website, I would like to view upcoming meetings.      &lt;br /&gt;-    As a visitor to the website, I would like to view past meetings.      &lt;br /&gt;-    As a visitor to the website, I would like to download files related to previous meetings.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;In less than 10 minutes, I came up with 19 user stories and identified 4 different kinds of users -- “user group leader”, “website visitor”, “non-member”, and “invited member”.  From a fairly simple idea, “hmm…it’d be nice if managing the user group were a little more automated”, I’m starting to see that there’s a fair amount of complexity here.  Looking at the list, I’m already starting to wonder if my product backlog is disorganized and perhaps going to be difficult to manage.  So, I re-read the User Stories and tried to identify some higher level stories that I could use to group stuff together. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;- As a user group leader, I need a way to schedule and manage meetings.     &lt;br /&gt;- As a user group leader, I need a way to manage the membership of the user group.      &lt;br /&gt;- As a user group leader, I need a way to manage attendee invitations and RSVPs for meetings.      &lt;br /&gt;- As an invited member, I would like to RSVP for a meeting.      &lt;br /&gt;- As a member, I would like to manage my profile information.      &lt;br /&gt;- As a visitor to the website, I would like to view information about the group.      &lt;br /&gt;- As a user group leader, I need to display past, present, and future meeting information so that people can view over the internet.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Once I got the top-level stories identified, I put all the stories in to TFS and along the way, I started finding some other stories that I had forgotten.  &lt;/p&gt;  &lt;p&gt;Here’s my product backlog in TFS2010:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/Breakingdownproductideasandrequirementsi_8B40/image_2.png" rel="lightbox"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/Breakingdownproductideasandrequirementsi_8B40/image_thumb.png" width="584" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Here’s a picture of my Stories Overview Report in TFS2010:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/Breakingdownproductideasandrequirementsi_8B40/image_4.png" rel="lightbox"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/Breakingdownproductideasandrequirementsi_8B40/image_thumb_1.png" width="608" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Here’s a &lt;a href="http://www.benday.com/blogfiles/CreateProjectBacklog/BenDay_BeantownDotNetWebSiteBacklog.pdf" target="_blank"&gt;link to download my TFS2010 Stories Overview Report&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Anyway, it’s never stops amazing me how such apparently simple ideas can turn hide so much complexity and detail.  This is just the functional requirements.  There’s still going to be non-functional requirements like security.  When we actually start trying to plan our development Sprints and turn these User Stories in to Tasks, we’re going to surface even more details and probably a bunch more User Stories.  When you start thinking about it, it’s no wonder it can be so difficult to deliver a project on-time and on-budget.  If you don’t go through an exercise like this on your projects, you might spend MONTHS thinking that your application is nearly finished and that you’re just about ready to deliver it.  It’s good to not be delusional about your projects, huh?   &lt;/p&gt;  &lt;p&gt;-Ben&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;-- &lt;em&gt;Need help adopting Team Foundation Server 2010 and Scrum?  Want help getting your Product Backlog under control?  Need some training on unit testing or Visual Studio 2010?  Drop us a line at &lt;a href="mailto:info@benday.com"&gt;info@benday.com&lt;/a&gt;. &lt;/em&gt;&lt;/p&gt;&lt;img src="http://blog.benday.com/aggbug/23262.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Benjamin Day</dc:creator>
            <guid>http://blog.benday.com/archive/2010/02/28/23262.aspx</guid>
            <pubDate>Sun, 28 Feb 2010 15:54:59 GMT</pubDate>
            <wfw:comment>http://blog.benday.com/comments/23262.aspx</wfw:comment>
            <comments>http://blog.benday.com/archive/2010/02/28/23262.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://blog.benday.com/comments/commentRss/23262.aspx</wfw:commentRss>
            <trackback:ping>http://blog.benday.com/services/trackbacks/23262.aspx</trackback:ping>
        </item>
        <item>
            <title>Run Azure Development Storage from Visual Studio Unit Tests</title>
            <link>http://blog.benday.com/archive/2010/02/24/23261.aspx</link>
            <description>&lt;p&gt;I wrote an article a while back for &lt;a href="http://searchwindevelopment.techtarget.com" target="_blank"&gt;SearchWinDevelopment.com&lt;/a&gt; showing you how to start Azure Development Storage from Visual Studio unit tests.  &lt;a href="http://searchwindevelopment.techtarget.com/tip/0,289483,sid8_gci1381535,00.html" target="_blank"&gt;It just recently got posted on their site.&lt;/a&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Use Azure development storage from unit tests       &lt;br /&gt;&lt;/strong&gt;by Benjamin Day&lt;/p&gt;    &lt;p&gt;If you're writing an application that's going to use Windows Azure, you have two options for your persistent data storage (aka your database). Option #1 is SQL Azure which is Microsoft's relational database in the cloud. Option #2, Azure Storage, is similar to a relational database but is better thought of as "structured storage". Reasons to choose one Azure storage option over the other, is a discussion that's outside of the scope of this article but basically comes down to performance and cost. &lt;/p&gt;    &lt;p&gt;If you're writing a Windows Azure application and have chosen to go the Azure Storage route, you get a convenient local version that run on your desktop called Development Storage. Development Storage (DevelopmentStorage.exe) supplies a set of REST-based Web service endpoints that behave exactly the same as the cloud-based, production Azure Storage endpoints. Since development storage runs on your local machine rather than on Microsoft's servers, you don't have to pay for your usage. &lt;/p&gt;    &lt;p&gt;So, what does this have to do with unit tests? &lt;/p&gt;    &lt;p&gt;Well, if your unit tests depend on Dev Storage's endpoints to be running and active, you need to make sure that DevelopmentStorage.exe is running and properly initialized before the tests start to execute. The problem is that DevelopmentStorage.exe only gets automatically started when you start debugging a cloud application project in Visual Studio. Sure, that's not the end of the world but it's kind of inconvenient to manually start it and it's annoying when you're suddenly staring a list of unit tests that are all failing.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;-Ben&lt;/p&gt;  &lt;p&gt;&lt;em&gt;-- Looking for training on Windows Azure &amp;amp; Azure Storage?  Check out our &lt;a href="http://www.benday.com/DisplayWebPage.aspx?itemId=117" target="_blank"&gt;Hands-on Windows Azure Application Architecture &amp;amp; Development&lt;/a&gt; course.&lt;/em&gt;&lt;/p&gt;&lt;img src="http://blog.benday.com/aggbug/23261.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Benjamin Day</dc:creator>
            <guid>http://blog.benday.com/archive/2010/02/24/23261.aspx</guid>
            <pubDate>Wed, 24 Feb 2010 16:19:12 GMT</pubDate>
            <wfw:comment>http://blog.benday.com/comments/23261.aspx</wfw:comment>
            <comments>http://blog.benday.com/archive/2010/02/24/23261.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blog.benday.com/comments/commentRss/23261.aspx</wfw:commentRss>
            <trackback:ping>http://blog.benday.com/services/trackbacks/23261.aspx</trackback:ping>
        </item>
        <item>
            <title>Beantown .NET meeting on Thursday, 3/4/2010 &amp;ndash; James Phillips, &amp;ldquo;POCO es mucho: WCF, EF, and Class Design&amp;rdquo;</title>
            <category>Beantown .NET User Group (INETA)</category>
            <link>http://blog.benday.com/archive/2010/02/23/23260.aspx</link>
            <description>&lt;p&gt;Hi All -- &lt;/p&gt;  &lt;p&gt;Beantown .NET is going to be meeting this Thursday, 3/4/2010.  This month we have &lt;b&gt;James Phillips &lt;/b&gt;presenting “&lt;b&gt;POCO es mucho: WCF, EF, and Class Design&lt;/b&gt;”.  &lt;/p&gt;  &lt;p&gt;As always, our meeting is open to everyone so bring your friends and co-workers – better yet, bring your boss. It is not required to RSVP for our meetings but if you know you’re coming, &lt;b&gt;please RSVP by 3pm on the day of the meeting&lt;/b&gt; to help speed your way through building security and to give us an idea how much pizza to order. &lt;a href="http://blog.benday.com/contact.aspx" target="_blank"&gt;Click here to RSVP&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Future meetings:&lt;/p&gt;  &lt;p&gt;- April 1 – Benjamin Day, What’s New with Team Foundation Server 2010   &lt;br /&gt;- May 6 – TBA     &lt;br /&gt;- June 3 – TBA &lt;/p&gt;  &lt;p&gt;-Ben &lt;/p&gt;  &lt;p&gt;&lt;b&gt;When:&lt;/b&gt; Thursday, 3/4/10, 6p – 8p&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Where:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Microsoft NERD&lt;/p&gt;  &lt;p&gt;1 Memorial Drive&lt;/p&gt;  &lt;p&gt;Cambridge, MA&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Directions: &lt;/b&gt;&lt;a href="http://microsoftcambridge.com/About/Directions/tabid/89/Default.aspx"&gt;http://microsoftcambridge.com/About/Directions/tabid/89/Default.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Parking: &lt;/b&gt;Paid parking is available in 1 Memorial Drive.  &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Title: &lt;/b&gt;POCO es mucho: WCF, EF, and Class Design &lt;/p&gt;  &lt;p&gt;(- or - a little is a lot)&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Abstract:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Since the release of WCF 3.5 and the capability of LINQ to SQL to support POCO (Plain Old CLR Object) there has been a real shortcoming in the Entity Framework since its first public outing. This short coming has made it difficult to fully realize the benefits of POCO in a multi-tiered architecture, especially ones that are based on a EF-WCF-Client model. With the advent of .NET 4.0 on the horizon and VS 2010 being tried out by the development community, we have finally seeing the unshackling of POCO with EF 4.0!&lt;/p&gt;  &lt;p&gt;This presentation will show how POCO was treated pre-4.0 and how it can be used in the new .NET framework and more specifically the improvements of EF.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Bio: &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Jamie is a Senior Software Engineer with over 11 years experience in the Telecomm, e Commerce, Finance and Healthcare industries. He is passionate about his work with the .NET framework and is constantly looking for ways to expand and improve his knowledge. Aside from his passion and expertise in technology his natural ability to adapt to change has lead him to become a practicing SCRUM Master and evangelist.&lt;/p&gt;&lt;img src="http://blog.benday.com/aggbug/23260.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Benjamin Day</dc:creator>
            <guid>http://blog.benday.com/archive/2010/02/23/23260.aspx</guid>
            <pubDate>Tue, 23 Feb 2010 15:02:53 GMT</pubDate>
            <wfw:comment>http://blog.benday.com/comments/23260.aspx</wfw:comment>
            <comments>http://blog.benday.com/archive/2010/02/23/23260.aspx#feedback</comments>
            <wfw:commentRss>http://blog.benday.com/comments/commentRss/23260.aspx</wfw:commentRss>
            <trackback:ping>http://blog.benday.com/services/trackbacks/23260.aspx</trackback:ping>
        </item>
        <item>
            <title>Test-Driven Development (TDD) &amp;amp; Katas</title>
            <category>Unit Testing / Test-Driven Development (TDD)</category>
            <link>http://blog.benday.com/archive/2010/02/23/23259.aspx</link>
            <description>&lt;p&gt;I was in a discussion with some other Scrum &amp;amp; Test-Driven Development (TDD) practitioners over the last few days and was just introduced to the idea of a “kata”.  &lt;/p&gt;  &lt;p&gt;According to &lt;a href="http://en.wikipedia.org/wiki/Kata" target="_blank"&gt;Wikipedia&lt;/a&gt;, “Kata is a Japanese word describing detailed choreographed patterns of movements practiced either solo or in pairs.”  &lt;a href="http://butunclebob.com/ArticleS.UncleBob.TheBowlingGameKata" target="_blank"&gt;Bob Martin says&lt;/a&gt;, “A kata is meant to be memorized.  Students of a kata study it as a form, not as a conclusion.  It is not the conclusion of the kata that matters, it’s the steps that lead to the conclusion.”&lt;/p&gt;  &lt;p&gt;Now what does this have to do with TDD?  Well, as someone who does a lot of training and mentoring work in software, it’s always a challenge to get developers to truly understand the process that I go through when trying to design and develop an application using TDD.  Sure, I can tell you the steps and walk you through the process with hands-on labs but how do I &lt;strong&gt;&lt;u&gt;know&lt;/u&gt;&lt;/strong&gt; that you really understand?  Well, I think that learning TDD katas are something in between knowing the steps of doing TDD and being led step-by-step through doing TDD.  Looking at a &lt;a href="http://osherove.com/tdd-kata-1/" target="_blank"&gt;kata that Roy Osherove has on his site&lt;/a&gt;, it tells you what you should do in each step but it doesn’t tell you &lt;strong&gt;how&lt;/strong&gt; to do it.  &lt;/p&gt;  &lt;p&gt;This looks like a great way to communicate how I would break down a development task so that I can then tackle it using TDD.  I think I’ll be adding this to my classes soon.  &lt;/p&gt;  &lt;p&gt;-Ben&lt;/p&gt;&lt;img src="http://blog.benday.com/aggbug/23259.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Benjamin Day</dc:creator>
            <guid>http://blog.benday.com/archive/2010/02/23/23259.aspx</guid>
            <pubDate>Tue, 23 Feb 2010 12:12:45 GMT</pubDate>
            <wfw:comment>http://blog.benday.com/comments/23259.aspx</wfw:comment>
            <comments>http://blog.benday.com/archive/2010/02/23/23259.aspx#feedback</comments>
            <wfw:commentRss>http://blog.benday.com/comments/commentRss/23259.aspx</wfw:commentRss>
            <trackback:ping>http://blog.benday.com/services/trackbacks/23259.aspx</trackback:ping>
        </item>
        <item>
            <title>Database Project Types in Visual Studio 2010</title>
            <category>VSTS DBPro</category>
            <category>Visual Studio Team System 2010 (VSTS2010)</category>
            <category>Visual Studio Team System (VSTS)</category>
            <category>Application Lifecycle Management (ALM)</category>
            <link>http://blog.benday.com/archive/2010/02/21/23258.aspx</link>
            <description>&lt;p&gt;I was at Microsoft in Redmond, WA this week for the 2010 MVP Summit.  While I was there, some of us got a chance to do a side discussion with Barclay Hill of the VS Database Project team.  &lt;/p&gt;  &lt;p&gt;Barclay pointed out something in Visual Studio 2010’s list of Database project that I hadn’t noticed yet.  Open up Visual Studio 2010 and go to the Create New Project dialog. In the left panel (“Installed Templates”), choose Database.  You should now see the list of projects shown below.  &lt;/p&gt;  &lt;p&gt;Ok.  So you’ve got the familiar "DBPro” projects – SQL Server 2005/2008 Database Project, SQL Server 2005/2008 Server Project, the SQL Server 2005/2008 Wizard, SQL CLR Database Project – but what is that &lt;strong&gt;SQL Server Data-tier Application&lt;/strong&gt;?&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/DatabaseProjectTypesinVisualStudio2010_8598/image_4.png" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/DatabaseProjectTypesinVisualStudio2010_8598/image_thumb_1.png" width="644" height="403" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Well, that’s a new project type that is just for use with SQL Server 2008 R2 that creates &lt;a href="http://www.brentozar.com/archive/2009/08/sql-server-2008-r2-the-dac-pack/" target="_blank"&gt;DAC Packs&lt;/a&gt;.  DAC stands for Data-tier Application.  (Yah…so, I’m not sure what the “C” in DAC means.  Maybe &lt;strong&gt;&lt;u&gt;D&lt;/u&gt;&lt;/strong&gt;ata-tier &lt;strong&gt;&lt;u&gt;A&lt;/u&gt;&lt;/strong&gt;ppli&lt;strong&gt;&lt;u&gt;C&lt;/u&gt;&lt;/strong&gt;ation?  Weird.)  Anyway, DACs are coming out of the SQL Server team and have similar functionality to what we’ve had for a while in DBPro (aka “Data Dude”) projects.  The idea is that they’ll help you streamline deployment of your database objects from within a Visual Studio solution.  The key takeaway here is that this project type *only* works with SQL Server 2008 R2 databases.  &lt;/p&gt;  &lt;p&gt;-Ben&lt;/p&gt;&lt;img src="http://blog.benday.com/aggbug/23258.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Benjamin Day</dc:creator>
            <guid>http://blog.benday.com/archive/2010/02/21/23258.aspx</guid>
            <pubDate>Sun, 21 Feb 2010 14:53:07 GMT</pubDate>
            <wfw:comment>http://blog.benday.com/comments/23258.aspx</wfw:comment>
            <comments>http://blog.benday.com/archive/2010/02/21/23258.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blog.benday.com/comments/commentRss/23258.aspx</wfw:commentRss>
            <trackback:ping>http://blog.benday.com/services/trackbacks/23258.aspx</trackback:ping>
        </item>
        <item>
            <title>Beantown .NET meeting on Thursday, 2/11/2010: Rjae Easton, &amp;quot;Parallelism Zen for .NET Developers&amp;quot;</title>
            <category>Beantown .NET User Group (INETA)</category>
            <link>http://blog.benday.com/archive/2010/02/01/23256.aspx</link>
            <description>&lt;p&gt;Beantown .NET is going to be meeting next Thursday, 2/11/2010.  This month we have &lt;b&gt;Rjae Easton &lt;/b&gt;presenting “&lt;b&gt;Parallelism Zen for .NET Developers&lt;/b&gt;”.  &lt;/p&gt;  &lt;p&gt;As always, our meeting is open to everyone so bring your friends and co-workers – better yet, bring your boss. It is not required to RSVP for our meetings but if you know you’re coming, &lt;b&gt;please RSVP by email by 3pm on the day of the meeting&lt;/b&gt; to help speed your way through building security and to give us an idea how much pizza to order. &lt;/p&gt;  &lt;p&gt;Future meetings:&lt;/p&gt;  &lt;p&gt;- March 4 – James Phillips, Entity Framework, WCF, &amp;amp; Unit Testing&lt;/p&gt;  &lt;p&gt;- April 1 – TBA &lt;/p&gt;  &lt;p&gt;- May 6 – TBA &lt;/p&gt;  &lt;p&gt;-Ben &lt;/p&gt;  &lt;p&gt;&lt;b&gt;When:&lt;/b&gt; Thursday, 2/11/10, 6p – 8p&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Where:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Microsoft NERD&lt;/p&gt;  &lt;p&gt;1 Memorial Drive&lt;/p&gt;  &lt;p&gt;Cambridge, MA&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Directions: &lt;/b&gt;&lt;a href="http://microsoftcambridge.com/About/Directions/tabid/89/Default.aspx"&gt;http://microsoftcambridge.com/About/Directions/tabid/89/Default.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Parking: &lt;/b&gt;Paid parking is available in 1 Memorial Drive.  &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Title: &lt;/b&gt;Parallelism Zen for .NET Developers&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Abstract:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;So here’s the question: if Moore’s law is indeed bounded by quantum tunneling, then how the heck are we supposed to produce higher performing and more scalable systems. Well, the answer is upon is: put more and more processors into our systems. Multi-core systems are now ubiquitous and some projections talk about 64 to 128 cores as commonplace on the server in the very near future.&lt;/p&gt;  &lt;p&gt;But that’s not a complete solution, is it? Until we write software to harness multiple cores, we are bounded by the speed of a single processor and a single unit of work. This presentation is about how use parallelism constructs in .NET Framework 4.0 to produce truly concurrent processing. We will test the differences between unbounded threading and work-stealing thread pools, see how to partition compute-bound operations by structure and by data, and examine synchronization and exception handling in a parallel programming model.&lt;/p&gt;  &lt;p&gt;There’s going to be lots of code, mostly code, so if you would rather see bar graphs and theory this is not the talk for you.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Bio: &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Rjae has been a software developer for 23 years now, but still gets carded. He has had many opportunities to manage, but has eschewed them all because somebody has to write the code. Rjae is methodology agnostic and prefers to focus on three practices: free-flowing communication, test-driven development, and cleaning code every single day.&lt;/p&gt;  &lt;p&gt;Rjae works with a network other Zen programmers to provide solutions for finance, healthcare, and various other industries. He is currently writing a book titled: Test Driven Development Zen.&lt;/p&gt;&lt;img src="http://blog.benday.com/aggbug/23256.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Benjamin Day</dc:creator>
            <guid>http://blog.benday.com/archive/2010/02/01/23256.aspx</guid>
            <pubDate>Mon, 01 Feb 2010 14:53:07 GMT</pubDate>
            <wfw:comment>http://blog.benday.com/comments/23256.aspx</wfw:comment>
            <comments>http://blog.benday.com/archive/2010/02/01/23256.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blog.benday.com/comments/commentRss/23256.aspx</wfw:commentRss>
            <trackback:ping>http://blog.benday.com/services/trackbacks/23256.aspx</trackback:ping>
        </item>
        <item>
            <title>Windows Azure Sample Code &amp;ndash; A Real Application</title>
            <category>ASP.NET</category>
            <category>C#</category>
            <category>Best Practices with Visual Studio Ultimate 2010</category>
            <category>Windows Azure Services</category>
            <link>http://blog.benday.com/archive/2010/01/08/23255.aspx</link>
            <description>&lt;p&gt;We here at Benjamin Day Consulting, Inc have been working on creating a training course for &lt;a href="http://www.benday.com/DisplayWebPage.aspx?itemId=117" target="_blank"&gt;Windows Azure&lt;/a&gt;.  Rather than just showing the students how to do basic skills and coding with Windows Azure and Azure Storage, I wanted to be able to make some architectural recommendations and be able to describe the best practices for not just coding but also unit testing.  (Just because Windows Azure is a new technology doesn’t mean that developers should ignore known and established best practices, right?)  So, this pretty much meant that we had to write a real application.&lt;/p&gt;  &lt;p&gt;What we wrote was a content management system to run and maintain a web site.  &lt;a title="Download the source code" href="http://www.benday.com/DisplayWebPage.aspx?linkId=112" target="_blank"&gt;Download the source code.&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I’ll be writing more about this code (hopefully) over the next few months.  &lt;/p&gt;  &lt;p&gt;Here are some of the goals for the application:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;unit testing &amp;amp; testability&lt;/li&gt;    &lt;li&gt;use Windows Azure Storage as the back-end&lt;/li&gt;    &lt;li&gt;use the Repository pattern to encapsulate the data access logic for maintenance and testability purposes&lt;/li&gt;    &lt;li&gt;use the Domain Model and Service Layer patterns for business logic&lt;/li&gt;    &lt;li&gt;use Domain Model objects that require complex saves across table storage and blob storage&lt;/li&gt;    &lt;li&gt;implement lazy loading for properties on the domain model objects in a medium-trust environment&lt;/li&gt;    &lt;li&gt;use Model-View-Presenter in the ASP.NET presentation tier&lt;/li&gt;    &lt;li&gt;re-usable storage logic using C# generics&lt;/li&gt;    &lt;li&gt;Forms Authentication security using the sample Membership and Role providers&lt;/li&gt;    &lt;li&gt;Dependency Injection using Unity with Windows Azure&lt;/li&gt;    &lt;li&gt;Access Windows Azure Storage from outside of a hosted Windows Azure application role&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;There are two projects that you need to know about in the sample code: &lt;strong&gt;Benday.Cms.CloudService&lt;/strong&gt; and &lt;strong&gt;Benday.Cms.Security.WpfUi&lt;/strong&gt;.  The CloudService project governs all the role-based code.  The WpfUi has all the initialization logic for storage and allows you to set up an administrator user and create test content for the web site.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/WindowsAzureSampleCodeARealApplication_105E4/image_2.png" rel="lightbox"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/WindowsAzureSampleCodeARealApplication_105E4/image_thumb.png" width="529" height="354" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;When you start the CloudService project, it will start up the Azure WebRole for the web site.  This is the Benday.Cms.WebUI project.  Once you have used the WpfUi application to add an administrator, you can log in to the administrator web site by going to &lt;a href="http://localhost:81/administrator"&gt;http://localhost:81/administrator&lt;/a&gt;.  The default username is administrator and the default password is &lt;a href="mailto:P@$$w0rd"&gt;P@$$w0rd&lt;/a&gt;.  If you’ve used WpfUi to create test content, you’ll be dropped in to the Folder List screen and you should see 3 content folders for the website.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/WindowsAzureSampleCodeARealApplication_105E4/image_6.png" rel="lightbox"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/WindowsAzureSampleCodeARealApplication_105E4/image_thumb_2.png" width="644" height="295" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Click on the folders to view the pages, links, and files contained in that folder.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/WindowsAzureSampleCodeARealApplication_105E4/image_10.png" rel="lightbox"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.benday.com/images/blog_benday_com/WindowsLiveWriter/WindowsAzureSampleCodeARealApplication_105E4/image_thumb_4.png" width="524" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I hope you learn something from our code and let me know if you have any problems or suggestions.&lt;/p&gt;  &lt;p&gt;&lt;a title="Download the source code" href="http://www.benday.com/DisplayWebPage.aspx?linkId=112" target="_blank"&gt;Download the source code.&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;-Ben&lt;/p&gt;  &lt;p&gt;-- &lt;em&gt;Looking for Windows Azure training?  Need help getting going with Windows Azure?  Want some architectural guidance?  Drop us a line at &lt;a href="mailto:info@benday.com"&gt;info@benday.com&lt;/a&gt; and be sure to check out the course description for our upcoming &lt;a href="http://www.benday.com/DisplayWebPage.aspx?itemId=117" target="_blank"&gt;Windows Azure Application Architecture &amp;amp; Development course&lt;/a&gt;!&lt;/em&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;/li&gt;    &lt;li&gt;&lt;/li&gt;    &lt;li&gt;&lt;/li&gt;    &lt;li&gt;&lt;/li&gt; &lt;/ul&gt;&lt;img src="http://blog.benday.com/aggbug/23255.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Benjamin Day</dc:creator>
            <guid>http://blog.benday.com/archive/2010/01/08/23255.aspx</guid>
            <pubDate>Sat, 09 Jan 2010 00:45:21 GMT</pubDate>
            <wfw:comment>http://blog.benday.com/comments/23255.aspx</wfw:comment>
            <comments>http://blog.benday.com/archive/2010/01/08/23255.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blog.benday.com/comments/commentRss/23255.aspx</wfw:commentRss>
            <trackback:ping>http://blog.benday.com/services/trackbacks/23255.aspx</trackback:ping>
        </item>
    </channel>
</rss>