<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Steve Lange</title><link>http://blogs.msdn.com/slange/default.aspx</link><description>Team System or not, it's still a team system..</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Visual Studio for Oracle Developers – “Project Fuze”</title><link>http://blogs.msdn.com/slange/archive/2009/11/10/visual-studio-for-oracle-developers-project-fuze.aspx</link><pubDate>Tue, 10 Nov 2009 18:30:39 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9920326</guid><dc:creator>slange</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/slange/comments/9920326.aspx</comments><wfw:commentRss>http://blogs.msdn.com/slange/commentrss.aspx?PostID=9920326</wfw:commentRss><description>&lt;p&gt;The fine folks at &lt;a href="http://www.quest.com" target="_blank"&gt;Quest Software&lt;/a&gt; are currently in beta with “&lt;a href="http://www.teamfuze.net" target="_blank"&gt;Project Fuze&lt;/a&gt;”, a DSP (Database Schema Provider) that brings Oracle database development into the fold of &lt;a href="http://www.microsoft.com/visualstudio" target="_blank"&gt;Visual Studio&lt;/a&gt;.&amp;#160; Like you can with SQL Server today, Fuze will give Oracle developers the full benefits that Visual Studio has to offer, such as:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Full change management for Oracle database schemas:&amp;#160; Each schema object is treated as its own individually-managed object in Team Foundation Server.&lt;/li&gt;    &lt;li&gt;Generate test data:&amp;#160; Use data generation plans to create data for testing purposes.&lt;/li&gt;    &lt;li&gt;Automated builds:&amp;#160; Build your databases just like your code.&lt;/li&gt;    &lt;li&gt;Database refactoring&lt;/li&gt;    &lt;li&gt;Schema comparison:&amp;#160; Compare and merge schema models.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Interested?&amp;#160; You can download the beta &lt;a href="http://teamfuze.net/ann.jspa?annID=254" target="_blank"&gt;HERE&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Here’s a Project Fuze Demo:&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:0d6a4dcd-65b5-48bb-8504-f5a0543a6ed8" class="wlWriterEditableSmartContent"&gt;&lt;div id="4562a5f4-b728-4690-b67e-996eb773385a" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=hlKKb3XDxQU&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x2b405b&amp;amp;color2=0x6b8ab6" target="_new"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/VisualStudioforOracleDevelopersProjectFu_9881/videoe65942a4ca84.jpg" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('4562a5f4-b728-4690-b67e-996eb773385a'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/hlKKb3XDxQU&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x2b405b&amp;amp;color2=0x6b8ab6&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/hlKKb3XDxQU&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x2b405b&amp;amp;color2=0x6b8ab6&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9920326" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/slange/archive/tags/Team+Foundation+Server/default.aspx">Team Foundation Server</category><category domain="http://blogs.msdn.com/slange/archive/tags/Database+Professional/default.aspx">Database Professional</category></item><item><title>Microsoft Acquires Teamprise Assets, Provides Cross-Platform Support for Visual Studio</title><link>http://blogs.msdn.com/slange/archive/2009/11/09/microsoft-acquires-teamprise-assets-provides-cross-platform-support-for-visual-studio.aspx</link><pubDate>Mon, 09 Nov 2009 14:52:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9919541</guid><dc:creator>slange</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/slange/comments/9919541.aspx</comments><wfw:commentRss>http://blogs.msdn.com/slange/commentrss.aspx?PostID=9919541</wfw:commentRss><description>&lt;P&gt;Today Microsoft announced (at Tech Ed Europe) the acquisition of &lt;A href="http://www.teamprise.com/" target=_blank mce_href="http://www.teamprise.com"&gt;Teamprise&lt;/A&gt; (&lt;A href="http://www.microsoft.com/presspass/press/2009/nov09/11-09teamprisepr.mspx" target=_blank mce_href="http://www.microsoft.com/presspass/press/2009/nov09/11-09teamprisepr.mspx"&gt;press release&lt;/A&gt;), a fantastic technology partner that provides &lt;FONT face=Tahoma&gt;client applications for accessing Microsoft’s Visual Studio Team Foundation Server from Eclipse and Eclipse-based IDEs, and from other operating systems, including UNIX, Linux and Mac OS X.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Teamprise Client Suite currently includes the following: &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Teamprise Plug-in for Eclipse. &lt;/STRONG&gt;The Teamprise Plug-in for Eclipse allows developers to perform all their source control, bug tracking, build and reporting operations from within Eclipse and Eclipse-based integrated development environments (IDEs), such as Rational Application Developer, JBoss, BEA Workshop and Adobe Flex Builder. &lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Teamprise Explorer. &lt;/STRONG&gt;Teamprise Explorer combines all the functionality available to Eclipse developers using the Teamprise Plug-in into a stand-alone, cross-platform graphical user interface (GUI) application that is perfect for team members working outside of an IDE, such as graphic designers, quality assurance testers and project managers.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Teamprise Command-Line Client. &lt;/STRONG&gt;The Teamprise Command-Line Client provides a cross-platform, nongraphical interface to Team Foundation Server, making it perfect for scripting and build scenarios or for developers who prefer a command-line interface. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Look for a Microsoft-branded, Teamprise-based product sometime around the VS 2010 launch.&lt;/P&gt;
&lt;P&gt;Welcome, Teamprise!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9919541" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/slange/archive/tags/Team+Foundation+Server/default.aspx">Team Foundation Server</category><category domain="http://blogs.msdn.com/slange/archive/tags/Annoucements/default.aspx">Annoucements</category></item><item><title>Visual Studio 2010 Beta 2 is Here + The New MSDN</title><link>http://blogs.msdn.com/slange/archive/2009/10/19/visual-studio-2010-beta-2-is-here-the-new-msdn.aspx</link><pubDate>Mon, 19 Oct 2009 19:12:48 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9909344</guid><dc:creator>slange</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/slange/comments/9909344.aspx</comments><wfw:commentRss>http://blogs.msdn.com/slange/commentrss.aspx?PostID=9909344</wfw:commentRss><description>&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/VisualStudio2010Beta2isHereTheNewMSDN_B9D9/clip_image003_2.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="clip_image003" border="0" alt="clip_image003" align="right" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/VisualStudio2010Beta2isHereTheNewMSDN_B9D9/clip_image003_thumb.jpg" width="179" height="26" /&gt;&lt;/a&gt;You’ve probably read a lot about this already, so I’ll keep it short:&amp;#160; VS 2010 Beta 2 is available via MSDN – details here:&amp;#160; &lt;a title="http://msdn.microsoft.com/en-us/vstudio/dd582936.aspx" href="http://msdn.microsoft.com/en-us/vstudio/dd582936.aspx"&gt;http://msdn.microsoft.com/en-us/vstudio/dd582936.aspx&lt;/a&gt;.&amp;#160; Full availability is scheduled for 10/21.&lt;/p&gt;  &lt;p&gt;Here’s what you should do to get started:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Visit the &lt;a href="http://go.microsoft.com/fwlink/?LinkID=151797"&gt;Microsoft Visual Studio 2010 and .NET Framework 4 Beta&lt;/a&gt; site to download the Beta, submit feedback, go to forums, and find more information about the Beta.&lt;/li&gt;    &lt;p&gt;&lt;img style="display: inline; margin-left: 0px; margin-right: 0px" border="0" alt="" align="right" src="http://www.microsoft.com/visualstudio/en-us/content/images/2010landing_msdnlogo_sm.png" /&gt;&lt;/p&gt;    &lt;li&gt;Check out &lt;a href="http://channel9.msdn.com/shows/10-4/10-4-Episode-33-Downloading-and-Installing-Visual-Studio-2010-Beta-2/" target="_blank"&gt;Tips &amp;amp; Videos on installing the Beta&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The New MSDN&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;MSDN and Visual Studio editions are getting facelifts.&amp;#160;&amp;#160; What’s happening to MSDN?&amp;#160; Take a peek here:&amp;#160; &lt;a title="http://www.microsoft.com/visualstudio/en-us/products/msdn/default.mspx#roadmap" href="http://www.microsoft.com/visualstudio/en-us/products/msdn/default.mspx#roadmap"&gt;http://www.microsoft.com/visualstudio/en-us/products/msdn/default.mspx#roadmap&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The biggest thing here is the new SKU changes we’re making in 2010. The “role-based” editions of Visual Studio and Team System has been revamped to more closely reflect SKU’s used by Windows and Office (&lt;a href="http://blogs.msdn.com/bharry/archive/2009/10/19/vs-2010-licensing-changes.aspx" target="_blank"&gt;Brian Harry posts details here&lt;/a&gt;):&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;Microsoft Visual Studio 2010 Ultimate with MSDN&lt;/b&gt;: the comprehensive suite of application lifecycle management tools for software teams to ensure quality results from design to deployment. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Microsoft Visual Studio 2010 Premium with MSDN&lt;/b&gt;: a complete toolset for developers to deliver scalable, high quality applications. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Microsoft Visual Studio 2010 Professional with MSDN&lt;/b&gt;: the essential tool for professional development tasks to assist developers in implementing their ideas easily. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Cleaner, yes?&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9909344" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/slange/archive/tags/Annoucements/default.aspx">Annoucements</category><category domain="http://blogs.msdn.com/slange/archive/tags/VSTS+2010/default.aspx">VSTS 2010</category><category domain="http://blogs.msdn.com/slange/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://blogs.msdn.com/slange/archive/tags/.NET+4.0/default.aspx">.NET 4.0</category><category domain="http://blogs.msdn.com/slange/archive/tags/MSDN/default.aspx">MSDN</category></item><item><title>Sweeping Changes in Visual Studio 2010 and MSDN - 60 Minute Webcast Series</title><link>http://blogs.msdn.com/slange/archive/2009/10/06/sweeping-changes-in-visual-studio-2010-and-msdn-60-minute-webcast-series.aspx</link><pubDate>Tue, 06 Oct 2009 20:44:53 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9903854</guid><dc:creator>slange</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/slange/comments/9903854.aspx</comments><wfw:commentRss>http://blogs.msdn.com/slange/commentrss.aspx?PostID=9903854</wfw:commentRss><description>&lt;p&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 0px 25px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="msdnlogo" border="0" alt="msdnlogo" align="right" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/SweepingChangesinVisualStudio2010andMSDN_A52A/msdnlogo_3.png" width="205" height="99" /&gt;Visual Studio 2010 and MSDN are BIG – and they are getting bigger! In this session, we’ll explore all the changes to the Visual Studio family of products, including Team Foundation Server as well as recent upgrades and changes to our MSDN line-up. Please join us for a 60 minute “CAN’T MISS” – high level overview, where we will discuss the many changes to our offerings which will likely impact current customers and future customers. We promise you won’t be disappointed! &lt;/p&gt;  &lt;p&gt;Speaker: John Sanderson, Senior Developer Solution Specialist, Microsoft Corporation&lt;/p&gt;  &lt;p&gt;To register online, visit: &lt;a href="http://www.msevents.microsoft.com"&gt;www.msevents.microsoft.com&lt;/a&gt; (search for Event ID below).     &lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td width="187"&gt;           &lt;p&gt;&lt;b&gt;Date&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="262"&gt;           &lt;p&gt;&lt;b&gt;Time&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="150"&gt;           &lt;p&gt;&lt;b&gt;Event ID&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="187"&gt;           &lt;p&gt;Tues, 10/20/2009&lt;/p&gt;         &lt;/td&gt;          &lt;td width="262"&gt;           &lt;p&gt;10:00 AM-11:00 AM PST&lt;/p&gt;         &lt;/td&gt;          &lt;td width="150"&gt;           &lt;p&gt;&lt;u&gt;&lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032426954&amp;amp;Culture=en-US"&gt;1032426954&lt;/a&gt;&lt;/u&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="187"&gt;           &lt;p&gt;Wed, 10/21/2009&lt;/p&gt;         &lt;/td&gt;          &lt;td width="262"&gt;           &lt;p&gt;11:00 AM-12:00 PM PST&lt;/p&gt;         &lt;/td&gt;          &lt;td width="150"&gt;           &lt;p&gt;&lt;u&gt;&lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032426956&amp;amp;Culture=en-US"&gt;1032426956&lt;/a&gt;&lt;/u&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="187"&gt;           &lt;p&gt;Thurs, 10/22/2009&lt;/p&gt;         &lt;/td&gt;          &lt;td width="262"&gt;           &lt;p&gt;9:00 AM-10:00 AM PST&lt;/p&gt;         &lt;/td&gt;          &lt;td width="150"&gt;           &lt;p&gt;&lt;u&gt;&lt;a href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032426957&amp;amp;EventCategory=2&amp;amp;culture=en-US&amp;amp;CountryCode=US"&gt;1032426957&lt;/a&gt;&lt;/u&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="187"&gt;           &lt;p&gt;Tues, 11/3/2009&lt;/p&gt;         &lt;/td&gt;          &lt;td width="262"&gt;           &lt;p&gt;9:00 AM-10:00 AM PST&lt;/p&gt;         &lt;/td&gt;          &lt;td width="150"&gt;           &lt;p&gt;&lt;u&gt;&lt;a href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032426958&amp;amp;EventCategory=2&amp;amp;culture=en-US&amp;amp;CountryCode=US"&gt;1032426958&lt;/a&gt;&lt;/u&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="187"&gt;           &lt;p&gt;Wed, 11/4/2009&lt;/p&gt;         &lt;/td&gt;          &lt;td width="262"&gt;           &lt;p&gt;10:00 AM-11:00 AM PST&lt;/p&gt;         &lt;/td&gt;          &lt;td width="150"&gt;           &lt;p&gt;&lt;u&gt;&lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032426959&amp;amp;Culture=en-US"&gt;1032426959&lt;/a&gt;&lt;/u&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="187"&gt;           &lt;p&gt;Thurs, 11/5/2009&lt;/p&gt;         &lt;/td&gt;          &lt;td width="262"&gt;           &lt;p&gt;11:00 AM-12:00 PM PST&lt;/p&gt;         &lt;/td&gt;          &lt;td width="150"&gt;           &lt;p&gt;&lt;u&gt;&lt;a href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032426960&amp;amp;EventCategory=2&amp;amp;culture=en-US&amp;amp;CountryCode=US"&gt;1032426960&lt;/a&gt;&lt;/u&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="187"&gt;           &lt;p&gt;Tues, 11/10/2009&lt;/p&gt;         &lt;/td&gt;          &lt;td width="262"&gt;           &lt;p&gt;11:00 AM-12:00 PM PST&lt;/p&gt;         &lt;/td&gt;          &lt;td width="150"&gt;           &lt;p&gt;&lt;u&gt;&lt;a href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032426961&amp;amp;EventCategory=2&amp;amp;culture=en-US&amp;amp;CountryCode=US"&gt;1032426961&lt;/a&gt;&lt;/u&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="187"&gt;           &lt;p&gt;Wed, 11/11/2009&lt;/p&gt;         &lt;/td&gt;          &lt;td width="262"&gt;           &lt;p&gt;9:00 AM-10:00 AM PST&lt;/p&gt;         &lt;/td&gt;          &lt;td width="150"&gt;           &lt;p&gt;&lt;u&gt;&lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032426962&amp;amp;Culture=en-US"&gt;1032426962&lt;/a&gt;&lt;/u&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="187"&gt;           &lt;p&gt;Thurs, 11/12/2009&lt;/p&gt;         &lt;/td&gt;          &lt;td width="262"&gt;           &lt;p&gt;11:00 AM-12:00 PM PST&lt;/p&gt;         &lt;/td&gt;          &lt;td width="150"&gt;           &lt;p&gt;&lt;u&gt;&lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032426963&amp;amp;Culture=en-US"&gt;1032426963&lt;/a&gt;&lt;/u&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9903854" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/slange/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://blogs.msdn.com/slange/archive/tags/Webcasts/default.aspx">Webcasts</category><category domain="http://blogs.msdn.com/slange/archive/tags/MSDN/default.aspx">MSDN</category></item><item><title>PDC09 – Will I See You There?</title><link>http://blogs.msdn.com/slange/archive/2009/09/09/pdc09-will-i-see-you-there.aspx</link><pubDate>Wed, 09 Sep 2009 23:02:16 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9893276</guid><dc:creator>slange</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/slange/comments/9893276.aspx</comments><wfw:commentRss>http://blogs.msdn.com/slange/commentrss.aspx?PostID=9893276</wfw:commentRss><description>&lt;p&gt;&lt;a href="http://www.microsoftpdc.com/"&gt;&lt;b&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 5px; display: inline; border-top: 0px; border-right: 0px" title="clip_image002" border="0" alt="clip_image002" align="right" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/PDC09WillISeeYouThere_C566/clip_image002_54bb2b16-8788-41e3-b414-f6687adc144f.png" width="253" height="84" /&gt;&lt;/b&gt;&lt;/a&gt;This year’s &lt;a href="http://www.microsoftpdc.com/" target="_blank"&gt;Professional Developers Conference&lt;/a&gt; (PDC) is coming!&amp;#160; It’s taking place November 17 – 19&lt;sup&gt;th&lt;/sup&gt; in Los Angeles. If you’re a developer, architect or technology leader involved in making strategic technology decisions, this is the conference you need to attend to stay ahead of the curve and get a head start on planning your company’s product and technology investments.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;If you register by September 15, you’ll receive $500 USD off the regular conference pass price.&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;New to the PDC? Learn more about the big announcements from last year and experience the &lt;a href="http://channel9.msdn.com/pdc2008/" target="_blank"&gt;PDC08 online via Channel 9.&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;ABOUT PDC&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The &lt;b&gt;Professional Developers Conference (PDC)&lt;/b&gt; is the definitive developer event focused on the technical strategy of the Microsoft developer platform.&amp;#160; Attendees come from around the world to learn about the future of Microsoft developer technology directly from the people who make it happen.&amp;#160; If you’re a developer, architect or technology leader involved in making strategic technology decisions for your company or organization, the PDC is for you.&lt;/p&gt;  &lt;p&gt;Since 1991, the PDC has been the epicenter of Microsoft’s biggest platform announcements, including Microsoft .NET, Windows® XP, Windows Vista® and Windows 7®. This year, you’ll hear more details about our services platform, Windows®, the Web, devices, and our next generation of developer tools. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;WHAT YOU’LL GET AT THE PDC      &lt;br /&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;Microsoft’s vision and roadmap for the future of developer technology.&lt;/b&gt;&amp;#160; PDC is where our biggest names make the biggest announcements.&amp;#160; Keynoters &lt;a href="http://www.microsoft.com/presspass/exec/ozzie/"&gt;Ray Ozzie&lt;/a&gt; and &lt;a href="http://www.microsoft.com/presspass/exec/bobmuglia/"&gt;Bob Muglia&lt;/a&gt; will share their vision for developer technology at PDC09.&amp;#160; More keynoters still to be announced! &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Deep, technical content delivered by Microsoft’s technology leaders.&amp;#160; &lt;/b&gt;At the PDC, you’ll have the unique opportunity to learn directly from the people who conceived and built the latest Microsoft developer platform technologies and tools.&amp;#160; Much of what’s featured at the PDC has yet to be released, and as a result, session content comes in ‘hot’ and is published all the way up to the event date.&amp;#160; Subscribe to the &lt;a href="http://microsoftpdc.com/Sessions/RSS"&gt;New Sessions RSS &lt;/a&gt;to stay on top of published sessions. &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;Hands-on access to the latest developer technologies and over 1,000 Microsoft product and technology experts available to answer your questions.&amp;#160; &lt;/b&gt;The PDC isn’t just about keynotes and sessions – it’s an opportunity for you to get hands-on access to the latest technologies, have your questions answered by Microsoft program managers and developers and plan the features and architecture to support your product and business goals. &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;Unique networking opportunities with leading-edge developers and technology leaders just like you.&lt;/b&gt; You’ll be among your tribe at PDC09, and we’ve planned a number of special events and places for you to take advantage of the opportunity to connect with and learn from attendees that share your technology interests and business challenges. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;So that’s it!&amp;#160; Will I see you there?&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9893276" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/slange/archive/tags/Events/default.aspx">Events</category><category domain="http://blogs.msdn.com/slange/archive/tags/PDC/default.aspx">PDC</category></item><item><title>Data-Driven Tests in Team System Using Excel as the Data Source</title><link>http://blogs.msdn.com/slange/archive/2009/09/03/data-driven-tests-in-team-system-using-excel-as-the-data-source.aspx</link><pubDate>Fri, 04 Sep 2009 01:14:22 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9891115</guid><dc:creator>slange</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/slange/comments/9891115.aspx</comments><wfw:commentRss>http://blogs.msdn.com/slange/commentrss.aspx?PostID=9891115</wfw:commentRss><description>&lt;p&gt;There is some documentation to explain this already, but below is a step-by-step that shows how to use an Excel spreadsheet as a Data Source for both unit and web tests.&lt;/p&gt;  &lt;p&gt;First, let’s set the stage.&amp;#160; I’m going to use a solution containing a class library and a web site.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="imageSolution" border="0" alt="imageSolution" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/DataDrivenTestsinTeamSystemUsingExcelast_CF7E/image_3.png" width="234" height="187" /&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The class library has a single class with a single method that simply returns a “hello”-type greeting.&amp;#160; &lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; SimpleLibrary
{
    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Class1
    {
        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; GetGreeting(&lt;span class="kwrd"&gt;string&lt;/span&gt; name)
        {
            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="str"&gt;&amp;quot;Hello, &amp;quot;&lt;/span&gt; + name;
        }
    }
}&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;For my VB friends out there:&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;Namespace&lt;/span&gt; SimpleLibrary
    &lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Class&lt;/span&gt; Class1
        &lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt; GetGreeting(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; name &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;) &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;
            &lt;span class="kwrd"&gt;Return&lt;/span&gt; &lt;span class="str"&gt;&amp;quot;Hello, &amp;quot;&lt;/span&gt; &amp;amp; name
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt;
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Class&lt;/span&gt;
&lt;span class="kwrd"&gt;End&lt;/span&gt; Namespace&lt;/pre&gt;
&lt;style type="text/css"&gt;

.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; }&lt;/style&gt;

&lt;p&gt;&lt;strong&gt;Unit Testing&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So now I’m going to create a unit test to exercise the “GetGreeting” method.&amp;#160; (As always, tests go into a Test project.&amp;#160; I’m calling mine “TestStuff”.)&lt;/p&gt;

&lt;p&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://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/DataDrivenTestsinTeamSystemUsingExcelast_CF7E/image_6.png" width="243" height="146" /&gt; &lt;/p&gt;

&lt;p&gt;Here’s my straightforward unit test:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;[TestMethod()]
&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; GetGreetingTest()
{
   Class1 target = &lt;span class="kwrd"&gt;new&lt;/span&gt; Class1();
&lt;span class="kwrd"&gt;&lt;font color="#000000"&gt;   &lt;/font&gt;string&lt;/span&gt; name = &lt;span class="str"&gt;&amp;quot;Steve&amp;quot;&lt;/span&gt;;
&lt;span class="kwrd"&gt;&lt;font color="#000000"&gt;   &lt;/font&gt;string&lt;/span&gt; expected = &lt;span class="str"&gt;&amp;quot;Hello, &amp;quot;&lt;/span&gt; + name;
   &lt;span class="kwrd"&gt;string&lt;/span&gt; actual;
   actual = target.GetGreeting(name);
   Assert.AreEqual(expected, actual);&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;}&lt;/pre&gt;
