<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>Visual Studio</title>
        <link>http://www.rickgaribay.net/category/9.aspx</link>
        <description>Visual Studio</description>
        <language>en-US</language>
        <copyright>Rick G. Garibay</copyright>
        <managingEditor>rickgaribay@hotmail.com</managingEditor>
        <generator>Subtext Version 1.9.5.176</generator>
        <item>
            <title>The URL X for Web project Y is configured to use IIS as the web server but the URL is currently configured on the IIS Express web server&amp;hellip;</title>
            <link>http://rickgaribay.net/archive/2012/11/08/the-url-x-for-web-project-y-is-configured-to.aspx</link>
            <description>&lt;p&gt;I was working on some demos today moving from a VM to my core host OS and when I tried to open the solution in VS12 that contains a handful of ASP.NET and WCF Service application projects, VS refused to so so, reporting the following error:&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000" face="Courier New"&gt;The URL X for Web project Y is configured to use IIS as the web server but the URL is currently configured on the IIS Express web server. To open this project, you must edit the 'C:\Users\User\Documents\IISExpress\config\applicationhost.config' file to change the port of the site currently using the URL in IIS Express.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;I remembered that I had shut down IIS because I was working on some node.js stuff, so I started all services and still had no luck.&lt;/p&gt;  &lt;p&gt;From there, I went into the config file for IISExpress as directed and changed the ports to something other than 80, still to no avail.&lt;/p&gt;  &lt;p&gt;The solution was to open the .csproj files, find the UseIIS element and change it to False:&lt;/p&gt;  &lt;p&gt;&amp;lt;VisualStudio&amp;gt;   &lt;br /&gt;      &amp;lt;FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}"&amp;gt;    &lt;br /&gt;        &amp;lt;WebProjectProperties&amp;gt;    &lt;br /&gt;      &lt;font style="background-color: #ffff00"&gt;    &amp;lt;UseIIS&amp;gt;False&amp;lt;/UseIIS&amp;gt;&lt;/font&gt;    &lt;br /&gt;          &amp;lt;AutoAssignPort&amp;gt;True&amp;lt;/AutoAssignPort&amp;gt;    &lt;br /&gt;          &amp;lt;DevelopmentServerPort&amp;gt;4383&amp;lt;/DevelopmentServerPort&amp;gt;    &lt;br /&gt;          &amp;lt;DevelopmentServerVPath&amp;gt;/&amp;lt;/DevelopmentServerVPath&amp;gt;    &lt;br /&gt;          &amp;lt;IISUrl&amp;gt;&lt;a href="http://localhost/StatusStreamClient"&gt;http://localhost/StatusStreamClient&lt;/a&gt;&amp;lt;/IISUrl&amp;gt;    &lt;br /&gt;          &amp;lt;NTLMAuthentication&amp;gt;False&amp;lt;/NTLMAuthentication&amp;gt;    &lt;br /&gt;          &amp;lt;UseCustomServer&amp;gt;False&amp;lt;/UseCustomServer&amp;gt;    &lt;br /&gt;          &amp;lt;CustomServerUrl&amp;gt;    &lt;br /&gt;          &amp;lt;/CustomServerUrl&amp;gt;    &lt;br /&gt;          &amp;lt;SaveServerSettingsInUserFile&amp;gt;False&amp;lt;/SaveServerSettingsInUserFile&amp;gt;    &lt;br /&gt;        &amp;lt;/WebProjectProperties&amp;gt;    &lt;br /&gt;      &amp;lt;/FlavorProperties&amp;gt;    &lt;br /&gt;    &amp;lt;/VisualStudio&amp;gt;&lt;/p&gt;  &lt;p&gt;Of course, you’ll need to reset this though the project properties based on whether you want to use IISExpress or IIS to host your application.&lt;/p&gt;  &lt;p&gt;I’m not sure if this is a bug or an environmental issue, but regardless, I can’t imagine why the presence of a web server or lack thereof should ever be a reason to stop a solution from loading projects, ever. If I have time, I may log this to Connect, and if anyone has any insights, please let me know.&lt;/p&gt;  &lt;p&gt;Until then, hope this help should you run into the same issue. &lt;/p&gt;&lt;img src="http://rickgaribay.net/aggbug/350.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rick G. Garibay</dc:creator>
            <guid>http://rickgaribay.net/archive/2012/11/08/the-url-x-for-web-project-y-is-configured-to.aspx</guid>
            <pubDate>Thu, 08 Nov 2012 17:06:10 GMT</pubDate>
            <comments>http://rickgaribay.net/archive/2012/11/08/the-url-x-for-web-project-y-is-configured-to.aspx#feedback</comments>
            <wfw:commentRss>http://rickgaribay.net/comments/commentRss/350.aspx</wfw:commentRss>
            <trackback:ping>http://rickgaribay.net/services/trackbacks/350.aspx</trackback:ping>
        </item>
        <item>
            <title>Visual Studio 2012 Keynote Deck and Notes</title>
            <link>http://rickgaribay.net/archive/2012/10/05/visual-studio-2012-keynote-deck-and-notes.aspx</link>
            <description>&lt;p&gt;I had the pleasure of being invited to keynote the Visual Studio 2012 Launch at Microsoft Tempe on Monday and would like to thank Microsoft for having me and everyone for attending.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/Visual-Studio-2012-Keynote-Deck-and-Note_F0D8/image_10.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 10px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="left" src="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/Visual-Studio-2012-Keynote-Deck-and-Note_F0D8/image_thumb_4.png" width="240" height="135" /&gt;&lt;/a&gt;I’ve been really impressed with the VS 2012 bits since working with the previews and it was a great privilege to showcase all the amazing features in the IDE and new version of TFS.&lt;a href="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/Visual-Studio-2012-Keynote-Deck-and-Note_F0D8/image_27.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/Visual-Studio-2012-Keynote-Deck-and-Note_F0D8/image_thumb_11.png" width="301" height="166" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In my role at Neudesic, I spend a lot of time talking to customers about their challenges and how we can help make them more productive. The reality is that there is a tremendous shift happening in the way that IT operates and is consumed today. Compared to just 5 years ago, organizations that want to succeed must leverage technology in a manner that allows them to both grow and innovate as opposed to merely running their legacy assets. The emergence of devices, and corresponding customer expectations to be productive anywhere, on any device has forced new, modern trends and work styles that IT must contend with or they will simply be left out.&lt;/p&gt;  &lt;p&gt;Often, I talk to customers about this through an integration lens, but it applies just as equally to Application Lifecycle Management (ALM). While I strongly believe that integration is a core strategic enabler to unlocking an organization’s potential to maximize their investments in Systems of Record assets enabling them to compose existing assets with new capability to grow the business in new ways that differentiate them from the competition while driving innovation, none of this is possible without the right people, technology, process and tools.&lt;/p&gt;  &lt;p&gt;I believe that one of Microsoft’s biggest value propositions is that it provides a single, unified platform for delivering capabilities  both on-premise and in the cloud. This single platform approach extends from devices; including desktops, laptops, tablets and smart phones to always available compute resources &lt;a href="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/Visual-Studio-2012-Keynote-Deck-and-Note_F0D8/image_12.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 10px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="left" src="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/Visual-Studio-2012-Keynote-Deck-and-Note_F0D8/image_thumb_5.png" width="240" height="137" /&gt;&lt;/a&gt;in the cloud or on-premise. This is compelling for many reasons, not the least of which is the developer economics of working within a platform that embraces both native and web development styles providing a first class tooling experience for each without compromise. &lt;/p&gt;  &lt;p&gt;I’ve worked with Visual Studio and TFS since the 2005 release and while the product has matured and grown significantly with each subsequent release, V&lt;a href="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/Visual-Studio-2012-Keynote-Deck-and-Note_F0D8/image_14.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 10px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/Visual-Studio-2012-Keynote-Deck-and-Note_F0D8/image_thumb_6.png" width="401" height="244" /&gt;&lt;/a&gt;isual Studio 2012 and TFS 2012 is really a coming of age. The user experience is exceptionally polished, and while I will admit that I was very vocal on some of the changes from the 2010 aesthetic, the final product is fast, efficient and fluid.&lt;/p&gt;  &lt;p&gt;Some of my favorite new features in the new release includes local workspaces. With local workspaces (now the default), we can ensure that we don’t lose productivity (or our precious code) when on the go. Detecting changes to files under source control and adding new files- whether within the IDE or using another tool just works. &lt;/p&gt;  &lt;p&gt;And Team Explorer just flies. Asynchrony is no longer an esoteric, dark art but a requirement for delivering responsive, fast user experiences and Team Explorer in VS 2012 is a great example of lazy loading and asynchronous messaging for enabling a great user experience. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/Visual-Studio-2012-Keynote-Deck-and-Note_F0D8/image_16.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 10px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="left" src="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/Visual-Studio-2012-Keynote-Deck-and-Note_F0D8/image_thumb_7.png" width="102" height="244" /&gt;&lt;/a&gt;I also love the new My Work feature. Distractions are an unfortunate part of every developer’s day and it seems that just when you are in the zone with all of the right files open, break point set getting close to completing that feature of fixing that defect, you get that emergency call that takes you away from your work. With My Work, you can simply suspend your current working session and Visual Studio will literally dehydrate all of your context including files, break points, etc. until you return, leaving your IDE clean and ready for the next fire. When you are done saving the world, you can simply resume your work and the IDE is literally rehydrated just as you left it. It really is amazing.&lt;/p&gt;  &lt;p&gt;Speaking of information radiators, the TFS web client is beautifully redone. All of the metrics that your team values can be added to your team/area’s dashboard as a favorite. While I’ve always been an IDE zealot as far as working with WIs, queries, etc. the management experience in the new web client is exceptional. I can prioritize stories, do release planning on the fly and get a snap shot of how utilized or under allocated my team is with just a glance or by reviewing the new Taskboard feature which provides a view into state of work by team member or as a team. &lt;/p&gt;  &lt;p&gt;As the pace or speed at which the business expects IT to be able to deliver value, particularly within systems of innovation like web sites, web apps, etc., the tolerance for misunderstood requirements has shrunk significantly. To quote the old adage: “You’ve built exactly what I asked for, but it isn’t at all what I want”, it is very easy to misrepresent a&lt;a href="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/Visual-Studio-2012-Keynote-Deck-and-Note_F0D8/image_21.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 10px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/Visual-Studio-2012-Keynote-Deck-and-Note_F0D8/image_thumb_9.png" width="384" height="268" /&gt;&lt;/a&gt;nd misunderstand requirements, particularly within the presentation layer. Many design technologists minimize this risk upfront by introducing wire frames and story boards. VS 2012 brings some entry level story boarding tools to developer hands by integrating with the most popular modeling tool out there: PowerPoint. Supporting mobile, native and web styles, it’s now easier to put together mock ups to gain feedback earlier in the development lifecycle when changes are least expensive. &lt;/p&gt;  &lt;p&gt;Another very cool feature is the Feedback Client/Manager. Anyone who has ever worked with me on a project knows that I am a big believer in the importance of feedback, early and often. Whether that means ensuring that _everyone_ knows the status of the build (and owns the outcome) or has visibility to the backlog, current velocity and burndown, identifying meaningful information radiators (Alastair Cockburn’s term) is essential. As I always remind folks: If the first time the customer has seen your feature is in the demo meeting, you suck. Just as you wouldn’t pay a home builder to build your dream house and accept that you can’t visit as the foundation is laid, frame goes up, windows and dry wall go in, software is no different. By using the new Feedback Manager, you can invite your stakeholder/product owner/manager to review and explore your feature via an automated email that maintains traceability to your work item/story. From there, the stakeholder can walk through the feature, capture feedback via voice, images, video or text, and punt that actionable feedback right back to you. Of course, I would never suggest this as an alternative to having a conversation, but as teams become increasingly distributed, this is a great capability for ensuring you are getting feedback early and often. &lt;/p&gt;  &lt;p&gt;Lastly, as a TDD zealot, I am really digging the improved support for unit testing. Everything from an improved test runner that reports execution time to support for fakes and stubs makes test-first development much more tenable without resorting to 3rd party tools or frameworks (not necessarily a bad thing, but you never know when an open source project might be abandoned leaving you and your team in a lurch). &lt;/p&gt;  &lt;p&gt;Wow. Ok, that’s a ton of stuff and I haven’t event scratched the surface so I’ll leave you with the slides I shared and a link to download and evaluation Visual Studio 2012 and TFS toda &lt;a title="http://www.microsoft.com/visualstudio/eng/downloads" href="http://www.microsoft.com/visualstudio/eng/downloads"&gt;http://www.microsoft.com/visualstudio/eng/downloads&lt;/a&gt;     &lt;br /&gt;&lt;/p&gt; &lt;center&gt;   &lt;p&gt;&lt;iframe height="120" src="https://skydrive.live.com/embed?cid=DF930EE6F91132FD&amp;amp;resid=DF930EE6F91132FD%211702&amp;amp;authkey=APirRuil2z67ycs" frameborder="0" width="98" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt; &lt;/center&gt;&lt;img src="http://rickgaribay.net/aggbug/345.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rick G. Garibay</dc:creator>
            <guid>http://rickgaribay.net/archive/2012/10/05/visual-studio-2012-keynote-deck-and-notes.aspx</guid>
            <pubDate>Sat, 06 Oct 2012 01:16:22 GMT</pubDate>
            <comments>http://rickgaribay.net/archive/2012/10/05/visual-studio-2012-keynote-deck-and-notes.aspx#feedback</comments>
            <wfw:commentRss>http://rickgaribay.net/comments/commentRss/345.aspx</wfw:commentRss>
            <trackback:ping>http://rickgaribay.net/services/trackbacks/345.aspx</trackback:ping>
        </item>
        <item>
            <title>New Microsoft Whitepaper on Extending WCF Apps for Windows Azure</title>
            <link>http://rickgaribay.net/archive/2011/03/07/new-microsoft-whitepaper-on-extending-wcf-apps-for-windows-azure.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://www.microsoft.com/en-us/cloud/developer/resource.aspx?resourceId=developing-and-extending-apps" target="_blank"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 6px 8px 4px 4px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="left" src="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/New-Microsoft-Whitepaper-on-Extending-WC_9EBB/image_5.png" width="244" height="228" /&gt;&lt;/a&gt;I’m pleased to share that Microsoft has just published my whitepaper “&lt;a href="http://www.microsoft.com/en-us/cloud/developer/resource.aspx?resourceId=developing-and-extending-apps" target="_blank"&gt;Developing and Extending Apps for Windows Azure with Visual Studio&lt;/a&gt;”: &lt;a href="http://www.microsoft.com/en-us/cloud/developer/resource.aspx?resourceId=developing-and-extending-apps" target="_blank"&gt;http://www.microsoft.com/en-&lt;a href="http://msdn.microsoft.com/visualstudio" target="_blank"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/New-Microsoft-Whitepaper-on-Extending-WC_9EBB/image_15.png" width="230" height="29" /&gt;&lt;/a&gt;us/cloud/developer/resource.aspx?resourceId=developing-and-extending-apps&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In this whitepaper, I summarize the significance of cloud computing today and disambiguate the differences between Software as a Service (SaaS), Platform and a Service (PaaS) and Infrastructure as a Service (IaaS) before providing you with an introduction to Windows Azure.&lt;a href="http://msdn.microsoft.com/netframework" target="_blank"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 3px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/New-Microsoft-Whitepaper-on-Extending-WC_9EBB/image_16.png" width="136" height="34" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I then show you how to extend an existing WCF 4.0 application service for deployment to Windows Azure with Visual Studio by adding a Windows Azure Project and associating it with a web role. Then I demonstrate how simple Visual Studio 2010 makes testing a cloud application locally before packaging it for deployment to Windows Azure and walk you through the complete Windows Azure Management Portal experience.&lt;/p&gt;  &lt;p&gt;If you are evaluating Windows Azure, and want to understand what the development&lt;a title="http://www.microsoft.com/en-us/cloud/developer/resource.aspx?resourceId=developing-and-extending-apps" href="http://msdn.microsoft.com/azure" target="_blank"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 3px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://rickgaribay.net/images/rickgaribay_net/Windows-Live-Writer/New-Microsoft-Whitepaper-on-Extending-WC_9EBB/image_726311e7-1e1e-425a-8c69-423ff9906ed6.png" width="218" height="34" /&gt;&lt;/a&gt;, deployment and management lifecycle looks like with Visual Studio 2010, then this is the whitepaper for you!&lt;/p&gt;  &lt;p&gt;Special thanks to my editor, Erik Ruthruff at A23 Consulting and the great folks at EPS for your team work and stellar collaboration.&lt;/p&gt;&lt;img src="http://rickgaribay.net/aggbug/303.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rick G. Garibay</dc:creator>
            <guid>http://rickgaribay.net/archive/2011/03/07/new-microsoft-whitepaper-on-extending-wcf-apps-for-windows-azure.aspx</guid>
            <pubDate>Mon, 07 Mar 2011 18:51:38 GMT</pubDate>
            <comments>http://rickgaribay.net/archive/2011/03/07/new-microsoft-whitepaper-on-extending-wcf-apps-for-windows-azure.aspx#feedback</comments>
            <wfw:commentRss>http://rickgaribay.net/comments/commentRss/303.aspx</wfw:commentRss>
            <trackback:ping>http://rickgaribay.net/services/trackbacks/303.aspx</trackback:ping>
        </item>
        <item>
            <title>Visual Studio 2010 Ultimate Event Content Download</title>
            <link>http://rickgaribay.net/archive/2010/03/13/visual-studio-2010-ultimate-event-content-download.aspx</link>
            <description>&lt;p&gt;Thanks to all who came out to the event in Phoenix, Salt Lake City &amp;amp; Las Vegas. We had a great turnout at all events with great questions and discussions.&lt;/p&gt;
