Welcome to MSDN Blogs Sign in | Join | Help

Clearing up confusion

There has been quite a lot of confusion around the StyleCop free download tool that was put on Microsoft downloads a while back.  It first crossed my radar probably 6 weeks ago when it was initially made available because it was positioned as a generic source analysis tool and there was a ruckus in the VSTS community about how it related to FXCop and the tools provided in VSTS Developer and why we were releasing another tool to do the same thing, etc.

At the time we (the VSTS team) really didn't know much about it.  We looked into it and found that it was an internal tool that had been built by a developer in another division at Microsoft who was proud of it and wanted to share it with the community.  There was a flurry of activity to try to correctly position the tool that I was only vaguely aware of and the issue seemed to be settled.

It came to my attention again about a week and a half ago when our MVPs started a thread about how StyleCop is a useful tool and Microsoft is screwing it up by squashing community around it, etc.  That kerfufel was started by this blog (I think) http://lovethedot.blogspot.com/2008/07/come-on-microsoft-isnt-this-little.html.

I decided it was time to understand this situation better and engaged with the appropriate people - most notable Jeff Beehler, Jason Allor (author of StyleCop) and a couple of people from the Team Developer team to try to get to the bottom of this.

What we found is what I would characterize as a series of misunderstandings all the way around.  We found that StyleCop is, in fact, a very useful tool and it does things FxCop and TeamDev doesn't do (and it doesn't do the things they do).  It is a wonderful complementary tool.  StyleCop is a tool for doing coding style checking to verify that source code is formatted the way you want and follows the style guidelines for conventions.  While there is some overlap with FxCop (like checking identifier capitalization), the overlap is miniscule as StyleCop does not do the deep analysis that the other static analysis tools do to enable code correctness checks, security checks, etc.

So, after much going round on this one, we are going to be taking steps to further clean up the branding/positioning of StyleCop to minimize confusion.  We will also be clearing up how the tool can be used and extended by the community.  We will not be prohibiting any extensions or additions people choose to do.  We will be documenting the extensibility APIs necessary to make full use of StyleCop as a source code style checker.  In fact, we hope you find the tool useful and use it as extensively as you like.  Keep in mind that it is not a Microsoft product.  It is not even a Team System Power Tool.  It is a tool developed by a very passionate developer at Microsoft (on evenings and weekends).  There's no support, servicing, evolution or anything else beyond what he can get done in his spare time.  Style checking is an intersting feature and may show up in an official product at some point down the road but, until then, if you find StyleCop useful, please enjoy it.

I feel obligated to comment on one additional aspect of the controversy that came up.  In the conversations I saw some disdain for our policy of disallowing disassembly/reverse engineering in our license agreement.  This is a pretty standard clause in almost all commercial software license agreements.  Commercial software is all about intellectual property.  These reverse engineering prohibitions are how we, and others, protect the IP in our code.  They are not going away and, in fact, I expect StyleCop will continue to have one.  The way we are addressing this for StyleCop is by publishing the extensibility APIs to enable what the community is trying to do without reverse engineering.  In other cases, we have taken other approaches when there is a legitimate need.  For instance, with the .NET Framework, we released large portions of the source code to enable people to better design and debug .NET applications.  I don't want to make this long post any longer by further defending this approach - however, I feel strongly about it and am happy to start another post on the topic if someone really wants to debate it.

I expect to see updates to StyleCop in the coming weeks to address the positioning and extensibility limitations.  Keep your eye's on Jason's blog if you are interested in following it.  I'll try to post something at any major development.  I'm really happy we were able to clear up the confusion and make this valuable tool even more valuable.

Thanks,

Brian

Posted by bharry | 14 Comments

VSTSDB 2008 GDR July CTP is now available

 

Microsoft® Visual Studio Team System 2008 Database Edition GDR July CTP

http://www.microsoft.com/downloads/details.aspx?FamilyID=bb3ad767-5f69-4db9-b1c9-8f55759846ed&displaylang=en

Most important changes:

  • Project upgrade is now in place. For those of you who were kind enough to donate their database projects, thank you!
  • Mixed projects are no longer supported, from now on server projects represent only server creatable objects and user objects that need to be deployed to “master”. Another change is that server options will not get deployed; we only validate the settings as pre-requisites for a deployment. As such server options (sp_configure) have been added to the project system.
  • The interpreter now understands temporary tables, table variables and select into column sources.
  • The Static Code Analysis MSBuild task was added
  • XSD Reference user interface support is enable, but it does not yet create XML Schema Collections
  • And lots of fixes since CTP14

Brian

Posted by bharry | 6 Comments

July '08 Power Tools are available!

You can download them here: http://www.microsoft.com/downloads/details.aspx?FamilyID=00803636-1d16-4df1-8a3d-ef1ad4f4bbab&displaylang=en

You can read all about them in the preview I wrote a couple of weeks ago: http://blogs.msdn.com/bharry/archive/2008/07/08/july-08-tfs-power-tool-preview.aspx

This is the first release of the Power Tools that we did some limited pre-release testing with our MVPs.  It was very valuable because they helped find a few bugs that would have otherwise been in the release.  The Team System Web Access update and the SCOM management pack are still in the works and should be available shortly.  Also, for those of you looking for an eScrum update for TFS 2008, it's getting close to being ready too.

Although it's not as big a release as Dec or Mar, the feedback so far has been very positive.  We've started development on the next set already.  I hope to have them available in the Sept/Oct timeframe.  I'm building one of them myself and I'm really psyched about it.  I think you are really going to love this release.  I'll give you a preview some time in the next month or so.  Until then, enjoy the latest release and let us know what you think!

Brian

Posted by bharry | 16 Comments

Working on TFS SDK improvements

We are working on improving the TFS SDK to make it easier for people who want to write extensions.  There are many areas for improvement so it's hard to pick a place to start.  We chose, for the first project, a sample VS add-in that demonstrates a pretty wide array of ways in which you can integrate with TFS, inside VS.  It includes the sample VS add-in infrastructure, examples of invoking the TFS API, querying selection and receiving events.

This sample is focused on version control and we are working on another one more targeted at work item tracking.  It is not intended to be a useful tool in and of itself, but rather a demonstration of how to access each of these extensibility points.  I've included a screen shot below that shows that it's just a dialog with a bunch of buttons that allows you to exercise the various extensibility points.  Accompanying the sample is a pretty thorough document outlining how to use it and what it is doing. 

image

We are still finalizing the sample but I'm interested in getting early feedback on it.  I've attached a zip file with the sample in it to this blog post.  If you have the inclination, try it out and let us know if it is something that is useful to you or if there is something you'd really like us to add or change.  I'm expecting we will publish an official "final" version in the next few weeks.

Thanks,

Brian

Posted by bharry | 4 Comments
Filed under:

Attachment(s): TFSAddIn.zip

Tickled by a Rosario feature

Today, I'm finally getting around to working on something I've been wanting to do for a while.  Rosario is a big release with a ton of great stuff and I've been thinking for a while that I really need to work on figuring out how to articulate all of that value in a way that people can really understand and be excited about.  To make sure I'm not forgetting anything, I decided to peruse our feature list to refresh my memory on everything we are doing.  In the process I got to use one of the new Rosario features (after all, we already dogfooding Rosario for some scenarios) and I was just so tickled I had to share it.

There are a thousand or more features in the Rosario feature database in various states, some related to each other, others not.  To help make sense of all of the features, we group related features into "Deliverables" that are a set of features we build and deliver at the same time.  So I really want to see the list of deliverables (there are far fewer of them) but I want to see the feature detail easily in the event I can't remember what is in the deliverable.  So, what I want is:

All deliverables for my team that have not been cut (no point in looking at the ones we've already decided not to do) and all of the related features that are also not cut.  I want them grouped by "feature team" and include the current state of the deliverable.  It turns out that in Rosario, this is an unbelievably easy thing to do and after 15-20 minutes of poking through it, I have a good overview of what we are doing :)  To make things even better, this functionality is in the Rosario CTPs we've already released so you can try this kind of thing out yourself just for kicks.

Here's the query that I wrote (in Team System Web Access).  Note we have a custom link type called "Produces" which is a relationship from a deliverable to the list of features that the deliverable will produce.

image

Running that query produces a really nice hierarchical list of deliverables and the related features...  A few of these, you'll notice we ended up deciding to release early in SP1 :)

image

The new features for helping you manage lots of work items with complex relationships are really just truly amazing.  I really think you are going to like it a lot.

Brian

Posted by bharry | 4 Comments

July '08 TFS Power Tool Preview

We are approaching the release date of our next release of the Team Foundation Server Power Tools.  We are targeting to have it available in about 3 weeks.  As I've mentioned before this is a smaller Power Tools release than we typically have done.  This is because so much of our effort has been on getting TFS 2008 SP1 done.  I am expecting that our Sept Power Tools release will have a lot more in it.  We'll start planning that feature set soon.  The other thing is that this Power Tools release is going to be more of a "wave" than a point in time release.  A few of the components are being released at different times and in different vehicles.

The main components of this release are:

  • A new UI for subscribing for TFS Alerts - This new UI is a VS plugin (and therefore much more friendly than the BisSubscribe command line tool) and enables much more flexible subscriptions.  This is, perhaps, the premier end-user feature in the July release.

The first thing you will notice is a new node in Team Explorer for "Alerts" that will open the Alerts Editor window.  The Alerts Editor can also be opened from a menu item on the Team menu.

image

The alerts editor contains your alerts categorized by the event type the alert is based on (Checkin, Work item change or build completion).  From here you can easily add or remove subscriptions.  When you create or edit a subscription, you get a query builder like experience for describing the conditions that will trigger the alert.  You can build very sophisticated queries and can also flip to the Filter Expression tab to see what XPath expression is being generated (the underlying subscription engine works on XPath queries).

image

Here's an alert definition that will notify me if any new work is assigned to "my team"...

image

When you first start out, the flexibility of the query builder will be a bit daunting.  To make it easy, we have several handy short cuts.  You can right click on a folder in the Source Control Explorer and select the "Alert on Change..." menu item.  You will be presented with the following dialog and after hitting Ok, you will be notified of all subsequent checkins under that folder.

image

In a work item query results list or in an open work item, you can right click and select "Alert on Change..." to configure an alert for that selected work item(s).  This includes an easy way to configure the alert for "Anything changes", "State changes" or "Assignment changes".

image

If these shortcuts are too constraining, we have more... When you add a new alert, you are presented with a list of templates to choose from.  For example, choosing "Check-In to a specific folder with a policy overridden" will fill out the query builder with the right clauses and all you have to do is fill in what folder you want to be alerted on.

image

I wish I could say the list of templates was customizable but it is not for now.  We'll certainly take suggestions for new templates and I hope that at some point we can make it admin or end-user editable.

One other thing people are likely to find confusing and/or frustrating is one particular characteristic of the work item tracking events.  There are two kinds of fields in work item tracking (for the purposes of eventing) "Core fields" and "non-Core fields".  Core fields are inherent to every work item type - State, Activated by, Activated date, Area path, Assigned to, Attached file count, Authorized as, Changed by, Changed date, Created by, Created date, Description, ID, Iteration Path, PortfolioProject, Reason, State, Title, Work Item Type and non-Core fields are all of the others.  The eventing system works by creating an XML message for every change that happens in the system.  Subscriptions work by running an XPath query over the XML message and sending alerts when the XPath query matches the message.  In order to reduce the data volume and overhead of processing events, the XML message for work item tracking changes contains only core fields and any field that changes.  It does not contain non-core fields that did not change.  When using the Alerts Editor query builder, you will observe this distinction in the list of operators that are available for different fields.  For non-core fields, you will only find "Changes", "Changes From" and "Changes To" because they are only available for matching if they change.  For core fields, you will find =, <>, and other equality operators in addition to the "change" based operators.  You can do this because they are always included in every message.  There is no way to identify additional fields to be included in every message and I suspect you will find this limitation frustrating.  We'll look at improving this in the future but that's going to require server changes.  Despite this limitation, you can create some powerful new subscriptions with the Alerts Editor.

I really hope this feature will go a long way to making the power of the notification system more available and approachable.  There are a bunch of features we'd still like to add to the alert system - enabling people to more easily subscribe for their whole team, scheduled summary notifications, etc but I hope this is a good step in the right direction.

  • TFS Best Practices Analyzer support for SQLServer 2008 - It wasn't ton of new work but this new version of the BPA tool now supports correctly identifying configuration issues when your TFS server is installed using SQLServer 2008.  We've done a variety of bug fixes and rule improvements along with that.

 

  • Support for changing user's names - One of the support issues we get from time to time is that administrators want to change the names of some of their users (in Windows or Active Directory).  What they find is that TFS doesn't cope with this very well and your work items, event subscriptions and a few other things get left behind with the old user name.  This release of the Power Tools contains a new tool called TFSUsers that enables you to update TFS's understanding of user name changes.  Ideally this would just be automatic (and we plan for it to be in our next release) but until then, the TFSUsers tool will help you.

"TFSUsers update" takes a mapping file and will update the user names as described in the mapping file.

"TFSUsers computedelta" can generate a mapping file for you by comparing the current Windows/Active Directory user names to a previously captured baseline set and automatically generate the mapping file needed for "TFSUsers update".

  • Team System Web Access Update - You can read more about the specific updates in my post on the CTP we released in April.  Due to our requirement (in this release) to simultaneously release in all 10 languages, the TSWA update is going to trail the July Power Tools release by about a month.

 

  • TFS SCOM Management Pack - In this wave, we are also releasing a SCOM management pack (the successor to MOM Management packs).  This is designed to help an IT operations team who is using System Center Operations Manager and managing TFS servers to setup automated health monitoring of the TFS server and take full advantage of the System Center features.  This tool will also not ship directly in the Power Tools release because there is already a defined web release mechanism for management packs and there's no point in creating a new one.  It is in limited "Beta testing" now with a couple of customers (the early feedback is good) and should be available on the System Center Operations Manager 2007 Catalog by mid August.

image

  • Bug fixes in WIT Templates and the Process Template Editor Power Tools

  • Improvements in TFPT.EXE
    • tfpt treeclean was an existing command that will delete files on your local disk that are in source controlled folders but are not in source control.  The primary difference is that it is now dramatically faster.  tfpt treeclean now replaces tfpt online /purge, which is no longer available.
    • A new tfpt scorch command - scorch is like treeclean except that additionally it re-downloads content that has been changed locally without pending an edit and content that has been deleted locally without pending a delete.
    • Important bug fixes in tfpt unshelve /migrate where the base versions for a 3 way merge were sometimes being computed incorrectly.
    • Improvements in online, scorch and treeclean to now handle folders as well as files, to properly handle single file mappings and proper treatment of items with pending changes other than "edit".

 

Well, that's it.  I think there's something in there for just about everyone.  I'll do a final announcement when each of the pieces are available for download.  Over the next few weeks we'll scope out what will be in the Sept Power Tools release and by sometime in August I should be able to give you an early heads-up.  Feedback is welcome, as always.

Brian

Posted by bharry | 44 Comments

Power Tools and Software Assurance

I love our Power Tool program.  I really enjoy the opportunity to deliver stuff that people are wanting every few months.  I also really like the very positive feedback we get on them.  I'm always looking for the next "killer" Power Tool feature that we can build.

One of the lingering questions that has never been answered and we mostly ignore is "How are Power Tools monetized?"  Right now, it kind of works like this...  Power Tools generally support the latest release of TFS.  So one of the benefits of buying the latest release is a new stream of Power Tools until the next TFS release.

The biggest lingering question is what about Software Assurance?  People who purchase Software Assurance are paying "extra" to make sure they get all the latest updates at no additional charge.  Many times, over the last few years, we've asked ourselves, "Should the right to use the Power Tools be tied to Software Assurance?".  From the customer's perspective, it would make them feel like they are getting even more for their money.  From our perspective, it would increase the likelihood customers would buy SA.

Why do I care if customers buy SA?  Well, of course I like the revenue but it's more than that.  We make decisions all of the time about how to release things, what to charge for them, etc.  When customers are on SA, it makes these decisions much easier.  We can simply release them to all licensed customers and not worrry about it.  Otherwise, we're left debating whether we should hold onto it for the next "big" release.  A great example is the features we put in service packs.  Every feature we put in there becomes one less feature in the next paid upgrade - meaning less stuff we can make a big deal about when the product ships and use to encourage people to upgrade.  However, if everyone is on SA, it's easier for us to accept because we can convince ourselves that people paid for it by having SA.

For these kinds of reasons, my goal it to have all of our customers on SA - then I don't need to spend any time worrying about how we are going to monetize things and I can spend all my time thinking about the next set of features we are going to get in your hands.

Anyway, there's no action right now.  However, I wanted to let you know this issue is on my mind.  The thing that brought it back to the top was a recent conversation with one of our sales people about a conversation with a customer who didn't want to buy SA and one of their reasons was that they get Power Tools without it and therefore they couldn't see sufficient value.  I'm going to continue to think about this issue and try to figure out how to have my cake and eat it too.  One idea that has flitted across my brain is releasing Power Tools to SA customers "first".  Perhaps we give SA customers access to Power Tools 3 or 6 months before non-SA customers.  I don't know...

If you have thoughts you'd like to share, I'm all ears.

Brian

Posted by bharry | 13 Comments

July '08 DevDiv TFS Dogfood Statistics

I missed the June Dogfood statistics - sorry about that.  This report represents the change since my last dogfood report in May.  The big thing that you will observe is that downloads have dropped dramatically (from a peak around ~150,000,000 to ~50,000,000).  The reason for this is that we installed a TFS proxy on our corp net and had the majority of users configure their clients to use it.  The proxy is 2 machines configured behind an NLB load balancer.  The reason we had to make this configuration change was that during peak hours, downloads were reaching over 1,000 downloads per second.  The server simply couldn't service that many requests and the request queue would fill up and start returning "server unavailable" errors to the clients.  Adding a proxy allowed us to offload the download volume and keep the request queue from overflowing.  We used an NLB proxy "cluster" to avoid having the same request queue overflow problem on the proxy.

The other "big event" in the past month was a move of our server from our data center in Tukwila to our new data center in Quincy, WA.  I wish I could say that went smoothly.  Transferring over 8 terrabytes of data several hundred miles and building out new server infrastructure for a mission critical server is a daunting task.  We hit quite a few bumps along the way and my back side is still sore from the beatings (admittedly deservedly) I took over it.  Fortunately, we shouldn't have to do such a thing again soon.  One of my big learnings from the process though was that we need a better way to simulate our production environment in a non-production test environment.  We really needed to test all of the configuration changes we were making on a reasonably accurate simulation before trying it on the live environment.  The problem is that, to clone the hardware, it would cost close to $250K - mostly in the cost of the SAN.  Anyway, we've embarked on a process of creating such a test environment (even if it doesn't match the hardware exactly).  Hopefully this will smooth any further large scale deployment changes we make down the road.  Preventing almost 2,500 people from getting their work done is not a recipe for a long and healthy career :)

 

image image

image

Users

  • Recent users: 2,409 (up 451)
  • Users with assigned work items: 4,293 (up 567)
  • Version control users: 4,345 (up 525)

Work Items

  • Work Items: 446,048 (up 33,117)
  • Areas & Iterations: 10,536 (up 452)
  • Work item versions: 3,713,236 (up 257,532)
  • Attached files: 258,580 (up 14,454)
  • Queries: 27,944 (up 2,291)

Version control

  • Files/Folders: 312,965,192/75,535,960 (up 43,182,945/up 11,300,347)
  • Total compressed file size: 2,607,236 MB (up 389,270 MB)
  • Checkins: 484,546 (up 48,613)
  • Shelvesets: 40,028 (up 8,611)
  • Merge history: 756,402,342 (up 104,599,145)
  • Pending changes: 39,586,207 (up 15,367,172)
  • Workspaces: 11,415 (up 2,494)
  • Local copies: 2,948,671,753 (was 2,214,366,807)

Builds

  • Builds: 6,524 (up 369)

Commands (last 7 days)

  • Work Item queries: 564,970 (up 106,437)
  • Work Item updates: 29,854 (down 8,574)
  • Work Item opens: 156,578 (down 56,465)
  • Gets: 792,700 (up 470,385)
  • Downloads: 52,063,240 (down 44,994,791)
  • Checkins: 7,247 (up 515)
  • Uploads: 159,837 (up 49,135)
  • Shelves: 4,238 (up 1,134)

Brian

Posted by bharry | 2 Comments

Another innovation in the evolution of Hotfixes

I've been keeping you all abreast of changes in our Hotfix plans.  More than a year ago, we introduced the notion of advertising hotfixes and enabling people to browse and download the hotfixes the find most useful.  Prior to that, the only way to get a hotfix was to call customer support with a problem and have them determine that one of our available hotfixes would solve it.  Six months or so ago, we introduced a new and much improved site (MSDN Code Gallery) for searching for and browsing hotfixes.  We also enabled notification via an RSS feed.

We have just added a new capability - localization of all Hotfix information.  Hotfix descriptions are now available in 10 languages (including English).  When you go to MSDN Code Gallery, you will now see a page with links for each of the supported languages.

clip_image002

I hope our international customers will find this to be a big help in keeping their VS, VSTS and TFS products up to date.

Brian

Expression and TFS

Warning - this is early information and is subject to change but the Expression team cleared me to say something about it.

We get a lot of feedback from customers who would like more seamless integration between Expression and the rest of their development team using TFS.  Last week I saw a demo of work being done that will result in TFS source control integration into Expression Web and Expression Blend.  It was very nice.  All of the basic operations were there - add, checkout, undo checkout, history, diff, checkin, etc.  Checkin even used the same dialog as Team Explorer so you get full fidelity - work item integration, checkin policies, etc.

It was exciting to see us making progress in this key area.  I'm told this is all going to be in the next version of Expression - of course, I don't have any release date to announce :).  However, keep your eyes open for pre-releases (like CTPs) and check out the TFS integration.  We'll be eager to hear your feedback.

Combine this with the recent release of TFS integration for Dynamics developers and we are really making progress on ensuring everyone can participate in team development regardless of what kind of development you do.

Brian

TFS on Hyper-V

With the announcement of the release of the new Microsoft Hyper-V virtualization technology, I've seen a surge of questions about TFS support for Hyper-V.  We have tested TFS running in a Hyper-V virtual machine.  It works well and is officially supported.

TFS Components & Support

One thing to keep in mind is that there are 2 major components of a TFS server.  The first is the TFS application tier.  It runs fine in Hyper-V, Virtual Server and VMWare.  You must remember that the TFS application tier in TFS 2005 and TFS 2008 is 32-bit only - so, if you are going to use it on a 64-bit Win2008 machine running Hyper-V, for example, you will need to run a 32-bit OS in its VM.  Our support team will work with you on support issues regardless of which virtualization technology you use.  However, we may ask you to reproduce problems outside of the virtual environment if we suspect it is causing a problem.  The exception to this is Hyper-V.  With Hyper-V, we are introducing full support on the virtual environment.  We (Microsoft) are also working on a certification program so that all virtualization technologies that meet the requirements can achieve the same level of support.

The second major component of a TFS server is the data tier.  The data tier is a SQLServer and the only TFS code that runs on it is TSQL stored procedures.  Of course, in a single server TFS install the application tier and the data tier run on the same machine.  My understanding is that SQL server 2005 and before do not officially support any virtualization technology.  SQL is introducing virtualization support with SQL 2008.  If you are going to use TFS with SQLServer 2008, make sure you use TFS 2008 SP1 (to be released this summer).  In general, my advice to TFS customers has been that it's fine to run the TFS application tier in a 32-bit VM but always run the SQLServer on native hardware (preferably on 64-bit if you need the system to scale).  One reason for this is for performance (see more below).  Another reason is that I have seen one or two instances of data corruption problems with SQLServer running in an improperly configured VM - the one that comes to mind was a customer who was running SQLServer in a VMWare VM and had delayed I/O enabled in the VM.  Delayed I/O is not something you want at all on a SQLServer machine - it violates key guarantees that SQL relies on to guarantee data durability.

Virtual Machine Performance Guidance

I often get asked about recommendations about hardware configuration for virtualization.  I generally focus on 2 things: memory and disk I/O.  The memory recommendation is pretty easy.  If you want to run TFS in a VM, remember that there is also a host OS running.  Sum up the memory requirements of every app in every VM you are running on the system and add about 1GB for the host OS.  I've generally found that algorithm to work well for people and I expect it will work well for Hyper-V as well.

The more complicated one is I/O.  One of the historical problems with virtualization technology is that it adds overhead when virtualizing I/O (in this case I'm mostly concerned about disk I/O).  A high scale TFS server performs a ton of I/O and any overhead can be a problem.  Fortunately, disk I/O on the application tier is generally not too high (except in the most high scale systems).  The only major source of I/O is a file cache that reduces the load on the SQLServer for commonly requested files.  TFS's use of SQLServer, however, can be very I/O intensive.  My advice to anyone running any I/O intensive application in a VM is to make sure you have a high performance disk subsystem.  Error on the side of extra disk performance.  For example, use 10K RPM or better drives, consider using RAID 10 that enables more concurrent I/O.  Make sure you have a good disk controller card.  If your system is particularly high scale, consider using a high performance SAN.

Some of this guidance may change over time with Hyper-V.  Hyper-V is a very efficient virtualization technology but I don't have enough experience with it yet to say for sure how it will affect these recommendations.  As I learn more I'll keep you up to date.

Good luck and let me know if you have good or bad experiences with TFS and Hyper-V.

Brian

Posted by bharry | 8 Comments

Automating the creation of Team Projects

Since I announced the ability to automate the creation of Team Projects in my TFS SP1 feature set post and my March Power Tools post, I've gotten several questions about the format of the XML file you need to create and pass to:

tfpt createteamproject /settingsfile:"filename.xml"

I've attached the XML schema to this blog post and included a sample settings file.

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="ProjectCreationSettingsFileSchema.xsd">

    <TFSName>A Valid TFS server</TFSName>

    <LogFolder>
      c:\RemoteTFSProjectStarte
    </LogFolder>

    <ProjectName>
      Batch Project Creation Demo 23
    </ProjectName>
    <ProjectSiteTitle>
      <!-- default to project name if not specified -->
      Batch Project Creation Demo 23   
    </ProjectSiteTitle>
    <ProjectSiteDescription>
      <!-- default to empty string if not specified -->
      Project Description
    </ProjectSiteDescription>
    <SccCreateType>
      <!-- none | new | branch -->
      Branch
    </SccCreateType>
    <SccBranchFromPath>
      <!-- string.Empty for none and new; supplied for branch -->
      $/test44
    </SccBranchFromPath>
    <ProcessTemplateName>
      MSF for Agile Software Development - v4.2
    </ProcessTemplateName>
</Project>

Hopefully this helps make it more clear,

Brian

Posted by bharry | 6 Comments
Filed under:

Attachment(s): ProjectCreationSettingsFileSchema.xsd

Rally connects to TFS for Agile project management

Today Rally is announcing that they have built a connector to enable its web based Agile project management tool to connect to TFS.  This new connection enable source code checkins and TFS builds to be tied to the project management features in Rally, enabling a more comprehensive picture of the state of your projects.

Rally is hosting a web cast on June 25th at 10AM PDT.  Click here to read more and to register for this web cast.

Here's Rally's press release: http://www.rallydev.com/press_release_080623.jsp

Brian

Posted by bharry | 2 Comments

TFS support for Dynamics developers

Less than a month ago, Dynamics AX 2009 was released.  This new version enables Dynamics developers to store their source code and have an integrated experience for checkout, check in, get and history - the basic version control operations in TFS.  I'm excited about this because I get the question fairly often and people are always surprised when I tell them we don't have a solution.  Now I don't have to disappoint any longer.

It's great to be able to bring a whole new community of developers into the Team System collaborative development fold.  You can get a peek at what is there today by viewing this screencast.  I expect future versions of Dynamics AX will integrate additional TFS features.

If you are interested in giving this new combo a try, you can look at this whitepaper for how to set it up: http://www.microsoft.com/downloads/details.aspx?FamilyId=EFC24EDC-522E-40AA-8F36-6367ED7AB92D&displaylang=en

Let me know what you think,

Brian

Posted by bharry | 4 Comments

PDC 2008 & precons

Preparation is in full swing for the Microsoft PDC this fall (Oct 27 - 30).  PDCs are the primary event where we talk about the future (as opposed to events like TechEd where we primarily talk about the present).  This PDC promised to have a great deal of new content for developers.  Among them, I think this will be the first conference where we really talk in depth about what is coming in the Team System release code named "Rosario".  If you are passionate about ALM, it will be a great show.

In addition to the core PDC event, there will be a set of pre-conference presentations the preceding day.  Among them will be sessions on VSTS today to position you to really understand the "tomorrow" stuff coming in the PDC.  There is also a great session on Agile development.  Check them out if you are interested.

I'm planning on being at the PDC and look forward to seeing you there.

Brian

More Posts Next page »
 
Page view tracker