Visual Studio 2013 update 1 RC is here!

Microsoft released tonight a new and first update for visual studio 2013. Currently the update is in go-live RC (release candidate) stage which means that Microsoft supports that version and it safe enough for your production environment.


TF30170 & TF30162: Team Project Creation Failed (TFS 2013 RTM)

A little background & details:
I've installed Visual Studio 2013 RTM on a clean windows server 2012. When I tried to create a new team project I've got the following error:


TFS & Visual Studio 2013 RC/RTM announcements

Microsoft announced today that TFS & Visual studio 2013 RTM (Ready to Market) will be launched  on October 18th.
Also Microsoft released the RC (Release Candidate) today,
Download the new RC version from:


SQL: How to shrink LDF (transactional LOG file)

A lot of us who uses complex systems of DevOps, ALM, deployment etc. usually need to do a basic maintenance for the system's database.

One of the common issues that we are dealing when using an old Microsoft SQL server is the size of the LDF file (transactional log).
There are a lot of post that explain what it means to shrink, what're the theories behind etc.
So instead of the yada yada, just copy and paste (don't forget to replace the placeholder DatabaseName with your own database name value):


Supporting themes in Visual Studio plug-ins

We have developed a Visual Studio plug-in to our customer (CloudShare). The plug-in is a tool window that enables managing CloudShare environments from within Visual Studio (CloudShare on Visual Studio Gallery).

During the tests we've noticed that our tool window does not change colors when applying a different theme. Searching the web we only found out some references to how you can use resource keys from the Shell assembly like this one: How can I find out when Visual Studio theme color changes?
To enable themes in your code you need to add reference to Shell assembly in your xaml:
After that you can use the colors in your xaml like this:
<Setter Property="Background" Value="{DynamicResource {x:Static vsfx:VsBrushes.MenuKey}}"/>

You can take a look at the MSDN article that describes the VsBrushes class.

The problem was you cannot actually understand which resource key to use when you look at the VsBrushes class.
To make it easier to identify the colors we have developed a Visual Studio plug-in that shows the actual colors of each key for the selected theme. This helps you with identifying the key for the current theme and apply them to your xaml.
You can also filter the list using RGB values. Print screen and paste into Paint. In Paint use the "Colour Picker" tool to select the relevant color and then open the "Edit Colours" window to find our what are the RGB values. After that use the filter in the tool window to see the relevant keys.

Plug-in on CodePlex: https://vsthemecolorsviewer.codeplex.com/.
Download on Visual Studio Gallery:
2012, 2013.

We hope you will this useful.


A bug in TFS 2012 alerts system

I opened a bug yesterday on Microsoft Connect site regarding a problem we noticed in the alerts system of TFS 2012. When you create a "A work item in this team project is changed" alert with a filter on the State or Reason field the Changes operator does not work and the alert actually work for any change in the work item. The Changes filter work for other fields (http://connect.microsoft.com/VisualStudio/feedback/details/788661/alert-filter-does-not-work-when-using-operator-changes-on-the-state-and-reason-fields).

The good news is that the bug is already fixed in Update 3 which is soon to be released.

I really appreciate quick response by customer care. This is what I call support!

Posted by Microsoft on 5/27/2013 at 1:50 AM
Thank you for your feedback, we are currently reviewing the issue you have submitted. If this issue is urgent, please contact support directly(http://support.microsoft.com)

Posted by Microsoft on 5/27/2013 at 11:52 PM
Thank you for submitting feedback on Visual Studio and .NET Framework. Your issue has been routed to the appropriate VS development team for investigation. We will contact you if we require any additional information.

Posted by Microsoft on 5/28/2013 at 9:02 AM
Thanks for the feedback! This issue has been resolved in TFS 2012 Update 3 and in the next major release of TFS.


Free: E-Book Gallery for Microsoft Technologies

"Download content for ASP.NET, Office, SQL Server, Windows Azure, SharePoint Server and other Microsoft technologies in e-book formats. Reference, guide, and step-by-step information are all available. All the e-books are free. New books will be posted as they become available." (link below)


TFS 2012 update 2 - my favorite features

Although there is a lot of new features you may find in update 2 (you can find full list here),

These are my favorite features from the current update.

  • New Blue Theme for Visual Studio IDE - good bye gray boring style.
  • TFS 2012 update 2 has a backward compatibility with build machines from 2010, which means you don't need to upgrade the build infrastructure while upgrading to TFS 2012.
  • Work item tagging - which is a new way of filtering work item query's results.
  • While upgrading to 2012 you'll have as default your old version parameters, which means you don't need to remember all old configuration.
  • New TFS connection dialog.

Microsoft currently working on update 3 (mainly for bug fix)...


Visual Studio 2012 Update 2 - Available for Download

Visual Studio 2012 Update 2 is available for download here.
Read more about it at Somasegar's blog (the corporate vice president of the Developer Division at Microsoft).


TFS 2012: New administration tool

Microsoft published new administration tool as part of TFS 2012.
The new tool monitor TFS's performance for every activity that is being made by the users or by the system itself.
Check it out at:
http://<your TFS server>:8080/tfs/_oi

You can learn more about it at MSDN Israel blog (in Hebrew).


Just Released: ASP.NET and Web Tools 2012.2

"ASP.NET and Web Tools 2012.2 is a tooling refresh of Visual Studio 2012 that extends the existing ASP.NET runtime with new features without breaking existing applications. ASP.NET and Web Tools 2012.2 installs in minutes without altering the current ASP.NET run time components. Click the green button to download and install right now. For a complete description see the Release Notes or watch the video. This .2 update adds a number of new templates and features including:
  • Enhancements to Web Publishing
  • New Web API functionality
  • New templates for Facebook Application and Single Page Application
  • Real-time communication via ASP.NET SignalR
  • Extensionless Web Forms via ASP.NET Friendly URLs
  • Support for the new Windows Azure Authentication"


SEO toolkit for IIS

Here is a great tool to improve your website SEO (IIS).

Partial list of the features of the tool:

  • Find broken links
  • Inconsistent urls
  • Duplicate pages
  • Various of site analysis (and ability to compare to older ones)
  • Site map generation
  • robot.txt management
  • Content violations
  • Page performance
and more..

Download: http://www.microsoft.com/web/gallery/install.aspx?appid=seotoolkit



TFS OData - a great way to communicate with your server

You can find our post regards "How to use TFS Odata" at Microsoft MSDN Israel blog.


New attributes in TFS 2012 work item schema

While changing a bug work item state to "Done" in the Microsoft Visual Studio Scrum 2.1 process template I noticed that the "Effort" field became invisible. I was quite happy with it thinking that there might be a new rule to make a field hidden. I checked the work item schema file and found that it is not a new rule but a new attribute to make a field hidden if it is read only and there is no value. Attribute name is: "HideReadOnlyEmptyFields". It is part of the "Layout" tag under the "Form" tag.

<Layout HideReadOnlyEmptyFields="true" HideControlBorders="true">

As you can see above another option is available for hiding the control borders. These are 2 new attributes added to TFS 2012 form layout. You can read more about the Layout available attributes here: Layout XML Element Reference.


Web site optimization tool for IE technologies

Microsoft published last week an online tool that analyze your web site optimization to IE (Internet Explorer) technologies.
The tool will check your website compatibility to other IE versions, it will check framework and libraries that you are using, browser detection in your code, scripts versions, touch browsing and more.

The service is currently in beta stage.

Check it out at: http://www.modern.ie


Upgrade to TFS 2012

We had a great session yesterday at the Israeli ALM User Group. The session was about how to prepare to a TFS 2012 upgrade. We were quite surprised with the success of the session since we weren't so sure there will be much interest in this subject. Well, we were wrong.  There was much participation from the audience. People were asking questions and contributing from their own experience. As you can see from the first slide we were quite sure that this is a boring session…

We would like to summarize the main points we have raised during this session in the post to help you prepare for your upgrade as well. Please notice that this is not a user guide for a TFS 2012 upgrade but a post with some points that we think can be useful to know of before you start your upgrade. You should follow the official MSDN documents published by Microsoft.
1)      Why to upgrade?
If you haven’t notice what’s happening with Visual Studio 2012 and with TFS in particular you need to wake up! Read some posts from Microsoft to find out about the newest additions to the product.
2)      Why do we need to prepare?
Upgrading TFS was always an easy process. We do think that since 2005 until 2012 some things changed. We are using more features, the product continuously changed and the most important thing is that our data grows. TFS is a mission critical system. We want our upgrade to pass smoothly. The good news is that it is still an easy process but… we need a plan.
3)      Do a test run
We recommend to do a test run of the upgrade before doing it on your production environment. This is a good way to check your disaster recovery procedure for TFS. If you don’t have one then this is a good time to have. There are some ways to do it and it depends on your environment and your infrastructure. Some use virtualization to clone their TFS environment and to run a test upgrade on it. Choose what you think is best for you. We recommend to get familiar with Microsoft documents about how to move your TFS from one hardware configuration to another.
Move Team Foundation Server from One Hardware Configuration to Another – this is the guide describing a full move from one hardware configuration to another. After you done this you can keep the new hardware configuration and use it for future restores. When doing future restores you can use this guide: Restore Data to a Different Server or Instance.
4)      Communicate the upgrade
Get your customers involvement in the upgrade process (Developers, QA Testers, Project Managers…). You would like them to tests their clients and tools and get their feedback ASAP in case of issues.
5)      Know your environment
It is important that you map your environment so you will list the software to upgrade and the order of doing it. Here’s a mapping we've done for an environment we have upgraded.

