<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Jamie Kurtz</title>
        <link>http://geekswithblogs.net/jkurtz/Default.aspx</link>
        <description>Promoting architectural simplicty</description>
        <language>en-US</language>
        <copyright>Jamie Kurtz</copyright>
        <managingEditor>jkurtz2530@hotmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <image>
            <title>Jamie Kurtz</title>
            <url>http://geekswithblogs.net/images/RSS2Image.gif</url>
            <link>http://geekswithblogs.net/jkurtz/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>Moved my blog</title>
            <link>http://geekswithblogs.net/jkurtz/archive/2009/07/31/133832.aspx</link>
            <description>&lt;p&gt;I’ve moved my blog to here: &lt;a href="http://www.jamiekurtz.com"&gt;http://www.jamiekurtz.com&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133832"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133832" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jkurtz/aggbug/133832.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jamie Kurtz</dc:creator>
            <guid>http://geekswithblogs.net/jkurtz/archive/2009/07/31/133832.aspx</guid>
            <pubDate>Fri, 31 Jul 2009 13:07:49 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jkurtz/comments/133832.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jkurtz/archive/2009/07/31/133832.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jkurtz/comments/commentRss/133832.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jkurtz/services/trackbacks/133832.aspx</trackback:ping>
        </item>
        <item>
            <title>Using a prioritized backlog in the check-out lane</title>
            <link>http://geekswithblogs.net/jkurtz/archive/2009/05/19/132281.aspx</link>
            <description>&lt;p&gt;A few weeks ago I was in line at the grocery store behind a lady who was buying a fair amount of groceries. Pretty typical trip to the store, except that as I watched, she was placing her items (from the cart) onto the little conveyor thing quite atypically. Rather than just lining everything up one after the other, she was placing the items here and there on the conveyor. It seemed rather random to me. Until at one point, as she was closely watching the total price go up and up, she said “ok, that’s enough.” The cashier looked at her kind of funny, but the lady simply responded “that’s all I can afford”. So the cashier stopped – didn’t scan anymore groceries.&lt;/p&gt;  &lt;p&gt;Apparently, she’d prioritized her load of groceries – either in the cart and/or as they were being placed on the conveyor. She knew what she could commit to, and she’d didn’t over commit.&lt;/p&gt;  &lt;p&gt;Of course, it’s a little rude to then expect the grocery clerk to go and return all the lower-priority items that didn’t make this grocery “sprint”. But it was fun to watch!&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132281"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132281" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jkurtz/aggbug/132281.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jamie Kurtz</dc:creator>
            <guid>http://geekswithblogs.net/jkurtz/archive/2009/05/19/132281.aspx</guid>
            <pubDate>Tue, 19 May 2009 19:40:07 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jkurtz/comments/132281.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jkurtz/archive/2009/05/19/132281.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jkurtz/comments/commentRss/132281.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jkurtz/services/trackbacks/132281.aspx</trackback:ping>
        </item>
        <item>
            <title>Small Confession</title>
            <link>http://geekswithblogs.net/jkurtz/archive/2009/02/24/129657.aspx</link>
            <description>&lt;p&gt;I have a small confession to make... &lt;/p&gt;  &lt;p&gt;A little TFS web service I built over the past few days was the first “real” production-ready application I’ve ever written from scratch where I’ve been good about maintaining unit tests. I even pushed myself to practice real-live TDD, and then even use &lt;a href="http://code.google.com/p/moq/" target="_blank"&gt;Moq&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;I have to tell you, that I am now a firm believer in the benefits of leaning &lt;strong&gt;very&lt;/strong&gt; heavily on your unit tests. Of course I've always believed others' stories, and have even worked on projects/products where I had to maintain a fair set of tests. But not having ever really tried it myself – on a new project where I could create real isolated unit tests, I think my belief was kind of shallow. Sort of like… believing that the life vest will save your life before every really needing it. And then one day you find yourself involved in a boating accident and you awake after being unconscious in the water for two hours. Then you REALLY believe it.&lt;/p&gt;  &lt;p&gt;I think this small experience will help me in conveying to others the incredible importance of building that unit test base. Because after only a few tests were written (and hence, only a bit of code written), I found myself getting nervous (as usual) making changes. But then I could flip to the Visual Studio Test View, run all the tests, and feel some assurance that I wasn't totally hosing things. Then as bugs would crop up during user acceptance testing, the very first thing I would do is write a new unit test that I &lt;em&gt;&lt;strong&gt;knew&lt;/strong&gt;&lt;/em&gt; would fail – based on the conditions I saw in the UAT. Then I would proceed to change the code until the unit test passed. What a great feeling!! And further, I know that anyone else making changes to my code will have to pass all the same unit tests – another very assuring feeling.&lt;/p&gt;  &lt;p&gt;It really is amazing how much we screw up in code!?!?! Even the stupidest littlest things. There were times when I would think "This is lame, I don't need a test. But I'll write one anyway - and I'll write it before I even write the code." And then it would literally take me three or four tries to get the test to pass!! Crazy. Makes me very scared about all the untested code churn going on in the world!!&lt;/p&gt;  &lt;p&gt;Oh, and using &lt;a href="http://code.google.com/p/moq/" target="_blank"&gt;Moq&lt;/a&gt; was a real treat - it only took me a few unit tests to get the hang of it. Really helps reduce the time feedback cycles during development - as well as help in isolating your tests to smaller and smaller units (i.e. "unit tests").&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=129657"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=129657" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jkurtz/aggbug/129657.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jamie Kurtz</dc:creator>
            <guid>http://geekswithblogs.net/jkurtz/archive/2009/02/24/129657.aspx</guid>
            <pubDate>Wed, 25 Feb 2009 02:43:11 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jkurtz/comments/129657.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jkurtz/archive/2009/02/24/129657.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jkurtz/comments/commentRss/129657.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jkurtz/services/trackbacks/129657.aspx</trackback:ping>
        </item>
        <item>
            <title>Get going with Windows PowerShell</title>
            <link>http://geekswithblogs.net/jkurtz/archive/2009/01/03/128341.aspx</link>
            <description>&lt;p&gt;Today some quick tricks finally came together for me with Windows PowerShell. So I can finally write scripts and quickly execute them from the PowerShell shell.&lt;/p&gt;  &lt;p&gt;If you haven't yet installed PowerShell, you can find it here: &lt;a title="http://www.microsoft.com/windowsserver2003/technologies/management/powershell/download.mspx" href="http://www.microsoft.com/windowsserver2003/technologies/management/powershell/download.mspx"&gt;http://www.microsoft.com/windowsserver2003/technologies/management/powershell/download.mspx&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;My simple goal was to be able to a) write a short script that can take parameters, and b) be able to easily run it from the shell. Here's what I did:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Close any open PowerShell windows &lt;/li&gt;    &lt;li&gt;Add your script path to the Windows PATH environment variable. I'm using "C:\Users\jkurtz\Documents\WindowsPowerShell", but it can really be anywhere. &lt;/li&gt;    &lt;li&gt;Make sure you have configured PS to run scripts. This &lt;a href="http://www.microsoft.com/technet/scriptcenter/topics/winpsh/manual/run.mspx" target="_blank"&gt;page&lt;/a&gt; gives the details, but basically do the following:       &lt;ol&gt;       &lt;li&gt;Open up a new PowerShell window &lt;/li&gt;        &lt;li&gt;Execute this: &lt;font face="Courier New"&gt;Set-ExecutionPolicy RemoteSigned&lt;/font&gt; &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;Create a simple script, named with a "ps1" extension, in the folder specified in step (2) above. I've included a sample script below &lt;/li&gt;    &lt;li&gt;Now simply enter the name of the script at the PowerShell command-line (including any required arguments) and hit Enter &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;If you want to try it out, but don't have a script in mind, you can use this one. It's not the most useful script in the world, but it works for this example. Just use Notepad to create a file in your script path called "members.ps1", and paste the following contents into it.&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="739" border="1"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="737"&gt;         &lt;pre&gt;param (
	[string] $domainname = $(throw 'please specify a domain name (can use . for local machine)'),
	[string] $groupname = $(throw 'please specify a group name')
)

