<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Richard Murillo on Software Development : Visual Studio</title><link>http://blogs.msdn.com/rimuri/archive/tags/Visual+Studio/default.aspx</link><description>Tags: Visual Studio</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Easy String to Resource file refactoring</title><link>http://blogs.msdn.com/rimuri/archive/2009/02/10/easy-string-to-resource-file-refactoring.aspx</link><pubDate>Tue, 10 Feb 2009 21:47:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9411101</guid><dc:creator>Richard Murillo</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/rimuri/comments/9411101.aspx</comments><wfw:commentRss>http://blogs.msdn.com/rimuri/commentrss.aspx?PostID=9411101</wfw:commentRss><wfw:comment>http://blogs.msdn.com/rimuri/rsscomments.aspx?PostID=9411101</wfw:comment><description>&lt;P&gt;During the development of internal tools we often have to stop working on features and clean up after ourselves to ensure that strings and such are embedded in the appropriate resource files and not hard coded into our applications. This can be a very tedious and time consuming process. Luckily there is a refactor extension that makes this very easy.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;Resource&amp;nbsp;Refactoring Tool&amp;nbsp;&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Resource Refactoring Tool provides developers an easy way to extract hard coded strings from the code to resource files. &lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;Features for Resource Refactoring Tool&lt;BR&gt;&lt;BR&gt;&lt;/STRONG&gt;Works with C#, VB.Net languages. Supports all project types that ships with Visual Studio 2005 including web sites and web application projects. &lt;/EM&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;EM&gt;A preview window to show changes. &lt;/EM&gt;
&lt;LI&gt;&lt;EM&gt;Finds other instances of the text being replaced in the project automatically. &lt;/EM&gt;
&lt;LI&gt;&lt;EM&gt;Lists existing resources by their similarity level to the text being replaced. &lt;/EM&gt;
&lt;LI&gt;&lt;EM&gt;Automatically replaces hard coded string with a reference to resource entry. &lt;/EM&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;More information at &lt;A href="http://www.codeplex.com/ResourceRefactoring"&gt;http://www.codeplex.com/ResourceRefactoring&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9411101" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/rimuri/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.msdn.com/rimuri/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>Visual Studio 2008 Released</title><link>http://blogs.msdn.com/rimuri/archive/2007/11/26/visual-studio-2008-released.aspx</link><pubDate>Mon, 26 Nov 2007 23:05:37 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6534091</guid><dc:creator>Richard Murillo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/rimuri/comments/6534091.aspx</comments><wfw:commentRss>http://blogs.msdn.com/rimuri/commentrss.aspx?PostID=6534091</wfw:commentRss><wfw:comment>http://blogs.msdn.com/rimuri/rsscomments.aspx?PostID=6534091</wfw:comment><description>&lt;p&gt;After months of waiting, I can finally say that Visual Studio 2008 was released last week. There are hundreds of new features, language enhancements, and technology integrations in this version. To help you get your head around what is new in Visual Studio 2008 and .NET Framework 3.5, &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=8bdaa836-0bba-4393-94db-6c3c4a0c98a1&amp;amp;DisplayLang=en"&gt;get the training kit from Microsoft download center&lt;/a&gt;. 
&lt;/p&gt;&lt;p&gt;Some new features that I am excited about:
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Visual Studio performance improvements
&lt;/li&gt;&lt;li&gt;AJAX integration with javascript intellisense
&lt;/li&gt;&lt;li&gt;Cider integration (WPF visualizer)
&lt;/li&gt;&lt;li&gt;Multi-core builds
&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/windowsserver2008/default.mspx"&gt;Windows Server 2008&lt;/a&gt; / &lt;a href="http://www.microsoft.com/sql/2008/default.mspx"&gt;SQL Server 2008&lt;/a&gt; support (TFS)
&lt;/li&gt;&lt;li&gt;Vista UAC compliance
&lt;/li&gt;&lt;li&gt;Continuous integration
&lt;/li&gt;&lt;li&gt;Web Access
&lt;/li&gt;&lt;li&gt;Integration of Database Edition (VSTS SKU)
&lt;/li&gt;&lt;li&gt;T-SQL Static code analysis
&lt;/li&gt;&lt;li&gt;SQL Dependency tree visualization
&lt;/li&gt;&lt;li&gt;Schema reporting for documentation
&lt;/li&gt;&lt;li&gt;T-SQL refactoring
&lt;/li&gt;&lt;li&gt;New designers for SOA scenarios
&lt;/li&gt;&lt;li&gt;Hotpathing (tell me where perf in my application sucks)
&lt;/li&gt;&lt;li&gt;LINQ&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6534091" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/rimuri/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.msdn.com/rimuri/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/rimuri/archive/tags/LINQ+to+SQL+_2800_DLINQ_2900_/default.aspx">LINQ to SQL (DLINQ)</category></item><item><title>Why moving work offshore fails </title><link>http://blogs.msdn.com/rimuri/archive/2007/04/20/why-moving-work-offshore-fails.aspx</link><pubDate>Fri, 20 Apr 2007 19:19:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2208855</guid><dc:creator>Richard Murillo</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/rimuri/comments/2208855.aspx</comments><wfw:commentRss>http://blogs.msdn.com/rimuri/commentrss.aspx?PostID=2208855</wfw:commentRss><wfw:comment>http://blogs.msdn.com/rimuri/rsscomments.aspx?PostID=2208855</wfw:comment><description>&lt;P&gt;Not to say that all offshore projects fail, I have both been a contributor and leader in projects that have been a great success and those that have been complete failures. Each project had its own reasons for failing and&amp;nbsp;were defined by the business (e.g. why are you sending it offshore to begin with) that typically include&amp;nbsp;cost savings, quality, increased turnaround in deliverables,&amp;nbsp;and customer satisfaction--all of which&amp;nbsp;are key drivers for moving work offshore, but in doing so there are key areas your business must pay close attention to. &lt;/P&gt;
&lt;P&gt;According to Gartner, businesses will spend more than $50 billion USD on offshore and "near-shore" outsourcing by 2007 and many projects will fail because of poor planning. Gartner also maintains that there are benefits achieved by those businesses that successfully outsource their non-core processes, however, rewards will not be instant. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Reasons for Failure &lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Often times, the effort and time involved in communicating with offshore team members and maintaining that relationship is underestimated. In my experiences with offshore teams to date, there has often been a lack of key items to complete awarded work effectively (like infrastructure, soft skills, planning). Additionally, coordinating between the teams requires longer hours, detailed planning, and cultural training—all of which are more expensive when working with offshore than with your own staff and can, as I have observed here, lead to lower morale and reduced deliverable output. Gartner also observes that lack of productivity in the offshore is also an issue for several reasons including high staff turnover and skill levels, especially in highly competitive markets such as Bangalore and Hyderabad, India. &lt;/P&gt;
&lt;P&gt;Much like the dot com days, new programmers coming into the field of work are inexperienced, attaining only the necessary core skills for them to receive a job in this field and often struggle with ambiguities in specification or shifting directives. As such, the teams typically do not operate with clear processes and depend on the competence and heroics of those more experienced and not on the use of proven processes. In spite of the chaos, these teams often produce usable work products; however, they frequently exceed the budget and schedule. More often than not these teams over commit, abandon any established process in times of chaos, and may not be able to repeat past successes again. &lt;/P&gt;
&lt;P&gt;What's more, senior executives are not involved to keep strategy on track and morale high—they are only in the picture when a significant escalation occurs or to sign a new deal. As I mentioned in my &lt;A class="" href="http://blogs.msdn.com/rimuri/archive/2007/04/03/outsourced-projects-on-using-visual-studio-team-system.aspx" target=_blank mce_href="http://blogs.msdn.com/rimuri/archive/2007/04/03/outsourced-projects-on-using-visual-studio-team-system.aspx"&gt;previous entry&lt;/A&gt;, in order for an offshore deal to succeed there needs to be a good level of communication between all parties. Requirements, goals, and expectations have to be defined clearly and in detail. Your onshore managers need to explain to the coordinating staff why the work has been sent offshore and what benefits are expected. &lt;/P&gt;
&lt;P&gt;More often than not, the cultural differences will come into play creating havoc for the project; classic incarnations of this include not questioning authority and just pressing forward by the offshore team. All too many times do we find out late that guidance or requirements had been ignored for cross cutting to please the schedule rather than announcing a slip. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;How can Visual Studio Team System help? &lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Gartner advises companies that plan on offshoring work to figure out their IT process maturity and identify gaps in your process. As previously mentioned, it is important to set all expectations clearly up front with your vendor. When using Visual Studio 2005 with Team Foundation Server, several mechanisms out of box enable teams to work effectively in these environments: &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Process: &lt;/STRONG&gt;out of the box, Visual Studio Team Foundation server includes &lt;A href="http://msdn2.microsoft.com/en-us/teamsystem/aa718802.aspx" mce_href="http://msdn2.microsoft.com/en-us/teamsystem/aa718802.aspx"&gt;MSF for CMMI Process Improvement Level 3&lt;/A&gt; and &lt;A href="http://msdn2.microsoft.com/en-us/teamsystem/aa718801.aspx" mce_href="http://msdn2.microsoft.com/en-us/teamsystem/aa718801.aspx"&gt;MSF for Agile Development&lt;/A&gt; work item templates. By utilizing the templates and the process behind them, teams can effectively work across physical boundaries with increased confidence and transparency, allowing software development activities to be predictable and success repeatable.&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Communication:&lt;/STRONG&gt; Visual Studio Team System facilitates the transparency between individuals and teams with work items, a shared team portal, integrated change management, and a common data repository. The availability of information, and insight into an individual's progress, creates a more unified work environment regardless of physical location. Project managers can stay informed on an individual's progress without having to visit each individual—having real time information about each individual's work and their progress allows project managers to create precise schedules and report more accurately to management&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Productivity:&lt;/STRONG&gt; utilizing the common repository, managers and leads can answer common questions such as: What's in the current build that QA can test today; are requirements being met; are my teams adhereing to quality standards; is the product ready. Further, it provides the single team portal for integrating source code, issue tracking, project plans, vision statements and others that are critical assets to a project team.&lt;/LI&gt;&lt;/UL&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2208855" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/rimuri/archive/tags/Team+Foundation+Server/default.aspx">Team Foundation Server</category><category domain="http://blogs.msdn.com/rimuri/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>Reusable MSBuild Sandcastle Targets File</title><link>http://blogs.msdn.com/rimuri/archive/2006/10/30/reusable-msbuild-sandcastle-targets-file.aspx</link><pubDate>Tue, 31 Oct 2006 03:24:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:905088</guid><dc:creator>Richard Murillo</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/rimuri/comments/905088.aspx</comments><wfw:commentRss>http://blogs.msdn.com/rimuri/commentrss.aspx?PostID=905088</wfw:commentRss><wfw:comment>http://blogs.msdn.com/rimuri/rsscomments.aspx?PostID=905088</wfw:comment><description>&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: Calibri; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'"&gt;Based on a past post, I have an external targets file you can place in your $(MSBuildExtensionsPath) folder (attached in zip).&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;You can call it like this:&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Consolas"&gt;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: maroon; FONT-FAMILY: Consolas"&gt;Import&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Consolas"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: Consolas"&gt;Project&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Consolas"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas"&gt;"&lt;SPAN style="COLOR: blue"&gt;$(MSBuildExtensionsPath)\Sandcastle.targets&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;/&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Consolas"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: maroon; FONT-FAMILY: Consolas"&gt;Target&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Consolas"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: Consolas"&gt;Name&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Consolas"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas"&gt;"&lt;SPAN style="COLOR: blue"&gt;AfterCompile&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Consolas"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: maroon; FONT-FAMILY: Consolas"&gt;CallTarget&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Consolas"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: Consolas"&gt;RunEachTargetSeparately&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Consolas"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas"&gt;"&lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;Targets&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;DocumentCLR&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;ContinueOnError&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;false&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Consolas"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: maroon; FONT-FAMILY: Consolas"&gt;OnError&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Consolas"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: Consolas"&gt;ExecuteTargets&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Consolas"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas"&gt;"&lt;SPAN style="COLOR: blue"&gt;OnBuildBreak;&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Consolas"&gt;&amp;nbsp; &amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: maroon; FONT-FAMILY: Consolas"&gt;Target&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Consolas"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Consolas"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: maroon; FONT-FAMILY: Consolas"&gt;Target&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Consolas"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: Consolas"&gt;Name&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Consolas"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas"&gt;"&lt;SPAN style="COLOR: blue"&gt;DocumentCLR&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Consolas"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: maroon; FONT-FAMILY: Consolas"&gt;CallTarget&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Consolas"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: Consolas"&gt;Targets&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Consolas"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas"&gt;"&lt;SPAN style="COLOR: blue"&gt;SandcastleDocument&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;ContinueOnError&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;false&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt; /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Consolas"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: maroon; FONT-FAMILY: Consolas"&gt;MakeDir&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Consolas"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: Consolas"&gt;Condition&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Consolas"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas"&gt;"&lt;SPAN style="COLOR: blue"&gt;!Exists('$(BinariesRoot)\Documentation')&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;Directories&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;$(BinariesRoot)\Documentation&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;ContinueOnError&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;false&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt; /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Consolas"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: maroon; FONT-FAMILY: Consolas"&gt;Copy&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Consolas"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: Consolas"&gt;SourceFiles&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Consolas"&gt;=&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas"&gt;"&lt;SPAN style="COLOR: blue"&gt;$(SandcastleWorkingDirectory)\Output\$(SandcastleDocumentationName).chm&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;DestinationFiles&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;$(BinariesRoot)\Documentation\$(SandcastleDocumentationName).chm&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR: red"&gt;ContinueOnError&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;=&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;false&lt;/SPAN&gt;"&lt;SPAN style="COLOR: blue"&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Consolas"&gt;&amp;nbsp; &amp;lt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: maroon; FONT-FAMILY: Consolas"&gt;Target&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Consolas"&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="COLOR: #1f497d"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;The following is configuration from my msbuild response file:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas"&gt;/p:SandcastleDocumentationName=MyProjectDocumentation&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas"&gt;/p:SandcastleConfiguration=C:\YOUR\CONFIG\sandcastle.config&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas"&gt;/p:SandcastleDocumentationOutput=$(BinariesRoot)\Documentation&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas"&gt;/p:SandcastleDependencies="%windir%\Microsoft.NET\Framework\v2.0.50727\*.dll,C:\YOUR\Dependencies\*.dll,%windir%\assembly\GAC_MSIL\Microsoft.VisualStudio.QualityTools.UnitTestFramework\8.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas"&gt;/p:SandcastleHelpGeneration=CHM&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Consolas"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: Calibri; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'"&gt;Note: tested with build 2.0.2426.28539&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=905088" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/rimuri/attachment/905088.ashx" length="1269" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/rimuri/archive/tags/Team+Foundation+Server/default.aspx">Team Foundation Server</category><category domain="http://blogs.msdn.com/rimuri/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>I'm on Channel9!</title><link>http://blogs.msdn.com/rimuri/archive/2006/07/26/VisualStudioTeamSystemMicrosoftIT.aspx</link><pubDate>Thu, 27 Jul 2006 00:50:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:679511</guid><dc:creator>Richard Murillo</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/rimuri/comments/679511.aspx</comments><wfw:commentRss>http://blogs.msdn.com/rimuri/commentrss.aspx?PostID=679511</wfw:commentRss><wfw:comment>http://blogs.msdn.com/rimuri/rsscomments.aspx?PostID=679511</wfw:comment><description>&lt;P&gt;Yay!&lt;/P&gt;
&lt;P&gt;I'm on the front page of &lt;A href="http://channel9.msdn.com"&gt;Channel9&lt;/A&gt;&amp;nbsp;with an interview about using Visual Studio Team System in MSIT's Legal group.&lt;/P&gt;
&lt;P&gt;Full link for your reference: &lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;A href="http://channel9.msdn.com/showpost.aspx?postid=220125"&gt;http://channel9.msdn.com/showpost.aspx?postid=220125&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=679511" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/rimuri/archive/tags/Team+Foundation+Server/default.aspx">Team Foundation Server</category><category domain="http://blogs.msdn.com/rimuri/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>Key Design Scenarios with Visual Studio Team System and Team Foundation Server - System, Application, Resource Reuse</title><link>http://blogs.msdn.com/rimuri/archive/2006/05/02/584404.aspx</link><pubDate>Tue, 02 May 2006 21:26:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:584404</guid><dc:creator>Richard Murillo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/rimuri/comments/584404.aspx</comments><wfw:commentRss>http://blogs.msdn.com/rimuri/commentrss.aspx?PostID=584404</wfw:commentRss><wfw:comment>http://blogs.msdn.com/rimuri/rsscomments.aspx?PostID=584404</wfw:comment><description>&lt;DIV align=left&gt;In order to effectively execute an IT strategy a&amp;nbsp;roadmap must be created to&amp;nbsp;contain and identify what common areas exist for the business' solution that could be leveraged by other systems in the enterprise or organization; or which capabilities the solution can leverage. &lt;/DIV&gt;
&lt;DIV align=left&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV align=left&gt;Typically architects will draw their solution design on a whiteboard, and link dependant systems that way. The key problem with that is there are a number of settings and data that are required on each node that can't easily be placed on the whiteboard. In Visual Studio 2005 Architect and Team Suite SKUs architects can go beyond the whiteboard and use the distributed system diagramming tool&amp;nbsp;in Visual Studio 2005.&lt;/DIV&gt;
&lt;DIV align=left&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV align=left&gt;&lt;IMG title="DSL With Team Architect" style="WIDTH: 727px; HEIGHT: 407px" tabIndex=-1 height=406 alt="" src="http://rjm.ath.cx/DistSystem.JPG" width=727&gt;&lt;/DIV&gt;
&lt;DIV align=left&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV align=left&gt;From this diagram the architect can update how the distributed systems are defined in a solution. Opportunities for reuse can be identified and the overall distributed system architecture can be changed quickly and easily. Then, after baseline,&amp;nbsp;the architect can have Visual Studio 2005 build the stubs for these services and applications with definitions and attributes set at this aggregate level. The diagram also serves as documentation for technical requirements and can be updated after the solution is though with development to represent as-built.&lt;/DIV&gt;
&lt;DIV align=left&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV align=left&gt;The key idea in all of this is we begin with the end in mind and developing our IT solution to business needs. We can use these diagrams to form views of our solution--other views available in VSTS include the system designer (a drill down into each node above), class designer (a further drill down into a visual view of the code in a system), the logical datacenter designer (provides a visual representation of the desired deployment locations), and the deployment designer (creates entire deployment plan).&lt;/DIV&gt;
&lt;DIV align=left&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV align=left&gt;As I mentioned before, it is imperative that architects identify where existing systems or their own systems could be re-used by other areas of the business to reduce cost and improve ROI. The solution design, application design, and web service endpoint design are all key to determine what resources are available and which are needed and ultimately act as inputs to those components design or re-design to suite a more generic purpose.&lt;/DIV&gt;
&lt;DIV id=CSBloggerSig&gt;&lt;/DIV&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=584404" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/rimuri/archive/tags/Team+Foundation+Server/default.aspx">Team Foundation Server</category><category domain="http://blogs.msdn.com/rimuri/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>Visual Studio Team Foundation Server Feature Requests</title><link>http://blogs.msdn.com/rimuri/archive/2006/04/28/584461.aspx</link><pubDate>Fri, 28 Apr 2006 10:59:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:584461</guid><dc:creator>Richard Murillo</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/rimuri/comments/584461.aspx</comments><wfw:commentRss>http://blogs.msdn.com/rimuri/commentrss.aspx?PostID=584461</wfw:commentRss><wfw:comment>http://blogs.msdn.com/rimuri/rsscomments.aspx?PostID=584461</wfw:comment><description>&lt;DIV&gt;I find it difficult to manage many Shared Queries in the work item tracker of VSTF. Sometimes I want to save my ad-hoc query for distribution to a small set of people (maybe just a peer even), but find no way to really make that easy except for sharing the query with the entire team. Even there, you could have hundreds of queries with no real way to group them, so you have to get creative with the naming.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Scenario: I am in a meeting and I need to quickly query WIT to respond to a question. If I do not have an instance of Visual Studio running on my laptop, I would need to start one up (alternate: MSTSC in to my primary development workstation and open a new VSTS instance there) and wait for it to connect to VSTF. Then I would need to hunt down the query, or create a new query based on the criteria, then wait for the results. After I get my results and present them verbally, Bob, a peer developer, also wants to see the results and other various details that I didn't explicitly communicate in my answer. I would have to save my query as a shared query and give him the name so he could hunt it down.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Features I want:&lt;/DIV&gt;
&lt;OL style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type=1 NDListNewStart="true"&gt;
&lt;LI&gt;An easy way to share WIQL queries with team members as an external file that can be executed by anyone that has read access to the team foundation server. 
&lt;UL style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type=disc NDListNewStart="true"&gt;
&lt;LI&gt;Value Propositions 
&lt;UL style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type=disc NDListNewStart="true"&gt;
&lt;LI&gt;Queries can be shared easily with users who do not actively watch a VSTF WIT database 
&lt;LI&gt;Queries can be stored outside of VSTF (email, SharePoint, etc.)&lt;BR&gt;&lt;EM&gt;Update: this is possible in a limited fashion and is hidden away. When creating a VSTS query, you can File -&amp;gt; Save As... to save it as a file directly. You cannot, however, export an existing query directly to a file. You must open the query, modify it, change it back to the way it was (i.e. add a clause then remove it) then do a File -&amp;gt; Safe As... and save it as a file.&lt;/EM&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;
&lt;LI&gt;A way to organize the work item queries into folders and, for shared queries,&amp;nbsp;adjust permissions on a folder level based on TFS or Windows security group &lt;/LI&gt;
&lt;LI&gt;
&lt;UL style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type=disc NDListNewStart="true"&gt;
&lt;LI&gt;Value Propositions: 
&lt;UL style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type=disc NDListNewStart="true"&gt;
&lt;LI&gt;Enhanced organization allows users to find relevant information quickly 
&lt;LI&gt;Security lock down can prevent unauthorized editing of a query (i.e. only the triage team can create, update, or delete triage queries)&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;Functionality to search by query name, creator, last updated, etc. 
&lt;UL style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type=disc NDListNewStart="true"&gt;
&lt;LI&gt;Value Proposition: 
&lt;UL style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type=disc NDListNewStart="true"&gt;
&lt;LI&gt;If my team instance has many WIT folders or queries I may need to locate a query quickly and easily 
&lt;LI&gt;May wish to check for duplicate query name or search for a query that already has similar functionality that I can copy then modify for my purposes (find query from last release containing known issues and copy that to a new query so I can change the version, etc. for a new known issues query).&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Goals:&lt;/DIV&gt;
&lt;OL style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type=1&gt;
&lt;LI&gt;Users can update existing VSTF, or create new VSTF instances and/or installations without breaking changes&lt;/LI&gt;&lt;/OL&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;IMHO if we coupled this with a &lt;A HREF="/rimuri/archive/2006/03/07/544990.aspx"&gt;command line tool &lt;/A&gt;that I previously proposed some users would not need&amp;nbsp;Visual Studio or Office&amp;nbsp;at all to manage the queries which would be nice.&lt;/DIV&gt;
&lt;DIV id=CSBloggerSig&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;gh9zRYb9z3NLEeu&lt;/DIV&gt;&lt;!-- gh9zRYb9z3NLEeu --&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=584461" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/rimuri/archive/tags/Team+Foundation+Server/default.aspx">Team Foundation Server</category><category domain="http://blogs.msdn.com/rimuri/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>Key Design Scenarios with Visual Studio Team System and Team Foundation Server</title><link>http://blogs.msdn.com/rimuri/archive/2006/04/26/584403.aspx</link><pubDate>Wed, 26 Apr 2006 21:23:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:584403</guid><dc:creator>Richard Murillo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/rimuri/comments/584403.aspx</comments><wfw:commentRss>http://blogs.msdn.com/rimuri/commentrss.aspx?PostID=584403</wfw:commentRss><wfw:comment>http://blogs.msdn.com/rimuri/rsscomments.aspx?PostID=584403</wfw:comment><description>&lt;div&gt;First I want to start out with some observations:&lt;/div&gt;
&lt;ol style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type="1" NDListNewStart="true"&gt;&lt;li&gt;The Business expects IT to provide a technology advantage with the right capabilities at the right price at the right time&lt;/li&gt;&lt;li&gt;A business strategy alone is not sufficient for IT planning&lt;/li&gt;&lt;ol style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type="1" NDListNewStart="true"&gt;&lt;li&gt;Business rarely asks for IT infrastructure capabilities&lt;/li&gt;&lt;ol style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type="1" NDListNewStart="true"&gt;&lt;li&gt;Every business capability is highly dependant on the IT infrastructure&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;li&gt;It is difficult to make a business case without a strategy except when there is obvious pain&lt;/li&gt;&lt;/ol&gt;&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Given that state of things most solutions are reactive and the solutions that are delivered are often tightly coupled with a business process so other processes that require similar functionality will either have to copy/paste code or build it themselves--either way it's a losing battle; we are shooting ourselves in the foot by driving up maintenance costs and reducing ROI. Then when something goes wrong we act--the entire notion of reactive maintenance and augmentation is an issue itself and this is where architecture planning and the new visualization tools of VSTS come into play.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;A few of the key concepts to architecture planning revolve around clarity of business needs and IT objectives. However, more importantly IT needs to &lt;strong&gt;anticipate&lt;/strong&gt; business needs to meet expectations (right solution, for the right price, at the right time). To do this we must understand our objectives and best practices to help us choose the right approach (direction and design patterns).&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;To understand and anticipate business needs we need to identify what capabilities the business might need for various aspects of conducting their business. Next we need to answer several key questions about those needs:&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type="disc"&gt;&lt;li&gt;For each capability what will change over time?&lt;/li&gt;&lt;ul style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type="disc"&gt;&lt;li&gt;Who&lt;/li&gt;&lt;li&gt;Where&lt;/li&gt;&lt;li&gt;What&lt;/li&gt;&lt;li&gt;When&lt;/li&gt;&lt;li&gt;How&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Once we understand what the business needs, we can create an IT roadmap for those needs, identifying success factors, objectives, and design principles. &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;In the future I will publish a series of posts around the following key design scenarios:&lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type="disc"&gt;&lt;li&gt;&lt;div align="left"&gt;Contract-first design&lt;/div&gt;
&lt;/li&gt;&lt;li&gt;&lt;div align="left"&gt;Scenario-driven design&lt;/div&gt;
&lt;/li&gt;&lt;li&gt;&lt;div align="left"&gt;Business process-driven design&lt;/div&gt;
&lt;/li&gt;&lt;li&gt;&lt;div align="left"&gt;Framework design&lt;/div&gt;
&lt;/li&gt;&lt;li&gt;&lt;div align="left"&gt;System, application, resource reuse&lt;/div&gt;
&lt;/li&gt;&lt;li&gt;&lt;div align="left"&gt;Requirements Traceability&lt;/div&gt;
&lt;/li&gt;&lt;li&gt;&lt;div align="left"&gt;Design patterns, guidance, prescriptive architecture&lt;/div&gt;
&lt;/li&gt;&lt;li&gt;&lt;div align="left"&gt;Cross-lifecycle and Team Collaboration&lt;/div&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;div id="CSBloggerSig"&gt;&lt;/div&gt;
&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=584403" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/rimuri/archive/tags/Team+Foundation+Server/default.aspx">Team Foundation Server</category><category domain="http://blogs.msdn.com/rimuri/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>Strategic Architecture solutions are a way of thinking</title><link>http://blogs.msdn.com/rimuri/archive/2006/04/21/580935.aspx</link><pubDate>Sat, 22 Apr 2006 01:39:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:580935</guid><dc:creator>Richard Murillo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/rimuri/comments/580935.aspx</comments><wfw:commentRss>http://blogs.msdn.com/rimuri/commentrss.aspx?PostID=580935</wfw:commentRss><wfw:comment>http://blogs.msdn.com/rimuri/rsscomments.aspx?PostID=580935</wfw:comment><description>&lt;DIV&gt;Expanding on my &lt;A HREF="/rimuri/archive/2006/04/19/579322.aspx"&gt;previous post on accountability&lt;/A&gt;, fostering alignment across the enterprise is really driven from multiple angles: market opportunity, technology opportunity, capability and business operations--all which create a business strategy. In that are 5 main tenets: effectiveness, competitiveness, agility, accountability, and efficiency.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;One of the key objectives of Visual Studio Team Foundation server is to create an environment where teams can collaborate and leverage past experience;&amp;nbsp;this&amp;nbsp;is where I think the real value of IT lies. A key item I have begun to include in my documents is that we should have multiple value propositions for each objective--a value proposition from the business and one from IT. VSTF allows us to foster collaboration and create value, but we still have to measure&amp;nbsp;the effectiveness in translating business vision and strategy. Enter &lt;A href="http://www.balancedscorecard.org/"&gt;Balanced Score Cards&lt;/A&gt;.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;BSCs are about clarity and turning vision and strategy into action and providing feedback on those actions. Most importantly, BSCs are more than just about profit and cost reduction, which is great, but only a segment of issues. BSCs allow for balance:&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="PADDING-LEFT: 50px"&gt;"The balanced scorecard retains traditional financial measures. But financial measures tell the story of past events, an adequate story for industrial age companies for which investments in long-term capabilities and customer relationships were not critical for success. These financial measures are inadequate, however, for guiding and evaluating the journey that information age companies must make to create future value through investment in customers, suppliers, employees, processes, technology, and innovation."&lt;/DIV&gt;
&lt;DIV style="PADDING-LEFT: 50px"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Every project has basic elements that can be used by BSCs: customers, budget, learning opportunities and growth, customer satisfaction, etc. and as such, architecture should be mapped to those elements. Visual Studio Team System Architect and Team Suite SKUs include some great visualization tools to provide a visual element to our complex systems,&amp;nbsp;such as a datacenter view and code entity relationships. &lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;In order for projects and feature teams to collaborate effectively, first they must identify which goals are shared. Those goals must then be mapped back to business strategy in a way that provides clarity. Since most human beings are visually oriented, the addition of visual views of our systems allow us to quickly and succulently (a picture is worth a thousand words) describe and recognize reusable technical areas. However,&amp;nbsp;in order to successfully provide shared systems or components, one must leverage standards that exist (global, industry, team, project, etc.),&amp;nbsp;focus on key integration requirements,&amp;nbsp;as well as use&amp;nbsp;extensibility models and OOP techniques to handle special cases. This ensures that components are developed against a clear set of goals that is transparent to everyone. Other projects&amp;nbsp;then can use these views, which can be exported as images, to identify if and where the components or services provide value to their objectives during their envisioning and planning phases.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;As we shift into this kind of thinking we are placing more and more emphasis on process, that is, creating deliverables consistently and reliably whether it's a process to support the application, a business-oriented process (such as a human to human workflow), or strategic planning. There are several key areas we can focus on to improve process efficiency such as having a managed workflow, minimal variation in our processes, or stakeholder/participant insight. &lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;One key item to realize when thinking about how this architecture decision could be useful in the future is to be aware that future changes should not hurt. This can be done through encapsulation which then allow improvements to be implemented with little overall pain to the service or component itself and to other applications that are dependent on it.&amp;nbsp;It is&amp;nbsp;through encapsulation that you can standardize how instances of your process, component, system, service,&amp;nbsp;etc. &amp;nbsp;are created or invoked, and automatically test normalized user scenarios to provide quality and consistency. With these scenarios you can derive values for various metrics, such as performance, which are reflected in the BSC.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="PADDING-LEFT: 50px"&gt;Example&lt;/DIV&gt;
&lt;DIV style="PADDING-LEFT: 50px"&gt;You analyze a high priority user scenario and see that in the workflow there are a number of calls to your web service that reduce the responsiveness of the calling application due to the overhead of running the HTTP request and parsing the response. You then optimize this scenario by reducing the amount of fine grained calls to your service by providing a coarse grained interface to be used by calling applications.&lt;/DIV&gt;
&lt;DIV style="PADDING-LEFT: 50px"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;As teams adopt these practices the organization drives toward excellence by implementing consistent best practices, optimizing return on investments (ROI), and&amp;nbsp;increasing communication by collaborating, which is&amp;nbsp;eased by a consistent context for exchange of information. The dependency of another application to your own &lt;A HREF="/rimuri/archive/2006/04/19/579322.aspx"&gt;forces quality up&lt;/A&gt;&amp;nbsp;and dissolves team indifference.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Key Take-Aways&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;EM&gt;Shared components and services significantly improve communication and alignment with business objectives&lt;/EM&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;UL style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type=disc&gt;
&lt;LI&gt;In order to drive the need for dependency on a component, it must clearly communicate its value propositions and be integral to the value chain of another project
&lt;LI&gt;To maintain order, policies must be enforced
&lt;LI&gt;Each component or service has value and associated cost which can be measured using a Balanced Score Card
&lt;LI&gt;Each component or service can be in-sourced, outsourced, and multi-sourced
&lt;LI&gt;The encapsulation of business capabilities promotes
&lt;UL style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px" type=disc&gt;
&lt;LI&gt;continuous improvement
&lt;LI&gt;flexible souring choices
&lt;LI&gt;teaches an organization about itself&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;DIV id=CSBloggerSig&gt;&lt;/DIV&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=580935" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/rimuri/archive/tags/Team+Foundation+Server/default.aspx">Team Foundation Server</category><category domain="http://blogs.msdn.com/rimuri/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item></channel></rss>