6)      Know your TFS service accounts
This is a critical part. You need the service accounts you have used during TFS installation for the upgrade. Don’t start the upgrade without having them. During the session we were asked a question about it by someone that probably used the NETWORK SERVICE account during the upgrade and was facing issues with TFS. You need 2 accounts (it can be one if you decided on it). The account for the Application-Tier and account for the Reports.

7)      Update relevant software
Upgrade your Windows and SQL Server to meet the TFS prerequisites.
a.       Windows
                                                               i.      Windows Server 2008 R2 SP1
                                                             ii.      All other updates
b.      SQL Server
                                                               i.      2008 R2 or 2012
1.       We recommend to wait with the upgrade to SQL 2012 since TFS 2010 does not support working with SQL 2012 if you will need to rollback you upgrade.
                                                             ii.      If you are running 2008 R2 Enterprise you need Cumulative Update Package
c.       Team Foundation Server
                                                               i.      2008 SP1
DO THIS IN A SEPARATE PROCESS BEFORE THE UPGRADE – Windows Server 2008 R2 SP1 update can take 2 hours. You don’t want to wait for it when you are upgrading TFS. Schedule another update before the upgrade.
8)      3rdParty tools
Check to see if you need to upgrade to a new version of a 3rdParty tool your team is using. Be on the safe side and check if you are eligible to an upgrade of you need to purchase the new version.
9)      Internal tools
Compile your internal tools and take the needed actions to be ready:
a.       Work item custom controls - compile with Visual Studio 2012.
                                                               i.      Web custom controls are now JavaScript and not .Net assemblies – for a start you can disable them in the web form.