&lt;p&gt;Remember that the conversation continues on &lt;a target="_blank" href="http://twitter.com/#search?q=%23vs2010phx"&gt;twitter&lt;/a&gt;. &lt;a target="_blank" href="http://twitter.com/#search?q=%23vs2010slc"&gt;&lt;img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: 0px" title="image" border="0" alt="image" align="right" width="240" height="162" src="http://rickgaribay.net/Images/CustomContent/VisualStudio2010UltimateEventSaltLakeCit_8195/image_4.png" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;If you attended the event and have a question or comment for any of the presenters, use the following hashtags: &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Phoenix: #vs2010phx &lt;/li&gt;
    &lt;li&gt;Salt Lake City: #vs2010slc &lt;/li&gt;
    &lt;li&gt;Las Vegas: #vs2010vegas&lt;/li&gt;
&lt;/ul&gt;
&lt;p align="center"&gt;Below are the presentations from all four sessions in each city:   &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;table border="0" cellspacing="0" cellpadding="2" width="912"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="190"&gt;Phoenix&lt;/td&gt;
            &lt;td valign="top" width="421"&gt;A Lap Around Visual Studio 2010&lt;/td&gt;
            &lt;td valign="top" width="473"&gt;Rick G. Garibay&lt;/td&gt;
            &lt;td valign="top" width="146"&gt;&lt;iframe style="PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #fcfcfc; PADDING-LEFT: 0px; WIDTH: 250px; PADDING-RIGHT: 0px; HEIGHT: 59px; PADDING-TOP: 0px" title="Preview" marginheight="0" src="http://cid-df930ee6f91132fd.skydrive.live.com/embedrowdetail.aspx/Public/Talks/VS%202010%20Ultimate/Lap%20Around%20VS%202010%20Garibay.pptx" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="190"&gt;Phoenix&lt;/td&gt;
            &lt;td valign="top" width="421"&gt;Agile Management with TFS&lt;/td&gt;
            &lt;td valign="top" width="473"&gt;&lt;a target="_blank" href="http://blogs.neudesic.com/blogs/brendon_birdoes/default.aspx"&gt;Brendon Birdoes&lt;/a&gt;&lt;/td&gt;
            &lt;td valign="top" width="146"&gt;&lt;iframe style="PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #fcfcfc; PADDING-LEFT: 0px; WIDTH: 250px; PADDING-RIGHT: 0px; HEIGHT: 59px; PADDING-TOP: 0px" title="Preview" marginheight="0" src="http://cid-df930ee6f91132fd.skydrive.live.com/embedrowdetail.aspx/Public/Talks/VS%202010%20Ultimate/TFS%202010%20Agile%20Management%20Brendon.pptx" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;*&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="190"&gt;Phoenix&lt;/td&gt;
            &lt;td valign="top" width="421"&gt;No More "No Repro"&lt;/td&gt;
            &lt;td valign="top" width="473"&gt;&lt;a target="_blank" href="http://blogs.neudesic.com/blogs/brendon_birdoes/default.aspx"&gt;Brendon Birdoes&lt;/a&gt;&lt;/td&gt;
            &lt;td valign="top" width="146"&gt;&lt;iframe style="PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #fcfcfc; PADDING-LEFT: 0px; WIDTH: 250px; PADDING-RIGHT: 0px; HEIGHT: 59px; PADDING-TOP: 0px" title="Preview" marginheight="0" src="http://cid-df930ee6f91132fd.skydrive.live.com/embedrowdetail.aspx/Public/Talks/VS%202010%20Ultimate/No%20More%20No%20Repro%20Brendon.pptx" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;*&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="190"&gt;Phoenix&lt;/td&gt;
            &lt;td valign="top" width="421"&gt;Architecture for Everyone&lt;/td&gt;
            &lt;td valign="top" width="473"&gt;Rick G. Garibay&lt;/td&gt;
            &lt;td valign="top" width="146"&gt;&lt;iframe style="PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #fcfcfc; PADDING-LEFT: 0px; WIDTH: 250px; PADDING-RIGHT: 0px; HEIGHT: 59px; PADDING-TOP: 0px" title="Preview" marginheight="0" src="http://cid-df930ee6f91132fd.skydrive.live.com/embedrowdetail.aspx/Public/Talks/VS%202010%20Ultimate/Architecture%20for%20Everyone%20Garibay.pptx" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="190"&gt;Salt Lake City&lt;/td&gt;
            &lt;td valign="top" width="421"&gt;A Lap Around Visual Studio 2010&lt;/td&gt;
            &lt;td valign="top" width="473"&gt;Rick G. Garibay&lt;/td&gt;
            &lt;td valign="top" width="146"&gt;&lt;iframe style="PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #fcfcfc; PADDING-LEFT: 0px; WIDTH: 250px; PADDING-RIGHT: 0px; HEIGHT: 59px; PADDING-TOP: 0px" title="Preview" marginheight="0" src="http://cid-df930ee6f91132fd.skydrive.live.com/embedrowdetail.aspx/Public/Talks/VS%202010%20Ultimate/Lap%20Around%20VS%202010%20Garibay.pptx" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="190"&gt;Salt Lake City&lt;/td&gt;
            &lt;td valign="top" width="421"&gt;Agile Management with TFS&lt;/td&gt;
            &lt;td valign="top" width="473"&gt;Jeff Leite&lt;/td&gt;
            &lt;td valign="top" width="146"&gt;*&lt;iframe style="PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #fcfcfc; PADDING-LEFT: 0px; WIDTH: 250px; PADDING-RIGHT: 0px; HEIGHT: 59px; PADDING-TOP: 0px" title="Preview" marginheight="0" src="http://cid-df930ee6f91132fd.skydrive.live.com/embedrowdetail.aspx/Public/Talks/VS%202010%20Ultimate/TFS%202010%20Agile%20Project%20Management.pptx" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="190"&gt;Salt Lake City&lt;/td&gt;
            &lt;td valign="top" width="421"&gt;No More "No Repro"&lt;/td&gt;
            &lt;td valign="top" width="473"&gt;Jeff Leite&lt;/td&gt;
            &lt;td valign="top" width="146"&gt;*&lt;iframe style="PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #fcfcfc; PADDING-LEFT: 0px; WIDTH: 250px; PADDING-RIGHT: 0px; HEIGHT: 59px; PADDING-TOP: 0px" title="Preview" marginheight="0" src="http://cid-df930ee6f91132fd.skydrive.live.com/embedrowdetail.aspx/Public/Talks/VS%202010%20Ultimate/No%20More%20No%20Repro.pptx" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="190"&gt;Salt Lake City&lt;/td&gt;
            &lt;td valign="top" width="421"&gt;Architecture for Everyone&lt;/td&gt;
            &lt;td valign="top" width="473"&gt;Rick G. Garibay&lt;/td&gt;
            &lt;td valign="top" width="146"&gt;&lt;iframe style="PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #fcfcfc; PADDING-LEFT: 0px; WIDTH: 250px; PADDING-RIGHT: 0px; HEIGHT: 59px; PADDING-TOP: 0px" title="Preview" marginheight="0" src="http://cid-df930ee6f91132fd.skydrive.live.com/embedrowdetail.aspx/Public/Talks/VS%202010%20Ultimate/Architecture%20for%20Everyone%20Garibay.pptx" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="190"&gt;Las Vegas&lt;/td&gt;
            &lt;td valign="top" width="421"&gt;A Lap Around Visual Studio 2010&lt;/td&gt;
            &lt;td valign="top" width="473"&gt;Rick G. Garibay&lt;/td&gt;
            &lt;td valign="top" width="146"&gt;&lt;iframe style="PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #fcfcfc; PADDING-LEFT: 0px; WIDTH: 250px; PADDING-RIGHT: 0px; HEIGHT: 59px; PADDING-TOP: 0px" title="Preview" marginheight="0" src="http://cid-df930ee6f91132fd.skydrive.live.com/embedrowdetail.aspx/Public/Talks/VS%202010%20Ultimate/Lap%20Around%20VS%202010%20Garibay.pptx" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="190"&gt;Las Vegas&lt;/td&gt;
            &lt;td valign="top" width="421"&gt;Agile Management with TFS&lt;/td&gt;
            &lt;td valign="top" width="473"&gt;Mickey Williams&lt;/td&gt;
            &lt;td valign="top" width="146"&gt;*&lt;iframe style="PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #fcfcfc; PADDING-LEFT: 0px; WIDTH: 250px; PADDING-RIGHT: 0px; HEIGHT: 59px; PADDING-TOP: 0px" title="Preview" marginheight="0" src="http://cid-df930ee6f91132fd.skydrive.live.com/embedrowdetail.aspx/Public/Talks/VS%202010%20Ultimate/TFS%202010%20Agile%20Project%20Management.pptx" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="190"&gt;Las Vegas&lt;/td&gt;
            &lt;td valign="top" width="421"&gt;No More "No Repro"&lt;/td&gt;
            &lt;td valign="top" width="473"&gt;Mickey Williams&lt;/td&gt;
            &lt;td valign="top" width="146"&gt;*&lt;iframe style="PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #fcfcfc; PADDING-LEFT: 0px; WIDTH: 250px; PADDING-RIGHT: 0px; HEIGHT: 59px; PADDING-TOP: 0px" title="Preview" marginheight="0" src="http://cid-df930ee6f91132fd.skydrive.live.com/embedrowdetail.aspx/Public/Talks/VS%202010%20Ultimate/No%20More%20No%20Repro.pptx" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="190"&gt;Las Vegas&lt;/td&gt;
            &lt;td valign="top" width="421"&gt;Architecture for Everyone&lt;/td&gt;
            &lt;td valign="top" width="473"&gt;Rick G. Garibay&lt;/td&gt;
            &lt;td valign="top" width="146"&gt;&lt;iframe style="PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #fcfcfc; PADDING-LEFT: 0px; WIDTH: 250px; PADDING-RIGHT: 0px; HEIGHT: 59px; PADDING-TOP: 0px" title="Preview" marginheight="0" src="http://cid-df930ee6f91132fd.skydrive.live.com/embedrowdetail.aspx/Public/Talks/VS%202010%20Ultimate/Architecture%20for%20Everyone%20Garibay.pptx" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;* Note that content for all venues is very similar but may vary from presenter to presenter. &lt;strike&gt;All content for both venues will be available soon so please check back shortly.&lt;/strike&gt;&lt;/p&gt;&lt;img src="http://rickgaribay.net/aggbug/275.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rick G. Garibay</dc:creator>
            <guid>http://rickgaribay.net/archive/2010/03/13/visual-studio-2010-ultimate-event-content-download.aspx</guid>
            <pubDate>Sun, 14 Mar 2010 01:45:01 GMT</pubDate>
            <comments>http://rickgaribay.net/archive/2010/03/13/visual-studio-2010-ultimate-event-content-download.aspx#feedback</comments>
            <wfw:commentRss>http://rickgaribay.net/comments/commentRss/275.aspx</wfw:commentRss>
            <trackback:ping>http://rickgaribay.net/services/trackbacks/275.aspx</trackback:ping>
        </item>
        <item>
            <title>Take Me with You! Ensuring Team Build Brings Dependencies Along for the Ride</title>
            <link>http://rickgaribay.net/archive/2009/08/27/take-me-with-you-ensuring-team-build-brings-dependencies-along.aspx</link>
            <description>&lt;p&gt;As part of an automated build at a client, we currently have over 150 unit tests that run as part of each automated build. Some of the tests are also integration tests which serve to automatically smoke test the freshly compiled application code.&lt;/p&gt;