&lt;style type="text/css"&gt;



.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; }&lt;/style&gt;

&lt;p&gt;In VB:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&amp;lt;TestMethod()&amp;gt; _
&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; GetGreetingTest()
&lt;span class="kwrd"&gt;   Dim&lt;/span&gt; target &lt;span class="kwrd"&gt;As&lt;/span&gt; Class1 = &lt;span class="kwrd"&gt;New&lt;/span&gt; Class1
   &lt;span class="kwrd"&gt;Dim&lt;/span&gt; name &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; = &lt;span class="str"&gt;&amp;quot;Steve&amp;quot;&lt;/span&gt;
   &lt;span class="kwrd"&gt;Dim&lt;/span&gt; expected &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; = &lt;span class="str"&gt;&amp;quot;Hello, &amp;quot;&lt;/span&gt; &amp;amp; name
   &lt;span class="kwrd"&gt;Dim&lt;/span&gt; actual &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;
   actual = target.GetGreeting(name)
   Assert.AreEqual(expected, actual)
&lt;span class="kwrd"&gt;End&lt;/span&gt; Sub&lt;/pre&gt;
&lt;style type="text/css"&gt;

.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; }&lt;/style&gt;

&lt;p&gt;I’ll run it once to make sure it builds, runs, and passes:&lt;/p&gt;

&lt;p&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://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/DataDrivenTestsinTeamSystemUsingExcelast_CF7E/image_14.png" width="404" height="65" /&gt; &lt;/p&gt;

&lt;p&gt;I have an Excel file with the following content in Sheet1:&lt;/p&gt;

&lt;p&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://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/DataDrivenTestsinTeamSystemUsingExcelast_CF7E/image_9.png" width="195" height="140" /&gt; &lt;/p&gt;

&lt;p&gt;Nothing fancy, but I reserve the right to over-simplify for demo purposes.&amp;#160; :)&lt;/p&gt;

&lt;p&gt;To create a data-driven unit test that uses this Excel spreadsheet, I basically follow the &lt;a href="http://msdn.microsoft.com/en-us/library/ms182527.aspx" target="_blank"&gt;steps you’d find on MSDN&lt;/a&gt;, with the main difference being in how I wire up my data source.&lt;/p&gt;

&lt;p&gt;I click on the ellipsis in the Data Connection String property for my unit test.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/DataDrivenTestsinTeamSystemUsingExcelast_CF7E/image_11.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" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/DataDrivenTestsinTeamSystemUsingExcelast_CF7E/image_thumb_3.png" width="244" height="192" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Follow these steps to set up the Excel spreadsheet as a test data source for a unit test.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;In the New Test Data Source Wizard dialog, select “Database”.&amp;#160; &lt;/li&gt;

  &lt;li&gt;Click “New Connection”. &lt;/li&gt;

  &lt;li&gt;In the “Choose Data Source” dialog, slect “Microsoft ODBC Data Source” and click “Continue”.&amp;#160; (For additional details about connection strings &amp;amp; data sources, &lt;a href="http://msdn.microsoft.com/en-us/library/ms404700.aspx" target="_blank"&gt;check this out&lt;/a&gt;.) 

    &lt;br /&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://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/DataDrivenTestsinTeamSystemUsingExcelast_CF7E/image_17.png" width="441" height="251" /&gt; &lt;/li&gt;

  &lt;li&gt;In “Connection Properties”, select the “Use connection string” radio button, then click “Build”. &lt;/li&gt;

  &lt;li&gt;Choose if you want to use a File Data Source or a Machine Data Source.&amp;#160; For this post, I’m using a Machine Data Source &lt;/li&gt;

  &lt;li&gt;Select the “Machine Data Source” tab, select “Excel Files” and click Ok &lt;/li&gt;

  &lt;li&gt;Browse to and select your Excel file. 
    &lt;br /&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://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/DataDrivenTestsinTeamSystemUsingExcelast_CF7E/image_29.png" width="391" height="163" /&gt; &lt;/li&gt;

  &lt;li&gt;Click “Test Connection” to make sure everything’s golden. 
    &lt;br /&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://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/DataDrivenTestsinTeamSystemUsingExcelast_CF7E/image_32.png" width="369" height="345" /&gt; &lt;/li&gt;

  &lt;li&gt;Click Ok to close “Connection Properties” &lt;/li&gt;

  &lt;li&gt;Click Next &lt;/li&gt;

  &lt;li&gt;You should see the worksheets listed in the available tables for this data source. 
    &lt;br /&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://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/DataDrivenTestsinTeamSystemUsingExcelast_CF7E/image_23.png" width="300" height="82" /&gt; &lt;/li&gt;

  &lt;li&gt;In my example, I’ll select “Sheet1$” &lt;/li&gt;

  &lt;li&gt;Click “Finish” &lt;/li&gt;

  &lt;li&gt;You should get a message asking if you want to copy your data file into the project and add as a deployment item.&amp;#160; Click Yes. 
    &lt;br /&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://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/DataDrivenTestsinTeamSystemUsingExcelast_CF7E/image_35.png" width="445" height="121" /&gt; &lt;/li&gt;

  &lt;li&gt;You should now see the appropriate values in Data Connection String and Data Table Name properties, as well as your Excel file listed as a deployment item: 
    &lt;br /&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://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/DataDrivenTestsinTeamSystemUsingExcelast_CF7E/image_38.png" width="276" height="230" /&gt;&amp;#160; &lt;/li&gt;

  &lt;li&gt;Now I return to my unit test, note that it’s properly decorated, and make a change to the “name” variable assignment to reference my data source (accessible via TestContext): 
    &lt;pre class="csharpcode"&gt;[DataSource(&lt;span class="str"&gt;&amp;quot;System.Data.Odbc&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;Dsn=Excel Files; &lt;/span&gt;&lt;/pre&gt;

    &lt;pre class="csharpcode"&gt;&lt;span class="str"&gt;dbq=|DataDirectory|\\ExcelTestData.xlsx;defaultdir=C:\\TestData; &lt;/span&gt;&lt;/pre&gt;

    &lt;pre class="csharpcode"&gt;&lt;span class="str"&gt;driverid=1046;maxbuffersize=2048;pagetimeout=5&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;Sheet1$&amp;quot;&lt;/span&gt;, &lt;/pre&gt;

    &lt;pre class="csharpcode"&gt;DataAccessMethod.Sequential), &lt;/pre&gt;

    &lt;pre class="csharpcode"&gt;DeploymentItem(&lt;span class="str"&gt;&amp;quot;TestStuff\\ExcelTestData.xlsx&amp;quot;&lt;/span&gt;), TestMethod()]
        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; GetGreetingTest()
        {
            Class1 target = &lt;span class="kwrd"&gt;new&lt;/span&gt; Class1();
            &lt;u&gt;&lt;span class="kwrd"&gt;string&lt;/span&gt; name = &lt;strong&gt;TestContext.DataRow[&lt;span class="str"&gt;&amp;quot;FirstName&amp;quot;&lt;/span&gt;].ToString()&lt;/strong&gt;;&lt;/u&gt;
            &lt;span class="kwrd"&gt;string&lt;/span&gt; expected = &lt;span class="str"&gt;&amp;quot;Hello, &amp;quot;&lt;/span&gt; + name;
            &lt;span class="kwrd"&gt;string&lt;/span&gt; actual;
            actual = target.GetGreeting(name);
            Assert.AreEqual(expected, actual);
        }&lt;/pre&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;pre class="csharpcode"&gt;&lt;u&gt;Again, in VB:&lt;/u&gt;&lt;/pre&gt;

  &lt;pre class="csharpcode"&gt;&amp;lt;DataSource(&lt;span class="str"&gt;&amp;quot;System.Data.Odbc&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;Dsn=Excel Files;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="csharpcode"&gt;&lt;span class="str"&gt;dbq=|DataDirectory|\ExcelTestData.xlsx;defaultdir=C:\TestData;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="csharpcode"&gt;&lt;span class="str"&gt;driverid=1046;maxbuffersize=2048;pagetimeout=5&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;Sheet1$&amp;quot;&lt;/span&gt;, &lt;/pre&gt;

  &lt;pre class="csharpcode"&gt;DataAccessMethod.Sequential)&amp;gt; &lt;/pre&gt;

  &lt;pre class="csharpcode"&gt;&amp;lt;DeploymentItem(&lt;span class="str"&gt;&amp;quot;TestStuff\ExcelTestData.xlsx&amp;quot;&lt;/span&gt;)&amp;gt; &amp;lt;TestMethod()&amp;gt; _
    &lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; GetGreetingTest()
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; target &lt;span class="kwrd"&gt;As&lt;/span&gt; Class1 = &lt;span class="kwrd"&gt;New&lt;/span&gt; Class1
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; name &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; = TestContext.DataRow(&lt;span class="str"&gt;&amp;quot;FirstName&amp;quot;&lt;/span&gt;).ToString()
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; expected &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; = &lt;span class="str"&gt;&amp;quot;Hello, &amp;quot;&lt;/span&gt; + name
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; actual &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;
        actual = target.GetGreeting(name)
        Assert.AreEqual(expected, actual)
    &lt;span class="kwrd"&gt;End&lt;/span&gt; Sub&lt;/pre&gt;
  &lt;style type="text/css"&gt;

.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; }&lt;/style&gt;&lt;/blockquote&gt;

&lt;ul&gt;&lt;style type="text/css"&gt;



.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; }&lt;/style&gt;

  &lt;li&gt;Now, running the unit test shows me that it ran a pass for each row in my sheet 
    &lt;br /&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://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/DataDrivenTestsinTeamSystemUsingExcelast_CF7E/image_41.png" width="386" height="74" /&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Yippee!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Web Testing&lt;/strong&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;&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;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;You can achieve the same thing with a web test.&amp;#160; So I’m going to first create a simple web test that records me navigating to the website (at Default.aspx), entering a name in the text box, clicking, submit, and seeing the results.&amp;#160; After recording, it looks like this.&lt;/p&gt;

&lt;p&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://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/DataDrivenTestsinTeamSystemUsingExcelast_CF7E/image_44.png" width="385" height="188" /&gt; &lt;/p&gt;