b.      Internal tools – compile with Visual Studio 2012.
c.       Visual Studio plugins - Install Visual Studio 2012 SDK and compile.
d.      TFS soap notifications – compile with Visual Studio 2012. They should work without compiling but be on the safe side if you used API that might changed.
e.      Build XAML and custom actions – compile with Visual Studio 2012 and clean XAML files.
                                                               i.      Tool to update XAML files – Cleaning up Workflow XAML files (AKA removing versioned namespaces)
All TFS referenced assemblies are placed at Common7\IDE\Referenced Assemblies\v.20\ and not at 4.0
10)   Schedule a downtime
A small project collection upgrade took few minutes. A 3 years old project collection upgrade took few hours.
11)   Stop TFS services and perform a backup before the upgrade starts
You don’t want your users to use the system while doing the final backup before the upgrade. Remember to stop TFS services to disable connecting to the system.
As for the back, if you are upgrading from 2010 you can use the 2010 back up power tool. For early versions follow the backup guide: Back Up Team Foundation Server.

12)   Upgrade TFS
Follow the instructions using the official guide: TFS Upgrade Requirements. It will take you through your relevant upgrade path.

13)   Uninstalling the previous version
You need to uninstall TFS previous version before installing a new one. It’s OK to do so and it does not affect the databases. After installing the new version you will run the TFS configuration wizard and select your existing database.

14)   Run the configuration wizard
You need to uninstall previous version, install TFS 2012 and run configuration wizard for all relevant server (TFS, Build agents, Proxy…).
15)   Review the results
It is important to review the results of the upgrade wizard. In this case the upgrade was successful but TFS could not associate the existing build agents. That’s ok. We had to upgrade them and associate them manually. We had a strange behavior while associating the build agents. It seems that we succeeded but after few seconds the coordinator and build agents were disconnected. Looking at the logs we found out it was a memory problem on the single server deployment we had so we have configured SQL Server to use less memory by default and problem was solved.

