Naren's Blog

  • Hide, encrypt and protect files or folders

    I was looking for a way to hide and encrypt folders. We search results were mostly pointing to commercial software that I need to purchase. Here is one very useful link that answered my questions right with reference to useful opensource software AxCrypt http://www.techsupportalert.com/how_to_hide_a_windows_folder.htm 
  • Silverlight 3 Error: Unhandled Error in Silverlight Application Code: 2103 Category: InitializeError Message: Invalid or malformed application: Check manifest

    Everything was working, I did some refactoring and starting getting this error:

    Error: Unhandled Error in Silverlight Application Code: 2103 Category: InitializeError Message: Invalid or malformed application: Check manifest

    In silverlight 3, it turns out that the refactoring of namespaces causes this. Very unintuitive error. I had added default App class under a namespace, but missed to change the startup object.

    To fix: Right click on project, go to properties, and select the refactored name under "Startup object"

  • Error: Unable to start debugging. The Silverlight managed debugging package isn't installed.

    Silverlight was working great and one day I started getting this error on debugging:

    Unable to start debugging. The Silverlight managed debugging package isn't installed.

    Many web search links talk about solutions for beta 2 which is irrelevant here. Fortunately, some links pointed out that "uninstalling Silverlight Tools completely and reinstalling it" solves it. Sure, I did it and it worked.

    Aparantly, I had reinstalled silverlight, and I had to do the above setup also for resolution. So unintuitve...

  • Back to blogging

    So far I have been blogging purely on TFS in VSTS. It was great pleasure getting feedback from TFS customers on getting their problems addressed with my technical posts mainly on workitemtracking. After I left TFS team, I had stopped blogging a year back. As TFS evolves, many of my previous posts will become obsolete.

    Now I am working on some cool Silverlight and WPF problems in new project and am planning to post technical problems I face and solutions I found. Hopefully it'll come up in search results for people facing similar problems. So, the blog will not be anymore about workitemtracking in TFS, instead, plethora of technical items, mostly problems I faced and pointers to resolutions.

  • Powertool to easily create notification alerts for workitems, source control and build items

    Last piece of powertool I worked on before leaving TFS is the integrated tool to easily create notification alerts for WorkItem tracking, source control and build items. It is released and part of power tools now. Checkout screen shots and download the tool by visiting Brian's blog at: http://blogs.msdn.com/bharry/archive/2008/07/08/july-08-tfs-power-tool-preview.aspx . Creating notifications was one of biggest painpoints for customers and I am excited that this tool will solve most needs that can be accomplished with server limitations today. This should replace various similar tools available in web that does subset of these functionalities.

  • When you have questions on WIT Extensibility or on my blog posts...

    This week I am moving over to new team in Microsoft. I love workitemtracking and TFS, but I need to move out of country for family reasons and hence had to leave TFS. So I am not expecting to write anymore posts on TFS. I *might* start writing more on new areas I am going to work on though.

    I still keep getting questions from various readers on WorkItemTracking and TFS. If you have question, please post your question to WIT forum at: http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=479&SiteID=1, someone in TFS team will answer your question. If you are not getting responses, you can try posting me question from link in this blog and I'll try to forward to right person. If it is really pressing and urgent question, contact CSS from support.microsoft.com (or 800/936-5800 if from US).

  • Link Queries: How to use object model to build & run link queries in Rosario?

    Many asked me how linking is exposed in our Rosario object model, how to construct, run and use the results of link queries. I decided to build a power point on explaining it and attached is that powerpoint file: http://blogs.msdn.com/narend/attachment/7701866.ashx
  • Building custom controls in Team System Web Access

    Team System Web Access 2008 powertool is released with TFS 2008 recently on Nov 19th (see here for WIT improvements in this release). So I expect more people will start looking into porting their custom controls over to Web Access or building new ones in Web Access. Few asked me how to building custom controls for web access, and here is how from Hakan who owns TSWA:

    Our SDK is shipped along with Team System Web Access itself, so you will have it when you install TSWA.

    You can download our CTP release at:

    http://www.microsoft.com/downloads/details.aspx?FamilyID=8d3f8eec-301a-4e96-adc5-abf47f462654&DisplayLang=en

    Once you install it, look under the installation directory – you’ll see an “SDK” directory with the documentation and samples for WIT custom controls.

    Custom controls built for VS winforms cannot be used as-is in web access because of technology differences, but it is as easy to build new ones for Web Access. Check out the SDK.

  • New powertools released with work item templates feature

    Many customers have asked for templates functionality in work item to easily create workitems. Also, there is strong need to apply changes to many work items in a shot without having to export to excel. You can do all that with templates feature in Sept release of powertools now. See Gregg's post for indepth details on this feature & screenshots: http://blogs.msdn.com/teams_wit_tools/archive/2007/09/29/tfs-power-tools-release-work-item-templates-introduction.aspx.  Also see Brain's post here: http://blogs.msdn.com/bharry/archive/2007/09/29/september-tfs-power-tools-released.aspx. Bulk apply is the feature I use much and is a great addition. Download it soon from here

  • Working with Rosario workitem links in object model

    As you know, Rosario comes up with rich linking abilities for workitems and object model to support it. Working with object model could be a bit tricky when it comes to comprehending directions of links and Durgaprasad wrote a nice blog on how to use the OM. Check it out here: http://blogs.msdn.com/dgorti/archive/2007/09/26/querying-on-workitem-links-through-the-api.aspx . Note that the actual querying for links based on criteria can be done with WIQL language.

  • Multivalue control is now available for download in codeplex

    Many customers have asked for a control to select multiple values for a field, or to tag work item with various tag strings & to be able to query on them. We might have such control built-in in future releases, but until then this can be solved with a custom control. We built such a custom control and posted it in codeplex project:  http://www.codeplex.com/WitCustomControls

    This uses a UI only solution for multivalue problem. We do not have any "multivalue" fields in our OM. See here for details on how it is implemented with just string field & how to query on its data: http://www.codeplex.com/WitCustomControls/Wiki/View.aspx?title=Multivalue%20control&referringTitle=Home

  • Adding custom menu items to "Team" menu

    Few customers wanted to add a menu to context menu of workitems in result list. It seems like a great idea to show actions on selected work items, but we haven’t exposed the command ids for context menus in V1 and Orcas. We did expose the “Team” menu in the main menu and it is easy to add commands under it using a VSIP package. Below is sample code for CTC file to add a menu group under “Team” menu.

     

      NEWGROUPS_BEGIN

        // NewGroup                              Parent Group                            Priority

        guidClientCustomizationsCmdSet:MyMenuGroup,    guidSHLMainMenu:IDM_MENU_TEAM_FOUNDATION_CLIENT,    0x0600;

      NEWGROUPS_END

     

    If you need these ids exposed, pls raise your suggestion at https://connect.microsoft.com/VisualStudio/feedback  with which menu groups you want to be exposed.

     

    Update 9/27/07: One of our customers, Kurt, took the ids from me and managed to add custom menus under context menus. Below is information on the lines he added to his VSIP files. This should help to add your own context menus (may be with some troubleshooting). once you have the menu added, you can get the workitem under context by using DocumentService described in http://blogs.msdn.com/narend/archive/2006/07/07/AccessingWitFromAddin.aspx
    Please note that this is not supported feature and the ids could change in future releases though I guess it would be unlikely.

     


     guidCustomReportingExtensionPackageCmdSet:MyMenuGroup,   guidSHLMainMenu:IDM_MENU_PROJECT_CONTEXT_MENU,      0x0600;  // Team Project context menu
      guidCustomReportingExtensionPackageCmdSet:MyMenuGroup,    CommandSetGuid:MENU_RESULTLIST,    0x0600;                 // Result List context menu
      guidCustomReportingExtensionPackageCmdSet:MyMenuGroup,   CommandSetGuid:MENU_WORKITEM,        0x0600;                 // Work Item document context menu


    // Command IDs rom the CommandIDs.h
    #define MENU_RESULTLIST        0x205
    #define MENU_WORKITEM          0x206

  • Defining custom actions for state transitions

    I heard this question few times: “I see the action named Microsoft.VSTS.Actions.Checkin to resolve work items in my tools, what other actions are available and how to use this feature to define my own”.

     

    What is a “custom action”? Suppose you are building a tool that will take shelveset from users and resolve workitems after running tests. Each work item type has its own set of states and rules and resolution means different for each work item type. So Resolve for task might be to move state to “Closed”, while for bug it is moving to “Resolved”. Custom actions defines this transition in work item type.

     

    Here is syntax from msdn link (it also has documentation on this) : http://msdn2.microsoft.com/en-us/library/ms194975(VS.80).aspx

     

    <TRANSITION from="Working" to="Ready To Build">

                    <ACTIONS>

                                    <ACTION value="Microsoft.VSTS.Actions.Checkin"/>

                                    <ACTION value="ADatum.Actions.Complete"/>

                    </ACTIONS>

    </TRANSITION>

     

    Let us take the example of resolving a bug again. We do it in the pending changes window (or checkin dialog) where work items can be associated with changesets before checking in, and upon checkin the work item will be resolved. Here is sample code piece that will do it:

     

                    string nextState = wi.GetNextState("Microsoft.VSTS.Actions.Checkin");

                    if (!String.IsNullOrEmpty(nextState))

                    {

                                    wi[CoreFieldReferenceNames.State] = nextState;

                                    wi.History = "Work item resolved by tool xxx for reason yyy associated with changeset ccc";

                    }

     

    This basically calls GetNextState of a work item and passes the action. Next state is returned if the action is valid and the next state is possible with given rules. You can programmatically move the work item to next state.

     

    This technique can be used in automated tools to work across various work item types in common way. This solves the problem for consistently handling state transitions and to check if a work item type can handle a specific action. We are thinking in the lines of extending this with features such as: ensuring a certain groups or categories of workitemtypes have specified set of fields, rules etc so that tools can handle groups of types consistently and automate wide range of functions.

  • How to port Whidbey custom controls to Orcas

    If you built a custom control in VS2005 (Whidbey) and deployed in user’s machines, what happens if the user upgrades to next version of TFS (Orcas or Rosario)? The Orcas client will try to load the custom control, but the custom control was compiled with VS2005 version of TFS dlls. Hence TFS will try to load those older version of TFS dlls and since they cannot be found they’ll fail with dll loading exception.

     

    So for custom controls to be loaded in Orcas client, the controls have to be recompiled with Orcas version of binaries and deployed to client machines. This is because of the dll dependencies. Inside Microsoft, we use bunch of custom controls and we have one installer for Whidbey and another for Orcas. It could be same custom control code but just compiled with right TFS dlls.

     

    What if customers have various versions of VS side-by-side? It is possible to have VS2005 and Orcas in same machine. For that purpose, we changed the search location of custom controls such that we’ll look at 9.0 folder under custom controls first and if we do not find required control then we’ll look at original location. So if you are building a setup for Orcas version of custom controls, install your controls under <custom control folder>\9.0 folder. Whidbey version of controls can continue to stay under original custom controls folder.

     

    This also enables taking advantage of new features of Orcas in your custom controls while giving older version for Whidbey users.

  • New links control features in Rosario

    Rosario is next release of TFS after upcoming Orcas release. You can read a lot about Rosario from Brian's blog. CTP is available to try these features. This post briefly lists UI featuers in links control.

    By default, the new links control now shows the links grouped by link type. See the screenshot above. The child links are grouped and each linktype group can be expanded/collapsed. Many customers asked "can I show state & assigned-to in links control?". Now admins can add any column to the links control. Also multiple linkscontrols can be added in a form with each control showing different linktypes. Each linkscontrol can be customized with specific link types, for example, one linkscontrol with parent/child links, another one with related and another with all other links. Check out Gregg's post here on how to filter the link types and how to give name for each control. His post does not give example for adding custom columns, see bolded lines below for adding custom columns.

    <Control Type="LinksControl" Name="UniqueName">

       <LinksControlOptions>

         <WorkItemLinkFilters FilterType="includeAll" />

         <ExternalLinkFilters FilterType="excludeAll" />

             <LinkColumns>

                <LinkColumn LinkAttribute="System.Links.Description" />

                <LinkColumn LinkAttribute="System.Links.Comment" />

                <LinkColumn LinkAttribute="System.Links.LinkType" />

                <LinkColumn RefName="System.AssignedTo" />

                <LinkColumn RefName="System.State" />

             </LinkColumns>

      </LinksControlOptions>

    </Control>

     

    Below is screenshot on querying for links and display for hierarchical link types.  

    For a tree query, the result list will have multiple levels displayed as trees.

More Posts Next page »

© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Microsoft
Page view tracker