$group =[ADSI]("WinNT://" + $domainname + "/" + $groupname)
$members = @($group.psbase.Invoke("Members")) 
$members | foreach {$_.GetType().InvokeMember("Name", 'GetProperty', $null, $_, $null)} &lt;/pre&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;  &lt;/p&gt;

&lt;p&gt;Then, if you've followed the 5 steps above, you can simply enter the following at the PowerShell command-line:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;font face="Courier New"&gt;members -domainname DOMAIN -groupname "domain admins"&lt;/font&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Or, leave out the -domainname and -groupname switches:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;font face="Courier New"&gt;members DOMAIN "domain admins"&lt;/font&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For a reference and guides to using PowerShell, here's some great resources:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a title="http://www.microsoft.com/technet/scriptcenter/default.mspx" href="http://www.microsoft.com/technet/scriptcenter/default.mspx" target="_blank"&gt;http://www.microsoft.com/technet/scriptcenter/default.mspx&lt;/a&gt; &lt;/li&gt;

  &lt;li&gt;&lt;a title="http://www.amazon.com/Windows-PowerShell-Action-Bruce-Payette/dp/1932394907/ref=pd_bbs_sr_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1231010089&amp;amp;sr=8-1" href="http://www.amazon.com/Windows-PowerShell-Action-Bruce-Payette/dp/1932394907/ref=pd_bbs_sr_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1231010089&amp;amp;sr=8-1" target="_blank"&gt;http://www.amazon.com/Windows-PowerShell-Action-Bruce-Payette/dp/1932394907/ref=pd_bbs_sr_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1231010089&amp;amp;sr=8-1&lt;/a&gt; &lt;/li&gt;

  &lt;li&gt;&lt;a title="http://blogs.msdn.com/powershell/" href="http://blogs.msdn.com/powershell/" target="_blank"&gt;http://blogs.msdn.com/powershell/&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Note that version 2.0 of PowerShell is coming soon.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=128341"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=128341" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jkurtz/aggbug/128341.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jamie Kurtz</dc:creator>
            <guid>http://geekswithblogs.net/jkurtz/archive/2009/01/03/128341.aspx</guid>
            <pubDate>Sat, 03 Jan 2009 20:37:50 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jkurtz/comments/128341.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jkurtz/archive/2009/01/03/128341.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jkurtz/comments/commentRss/128341.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jkurtz/services/trackbacks/128341.aspx</trackback:ping>
        </item>
        <item>
            <title>2008 Team Explorer, SP1, and July 2008 Power Tools</title>
            <link>http://geekswithblogs.net/jkurtz/archive/2008/08/12/124390.aspx</link>
            <description>&lt;p&gt;Take my word for it, install all three of these (in this order):&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The 2008 version of the Team Explorer      &lt;ul&gt;       &lt;li&gt;Here: &lt;a title="http://www.microsoft.com/downloads/details.aspx?familyid=0ED12659-3D41-4420-BBB0-A46E51BFCA86&amp;amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?familyid=0ED12659-3D41-4420-BBB0-A46E51BFCA86&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=0ED12659-3D41-4420-BBB0-A46E51BFCA86&amp;amp;displaylang=en&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;VS 2008 SP1      &lt;ul&gt;       &lt;li&gt;Here: &lt;a title="http://www.microsoft.com/downloads/details.aspx?FamilyID=fbee1648-7106-44a7-9649-6d9f6d58056e&amp;amp;DisplayLang=en" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=fbee1648-7106-44a7-9649-6d9f6d58056e&amp;amp;DisplayLang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=fbee1648-7106-44a7-9649-6d9f6d58056e&amp;amp;DisplayLang=en&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;The July 2008 TFS Power Tools      &lt;ul&gt;       &lt;li&gt;Here: &lt;a title="http://www.microsoft.com/downloads/details.aspx?familyid=00803636-1d16-4df1-8a3d-ef1ad4f4bbab&amp;amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?familyid=00803636-1d16-4df1-8a3d-ef1ad4f4bbab&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=00803636-1d16-4df1-8a3d-ef1ad4f4bbab&amp;amp;displaylang=en&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;You don't need to uninstall the 2005 versions of Visual Studio or the Team Explorer or the Power Tools. The 2005 and 2008 versions can exist side-by-side. However, if you are a user of ONLY TFS - i.e. not a developer and don't need the Visual Studio 2005 C# / VB.NET stuff, you might as well uninstall the 2005 Team Explorer. But again, that is not required.&lt;/p&gt;  &lt;h2&gt;A few things to look for&lt;/h2&gt;  &lt;p&gt;Once you have the above three items installed, look for these great enhancements...&lt;/p&gt;  &lt;h3&gt;TFS Alerts&lt;/h3&gt;  &lt;p&gt;The Team Explorer now contains a great editor to create and maintain alerts for TFS events. So you can set alerts for check-ins, work item changes, and builds. Now anyone can subscribe to just about any work item or build or check-in event in the system - without having to resort to using the bissubscribe.exe command-line tool. After installing it, you get a new Alerts node in the Team Explorer: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/jkurtz/WindowsLiveWriter/2008TeamExplorerSP1andJuly2008PowerTools_96BC/image_20.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="118" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/jkurtz/WindowsLiveWriter/2008TeamExplorerSP1andJuly2008PowerTools_96BC/image_thumb.png" width="182" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;You can create all kinds of Alerts. Here’s one I’ve created to alert me when someone else (other than me) checks code into one of our international projects: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://mysite.opensolutions.com/personal/jkurtz/Blog/Lists/Posts/Attachments/33/image_2.png"&gt;&lt;img height="276" alt="image" src="http://mysite.opensolutions.com/personal/jkurtz/Blog/Lists/Posts/Attachments/33/image_thumb.png" width="698" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;And here's an alert that lets me monitor whenever one of my coworkers checks anything in!! :)&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://mysite.opensolutions.com/personal/jkurtz/Blog/Lists/Posts/Attachments/33/image_4.png"&gt;&lt;img height="279" alt="image" src="http://mysite.opensolutions.com/personal/jkurtz/Blog/Lists/Posts/Attachments/33/image_thumb_1.png" width="690" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;When you create a new Alert, you can start from a blank one or pick from a few templates:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://mysite.opensolutions.com/personal/jkurtz/Blog/Lists/Posts/Attachments/33/image_6.png"&gt;&lt;img height="602" alt="image" src="http://mysite.opensolutions.com/personal/jkurtz/Blog/Lists/Posts/Attachments/33/image_thumb_2.png" width="427" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Here's another alert I created... lets me know whenever a "QA Issue" gets assigned to me:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://mysite.opensolutions.com/personal/jkurtz/Blog/Lists/Posts/Attachments/33/image_8.png"&gt;&lt;img height="312" alt="image" src="http://mysite.opensolutions.com/personal/jkurtz/Blog/Lists/Posts/Attachments/33/image_thumb_3.png" width="663" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;You can also right-click on a source code item (file or folder), or work item, and select "Alert on change...". Like this:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="195" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/jkurtz/WindowsLiveWriter/2008TeamExplorerSP1andJuly2008PowerTools_96BC/image3_1.png" width="169" border="0" /&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;Work Item Templates&lt;/h3&gt;  &lt;p&gt;I love this one!! Allows you to select any existing work item, select "Capture Template..." - which copies existing values into a Template, then apply that template to other new items. Like this:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="191" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/jkurtz/WindowsLiveWriter/2008TeamExplorerSP1andJuly2008PowerTools_96BC/image14_1.png" width="170" border="0" /&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Selecting "Capture Template..." pops this dialog:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="356" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/jkurtz/WindowsLiveWriter/2008TeamExplorerSP1andJuly2008PowerTools_96BC/image18_1.png" width="391" border="0" /&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;So you can select which fields you want to copy to the template. In this example, I've deselected the last two fields. Then give it a name, and click Save.&lt;/p&gt;  &lt;p&gt;Then you can create new work items from this template!!&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="119" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/jkurtz/WindowsLiveWriter/2008TeamExplorerSP1andJuly2008PowerTools_96BC/image22_1.png" width="317" border="0" /&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;You can also apply a template to a list of selected work items. So maybe you have a template called "Assign to Canada Development". In that template, you just have only two fields defined: Development Office and Assigned To, with values "Canada" and &amp;lt;blank&amp;gt;. Then you can select a bunch of work items from a query result, right-click, and select "Apply Template...":&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="228" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/jkurtz/WindowsLiveWriter/2008TeamExplorerSP1andJuly2008PowerTools_96BC/image26_1.png" width="341" border="0" /&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The net effect is that all the selected work items would have their Development Office value set to "Canada", and the Assigned To values set to &amp;lt;blank&amp;gt;. Very cool!!!&lt;/p&gt;  &lt;h3&gt;Source Control Explorer "source location" is now editable - just like Windows Explorer&lt;/h3&gt;  &lt;p&gt;You can now select the server path in the Source Control Explorer (SCE) and copy-paste it. Further, you can type a server path in the text box, hit enter, and the SCE will jump to that folder.&lt;/p&gt;  &lt;h3&gt;Source Control Explorer "Local Path" label is now a link&lt;/h3&gt;  &lt;p&gt;Clicking on the link will open Windows Explorer to the location on your local hard drive.&lt;/p&gt;  &lt;h3&gt;Right-click and Cloak&lt;/h3&gt;  &lt;p&gt;Now you can right-click on any folder in the SCE and select "Cloak...":&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt; &lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/jkurtz/WindowsLiveWriter/2008TeamExplorerSP1andJuly2008PowerTools_96BC/image_22.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="141" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/jkurtz/WindowsLiveWriter/2008TeamExplorerSP1andJuly2008PowerTools_96BC/image_thumb_9.png" width="209" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This makes it soooo much easier to prevent those damn Help files from getting downloaded!!&lt;/p&gt;  &lt;h3&gt;Auto-check-out for ALL files opened in SCE&lt;/h3&gt;  &lt;p&gt;Ever open a file within the SCE, edit it, then go to Save the file and the thing is still read-only?!?! No more!! Now the SCE will automatically check-out any file that is opened in the SCE - not just VS solution and project items anymore. This is great for things like Word docs, database scripts, BAT files, etc.&lt;/p&gt;  &lt;h3&gt;Find in Source Control&lt;/h3&gt;  &lt;p&gt;From within the SCE, you can now find files by:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Check-out status &lt;/li&gt;    &lt;li&gt;File name or wildcard &lt;/li&gt;    &lt;li&gt;Changeset &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Here's a screen shot:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="88" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/jkurtz/WindowsLiveWriter/2008TeamExplorerSP1andJuly2008PowerTools_96BC/image9_1.png" width="243" border="0" /&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;TFPT unshelve /migrate&lt;/h3&gt;  &lt;p&gt;This is incredibly cool!! One of the things I've always wanted to do with shelvesets is MOVE them to another branch. I work at an ISV, and we maintain many release and feature level branches. And occasionally someone will start work on a branch, only to be told later that the PMs have changed the target release for the bug fix or enhancement. This is new option allows you to enter a source and target branch, and effectively unshelve changes from one branch to another.&lt;/p&gt;  &lt;h3&gt;Annoying SCE refresh bug fixed&lt;/h3&gt;  &lt;p&gt;One last thing… that little bug in the 2005 Team Explorer that sometimes forced a refresh of the ENTIRE source tree when checking out or in from the SCE has been fixed. This drove me nuts – especially when working remotely.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=124390"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=124390" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jkurtz/aggbug/124390.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jamie Kurtz</dc:creator>
            <guid>http://geekswithblogs.net/jkurtz/archive/2008/08/12/124390.aspx</guid>
            <pubDate>Tue, 12 Aug 2008 18:53:13 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jkurtz/comments/124390.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jkurtz/archive/2008/08/12/124390.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/jkurtz/comments/commentRss/124390.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jkurtz/services/trackbacks/124390.aspx</trackback:ping>
        </item>
        <item>
            <title>Missing changeset &amp;lt;-&amp;gt; build associations</title>
            <link>http://geekswithblogs.net/jkurtz/archive/2008/07/24/123996.aspx</link>
            <description>&lt;p&gt;This really bit me recently, so I want to point it out. You can read Martin Woodward's post here: &lt;a title="http://planetscm.org/user/22/tag/tfs%20top%20tip/" target="_blank" href="http://planetscm.org/user/22/tag/tfs%20top%20tip/"&gt;http://planetscm.org/user/22/tag/tfs%20top%20tip/&lt;/a&gt;, but I've copied the jist of it below.&lt;/p&gt;
