blogs.conchango.com

welcome to the conchango blogging site
Welcome to blogs.conchango.com Sign in | Join | Help
in Search

Stuart Preston's Blog

Mostly about Visual Studio Team System, Team Foundation Server, Engineering Practices and Application Lifecycle Management.

  • Test your web design in different browsers - for free

    Whilst surfing this morning I found this website: http://browsershots.org 

    "Browsershots makes screenshots of your web design in different browsers. It is a free open-source online service created by Johann C. Rocholl. When you submit your web address, it will be added to the job queue. A number of distributed computers will open your website in their browser. Then they will make screenshots and upload them to the central server here."

    Once you've submitted the site, you can view the results as they come in, and download all the screenshots in a single file.  Very neat.

    image

    image

  • MSBuild Project Template v2.0

    Last year I created an MSBuild Project Template that lets you work with Source Control (e.g. Team Foundation Server) and decent syntax highlighting by default when using MSBuild proj files.  It was fairly well received and I finally got time today to implement a couple of the suggestions that have come up in the intervening 8 months.

    I've uploaded the resulting template to http://www.codeplex.com/MSBuildTemplate

    The major changes are as follows:

    • The source code to a HelloWorld custom task is now included instead of the pre-built task.
    • I've changed the debugging parameters so that you can step through custom tasks by putting breakpoints in.
    • The template dynamically generates the reference to the task binary based on the ProjectName specified.

    Usage is just as before, first of all download the project template from here http://www.codeplex.com/MSBuildTemplate, then drop the entire zip file into your Documents\Visual Studio 200x\Templates\ProjectTemplates folder (don't expand it!!!).  Restart Visual Studio and create a new project.  You should see the "MSBuild Project" template appear under My Templates.

    image

    Once you have created a new Project (and Solution if necessary), your solution will be structured like this:

     image 

    Pressing F5 will compile the Custom Task and start the MSBuild.exe (v2.0) with the Build.proj as its parameter.  The custom task can be debugged directly from the IDE.  Set a breakpoint within the task and start debugging to see what I mean.

    image

    As before, please leave comments for improvements on this site or on the Codeplex site.

  • Scrum for Team System v2.0 Beta 1 - released.

    It turns out that more of you than expected have access to Visual Studio 2008 Team Foundation Server already and are desperate to evaluate Scrum for Team System v2.0 - so we changed our plans slightly to put out an early version for evaluation.

    We're hosting the download on our community forum.  You'll need to create an account to sign in and get it.  The same logon will give you access to our community support site.  Visit http://scrumforteamsystem.com/forum to sign up, and you'll be able to visit the Beta forum and download the MSI to install on your TFS 2008 server.

     

    So what have we achieved in this release?  Quite a lot! - here's just a partial list:

    • We've finally got rid of our demons and are now using the 'Iteration Path' to define the hierarchy of Project/Release/Sprint. This means that those ambiguous Sprint numbers are not required, and items on the backlog can easily be moved from one release to another (especially easy with the Excel integration).  It also means that when you 'Add Related Work Item' - the Sprint name is copied to the new work item.

     

    • We've added support for using User Stories and associated terminology in the backlog, for example you can specify 'Conditions of Acceptance' in the Product Backlog with an estimate in Story Points or Days.
    • We've added a 'Ready for Test' state to the Sprint Backlog Item to allow for better workflow between developers and QA on the project.  This should minimise the number of bugs/defects that aren't related to tasks for this sprint.
    • A new work item type 'Bug' is modelled on the Product Backlog Item and allows for capture of bugs/defects that are raised 'out of sprint' - such as those raised by a UAT cycle, or a bug that isn't critical that the Product Owner can help prioritise.  The Bug work item type also allows for input of Replication Steps and other details you would associate with bugs (and of course you can add your own fields to capture more if you desire).
    • The project portal has been updated, and we allow management of the 'Teams' and 'Environment' lists using this interface.  This means there are no longer any client tools required to setup the project.  The Project Portal now only runs on WSS 3.0 and we've included some WSS 3.0 features such as the Wiki and Team Discussion by default in the template.

     

    • Backend services have been completely rewritten for efficiency.  We still have the service running to keep the Work Remaining in sync between the Product Backlog Item and its related Sprint Backlog Items, and have added a service that automatically sets Product Backlog Items 'In Progress' when related Sprint Backlog Items are being worked on.

     

    We've selected a subset of the refreshed reports for this early release, including the Sprint and Product Backlog, Product Backlog Composition and Sprint View (aka Sprint Wall). We've also incorporated a large number of community suggestions from our Feature Request forum, and will continue to do so where we have the capability within the platform.



    We're still working on the Process Guidance, technical documentation and reports so bear with us whilst we get these items complete.  Once we have the final release ready, we will issue an updated installer that allows you to upgrade the reports to the final version.  This will be available free of charge on our website http://scrumforteamsystem.com

    We look forward to your feedback on this version of Scrum for Team System, which can be sent to sfts.beta@conchango.com or logged on our forum at http://scrumforteamsystem.com/forum
  • At the Agile Development Practices conference? Stop by and say hello.

    As I alluded to in an earlier blog post, I will be making a flying visit - literally, to the Agile Development Practices 2007 conference in Orlando on Thursday December 6th 2007 between 10am-11am, presenting the latest version of Scrum for Team System.

    The session will be a joint one with Cory Foy with a live demo of Scrum for Team System v2.0. Here's the abstract:

    As agile practices have become more commonplace in the enterprise, teams have found that having an integrated set of tools can help them be more productive in their day to day environment – if those tools are integrated and stay out of the way. With the latest release of Visual Studio Team System, teams practicing XP, Scrum and other agile methodologies have a powerful tool to add to their toolkit. In this talk, we will discuss how Visual Studio Team System can integrate with teams following XP and Scrum, and show powerful new tools like integrated requirements tracking, Continuous Integration, automated builds and unit testing. In addition, we will explore where the toolset fits in to an XP practice and see a demonstration of the latest version of Scrum for Team System by Conchango.

    If you planning to be there, stop by and say hello - I'll be hanging around after the session (probably near the Microsoft booth) to answer your questions on usage of Scrum for Team System.

    See you there!

  • Conchango announces Scrum for Team System v2.0 Standard Edition

    It has been a busy time here at Conchango as we've been making plenty of changes to get Scrum for Team System working on Visual Studio 2008 Team Foundation Server and also incorporating changes driven by community feedback and usage of the plugin on our own development projects.

    We should be ready to release after we have tested all the components on the RTM of Visual Studio 2008 Team Foundation Server and Team Suite.

    I'll be writing more about the release in the coming weeks but here's a press release, going out today to whet the appetite:

    At the Scrum Gathering this week, Conchango is announcing that Scrum for Team System v2.0 Standard Edition will be made available to download free of charge from http://www.scrumforteamsystem.com to coincide with the general availability of Visual Studio Team System 2008.

    Community feedback has driven much of the enhancements, which builds on the success of the first version.  The enhancements include:

    • A new Release and Sprint model.
    • Sophisticated bug resolution workflow.
    • Multiple release views of the Product Backlog.
    • Day by day Release Burndown report.
    • Support for User Story format in the Product Backlog.
    • Support for estimates in Story Points or Days in the Product Backlog.
    • Improved reporting functionality and performance.
    • Compatibility with Visual Studio Team System 2008.
    • Compatibility with Windows SharePoint Services 3.0.

    We are still working on tasks for release, and will make further information available as soon as the template is released publicly.

    I'll hopefully be demoing Scrum for Team System v2.0 at the Agile Development Practices conference in Orlando on December 6th 2007.  Watch this space for more information.

  • Fix for incorrect prompt to save during WPF builds (Visual Studio 2008 Beta 2)

    A patch has been released for those who are using Visual Studio 2008 (Orcas) Beta 2, WPF project types and using Team Explorer as the selected source control plugin.  The issue manifested itself as a message prompting you to save when you build a WPF project (even if you had just done a save all).

    Get the patch here: http://www.microsoft.com/downloads/details.aspx?familyid=f5bec6c2-4ef5-44f4-b149-3792acefed94&displaylang=en&tm 

    [Updated 10th September 2007] - There are more patches available.  From Brian Harry's blog:

    TFS Server

    • KB941952 - Visual Studio 2008 Team Foundation Server Beta 2 - Version Control Branch/Merge operations have unexpected behavior
    • KB942080 - Visual Studio 2008 Team Foundation Server Beta 2 - Deleting and re-adding Team Foundation Server global groups with the same name without closing the global groups dialog does not actually delete the original group

    Team Explorer Client

    • KB942039 - FIX: Visual Studio 2008 Team Explorer Beta 2 - Incorrect folder handling for Web Projects 
    • KB942072 - Visual Studio 2008 Team Explorer Beta 2 - Incorrect prompt to save during WPF builds 
    • KB942048 - Visual Studio 2008 Team Explorer Beta 2 - Web Projects no longer appear in Version Control and Annotating a file under source control hangs Visual Studio 

    Team Build Server

    • KB942082 - Visual Studio 2008 Team Build Beta 2 - Builds fail after renaming the build definition
  • VSTS: "No commands available" in Source Control Explorer a.k.a. "everything is greyed out?!"

    This one comes up frequently in our development teams, especially those who have transitioned a project off VSS and into Team Foundation Server.  The question usually goes something like:

     "Someone has installed VS 2005 + Team Explorer on an existing Windows XP box.  They login using their domain credentials open VS 2005, they have access to TFS via Team Explorer. When every they try to view the source control everything is grayed out?
     
    Source Control Explorer has not created an work space but on their Vista machine they have access and an work space, do you know what can be the problem?"

    Well, the most likely problem is that their VS is not setup to use Team Foundation Server as the source control plugin.  To resolve this, visit Tools > Options > Source Control and select "Visual Studio Team Foundation Server" from the list.

  • Sharepoint/WSS Bulk Upload Tool

    [Updated: 7th August 2007 - So many of you left me comments asking for the source code in the last 2.5 years, I've attached it to this post.  Unfortunately I lost the original code, but have recreated it from the assembly.  It has a dependency on .NET Framework 2.0]

    Some while ago now, I wrote a tool to automate the uploading of an entire folder and subfolders into a Sharepoint/Windows Sharepoint Services Document Library.  It uses some simple WebDAV calls to do all the uploading/folder creation.  I've tidyed it up a little, and put a link to the file below in case anyone else finds it useful.

    Note: If run repeatedly, the documents are overwritten in the target document library, so be careful!  Of course, the tool runs in the context of the calling user, so you need to ensure you have the relevant rights in order to create the remote files/folders!

    Bulk Import Tool

     

  • Downloading Visual Studio Rosario August CTP

    Visual Studio Rosario August 2007 CTP (including TFS) is available here: http://www.microsoft.com/downloads/details.aspx?FamilyId=8450EFF5-24AD-44C3-AB91-1ED88EF2F4F0&displaylang=en.  As the installation/setup is not complete, only a VPC is being provided.

    Remember you will need a Base image.  If you downloaded any of the Orcas CTP's - you already have it on your machine.  Otherwise get it from here: http://www.microsoft.com/downloads/details.aspx?FamilyId=8450EFF5-24AD-44C3-AB91-1ED88EF2F4F0&displaylang=en

    Downloading the rest of these CTP's can be a tedious task.  Microsoft send all requests through a single hostname: download.microsoft.com - and because of the built-in restriction to 2 connections per server in WinInet, based on the HTTP 1.1 specification - you cannot download more than two of the parts of Rosario at the same time.  The KB article tells you how to increase the limit. 

    My preferred way though is to use a port of the unix tool wget (download from: http://pages.interlog.com/~tcharron/wgetwin.html) and provide it the list of URL's.

    For convenience, here is the list of URL's for Visual Studio Rosario August CTP:

    http://download.microsoft.com/download/e/e/9/ee94ab2d-2093-4a9b-a74c-21c5be4feda4/Aug2007RosarioCTP_TFSVSTS_9PartsTotal.part01.exe
    http://download.microsoft.com/download/e/e/9/ee94ab2d-2093-4a9b-a74c-21c5be4feda4/Aug2007RosarioCTP_TFSVSTS_9PartsTotal.part02.rar
    http://download.microsoft.com/download/e/e/9/ee94ab2d-2093-4a9b-a74c-21c5be4feda4/Aug2007RosarioCTP_TFSVSTS_9PartsTotal.part03.rar
    http://download.microsoft.com/download/e/e/9/ee94ab2d-2093-4a9b-a74c-21c5be4feda4/Aug2007RosarioCTP_TFSVSTS_9PartsTotal.part04.rar
    http://download.microsoft.com/download/e/e/9/ee94ab2d-2093-4a9b-a74c-21c5be4feda4/Aug2007RosarioCTP_TFSVSTS_9PartsTotal.part05.rar
    http://download.microsoft.com/download/e/e/9/ee94ab2d-2093-4a9b-a74c-21c5be4feda4/Aug2007RosarioCTP_TFSVSTS_9PartsTotal.part06.rar
    http://download.microsoft.com/download/e/e/9/ee94ab2d-2093-4a9b-a74c-21c5be4feda4/Aug2007RosarioCTP_TFSVSTS_9PartsTotal.part07.rar
    http://download.microsoft.com/download/e/e/9/ee94ab2d-2093-4a9b-a74c-21c5be4feda4/Aug2007RosarioCTP_TFSVSTS_9PartsTotal.part08.rar
    http://download.microsoft.com/download/e/e/9/ee94ab2d-2093-4a9b-a74c-21c5be4feda4/Aug2007RosarioCTP_TFSVSTS_9PartsTotal.part09.rar

    Simply save the above list into a text file (one URL per line), and use "wget -i <filename>".

  • WorkItem Date Picker control - not necessary?

    Paul Hacker wrote about a WorkItem date picker control for TFS:

    I have just made available a workitem control that will allow you pick a Date from a calendar rather than having to enter in a date freeform into workitems. I went as far as to create an msi for easier deployment (not that it’s really hard) . I have also included a read me and a sample workitem that you can use as a reference. Please let me know what you think, I find it useful and hope you will to.

    http://phacker.wordpress.com/2007/07/28/workitem-date-picker-control/

    I haven't downloaded and tried it yet, but I wonder if he has overlooked one of the built in TFS controls - DateTimeControl.  On a form in a WIT, you can specify a <Control Type="DateTimeControl"... rather than <Control Type="FieldControl"... 

    E.g.

    <Column PercentWidth="50">
          <Group Label="Status">
           <Column PercentWidth="33">
            <Control Type="DateTimeControl" FieldName="MyClient.StartDate" Label="Start Date" LabelPosition="Left"/>
            <Control Type="DateTimeControl" FieldName="MyClient.EndDate" Label="End Date" LabelPosition="Left"/>
            <Control Type="FieldControl" FieldName="System.State" Label="Current Status" LabelPosition="Left"/>
           </Column>
          </Group>
    </Column>

    In addition, there's an undocumented "Format" and "CustomFormat" attribute you can use to style the control.  See http://blogs.msdn.com/narend/archive/2007/02/09/hidden-attributes-to-control-your-work-item-form-layout.aspx

    One limitation I have found is that when you use the DateTime control, the current time is stored, no matter what date you pick.  This seems to be a limitation of the underlying Field storage mechanism. This is a limitation of the .NET DateTime control which behaves in a similar way to how it does when used in a Winform application (i.e. passing the current time when you don't explicitly set it).

    [Edit] The underlying field storage mechanism does indeed support full precision date times.

  • Using MSBuild with the Visual Studio IDE and Source Control

    There are a few things that slow down development of MSBuild-based solutions with Visual Studio.  Typically MSBuild files are named with .proj, .properties or .targets extensions - so when you drag one of these files into the Visual Studio IDE there is no Intellisense.

    To get around this, go to Tools > Options > Text Editor > File Extension - and associate these extensions with the "XML Editor with Encoding".

    Working with MSBuild and Source Control (for example Team Foundation Server or VSS) can also be bit problematic.  MSBuild doesn't have a project file like C# (.csproj) and VB.NET (.vbproj) projects do - so typically when you need to edit an MSBuild file you need to navigate into the Source Control Explorer, check out the files you want to work on, make your changes, and then check back in using the Pending Changes window.  This is a little tedious, so on a recent plane journey back to the UK from Houston I set about making a Project Template that will make this slightly easier. 

    I started with a C# project and played around with the project file in both the IDE and a text editor until it could support the following:

    • Executing an MSBuild script when pressing F5. (typically a per-user setting).
    • Having "Build.proj" set as the default file with the correct namespace to get Intellisense support.
    • Detecting changes to files in the project and automatically checking out the relevant file so it is a Pending Change.
    • Showing all files in the project (typically a per-user setting).
    • Finally, for demo purpose, integrating an example "HelloWorld" Custom Task assembly to the default MSBuild file.

    The initial feedback I got internally was that it was useful, so I've decided to release the project template. 

    Usage is pretty simple, first of all download the project template from here http://www.codeplex.com/MSBuildTemplate, then drop the zip file into your Documents\Visual Studio 2005\Templates\ProjectTemplates folder (don't expand it).  Restart your Visual Studio and create a new project.  You should see the "MSBuild Project" template appear under My Templates:

     

    You can optionally add the file to the Source Control of your choice (e.g. Team Foundation Server):

    Here's a screenshot of the default structure with all the new files ready to check-in:

       

    When you are ready to debug changes to your MSBuild file, hit F5 to execute the MSBuild script.

    I personally plan to use it for the purpose of speeding up the debugging of an MSBuild custom task (by adding a Class Library project, setting that project as a dependency to my MSBuild file and setting the output of the Class Library to go to the /bin folder of my Build project).  There are a bunch of other uses for it I'm sure... if you can dream up some improvements feel free to leave a comment - contributors to the template are welcome.

  • National Rail Enquiries: Live Departure Boards Vista Sidebar Gadget - v1.0 released!

    Finally I can announce that over the last few months we have been helping National Rail Enquiries in the UK develop the official Live Departure Board Sidebar gadget for Windows Vista and today the gadget is available for download from this page at Windows Live Gallery: http://gallery.live.com/liveItemDetail.aspx?li=aef90e44-18cf-4246-b1d9-4ab83e0e13db 

    Some of you will remember that this gadget originated from a proof of concept and enhancements to that proof of concept that I had been working on for some time to demonstrate the capabilities of the Windows Sidebar so I'm quite proud to see this go live today.

    Here are some screenshots of v1.0:

    Screenshot: Main gadget with flyout open.

    Screenshot: Gadget selection window (drag multiple instances of Live Departure Boards onto your sidebar to watch multiple stations)

    Screenshot: Gadget refresh disabled.  This occurs if you don't have a working internet connection or a screensaver is running (to save bandwidth).

    Screenshot: Station messages.  When important messages arrive the message icon is shown.  Clicking on it brings up a small window with the messages for that station.

    We have decided for now to limit the gadget to only showing departures (which accounts for the majority of usage on the existing Live Departure Boards website).  There are future plans for the gadget being put in place, so feel free to leave a comment with your suggestions on how it could be improved.

    You can also read a press release about the gadget here: http://www.conchango.com/Web/Public/Content/NewsRoom/PressReleaseDetails.aspx?PageID=314

  • Dynamic C# code execution inside an MSBuild script.

    One thing Powershell has that MSBuild hasn't is a scripting engine that can access the .NET core libraries directly.  For example, in Powershell you could use the following function to get the current day of the week and assign it to a variable:

    $a = (get-date).dayofweek

    In the MSBuild world we are restricted to writing a custom task to access the .NET core libraries, but I thought I'd have a go at writing a stepping stone when you just want to access .NET from within MSBuild without having to compile anything.  The result is essentially a fusion of a basic MSBuild custom task and CodeDom technology and the source code is attached. 

    Here is a simple example of its usage:

    This script simply returns the Day of the Week and assigns it to the $(DynamicCodeResult) property so it could be later used in the script.

    I realised I needed to add a way of injecting references into the code so it would compile (for example if I wanted to use the System.Xml namespace).  So I added this support, resulting in the following slightly more sophisticated example:

    Simply, this piece of code loops through an RSS feed and pulls out the title of each post.  Note the additional "Using" and "ReferencedAssemblies" attributes on the DynamicCode task.  I'm sure you get the idea. 

    I've only supported C# and a return type of string for now from the dynamically executed code but the source is attached so feel free to make some customisations and leave a comment on how you are using it.

  • Anyone interested in a UK VSTS User Group?

    After speaking to some people last week at TechEd US about how under-represented the UK is in the Team System and Team Foundation Server community as a whole, I am thinking about setting one up.  As a result I would like to invite anyone who will help me co-ordinate or present at a UK VSTS user group to get in contact using the contact form on this blog.

    The format I propose is an informal one, probably an evening every two months (or more frequent if necessary) in London.  If you would be interested in attending or presenting at such a community, please get in touch with some suggested topics - once I have some numbers and speakers confirmed I'll post the next steps...

  • TechEd 2007: Visual Studio 2008 (previously Orcas) "May 2007" CTP

    Just quickly wanted to post one thing that came up in David R. Williamson's excellent session on Testing with the Visual Studio 2008 toolset at TechEd.

    He mentioned there would be a "May 2007 CTP" of Visual Studio 2008 which is from the Beta 2 codeline imminently, with Beta 2 following in late summer so depending on how eager you are to try out the tools look out for these!  I'm sure Brian Harry will have the announcements with the feature list in when it becomes available.

More Posts Next page »
Powered by Community Server (Personal Edition), by Telligent Systems