&lt;p&gt;See “TxtName=Steve”?&amp;#160; The value is what I want to wire up to my Excel spreadsheet.&amp;#160; To do that:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Click on the “Add Data Source” toolbar button. &lt;/li&gt;

  &lt;li&gt;Enter a data source name (I’m using “ExcelData”) &lt;/li&gt;

  &lt;li&gt;Select “Database” as the data source type, and click Next &lt;/li&gt;

  &lt;li&gt;Go through the same steps in the Unit Testing section to set up a data connection to the Excel file.&amp;#160; (Note:&amp;#160; If you’ve already done the above, and therefore the Excel file is already in your project and a deployment item, browse to and select the copy of the Excel file that’s in your testing project.&amp;#160; That will save you the hassle of re-copying the file, and overwriting.) &lt;/li&gt;

  &lt;li&gt;You’ll now see a Data Sources node in my web test: 
    &lt;br /&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://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/DataDrivenTestsinTeamSystemUsingExcelast_CF7E/image_47.png" width="297" height="206" /&gt; &lt;/li&gt;

  &lt;li&gt;Select the parameter you want to wire to the data source (in my case, TxtName), and view its properties. &lt;/li&gt;

  &lt;li&gt;Click the drop-down arrow in the Value property, and select the data field you want to use. 
    &lt;br /&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://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/DataDrivenTestsinTeamSystemUsingExcelast_CF7E/image_50.png" width="242" height="161" /&gt; &lt;/li&gt;

  &lt;li&gt;Now save and run your web test again.&amp;#160; If you haven’t used any other data-driven web tests in this project, you’ll notice that there was only one pass.&amp;#160; That’s because your web test run configuration is set to a fixed run count (1) by default.&amp;#160; To make changes for each run, click “Edit run settings” and select “One run per data source row”.&amp;#160; To make sure all rows in data sources are always leveraged, edit your .testrunconfig file to specify as such. 
    &lt;br /&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://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/DataDrivenTestsinTeamSystemUsingExcelast_CF7E/image_53.png" width="481" height="246" /&gt; &lt;/li&gt;

  &lt;li&gt;Now run it again, and you should see several passes in your test results: 
    &lt;br /&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://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/DataDrivenTestsinTeamSystemUsingExcelast_CF7E/image_56.png" width="579" height="220" /&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s it in a simple nutshell!&amp;#160; There are other considerations to keep in mind such as concurrent access, additional deployment items, and perhaps using system DSNs, but this should get you started. &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9891115" width="1" height="1"&gt;</description></item><item><title>patterns &amp; practices Summit 2009</title><link>http://blogs.msdn.com/slange/archive/2009/08/28/patterns-practices-summit-2009.aspx</link><pubDate>Fri, 28 Aug 2009 20:43:33 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9888690</guid><dc:creator>slange</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/slange/comments/9888690.aspx</comments><wfw:commentRss>http://blogs.msdn.com/slange/commentrss.aspx?PostID=9888690</wfw:commentRss><description>&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="799"&gt;         &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/patternspracticesSummit2009_A4B7/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="p&amp;amp;p" border="0" alt="p&amp;amp;p" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/patternspracticesSummit2009_A4B7/image_thumb.png" width="644" height="89" /&gt;&lt;/a&gt; &lt;/p&gt;          &lt;p&gt;&lt;b&gt;patterns &amp;amp; practices Summit&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;2009 is Here!&lt;/b&gt;&amp;#160; It will be held in Microsoft Conference Center, Redmond, WA between October 12&lt;sup&gt;th&lt;/sup&gt; and 16&lt;sup&gt;th&lt;/sup&gt; 2009. &lt;/p&gt;          &lt;p&gt;We are putting together a strong line up of technical sessions from p&amp;amp;p team members, Microsoft product groups and industry experts. This year we are also introducing “&lt;b&gt;&lt;u&gt;Lightning Talks&lt;/u&gt;&lt;/b&gt;”. If the sessions are the gourmet food for your brain, these lightning talks are the gourmet snack, the energy bar kind. We will provide you more details on the lightning talk in our next update. Today we want update you with our line-up of keynote speakers. &lt;/p&gt;          &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;          &lt;p&gt;&lt;b&gt;p&amp;amp;p Summit Keynote Speakers&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="3"&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;         &lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;             &lt;tr&gt;               &lt;td valign="top" width="792"&gt;                 &lt;p&gt;This year’s keynoters include industry luminary Martin Fowler and Microsoft technical leaders&amp;#160; Scott Guthrie, Brian Harry, David Campbell, Wolfram Schulte and Douglas Purdy. Microsoft General Manager Emma Williams will kick off this year’s p&amp;amp;p summit.                   &lt;table border="0" cellpadding="0"&gt;&lt;tbody&gt;                       &lt;tr&gt;                         &lt;td valign="top"&gt;                           &lt;p&gt;&lt;a href="http://www.pnpsummit.com/West2009/west2009presenters.aspx#martinf"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image003" border="0" alt="clip_image003" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/patternspracticesSummit2009_A4B7/clip_image003_9b527400-6434-4f4e-86a5-c656e0714efa.jpg" width="69" height="82" /&gt;&lt;/a&gt;&lt;/p&gt;                         &lt;/td&gt;                          &lt;td valign="top"&gt;                           &lt;p&gt;&lt;a href="http://www.pnpsummit.com/West2009/west2009presenters.aspx#scottg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image005" border="0" alt="clip_image005" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/patternspracticesSummit2009_A4B7/clip_image005_4b95da8e-7f66-4d30-8e6e-3f2f3e6973ea.jpg" width="69" height="82" /&gt;&lt;/a&gt;&lt;/p&gt;                         &lt;/td&gt;                          &lt;td valign="top"&gt;                           &lt;p&gt;&lt;a href="http://www.pnpsummit.com/West2009/west2009presenters.aspx#brianh"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image007" border="0" alt="clip_image007" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/patternspracticesSummit2009_A4B7/clip_image007_83a7d302-3022-41f3-afa1-b9ad67d164a5.jpg" width="69" height="82" /&gt;&lt;/a&gt;&lt;/p&gt;                         &lt;/td&gt;                          &lt;td valign="top"&gt;                           &lt;p&gt;&lt;a href="http://www.pnpsummit.com/West2009/west2009presenters.aspx#davidc"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image009" border="0" alt="clip_image009" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/patternspracticesSummit2009_A4B7/clip_image009_70d37079-62ca-4844-acdd-bc6e705dbc6d.jpg" width="69" height="82" /&gt;&lt;/a&gt;&lt;/p&gt;                         &lt;/td&gt;                          &lt;td valign="top"&gt;                           &lt;p&gt;&lt;a href="http://www.pnpsummit.com/West2009/west2009presenters.aspx#wolframs"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image011" border="0" alt="clip_image011" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/patternspracticesSummit2009_A4B7/clip_image011_4c2000f9-eae7-4e2f-973a-2b07d4ca5f3b.jpg" width="69" height="82" /&gt;&lt;/a&gt;&lt;/p&gt;                         &lt;/td&gt;                          &lt;td valign="top"&gt;                           &lt;p&gt;&lt;a href="http://www.pnpsummit.com/West2009/west2009presenters.aspx#douglasp"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image013" border="0" alt="clip_image013" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/patternspracticesSummit2009_A4B7/clip_image013_c0754286-10af-4a8d-8165-0dfd3fb80fbd.jpg" width="69" height="82" /&gt;&lt;/a&gt;&lt;/p&gt;                         &lt;/td&gt;                          &lt;td valign="top"&gt;                           &lt;p&gt;&lt;a href="http://www.pnpsummit.com/West2009/west2009presenters.aspx#emmaw"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image015" border="0" alt="clip_image015" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/patternspracticesSummit2009_A4B7/clip_image015_5cea6ba9-8981-4e6e-a245-9fdd6212f8c7.jpg" width="69" height="82" /&gt;&lt;/a&gt;&lt;/p&gt;                         &lt;/td&gt;                       &lt;/tr&gt;                        &lt;tr&gt;                         &lt;td valign="top"&gt;                           &lt;p&gt;&lt;a href="http://www.pnpsummit.com/West2009/west2009presenters.aspx#martinf"&gt;Martin                                &lt;br /&gt;Fowler&lt;/a&gt;&lt;/p&gt;                         &lt;/td&gt;                          &lt;td valign="top"&gt;                           &lt;p&gt;&lt;a href="http://www.pnpsummit.com/West2009/west2009presenters.aspx#scottg"&gt;Scott                                &lt;br /&gt;Guthrie&lt;/a&gt;&lt;/p&gt;                         &lt;/td&gt;                          &lt;td valign="top"&gt;                           &lt;p&gt;&lt;a href="http://www.pnpsummit.com/West2009/west2009presenters.aspx#brianh"&gt;Brian                                &lt;br /&gt;Harry&lt;/a&gt;&lt;/p&gt;                         &lt;/td&gt;                          &lt;td valign="top"&gt;                           &lt;p&gt;&lt;a href="http://www.pnpsummit.com/West2009/west2009presenters.aspx#davidc"&gt;David                                &lt;br /&gt;Campbell&lt;/a&gt;&lt;/p&gt;                         &lt;/td&gt;                          &lt;td valign="top"&gt;                           &lt;p&gt;&lt;a href="http://www.pnpsummit.com/West2009/west2009presenters.aspx#wolframs"&gt;Wolfram                                &lt;br /&gt;Schulte&lt;/a&gt;&lt;/p&gt;                         &lt;/td&gt;                          &lt;td valign="top"&gt;                           &lt;p&gt;&lt;a href="http://www.pnpsummit.com/West2009/west2009presenters.aspx#dougp"&gt;Douglas                                &lt;br /&gt;Purdy&lt;/a&gt;&lt;/p&gt;                         &lt;/td&gt;                          &lt;td valign="top"&gt;                           &lt;p&gt;&lt;a href="http://www.pnpsummit.com/West2009/west2009presenters.aspx#emmaw"&gt;Emma                                &lt;br /&gt;Williams&lt;/a&gt;&lt;/p&gt;                         &lt;/td&gt;                       &lt;/tr&gt;                     &lt;/tbody&gt;&lt;/table&gt;                 &lt;/p&gt;               &lt;/td&gt;             &lt;/tr&gt;           &lt;/tbody&gt;&lt;/table&gt;          &lt;p&gt;&lt;b&gt;Why Attend?&lt;/b&gt;&lt;/p&gt;          &lt;p&gt;When you attend the patterns &amp;amp; practices Summit you will gain deeper insight into the p&amp;amp;p guidance that you are already using. You will also discover and learn about p&amp;amp;p guidance offerings that address additional development challenges. You'll have the opportunity to interact directly with the p&amp;amp;p team, top engineers from other Microsoft product groups, and industry luminaries. Attending the patterns &amp;amp; practices Summit will provide you with insight into making better design, implementation, and technology selection decisions.&lt;/p&gt;          &lt;p&gt;&lt;b&gt;What Previous Attendees Have Said...&lt;/b&gt;&lt;/p&gt;          &lt;p&gt;&amp;quot;This was a wonderful experience.&amp;quot;&lt;/p&gt;          &lt;p&gt;&amp;quot;Overall, conference was great, gave us good roadmap to follow.&amp;quot;&lt;/p&gt;          &lt;p&gt;&amp;quot;Thank you for all the great ideas. I am looking forward to going home and applying them.&amp;quot;&lt;/p&gt;          &lt;p&gt;&amp;quot;Many of the things I learned here will revolutionize our practices, processes, designs, and patterns. THANKS!&amp;quot;&lt;/p&gt;          &lt;p&gt;&amp;quot;Speakers were great&amp;quot;&lt;/p&gt;          &lt;p&gt;&amp;quot;Humor was refreshing&amp;quot;&lt;/p&gt;          &lt;p&gt;&amp;quot;Great event! Do it again!&amp;quot;&lt;/p&gt;          &lt;p&gt;&amp;quot;Excellent conference, just first day alone was worth the money. Thank you.&amp;quot;&lt;/p&gt;          &lt;p&gt;&amp;quot;This was an excellent value and I would recommend it to everyone!!&amp;quot;&lt;/p&gt;          &lt;p&gt;&amp;quot;All speakers were very knowledgeable and they addressed many issues that I face every day.&amp;quot;&lt;/p&gt;          &lt;p&gt;&amp;quot;This was an excellent conference for me. I'm taking away some useful tools.&amp;quot;&lt;/p&gt;          &lt;p&gt;&amp;#160;&lt;/p&gt;          &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/patternspracticesSummit2009_A4B7/clip_image001%5B5%5D.png"&gt;&lt;/a&gt;&lt;b&gt;Special Offer ($400 off until June 30&lt;sup&gt;th&lt;/sup&gt; and $200 off after that)&lt;/b&gt;&lt;/p&gt;          &lt;p&gt;We are happy to extend a special offer to you via this email. This is only available to the recipients of this email. With this offer, you will save $400 of the best available open registration price until June 30&lt;sup&gt;th&lt;/sup&gt; and $200 off after that. &lt;a href="http://www.pnpsummit.com/?promo=msinvite"&gt;Register now&lt;/a&gt; to take advantage of this special offer.&lt;/p&gt;          &lt;p&gt;Price Information:&lt;/p&gt;          &lt;p&gt;&lt;b&gt;&lt;s&gt;$1695&lt;/s&gt;&lt;/b&gt; &lt;b&gt;$1295&lt;/b&gt; - Early Bird (thru June 30&lt;sup&gt;th&lt;/sup&gt;)            &lt;br /&gt;&lt;b&gt;&lt;s&gt;$1695&lt;/s&gt;&lt;/b&gt; &lt;b&gt;$1495&lt;/b&gt; - Early Bird (thru August 31)            &lt;br /&gt;&lt;b&gt;&lt;s&gt;$1895&lt;/s&gt;&lt;/b&gt; &lt;b&gt;$1695&lt;/b&gt; - Standard Registration            &lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;          &lt;p&gt;&lt;a href="http://msdn.microsoft.com/practices"&gt;http://msdn.microsoft.com/practices&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9888690" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/slange/archive/tags/Events/default.aspx">Events</category></item><item><title>Thank you, Denver! Goodnight!</title><link>http://blogs.msdn.com/slange/archive/2009/08/24/thank-you-denver-goodnight.aspx</link><pubDate>Tue, 25 Aug 2009 09:26:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9883737</guid><dc:creator>slange</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/slange/comments/9883737.aspx</comments><wfw:commentRss>http://blogs.msdn.com/slange/commentrss.aspx?PostID=9883737</wfw:commentRss><description>&lt;p&gt;Thanks to the roughly 100 of you who attended the &lt;a href="http://www.denvervisualstudio.net" target="_blank"&gt;Denver VS.Net User Group&lt;/a&gt;.&amp;#160; While I’m sure you all showed up primarily for the free food and door prizes, I appreciate the level of interaction during my presentation last night (“Team Foundation Server: Today &amp;amp; Tomorrow”).&amp;#160; &lt;/p&gt;  &lt;p&gt;As promised, here is the presentation I used last night (posted on &lt;a href="http://skydrive.live.com" target="_blank"&gt;SkyDrive&lt;/a&gt;):&lt;/p&gt;  &lt;p&gt;&lt;iframe style="border-bottom: #dde5e9 1px solid; border-left: #dde5e9 1px solid; padding-bottom: 0px; background-color: #ffffff; margin: 3px; padding-left: 0px; width: 240px; padding-right: 0px; height: 66px; border-top: #dde5e9 1px solid; border-right: #dde5e9 1px solid; padding-top: 0px" marginheight="0" src="http://cid-fa3fcb461262caf6.skydrive.live.com/embedrowdetail.aspx/Public/Presentations/TFS%20Today%20%7C0%20Tomorrow.pptx" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;  &lt;p&gt;Please send me feedback or any other questions you might have!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9883737" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/slange/archive/tags/User+Groups/default.aspx">User Groups</category><category domain="http://blogs.msdn.com/slange/archive/tags/Denver/default.aspx">Denver</category></item><item><title>60 Minute Webcast Series: Team Foundation Server Today &amp; Tomorrow</title><link>http://blogs.msdn.com/slange/archive/2009/08/24/60-minute-webcast-series-team-foundation-server-today-tomorrow.aspx</link><pubDate>Tue, 25 Aug 2009 00:25:58 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9882986</guid><dc:creator>slange</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/slange/comments/9882986.aspx</comments><wfw:commentRss>http://blogs.msdn.com/slange/commentrss.aspx?PostID=9882986</wfw:commentRss><description>&lt;table border="0" cellspacing="0" cellpadding="0" width="627"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td&gt;         &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="clip_image002" border="0" hspace="12" alt="clip_image002" align="right" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/60MinuteWebcastSeriesTeamFoundationServe_D8FB/clip_image002_3.jpg" width="182" height="105" /&gt;&lt;b&gt; &lt;/b&gt;Team Foundation Server is big – and it’s only getting bigger! In this session, we’ll explore Team Foundation Server and its current capabilities, including version control, work item tracking (tasks, bugs, etc.), build automation, and reporting. We will also take a look at some of the new capabilities “in the pipe” for TFS 2010 – not only improvements on existing functionality, but new capabilities such as workflow-based build, hierarchical work items, and drag &amp;amp; drop merging.&lt;/p&gt;          &lt;p&gt;&lt;b&gt;Speaker: &lt;/b&gt;Steven Lange, Developer Technology Specialist, Microsoft (&lt;a href="http://blogs.msdn.com/slange/"&gt;http://blogs.msdn.com/slange/&lt;/a&gt;) &lt;b&gt;&lt;/b&gt;&lt;/p&gt;          &lt;p&gt;&lt;b&gt;September 25, 2009&lt;/b&gt; | 11:00 AM – 12:00 PM&lt;/p&gt;          &lt;p&gt;Click &lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032424150&amp;amp;Culture=en-US"&gt;here&lt;/a&gt; to register (Event ID: 1032424150).&lt;/p&gt;          &lt;p&gt;&lt;b&gt;October 30, 2009&lt;/b&gt;| 11:00 AM-12:00 PM PST&lt;/p&gt;          &lt;p&gt;Click &lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032424150&amp;amp;Culture=en-US"&gt;here&lt;/a&gt; to register (Event ID: 1032424151)&lt;/p&gt;          &lt;p&gt;&lt;b&gt;&lt;u&gt;Additional Offerings &amp;amp; Solutions&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;         &lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;             &lt;tr&gt;               &lt;td&gt;                 &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/60MinuteWebcastSeriesTeamFoundationServe_D8FB/clip_image005_6.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image005" border="0" alt="clip_image005" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/60MinuteWebcastSeriesTeamFoundationServe_D8FB/clip_image005_thumb.png" width="24" height="5" /&gt;&lt;/a&gt;&lt;/p&gt;               &lt;/td&gt;                &lt;td&gt;                 &lt;p&gt;&lt;strong&gt;Improve ALM solutions and strategies&lt;/strong&gt;                    &lt;br /&gt;How can you make your development process more efficient, consistent, and with improved quality—for FREE? Take advantage of free advice.&lt;/p&gt;               &lt;/td&gt;                &lt;td&gt;                 &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/60MinuteWebcastSeriesTeamFoundationServe_D8FB/clip_image005%5B1%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image005[1]" border="0" alt="clip_image005[1]" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/60MinuteWebcastSeriesTeamFoundationServe_D8FB/clip_image005%5B1%5D_thumb.png" width="24" height="5" /&gt;&lt;/a&gt;&lt;/p&gt;               &lt;/td&gt;             &lt;/tr&gt;           &lt;/tbody&gt;&lt;/table&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;         &lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;             &lt;tr&gt;               &lt;td valign="top"&gt;                 &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image011" border="0" alt="clip_image011" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/60MinuteWebcastSeriesTeamFoundationServe_D8FB/clip_image011_3.gif" width="44" height="54" /&gt;&lt;/p&gt;               &lt;/td&gt;                &lt;td valign="top" width="3"&gt;&amp;#160;&lt;/td&gt;                &lt;td valign="top" width="298"&gt;                 &lt;p&gt;FREE Expert ALM Consulting                   &lt;br /&gt;Get expert advice on your current Application Life-Cycle Management and development processes. Built on a survey of your team leaders, the ALM Catalyst Insight program is phone-based consulting that highlights your organization’s best practices and uncovers areas of risk that will improve with better ALM solutions and strategies.&lt;/p&gt;                  &lt;p&gt;&lt;a href="http://www.microsoft.com/click/almcatalyst"&gt;&amp;gt; Visit the ALM Catalyst portal to learn more and register.&lt;/a&gt;&lt;/p&gt;               &lt;/td&gt;                &lt;td&gt;&amp;#160;&lt;/td&gt;                &lt;td valign="top"&gt;                 &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image012" border="0" alt="clip_image012" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/60MinuteWebcastSeriesTeamFoundationServe_D8FB/clip_image012_3.gif" width="44" height="54" /&gt;&lt;/p&gt;               &lt;/td&gt;                &lt;td valign="top"&gt;                 &lt;p&gt;FREE Live Workshops                   &lt;br /&gt;Learn how to use Visual Studio Team System 2008 Team Foundation Server to its full potential. Four ongoing ALM Catalyst Live Workshops cover different aspects of the development process:&lt;/p&gt;                  &lt;ul&gt;                   &lt;li&gt;Preparation and use of reports&lt;/li&gt;                    &lt;li&gt;Benefits of automated builds&lt;/li&gt;                    &lt;li&gt;Integration of quality assurance&lt;/li&gt;                    &lt;li&gt;Implementation of consistent process&lt;/li&gt;                 &lt;/ul&gt;                  &lt;p&gt;&lt;a href="http://www.microsoft.com/click/almcatalyst"&gt;&amp;gt; Check out the schedule and register for a FREE Live Workshop now.&lt;/a&gt;&lt;/p&gt;               &lt;/td&gt;             &lt;/tr&gt;           &lt;/tbody&gt;&lt;/table&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9882986" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/slange/archive/tags/Team+Foundation+Server/default.aspx">Team Foundation Server</category><category domain="http://blogs.msdn.com/slange/archive/tags/Webcasts/default.aspx">Webcasts</category></item><item><title>Event: Better Software Quality with Visual Studio Team System 2010</title><link>http://blogs.msdn.com/slange/archive/2009/08/24/event-better-software-quality-with-visual-studio-team-system-2010.aspx</link><pubDate>Tue, 25 Aug 2009 00:22:42 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9882985</guid><dc:creator>slange</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/slange/comments/9882985.aspx</comments><wfw:commentRss>http://blogs.msdn.com/slange/commentrss.aspx?PostID=9882985</wfw:commentRss><description>&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="953"&gt;         &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/EventBetterSoftwareQualitywithVisualStud_D83A/clip_image002_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/EventBetterSoftwareQualitywithVisualStud_D83A/clip_image002_thumb.jpg" width="571" height="120" /&gt;&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="922"&gt;         &lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;          &lt;p&gt;&lt;b&gt;Better Software Quality with Visual Studio Team System 2010 &lt;/b&gt;&lt;/p&gt;          &lt;p&gt;&lt;i&gt;Please join &lt;/i&gt;&lt;a href="http://www.microsoft.com/"&gt;&lt;i&gt;Microsoft&lt;/i&gt;&lt;/a&gt;&lt;i&gt; and &lt;/i&gt;&lt;a href="http://www.nwcadence.com/"&gt;&lt;i&gt;Northwest Cadence&lt;/i&gt;&lt;/a&gt;&lt;i&gt; for these free half-day sessions designed to introduce you to the quality tools of Microsoft Visual Studio Team System 2010.&lt;/i&gt;&lt;/p&gt;          &lt;p&gt;Learn how Application Lifecycle Management (ALM) coupled with ALM tooling will help organizations build quality into their lifecycle.&amp;#160; Many of the great features of Visual Studio Team System 2010 will help you break down organizational walls between your developers and testers. Get better software with Visual Studio Team System 2010.&lt;/p&gt;          &lt;p&gt;This event is geared towards both non-technical and technical testers, developers, project managers, QA managers, and others interested in improving the quality of your code. &lt;/p&gt;          &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;          &lt;p&gt;&lt;b&gt;Session Topics&lt;/b&gt;&lt;/p&gt;          &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;          &lt;p&gt;&lt;b&gt;Understanding the Visual Studio Team System Quality Tools&lt;/b&gt;&lt;/p&gt;          &lt;p&gt;Tour the quality tools available in VSTS 2010, including Test Case Management, Bug Tracking, Test Cases and the new Microsoft Test and Lab Manager interface.&amp;#160; See how VSTS 2010 can provide traceability from requirements to code, test runs, bugs, tested environments and code.&lt;/p&gt;          &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;          &lt;p&gt;&lt;b&gt;Running Test Cases &amp;amp; Filing Bugs&lt;/b&gt;&lt;/p&gt;          &lt;p&gt;We will show you how to use the Test Runner to run manual tests against a particular test environment, take screenshots, and file a series of bugs.&amp;#160; All this while automatically recording a video of your test being completed.&lt;/p&gt;          &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;          &lt;p&gt;&lt;b&gt;Fixing the Bug (Developer)&lt;/b&gt;&lt;/p&gt;          &lt;p&gt;Learn how Historical Debugging is a new feature of VSTS 2010 that you will not want to miss! Learn how to reproduce filed bugs using Historical Debugging, enabling you to break down the biggest wall separating developers and testers.&lt;/p&gt;          &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;          &lt;p&gt;&lt;b&gt;Automating a Regression Test &lt;/b&gt;&lt;/p&gt;          &lt;p&gt;Find out how to turn a manual test into an automated regression test.&amp;#160; You can even schedule it to run during an automated build! &lt;/p&gt;          &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;          &lt;p&gt;&lt;b&gt;Creating a New Test Plan &lt;/b&gt;&lt;/p&gt;          &lt;p&gt;During this session we will create a new test plan, showing you how to set up Data Collectors for the computers in your environment, define the various test environment combinations, and map relationships between test cases and requirements.&lt;/p&gt;          &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;          &lt;p&gt;&lt;b&gt;Rounding Out Your Knowledge&lt;/b&gt;&lt;/p&gt;          &lt;p&gt;Understand the more advanced features of VSTS 2010 including Lab Manager, Test Controllers and Agents, and the numerous quality reports that can guide an effective development process.&lt;/p&gt;          &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;          &lt;p&gt;&lt;b&gt;REGISTRATION &lt;/b&gt;&lt;/p&gt;          &lt;p&gt;Register for a date &amp;amp; location near you! &lt;/p&gt;          &lt;p&gt;Welcome: 8:00 AM &lt;/p&gt;          &lt;p&gt;Seminar: 8:30 AM-12:30 PM &lt;/p&gt;          &lt;p&gt;Microsoft Partner Events: &lt;a href="http://www.clicktoattend.com"&gt;www.clicktoattend.com&lt;/a&gt;             &lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;               &lt;tr&gt;                 &lt;td valign="top" width="299"&gt;                   &lt;p&gt;&lt;b&gt;&lt;u&gt;Portland&lt;/u&gt;&lt;/b&gt;&lt;b&gt;                        &lt;br /&gt;&lt;/b&gt;September 29, 2009&lt;/p&gt;                    &lt;p&gt;Click &lt;a href="http://www.clicktoattend.com/?id=140546"&gt;here&lt;/a&gt; &lt;b&gt;&lt;/b&gt;to register&lt;/p&gt;                    &lt;p&gt;Event Code: 140546&lt;/p&gt;                    &lt;p&gt;&lt;b&gt;&lt;u&gt;Bellevue&lt;/u&gt;&lt;/b&gt;&lt;b&gt;                        &lt;br /&gt;&lt;/b&gt;September 30, 2009&lt;/p&gt;                    &lt;p&gt;Click &lt;a href="http://www.clicktoattend.com/?id=140547"&gt;here&lt;/a&gt; &lt;b&gt;&lt;/b&gt;to register&lt;/p&gt;                    &lt;p&gt;Event Code: 140547&lt;/p&gt;                    &lt;p&gt;&lt;b&gt;&lt;u&gt;Denver&lt;/u&gt;&lt;/b&gt;&lt;b&gt;                        &lt;br /&gt;&lt;/b&gt;October 06, 2009&lt;/p&gt;                    &lt;p&gt;Click &lt;a href="http://www.clicktoattend.com/?id=140548"&gt;here&lt;/a&gt; &lt;b&gt;&lt;/b&gt;to register&lt;/p&gt;                    &lt;p&gt;Event Code: 140548&lt;/p&gt;                    &lt;p&gt;&lt;b&gt;&lt;u&gt;Phoenix&lt;/u&gt;&lt;/b&gt;&lt;b&gt;                        &lt;br /&gt;&lt;/b&gt;October 07, 2009&lt;/p&gt;                    &lt;p&gt;Click &lt;a href="http://www.clicktoattend.com/?id=140549"&gt;here&lt;/a&gt; &lt;b&gt;&lt;/b&gt;to register&lt;/p&gt;                    &lt;p&gt;Event Code: 140549&lt;/p&gt;                 &lt;/td&gt;                  &lt;td valign="top" width="299"&gt;                   &lt;p&gt;&lt;b&gt;&lt;u&gt;Hawaii&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;                    &lt;p&gt;October 07, 2009&lt;/p&gt;                    &lt;p&gt;Click &lt;a href="http://www.clicktoattend.com/?id=140648"&gt;here&lt;/a&gt; &lt;b&gt;&lt;/b&gt;to register&lt;/p&gt;                    &lt;p&gt;Event Code: 140648&lt;/p&gt;                    &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;                    &lt;p&gt;&lt;b&gt;&lt;u&gt;Salt Lake City&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;                    &lt;p&gt;October 20, 2009&lt;/p&gt;                    &lt;p&gt;Click &lt;a href="http://www.clicktoattend.com/?id=140629"&gt;here&lt;/a&gt; &lt;b&gt;&lt;/b&gt;to register&lt;/p&gt;                    &lt;p&gt;Event Code: 140629&lt;/p&gt;                    &lt;p&gt;&lt;b&gt;&lt;u&gt;Mountain View&lt;/u&gt;&lt;/b&gt;&lt;b&gt;                        &lt;br /&gt;&lt;/b&gt;October 22, 2009&lt;/p&gt;                    &lt;p&gt;Click &lt;a href="http://www.clicktoattend.com/?id=140550"&gt;here&lt;/a&gt; &lt;b&gt;&lt;/b&gt;to register&lt;/p&gt;                    &lt;p&gt;Event Code: 140550&lt;/p&gt;                    &lt;p&gt;&lt;b&gt;&lt;u&gt;San Francisco&lt;/u&gt;&lt;/b&gt;&lt;b&gt;                        &lt;br /&gt;&lt;/b&gt;October 23, 2009&lt;/p&gt;                    &lt;p&gt;Click &lt;a href="http://www.clicktoattend.com/?id=140551"&gt;here&lt;/a&gt; &lt;b&gt;&lt;/b&gt;to register&lt;/p&gt;                    &lt;p&gt;Event Code: 140551&lt;/p&gt;                 &lt;/td&gt;                  &lt;td valign="top" width="299"&gt;                   &lt;p&gt;&lt;b&gt;&lt;u&gt;San Diego&lt;/u&gt;&lt;/b&gt;&lt;b&gt;                        &lt;br /&gt;&lt;/b&gt;November 03, 2009&lt;/p&gt;                    &lt;p&gt;Click &lt;a href="http://www.clicktoattend.com/?id=140552"&gt;here&lt;/a&gt; &lt;b&gt;&lt;/b&gt;to register&lt;/p&gt;                    &lt;p&gt;Event Code: 140552&lt;/p&gt;                    &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;                    &lt;p&gt;&lt;b&gt;&lt;u&gt;Irvine&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;                    &lt;p&gt;November 04, 2009&lt;/p&gt;                    &lt;p&gt;Click &lt;a href="http://www.clicktoattend.com/?id=140553"&gt;here&lt;/a&gt; &lt;b&gt;&lt;/b&gt;to register&lt;/p&gt;                    &lt;p&gt;Event Code: 140553&lt;/p&gt;                    &lt;p&gt;&lt;b&gt;&lt;u&gt;Los Angeles&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;                    &lt;p&gt;November 05, 2009&lt;/p&gt;                    &lt;p&gt;Click &lt;a href="http://www.clicktoattend.com/?id=140554"&gt;here&lt;/a&gt; &lt;b&gt;&lt;/b&gt;to register&lt;/p&gt;                    &lt;p&gt;Event Code: 140554&lt;/p&gt;                 &lt;/td&gt;               &lt;/tr&gt;             &lt;/tbody&gt;&lt;/table&gt;         &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="31"&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9882985" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/slange/archive/tags/Events/default.aspx">Events</category><category domain="http://blogs.msdn.com/slange/archive/tags/Denver/default.aspx">Denver</category><category domain="http://blogs.msdn.com/slange/archive/tags/Phoenix/default.aspx">Phoenix</category><category domain="http://blogs.msdn.com/slange/archive/tags/Salt+Lake+City/default.aspx">Salt Lake City</category><category domain="http://blogs.msdn.com/slange/archive/tags/VSTS+2010/default.aspx">VSTS 2010</category><category domain="http://blogs.msdn.com/slange/archive/tags/Testing/default.aspx">Testing</category></item><item><title>MSDN Events Coming Your Way!</title><link>http://blogs.msdn.com/slange/archive/2009/08/20/msdn-events-coming-your-way.aspx</link><pubDate>Fri, 21 Aug 2009 06:20:02 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9878002</guid><dc:creator>slange</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/slange/comments/9878002.aspx</comments><wfw:commentRss>http://blogs.msdn.com/slange/commentrss.aspx?PostID=9878002</wfw:commentRss><description>&lt;p&gt;After a brief summer break, we’re back at it with a fresh wave of MSDN events!&amp;#160; Take a look at the below listing, and I hope to see you there!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;MSDN Presents: The Next Generation Client Experience&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;u&gt;Windows 7 for Developers &lt;/u&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Windows 7 is almost here! With it are numerous improvements and new features to take advantage of in your applications. Watch and learn as we demonstrate how to utilize the new taskbar, multi-touch support, search, libraries, and more. &lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;u&gt;IE8 for Developers &lt;/u&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;IE8 makes your web better… faster, safer and easier.&amp;#160; This is true for developers too.&amp;#160; In this session, we will illustrate how developers can take advantage of some new technologies in IE8 such as accelerators to enhance a user’s web experience.&amp;#160; We will also illustrate the built-in developer tools in IE8 and how to take advantage of them.&amp;#160; These tools include a powerful CSS tool, script debugging and a script profiler. &lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;u&gt;Building Business Applications with Silverlight 3 &lt;/u&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Silverlight 3 has launched.&amp;#160; In this session, we will illustrate how you can build powerful line of business (LOB) applications with Silverlight 3 and Expression Blend 3.&amp;#160; We will begin with illustrating how you can build powerful prototypes with SketchFlow in Blend 3.&amp;#160; We will then implement a LOB application, illustrating some design patterns such as the Repository and Model View View Model (MVVM) along the way.&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="357"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="82"&gt;&lt;strong&gt;When&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="158"&gt;&lt;strong&gt;Where&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="115"&gt;&lt;strong&gt;Registration&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="82"&gt;9/1&lt;/td&gt;        &lt;td valign="top" width="158"&gt;Colorado Springs&lt;/td&gt;        &lt;td valign="top" width="115"&gt;&lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032422374&amp;amp;Culture=en-US" target="_blank"&gt;link&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="82"&gt;9/2&lt;/td&gt;        &lt;td valign="top" width="158"&gt;Denver&lt;/td&gt;        &lt;td valign="top" width="115"&gt;&lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032422382&amp;amp;Culture=en-US" target="_blank"&gt;link&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="82"&gt;9/10&lt;/td&gt;        &lt;td valign="top" width="158"&gt;Albuquerque&lt;/td&gt;        &lt;td valign="top" width="115"&gt;&lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032422387&amp;amp;Culture=en-US" target="_blank"&gt;link&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;strong&gt;MSDN Presents: Introduction to F# &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;With the introduction of F# many people asked “Why does .NET need a new language?”&amp;#160; There are many reasons to use F#, but one of the biggest is its support of “asynchronous computational workflows,” a style of programming that makes multi-threaded applications relatively easy to write.&amp;#160; In this session we will introduce F# for those who haven’t spent any time with the new language.&amp;#160; We also will spend some time focusing on the threading aspects of F# that enable programmers to better take advantage of the multi-core processor environments.&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="356"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="83"&gt;&lt;strong&gt;When&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="156"&gt;&lt;strong&gt;Where&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="115"&gt;&lt;strong&gt;Registration&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="83"&gt;9/14&lt;/td&gt;        &lt;td valign="top" width="156"&gt;Denver&lt;/td&gt;        &lt;td valign="top" width="115"&gt;&lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032422415&amp;amp;Culture=en-US" target="_blank"&gt;link&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;We’ve got other events in the works around Team System as well, so stay tuned!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9878002" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/slange/archive/tags/Events/default.aspx">Events</category><category domain="http://blogs.msdn.com/slange/archive/tags/Denver/default.aspx">Denver</category><category domain="http://blogs.msdn.com/slange/archive/tags/Albuquerque/default.aspx">Albuquerque</category><category domain="http://blogs.msdn.com/slange/archive/tags/Colorado+Springs/default.aspx">Colorado Springs</category></item><item><title>Upgrade Paths to Windows 7</title><link>http://blogs.msdn.com/slange/archive/2009/08/13/upgrade-paths-to-windows-7.aspx</link><pubDate>Thu, 13 Aug 2009 18:08:40 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9868387</guid><dc:creator>slange</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/slange/comments/9868387.aspx</comments><wfw:commentRss>http://blogs.msdn.com/slange/commentrss.aspx?PostID=9868387</wfw:commentRss><description>&lt;p&gt;Some of you may have seen this already, others may have not.&amp;#160; Below is a decent chart showing, based on what you have already (“Upgrade FROM”), how you can get to Windows 7 (“Upgrade TO”).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://mossblog.allthingsd.com/files/2009/08/windows-upgrade-chart.png" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="From All Things Digital" border="0" alt="From All Things Digital" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/UpgradePathstoWindows7_807D/windows-upgrade-chart_3.png" width="559" height="754" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;And, the folks at &lt;a href="http://www.howtogeek.com" target="_blank"&gt;HowToGeek.com&lt;/a&gt; have provided some steps to do an &lt;a href="http://www.howtogeek.com/howto/3075/how-to-upgrade-the-windows-7-rc-to-rtm/" target="_blank"&gt;in-place upgrade from Windows 7 RC to the release version (RTM)&lt;/a&gt;.&amp;#160; And although I’m not officially endorsing it, “it worked fine on my machine..”&amp;#160; ;)&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9868387" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/slange/archive/tags/Windows+7/default.aspx">Windows 7</category></item><item><title>PDC 2009 Registration is Open</title><link>http://blogs.msdn.com/slange/archive/2009/08/05/pdc-2009-registration-is-open.aspx</link><pubDate>Wed, 05 Aug 2009 19:45:58 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9858208</guid><dc:creator>slange</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/slange/comments/9858208.aspx</comments><wfw:commentRss>http://blogs.msdn.com/slange/commentrss.aspx?PostID=9858208</wfw:commentRss><description>&lt;p&gt;&lt;a href="http://microsoftpdc.com/" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="pdc09" border="0" alt="pdc09" align="right" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/PDC2009RegistrationisOpen_9762/image_3.png" width="198" height="104" /&gt;&lt;/a&gt;Early registration for &lt;a href="http://microsoftpdc.com/" target="_blank"&gt;PDC09&lt;/a&gt; is now open.&amp;#160; &lt;a href="http://microsoftpdc.com/Registration" target="_blank"&gt;Register&lt;/a&gt; before September 15th and save $500 on your full conference pass.&lt;/p&gt;  &lt;p&gt;Nov 17 – 19; Workshops – Nov 16   &lt;br /&gt;&lt;a href="http://www.lacclink.com/" target="_blank"&gt;Los Angeles Convention Center&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The Professional Developers Conference (PDC) is Microsoft’s premier gathering of leading-edge developers and architects. Attendees come from around the world to learn about the future of Microsoft’s platform, to exchange ideas with over 1,000 Microsoft technology experts, and to network with fellow professionals.&amp;#160; &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9858208" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/slange/archive/tags/Annoucements/default.aspx">Annoucements</category><category domain="http://blogs.msdn.com/slange/archive/tags/Events/default.aspx">Events</category><category domain="http://blogs.msdn.com/slange/archive/tags/PDC/default.aspx">PDC</category></item><item><title>Join me at the Denver Visual Studio User Group this Month</title><link>http://blogs.msdn.com/slange/archive/2009/08/03/join-me-at-the-denver-visual-studio-user-group-this-month.aspx</link><pubDate>Mon, 03 Aug 2009 17:41:21 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9856275</guid><dc:creator>slange</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/slange/comments/9856275.aspx</comments><wfw:commentRss>http://blogs.msdn.com/slange/commentrss.aspx?PostID=9856275</wfw:commentRss><description>&lt;p&gt;On Monday, August 24th, I’ll be speaking at the Denver VS.NET UG at the Microsoft office.&amp;#160; The topic:&amp;#160; Team Foundation Server: Today and Tomorrow.&lt;/p&gt;  &lt;p&gt;Check out the UG’s &lt;a href="http://www.denvervisualstudio.net/Default.htm" target="_blank"&gt;website for more details&lt;/a&gt;.&amp;#160; I hope to see you there!&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Also, if you’re down in the Springs, &lt;a href="http://blogs.msdn.com/slange/archive/2009/07/27/come-learn-about-tfs-the-south-colorado-ug-on-8-4.aspx" target="_blank"&gt;I’ll see you tomorrow for a similar talk&lt;/a&gt;!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9856275" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/slange/archive/tags/Team+Foundation+Server/default.aspx">Team Foundation Server</category><category domain="http://blogs.msdn.com/slange/archive/tags/User+Groups/default.aspx">User Groups</category><category domain="http://blogs.msdn.com/slange/archive/tags/Denver/default.aspx">Denver</category></item><item><title>Quick Way to Integrate PhpED and Team Foundation Server</title><link>http://blogs.msdn.com/slange/archive/2009/07/31/quick-way-to-integrate-phped-and-team-foundation-server.aspx</link><pubDate>Fri, 31 Jul 2009 23:35:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9854705</guid><dc:creator>slange</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/slange/comments/9854705.aspx</comments><wfw:commentRss>http://blogs.msdn.com/slange/commentrss.aspx?PostID=9854705</wfw:commentRss><description>&lt;P&gt;&lt;A href="http://www.nusphere.com/products/phped.htm" target=_blank mce_href="http://www.nusphere.com/products/phped.htm"&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=phpedlogo border=0 alt=phpedlogo align=right src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/phpedlogo_3.jpg" width=128 height=168 mce_src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/phpedlogo_3.jpg"&gt;&lt;/A&gt; So when I’m asked, “How can I integrate my &lt;A href="http://php.net/" target=_blank mce_href="http://php.net/"&gt;PHP&lt;/A&gt; IDE with &lt;A href="http://www.microsoft.com/visualstudio/en-us/products/teamsystem/default.mspx" target=_blank mce_href="http://www.microsoft.com/visualstudio/en-us/products/teamsystem/default.mspx"&gt;Team Foundation Server&lt;/A&gt;?”, my first response *should* be, “Why not use &lt;A href="http://www.microsoft.com/visualstudio" target=_blank mce_href="http://www.microsoft.com/visualstudio"&gt;Visual Studio&lt;/A&gt; instead?”&amp;nbsp; That’s an idealistic reply, admittedly.&amp;nbsp; There are several great tools out there for PHP development, with followings that would collectively shudder at the thought of *having* to use Visual Studio.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.nusphere.com/products/phped.htm" target=_blank mce_href="http://www.nusphere.com/products/phped.htm"&gt;PhpED by NuSphere&lt;/A&gt; is a popular PHP development tool.&amp;nbsp; It boasts (among a lot of other things) the ability to plug-in to various &lt;A href="http://en.wikipedia.org/wiki/Revision_control" target=_blank mce_href="http://en.wikipedia.org/wiki/Revision_control"&gt;version control&lt;/A&gt; systems, although it comes set up to leverage &lt;A href="http://en.wikipedia.org/wiki/Concurrent_Versions_System" target=_blank mce_href="http://en.wikipedia.org/wiki/Concurrent_Versions_System"&gt;CVS&lt;/A&gt;.&amp;nbsp;&amp;nbsp;&amp;nbsp; There’s not much documentation out there to explain how exactly to tie into other version control systems besides CVS.&amp;nbsp; So what about Team Foundation Server?&lt;/P&gt;