&lt;p&gt;Basically, TFS 2008 will not associate any changesets to the first build for a Build Definition. This means that if you create your branch, then create a corresponding Build Definition, then make a bunch of changes to the branch (i.e. the changesets) BEFORE running your first build, all those changesets will never be associated with any builds. Ouch!!&lt;/p&gt;
&lt;p&gt;The reasoning for this behavior actually makes sense, as described by Martin in the link above:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;The reason why Team Build 2008 works in this way is that when Team Build successfully completes a build it stores the label applied to that last good build.  The next time it runs a build that is successful it will compare the two labels to detect which changesets were included in the build.  It will then look over those changesets for any associated work items and update them to include the build number in which they were fixed.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;So of course be careful when upgrading from 2005 to 2008, as you should baseline all your existing builds BEFORE making any changes to the code. If you don't, that link between your changesets and the first builds will be lost forever :(&lt;/p&gt;
&lt;p&gt;I agree with Martin, though, that as a matter of best practice you should always run a build from a new build definition prior to starting work on the associated branch.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=123996"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=123996" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jkurtz/aggbug/123996.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jamie Kurtz</dc:creator>
            <guid>http://geekswithblogs.net/jkurtz/archive/2008/07/24/123996.aspx</guid>
            <pubDate>Thu, 24 Jul 2008 17:07:56 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jkurtz/comments/123996.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jkurtz/archive/2008/07/24/123996.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jkurtz/comments/commentRss/123996.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jkurtz/services/trackbacks/123996.aspx</trackback:ping>
        </item>
        <item>
            <title>Some Getting-Started TFS references</title>
            <link>http://geekswithblogs.net/jkurtz/archive/2008/06/12/122814.aspx</link>
            <description>&lt;p&gt;&lt;/p&gt;  &lt;h5&gt;&lt;strong&gt;General references to Visual Studio Team System&lt;/strong&gt;&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/vsts2008/default.aspx"&gt;http://msdn.microsoft.com/en-us/vsts2008/default.aspx&lt;/a&gt; -&amp;gt; Entry point for VSTS2008 (including the different editions and TFS)&lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/tfs2008/default.aspx"&gt;http://msdn.microsoft.com/en-us/tfs2008/default.aspx&lt;/a&gt; (TFS specific part of previous link) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/teams_wit_tools/archive/2008/06/09/how-microsoft-dev-div-uses-tfs-chapter-9-transparency-in-reporting.aspx"&gt;http://blogs.msdn.com/teams_wit_tools/archive/2008/06/09/how-microsoft-dev-div-uses-tfs-chapter-9-transparency-in-reporting.aspx&lt;/a&gt; (this is the 9th posting in the series, all of which are very good) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://geekswithblogs.net/jkurtz/archive/2008/01/24/118864.aspx"&gt;http://geekswithblogs.net/jkurtz/archive/2008/01/24/118864.aspx&lt;/a&gt; -&amp;gt; customizing work item types in TFS (make sure you have the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=0ed12659-3d41-4420-bbb0-a46e51bfca86&amp;amp;displaylang=en"&gt;2008 Team Explorer&lt;/a&gt; installed first) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;  &lt;/p&gt;  &lt;h5&gt;&lt;strong&gt;TFS Licensing (can't forget this!!!)&lt;/strong&gt;&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="http://www.microsoft.com/downloads/details.aspx?familyid=1fa86e00-f0a3-4290-9da9-6e0378a3a3c5&amp;amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?familyid=1fa86e00-f0a3-4290-9da9-6e0378a3a3c5&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=1fa86e00-f0a3-4290-9da9-6e0378a3a3c5&amp;amp;displaylang=en&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h5&gt;&lt;strong&gt;Some great TFS blogs and forums&lt;/strong&gt;&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="bharry's WebLog" href="http://blogs.msdn.com/bharry/"&gt;bharry's WebLog&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="Jeff Beehler's Blog" href="http://blogs.msdn.com/jeffbe/"&gt;Jeff Beehler's Blog&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://blogs.msdn.com/teams_wit_tools" href="http://blogs.msdn.com/teams_wit_tools"&gt;http://blogs.msdn.com/teams_wit_tools&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="Aaron Hallberg" href="http://blogs.msdn.com/aaronhallberg/default.aspx"&gt;Aaron Hallberg&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="Visual Studio Team System" href="http://forums.microsoft.com/MSDN/default.aspx?ForumGroupID=5&amp;amp;SiteID=1"&gt;Visual Studio Team System&lt;/a&gt; (second half of list is all TFS-related forums) &lt;/li&gt;    &lt;li&gt;&lt;a title="http://radiotfs.com/" href="http://radiotfs.com/"&gt;http://radiotfs.com/&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://www.tfstimes.com/news/" href="http://www.tfstimes.com/news/"&gt;http://www.tfstimes.com/news/&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="http://blogs.msdn.com/team_foundation/" href="http://blogs.msdn.com/team_foundation/"&gt;http://blogs.msdn.com/team_foundation/&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h5&gt;&lt;strong&gt;Tools and add-ins to TFS&lt;/strong&gt;&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=0ed12659-3d41-4420-bbb0-a46e51bfca86&amp;amp;displaylang=en" target="_blank"&gt;Team Explorer&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;the &lt;a href="http://www.codeplex.com/scrumdashboard" target="_blank"&gt;Scrum Dashboard&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;The &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=00dfcd6e-4902-4f42-8e9f-859119c60d6a&amp;amp;displaylang=en" target="_blank"&gt;2008 Power Tools&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Borland &lt;a href="http://www.borland.com/us/company/news/press_releases/2005/06_06_05_borland_brings_requirements_engineering_rigor_to_msvs2005_users.html)" target="_blank"&gt;CaliberRM&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="TeamLook - A Team Foundation Server (TFS) Addin for Outlook 2003" href="http://www.personifydesign.com/teamlook"&gt;TeamLook - A Team Foundation Server (TFS) Addin for Outlook 2003&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://widgets.accentient.com/"&gt;http://widgets.accentient.com/&lt;/a&gt;  (your really should bookmark this one!!) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h5&gt;&lt;strong&gt;Process templates for TFS&lt;/strong&gt;&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.scrumforteamsystem.com/en/default.aspx"&gt;http://www.scrumforteamsystem.com/en/default.aspx&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=55A4BDE6-10A7-4C41-9938-F388C1ED15E9&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=55A4BDE6-10A7-4C41-9938-F388C1ED15E9&amp;amp;displaylang=en&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/vsts2008/aa718795.aspx"&gt;http://msdn.microsoft.com/en-us/vsts2008/aa718795.aspx&lt;/a&gt; (full list of known process templates, both free and $$$) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h5&gt;&lt;strong&gt;Book recommendations&lt;/strong&gt;&lt;/h5&gt;  &lt;p&gt;&lt;a href="http://www.amazon.com/Professional-Foundation-Server-Jean-Luc-David/dp/0471919306/ref=pd_bbs_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1212692014&amp;amp;sr=8-1"&gt;http://www.amazon.com/Professional-Foundation-Server-Jean-Luc-David/dp/0471919306/ref=pd_bbs_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1212692014&amp;amp;sr=8-1&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;How to implement IT governance such as Sarbanes-Oxley &lt;/li&gt;    &lt;li&gt;How to work with mixed environments (including Java and .NET) &lt;/li&gt;    &lt;li&gt;How to set up the product for large distributed environments &lt;/li&gt;    &lt;li&gt;How and why to take multiple lifecycles into consideration when deploying and using Team System &lt;/li&gt;    &lt;li&gt;How to create custom development tools and administer and customize work items &lt;/li&gt;    &lt;li&gt;How to monitor your team project metrics using SQL Server Reporting Services &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://www.amazon.com/Visual-Studio-Team-System-Development/dp/0321418506/ref=pd_bbs_sr_2?ie=UTF8&amp;amp;s=books&amp;amp;qid=1212692014&amp;amp;sr=8-2"&gt;http://www.amazon.com/Visual-Studio-Team-System-Development/dp/0321418506/ref=pd_bbs_sr_2?ie=UTF8&amp;amp;s=books&amp;amp;qid=1212692014&amp;amp;sr=8-2&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Using VSTS to support the transition to Agile values and techniques &lt;/li&gt;    &lt;li&gt;Forming Agile teams and building effective process frameworks &lt;/li&gt;    &lt;li&gt;Leveraging Team Foundation Version Control to help teams manage change and share their code effectively &lt;/li&gt;    &lt;li&gt;Implementing incremental builds and integration with Team Foundation Build &lt;/li&gt;    &lt;li&gt;Making the most of VSTS tools for Test-Driven Development and refactoring &lt;/li&gt;    &lt;li&gt;Bringing agility into software modeling and using patterns to model solutions more effectively &lt;/li&gt;    &lt;li&gt;Using the FIT integrated testing framework to make sure customers are getting what they need &lt;/li&gt;    &lt;li&gt;Estimating, prioritizing, and planning Agile projects &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://www.amazon.com/Software-Engineering-Microsoft-Visual-Development/dp/0321278720/ref=pd_bbs_sr_3?ie=UTF8&amp;amp;s=books&amp;amp;qid=1212692014&amp;amp;sr=8-3"&gt;http://www.amazon.com/Software-Engineering-Microsoft-Visual-Development/dp/0321278720/ref=pd_bbs_sr_3?ie=UTF8&amp;amp;s=books&amp;amp;qid=1212692014&amp;amp;sr=8-3&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The role of the value-up paradigm (versus work-down) in the software development lifecycle, and the meanings and importance of “flow” &lt;/li&gt;    &lt;li&gt;The use of MSF for Agile Software Development and MSF for CMMI Process Improvement &lt;/li&gt;    &lt;li&gt;Work items for planning and managing backlog in VSTS &lt;/li&gt;    &lt;li&gt;Multidimensional, daily metrics to maintain project flow and enable estimation &lt;/li&gt;    &lt;li&gt;Creating requirements using personas and scenarios &lt;/li&gt;    &lt;li&gt;Project management with iterations, trustworthy transparency, and friction-free metrics &lt;/li&gt;    &lt;li&gt;Architectural design using a value-up view, service-oriented architecture, constraints, and qualities of service &lt;/li&gt;    &lt;li&gt;Development with unit tests, code coverage, profiling, and build automation &lt;/li&gt;    &lt;li&gt;Testing for customer value with scenarios, qualities of service, configurations, data, exploration, and metrics &lt;/li&gt;    &lt;li&gt;Effective bug reporting and bug assessment &lt;/li&gt;    &lt;li&gt;Troubleshooting a project: recognizing and correcting common pitfalls and antipatterns &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://www.codeplex.com/TFSGuide"&gt;http://www.codeplex.com/TFSGuide&lt;/a&gt; (available as a free PDF download)&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=122814"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=122814" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jkurtz/aggbug/122814.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jamie Kurtz</dc:creator>
            <guid>http://geekswithblogs.net/jkurtz/archive/2008/06/12/122814.aspx</guid>
            <pubDate>Thu, 12 Jun 2008 14:06:40 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jkurtz/comments/122814.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jkurtz/archive/2008/06/12/122814.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jkurtz/comments/commentRss/122814.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jkurtz/services/trackbacks/122814.aspx</trackback:ping>
        </item>
        <item>
            <title>Small gotcha in &amp;quot;tf status&amp;quot; Team Foundation Server command</title>
            <link>http://geekswithblogs.net/jkurtz/archive/2008/06/10/122770.aspx</link>
            <description>&lt;p&gt;Today I was trying to find out who has what checked out from a certain folder in TFS - call it $/Project/Folder. I happened to not have most of that folder downloaded yet - i.e. not in my workspace. I went to the command line, and typed the following:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New" size="2"&gt;tf status c:\Project\Folder /recursive /user:*&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;That returned with “There are no pending changes.” – which is interesting because I can see that there ARE pending changes. And yes, my workspace mapping / working folders are configured properly. So then I tried this instead:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New" size="2"&gt;tf status $/Project/Folder /recursive /user:*&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;And that showed all the actual pending changes.&lt;/p&gt;  &lt;p&gt;So I guess the moral of the story is that you need to watch out using local paths – as it seemed be answering the question “what are all the pending changes for &lt;b&gt;only the files I have in my workspace&lt;/b&gt;?”. Coincidentally, one of the guys on my team mentioned to me the other day that he generally uses server paths when using the tf command-line tool.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=122770"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=122770" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jkurtz/aggbug/122770.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jamie Kurtz</dc:creator>
            <guid>http://geekswithblogs.net/jkurtz/archive/2008/06/10/122770.aspx</guid>
            <pubDate>Tue, 10 Jun 2008 18:49:37 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jkurtz/comments/122770.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jkurtz/archive/2008/06/10/122770.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jkurtz/comments/commentRss/122770.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jkurtz/services/trackbacks/122770.aspx</trackback:ping>
        </item>
        <item>
            <title>TFS Excel integration fails with error TF80076 - after installing 2008 Team Explorer</title>
            <link>http://geekswithblogs.net/jkurtz/archive/2008/06/07/122690.aspx</link>
            <description>&lt;p&gt;I recently discovered that after you install the 2008 Team Explorer (&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=0ed12659-3d41-4420-bbb0-a46e51bfca86&amp;amp;displaylang=en" target="_blank"&gt;here&lt;/a&gt;) - and you already had the 2005 Team Explorer installed - you may not able to view or edit TFS work items in Excel. Instead, you get an error that says: "TF80076: The data in the work item is not valid or you do not have permissions to modify the data. Please correct the problem and retry."&lt;/p&gt;  &lt;p&gt;This error is caused when two different versions of the TFS Office Integration plug-in are installed but not configured properly. More details of the problem and a work around can be found &lt;a href="http://msdn.microsoft.com/en-us/tfs2008/cc511262.aspx" target="_blank"&gt;here&lt;/a&gt;. However, the instructions for configuring your machine to use the 2008 add-in aren't correct. I've posted the correct details below. Make sure you close all instances of Visual Studio prior to following these steps.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;b&gt;To use the Visual Studio 2008 Team Explorer add-in&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;1.     At the command prompt, change directories to:    &lt;br /&gt;&lt;strong&gt;        C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies\&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;2.     Unregister the Visual Studio 2005 Team Explorer add-in by running the following command:    &lt;br /&gt;&lt;strong&gt;        regsvr32 /u TFSOfficeAdd-in.dll&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;3.     At the command prompt, change directories to:    &lt;br /&gt;&lt;strong&gt;        C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies\&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;4.     Register the Visual Studio 2008 Team Explorer add-in by running the following command:    &lt;br /&gt;&lt;strong&gt;        regsvr32 TFSOfficeAdd-in.dll&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=122690"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=122690" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jkurtz/aggbug/122690.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jamie Kurtz</dc:creator>
            <guid>http://geekswithblogs.net/jkurtz/archive/2008/06/07/122690.aspx</guid>
            <pubDate>Sat, 07 Jun 2008 15:51:56 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jkurtz/comments/122690.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jkurtz/archive/2008/06/07/122690.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/jkurtz/comments/commentRss/122690.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jkurtz/services/trackbacks/122690.aspx</trackback:ping>
        </item>
        <item>
            <title>Another great tool from Mark Russinovich</title>
            <link>http://geekswithblogs.net/jkurtz/archive/2008/05/14/122135.aspx</link>
            <description>&lt;p&gt;&lt;strong&gt;ZoomIt&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://technet.microsoft.com/en-us/sysinternals/bb897434.aspx" href="http://technet.microsoft.com/en-us/sysinternals/bb897434.aspx"&gt;http://technet.microsoft.com/en-us/sysinternals/bb897434.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Very nice tool for screen zoom and annotation for use during presentations. I find this particularly useful when collaborating with remote workers via WebEx or iLinc or whatever.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=122135"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=122135" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jkurtz/aggbug/122135.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jamie Kurtz</dc:creator>
            <guid>http://geekswithblogs.net/jkurtz/archive/2008/05/14/122135.aspx</guid>
            <pubDate>Wed, 14 May 2008 19:19:53 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jkurtz/comments/122135.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jkurtz/archive/2008/05/14/122135.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jkurtz/comments/commentRss/122135.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jkurtz/services/trackbacks/122135.aspx</trackback:ping>
        </item>
        <item>
            <title>April 2008 Rosario VPC images available</title>
            <link>http://geekswithblogs.net/jkurtz/archive/2008/04/10/121179.aspx</link>
            <description>&lt;p&gt;This seems to be CTP12: &lt;a title="http://www.microsoft.com/downloads/details.aspx?FamilyID=65D0E3BD-9DF3-421A-804F-8F01BD90F0B4&amp;amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=65D0E3BD-9DF3-421A-804F-8F01BD90F0B4&amp;amp;displaylang=en" target="_blank"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=65D0E3BD-9DF3-421A-804F-8F01BD90F0B4&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;And here's the &lt;a href="http://www.freedownloadmanager.org/" target="_blank"&gt;Free Download Manager&lt;/a&gt; list:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;http://download.microsoft.com/download/b/f/9/bf9c1b30-ca2d-4381-8e9e-8b5db9701437/Apr2008RosarioCTP%20_12PartsTotal.part01.exe     &lt;br /&gt;http://download.microsoft.com/download/b/f/9/bf9c1b30-ca2d-4381-8e9e-8b5db9701437/Apr2008RosarioCTP%20_12PartsTotal.part02.rar      &lt;br /&gt;http://download.microsoft.com/download/b/f/9/bf9c1b30-ca2d-4381-8e9e-8b5db9701437/Apr2008RosarioCTP%20_12PartsTotal.part03.rar      &lt;br /&gt;http://download.microsoft.com/download/b/f/9/bf9c1b30-ca2d-4381-8e9e-8b5db9701437/Apr2008RosarioCTP%20_12PartsTotal.part04.rar      &lt;br /&gt;http://download.microsoft.com/download/b/f/9/bf9c1b30-ca2d-4381-8e9e-8b5db9701437/Apr2008RosarioCTP%20_12PartsTotal.part05.rar      &lt;br /&gt;http://download.microsoft.com/download/b/f/9/bf9c1b30-ca2d-4381-8e9e-8b5db9701437/Apr2008RosarioCTP%20_12PartsTotal.part06.rar      &lt;br /&gt;http://download.microsoft.com/download/b/f/9/bf9c1b30-ca2d-4381-8e9e-8b5db9701437/Apr2008RosarioCTP%20_12PartsTotal.part07.rar      &lt;br /&gt;http://download.microsoft.com/download/b/f/9/bf9c1b30-ca2d-4381-8e9e-8b5db9701437/Apr2008RosarioCTP%20_12PartsTotal.part08.rar      &lt;br /&gt;http://download.microsoft.com/download/b/f/9/bf9c1b30-ca2d-4381-8e9e-8b5db9701437/Apr2008RosarioCTP%20_12PartsTotal.part09.rar      &lt;br /&gt;http://download.microsoft.com/download/b/f/9/bf9c1b30-ca2d-4381-8e9e-8b5db9701437/Apr2008RosarioCTP%20_12PartsTotal.part10.rar      &lt;br /&gt;http://download.microsoft.com/download/b/f/9/bf9c1b30-ca2d-4381-8e9e-8b5db9701437/Apr2008RosarioCTP%20_12PartsTotal.part11.rar      &lt;br /&gt;http://download.microsoft.com/download/b/f/9/bf9c1b30-ca2d-4381-8e9e-8b5db9701437/Apr2008RosarioCTP%20_12PartsTotal.part12.rar&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=121179"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=121179" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jkurtz/aggbug/121179.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jamie Kurtz</dc:creator>
            <guid>http://geekswithblogs.net/jkurtz/archive/2008/04/10/121179.aspx</guid>
            <pubDate>Fri, 11 Apr 2008 01:10:30 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jkurtz/comments/121179.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jkurtz/archive/2008/04/10/121179.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jkurtz/comments/commentRss/121179.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jkurtz/services/trackbacks/121179.aspx</trackback:ping>
        </item>
        <item>
            <title>ADO.NET Entity Framework (BETA 3) - Hooking SaveChanges()</title>
            <link>http://geekswithblogs.net/jkurtz/archive/2008/02/25/119967.aspx</link>
            <description>&lt;p&gt;I've been looking quite a bit at the new ADO.NET Entity Framework. I'm really hoping to be able to implement the technology to replace our data access layer with all of its generated database and .NET code. &lt;/p&gt;  &lt;p&gt;One of the first things I found myself trying to figure out was updating a DateLastMaint field whenever a change is persisted by the ObjectContext. Our applications use this field religiously, and its update needs to be baked down into the architecture so the application developers don't need to mess with it.&lt;/p&gt;  &lt;p&gt;In addition to updating fields on entities, we also need to be support auditing. I'm not sure if this little trick would solve that problem, but it's a start. So here's how I did... &lt;/p&gt;  &lt;p&gt;I created a ModelFactory class that serves up EDM models that are pre-hooked to update this DateLastMaint field upon saving. Here's the code for the class:&lt;/p&gt;  &lt;blockquote&gt;&lt;code&gt;     &lt;p&gt;public static class ModelFactory        &lt;br /&gt;{         &lt;br /&gt;    public static T CreateModel&amp;lt;T&amp;gt;() where T: ObjectContext         &lt;br /&gt;    {         &lt;br /&gt;        T model = Activator.CreateInstance&amp;lt;T&amp;gt;();         &lt;br /&gt;        model.SavingChanges += new EventHandler(model_SavingChanges);         &lt;br /&gt;        return model;         &lt;br /&gt;    } &lt;/p&gt;      &lt;p&gt;    static void model_SavingChanges(object sender, EventArgs e)        &lt;br /&gt;    {         &lt;br /&gt;        ObjectContext context = (ObjectContext)sender; &lt;/p&gt;      &lt;p&gt;        IEnumerable&amp;lt;ObjectStateEntry&amp;gt; changes = context.ObjectStateManager.GetObjectStateEntries(EntityState.Modified); &lt;/p&gt;      &lt;p&gt;        foreach (ObjectStateEntry entry in changes)        &lt;br /&gt;        {         &lt;br /&gt;            DateTime dateLastMaint = DateTime.Now;         &lt;br /&gt;            int ordinal = entry.CurrentValues.GetOrdinal("DateLastMaint");  &lt;br /&gt;            entry.CurrentValues.SetDateTime(ordinal, dateLastMaint);         &lt;br /&gt;        }         &lt;br /&gt;    }         &lt;br /&gt;} &lt;/p&gt;   &lt;/code&gt;&lt;/blockquote&gt;  &lt;p&gt;&lt;/p&gt; Then to use the ModelFactory class, just do the following:   &lt;p&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;code&gt;MyEntities context = ModelFactory.CreateModel&amp;lt;MyEntities&amp;gt;&lt;myentities&gt;() &lt;/myentities&gt;&lt;/code&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;One thing to work out yet: The ObjectContext / model should be instantiated within a using block. But doing so caused the underlying connection to get disposed, so my little test app couldn't persist the changes back to the database. Not sure yet how to recreate an instance of the model and have existing changes merged with it??? &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=119967"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=119967" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jkurtz/aggbug/119967.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jamie Kurtz</dc:creator>
            <guid>http://geekswithblogs.net/jkurtz/archive/2008/02/25/119967.aspx</guid>
            <pubDate>Tue, 26 Feb 2008 03:37:46 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jkurtz/comments/119967.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jkurtz/archive/2008/02/25/119967.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/jkurtz/comments/commentRss/119967.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jkurtz/services/trackbacks/119967.aspx</trackback:ping>
        </item>
        <item>
            <title>TFS Process Template Editor</title>
            <link>http://geekswithblogs.net/jkurtz/archive/2008/01/24/118864.aspx</link>
            <description>&lt;p&gt;As a follow-up to the &lt;a target="_blank" href="http://www.indytfs.org/sig/Events/tabid/63/ModuleID/414/ItemID/7/mctl/EventDetails/Default.aspx?selecteddate=1/23/2008"&gt;TFS Work Item Tracking presentation I gave last night at IndyTFS&lt;/a&gt;, I want to provide some tips for getting started with editing work item types in TFS.&lt;/p&gt;
&lt;p&gt;First and foremost, make sure you have downloaded and installed the latest Team Foundation Power Tools. The Process Template Editor is included in that tool set. The downloads and instructions for TFS 2005 are slightly different from those of TFS 2008. So I'll cover those separately below. &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h3&gt;Version 2005&lt;/h3&gt;
&lt;p&gt;To download and install the Power Tools:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;1. Download the 2005 Power Tools &lt;a target="_blank" href="http://www.microsoft.com/downloads/details.aspx?familyid=7324C3DB-658D-441B-8522-689C557D0A79&amp;amp;displaylang=en"&gt;here&lt;/a&gt;. Note that you first need to install the DSL tools redistributable; just look further down on the page for its download&lt;/p&gt;
&lt;p&gt;2. Install the DSL tools redistributable first, then the Power Tools itself&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Once the Power Tools are installed:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;1. Open the TFS client (i.e. Visual Studio 2005)&lt;/p&gt;
&lt;p&gt;2. Make sure you have the Team Explorer window showing and a Team Project selected&lt;/p&gt;
&lt;p&gt;3. Select Process Editor from the Team menu &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/jkurtz/WindowsLiveWriter/TFSProcessTemplateEditor_9602/clip_image002_2.jpg"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="244" alt="clip_image002" width="184" border="0" src="http://geekswithblogs.net/images/geekswithblogs_net/jkurtz/WindowsLiveWriter/TFSProcessTemplateEditor_9602/clip_image002_thumb.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;4. Select Work Item Types -&amp;gt; Open WIT from Server&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/jkurtz/WindowsLiveWriter/TFSProcessTemplateEditor_9602/clip_image004_2.jpg"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="71" alt="clip_image004" width="244" border="0" src="http://geekswithblogs.net/images/geekswithblogs_net/jkurtz/WindowsLiveWriter/TFSProcessTemplateEditor_9602/clip_image004_thumb.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;5. Enter the name of your TFS server in the dialog that pops up&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/jkurtz/WindowsLiveWriter/TFSProcessTemplateEditor_9602/clip_image006_2.jpg"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="98" alt="clip_image006" width="244" border="0" src="http://geekswithblogs.net/images/geekswithblogs_net/jkurtz/WindowsLiveWriter/TFSProcessTemplateEditor_9602/clip_image006_thumb.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;6. In the next dialog, find and select the Work Item Type you want to edit&lt;/p&gt;
&lt;p&gt;7. Click OK&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;At this point you are ready to edit and save the Work Item Type. Remember that saving it to the TFS server will immediately affect all users using that particular Work Item Type - so be careful!! Read below for some quick pointers on editing the Work Item Type.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h3&gt;Version 2008&lt;/h3&gt;
&lt;p&gt;To download and install the Power Tools:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;1. Download the 2008 Power Tools &lt;a target="_blank" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=00dfcd6e-4902-4f42-8e9f-859119c60d6a&amp;amp;DisplayLang=en"&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2. Install the Power Tools&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Once the Power Tools are installed: &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;1. Open the TFS client (i.e. Visual Studio 2008) &lt;/p&gt;
&lt;p&gt;2. Make sure you have the Team Explorer window showing and a Team Project selected &lt;/p&gt;
&lt;p&gt;3. Select Process Editor from the Tools menu (yes, they moved it from the Team menu to the Tools menu in going to 2008)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/jkurtz/WindowsLiveWriter/TFSProcessTemplateEditor_9602/image_6.png"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="64" alt="image" width="244" border="0" src="http://geekswithblogs.net/images/geekswithblogs_net/jkurtz/WindowsLiveWriter/TFSProcessTemplateEditor_9602/image_thumb_2.png" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;4. Select Work Item Types -&amp;gt; Open WIT from Server&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/jkurtz/WindowsLiveWriter/TFSProcessTemplateEditor_9602/image_8.png"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="69" alt="image" width="244" border="0" src="http://geekswithblogs.net/images/geekswithblogs_net/jkurtz/WindowsLiveWriter/TFSProcessTemplateEditor_9602/image_thumb_3.png" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;5. Enter the name of your TFS server in the dialog that pops up (if it pops up)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/jkurtz/WindowsLiveWriter/TFSProcessTemplateEditor_9602/clip_image006_2.jpg"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="98" alt="clip_image006" width="244" border="0" src="http://geekswithblogs.net/images/geekswithblogs_net/jkurtz/WindowsLiveWriter/TFSProcessTemplateEditor_9602/clip_image006_thumb.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;6. In the next dialog, find and select the Work Item Type you want to edit &lt;/p&gt;
&lt;p&gt;7. Click OK&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;At this point you are ready to edit and save the Work Item Type. Remember that saving it to the TFS server will immediately affect all users using that particular Work Item Type - so be careful!! Read below for some quick pointers on editing the Work Item Type.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h3&gt;Tips to edit your Work Item Type&lt;/h3&gt;
&lt;p&gt;This section simply throws out some simple tips for making changes to the Work Item Type. It is important to understand that the Work Item tracking capability within TFS, and the power of using the Process Editor to alter your development workflow, goes far beyond these few tips.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Making a field required - all the time&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;To make a field required, regardless of state or transition, open the field on the Fields tab. Then click the Rules tab on the Fields Definition dialog. Click the Add button to add a new rule. Then select the REQUIRED rule type. Click Ok. When the dialog pops up that prompts you to enter the "FOR" and "NOT FOR" permissions, just click OK. Click OK again to finish editing the field.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Making a field required - only when transitioning to a certain state&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;To make a field required when moving from state A to state B, you need to edit the field from within the Workflow designer. So first select the Workflow tab in the Work Item Type editor. Then looking at the visual workflow diagram, find the state on which you want to make a field required. For example, if you want to make the "Assigned To" required when moving a work item from Active to Resolved, find the little blue transition element that has a dot on the Active state, and an arrow on the Resolved state. Right-click on it, and select Open Details. On the dialog tha tpops up, select the Fields tab. If the fields you want to add the REQUIRED rule to is not already in the list, click the Add button. Otherwise, select the field and click the Open button. On the first tab of the Field Reference dialog, select your desired field from the dropdown. Then click the Rules tab, and click the Add button. This will pop the dialog allowing you to select your desired rule - in this example, the REQUIRED rule. Click Ok a few times, and now your field is required only in the given transition.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Adding dropdown list options to a field&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Sometimes you have a text field, and you want to provide a list of options to the user. So, assuming you already have a text field on which you want to add or update a list, select the field form the Fields tab and click the open button. Then click on the Rules tab. Click the Add button. This time, instead of REQUIRED, we're going to select the ALLOWEDVALUES rule. After clicking OK, you are presented with a dialog that allows you to enter a list of strings for the dropdown options. Use the Add button, entering the option value and clicking OK, as many times as needed. Then click OK a few times. Your field will now be shown with a dropdown list of options.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h3&gt;More Information&lt;/h3&gt;
&lt;p&gt;To really learn how to edit Work Item Types, and also how to edit and create your own complete process templates, read the PEUserGuide Word document found in the "C:\Program Files\Microsoft Team Foundation Server Power Tools\Process Template Editor" after you install the 2005 Power Tools, and "C:\Program Files\Microsoft Team Foundation Server 2008 Power Tools\Process Template Editor" after you install the 2008 version of the Power Tools.&lt;/p&gt;
&lt;p&gt;You can also find lots of information on utilizing the TFS Process Templates &lt;a target="_blank" href="http://msdn2.microsoft.com/en-us/teamsystem/aa718795.aspx"&gt;here&lt;/a&gt;. This site does a great job covering all the facets of implementing TFS Process Templates, and using the Power Tools to help you along the way. You will also find links to other process templates in the community - some free, and some not.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=118864"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=118864" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jkurtz/aggbug/118864.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jamie Kurtz</dc:creator>
            <guid>http://geekswithblogs.net/jkurtz/archive/2008/01/24/118864.aspx</guid>
            <pubDate>Thu, 24 Jan 2008 17:06:58 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jkurtz/comments/118864.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jkurtz/archive/2008/01/24/118864.aspx#feedback</comments>
            <slash:comments>7</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/jkurtz/comments/commentRss/118864.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jkurtz/services/trackbacks/118864.aspx</trackback:ping>
        </item>
        <item>
            <title>TFS Power Tools for VS2008!!</title>
            <link>http://geekswithblogs.net/jkurtz/archive/2008/01/04/118261.aspx</link>
            <description>&lt;p&gt;Microsoft just announced (well, back on 12/21) that the Power Tools have been updated and enhanced for Visual Studio 2008. &lt;/p&gt;  &lt;p&gt;Here's a quick list of the highlights:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;"Find in Source Control" - right-click option to search in source by status, filename, and changeset &lt;/li&gt;    &lt;li&gt;"Open in Windows Explorer" - right-click option to open a location in Windows Explorer &lt;/li&gt;    &lt;li&gt;The ability to completely destroy both Work Items and Work Item Types (finally, we can clean up all those test WITs!) &lt;/li&gt;    &lt;li&gt;An updated Process Template Editor (including performance improvements and bug fixes) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Here's a link to an announcement: &lt;a title="http://blogs.msdn.com/edhintz/archive/2007/12/21/team-foundation-power-tools-for-vs2008-hot-now.aspx" href="http://blogs.msdn.com/edhintz/archive/2007/12/21/team-foundation-power-tools-for-vs2008-hot-now.aspx"&gt;http://blogs.msdn.com/edhintz/archive/2007/12/21/team-foundation-power-tools-for-vs2008-hot-now.aspx&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;And here's the download: &lt;a title="here" href="http://go.microsoft.com/?linkid=8013790"&gt;http://go.microsoft.com/?linkid=8013790&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Of course, don't forget to first grab the &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=0ED12659-3D41-4420-BBB0-A46E51BFCA86&amp;amp;displaylang=en"&gt;2008 version of the Team Explorer&lt;/a&gt;. This must be installed prior to installing the new 2008 Power Tools.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=118261"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=118261" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jkurtz/aggbug/118261.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jamie Kurtz</dc:creator>
            <guid>http://geekswithblogs.net/jkurtz/archive/2008/01/04/118261.aspx</guid>
            <pubDate>Sat, 05 Jan 2008 00:40:07 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jkurtz/comments/118261.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jkurtz/archive/2008/01/04/118261.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/jkurtz/comments/commentRss/118261.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jkurtz/services/trackbacks/118261.aspx</trackback:ping>
        </item>
        <item>
            <title>ADO.NET Entity Framework Beta 3 Released!!!</title>
            <link>http://geekswithblogs.net/jkurtz/archive/2007/12/07/117472.aspx</link>
            <description>&lt;p&gt;You can now download a version of the ADO.NET Entity Framework that works with VS 2008 RTM: &lt;a title="http://www.microsoft.com/downloads/details.aspx?FamilyId=15DB9989-1621-444D-9B18-D1A04A21B519&amp;amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=15DB9989-1621-444D-9B18-D1A04A21B519&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=15DB9989-1621-444D-9B18-D1A04A21B519&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;And don't miss this little note: &lt;em&gt;"Be sure to download the &lt;/em&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=104983"&gt;&lt;em&gt;Entity Framework Tools December 2007 CTP&lt;/em&gt;&lt;/a&gt;&lt;em&gt; as well for integration with Visual Studio 2008."&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=117472"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=117472" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jkurtz/aggbug/117472.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jamie Kurtz</dc:creator>
            <guid>http://geekswithblogs.net/jkurtz/archive/2007/12/07/117472.aspx</guid>
            <pubDate>Fri, 07 Dec 2007 18:50:56 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/jkurtz/comments/117472.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/jkurtz/archive/2007/12/07/117472.aspx#feedback</comments>
            <slash:comments>6</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/jkurtz/comments/commentRss/117472.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/jkurtz/services/trackbacks/117472.aspx</trackback:ping>
        </item>
    </channel>
</rss>