16)   Run some tests
Run some tests to see that your system is working as it should. This is the time to ask your customers involvement.
a.       Check clients and tools
b.      Check in code
c.       Run a test build
d.      Check data/reports
That’s it. You should know that some of the following symptoms might occur during the following days after the upgrade:
·         A build fails after check-in. Developer: “It’s because of the upgrade”.
·         3 years old laptop works slowly. Project Manager: “It’s because of the upgrade”.
·         An error while posting a status to Facebook. QA Tester: “It’s because of the upgrade”.
You might be facing some issues after the upgrade. The most important thing to do is relax and read the logs. J
Good luck!


New: TFS and Git Integration

You can find our post regards "How to integrate TFS & Git" at Microsoft MSDN Israel blog.


Cumulative update released for Visual Studio 2012 update 1

If you installed "Visual Studio update 1" and encounter one of the issues below:

  •  Collections that are attached to a server that is running TFS 2012 Update 1 may lose permissions
  •  Group scopes may incorrectly cause permission errors
  •  Severe decrease in performance after TFS 2012 Update 1 is installed
  • Identity sync jobs may fail repeatedly
  • Warehouse is not updated correctly, or fields that represent a person are not filled
  • Users can see names of collections of which they are not a member
  • You cannot remove a user or a group after you attach a collection to a TFS 2012 Update 1 server
  • You cannot view artifacts that reference an identity that is no longer a part of a collection

You can download and install a new cumulative update (KB280362) for this version.

Download from: http://www.microsoft.com/en-us/download/details.aspx?id=36392


How to Install and Configure TFS OData

The OData (Open Data Protocol) is a web layer that can get or update data from a specific system, in our case TFS.

Since the OData is a web layer it provides the possibility to develop TFS clients on any system that use HTTP/S protocols. Currently, Microsoft declares that it's only in a beta stage, but they also provide the source code, so you can add/change any function you desire.

The current post will guide you through the stages of how to install TFS OData.

The machine that will host the TFS OData need to have an HTTP/S open network to the production TFS server.

So, lets start with the TFS OData download from:
http://www.microsoft.com/en-us/download/details.aspx?id=36230 (google for: download tfs odata)

Now, you'll have two options:

The first option "ODataForTFS.V....." is the OData layer with it's source code, the second option "TFSDashboard..." is a sample application that you  might look into (you also have a lot of demo applications in codeplex.com).

After downloading the first package, Double click it. you will have a dialog box that will ask you where do you want to extract all the source code.

In order to deploy the OData on the machine you have two options:
1. Deploy the application manually on the IIS (map the default web site to <extract location>\ODataForTFSV2\code\ODataTFS.Web)
2. Open ODataTFS.sln with visual studio and it will be deployed locally automatically
At this point you should see introduction document at http://localhost.

the next steps will show you how to configure TFS OData to communicate with the production TFS. All configuration should be made at the web.config (<extract location>\ODataForTFSV2\code\ODataTFS.Web\Web.config).

1. Change the address of TFS production server

2. If you are using HTTP (NOT HTTPS) protocol to your TFS production server, you will need to change the binding to non-secure traffic, change the security mode from "Transport" to "None".

In order to check your installtion & configuration, open a browser and write the address:
http://<OData host machine>/<Project Collection>/<OData operation>
for example: http://tfsodata/defaultcollection/builds

you should see something like:

That's it. Now you can develop your application over this layer!


IIS error: "An attempt was made to load a program with an incorrect format" while Migrating web apps from IIS 7 to IIS 8

Lately we've upgraded our TFS environment to TFS 2012, as subsequent we've upgraded the IIS on the machine that hosts TFS web subscription events.

After upgrading the IIS, we've got the following error (when trying to connect to the web service).

Could not load file or assembly 'Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader' or one of its dependencies. An attempt was made to load a program with an incorrect format.

How to fix:
You need to enable the IIS application pool to run in 32bit.
IIS->Application pools-> right click on the relevant application pool->advanced settings-> change "Enable 32-bit Application" to "true"


Our company, our blog

Today we establish Delegen, our company. Delegen will provide consulting and implementation services for software development organizations that want to increase it's product quality and delivery times by implementing ALM using Microsoft Visual Studio TFS platform. We love technology and we are software developers in our hearts. This helps us in understanding what is needed in order to develop an excellent product. We believe that combining technology, innovative approach and close contact with the people who develop the software is the right way to a successful ALM implementation.
Today we also start posting in this blog. It will serve us with the mission of sharing the knowledge and experience around our work with the ALM community. We encourage you to use this platform to communicate with us and we promise to continuously post here.