&lt;P&gt;The fast answer?&amp;nbsp; Use the &lt;A href="http://msdn.microsoft.com/en-us/teamsystem/bb980963.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/teamsystem/bb980963.aspx"&gt;TFS Power Tools&lt;/A&gt;, more specifically the Windows Explorer extension.&amp;nbsp; This power tool allows you to perform version control operations on files directly from Windows Explorer:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="The TFS shell extension power tool" border=0 alt="The TFS shell extension power tool" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_11.png" width=443 height=382 mce_src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_11.png"&gt; &lt;/P&gt;
&lt;P&gt;All that’s really required (besides having the TFS Power Tools installed) is that the files you want to work on reside in a folder that’s in a &lt;A href="http://msdn.microsoft.com/en-us/library/ms181383.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/library/ms181383.aspx"&gt;TFS workspace&lt;/A&gt;.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;EM&gt;If you use PhpED for PHP development, you probably see where I’m going with this.&amp;nbsp; ;)&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Let’s say I have the below workspace and project in PhpED:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="A sample project in PhpED" border=0 alt="A sample project in PhpED" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_12.png" width=292 height=250 mce_src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_12.png"&gt; &lt;/P&gt;
&lt;P&gt;I set up this project in &lt;EM&gt;C:\Work\NotDotNet\Test&lt;/EM&gt;, which is already mapped to a TFS workspace.&amp;nbsp; As soon as I start populating files into this project, I can see that the Windows Explorer extension power tool is already working if I look at the file system:&lt;/P&gt;
&lt;P&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="The TFS shell extension" border=0 alt="The TFS shell extension" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_13.png" width=496 height=315 mce_src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_13.png"&gt; &lt;/P&gt;
&lt;P&gt;Now for the fun part.&amp;nbsp; PhpED has a nifty little feature that allows you to access the Windows shell from within its IDE.&amp;nbsp; Right-click, select “&lt;EM&gt;Shell Menu&lt;/EM&gt;”, and there it is!&lt;/P&gt;
&lt;P&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="Accessing the TFS shell extension from PhpED" border=0 alt="Accessing the TFS shell extension from PhpED" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_14.png" width=500 height=329 mce_src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_14.png"&gt; &lt;/P&gt;
&lt;P&gt;To add all these files to TFS version control, I right-click the project and select &lt;EM&gt;Shell Menu-&amp;gt;Team Foundation Server-&amp;gt;Add&lt;/EM&gt;.&lt;/P&gt;
&lt;P&gt;The “Add to Source Control” dialog pops up:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_18.png" mce_href="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_18.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="Add to Source Control dialog" border=0 alt="Add to Source Control dialog" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_thumb_6.png" width=500 height=391 mce_src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_thumb_6.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Hit “Finish”, and I’ve added all my files as pending changes to TFS.&amp;nbsp; Last, all I have to do is check them in by again going to the Shell Menu, only this time selecting “&lt;EM&gt;Check In&lt;/EM&gt;”.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_20.png" mce_href="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_20.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="Selecting Check In" border=0 alt="Selecting Check In" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_thumb_7.png" width=500 height=334 mce_src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_thumb_7.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;That gives me the TFS check-in dialog we all know and love.&amp;nbsp; I can do everything I normally would with this dialog, such as choosing specific files to check in, comments, check-in notes, and linking to work items.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_22.png" mce_href="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_22.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="TFS Check-in dialog" border=0 alt="TFS Check-in dialog" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_thumb_8.png" width=500 height=307 mce_src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_thumb_8.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Click “&lt;EM&gt;Check In&lt;/EM&gt;” and I’m done (in my case, check check-in created changeset 270)!&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_24.png" mce_href="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_24.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="Check-in completed!" border=0 alt="Check-in completed!" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_thumb_9.png" width=293 height=122 mce_src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_thumb_9.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;BTW, notice I’m getting the TFS version control icons displayed in PhpED (the green triangles in at the bottom-right of an item’s icon indicates it’s “seen” by TFS, a pencil indicates a checked-out file, etc.):&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_28.png" mce_href="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_28.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="TFS version control icons in PhpED" border=0 alt="TFS version control icons in PhpED" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_thumb_11.png" width=214 height=148 mce_src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_thumb_11.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Now to test that I can check out and check in, let’s make a little change.&amp;nbsp; &lt;EM&gt;(My big preface here is that I know almost nothing about PHP development, so I’m just going to insert some arbitrary text so I have a modification.&amp;nbsp; This is not a PHP lesson!)&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;First, I noticed that PhpED won’t even let me modify a file (may be a setting somewhere, but I’m not sure) if it’s read-only.&amp;nbsp; So that tells me right away that my file is not checked out.&lt;/P&gt;
&lt;P&gt;So I check out the file via the Shell Menu extension (&lt;EM&gt;Shell Menu-&amp;gt;Team Foundation Server-&amp;gt;Check Out for Edit&lt;/EM&gt;).&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_26.png" mce_href="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_26.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="Checking out a PHP file for edit" border=0 alt="Checking out a PHP file for edit" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_thumb_10.png" width=510 height=318 mce_src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_thumb_10.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Now I can make a small change.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_30.png" mce_href="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_30.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="My simple change" border=0 alt="My simple change" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_thumb_12.png" width=539 height=236 mce_src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_thumb_12.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Once I’m done making my edits, I save the file and check it in (again using the Shell Menu, you probably get this by now).&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_32.png" mce_href="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_32.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="Selecting check-in" border=0 alt="Selecting check-in" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_thumb_13.png" width=500 height=248 mce_src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_thumb_13.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Again, I get the beloved check-in dialog again. &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_34.png" mce_href="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_34.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="Check in Dialog" border=0 alt="Check in Dialog" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_thumb_14.png" width=500 height=305 mce_src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_thumb_14.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Fill in the information I want, click “&lt;EM&gt;Check In&lt;/EM&gt;”, and&amp;nbsp; I’m off!&lt;/P&gt;
&lt;P&gt;Now, just to make sure I’m not looking at smoke and mirrors, let’s switch to Team Explorer and view the file’s history.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_36.png" mce_href="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_36.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="File history in Team Explorer" border=0 alt="File history in Team Explorer" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_thumb_15.png" width=500 height=96 mce_src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_thumb_15.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;There’s my change!&amp;nbsp; Now, for a final check, let me diff the two versions. &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_38.png" mce_href="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_38.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="Comparing the two versions of the PHP file in version control" border=0 alt="Comparing the two versions of the PHP file in version control" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_thumb_16.png" width=500 height=325 mce_src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_thumb_16.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Make sense?&amp;nbsp; Not bad for a free integration point!&lt;/P&gt;
&lt;P&gt;Now, this all said, there is &lt;U&gt;one main caveat&lt;/U&gt; which is worth mentioning – it shouldn’t prevent you from leveraging this shell-type integration, but it should be known nonetheless.&amp;nbsp; The TFS Power Tool shell extension only provides the basic version control operations.&amp;nbsp; Others, such as getting historical versions, viewing history, branching, merging, and shelving are notably absent from the shell extension’s menu.&amp;nbsp; You can still do all this from Team Explorer – you’ll have this installed on your machine, as it’s a requirement for the TFS Power Tools to be installed.&amp;nbsp; So yes, for some operations you’ll need to pop open Team Explorer, but the bulk of your daily operations are available right from the shell.&lt;/P&gt;
&lt;P&gt;BUT, PhpED is also has a very extensible menu system (that’s how it ties in with CVS), so you may also be able to leverage that to create TFS-specific menu options (such as creating workspaces, diffing files, etc.).&amp;nbsp; I had a little fun with this and was able to quite easily create a couple of TFS-related menu options to help me view a file’s history, as well as create a shelf.&amp;nbsp; All I did was drop the path to tf.exe (by default it’s "&lt;EM&gt;C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\&lt;/EM&gt;”) into my PATH environment variable (just easier than putting in the full path to tf.exe each time), and away I went.&lt;/P&gt;
&lt;P&gt;In PhpED, go to &lt;EM&gt;Tools-&amp;gt;Settings&lt;/EM&gt;, then scroll down to Integration under Tools.&amp;nbsp; Here I created a new menu called “Team Foundation Server” and added a few submenu items with the following options (I’m sure you can figure out how to add a few more if you want):&lt;/P&gt;
&lt;TABLE border=1 cellSpacing=0 cellPadding=2 width=667&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=145&gt;&lt;STRONG&gt;Option Name&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=256&gt;&lt;STRONG&gt;Command&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=264&gt;&lt;STRONG&gt;Options Selected&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=146&gt;View History&lt;/TD&gt;
&lt;TD vAlign=top width=256&gt;tf history “@FName@”&lt;/TD&gt;
&lt;TD vAlign=top width=263&gt;
&lt;UL&gt;
&lt;LI&gt;Show this command in workspace popup, for files &lt;/LI&gt;
&lt;LI&gt;Show this command in Explorer popup, for files &lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=147&gt;Shelve&lt;/TD&gt;
&lt;TD vAlign=top width=256&gt;tf shelve&lt;/TD&gt;
&lt;TD vAlign=top width=263&gt;
&lt;UL&gt;
&lt;LI&gt;Show this command in workspace popup, for files, for directories &lt;/LI&gt;
&lt;LI&gt;Show this command in Explorer popup, for files, for directories &lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=148&gt;
&lt;P&gt;Annotate&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=255&gt;tfpt annotate “@FName@”&lt;/TD&gt;
&lt;TD vAlign=top width=263&gt;
&lt;UL&gt;
&lt;LI&gt;Show this command in workspace popup, for files &lt;/LI&gt;
&lt;LI&gt;Show this command in Explorer popup, for files &lt;/LI&gt;&lt;/UL&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;And I end up with this:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_44.png" mce_href="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_44.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="PhpED Settings - customized menus for TFS" border=0 alt="PhpED Settings - customized menus for TFS" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_thumb_2.png" width=500 height=356 mce_src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_thumb_2.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;As you can see, I can leverage the &lt;A href="http://msdn.microsoft.com/en-us/library/cc31bk2e.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/library/cc31bk2e.aspx"&gt;command-line interface&lt;/A&gt; for both Team Explorer (tf.exe) and the Power Tools (tfpt.exe, which gets added to your PATH automatically upon installation).&lt;/P&gt;
&lt;P&gt;So now, when I right-click on certain objects in PhpED, I can take advantage of these options.&amp;nbsp; They simply shell out the specified commands and the appropriate CLI takes over.&amp;nbsp; For example, if I select “View History”,&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_46.png" mce_href="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_46.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="Selecting the View History custom menu option" border=0 alt="Selecting the View History custom menu option" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_thumb_3.png" width=311 height=385 mce_src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_thumb_3.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;I get this:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_48.png" mce_href="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_48.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="Viewing History of the selected file in PhpED" border=0 alt="Viewing History of the selected file in PhpED" src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_thumb_4.png" width=500 height=254 mce_src="http://blogs.msdn.com/blogfiles/slange/WindowsLiveWriter/QuickWaytoIntegratePhpEDandTeamFoundatio_96B5/image_thumb_4.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Sweet! &lt;/P&gt;
&lt;P&gt;So that’s about it!&amp;nbsp; There of course may be other ways to integrate these two products (perhaps using &lt;A href="http://www.codeplex.com/SvnBridge" target=_blank mce_href="http://www.codeplex.com/SvnBridge"&gt;SVNBridge&lt;/A&gt; on &lt;A href="http://www.codeplex.com/" target=_blank mce_href="http://www.codeplex.com"&gt;CodePlex&lt;/A&gt;), but I found this above method to be quick and relatively painless.&lt;/P&gt;
&lt;P&gt;I hope this helps a couple people!&amp;nbsp; Please let me know what you think, or if you have any questions.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9854705" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/slange/archive/tags/Team+Foundation+Server/default.aspx">Team Foundation Server</category><category domain="http://blogs.msdn.com/slange/archive/tags/Integration/default.aspx">Integration</category></item></channel></rss>