Buck Hodges

Visual Studio Online, Team Foundation Server, MSDN

Posts
  • Buck Hodges

    Microsoft to expand small Durham office

    • 1 Comments

    The News & Observer wrote an article about Brian, Craig, and our office.

    Microsoft to expand small Durham office

    DURHAM -- Brian Harry jokes that he called Microsoft the evil empire before it was popular to do so.

    "I only ever worked for start-ups, and in those days, I viewed it as a behemoth," said Harry, 38.

    Now he runs a development office in Durham for the world's largest software company. It is an office that has operated in relative obscurity since it began almost three years ago, and one that is now poised for big expansion.

    If you are curious about the office, here are the stats in brief.

    WHERE: Durham

    WHAT IT DOES: Employees build pieces of Microsoft's Visual Studio product. It is used by developers to create programs that operate on Windows.

    NUMBER OF EMPLOYEES: 40

    FUTURE PLANS: To hire about 60 people during the next year as it expands locally. It's hiring for many roles, including developers and testers.

    TO APPLY: Send resumes to vsncrec@microsoft.com.

  • Buck Hodges

    Add an RSS feed to Team Foundation Source Control

    • 1 Comments

    Jeff Lucovsky posted a nice two-part series on setting up an RSS feed for your Team Foundation source control server.  Check it out.

    Team Foundation RSS Feed Generator for Source Control
    Part 2: What's my source control server doing? A RSS feed to keep track of checkins

  • Buck Hodges

    VSTS 2005 FAQ blog posts fixes for known issues

    • 1 Comments
    The Visual Studio 2005 Team System blog functions as sort of a FAQ in blog form.  They've started posting known issues and workarounds for the new beta release.  The first two posts are about the problems antivirus software can cause during setup and what to do about AD/AM setup failures due to spaces in paths.
  • Buck Hodges

    Data tier load with Team Foundation beta

    • 20 Comments

    Did you install your beta data tier in Virtual PC or Virtual Server and see a high CPU load while its running?  Even on real hardware, you may notice some load when nothing would appear to be going on.  Someone mentioned on an internal mailing list that the data tier CPU load for a combined app and data tier installed in Virtual Server was quite high, averaging about 50-70% with most of that time being used by SQL analysis services (msmdsrv.exe).

    Well, here's the answer (I didn't write the question or the answer, but I hope people find it useful).

    The warehouse was designed to run processing every hour. For demo purposes the period was changed to 2 minutes in beta 2. On a weak system or a virtual machine you will see this behavior.

    Change the run interval on the app tier as follows.

    1. Stop TFSServerScheduler using 'net stop TFSServerScheduler'.
    2. Go to http://localhost:8080/Warehouse/warehousecontroller.asmx using a browser on the app tier.  Click on ChangeSetting and enter the following values and then press the 'Invoke' button (3600 seconds = run once per hour).
      1. settingID: RunIntervalSeconds
      2. newValue: 3600
    3. Restart TFSServerScheduler using 'net start TFSServerScheduler'.

    Note: It is important to restart TFSServerScheduler, as the interval is cached and will not take effect until the next run.

    You can also manually kick off the data warehouse.  Here are the steps to do so:

    1. Go to http://localhost:8080/Warehouse/warehousecontroller.asmx using a browser on the app tier.
    2. Click the ‘Run’ link.
    3. Press the ‘Invoke’ button.

     This will trigger a refresh of the reports.

    [Update]  Thanks to Mike for pointing out the the original instructions were a little rough.  I've updated them.

    [Update 2] Added msmdsrv.exe to the text to (hopefully) make it easier for folks to find the post when they notice that the Yukon April CTP Analysis Services process is consuming a lot of CPU time.

  • Buck Hodges

    Visual Studio Team Foundation Forum on MSDN

    • 2 Comments

    Speaking of the forum, be sure to check out the Visual Studio Team Foundation forum.  Folks like Mike have posted useful information, and lots of MS folks are answering questions.  You may even get an answer from Rick LaPlante.

    The MSDN forums are nice, and they've obviously put quite a bit of work into them.  The forums are supposed to eventually replace the newsgroup, but I'm having a hard time finding what I haven't read once a thread changes.  Clicking through pages on the web site is too time consuming.  I was hoping that SharpReader was the answer since the forum has an RSS feed, but that's not been what I've expected.  I really miss being able to see quickly what I haven't read the way that Outlook Express shows newsgroup messages.  I'm hoping Josh Ledgard can help me see what I'm missing.  What I'd like to have is sort of a threaded RSS feed that SharpReader would use to show me what threads and replies I haven't read.  I answered pretty regularly on the newsgroup, and I'd like an easy way to do that now.  The tip about changing mode=0 to mode=1 is interesting, but it doesn't seem to do the trick either.

  • Buck Hodges

    SQL Server Reporting Services Permissions and Visual Studio Team Foundation Beta 2

    • 2 Comments
    Mike Attili has a nice post on fixing reporting service permissions, Problems with SQL Server Reporting Services Permissions.  Bruce Taimana answered his post in the forum stating that was the correct way to handle it in the beta.
  • Buck Hodges

    VSTS pricing announced

    • 5 Comments

    VSTS pricing is always a popular topic (see posts in January and June).  Finally the speculation is over, and the pricing was announced publicly today.

    Microsoft Details Pricing and Licensing for Visual Studio 2005 and Simplifies Microsoft Developer Network Subscriptions
    http://www.microsoft.com/presspass/press/2005/mar05/03-21VS2005PR.asp

    Frequently Asked Questions
    http://msdn.microsoft.com/howtobuy/vs2005/faq/default.aspx

    [Update 3/24] Rick LaPlante, general manager of VSTS, posted a great pricing grid here.  He also talks about the server pricing.

  • Buck Hodges

    Visual SourceSafe to Team Foundation Walkthrough

    • 1 Comments

    Akash has posted two articles explaining how to use the conversion tool, VssConverter.exe, to migrate from Visual SourceSafe to Team Foundation Source Control.

    Walkthrough for migrating from Visual SourceSafe to Team Foundation

  • Buck Hodges

    Team Foundation Dogfood

    • 5 Comments

    We're rapidly approaching the time for Whidbey Beta 2.  It is the first beta for Team System as a whole.  As a part of that, we'll be using it as our dogfood system.  I'm really looking forward to that, as each new dogfood "release" allows us to make more extensive use of features in the system.  We also get features that were missing, performance gains from tuning the system, usability improvements, and more robustness.

    John Lawrence, one of the Team Foundation dev managers, has posted the statistics for the current dogfood system that Team System uses.  Keep in mind that we are using the Dec. CTP release with patches.  That's right -- the code base for the system we use every day is essentially from mid-November.

    One of the very useful features that was rolled out for the first time with the current dogfood system was shelving.  Shelving has been very popular.  Developers use it constantly for everything from backups to code reviews.  You'll notice in John's post that there are 195 shelvesets in the system right now.  That's not counting all of the short-lived shelvesets that people created and deleted before the stat was snapped.

    The previous dogfood system we put in place actually remained in service for about six months.  That was the Whidbey Beta 1 Refresh with patches.  We got a lot of mileage out of that system.

    Our very first source control dogfood system (the current dogfood system has all the pieces of Team System) was one we set up over a year ago in one team member's office.  The Hatteras team used and ran that server for all Hatteras development.  Even at that early stage, we were able to make good use of it and not lose any data.  But we were only using Hatteras at that point.

    The current dogfood system is hosted in Redmond.  Our office is in Durham, NC.  The connection from our office to the corporate network is but a small fraction of what a corporate network provides.  That means we get the same experience as our customers with geographically-dispersed teams (we also have users on a couple of other continents).  I'm pleased to say that it's been an overall good experience.

    We've come a long ways from those earlier dogfood systems.  It's amazing to look back on how much has changed and how much we have learned in the process.  The experience has changed the product in significant ways.

    We are our customers.  Our colleagues are our customers.  We all provide feedback on the system, both on what works well and what we find frustrating.  It's made the product better.

  • Buck Hodges

    Installing the December CTP Release of Visual Studio Team System

    • 2 Comments

    There's now a very detailed article on MSDN describing how to install VSTS on Virtual PCs.

    Installing the December CTP Release of Visual Studio Team System by David C. Bost
  • Buck Hodges

    Overview of Branching, Merging, and Shelving

    • 2 Comments

    I wrote a post for the Team Foundation blog providing an Overview of Branching, Merging, and Shelving.

  • Buck Hodges

    Network programming links

    • 0 Comments

    Adarsh Khare, who is a tester for the .NET networking classes, has useful blog.  Recent posts include the new NetworkInformation namespace that includes things like network availability events and a reference to an MSDN article on running ASMX without IIS.

  • Buck Hodges

    Team System Feedback

    • 1 Comments
    Paul D. Murphy has a few good things to say about Team System in his Oh man is Team System Sweet post.
  • Buck Hodges

    BisRegEdit and related Dec. CTP mysteries

    • 1 Comments
    Check out Jeff's new weblog.  His post from Monday may shed some light on Dec. CTP mysteries if you've ever run into messages regarding bisregedit.  Why BisRegEdit is sometimes the reported culprit of a failed install
  • Buck Hodges

    Using branching in source control to meet Sarbanes-Oxley requirements

    • 1 Comments

    Someone posted this question recently in the newsgroups.

    I have a question concerning promotion processes using Source Control. Due to requirements from Sarbanes-Oxley (SOX), we will need to have tight controls on source code that is being checked into UAT and Production such that it will pass an audit showing that is being tightly controlled by the properly authorized personell. This, of course, is different from the requirements in the normal day-to-day development process.

    How will/should scenarios such as this be handled?

    Doug Neumann, the Hatteras PM, responded with the following.

    This is actually a really involved question and the answer ultimately depends on the tool you are using for source control.  I'm a program manager for Team Foundation, so let me explain to you how we advocate users do this. Just in case you aren't familiar with Team Foundation, you can read more at http://msdn.microsoft.com/vstudio/teamsystem.

    With Team Foundation, we advocate that users model promotion levels with branches.  Effectively, successive levels of promotion are handled in different branches of the source code.  Developers typically do their work in the branch corresponding with the lowest promotion level.  Changes are merged to higher levels of promotion when they are ready.  Following each promotion, there may be a period of stabilization in the target branch when developers can check in to that branch directly in order to address bugs that weren't caught before promotion.  With Team Foundation, we even have the ability to cherry-pick specific bug fixes when merging between branches, so you don't have to take unwanted changes from the source branch, even if they exist in the same file.

    With Team Foundation, as with VSS, we create branches in the path space of the repository.  To the user, the branch operation looks like a copy operation, but we maintain a lot of state about the relationship between files that makes it possible for us to handle merging changes in an intelligent fashion.  One nice thing about path-space branching is that we can use normal file system ACLs to manager access rights.  Where this comes into play with promotion modeling is that you can lock down each branch so that only authorized users are allowed to check in to them.

    So to get the SOX compliance you're looking for, we'd advise you to create at least 2 promotion levels.  The first would be the dev branch where day to day work is performed.  The second is the approved branch where approved changes are merged.  You would then lock down that second branch so that only the authorized personnel could check into it.  Because your source is in version control, you'll always have the audit trail of who changed what to prove that only authorized people have been making changes in that branch.

    [Update]  Fixed formatting.

  • Buck Hodges

    Command line reference (h.exe)

    • 0 Comments
    The Team Foundation Version Control command line reference for the December CTP is now available.  I have posted it as an article as well.
  • Buck Hodges

    Team Foundation Version Control Command Line Reference document

    • 8 Comments

    The docs are now on MSDN.

    Command Line Reference (Visual Studio Team Foundation)

  • Buck Hodges

    Team Foundation Version Control command line summary

    • 0 Comments
    Rob Caron put together a very nice one-page command line summary for h.exe.  I've posted it as an article (Team Foundation Version Control Command Line Summary document).  Check it out if you want to see the list of command and options for h.exe.
  • Buck Hodges

    Team Foundation Version Control Command Line Summary document

    • 2 Comments

    Command line summary for tf.exe.  This was put together by Rob Caron.

    You may also want to see the full Team Foundation Version Control Command Line Reference as well.

    This is pre-release documentation and is subject to change in future releases.

    Command

    Usage

    Add

    tf Add itemspec [lock:none|checkin|checkout] [/type:filetype] [/noprompt] [/recursive]

    Branch

    tf Branch olditem newitem [/version:versionspec] [/noget] [/lock] [/noprompt] [/recursive]

    Branches

    tf branches [/s:servername] itemspec

    Changeset

    tf Changeset [/comment:comment|@commentfile] /s:servername [/notes:(“NoteFieldName”=”NoteFieldValue”|@notefile)] [/noprompt] ([/latest]|changesetnumber)

    Checkin

    tf checkin [/author:authorname] [/comment:("comment"|@commentfile)] [/noprompt] [/notes:(“Note Name”=”note text”|@notefile)] [/override:reason|@reason] [/recursive] filespec …]

    Checkout

    tf checkout [/lock:(none|checkin|checkout)] [/recursive] [/type:encoding] itemspec

    Delete

    tf delete [/lock:(none|checkin|checkout)] [/recursive] itemspec

    Difference

    tf difference itemspec [/version:versionspec] [/type:filetype] [/format:(visual|unix|ss)] [/ignorespace] [/ignoreeol] [/ignorecase] [/recursive] [/options:"options"]

     

    tf difference itemspec itemspec2 [/type:filetype] [/format:(visual|unix|ss)] [/ignorespace] [/ignoreeol] [/ignorecase] [/recursive] [/options:"options"]

     

    tf difference [/shelveset:shelvesetname;[shelvesetowner]] shelveset_itemspec [/server:serverURL] [/type:filetype] [/format:(visual|unix|ss)] [/ignorespace] [/ignoreeol] [/ignorecase] [/recursive] [/options:"options"]

    Dir

    tf dir [/s:servername] itemspec [/version:versionspec] [/recursive] [/folders] [/deleted]

    Get

    tf get itemspec [/version:versionspec] [/all] [/overwrite] [/force] [/preview] [/recursive] [/noprompt]

    Help

    tf help commandname

    History

    tf history [/s:servername] itemspec [/version:versionspec] [/stopafter:number] [/recursive] [/user:username] [/format:(brief|detailed)] [/slotmode]

    Label

    Option Set 1:

    tf label [/s:servername]  labelname@scope [/owner:ownername] itemspec [/version:versionspec] [/comment:("comment"|@commentfile)] [/child:(replace|merge)] [/recursive]

     

    Option Set 2:

    tf label [/s:servername] [/delete]  labelname@scope [/owner:ownername] itemspec [/version:versionspec] [/recursive]

    Labels

    tf labels [/owner:ownername] [/format:(brief|detailed)] [/s:servername] [labelname]

    Lock

    tf lock itemspec /lock:(none|checkout|checkin) [/workspace:workspacename] [/server:serverURL] [/recursive] [/noprompt]

    Merge

    tf merge  [/recursive] [/force] [/candidate] [/discard] [/version:versionspec] [/lock:none|checkin|checkout] [/preview] [/baseless] [/nosummary] source destination

    Merges

    tf merges [/s:servername] [source] destination [/recursive]

    Permission

    tf permission [/allow:(* |perm1[,perm2,]] [/deny:(* |perm1[,perm2,])] [/remove:(* |perm1[,perm2,])] [/inherit:yes|no] [/user:username1[,username2,]] [/recursive] [/group:groupname1[,groupname2,]] [/server:servername] itemspec

    Properties

    tf properties [/recursive] itemspec

    Rename

    tf rename [/lock:(none|checkout|checkin)] olditem newitem

    Resolve

    tf Resolve itemspec [auto:(AcceptMerge|AcceptTheirs|AcceptYours)] [/preview] [(/overridetype:overridetype | /converttotype:converttype)] [/recursive]

    Shelve

    tf shelve [/move] [/replace] [/comment:(@commentfile|"comment")] [/recursive] shelvesetname[;owner] filespec

     

    tf shelve /delete [/server:serverURL] shelvesetname[;owner]

    Shelvesets

    tf shelvesets [/owner:ownername] [/format:(brief|detailed)] [/server:serverURL] shelvesetname

    Status

    tf status itemspec [/s:servername] ([/workspace:workspacename[;workspaceowner]] | [/shelveset:shelvesetname[;shelvesetowner]]) [/format:(brief|detailed)] [/recursive] [/user:(*|username)]

    Undelete

    tf undelete [/noget] [/lock:(none|checkin|checkout)] [/newname:name] [/recursive] itemspec[;deletionID]

    Undo

    tf undo [/workspace:workspacename[;workspaceowner]] [/s:servername] [/recursive] itemspec

    Unlabel

    tf unlabel [/s:servername] [/recursive] labelname itemspec

    Unshelve

    tf unshelve [/move] [shelvesetname[;username]] itemspec

    View

    tf view [/s:servername] [/console] [/noprompt] itemspec [/version:versionspec]

    WorkFold

    tf workfold localfolder

     

    tf workfold [/workspace: workspacename]

     

    tf workfold [/s:servername] [/workspace: workspacename] repositoryfolder

     

    tf workfold [/map] [/s:servername] [/workspace: workspacename] repositoryfolder|localfolder

     

    tf workfold /unmap [/s:servername] [/workspace: workspacename] [/recursive] (repositoryfolder|localfolder)

     

    tf workfold /cloak (repositoryfolder|localfolder) [/workspace: workspacename] [/s:servername]

     

    tf workfold /decloak (repositoryfolder|localfolder) [/workspace: workspacename] [/s:servername]

    Workspace

    Option Set #1--Create New Workspace:

    tf workspace /new [/noprompt] [/template:workspacename[;workspaceowner]]

    [/computer:computername] [/comment:(“comment”|@commentfile)] [/s:servername]

     

    Option Set #2--Delete Workspace:

    tf workspace /delete [/s:servername] workspacename[;workspaceowner]

     

    Option Set #3--Edit Existing Workspace:

    tf workspace [/s:servername] [/comment:comment] [/newname:workspacename] workspacename[;workspaceowner]

    Workspaces

    tf workspaces [/owner:ownername] [/computer:computername] [/s:servername] [/format:(brief|detailed)] [/updateUserName:oldUserName] [/updateComputerName:oldComputerName] workspacename

     

    tf workspaces /remove:(*|workspace1[,workspace2,...]) /server:(*|server)

  • Buck Hodges

    Setting Internet Explorer's home page by drag and drop

    • 4 Comments

    Tim, who worked on IE among other things in his career at Microsoft and now works on Hatteras, showed me tonight that you can set the home page in Internet Explorer by dragging the link from the Address bar to the Home icon on the toolbar.  I had no idea.  I burst out laughing.  It's a neat trick once you know it, but it never occurred to me.  Perhaps it's because I don't change my home page.

    Someone's going to tell me that it's obvious, and I'm the only who didn't know about it.  Right.  It's an example of something that's really convenient, if you need that sort of thing, but not very discoverable (unless you often drag things over toolbar buttons just to see what happens).

  • Buck Hodges

    Timeouts on the HttpWebRequest (and thus SOAP proxies)

    • 4 Comments

    Last summer I wrote several posts on using HttpWebRequest and SOAP proxies.  Recently I was working on code that needed to handle requests that could take a really long time for the server to process.  The client would give up and close the network connection long before the request completed.

    The code had tried to control that using the HttpWebRequest.Timeout property.  That helped, but it didn't solve the problem.  Without changing the Timeout property, the client gave up after 100 seconds, which is the default value for that property as stated in the docs.  The Timeout property was set to infinite, but the client gave up after five minutes.  Below is the doc for the Timeout property.

    Return Value

    The number of milliseconds to wait before the request times out. The default is 100000 milliseconds (100 seconds).

    Remarks

    Timeout is the number of milliseconds that a synchronous request made with the GetResponse method waits for a response, and the GetRequestStream method waits for a stream. If the resource is not returned within the time-out period, the request throws a WebException with the Status property set to Timeout.

    The Timeout property has no effect on asynchronous requests made with the BeginGetResponse or BeginGetRequestStream methods.

    Caution In the case of asynchronous requests, it is the responsibility of the client application to implement its own timeout mechanism. Refer to the example in the BeginGetResponse method.

    To specify the amount of time to wait before a read or write operation times out, use the ReadWriteTimeout property.

    At the end of that, notice that they mention another timeout value, the HttpWebRequest.ReadWriteTimeout property.  Here's the doc for that.

    Return Value

    The number of milliseconds before the writing or reading times out. Its default value is 300000 milliseconds (5 minutes).

    Remarks

    The ReadWriteTimeout is used when writing to the stream returned by GetRequestStream or reading from the stream returned by GetResponseStream.

    Specifically, the ReadWriteTimeout property controls the time-out for the Read method, which is used to read the stream returned by the GetResponseStream method, and for the Write method, which is used to write to the stream returned by GetRequestStream method.

    To specify the amount of time to wait for the request to complete, use the Timeout property.

    Well, there's the five minute timeout.  If you want to wait for a long request, which is greater than five minutes for the HttpWebRequest, you need to set both properties.  Using the information in the post from the summer, you can add code to your override of GetWebRequest() in your SOAP proxy to set the timeout to an hour, for example, using request.Timeout = 3600 * 1000 and request.ReadWriteTimeout = 3600 * 1000.

    You may also notice that the Timeout property doesn't apply to asynchronous calls that use the Begin/End call pattern.  For those, only the ReadWriteTimeout applies.

  • Buck Hodges

    Are you looking to convert from ClearCase to Team Foundation?

    • 2 Comments

    The Program Manager for the ClearCase converter, Akash Maheshwari, wants to hear from Clearcase users interested in VSTS.  If you are a ClearCase user, this is your chance to influence the development of the converter.

  • Buck Hodges

    Branching and Merging in the Dec. CTP

    • 2 Comments

    Back in the summer I wrote several posts on branching and merging in Team Foundation Source Control.  They are also relevant for the Dec. CTP if you are interested in this very important part of SCM.

  • Buck Hodges

    How to delete a team project in the Dec. CTP

    • 2 Comments
    Someone in the newsgroup asked how to delete a team project.  I asked James and he mentioned DeleteTeamProject.exe.
     
    From a Visual Studio command prompt, you can use the following command line app to delete a project.  To get the command prompt, go to Start -> All Programs -> Microsoft Visual Studio 2005 Beta -> Visual Studio Tools -> Visual Studio Command Prompt.
     
    Note that the /domain option is just the name of your Team Foundation server that you see in Team Explorer and is only necessary if you set up more than one Team Foundation server.
     
    Example:
       DeleteTeamProject MyProject
     
    Help:
    DeleteTeamProject.exe
    Usage:
     
    DeleteTeamProject [/q] [/domain:<domainName>] <project name>
     
        [/q]  - Quiet mode.  Do not prompt the user for confirmation.
        [/domain:<domainName>] The name of the domain.  Necessary in multi-domain environments.
        <project name> The name of the project.  Use quotation marks if there are spaces in the name.
     
    Deletes the Portfolio Project from Team System.  After deletion, the project may not be recovered.  Use with caution.  Required permission: DELETE on the project.
    [Update] DeleteTeamProject is not in the path for the command prompt.  The app is in <your drive>:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies.
  • Buck Hodges

    VSTS and MSDN Universal

    • 11 Comments

    Back in June I posted information from the newgroup regarding VSTS Pricing.

    Here's an update from Ajay Sudan's newsgroup post (Jan. 24, 2005).

    MSDN Universal customers may migrate to their choice of
    Visual Studio Team Architect Edition, Visual Studio Team
    Developer Edition, or Visual Studio Team Test Edition at
    no additional cost for the duration of their MSDN
    Universal subscription.

    MSDN Universal customers may also elect to migrate to
    Visual Studio Team Suite at an additional cost. Detailed
    pricing/licensing for Visual Studio Team System will be
    announced in early March.
Page 21 of 23 (562 items) «1920212223