&lt;p&gt;One of our apps makes use of an XML file that allows the ability to dynamically change behavior of a component without requiring an app domain recycle. A static method uses a FileWatcher to detect a change and applies the configuration changes at runtime accordingly. But I digress…&lt;/p&gt;
&lt;p&gt;When Team Build executes your unit tests, it creates a special directory on the build agent called TestResults.The TestResults folder includes a .trx file that captures the build results in XML along with a folder for each build/run which isolates all required test assemblies and other dependant assemblies for execution. The App.config file will automatically be copied over and renamed to AssemblyName.dll.config. This is fine and dandy, but what about other dependencies like the XML file?&lt;/p&gt;
&lt;p&gt;The answer is different depending on whether you are running your tests locally from Visual Studio or if Team Build is running your tests as part of an automated build, but you must be familiar with both techniques to accomplish a consistent and repeatable means for taking the XML file along for the ride under both scenarios which you will undoubtedly need to understand because chances are you are (or at least should be) running all unit tests locally before checking into source control, right? Right?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Local Dependencies&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When running and debugging unit tests using Visual Studio and a just-in-time test runners like TestDriven.NET that have an external dependency such as an XML file, you must ensure the dependency is in the binary root relative to the executing assembly. This is also true when using other unit testing frameworks like NUnit, which I talk about &lt;a href="http://rickgaribay.net/archive/2007/03/21/Making-Configuration-Files-Available-to-NUnit.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Right click the resource in the test project, click properties and set “Copy to Output Directory” to “Copy Always”:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://rickgaribay.net/Images/CustomContent/TakeMewithYouEnsuringMSBuildBringsDepend_E003/image.png"&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" width="240" height="94" src="http://rickgaribay.net/Images/CustomContent/TakeMewithYouEnsuringMSBuildBringsDepend_E003/image_thumb.png" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;This will ensure that the dependency is copied to the bin directory just as other dependencies like DLLs and App.Config/Web.Config are automatically.&lt;/p&gt;
&lt;p&gt;At this point, the XML file can be referenced in the root of the bin which is relative to the executing assembly.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Team Build Dependencies&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;As I mentioned earlier, when Team Build executes unit tests, it moves all required assemblies and assembly dependencies to a TestResults folder. While this includes App.config and Web.config files, other dependencies are not copied regardless of whether you specify “Copy to Output Directory” to “Copy Always” as shown above. This makes sense, because when Team Build runs, the unit test project is no longer located with the rest of the source- instead it is copied to the TestResults folder and prepped for execution.&lt;/p&gt;
&lt;p&gt;There are two ways to address this.&lt;/p&gt;
&lt;p&gt;The first option is to mark each test method with a &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.testtools.unittesting.deploymentitemattribute(VS.80).aspx"&gt;DeploymentItem&lt;/a&gt; attribute. This is documented &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.testtools.unittesting.deploymentitemattribute(VS.80).aspx"&gt;here&lt;/a&gt;, so I won’t go into much into it. The basic usage is to mark you test method with the DeploymentItem attribute, providing a parameter with the path and filename of the dependency:&lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;style type="text/css"&gt;&lt;![CDATA[


.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; }]]&gt;&lt;/style&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;[TestMethod]&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;        [DeploymentItem(&lt;span class="str"&gt;"../../MyExternalDependency.xml"&lt;/span&gt;)]&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; FooShouldReturnBar()&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;        {  &lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;           &lt;span class="rem"&gt;//...&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt; &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;        }&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;When the assembly that includes the test class loads, the attribute is reflected and the dependent file is copied to the TestResults folder. You can also add the attribute at the test class level and it will have the same effect.&lt;/p&gt;
&lt;p&gt;The draw back of this approach is that it requires that you apply this attribute to the test class and it is really quite noisy because it is only used when running tests with Team Build or the Test List Editor.&lt;/p&gt;
&lt;p&gt;To keep things cleaner, I prefer to make these dependencies configuration driven. So, similarly to setting the “Copy to Output Directory” to “Copy Always” for just-in-time testing, you can determine dependencies that should be copied to the TestResults folder using a global configuration setting that will apply to all tests: Test Run Configuration.&lt;/p&gt;
&lt;p&gt;Go to Test, “Edit Test Run Configuration” and click on the configuration file as shown below:&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://rickgaribay.net/Images/CustomContent/TakeMewithYouEnsuringMSBuildBringsDepend_E003/image_3.png"&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" width="240" height="113" src="http://rickgaribay.net/Images/CustomContent/TakeMewithYouEnsuringMSBuildBringsDepend_E003/image_thumb_3.png" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Now, click on the Deployment option on the left, ensure “Enable Deployment” is checked, and either click “Add File” to add a specific file, or “Add Directory” to include the entire contents of a directory:&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://rickgaribay.net/Images/CustomContent/TakeMewithYouEnsuringMSBuildBringsDepend_E003/image_4.png"&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" width="240" height="170" src="http://rickgaribay.net/Images/CustomContent/TakeMewithYouEnsuringMSBuildBringsDepend_E003/image_thumb_4.png" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;The localtestrun.testrunconfig file will be configured with the dependencies specified and this file will be consulted just prior to kicking off a test run to ensure that all dependencies are copied to the TestResults folder.&lt;/p&gt;
&lt;p&gt;That’s really all there is to it. Thanks to &lt;a target="_blank" href="http://blogs.neudesic.com/blogs/brendon_birdoes/default.aspx"&gt;Brendon Birdoes&lt;/a&gt; for turning &lt;a target="_blank" href="http://www.rickgaribay.net/contact.aspx"&gt;me&lt;/a&gt; on to the DeploymentItem attribute which I was not familiar with.&lt;/p&gt;&lt;img src="http://rickgaribay.net/aggbug/258.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rick G. Garibay</dc:creator>
            <guid>http://rickgaribay.net/archive/2009/08/27/take-me-with-you-ensuring-team-build-brings-dependencies-along.aspx</guid>
            <pubDate>Fri, 28 Aug 2009 03:05:14 GMT</pubDate>
            <comments>http://rickgaribay.net/archive/2009/08/27/take-me-with-you-ensuring-team-build-brings-dependencies-along.aspx#feedback</comments>
            <wfw:commentRss>http://rickgaribay.net/comments/commentRss/258.aspx</wfw:commentRss>
            <trackback:ping>http://rickgaribay.net/services/trackbacks/258.aspx</trackback:ping>
        </item>
        <item>
            <title>Unit Testing Microsoft Sync Framework 2.0 &amp;amp; WCF</title>
            <link>http://rickgaribay.net/archive/2009/08/17/unit-testing-microsoft-sync-framework-amp-wcf.aspx</link>
            <description>&lt;p&gt;I just wrapped up some work for a client that entails exposing the Sync Framework 2.0 via WCF.&lt;/p&gt;  &lt;p&gt;We are using Sync Framework 2.0 CTP 2 to support occasionally connected client scenarios between applications deployed out in the edge and core services hosted in the client’s cloud. I am using WCF to wrap the Sync Fx APIs to support interoperable synchronization support via SOAP 1.1. This way, any client can on-ramp with the core services and essentially become self-provisioned by initiating and initial synchronization to download required data necessary to come on line. In addition, when events happen out on the edge, the client can synchronize each event back to the cloud using an upload semantic. &lt;/p&gt;  &lt;p&gt;There are many benefits to using the Sync Fx as opposed to rolling your own, and one benefit is the extremely simple provider model which makes basic synchronization scenarios a breeze, particularly between relational replicas such as SQL Server. Note however, that Sync Fx is fully extensible and capable of synchronizing any two memory streams. &lt;/p&gt;  &lt;p&gt;So, the basic idea is that given a SyncProvider for the local and remote replica, any two data sources/applications can be synchronized:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://rickgaribay.net/Images/CustomContent/UnitTestingMicrosoftSyncFrameworkWCF_13226/image_5.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://rickgaribay.net/Images/CustomContent/UnitTestingMicrosoftSyncFrameworkWCF_13226/image_thumb_5.png" width="640" height="394" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In my scenario, the local client out in the edge utilizes the out of the box SqlSyncProvider. The goal was to expose the cloud over HTTP using SOAP, which required some understanding of the underlying APIs. From there, it was simply a matter of wrapping the Sync Fx APIs in a service layer, so that I would arrive at something like this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://rickgaribay.net/Images/CustomContent/UnitTestingMicrosoftSyncFrameworkWCF_13226/image_6.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://rickgaribay.net/Images/CustomContent/UnitTestingMicrosoftSyncFrameworkWCF_13226/image_thumb_6.png" width="640" height="371" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;By providing a proxy to the orchestrator, I was able to implement a proxy which is polymorphic with RelationalSyncProvider. &lt;/p&gt;  &lt;p&gt;Immediately it should be obvious that this is not your typical integration scenario. Essentially, I am extending a framework by exposing it over WCF so that any orchestrator can leverage the WebSyncProvider. &lt;/p&gt;  &lt;p&gt;I started the implementation by writing some tests. It was simple enough to extract an interface for the RelationalSyncProvider type because it is abstract. I used RhinoMocks to stub it, which worked great but where I ran into problems was in recording expectations on the return types because there are not a lot of test seams in the framework. With the absence of setters on main properties that I needed to assert, I needed a way to reach into the framework types and manipulate them so that I could develop the CUT  (in this case the ServiceContract implementation) independent of the framework.&lt;a href="http://rickgaribay.net/Images/CustomContent/UnitTestingMicrosoftSyncFrameworkWCF_13226/clip_image002.jpg"&gt;&lt;img style="border-right-width: 0px; margin: 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002" border="0" alt="clip_image002" align="right" src="http://rickgaribay.net/Images/CustomContent/UnitTestingMicrosoftSyncFrameworkWCF_13226/clip_image002_thumb.jpg" width="240" height="227" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb514191.aspx" target="_blank"&gt;Publicize.exe&lt;/a&gt; works pretty nicely for what I was looking for. &lt;/p&gt;  &lt;p&gt;For example, let’s say I want to stub a closed/framework type so that I can actually write my test without having to resort to integrating with the framework (which wouldn’t be a unit test at all), in this case, a couple of types in the Microsoft.Syncronization.dll assembly. &lt;/p&gt;  &lt;p&gt;I run Publicize.exe Microsoft.Syncronization.dll and it generates a shadow assembly called Microsoft.Syncronization_Accessor.dll, which takes all types, adds _Accessor and exposes all non-public members as public as shown in Reflector on the right. &lt;/p&gt;  &lt;p&gt;This pretty powerful. &lt;/p&gt;  &lt;p&gt;I can now stub the return type of any closed/framework class and test as long as I am asserting *properties*, which is pretty common:&lt;/p&gt; &lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;style type="text/css"&gt;&lt;![CDATA[

.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; }]]&gt;&lt;/style&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;        [TestMethod]&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; GetChangesShouldReturnNumberOfChangesApplied()&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;        {&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;            MockRepository mockRepository = &lt;span class="kwrd"&gt;new&lt;/span&gt; MockRepository();&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;            RelationalSyncProvider provider = mockRepository.Stub&amp;lt;RelationalSyncProvider&amp;gt;();&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;            &lt;span class="kwrd"&gt;using&lt;/span&gt; (mockRepository.Record())&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;            {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;                &lt;span class="rem"&gt;// Set up the out parameter on RelationalSyncProvider Stub&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;                DbSyncContext changeDataRetriever = &lt;span class="kwrd"&gt;new&lt;/span&gt; DbSyncContext();&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;                &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;                &lt;span class="rem"&gt;// Set up ScopeProgress property on DbySyncContext instance&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;                &lt;span class="rem"&gt;/*&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;&lt;span class="rem"&gt;                 * Note that in order to test for number of changes applied, we need to reach into the&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;&lt;span class="rem"&gt;                 * DbSyncScopeProgress and access the _totalChanges private member &lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;&lt;span class="rem"&gt;                 * so that public properties can be asserted. This is because the TotalChanges property only has a &lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;&lt;span class="rem"&gt;                 * getter, so the only way to influence the value is through it's backing field.&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;&lt;span class="rem"&gt;                 */&lt;/span&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;                DbSyncScopeProgress dbSyncScopeProgress = &lt;span class="kwrd"&gt;new&lt;/span&gt; DbSyncScopeProgress();&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;                &lt;span class="rem"&gt;// Reference the actual object which will be accessed by the generated accessor&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;                PrivateObject obj = &lt;span class="kwrd"&gt;new&lt;/span&gt; PrivateObject(dbSyncScopeProgress);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;                &lt;span class="rem"&gt;// Generated accessor which wraps the type to be exposed using reflection.&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;                &lt;span class="rem"&gt;// Instead of writing the reflection code manually, Publicize.exe was run against the real assembly,&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  31:  &lt;/span&gt;                &lt;span class="rem"&gt;// which in turn generated reflection wrappers for *all* types.&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  32:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  33:  &lt;/span&gt;                DbSyncScopeProgress_Accessor dbSyncScopeProgressAccessor = &lt;span class="kwrd"&gt;new&lt;/span&gt; DbSyncScopeProgress_Accessor(obj);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  34:  &lt;/span&gt;                &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  35:  &lt;/span&gt;                &lt;span class="rem"&gt;// Look ma, I am accessing a private field&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  36:  &lt;/span&gt;                dbSyncScopeProgressAccessor._tablesProgress = &lt;span class="kwrd"&gt;new&lt;/span&gt; List&amp;lt;DbSyncTableProgress&amp;gt;();&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  37:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  38:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  39:  &lt;/span&gt;                &lt;span class="rem"&gt;// Now we need to repeat the same process again for this type, which is at the heart of what we need to&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  40:  &lt;/span&gt;                &lt;span class="rem"&gt;// gain access to.&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  41:  &lt;/span&gt;                DbSyncTableProgress dbSyncTableProgress = &lt;span class="kwrd"&gt;new&lt;/span&gt; DbSyncTableProgress();&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  42:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  43:  &lt;/span&gt;                &lt;span class="rem"&gt;// Provides the accessor with a reference to the actual object&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  44:  &lt;/span&gt;                obj = &lt;span class="kwrd"&gt;new&lt;/span&gt; PrivateObject(dbSyncTableProgress);&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  45:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  46:  &lt;/span&gt;                &lt;span class="rem"&gt;// Generated accessor which wraps the type to be exposed using reflection.&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  47:  &lt;/span&gt;                &lt;span class="rem"&gt;// Instead of writing the reflection code manually, Publicize.exe was run against the real assembly,&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  48:  &lt;/span&gt;                &lt;span class="rem"&gt;// which in turn generated reflection wrappers for *all* types.&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  49:  &lt;/span&gt;                DbSyncTableProgress_Accessor dbSyncTableProgressAccessor = &lt;span class="kwrd"&gt;new&lt;/span&gt; DbSyncTableProgress_Accessor(obj);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  50:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  51:  &lt;/span&gt;                &lt;span class="rem"&gt;// Set the _rowsApplied field so that the stubbed return instance of DbSyncScopeProgress can be asserted.&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  52:  &lt;/span&gt;                dbSyncTableProgressAccessor._rowsApplied = 42;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  53:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  54:  &lt;/span&gt;                &lt;span class="rem"&gt;// Add the dbSyncTableProgress to the private collection&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  55:  &lt;/span&gt;                dbSyncScopeProgressAccessor._tablesProgress.Add(dbSyncTableProgress);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  56:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  57:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  58:  &lt;/span&gt;                &lt;span class="rem"&gt;// Now, set the property to our used and abused instance of DbSyncScopeProgress&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  59:  &lt;/span&gt;                changeDataRetriever.ScopeProgress = dbSyncScopeProgress;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  60:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  61:  &lt;/span&gt;                &lt;span class="rem"&gt;// Provider is implemented in COM so out params are prevelant (yuk)&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  62:  &lt;/span&gt;                &lt;span class="kwrd"&gt;object&lt;/span&gt; changeDataRetrieverObj = changeDataRetriever;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  63:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  64:  &lt;/span&gt;                &lt;span class="rem"&gt;// Set the expectation&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  65:  &lt;/span&gt;                provider.GetChangeBatch(0, &lt;span class="kwrd"&gt;null&lt;/span&gt;, &lt;span class="kwrd"&gt;out&lt;/span&gt; changeDataRetrieverObj);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  66:  &lt;/span&gt;                &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  67:  &lt;/span&gt;                &lt;span class="rem"&gt;// Initialize params&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  68:  &lt;/span&gt;                SyncIdFormatGroup idFormats = &lt;span class="kwrd"&gt;new&lt;/span&gt; SyncIdFormatGroup();&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  69:  &lt;/span&gt;                SyncKnowledge destinationKnowledge = &lt;span class="kwrd"&gt;new&lt;/span&gt; SyncKnowledge();&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  70:  &lt;/span&gt;                ForgottenKnowledge sourceForgottenKnowledge = &lt;span class="kwrd"&gt;new&lt;/span&gt; ForgottenKnowledge();&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  71:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  72:  &lt;/span&gt;                &lt;span class="rem"&gt;// Stub the return, including the object reference to DbSyncContext&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  73:  &lt;/span&gt;                LastCall.Return(&lt;span class="kwrd"&gt;new&lt;/span&gt; ChangeBatch(idFormats, destinationKnowledge, sourceForgottenKnowledge))&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  74:  &lt;/span&gt;                    .OutRef(changeDataRetrieverObj).IgnoreArguments();&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  75:  &lt;/span&gt;            }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  76:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  77:  &lt;/span&gt;            IRelationalSyncManager manager = &lt;span class="kwrd"&gt;new&lt;/span&gt; RelationalSyncManager();&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  78:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  79:  &lt;/span&gt;            &lt;span class="rem"&gt;// Inject the stub&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  80:  &lt;/span&gt;            manager.Provider = provider;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  81:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  82:  &lt;/span&gt;            SyncKnowledge localKnowledge = &lt;span class="kwrd"&gt;new&lt;/span&gt; SyncKnowledge();&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  83:  &lt;/span&gt;            DbSyncContext returnedContext = &lt;span class="kwrd"&gt;new&lt;/span&gt; DbSyncContext();&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  84:  &lt;/span&gt;            returnedContext.ScopeProgress = &lt;span class="kwrd"&gt;new&lt;/span&gt; DbSyncScopeProgress();&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  85:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  86:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  87:  &lt;/span&gt;            var changeBatch = manager.GetChanges(0, localKnowledge, &lt;span class="kwrd"&gt;out&lt;/span&gt; returnedContext);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  88:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  89:  &lt;/span&gt;            DbSyncContext context = returnedContext;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  90:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  91:  &lt;/span&gt;            Assert.IsTrue(context.ScopeProgress.TotalChangesApplied ==42);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  92:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  93:  &lt;/span&gt;        }&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;There is a bit of work here, but with a bit of elbow grease thanks to Visual Studio Test Tools, RhinoMocks, reflection and a little code generation the framework is testable.&lt;/p&gt;&lt;img src="http://rickgaribay.net/aggbug/256.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rick G. Garibay</dc:creator>
            <guid>http://rickgaribay.net/archive/2009/08/17/unit-testing-microsoft-sync-framework-amp-wcf.aspx</guid>
            <pubDate>Tue, 18 Aug 2009 04:46:33 GMT</pubDate>
            <comments>http://rickgaribay.net/archive/2009/08/17/unit-testing-microsoft-sync-framework-amp-wcf.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://rickgaribay.net/comments/commentRss/256.aspx</wfw:commentRss>
            <trackback:ping>http://rickgaribay.net/services/trackbacks/256.aspx</trackback:ping>
        </item>
        <item>
            <title>Free Public Class: A Day in the Life of Scrum with VSTS 2008 and TFS- 6/2 in Phoenix</title>
            <link>http://rickgaribay.net/archive/2009/05/31/free-public-class-a-day-in-the-life-of-scrum.aspx</link>
            <description>&lt;p&gt;I will be delivering my last free public class, "A Day in the Life of Scrum with Visual Studio Team System 2008 and Team Foundation Server" to Microsoft Phoenix next Tuesday, June 2nd.&lt;/p&gt;
&lt;p&gt;There are still a few seats available, so feel free to register (please see invitation below with &lt;strong&gt;Invitation Key 4DEAA2)&lt;/strong&gt;. If you would be interested in a private class for your team or organization, please feel free to contact me for scheduling. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://rickgaribay.net/Images/CustomContent/ADayintheLifeofScrumwithVisualStudioTeam_12917/clip_image002.jpg"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 5px; BORDER-RIGHT-WIDTH: 0px" height="80" alt="clip_image002" width="164" align="right" border="0" src="http://rickgaribay.net/Images/CustomContent/ADayintheLifeofScrumwithVisualStudioTeam_12917/clip_image002_thumb.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Please join &lt;a href="http://www.microsoft.com/"&gt;Microsoft&lt;/a&gt; and &lt;a href="http://www.neudesic.com/"&gt;Neudesic&lt;/a&gt; for a day in the life of Scrum with Visual Studio Team System 2008 and Team Foundation Server!  Agile methods are a set of development processes intended to create software in a lighter, faster, more people-centric way. Many development teams have adopted "agile" methodologies to manage change and to improve software quality. These methodologies promote continuous integration as a practice to build and test software products incrementally as new features are included, bugs are fixed, and code is refactored.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;If you missed the first series of Agile &amp;amp; Scrum Essentials last fall; here’s your chance to attend the follow-on event where we’ll briefly revisit the basics of Agile and Scrum and provide a walkthrough of how to configure Visual Studio Team System 2008 and Team Foundation Server for Scrum. Participants will be familiarized with how key artifacts are managed within this popular process template for enacting Scrum in organizations.   &lt;/p&gt;
&lt;p&gt;Join us for this interactive event as we explore a “day in the life of a Sprint,” that will give you a practical perspective of how Scrum teams leverage Visual Studio Team System for end to end management of the planning, execution and control of Scrum projects. The day will end with an overview of what’s coming in Visual Studio Team System 2010!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Register &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Welcome: 8:30 PM&lt;/p&gt;
&lt;p&gt;Seminar: 9:00 AM-4:30 PM&lt;/p&gt;
&lt;p&gt;&lt;a href="http://rickgaribay.net/Images/CustomContent/ADayintheLifeofScrumwithVisualStudioTeam_12917/image.png"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 5px; BORDER-RIGHT-WIDTH: 0px" height="64" alt="image" width="169" align="right" border="0" src="http://rickgaribay.net/Images/CustomContent/ADayintheLifeofScrumwithVisualStudioTeam_12917/image_thumb.png" /&gt;&lt;/a&gt;&lt;a href="http://rickgaribay.net/Images/CustomContent/ADayintheLifeofScrumwithVisualStudioTeam_12917/clip_image004.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://rickgaribay.net/Images/CustomContent/ADayintheLifeofScrumwithVisualStudioTeam_12917/clip_image004.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://rickgaribay.net/Images/CustomContent/ADayintheLifeofScrumwithVisualStudioTeam_12917/clip_image004.jpg"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 5px; BORDER-RIGHT-WIDTH: 0px" height="36" alt="clip_image004" width="220" align="right" border="0" src="http://rickgaribay.net/Images/CustomContent/ADayintheLifeofScrumwithVisualStudioTeam_12917/clip_image004_thumb.jpg" /&gt;&lt;/a&gt;&lt;strong&gt;Phoenix, AZ&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;June 2, 2009&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Click &lt;a href="http://msevents.microsoft.com/cui/EventDetail.aspx?culture=en-US&amp;amp;EventID=1032414516"&gt;here&lt;/a&gt; to register or call 1.877.MSEVENT (1.877.673.8368) with invitation code: &lt;a href="http://msevents.microsoft.com/cui/EventDetail.aspx?culture=en-US&amp;amp;EventID=1032414516"&gt;4DEAA2&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://rickgaribay.net/Images/CustomContent/ADayintheLifeofScrumwithVisualStudioTeam_12917/clip_image004.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://rickgaribay.net/Images/CustomContent/ADayintheLifeofScrumwithVisualStudioTeam_12917/clip_image004.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://rickgaribay.net/Images/CustomContent/ADayintheLifeofScrumwithVisualStudioTeam_12917/clip_image004.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://rickgaribay.net/Images/CustomContent/ADayintheLifeofScrumwithVisualStudioTeam_12917/clip_image004.jpg"&gt; &lt;/a&gt;&lt;/p&gt;&lt;img src="http://rickgaribay.net/aggbug/244.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rick G. Garibay</dc:creator>
            <guid>http://rickgaribay.net/archive/2009/05/31/free-public-class-a-day-in-the-life-of-scrum.aspx</guid>
            <pubDate>Sun, 31 May 2009 20:49:56 GMT</pubDate>
            <comments>http://rickgaribay.net/archive/2009/05/31/free-public-class-a-day-in-the-life-of-scrum.aspx#feedback</comments>
            <wfw:commentRss>http://rickgaribay.net/comments/commentRss/244.aspx</wfw:commentRss>
            <trackback:ping>http://rickgaribay.net/services/trackbacks/244.aspx</trackback:ping>
        </item>
        <item>
            <title>.NET Framework 4.0 Beta 1</title>
            <link>http://rickgaribay.net/archive/2009/05/18/.net-framework-4.0-beta-1.aspx</link>
            <description>&lt;p&gt;I am thrilled to share that today, Monday, May 18th, the .NET Framework 4 Beta 1 will be available to MSDN Subscribers through MSDN Subscriber Downloads and to the general public on Wednesday, May 20th through Microsoft Downloads.&lt;/p&gt;  &lt;p&gt;I have been fortunate to have my hands on a limited April CTP for some time now which is very close to what is included in Beta 1, so stay tuned for more information about VS 2010 and the WCF and WF enhancements in .NET 4.0 which are key areas that I will continue to focus on and share with you here.&lt;/p&gt;  &lt;p&gt;Until then, here are some helpful links to get you started with NET FX 4.0:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Get the Bits&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Download the .NET Framework 4 beta here from MSDN Downloads:&lt;a title="http://msdn.microsoft.com/en-us/subscriptions/downloads/default.aspx?pv=18:370" href="http://msdn.microsoft.com/en-us/subsc ions/downloads/default.aspx?pv=18:370"&gt;http://msdn.microsoft.com/en-us/subsc ions/downloads/default.aspx?pv=18:370&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;On Wed, May 20th, you can obtain the Beta 1 bits here: &lt;a href="http://go.microsoft.com/fwlink/?LinkId=151799"&gt;http://go.microsoft.com/fwlink/?LinkId=151799&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Learn What’s New&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;A First Look at VS 2010: &lt;a title="http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx" href="http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx"&gt;http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;New .NET Framework 4 features: &lt;a href="http://go.microsoft.com/?linkid=9666478"&gt;http://go.microsoft.com/?linkid=9666478&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Scott Hanselman's .NET 4 overview (PDC 2008) : &lt;a href="http://channel9.msdn.com/pdc2008/TL49"&gt;http://channel9.msdn.com/pdc2008/TL49&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Get Support from the Community&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Beta 1 Forum is available here: &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/category/VSPreRelease,netdevelopmentprerelease,visualstudioprerelease,vstsprerelease"&gt;http://social.msdn.microsoft.com/Forums/en-US/category/VSPreRelease,netdevelopmentprerelease,visualstudioprerelease,vstsprerelease&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Stay tuned for posts in the next couple of weeks that will address the significance of this major release, particularly around VS 2010 enhancements and Connected Systems framework technologies. Until then, if you haven’t already, please take the time to upgrade to .NET Framework 3.5 which will make sure your upgrade path to .NET 4.0 is as seamless as possible.&lt;/p&gt;&lt;img src="http://rickgaribay.net/aggbug/243.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rick G. Garibay</dc:creator>
            <guid>http://rickgaribay.net/archive/2009/05/18/.net-framework-4.0-beta-1.aspx</guid>
            <pubDate>Mon, 18 May 2009 21:00:00 GMT</pubDate>
            <comments>http://rickgaribay.net/archive/2009/05/18/.net-framework-4.0-beta-1.aspx#feedback</comments>
            <wfw:commentRss>http://rickgaribay.net/comments/commentRss/243.aspx</wfw:commentRss>
            <trackback:ping>http://rickgaribay.net/services/trackbacks/243.aspx</trackback:ping>
        </item>
        <item>
            <title>Phoenix Visual Studio Team System Big Event was BIG!</title>
            <link>http://rickgaribay.net/archive/2009/05/11/phoenix-visual-studio-team-system-big-event-was-big.aspx</link>
            <description>&lt;p&gt;Thanks to all who came out for the &lt;a href="http://rickgaribay.net/archive/2009/04/13/phoenix-visual-studio-team-system-big-event-is-coming-to.aspx"&gt;Visual Studio Team System Big Event on Thursday, May 7th&lt;/a&gt;! &lt;a href="http://rickgaribay.net/Images/CustomContent/PhoenixVisualStudioTeamSystemBigEventwas_EE11/DSCN0480.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="100" alt="DSCN0480" src="http://rickgaribay.net/Images/CustomContent/PhoenixVisualStudioTeamSystemBigEventwas_EE11/DSCN0480_thumb.jpg" width="244" align="right" border="0" /&gt;&lt;/a&gt;We had a great time with the Microsoft Developer Evangelist team, Microsoft Technical Specialists,  MVPs and influencers who at the end of the full day of action packed training left no doubt that Visual Studio Team System is &lt;strong&gt;BIG&lt;/strong&gt;! &lt;/p&gt;  &lt;p&gt;&lt;a href="http://rickgaribay.net/Images/CustomContent/PhoenixVisualStudioTeamSystemBigEventwas_EE11/P5070484.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="P5070484" src="http://rickgaribay.net/Images/CustomContent/PhoenixVisualStudioTeamSystemBigEventwas_EE11/P5070484_thumb.jpg" width="244" align="left" border="0" /&gt;&lt;/a&gt;Dan Weinman, Senior Consultant at Neudesic kicked off with the keynote on  "&lt;b&gt;Development Best Practices &amp;amp; How Microsoft Helps&lt;/b&gt;" and set the stage for what the day full of training had in store. Dan talked about the various roles that VSTS supports and how each role comes together to enact process under a single tool that maximizes transparency and communication on Agile teams.  &lt;/p&gt;  &lt;p&gt;Next, Brendon Birdoes, Principal Consultant at Neudesic delivered a great talk on &lt;a href="http://rickgaribay.net/Images/CustomContent/PhoenixVisualStudioTeamSystemBigEventwas_EE11/P5070488.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="P5070488" src="http://rickgaribay.net/Images/CustomContent/PhoenixVisualStudioTeamSystemBigEventwas_EE11/P5070488_thumb.jpg" width="244" align="right" border="0" /&gt;&lt;/a&gt;Test-Driven-Development with Visual Studio. Brendon covered unit testing, including test first development and showed off the refactoring capabilities right within the IDE  along with code coverage. Brendon talked about how important code coverage and quality assertions are to ensuring that your unit tests are as useful as possible in maintaining high degrees of quality within your software projects. &lt;/p&gt;  &lt;p&gt;Following the excellent session on TDD, Visual Studio Team System MVP Dave McKinstry delivered a session entitled ""It Works on My Machine!" Closing the Loop Between Development &amp;amp; Testing" which discussed the close integration between testing tools in Visual Studio Team System and the code itself which minimizes the cost and complexity in task switching.&lt;/p&gt;  &lt;p&gt;We were then treated by another excellent talk by Rob Bagby, Developer Evangelist on "Treating Databases as First-Class Citizens in Development". In this session, Rob made clear that &lt;a href="http://rickgaribay.net/Images/CustomContent/PhoenixVisualStudioTeamSystemBigEventwas_EE11/P5070489.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="P5070489" src="http://rickgaribay.net/Images/CustomContent/PhoenixVisualStudioTeamSystemBigEventwas_EE11/P5070489_thumb.jpg" width="244" align="right" border="0" /&gt;&lt;/a&gt;database work can no longer hide from unit testing and how the Database Project in Visual Studio Team System makes synchronizing DDL and DML objects seamless and eminently testable. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://rickgaribay.net/Images/CustomContent/PhoenixVisualStudioTeamSystemBigEventwas_EE11/DSCN0481.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="DSCN0481" src="http://rickgaribay.net/Images/CustomContent/PhoenixVisualStudioTeamSystemBigEventwas_EE11/DSCN0481_thumb.jpg" width="244" align="left" border="0" /&gt;&lt;/a&gt;I was lucky enough to show off the new Visual Studio Team System 2010 Team Architect bits which include fully compliant UML 2.1 diagram support as well as assembly, namespace, class and method visualization using the VSTS 2010 Architecture Explorer.  I talked about VSTS 2010 Team Architect being yet another clear signal of Microsoft's commitment to modeling which is, and will continue to manifest itself in technologies like Windows Workflow, BizTalk Server, Entity Framework, and Quadrant to name just a few. As a Connected Systems guy, VS2010 Team Architect is really going to go a long way in helping me and my teams visualize the problem domain and partition our big balls of mud into the right architecture.  &lt;/p&gt;  &lt;p&gt;Speaking of which, I think my favorite new modeling feature in Team Architect is the Layer Diagram which lets you define your layers and then validate them at build time! What this means is that&lt;a href="http://rickgaribay.net/Images/CustomContent/PhoenixVisualStudioTeamSystemBigEventwas_EE11/DSCN0482.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="184" alt="DSCN0482" src="http://rickgaribay.net/Images/CustomContent/PhoenixVisualStudioTeamSystemBigEventwas_EE11/DSCN0482_thumb.jpg" width="244" align="right" border="0" /&gt;&lt;/a&gt; I can use a layer diagram to define separation of concerns and single responsibility principle and then make sure that team members are honoring the layer rules. It is just awesome to be able to map namespaces to a layer diagram, wire it up to the automated build and keep violations from every being delivered.&lt;/p&gt;  &lt;p&gt;The day winded up with a great talk by Steve Lange, Technical Specialist on how to get the most out of TFS. The session was aptly called "Bang for Your Buck" Getting the Most out of Team Foundation Server, and Steve gave away some great tips on things you can do with your investment in TFS that you may not have even known about. &lt;/p&gt;  &lt;p&gt;I want to thank Steve and Rob for inviting us to speak at this event. The room was full of great folks with lots of passion and great questions which is exactly what we like to see at these events. If you have any follow up questions that I wasn't able to get answered at the event, please don't hesitate to &lt;a href="http://rickgaribay.net/contact.aspx"&gt;contact me&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://rickgaribay.net/aggbug/241.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rick G. Garibay</dc:creator>
            <guid>http://rickgaribay.net/archive/2009/05/11/phoenix-visual-studio-team-system-big-event-was-big.aspx</guid>
            <pubDate>Tue, 12 May 2009 00:29:16 GMT</pubDate>
            <comments>http://rickgaribay.net/archive/2009/05/11/phoenix-visual-studio-team-system-big-event-was-big.aspx#feedback</comments>
            <wfw:commentRss>http://rickgaribay.net/comments/commentRss/241.aspx</wfw:commentRss>
            <trackback:ping>http://rickgaribay.net/services/trackbacks/241.aspx</trackback:ping>
        </item>
        <item>
            <title>Fix: Can't Set Breakpoints in Visual Studio 2008</title>
            <link>http://rickgaribay.net/archive/2009/04/28/fix-cant-set-breakpoints-in-visual-studio-2008.aspx</link>
            <description>&lt;p&gt;I recently uninstalled a certain productivity enhancement tool for VS 2008 which shall remain nameless because they are a good group of guys and have been very nice to me.&lt;/p&gt;  &lt;p&gt;I uninstalled the tool, namely because I felt I was becoming a bit too dependant on it. Certainly, VS features like intellisense and basic refactoring support are not things I would willingly live without, but I feel that the features in VS are probably adequate for my needs and my IDE was starting to feel a bit clunky.&lt;/p&gt;  &lt;p&gt;So, I uninstalled this tool, and immediately intellisense was missing. Anoying. I went into Tools-&amp;gt;Options and re-enabled Intellisense. Life was good, or so it seemed.&lt;/p&gt;  &lt;p&gt;For the last 5 weeks, the bane of my existence has been the fact that I couldn't set breakpoints in my code.&lt;a href="http://rickgaribay.net/Images/CustomContent/FixCantSetBreakpointsinVisualStudio2008_B45F/image.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; margin: 10px 5px 5px; border-left: 0px; border-bottom: 0px" height="84" alt="image" src="http://rickgaribay.net/Images/CustomContent/FixCantSetBreakpointsinVisualStudio2008_B45F/image_thumb.png" width="244" align="right" border="0" /&gt;&lt;/a&gt; I could debug just fine if I right clicked + Breakpoints + Insert Breakpoint, or use F9, but when I tried to set the breakpoint on the left pane, as shown here, it just wouldn't work at all:&lt;/p&gt;  &lt;p&gt;I was giving a class on TDD to one of my biggest customers today and in desperation, having right clicked + Breakpoints + Insert Breakpoint one too many times, I offered to buy lunch to the developer who could help me fix this. Now one developer offered the F9 option as workaround, which is better than a 3 step process, and this would have helped me out. Then, about 15 minutes later, another developer said they had the fix, and sure enough, he did!&lt;/p&gt;  &lt;p&gt; The problem was that the "Indicator Margin" had been disabled. How did this happen? Why would this happen and what the hell is an Indicator Margin? Well, I don't have proof, but I am guessing that it is that "productivity" tool that did it when I uninstalled it.&lt;/p&gt;  &lt;p&gt;The solution was simply to go into Tools-&amp;gt;Options-&amp;gt;Text Editor and enable Indicator margin as shown below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://rickgaribay.net/Images/CustomContent/FixCantSetBreakpointsinVisualStudio2008_B45F/image_3.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; margin: 5px; border-left: 0px; border-bottom: 0px" height="144" alt="image" src="http://rickgaribay.net/Images/CustomContent/FixCantSetBreakpointsinVisualStudio2008_B45F/image_thumb_3.png" width="244" align="left" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;I am forever indebted to this customer and am sharing this tip here in case this is driving you as nuts as it has me over the last month!&lt;/p&gt;&lt;img src="http://rickgaribay.net/aggbug/238.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rick G. Garibay</dc:creator>
            <guid>http://rickgaribay.net/archive/2009/04/28/fix-cant-set-breakpoints-in-visual-studio-2008.aspx</guid>
            <pubDate>Tue, 28 Apr 2009 20:03:29 GMT</pubDate>
            <comments>http://rickgaribay.net/archive/2009/04/28/fix-cant-set-breakpoints-in-visual-studio-2008.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://rickgaribay.net/comments/commentRss/238.aspx</wfw:commentRss>
            <trackback:ping>http://rickgaribay.net/services/trackbacks/238.aspx</trackback:ping>
        </item>
    </channel>
</rss>