Saturday, March 29, 2008

Team Build 2008 Downloads One Level Only

TfsBuild.proj files can be located anywhere in source control in Team Build 2008. That is the reason why MS changed the default recursion type used to download files from the location of TfsBuild.proj to OneLevel only.  The meaning is that only the contents of the exact directory of TfsBuild.proj are downloaded.

Aaron Hallberg posted a solution to change this behavior.

We have to modify the following line in the TfsBuildService.exe.config on the build machine:

<add key="ConfigurationFolderRecursionType" value="Full" />

Make sure to restart the service after making the change!

Visual Studio 2008 and .NET Framework 3.5 Training Kit

Microsoft released a nice training kit (~126MB) (it's a real treasure!) for the latest technologies.

This package covers a bunch of technologies and includes presentations, hands-on labs, and demos. This content is designed to help you learn how to utilize the Visual Studio 2008 features and a variety of framework technologies vs2008 training kitincluding:

  • Visual Studio Tools for Office
  • Visual Studio Team System
  • Application Lifecycle Management
  • C# 3.0
  • VB 9.0
  • LINQ
  • WPF
  • WCF
  • WF
  • Silverlight
  • AJAX
  • CardSpace
  • Mobile


Download here.

ALM 403: Control Your Database Lifecycle With Data Dude - Agenda

Next week I'll give a session at TechEd 2008 In Eilat, Israel. The session will introduce you how you can control your database changes and integrate it into your agile development methodology.

Do you want to control your database changes?

Do you want to test your database with unit test and even run static analysis on it?

Do you want better life and easier deployment of database schema changes to production database?

If one of your answers is YES, come to hear me.

Session Details:

  • Session Name: ALM403: Control your Database Lifecycle with Data Dude
  • Level: 400
  • Time: 8/4/2008, 9:00 AM
  • Location: Hilton Hotel, Ofir-Adom Hall

Session's Agenda:

  • What is Data Dude?
  • Data Dude Features
  • Test Your Database!
  • Build & Deploy (MSBuild & Team Build)
  • Case Study: nuconomy
  • Q & A
  • Summary

Microsoft opened up the meetings application at If you want to meet me and talk with me on development, WCF, LINQ, ALM or anything else - contact me! I'll be glad to see you!

Meet you there...

How To: Delete Build Agent In TFS 2008

I'm working on my TechEd demos which includes DB Projs and MSBuild + Team Build .I needed to remove one of my build agents.

To remove a build agent, navigate to to the Build Menu,  or the Build Explorer.  Click on Manage Build Agents in order to remove/edit/add a build agent.


In order to use the Build Menu, you must first open the Team Explorer. Otherwise, the Manage Build Agents will not be part of the menu.


Friday, March 28, 2008

Delete TFS Global Lists

Do you want to delete TFS's global list? forget about it! I'm serious. you can't! read here.

If you want, you can delete values from this list itself .


Think before you create a global list! design your work items and needs. You and your global list will be together for a long time.

Want To Influence The Future Of Team System?

If you interested in influencing the next version of VSTS, the product team has released a new set of specifications for the upcoming release of Visual Studio, code named Rosario. These are provided to the community to allow us the opportunity to provide feedback and thereby helping shape the next release .If you are interested in submitting feedback, visit the public feedback area.

New Specs:

Previous Specs:

Wednesday, March 26, 2008

Install Team Foundation On Virtual Server

Virtual ServerI've been asked several time about this issue - are there any restrictions  in setting up Team Foundation Server on a virtual server as a development server?

The answer is NO. There are no issues for such installation.

Read about it here.

Requirements Management with Visual Studio Team System White Paper

image_thumb This white paper outlines how to use Visual Studio Team System for successful requirements management using Visual Studio Team System 2005 or Visual Studio Team System 2008. In addition, you can use this paper to learn about some of the challenges that Microsoft intends to address in the next release: Visual Studio Team System code name “Rosario.”

Download:  Requirements Management with Visual Studio Team System

Restrict Users To Open WorkItem

Sometimes you need to restrict users to use work items or make it obsolete. We can't delete a work item type from the process template, so we must find other ways. I didn't find a good solution for that issue.  (There is an article from MS, how to make a work item obsolete, but I needed other solution. read here:

You can do that by editing work item type definition for the type and setting permissions on the first transition:

<TRANSITION from="" to="Opened" for="YOUR DOMAIN\USER OR GROUP" >

That way, only authorized users can open work item of this type.

Tuesday, March 25, 2008

Yahoo! Announcing the OpenSocial Foundation

opensocial-logoYahoo! announced  that the company  intends to support Google's OpenSocial initiative. Yahoo seems to be all about openness lately (Open Search, support for OpenID), so the announcement shouldn't surprise anyone.

OpenSocial is a Google coalition, which plans to build up a common set of standards for web developers to make social networking widgets and other programs for Web sites, includes MySpace, Plaxo, Bebo, Hi5, Orkut, LinkedIn, Six Apart, Oracle, and Ning, to name but ten.

From Yahoo's blog:

Yahoo! has always been about helping users find and share information online, and we love giving our broad and loyal developer community the tools they need to keep innovating on this front. Their echo our passion for creating the best Web experience for our users.
In this same spirit, we announced today that we’ve joined forces with Google and MySpace to create the OpenSocial Foundation, and will also begin supporting the OpenSocial standard. Industry consortiums such as this often start slowly and evolve over time. So far, OpenSocial is rapidly growing and adapting, but still in the early stages. We feel that this is the right step at this stage in its evolution. It’s no longer a trial balloon — it’s for real. We are taking this opportunity to help ensure websites and developers feel confident using OpenSocial as the building blocks for their new social apps.


The creators of many of the most popular applications on Facebook have already said they plan to also adapt their programs to conform with the OpenSocial standard.

I'm Using Twitter

I was a little slow getting onto Twitter. I don't know if it has much to offer me, but I want to try...

My main interests in Twitter are:

  • Networking
  • Promoting content
  • Find new readers to my blog - gain a New Audience

My big question is how do I get people to follow me on Twitter...I admit it. I hesitated to sign up for Twitter. For now I think its a waste of time, but I'm patient. I promise to publish a post after few month of using this service to share with you what I discovered from using Twitter. I hope that it'll be proved to be a wise choice.

BDW, my Twitter page is:

Remove Items From ItemGroups In MSBuild

The ability to remove entries from ItemGroups is one of the new features of MSBuild 3.5.

To remove an Item from an ItemGroup in MSBuild 2.0 you would have to create a new ItemGroup from the old one and skip the Item that you needed removed.

In MSBuild 3.5 we can achieve it by using the Remove parameter.


<Files Include="a.cs" />
<Files Include="b.cs" />
<Files Include="c.cs" />
<Files Include="d.cs" />
<Files Include="e.cs" />
<Files Include="f.cs" />
<Files Include="g.cs" />

Some times we want to restrict some data from this group in a target. In order to do it,  we should use the Remove parameter:

<Files Remove="a.cs" />
<Files Remove="e.cs" />
<Files Remove="f.cs" />

Read more at msdn.

Monday, March 24, 2008

Visual Studio Team System Chat scheduled for 9-Apr-2008

Do you want to get answers to your toughest questions from the Visual Studio and TFS product teams? Well, join the next product group chat in April 9th. (Read here previous chat summary).

Here are the particulars, from Jeff Beehler's blog:

Join members of the Visual Studio Team System product group to discuss features available in Team Foundation Server, Team Suite, Architecture Edition, Development Edition, Database Edition, and Test Edition. In addition, discuss what's new for these editions for Visual Studio 2008.

Add to Calendar

April 9, 2008
10:00 A.M. Pacific Time
Additional Time Zones

Thursday, March 20, 2008

NDepend - Great Static Analyzer

Few week ago, I've been asked by Patrick Smacchia, a C# MVP to try this tool. I really want to thanks Patrick to give me the chance to evaluate a professional edition.

I installed it and start working with. After using this tool, it's my most favorite tool to reviewing my code!

NDepend is an excellent tool that is designed to provide a very deep analysis of your compiled code to help you understand and control your development effort by managing both the quality and the complexity of your code. NDepend works in a very similar way as the Microsoft FxCop tool, by analyzing your compiled code and calculating different metrics and statistics on that code.

NDepend analyzes your code against more than 60 different metrics and can be customized to a particular application. These metrics measure things like:

  • Lines of Code, Comments and the percentage of comments
  • Number of IL instructions
  • Number of Assemblies, Namespaces, Types, Methods, Fields
  • Coupling (both Afferent and Efferent), Cohesion and Cyclomatic Complexity
  • Instability
  • Abstractness
  • Depth of Inheritance

NDepend's start page:

Start Page

NDepend's analyzing result and projects loaded:

Analyzing Result

A great feature is the NDepend's CQL (Code Query Language). It is the one of its main features that I love.  It's a query language for code so one can issue statements like:


Its great to query your code this way, besides we're all familiar with T-SQL... :)

Visual NDepend also has this metrics view which graphically represents any criteria from number of lines of code such as represented below, to number of methods, parameters, coupling, etc.  The bigger the square below means more number of lines of code.

Another feature for the professional edition (not available in the free edition) is the build comparisons.  It basically analyzes two build versions, analyze what's been deprecated, broken, etc.  It's useful to easily know if an upgrade to a component you're using will break your app.  It also provides easy access on the details of what has been changed.

The binaries also include extensions for MSBuild, NAnt and CruiseControl.NET so you can readily include NDepend tasks in your build scripts for your continuous integration setup.

NDepend is great for architects or even team leads who wants to have a quick overview of their project rather than diving into the code and scratch their heads.

Addins of NDepends available to VS2008, VS2005 and Reflector.

NDepends web site:

Wednesday, March 19, 2008

Want to Meet Me at TechEd?

As you know, I will be presenting a presentation in TechEd 08 Israel.  Microsoft opened up the meetings application at

If you are attending TechEd 08 Israel , you can set an appointment with me, by using this application.sign_party

To find me there navigate to the Find Participants screen and looking for ALM or מאור as keyword.

My presentation details:

  • Name: ALM403: Control your Database Lifecycle with Data Dude
  • Time: 8/4/2008, 9:00 AM
  • Location: Hilton Hotel, Ofir-Adom Hall


I'm always happy to answer questions - so come meet me in Tech Ed, and let me know how you liked my presentation!

Thursday, March 13, 2008

Running Tests On TFS Build Machine

Often I asked "What do I need to install on the TFS build machine in order to run tests?"

Well, the answer is simple.

In VSTS 2005 you have to install the Tester or Suite editions on the Build Machine to run tests (even Unit Tests).

In VSTS 2008 installing the Developer Edition version is enough.

Requirements Management with Visual Studio Team System

Do you want to know how you can manage requirements with Team System?

An excellent white paper on Requirements Management with Visual Studio Team System 2008 has been published yesterday.

It covers:

  • The Requirement Lifecycle
  • Requirement Activities and how you do those in Team System
  • Requirements Futures in "Rosario"
  • Requirements Partners

Click here to download.

Wednesday, March 12, 2008

VSDB 2005 Service Release 1 (SR1) Rollup Package 1

Visual Studio 2005 Team System Database Professional post Service Release 1 (SR1) roll-up package 1, is now available.

Problems that are fixed:

  • Inconsistent revalidation of database object definitions when you close and then reopen a Visual Studio database project
  • A database project cannot be deployed if the project contains interdependent inline functions
  • If you use a four-part name to reference a table, you may receive an incorrect syntax exception
  • Database Professional Interpreter does not handle the "sp_executesql" parameter correctly
  • In a Visual Studio 2005 database, you cannot import a schema that was created by using the SQL Server 2000 compatibility mode
  • Error message when you use Design-Time Extensibility (DTE) objects: "Do you want to reload"
  • Cross-database references cause slow performance when you load a project
  • Schema Compare crashes the Visual Studio IDE when databases contain different versions of assemblies
  • Schema Compare does not correctly generate the update script for a stored procedure
  • The schema script is not generated when triggers or views that have the same name exist
  • Error message when you build a deployment script: "MSB4018: The 'SqlBuildTask' task failed unexpectedly"
  • After Schema Compare obtains the latest project files from Source Control, Schema Compare indicates that databases are different

For more details, see knowledge base article KB941278.

You can download the roll-up from the Microsoft Connect site at: