<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Eugene Zakhareyev @ MSDN</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/eugenez/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/eugenez/feed.xml</link>
    <description />
    <lastBuildDate>Wed, 17 Apr 2019 03:21:00 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>What do you need to build VC++ in 2010?</title>
      <link>https://docs.microsoft.com/archive/blogs/eugenez/what-do-you-need-to-build-vc-in-2010</link>
      <pubDate>Mon, 03 May 2010 23:49:00 GMT</pubDate>
      <dc:creator><![CDATA[Eugenez12]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/eugenez/2010/05/03/what-do-you-need-to-build-vc-in-2010/</guid>
      <description><![CDATA[As you probably know, Visual C++ projects in VS 2010 use MSBuild to build. That works fine when you...]]></description>
      <content:encoded><![CDATA[<P>As you probably know, Visual C++ projects in VS 2010 use MSBuild to build. That works fine when you have Visual Studio installed, but can you build your C++ stuff without Visual Studio installed? One could build C#/VB projects with only .NET Framework installed, and prior to 2010, to build VC++ you only needed Windows SDK (that included headers, libraries, compilers and other goodies). So what is the story in 2010?</P>
<P>It turns out the story is similar in 2010 - you will need to have Windows SDK (for C++ specific bits) and .NET Framework 4.0 for vcxproj files. The only&nbsp;fly in the ointment is that <A href="https://blogs.msdn.com/windowssdk/archive/2010/04/07/coming-soon-win-sdk-for-windows-7-and-net-4.aspx" target=_blank mce_href="https://blogs.msdn.com/windowssdk/archive/2010/04/07/coming-soon-win-sdk-for-windows-7-and-net-4.aspx">Windows SDK is yet to be released</A> (with target date somewhere in June 2010), so for now to build your C++ projects you will need to have Visual Studio installed.</P>]]></content:encoded>
    </item>
    <item>
      <title>MSBuild resources reference page</title>
      <link>https://docs.microsoft.com/archive/blogs/eugenez/msbuild-resources-reference-page</link>
      <pubDate>Mon, 03 May 2010 23:35:21 GMT</pubDate>
      <dc:creator><![CDATA[Eugenez12]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/eugenez/2010/05/03/msbuild-resources-reference-page/</guid>
      <description><![CDATA[.NET 4.0 and MSBuild 4.0 are out there now, but resources are still ramping up. So as a quick time...]]></description>
      <content:encoded><![CDATA[<p>.NET 4.0 and MSBuild 4.0 are out there now, but resources are still ramping up. So as a quick time saver, I have created the biggest most complete no-nonsense 100% satisfaction guarantee <a href="https://blogs.msdn.com/eugenez/pages/msbuild-resources.aspx" target="_blank"><strong>MSBuild resources reference page</strong></a>. :) That will be updated as newer content comes online. Enjoy!</p>]]></content:encoded>
    </item>
    <item>
      <title>MSBuild resources</title>
      <link>https://docs.microsoft.com/archive/blogs/eugenez/msbuild-resources</link>
      <pubDate>Mon, 03 May 2010 23:01:00 GMT</pubDate>
      <dc:creator><![CDATA[Eugenez12]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/eugenez/2010/05/03/msbuild-resources/</guid>
      <description><![CDATA[MSBuild Resources

Official docs: MSBuild MSDN portal, MSBuild Reference, MSBuild Support...]]></description>
      <content:encoded><![CDATA[<H2><STRONG>MSBuild Resources</STRONG></H2>
<UL>
<LI><STRONG>Official docs</STRONG>: <A href="https://msdn.microsoft.com/en-us/library/dd393574.aspx" target=_blank mce_href="https://msdn.microsoft.com/en-us/library/dd393574.aspx"><STRONG><FONT color=#669966>MSBuild MSDN portal</FONT></STRONG></A>, <A href="https://msdn.microsoft.com/en-us/library/0k6kkbsd.aspx" target=_blank mce_href="https://msdn.microsoft.com/en-us/library/0k6kkbsd.aspx"><STRONG><FONT color=#669966>MSBuild Reference</FONT></STRONG></A>, <A class="" href="https://social.msdn.microsoft.com/Fo​rums/en-US/msbuild/thread" target=_blank mce_href="https://social.msdn.microsoft.com/Fo​rums/en-US/msbuild/thread"><FONT color=#669966><STRONG>MSBuild Support forums</STRONG></FONT></A></LI>
<LI><STRONG>Blogs of note: </STRONG><A href="https://blogs.msdn.com/msbuild" target=_blank mce_href="https://blogs.msdn.com/msbuild"><FONT color=#669966><STRONG>MSBuild Team blog</STRONG></FONT></A><STRONG>, </STRONG><A href="https://www.sedodream.com/" target=_blank mce_href="https://www.sedodream.com/"><FONT color=#669966><STRONG>Sayed Ibrahim Hashimi’s blog</STRONG></FONT></A><STRONG>, </STRONG><A href="https://www.freetodev.com/" target=_blank mce_href="https://www.freetodev.com/"><FONT color=#669966><STRONG>Mike Fourie’s blog</STRONG></FONT></A><STRONG>.</STRONG></LI>
<LI><STRONG>Task libraries: <A href="https://msbuildextensionpack.codeplex.com/" target=_blank mce_href="https://msbuildextensionpack.codeplex.com/"><STRONG><FONT color=#669966>MSBuild Extension Pack</FONT></STRONG></A></STRONG></LI>
<LI><STRONG>GUI editors: </STRONG><A href="https://www.attrice.info/msbuild" target=_blank mce_href="https://www.attrice.info/msbuild"><FONT color=#669966><STRONG>MSBuild Sidekick</STRONG></FONT></A>&nbsp;</LI></UL>
<P><STRONG><EM>Note</EM>:</STRONG> do <U>not</U> rely on <A href="https://channel9.msdn.com/wiki/msbuild/homepage/" target=_blank mce_href="https://channel9.msdn.com/wiki/msbuild/homepage/"><FONT color=#669966>Channel 9 MSBuild wiki</FONT></A> – the resource is outdated and not maintained</P>
<H2><STRONG>MSBuild 4.0 Resources</STRONG></H2>
<UL>
<LI><A href="https://msdn.microsoft.com/en-us/library/ee395432.aspx" target=_blank mce_href="https://msdn.microsoft.com/en-us/library/ee395432.aspx"><STRONG><FONT color=#669966>Multi-targeting</FONT></STRONG></A>&nbsp;– now for .Net 4.0!&nbsp;</LI>
<LI><A href="https://blogs.msdn.com/msbuild/archive/2010/02/18/build-extensibility-with-net-framework-4.aspx" target=_blank mce_href="https://blogs.msdn.com/msbuild/archive/2010/02/18/build-extensibility-with-net-framework-4.aspx"><STRONG><FONT color=#669966>Target dependency injection</FONT></STRONG></A> (BeforeTargets &amp; AfterTargets elements)</LI>
<LI>New&nbsp;command-line switches: <A href="https://sedodream.com/2010/04/30/MSBuild40NewCommandLineSwitches.aspx" target=_blank mce_href="https://sedodream.com/2010/04/30/MSBuild40NewCommandLineSwitches.aspx"><STRONG><FONT color=#669966>new command line switches</FONT></STRONG></A>, <A href="https://blogs.msdn.com/msbuild/archive/2010/03/05/msbuild-4-detailed-build-summary.aspx" target=_blank mce_href="https://blogs.msdn.com/msbuild/archive/2010/03/05/msbuild-4-detailed-build-summary.aspx"><STRONG><FONT color=#669966>performance summary</FONT></STRONG></A>, <A href="https://blogs.msdn.com/msbuild/archive/2010/03/31/displaying-target-output-items-using-the-console-logger.aspx" target=_blank mce_href="https://blogs.msdn.com/msbuild/archive/2010/03/31/displaying-target-output-items-using-the-console-logger.aspx"><STRONG><FONT color=#669966>displaying target outputs</FONT></STRONG></A> (all command line switches at <A href="https://msdn.microsoft.com/en-us/library/ms164311.aspx" target=_blank mce_href="https://msdn.microsoft.com/en-us/library/ms164311.aspx"><STRONG><FONT color=#669966>MSDN</FONT></STRONG></A>)</LI>
<LI><A href="https://msdn.microsoft.com/en-us/library/dd722601.aspx" target=_blank mce_href="https://msdn.microsoft.com/en-us/library/dd722601.aspx"><STRONG><FONT color=#669966>Inline tasks</FONT></STRONG></A> (explained&nbsp;at Sayed’s blog - <A href="https://sedodream.com/ct.ashx?id=7da42fd8-a0e0-4082-9526-9bc30b5ac558&amp;url=http%3a%2f%2fsedodream.com%2f2010%2f01%2f20%2fMSBuild40InlineTasks.aspx" target=_blank mce_href="https://sedodream.com/ct.ashx?id=7da42fd8-a0e0-4082-9526-9bc30b5ac558&amp;url=http%3a%2f%2fsedodream.com%2f2010%2f01%2f20%2fMSBuild40InlineTasks.aspx"><FONT color=#669966>part 1</FONT></A> and <A href="https://blogs.msdn.com/http%3a%2f%2fsedodream.com%2f2010%2f01%2f22%2fMSBuild40InlineTasksPart2.aspx" target=_blank mce_href="https://blogs.msdn.com/http%3a%2f%2fsedodream.com%2f2010%2f01%2f22%2fMSBuild40InlineTasksPart2.aspx"><FONT color=#669966>part 2</FONT></A>)</LI>
<LI><A href="https://msdn.microsoft.com/en-us/library/ee886422.aspx" target=_blank mce_href="https://msdn.microsoft.com/en-us/library/ee886422.aspx"><STRONG><FONT color=#669966>Item functions</FONT></STRONG></A></LI>
<LI><A href="https://msdn.microsoft.com/en-us/library/dd633440.aspx" target=_blank mce_href="https://msdn.microsoft.com/en-us/library/dd633440.aspx"><STRONG><FONT color=#669966>Property functions</FONT></STRONG></A>&nbsp;(explained in <A href="https://blogs.msdn.com/msbuild/archive/2010/04/02/msbuild-property-functions.aspx" target=_blank mce_href="https://blogs.msdn.com/msbuild/archive/2010/04/02/msbuild-property-functions.aspx"><FONT color=#669966>MSBuild Team blog</FONT></A>)</LI>
<LI>MSBuild Visual C++ support: <A href="https://msdn.microsoft.com/en-us/library/dd293626(v=VS.100).aspx" target=_blank mce_href="https://msdn.microsoft.com/en-us/library/dd293626(v=VS.100).aspx"><FONT color=#669966><STRONG>MSDN VC++ portal</STRONG></FONT></A>, <A href="https://blogs.msdn.com/vcblog/archive/tags/MSBuild/default.aspx" target=_blank mce_href="https://blogs.msdn.com/vcblog/archive/tags/MSBuild/default.aspx"><FONT color=#669966>MSBuild at VC++ blog</FONT></A>, <A href="https://blogs.msdn.com/msbuild/archive/2010/03/08/tuning-c-build-parallelism-in-vs2010.aspx" target=_blank mce_href="https://blogs.msdn.com/msbuild/archive/2010/03/08/tuning-c-build-parallelism-in-vs2010.aspx"><FONT color=#669966>using parallel build for VC++</FONT></A></LI>
<LI>New MSBuild Object Model&nbsp;– Microsoft.Build.XXX namespaces at <A href="https://msdn.microsoft.com/en-us/library/ms229335.aspx" target=_blank mce_href="https://msdn.microsoft.com/en-us/library/ms229335.aspx"><FONT color=#669966>here</FONT></A></LI>
<LI>Updated and new tasks: <A href="https://msdn.microsoft.com/en-us/library/7z253716.aspx" target=_blank mce_href="https://msdn.microsoft.com/en-us/library/7z253716.aspx"><FONT color=#669966><STRONG>tasks reference</STRONG></FONT></A>&nbsp;(for example, updated <A href="https://msdn.microsoft.com/en-us/library/3e54c37h.aspx" target=_blank mce_href="https://msdn.microsoft.com/en-us/library/3e54c37h.aspx"><FONT color=#669966>Copy</FONT></A>&nbsp;task, added <A href="https://msdn.microsoft.com/en-us/library/ff598684.aspx" target=_blank mce_href="https://msdn.microsoft.com/en-us/library/ff598684.aspx"><FONT color=#669966>XmlPeek</FONT></A>/<A href="https://msdn.microsoft.com/en-us/library/ff598687.aspx" target=_blank mce_href="https://msdn.microsoft.com/en-us/library/ff598687.aspx"><FONT color=#669966>XmlPoke</FONT></A>&nbsp;tasks)&nbsp;</LI>
<LI>Misc new elements: <A href="https://msdn.microsoft.com/en-us/library/ff606262.aspx" target=_blank mce_href="https://msdn.microsoft.com/en-us/library/ff606262.aspx"><FONT color=#669966>ImportGroup</FONT></A> element, <A href="https://msdn.microsoft.com/en-us/library/t50z2hka(v=VS.100).aspx" target=_blank mce_href="https://msdn.microsoft.com/en-us/library/t50z2hka(v=VS.100).aspx"><FONT color=#669966>Returns Target</FONT></A> attribute</LI></UL>]]></content:encoded>
    </item>
    <item>
      <title>StyleCop Check-in Policy updated (v. 1.3)</title>
      <link>https://docs.microsoft.com/archive/blogs/eugenez/stylecop-check-in-policy-updated-v-1-3</link>
      <pubDate>Sun, 18 Apr 2010 21:46:00 GMT</pubDate>
      <dc:creator><![CDATA[Eugenez12]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/eugenez/2010/04/18/stylecop-check-in-policy-updated-v-1-3/</guid>
      <description><![CDATA[I have updated TFS check-in policy for StyleCop 4.3.3.0 and also compiled a version for TFS 2010...]]></description>
      <content:encoded><![CDATA[<P>I have updated TFS check-in policy for <A href="https://code.msdn.microsoft.com/sourceanalysis/Release/ProjectReleases.aspx" target=_blank mce_href="https://code.msdn.microsoft.com/sourceanalysis/Release/ProjectReleases.aspx">StyleCop 4.3.3.0</A> and also compiled a version for TFS 2010 (now that it has RTM’ed).</P>
<P>The sources and MSIs (one for TFS 2008 and one for TFS 2010) are now available at <A href="https://code.msdn.microsoft.com/StyleCopPolicy" target=_blank mce_href="https://code.msdn.microsoft.com/StyleCopPolicy"><STRONG>MSDN Code Gallery</STRONG></A>.</P>
<P>Enjoy!</P>]]></content:encoded>
    </item>
    <item>
      <title>TFS2010: Connecting using TFS 2008 object model</title>
      <link>https://docs.microsoft.com/archive/blogs/eugenez/tfs2010-connecting-using-tfs-2008-object-model</link>
      <pubDate>Sat, 17 Apr 2010 00:12:48 GMT</pubDate>
      <dc:creator><![CDATA[Eugenez12]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/eugenez/2010/04/17/tfs2010-connecting-using-tfs-2008-object-model/</guid>
      <description><![CDATA[Can you connect to TFS 2010 server using 2008 client? Sure you can! There are couple of gotchas to...]]></description>
      <content:encoded><![CDATA[<p>Can you connect to TFS 2010 server using 2008 client? Sure you can! There are couple of gotchas to be aware of, specifically you’d be better off installing an update for TFS 2008; if you do not the following message comes up:</p>  <p><img style="display: block; float: none; margin-left: auto; margin-right: auto" src="https://www.attrice.info/images/blog/Tfs2008ForwardUpdate.png" /> </p>  <p><strong><a href="https://blogs.msdn.com/granth" target="_blank">Grant Holliday</a></strong> wrote very <a href="https://blogs.msdn.com/granth/archive/2009/12/07/tfs2010-older-clients-not-able-to-connect.aspx" target="_blank"><strong>detailed post</strong></a> on what needs to be installed and what to do if for some reason you cannot install the update.</p>  <p>However, I wanted to mention this in context of custom tools that use object model. While connecting to TFS 2010 with Team Explorer 2008 will produce the message above (and will require extra steps such as update installation to get TE working), the message won’t appear for your custom tools. In fact, if the connection to TFS 2010 is defined in registry you will connect and may not know the difference from inside of your tool.</p>  <p>Thus if you have custom tools using 2008 OM connecting to TFS 2010, it is your responsibility that the update gets installed correctly on machines with the tools. </p>]]></content:encoded>
    </item>
    <item>
      <title>TFS2010: Who am I? (getting logged in user info)</title>
      <link>https://docs.microsoft.com/archive/blogs/eugenez/tfs2010-who-am-i-getting-logged-in-user-info</link>
      <pubDate>Thu, 15 Apr 2010 23:01:37 GMT</pubDate>
      <dc:creator><![CDATA[Eugenez12]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/eugenez/2010/04/15/tfs2010-who-am-i-getting-logged-in-user-info/</guid>
      <description><![CDATA[When you login to TFS using object model, sometimes it may be useful to get information about logged...]]></description>
      <content:encoded><![CDATA[<p>When you login to TFS using object model, sometimes it may be useful to get information about logged in user (such as domain, account, email etc.).</p>  <p>In TFS 2008 object model, one would get the logged in user display name, domain name, account name and email as following:</p>  <div style="font-size: 10pt; background: white; color: black; font-family: courier new">   <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160;&#160; 1</span>&#160;<span style="color: #2b91af">TeamFoundationServer</span> server = <span style="color: blue">new</span> <span style="color: #2b91af">TeamFoundationServer</span>(<span style="color: #a31515">&quot;tfsserver&quot;</span>, </p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160;&#160; 2</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color: blue">new</span> System.Net.<span style="color: #2b91af">NetworkCredential</span>(<span style="color: #a31515">&quot;domain_name\\user_name&quot;</span>, <span style="color: #a31515">&quot;pwd&quot;</span>));</p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160;&#160; 3</span> server.EnsureAuthenticated();</p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160;&#160; 4</span>&#160;</p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160;&#160; 5</span>&#160;<span style="color: #2b91af">Console</span>.Write(server.AuthenticatedUserDisplayName);</p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160;&#160; 6</span>&#160;<span style="color: green">// returns user's display name </span></p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160;&#160; 7</span>&#160;</p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160;&#160; 8</span>&#160;<span style="color: #2b91af">Console</span>.Write(server.AuthenticatedUserName);</p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160;&#160; 9</span>&#160;<span style="color: green">// returns domain_name\user_name</span></p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 10</span>&#160;</p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 11</span>&#160;<span style="color: green">// AuthenticatedUserIdentity is Microsoft.TeamFoundation.Server.Identity</span></p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 12</span>&#160;<span style="color: #2b91af">Console</span>.Write(server.AuthenticatedUserIdentity.Domain + <span style="color: #a31515">&quot;\\&quot;</span> +</p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 13</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; server.AuthenticatedUserIdentity.AccountName);</p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 14</span>&#160;<span style="color: green">// returns domain_name\user_name</span><span style="color: #2b91af">&#160;&#160; </span></p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 15</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 16</span>&#160;<span style="color: #2b91af">Console</span>.Write(server.AuthenticatedUserIdentity.MailAddress);<span style="color: #2b91af">&#160;</span></p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 17</span>&#160;<span style="color: green">// returns user’s email<span style="color: #2b91af">&#160;&#160; </span></span></p> </div>  <p>In TFS 2010 OM, <em>AuthenticatedUserDisplayName</em>, <em>AuthenticatedUserName</em> and <em>AuthenticatedUserIdentity</em> properties are all deprecated, and instead <em>AuthorizedIdentity</em> property is introduced on Team Project Collection class. The code below makes use of the new property to retrieve logged in user information:</p>  <div style="font-size: 10pt; background: white; color: black; font-family: courier new">   <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160;&#160; 1</span>&#160;<span style="color: #2b91af">TfsTeamProjectCollection</span> collection = <span style="color: blue">new</span> <span style="color: #2b91af">TfsTeamProjectCollection</span>(</p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160;&#160; 2</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color: blue">new</span> <span style="color: #2b91af">Uri(</span><span style="color: #a31515"><a href="https://tfsserver:8080/tfs/defaultcollection">https://tfsserver:8080/tfs/defaultcollection</a></span>, </p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160;&#160; 3</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color: blue">new</span> System.Net.<span style="color: #2b91af">NetworkCredential</span>(<span style="color: #a31515">&quot;domain_name\\user_name&quot;</span>, <span style="color: #a31515">&quot;pwd&quot;</span>));</p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160;&#160; 4</span> collection.EnsureAuthenticated();</p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160;&#160; 5</span>&#160;</p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160;&#160; 6</span>&#160;<span style="color: green">// AuthorizedIdentity is Microsoft.TeamFoundation.Framework.Client.TeamFoundationIdentity</span></p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160;&#160; 7</span>&#160;<span style="color: #2b91af">Console</span>.Write(collection.AuthorizedIdentity.DisplayName);</p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160;&#160; 8</span>&#160;<span style="color: green">// returns user's display name </span></p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160;&#160; 9</span>&#160;</p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 10</span>&#160;<span style="color: #2b91af">Console</span>.Write(collection.AuthorizedIdentity.GetAttribute(<span style="color: #a31515">&quot;Domain&quot;</span>, <span style="color: #a31515">&quot;default&quot;</span>));</p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 11</span>&#160;<span style="color: green">// returns domain_name</span></p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 12</span>&#160;</p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 13</span>&#160;<span style="color: #2b91af">Console</span>.Write(collection.AuthorizedIdentity.GetAttribute(<span style="color: #a31515">&quot;Account&quot;</span>, <span style="color: #a31515">&quot;default&quot;</span>));</p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 14</span>&#160;<span style="color: green">// returns user_name</span></p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 15</span>&#160;</p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 16</span>&#160;<span style="color: #2b91af">Console</span>.Write(collection.AuthorizedIdentity.GetAttribute(<span style="color: #a31515">&quot;Mail&quot;</span>, <span style="color: #a31515">&quot;default&quot;</span>));<span style="color: #2b91af">&#160;</span></p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 17</span>&#160;<span style="color: green">// returns user’s email</span></p> </div>]]></content:encoded>
    </item>
    <item>
      <title>TFS2010: Getting connected in new object model</title>
      <link>https://docs.microsoft.com/archive/blogs/eugenez/tfs2010-getting-connected-in-new-object-model</link>
      <pubDate>Tue, 13 Apr 2010 23:39:13 GMT</pubDate>
      <dc:creator><![CDATA[Eugenez12]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/eugenez/2010/04/13/tfs2010-getting-connected-in-new-object-model/</guid>
      <description><![CDATA[When starting up with TFS 2010 object model, there are few gotchas to be aware of (especially if you...]]></description>
      <content:encoded><![CDATA[<p>When starting up with TFS 2010 object model, there are few gotchas to be aware of (especially if you did coding for TFS OM 2005/2008 in the past). See my <a href="https://blogs.msdn.com/eugenez/archive/2010/01/09/tfs2010-and-there-is-an-sdk-for-that.aspx" target="_blank"><strong>previous post</strong></a> for high-level details:</p>  <p>In 2008 one would establish connection to TFS as follows</p>  <div style="font-size: 10pt; background: white; color: black; font-family: courier new">   <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 1</span>&#160;<span style="color: blue">string</span>[] servers = <span style="color: #2b91af">RegisteredServers</span>.GetServerNames();</p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 2</span>&#160;</p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 3</span>&#160;<span style="color: green">// select one of the servers (in real life combo box?)</span></p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 4</span>&#160;<span style="color: blue">string</span> serverName = servers[0];</p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 5</span>&#160;</p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 6</span>&#160;<span style="color: #2b91af">TeamFoundationServer</span> server = <span style="color: blue">new</span> <span style="color: #2b91af">TeamFoundationServer</span>(serverName, </p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 7</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color: blue">new</span> System.Net.<span style="color: #2b91af">NetworkCredential</span>(userName, password));</p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 8</span>&#160;</p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 9</span> server.EnsureAuthenticated();</p> </div>  <p>In Team Foundation Server 2010 the code becomes:</p>  <div style="font-size: 10pt; background: white; color: black; font-family: courier new">   <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 1</span>&#160;<span style="color: #2b91af">RegisteredTfsCollection</span>[] projects = <span style="color: #2b91af">RegisteredTfsConnections</span>.GetProjectCollections();</p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 2</span>&#160;<span style="color: #2b91af">List&lt;</span><span style="color: blue">string</span>&gt; servers = <span style="color: blue">new</span> <span style="color: #2b91af">List&lt;</span><span style="color: blue">string</span>&gt;();</p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 3</span>&#160;<span style="color: blue">foreach</span> (<span style="color: #2b91af">RegisteredTfsCollection</span> collection <span style="color: blue">in</span> collections)</p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 4</span> {</p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 5</span>&#160;&#160;&#160; <span style="color: blue">if</span> (!collection.Offline)</p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 6</span>&#160;&#160;&#160;&#160;&#160; results.Add(collection.Uri.ToString());</p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 7</span> }</p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 8</span>&#160;</p>    <p style="margin: 0px"><span style="color: #2b91af">&#160;&#160; 9</span>&#160;<span style="color: green">// select one of the servers (in real life combo box?)</span></p>    <p style="margin: 0px"><span style="color: #2b91af">&#160; 10</span>&#160;<span style="color: blue">string</span> serverName = servers[0];</p>    <p style="margin: 0px"><span style="color: #2b91af">&#160; 11</span></p>    <p style="margin: 0px"><span style="color: #2b91af">&#160; 12</span>&#160;<span style="color: #2b91af">TfsTeamProjectCollection</span> server = <span style="color: blue">new</span> <span style="color: #2b91af">TfsTeamProjectCollection</span>(<span style="color: blue">new</span> <span style="color: #2b91af">Uri</span>(tfsServerName), </p>    <p style="margin: 0px"><span style="color: #2b91af">&#160; 13</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color: blue">new</span> System.Net.<span style="color: #2b91af">NetworkCredential</span>(userName, password));</p>    <p style="margin: 0px"><span style="color: #2b91af">&#160; 14</span>&#160;</p>    <p style="margin: 0px"><span style="color: #2b91af">&#160; 15</span> server.EnsureAuthenticated();</p> </div>  <p>Should be no big surprises considering the changes in 2010 – one server w\projects became multiple projects collections. One thing to be aware of is the change in the arguments you pass to constructor of <em>TfsTeamProjectCollection</em>; in 2005/2008 one was able to pass server name (i.e. “<em>tfserver</em>”) as retrieved by using <em>RegisteredServers</em> class. In 2010 that becomes impossible since the server may contain multiple collections; thus you have to pass full URI (e.g. “<em>https://tfsserver:8080/tfs/DefaultCollection</em>”).</p>]]></content:encoded>
    </item>
    <item>
      <title>TFS2010: And the tools are there too!</title>
      <link>https://docs.microsoft.com/archive/blogs/eugenez/tfs2010-and-the-tools-are-there-too</link>
      <pubDate>Sat, 09 Jan 2010 00:22:00 GMT</pubDate>
      <dc:creator><![CDATA[Eugenez12]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/eugenez/2010/01/09/tfs2010-and-the-tools-are-there-too/</guid>
      <description><![CDATA[In my previous post, I was talking about using making your custom tools ready for TFS 2010 with SDK....]]></description>
      <content:encoded><![CDATA[<P>In <A class="" href="https://blogs.msdn.com/eugenez/archive/2010/01/09/tfs2010-and-there-is-an-sdk-for-that.aspx" mce_href="https://blogs.msdn.com/eugenez/archive/2010/01/09/tfs2010-and-there-is-an-sdk-for-that.aspx">my previous post</A>, I was talking about using making your custom tools ready for TFS 2010 with SDK. But what about other tools, say you? And not to worry, here you go (and I included not only TFS but VS tools as well):</P>
<UL>
<LI><A href="https://visualstudiogallery.msdn.microsoft.com/en-us/0e69a28f-020c-488b-80b3-f4c89a20621d" mce_href="https://visualstudiogallery.msdn.microsoft.com/en-us/0e69a28f-020c-488b-80b3-f4c89a20621d"><STRONG>Team Foundation Server Power Tools for 2010 Beta 2</STRONG></A> are available </LI>
<LI><A href="https://visualstudiogallery.msdn.microsoft.com/en-us/f959ea32-5ac3-424a-a709-5001a158ebe8" mce_href="https://visualstudiogallery.msdn.microsoft.com/en-us/f959ea32-5ac3-424a-a709-5001a158ebe8"><STRONG>TFS MSSCCI provider for 2010 Beta 2</STRONG></A> is available </LI>
<LI><A href="https://blogs.msdn.com/sourceanalysis/archive/2010/01/04/stylecop-for-visual-studio-2010.aspx" mce_href="https://blogs.msdn.com/sourceanalysis/archive/2010/01/04/stylecop-for-visual-studio-2010.aspx"><STRONG>StyleCop for VS 2010 Beta 2</STRONG></A> is available&nbsp; </LI>
<LI><A href="https://weblogs.asp.net/nunitaddin/archive/2009/10/27/testdriven-net-3-0-alpha-support-for-visual-studio-2010-beta-2.aspx" mce_href="https://weblogs.asp.net/nunitaddin/archive/2009/10/27/testdriven-net-3-0-alpha-support-for-visual-studio-2010-beta-2.aspx"><STRONG>TestDriven.Net 3.0 Alpha for VS 2010 Beta 2</STRONG></A> is available</LI>
<LI><A href="https://www.attrice.info/blog/2010/01/03/team-foundation-sidekicks-2-4-release-2/" mce_href="https://www.attrice.info/blog/2010/01/03/team-foundation-sidekicks-2-4-release-2/"><STRONG>Team Foundation Sidekicks for 2010 Beta 2</STRONG></A> are available </LI></UL>
<P>Enjoy!</P>]]></content:encoded>
    </item>
    <item>
      <title>TFS2010: And there is an SDK for that!</title>
      <link>https://docs.microsoft.com/archive/blogs/eugenez/tfs2010-and-there-is-an-sdk-for-that</link>
      <pubDate>Fri, 08 Jan 2010 23:56:00 GMT</pubDate>
      <dc:creator><![CDATA[Eugenez12]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/eugenez/2010/01/08/tfs2010-and-there-is-an-sdk-for-that/</guid>
      <description><![CDATA[So may be now you have finally got your hands on Beta 2 of TFS 2010 (for example, using one of the...]]></description>
      <content:encoded><![CDATA[<P>So may be now you have finally got your hands on Beta 2 of TFS 2010 (for example, using one of the <A href="https://www.microsoft.com/downloads/details.aspx?FamilyID=9eb65c97-29c9-4d05-ae45-73d22ad4b86e&amp;displaylang=en" mce_href="https://www.microsoft.com/downloads/details.aspx?FamilyID=9eb65c97-29c9-4d05-ae45-73d22ad4b86e&amp;displaylang=en">excellent VHDs</A> prepared by <A href="https://www.mcwtech.com/blogs/brianr/post/Happy-Holidays-and-look-what-Santae28099s-brought-2009-edition.aspx" mce_href="https://www.mcwtech.com/blogs/brianr/post/Happy-Holidays-and-look-what-Santae28099s-brought-2009-edition.aspx">Brian Randell</A>) and it is time to see how your custom applications written for 2008 fare (do not worry, you will be fine!). Here are few notes that should make your life easier.</P>
<P>1. Starting with Visual Studio 2010, SDK does not include samples and documentation. TFS SDK is located on <A href="https://code.msdn.microsoft.com/TfsSdk" mce_href="https://code.msdn.microsoft.com/TfsSdk"><STRONG>Code Gallery</STRONG></A>, separately from VS SDK documentation.</P>
<P>2. The backward compatibility of the APIs in 2010 is very good; so if you had an application written against TFS 2008 OM the chances are it will compile and work. You will still have to change references to assemblies to 2010 versions. Additional things to keep in mind</P>
<UL>
<LI>You might want to know what version of the server you are working against. <A href="https://blogs.msdn.com/taylaf/archive/2010/01/05/determining-the-tfs-server-version-using-client-apis.aspx" mce_href="https://blogs.msdn.com/taylaf/archive/2010/01/05/determining-the-tfs-server-version-using-client-apis.aspx"><STRONG>This helpful post</STRONG></A> from <A href="https://blogs.msdn.com/taylaf" mce_href="https://blogs.msdn.com/taylaf">Taylor Lafrinere</A> provides the necessary details </LI>
<LI>While 2010 Beta 2 APIs signatures are mostly identical to those in 2008, RC and RTM will have breaking changes that might require changes to your code. <A href="https://blogs.msdn.com/granth/archive/2009/12/07/tfs2010-object-model-api-changes-after-beta-2.aspx" mce_href="https://blogs.msdn.com/granth/archive/2009/12/07/tfs2010-object-model-api-changes-after-beta-2.aspx"><STRONG>This post</STRONG></A> from <A href="https://blogs.msdn.com/granth" mce_href="https://blogs.msdn.com/granth">Grant Holliday</A> summarizes the changes </LI>
<LI>There were some classes that were made internal, and some classes that were reshuffled to different DLLs. You will know about those when you custom application does not compile </LI>
<LI>If you have used reflection, you are on your own. The chances are that you will have to do some more reflection in order to make it work in 2010 :) </LI></UL>
<P>3. New functionality available in 2010 is mostly related to the new features introduced, viz.</P>
<UL>
<LI>Project collections (see <A href="https://blogs.msdn.com/granth/archive/2009/12/07/tfs2010-object-model-api-changes-after-beta-2.aspx" mce_href="https://blogs.msdn.com/granth/archive/2009/12/07/tfs2010-object-model-api-changes-after-beta-2.aspx"><STRONG>a post</STRONG></A> from Grant for the summary) </LI>
<LI>Changes to version control (branches etc. - Microsoft.TeamFoundation.VersionControl.Client namespace has it all; also see an <STRONG>update</STRONG> below) </LI>
<LI>Hierarchical work items (see <A href="https://www.ewaldhofman.nl/post/2009/12/10/TFS-SDK-2010-e28093-Part-4-Create-a-new-User-Story-with-the-implementation-(Tasks)-and-test-scenarios-(Test-Case).aspx" mce_href="https://www.ewaldhofman.nl/post/2009/12/10/TFS-SDK-2010-e28093-Part-4-Create-a-new-User-Story-with-the-implementation-(Tasks)-and-test-scenarios-(Test-Case).aspx"><STRONG>a primer</STRONG></A> on the API from <A href="https://www.ewaldhofman.nl/" mce_href="https://www.ewaldhofman.nl">Ewald Hofman</A>) </LI>
<LI>Test related work items in MTLM (see <A href="https://www.ewaldhofman.nl/post/2009/12/10/TFS-SDK-2010-e28093-Part-5-e28093-Create-a-new-Test-Case-work-item.aspx" mce_href="https://www.ewaldhofman.nl/post/2009/12/10/TFS-SDK-2010-e28093-Part-5-e28093-Create-a-new-Test-Case-work-item.aspx"><STRONG>another primer</STRONG></A> from <A href="https://www.ewaldhofman.nl/" mce_href="https://www.ewaldhofman.nl">Ewald</A>) </LI></UL>
<P>So be adventurous and take Beta 2 for a ride! Oh, and most probably for a while you will have heterogeneous environment with 2008, 2010 or may be even 2005 clients etc. This post from WIT team blog will help in figuring out what will and will not work: <A href="https://blogs.msdn.com/teams_wit_tools/archive/2009/10/19/compatibility-matrix-for-2010-beta-2-team-foundation-server-to-team-explorer-2008-and-2005.aspx" mce_href="https://blogs.msdn.com/teams_wit_tools/archive/2009/10/19/compatibility-matrix-for-2010-beta-2-team-foundation-server-to-team-explorer-2008-and-2005.aspx">TFS Server 2010 Beta 2 vs. 2005/2008 TFS client</A>&nbsp; </P>
<P>And should you be in a tight corner (since currently existing documentation is somewhat meager) you might want to head to <A href="https://social.msdn.microsoft.com/Forums/en-US/tfsprerelease/threads" mce_href="https://social.msdn.microsoft.com/Forums/en-US/tfsprerelease/threads"><STRONG>TFS 2010 Beta 2 MSDN forum</STRONG></A>.</P>
<P><STRONG>Update:</STRONG> There is a good summary on Version Control API changes&nbsp;(that I forgot to mention) at <A class="" href="https://blogs.msdn.com/michalma" mce_href="https://blogs.msdn.com/michalma">Michal Malecki</A> blog: <A class="" href="https://blogs.msdn.com/michalma/archive/2009/06/15/version-control-api-changes-in-tfs-2010-part-i.aspx" mce_href="https://blogs.msdn.com/michalma/archive/2009/06/15/version-control-api-changes-in-tfs-2010-part-i.aspx"><STRONG>part 1</STRONG></A> and <A class="" href="https://blogs.msdn.com/michalma/archive/2009/06/16/version-control-api-changes-in-tfs-2010-part-ii.aspx" mce_href="https://blogs.msdn.com/michalma/archive/2009/06/16/version-control-api-changes-in-tfs-2010-part-ii.aspx"><STRONG>part 2</STRONG></A></P>]]></content:encoded>
    </item>
    <item>
      <title>TFS Destroy – friend or foe?</title>
      <link>https://docs.microsoft.com/archive/blogs/eugenez/tfs-destroy-friend-or-foe</link>
      <pubDate>Thu, 12 Nov 2009 23:24:59 GMT</pubDate>
      <dc:creator><![CDATA[Eugenez12]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/eugenez/2009/11/12/tfs-destroy-friend-or-foe/</guid>
      <description><![CDATA[While everyone else is blogging about VS 2010 Beta 2, I thought it still may be worth publishing...]]></description>
      <content:encoded><![CDATA[<p>While everyone else is blogging about <a href="https://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx"><strong>VS 2010 Beta 2</strong></a>, I thought it still may be worth publishing this post that talks about VS 2008 behavior (yes, the <em>old </em>release ;).</p>  <p>One of the features missing in VS 2005 and added in VS 2008 was <a href="https://msdn.microsoft.com/en-us/library/bb386005.aspx"><strong>destroy command</strong></a>; people wanted to get rid of the source control artifacts for good and were unable to do so.</p>  <p>Interestingly, once the command become available it did not become too popular. Come think of it, there are very few cases where one can afford permanently deleting data; after all, source code is most valuable asset any software company has.</p>  <p>But should you decide on using destroy command, there are few important points to keep in mind:</p>  <p>1. Before executing <em>destroy</em> command, you might consider deleting item first. Leaving the item in “quarantine” while deleted for a week or so makes sure nobody uses the item (for example, as part of automated build) will miss it once it is completely gone. And once you are ready to delete it, use <strong>/preview</strong> switch to double check what files you are going to permanently wiped out</p>  <p>2. If you use destroy, destroy <em>all</em> versions of the item and do not fall for <strong>/keephistory</strong> option (with or without <strong>/stopat</strong> flag): </p>  <div style="font-weight: bold; color: white; font-family: courier; background-color: black">   <pre><p>tf destroy $/Project/FolderOldName;C123 /stopat:C156 /keephistory</p></pre>
</div>

<p>This option would destroy all (or some as in example above) versions of the item while retaining item’s history. It may be tempting to clean up database from old revisions leaving the history intact; the problem with this usage is that you will not be able to distinguish the revisions deleted when viewing the item’s history. That may lead to the following message when trying to view seemingly valid history:</p>

<p><img src="https://www.attrice.info/images/blog/destroy_keephistory.png" /> </p>

<p>3. When you execute destroy command, data is not deleted from DB immediately. There is <strong>TFSVersionControl Administration</strong> <strong>job</strong> running on TFS Data Tier at scheduled interval that takes care of actual DB purging. You can trigger the job run immediately by using <strong>/startcleanup </strong>option (or running on SQL Server manually). The job does not take care of cleaning up the warehouse,&#160; it will get updated at warehouse processing scheduled intervals.</p>

<p>On a personal note, my usage of destroy was limited to removing sample &amp; test TFS projects content; I never was able to get enough justification to permanently delete source code, however unused it may be. But your mileage may differ – if you do decide to get into destruction business, there are couple of very useful resources on TFS <em>destroy</em> that are not immediately discoverable through simple search; <a href="https://msdn.microsoft.com/en-us/library/bb399141.aspx"><strong>summary MSDN article</strong></a> and screencast <a href="https://msdn.microsoft.com/en-us/teamsystem/bb975151.aspx" target="_blank"><strong>How Do I: Use the TF Destroy Command in Visual Studio Team System 2008? </strong></a>by Richard Hundhausen. </p>]]></content:encoded>
    </item>
  </channel>
</rss>