<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-18728551</atom:id><lastBuildDate>Sat, 31 Oct 2009 00:48:33 +0000</lastBuildDate><title>Ogy's log</title><description>A technology blog by Ognjen Bajic</description><link>http://ognjenbajic.com/blog/</link><managingEditor>noreply@blogger.com (Ognjen Bajic)</managingEditor><generator>Blogger</generator><openSearch:totalResults>117</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-18728551.post-5657781935194631254</guid><pubDate>Mon, 26 Oct 2009 01:53:00 +0000</pubDate><atom:updated>2009-10-31T01:48:33.168+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>TeamCompanion</category><category domain='http://www.blogger.com/atom/ns#'>v2.2</category><title>[Inside TeamCompanion 2.2] Customizing the Work Item Preview</title><description>&lt;p&gt;&lt;font face="Arial"&gt;One of the new features introduced in the TeamCompanion 2.2 is the ability to customize the new work item preview.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial"&gt;There are three ways to influence the content of the work item preview: &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial"&gt;a) declarative – the list of the fields to be included or excluded form the preview is saved in the registry&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial"&gt;b) programmatic – you override the xsl file used for formatting the xml generated by the TeamCompanion. You can do anything you like there.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial"&gt;c) mixed - above options combined.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;font face="Arial"&gt;Included/Excluded lists&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial"&gt;Included lists are used to specify all the fields you want &lt;b&gt;included&lt;/b&gt; &lt;b&gt;in&lt;/b&gt; the Work Item Preview. Excluded lists specify all the fields you want &lt;b&gt;excluded from&lt;/b&gt; the Work Item Preview. Included or excluded lists are semicolon separated lists of work item fields Reference Names. For example: „System.State;System.CreatedDate;System.CreatedBy;System.IterationPath;“. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial"&gt;It is an error to use both Included and Excluded lists at the same level/priority in registry. In that case TeamCompanion will use Excluded list. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial"&gt;The order of work item fields in the list is important. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;font face="Arial"&gt;Saving Included/Excluded lists in the registry&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial"&gt;There are different locations where the Included/Excluded lists may be saved in the registry. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial"&gt;These locations define the scope of the setting, whereby the scope may be: &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial"&gt;a) one particular server (global setting that would span multiple servers is currently not supported) – applies to all projects and all work item types in that server;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial"&gt;b) one particular project – applies to all work item types in that project;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial"&gt;c) one particular work item type in one particular project and server.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial"&gt;Registry root folder ( path : „HKEY_CURRENT_USER\Software\Ekobit\TeamCompanion.Outlook“      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;server_name&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [IncludedPreviewFields] or [ExcludedPreviewFields] – the option a       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;project_name&amp;gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [IncludedPreviewFields] or [ExcludedPreviewFields] – the option b       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;work_item_type_name&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [IncludedPreviewFields] or [ExcludedPreviewFields] – the option c&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial"&gt;&amp;lt;server_name&amp;gt;, &amp;lt;project_name&amp;gt; and &amp;lt;work_item_type_name&amp;gt; represent Registry keys named after the server, project or work item type containing settings for a specific &lt;i&gt;server_name&lt;/i&gt;, &lt;i&gt;project_name&lt;/i&gt; or &lt;i&gt;work_item_type_name &lt;/i&gt;respectively.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial"&gt;&amp;lt;server_name&amp;gt; is the name of the TFS server as it is displayed in the TeamCompanion’s UI (tree control): TFS_FQDN.PortNumber. e.g. tfs.test.com.8080 (notice that there is a DOT between the server name and the port number).&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial"&gt;In the scheme shown above, &amp;quot;[IncludedPreviewFields] or [ExcludedPreviewFields]&amp;quot; are all valid places where „IncludedPreviewFields“ and „ExcludedPreviewFields“ lists can be put. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial"&gt;Each of these three places defines different validity scope. If for particular work item type, project and server there are settings defined on different levels, the setting on the lowest level will apply (work item level takes precedence over project level which takes precedence over server level). For some Work Item first will be used list specified in its key. If it isn't present, then the list in project key will be used. If that one also isn't present, the one in server key will be used. If there is no list that apply to that Work Item type, project and server, the default settings will be used.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial"&gt;We might provide proper UI for these settings in some future version.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;font face="Arial"&gt;Using your own XSL&amp;#160; file&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial"&gt;Full path to the alternative Xsl file must be saved in registry in &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial"&gt;HKEY_CURRENT_USER\Software\Ekobit\TeamCompanion.Outlook\WorkItemPreviewXslFilePath.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial"&gt;For example, „D:\MyFolder\CustomXSL.xsl“. In case of any error while using that file, TeamCompanion will fall back to the default embedded XSL.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial"&gt;Attached you can find a sample xml (normally dynamically generated on the fly by the TeamCompanion) and sample xsl that is used to transform the xml in order to produce the work item preview.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial"&gt;There is one additional setting that influences the work item preview content:&lt;b&gt; Removing Empty Fields in Work Item Preview&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial"&gt;This setting can be edited from the TeamCompanion UI using the checkbox check box named „&lt;i&gt;Remove empty fields from Work Item preview&lt;/i&gt;„ available in the Work Item Preview tab of the TeamCompanion options dialog. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial"&gt;If it is checked, empty fields will be removed (exception from this is if the field with the empty value is explicitly listed in the appropriate IncludedPreviewFields list, in which case they will not be removed).&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial"&gt;[Update] Users having work item query folders where some work items already exist, need to remove and reload these work items for the new preview settings to become effective. This can be done by selecting all work items and deleting them by pressing Delete key on the keyboard. Don’t worry – your work items will remain intact. This will only delete cashed offline information about them. Execute the query once again (by executing Refresh command from the folder’s context menu) or, if you have scheduled execution of this query, wait for the schedule, and all work items will appear once again, this time with the preview formatted in accordance with your new settings. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;   &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:FF7EC618-8FBE-49a5-B908-2339AF2ABCDF:6efbf4c0-5164-4282-aed7-a3bd41432cb4" class="wlWriterEditableSmartContent"&gt;&lt;div&gt;Download File - &lt;a href="http://ognjenbajic.com/blog/pics/f0bf8816873d_22AA/tmpA2CC.zip" target="_self"&gt;Sample&lt;/a&gt;&lt;/div&gt;&lt;/div&gt; &lt;/p&gt;  &lt;p&gt;&lt;font face="Arial"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Arial"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18728551-5657781935194631254?l=ognjenbajic.com%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://ognjenbajic.com/blog/2009/10/inside-teamcompanion-22-customizing.html</link><author>noreply@blogger.com (Ognjen Bajic)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-18728551.post-6703762487664791780</guid><pubDate>Thu, 08 Oct 2009 23:36:00 +0000</pubDate><atom:updated>2009-10-11T00:15:00.470+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>TeamCompanion</category><category domain='http://www.blogger.com/atom/ns#'>v2.2</category><title>TeamCompanion for Outlook v 2.2 released</title><description>&lt;p&gt;&lt;span style="font-family:arial;"&gt;Earlier this week Ekobit released the TeamCompanion for Outlook v2.2. This is a minor .x version and as such it comes with some new features and many improvements of existing ones that complement and enhance existing functionality. In this version we address many usability obstacles in order to ensure smooth and efficient usage patterns throughout the application.&lt;br /&gt;&lt;br /&gt;This release is a free update for all existing customers.&lt;br /&gt;&lt;br /&gt;Following is the list of the most important new and improved features of TeamCompanion in v2.2:&lt;br /&gt;• &lt;strong&gt;Better offline support and support for occasionally connected clients&lt;br /&gt;• Improved Work item edit form&lt;br /&gt;• Improved Work item preview (Support for history; preview is now fully customizable)&lt;br /&gt;• Improved Work item from Mail action&lt;br /&gt;• Improved Open related object action – for emails multiple related objects are offered; related work item for Outlook Appointments&lt;br /&gt;• Improved Reports support (new conversion formats for Reports; support for Canceling )&lt;br /&gt;• Improved Send Work Item as Mail action (‘with attachments’ option including attaching created mail back to the Work Item)&lt;br /&gt;• Improved usability/ease of use&lt;br /&gt;• TFS 2010 Beta support&lt;br /&gt;• TeamCompanion v2.2 is compatible with Windows 7&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Let's describe each of above points in more detail:&lt;br /&gt;&lt;strong&gt;1. Better offline support and support for occasionally connected clients&lt;/strong&gt;&lt;br /&gt;Separate TeamCompanion’s offline mode doesn’t exit any more – we’ve merged it with Outlook’s offline mode switch (File\Work Offline menu option). Previously TeamCompanion’s offline mode was available in the Options dialog which wasn’t discoverable. We have heard the feedback and reorganized both internal logic and UI.&lt;br /&gt;We deal with occasionally connected situations much better than before – using logic running in the background TeamCompanion detects if the Outlook is online or not and adapts itself. Actions that automatically connect to the server (like scheduled work item query execution) are executed only if Outlook is really online.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2. Improved Work item edit form&lt;/strong&gt;&lt;br /&gt;Work Item edit form is obviously one central piece of UI in TeamCompanion. There are some new actions in the form’s toolbar (new buttons in yellow):&lt;br /&gt;&lt;img style="MARGIN: 10px 0px" border="0" alt="" src="http://ognjenbajic.com/blog/pics/TCO2.2WorkItemFormToolbar.png" /&gt;&lt;br /&gt;Refresh/Undo actions are supported now.&lt;br /&gt;&lt;br /&gt;There are different new ways to send work item as mail. Four alternatives are supported: send work item as mail with or without attachments and with or without subsequent attaching of the mail back to the work item after the mail is sent.&lt;br /&gt;&lt;img style="MARGIN: 10px 0px" border="0" alt="" src="http://ognjenbajic.com/blog/pics/TCO2.2WorkItemAsMailSendAlternatives.png" /&gt;&lt;br /&gt;The default 'Send Work Item as Email' action type can be set in the appropriate options dialog.&lt;br /&gt;&lt;a href="http://ognjenbajic.com/blog/pics/TCO2.2WorkItemAsMailSendOptions.png"&gt;&lt;img style="MARGIN: 10px 0px; CURSOR: hand" border="0" alt="" src="http://ognjenbajic.com/blog/pics/TCO2.2WorkItemAsMailSendOptionsSmall.png" /&gt;&lt;/a&gt;&lt;br /&gt;Two new buttons in the upper right corner of the work item form make it very easy to find emails related to the work item – they search for mails containing either work item Id or Title. By default all mail folders are searched, but the search can be done in just some specific mail folders (configurable in Options dialog). The result of the search is the usual mail list UI in which we can execute all standard mail related actions.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3. Improved Work item preview (Support for history; preview is now fully customizable)&lt;/strong&gt;&lt;br /&gt;Workitem HTML preview is fully customizable. There are three ways to influence the content of the work item preview:&lt;br /&gt;• declarative – the list of the fields to be included or excluded from the preview is saved in the registry&lt;br /&gt;• programmatic – you override the xsl file used for formatting the xml generated by the TeamCompanion. You can do anything you like there.&lt;br /&gt;• mixed - above options combined.&lt;br /&gt;Details of preview customization are beyond the scope of this overview and will be covered in some future blog entry.&lt;br /&gt;&lt;br /&gt;Second new feature of the HTML preview is the support for the work item history. This can be switched on and off in appropriate Options dialog tab. Additionally, for performance reasons, user can set the number of history entries that will be available in the preview.&lt;br /&gt;&lt;br /&gt;&lt;img style="MARGIN: 0px 0px 10px" border="0" alt="" src="http://ognjenbajic.com/blog/pics/TCO2.2WorkItemPreviewOptions.png" /&gt;&lt;br /&gt;Upgrade users having work item query folders where some work items already exist, need to remove and reload these work items for the History to become visible in the work item preview. This can be done by selecting all work items and deleting them by pressing Delete key on the keyboard. Don’t worry – your work items will remain intact. This will only delete cashed offline information about them. Execute the query once again (by executing Refresh command from the folder’s context menu) or, if you have scheduled execution of this query, wait for the schedule, and all work items will appear once again, this time with history in the preview.  &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;4. Improved Work item from Mail action&lt;br /&gt;&lt;/strong&gt;In addition to mapping email fields and work item fields used when creating a work item based on an email, it is now possible to fill email fields with constant values. Internally, we call this feature “poor man’s work item templates”. It is especially usable to set the current iteration and (at least a part of) area information.&lt;br /&gt;With this little feature, in many occasions, just one click is enough to create fully populated and valid work item from mail.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ognjenbajic.com/blog/pics/TCO2.2WorkItemFromMailOptions.png"&gt;&lt;img style="MARGIN: 0px 0px 10px; CURSOR: hand" border="0" alt="" src="http://ognjenbajic.com/blog/pics/TCO2.2WorkItemFromMailOptionsSmall.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;5. Improved Open related object action – for emails multiple related objects are offered; related work item for Outlook Appointments&lt;/strong&gt;&lt;br /&gt;Open related object action was introduced in TeamCompanion 2.1. This feature makes it easy to open TFS objects mentioned in an email (work item, changeset or build). In 2.1 we were able to offer just one most significant object and in v2.2 as long as there are multiple objects referred to in a mail, we will offer all of them. There are different methods we use to find object references (like parsing object urls, different patterns in the mail content etc.). If you believe we should be able to find a reference to an object in some mail of yours and we don’t, please contact me directly and hopefully we will support it in some future version.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ognjenbajic.com/blog/pics/TCO2.2OpenRelatedObject.png"&gt;&lt;img style="MARGIN: 0px 0px 10px; CURSOR: hand" border="0" alt="" src="http://ognjenbajic.com/blog/pics/TCO2.2OpenRelatedObjectSmall.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;6. Improved Reports support (new conversion formats for Reports; support for Canceling)&lt;br /&gt;&lt;/strong&gt;Two new conversion formats for reports are supported- embedded HTML and Web Archive. Embedded HTML is the new default. This way the text in the report description isn’t just a part of the image anymore and can be selected, copied etc.&lt;br /&gt;Cancelling report execution is also supported.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ognjenbajic.com/blog/pics/TCO2.2ReportWithSelectableText.png"&gt;&lt;img style="MARGIN: 0px 0px 10px; CURSOR: hand" border="0" alt="" src="http://ognjenbajic.com/blog/pics/TCO2.2ReportWithSelectableTextSmall.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;7. Improved Send Work Item as Mail action (‘with attachments’ option including attaching created mail back to the Work Item)&lt;br /&gt;&lt;/strong&gt;There are four ways to send a work Item as Mail – with or without attaching Work Item attachments to the mail and with or without subsequent attaching the mail to the Work Item after the mail was sent. Wherever there are Work Items in the TeamCompanion’s UI they can be sent as mail.&lt;br /&gt;The content of the mail is completely configurable (but that is not new in v2.2).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;8. Improved usability/ease of use&lt;br /&gt;&lt;/strong&gt;There are many small usability enhancements&lt;br /&gt;o Indicator during query execution – the text “(Working…)” is appended to the Query name during the query execution&lt;br /&gt;o Ability to select server and project while creating wi from mail or attaching mail to existing work item&lt;br /&gt;&lt;a href="http://ognjenbajic.com/blog/pics/TCO2.2SelectServerInAttachDialog.png"&gt;&lt;img style="MARGIN: 0px 0px 10px; CURSOR: hand" border="0" alt="" src="http://ognjenbajic.com/blog/pics/TCO2.2SelectServerInAttachDialogSmall.png" /&gt;&lt;/a&gt;&lt;br /&gt;o Work Item form size and position remembered&lt;br /&gt;o Better default work Item Query result grid column widths&lt;br /&gt;o More responsive UI due to the asynchronous execution of following actions&lt;br /&gt;- Scheduled query execution&lt;br /&gt;- Opening a work item&lt;br /&gt;- Creating new work item from Outlook items or attaching mail to work item&lt;br /&gt;- Export to Excel and Project&lt;br /&gt;o Reasign To combo supports auto complete – we filter the list of available people as you type which is especially helpful for large teams i.e. if there are hundreds or thousands of people in the list&lt;br /&gt;o Work Item Field lists (e.g. in the Work Item Query Editor) support type ahead – similar as above&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;9. TFS 2010 Beta support&lt;br /&gt;&lt;/strong&gt;TeamCompanion v2.2 works with prerelease versions of TFS 2010 using the Team Explorer 2008 SP1 upward compatibility support. The restrictions imposed by the scope of compatibility support are described &lt;a href="http://blogs.msdn.com/teams_wit_tools/archive/2009/05/18/team-explorer-2010-beta-1-compatibility.aspx"&gt;here&lt;/a&gt;.&lt;br /&gt;In order to connect to the TFS 2010 server it is important to enter the whole url of the server including virtual folder and project collection like this:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;http(s)://[serverName]:[port]/[vdir]/[collectionName]&lt;/span&gt;&lt;br /&gt;Where the &lt;vdir&gt;is an optional, server level argument.&lt;br /&gt;Example connection Strings looks like: &lt;span style="font-family:courier new;"&gt;http://myserver:8080/tfs/Collection&lt;/span&gt; or &lt;span style="font-family:courier new;"&gt;&lt;a href="http://server:8080/tfs"&gt;http://server:8080/tfs&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;img style="MARGIN: 0px 0px 10px" border="0" alt="" src="http://ognjenbajic.com/blog/pics/TCO2.2ServerUrlDialog.png" /&gt;&lt;br /&gt;If the server virtual folder is defined during the server installation it must be included in the server url. If you don't explicitly put project Collection name in the server url, you will be connected to the Default Collection.&lt;br /&gt;&lt;br /&gt;With TFS 2010 server, most of the features work as expected. Some notable exceptions are listed here:&lt;br /&gt;-Execution of hierarchical work item queries; work item query results are only flat lists&lt;br /&gt;-Reports don't work (for this we need 2008 compatibility bits that should be available in the Beta 2 timeframe)&lt;br /&gt;-New work item controls (Test steps etc.) are not displayed&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Expect this compatibility issues to be solved in future TeamCompanion versions.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;strong&gt;10. Compatibility with Microsoft CRM Outlook Addin&lt;br /&gt;&lt;/strong&gt;Microsoft CRM Outlook Addin seems to be relatively fragile and in some cases it refused to load if TeamCompanion was present. TeamCompanion v2.2 behaves the way CRM Addin expects, waits for it until it is initialized and only then it loads itself. This way these two Outlook Addins can coexist peacefully. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;11. TeamCompanion v2.2 is compatible with Windows 7&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;TeamCompanion is tested for compatibility and reliability on Windows 7.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;For this version, the UI has had considerable amount of improvements. We engaged SSW to do a &lt;a href="http://www.ssw.com.au/ssw/Company/SoftwareAudit.aspx"&gt;Software Audit for UI usability &lt;/a&gt;and &lt;a href="http://www.adamcogan.com/"&gt;Adam Cogan&lt;/a&gt; was great as we went back over 4 iterations. We hope you notice the difference. If you are interested in learning more see &lt;a href="http://www.ssw.com.au/ssw/Standards/Rules/RulesToBetterInterfaces.aspx"&gt;SSW's User Interface rules&lt;/a&gt; or have an auditor performed on your own software.&lt;br /&gt;&lt;br /&gt;There are many others that have helped shaping TeamCompanion v2.2, but I would personally like to thank Gregg Boer from the Team Foundation Server’s development team, who was willing to use various prerelease versions in his daily work and to test them thoroughly. Gregg suggested many features that in the end appeared in the above list.&lt;br /&gt;&lt;br /&gt;Hopefully this rather long blog entry gives you a quick flavour of TeamCompanion 2.2 and where we are going with this release. As soon as you try it out, we would love to &lt;a href="mailto:support@ekobit.com"&gt;hear what you think &lt;/a&gt;of it. &lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18728551-6703762487664791780?l=ognjenbajic.com%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://ognjenbajic.com/blog/2009/10/teamcompanion-for-outlook-v-22-released.html</link><author>noreply@blogger.com (Ognjen Bajic)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-18728551.post-7481503308678249171</guid><pubDate>Tue, 06 Oct 2009 10:50:00 +0000</pubDate><atom:updated>2009-10-06T13:29:08.218+02:00</atom:updated><title>Windows XP Mode RTMed</title><description>&lt;span style="font-family:arial;"&gt;Microsoft recently RTM’ed Windows XP mode – virtualization technology built into the Windows 7. Windows XP Mode provides what is called the “last mile” compatibility technology for those cases when a Windows XP productivity application isn’t compatible with Windows 7. This is important to convince those that still enjoy working on Windows XP that migration to Windows 7 doesn’t mean farewell to their possibly not compatible applications. I am really convinced that XP may play important role in securing success of Windows 7. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;But this isn’t what excites me about Windows XP Mode.&lt;br /&gt;&lt;br /&gt;Windows XP mode introduces an interesting way of UI integration with the host operating system where applications running in the virtual environment look as if they were native applications running in the host OS. At the first glance there is no difference between an application running in the host and another application running in virtualized environment. This opens lots of opportunities for everyday use of beta software which is for me as VSTS MVP especially interesting these days when different VSTS 2010 versions need to be tried out and played with.&lt;br /&gt;&lt;br /&gt;And what really excites me is the ability to try TeamCompanion in Outlook 2007 and Outlook 2010 CTP side by side!&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://ognjenbajic.com/blog/pics/WinodwsXPModeAndTCO.png"&gt;&lt;img style="MARGIN: 0px; CURSOR: hand" border="0" alt="" src="http://ognjenbajic.com/blog/pics/WinodwsXPModeAndTCOsmall.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;By running Outlook 2007 and 2010 side by side I get the opportunity to test drive both TeamCompanion in Outlook 2010 and with VSTS 2010 without having to explicitly use (and look after) multiple environments. Outlook 2010 accounts are configured so that they don’t remove mails from the server, so that for the time being I can still use Outlook 2007 as official mail client. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;For more info about Windows XP Mode go &lt;/span&gt;&lt;a href="http://blogs.msdn.com/virtual_pc_guy/archive/tags/Windows+XP+Mode/default.aspx"&gt;&lt;span style="font-family:arial;"&gt;here&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18728551-7481503308678249171?l=ognjenbajic.com%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://ognjenbajic.com/blog/2009/10/windows-xp-mode-rtmed.html</link><author>noreply@blogger.com (Ognjen Bajic)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-18728551.post-8404007566035697474</guid><pubDate>Thu, 27 Aug 2009 14:40:00 +0000</pubDate><atom:updated>2009-08-29T01:36:45.369+02:00</atom:updated><title>VS2010 Work item categories</title><description>&lt;span style="font-family:arial;"&gt;With VS2010 a new concept of work item categories is introduced. Out of the box there are four different categories defined: Requirements, Bugs, Shared test steps and Tests. They are used by the MTLM (Microsoft Test and Lab Manager – the new tool for manual testing) to filter the work items that will be shown in different parts of the MTLM’s UI.&lt;br /&gt;&lt;br /&gt;Work items of the types belonging to the Requirement category are displayed in the window shown below:&lt;br /&gt;&lt;/span&gt;&lt;a href="http://ognjenbajic.com/blog/pics/WICategories_Requirements1.jpg"&gt;&lt;span style="font-family:arial;"&gt;&lt;img style="MARGIN: 0px 0px 10px 10px; WIDTH: 450px; CURSOR: hand" border="0" alt="" src="http://ognjenbajic.com/blog/pics/WICategories_Requirements1.jpg" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;Note: Images are taken from a VS 2010 Beta 1 build.&lt;br /&gt;&lt;br /&gt;Categories are defined as a part of the process template. The only difference between categories defined in the two default process templates is that if you are using MSF Agile the Requirement is a User Story work item type, and in the MSF CMMI it is a Requirement work item type. It is easy to change these defaults – we can add different other work item types to a category, and they will appear in the MTLM’s UI as well.&lt;br /&gt;Categories are defined as a xml file. The file is generated by the witadmin command line utility (available by default in the C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE). This is the new utility replacing several other command line tools like witexport, witimport etc…&lt;br /&gt;The procedure is as follows: using witadmin with argument exportcategories to create the xml description, edit it and import back using witadmin importcategories.&lt;br /&gt;The description for the Agile MSF looks like this:&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;  &amp;lt?xml version="1.0" encoding="utf-8" ?&amp;gt &lt;br /&gt; &amp;ltcat:CATEGORIES xmlns:cat= "http://schemas.microsoft.com/VisualStudio/2008/workitemtracking/categories"&amp;gt&lt;br /&gt;&lt;br /&gt; &amp;ltCATEGORY refname="Microsoft.BugCategory" name="Bug Category"&amp;gt&lt;br /&gt;  &amp;ltDEFAULTWORKITEMTYPE name="Bug" /&amp;gt &lt;br /&gt;  &amp;lt/CATEGORY&amp;gt&lt;br /&gt;&lt;br /&gt; &amp;ltCATEGORY refname="Microsoft.RequirementCategory" name="Requirement Category"&amp;gt&lt;br /&gt;  &amp;ltDEFAULTWORKITEMTYPE name="User Story" /&amp;gt &lt;br /&gt;  &amp;lt/CATEGORY&amp;gt&lt;br /&gt;&lt;br /&gt; &amp;ltCATEGORY refname="Microsoft.SharedStepCategory" name="Shared Step Category"&amp;gt&lt;br /&gt;  &amp;ltDEFAULTWORKITEMTYPE name="Shared Steps" /&amp;gt &lt;br /&gt;  &amp;lt/CATEGORY&amp;gt&lt;br /&gt;&lt;br /&gt; &amp;ltCATEGORY refname="Microsoft.TestCaseCategory" name="Test Case Category"&amp;gt&lt;br /&gt;  &amp;ltDEFAULTWORKITEMTYPE name="Test Case" /&amp;gt &lt;br /&gt;  &amp;lt/CATEGORY&amp;gt&lt;br /&gt; &amp;lt/cat:CATEGORIES&amp;gt&lt;br /&gt;&lt;br /&gt;Let’s expand the Requirement category and add the Bug type to it (we want to be able to define the tests testing the error causing the bug). The xml would look like this:&lt;br /&gt;&lt;br /&gt;&amp;ltCATEGORY refname="Microsoft.RequirementCategory" name="Requirement Category"&amp;gt&lt;br /&gt;  &amp;ltDEFAULTWORKITEMTYPE name="User Story" /&amp;gt &lt;br /&gt;  &amp;ltWORKITEMTYPE name="Bug" /&amp;gt&lt;br /&gt;&amp;lt/CATEGORY&amp;gt&lt;br /&gt;&lt;br /&gt;And the MTLM would look like this - as requirements both user stories and bugs are listed:&lt;br /&gt;&lt;a href="http://ognjenbajic.com/blog/pics/WICategories_Requirements2.jpg"&gt;&lt;span style="font-family:arial;"&gt;&lt;img style="MARGIN: 0px 0px 10px 10px; WIDTH: 450px; CURSOR: hand" border="0" alt="" src="http://ognjenbajic.com/blog/pics/WICategories_Requirements2.jpg" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;br /&gt;Shared steps are another work item category. Out of the box the Shared steps work item type is the only one belonging to this category. This category is obviously used to show shared steps during the definition of the Test.&lt;br /&gt;&lt;br /&gt;That’s it. Work item categories are just one additional level of indirection allowing for some flexibility in the MTLM. &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18728551-8404007566035697474?l=ognjenbajic.com%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://ognjenbajic.com/blog/2009/08/vs2010-work-item-categories.html</link><author>noreply@blogger.com (Ognjen Bajic)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-18728551.post-2329949303638522929</guid><pubDate>Thu, 16 Apr 2009 07:42:00 +0000</pubDate><atom:updated>2009-10-09T23:19:28.842+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>TeamCompanion</category><category domain='http://www.blogger.com/atom/ns#'>v2.1</category><title>TeamCompanion for Outlook v 2.1 released</title><description>&lt;span style="font-family:arial;"&gt;Earlier this week Ekobit released The TeamCompanion for Outlook v2.1. Although numbered as a minor .1 release this version brings not only bug fixes, improved performance and enhancements to existing features, but also some exciting new features. This way TeamCompanion fulfills its goal to provide the general purpose TFS client integrated in Outlook with rich feature set aimed at nontechnical users, but useful to anyone wanting to combine Outlook’s collaboration and communication features with the ability to access TFS artifacts.&lt;br /&gt;&lt;br /&gt;This release is a &lt;strong&gt;free update&lt;/strong&gt; for all existing customers.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Following is the list of new and improved features of TeamCompanion:&lt;br /&gt;• &lt;a href="http://ognjenbajic.com/blog/2009/04/inside-teamcompanion-21-reports.html"&gt;&lt;strong&gt;Reports (including multiple saved parameter sets for each report)&lt;/strong&gt; &lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;&lt;a href="http://ognjenbajic.com/blog/pics/TCO2.1Reports4.png"&gt;&lt;img style="MARGIN: 0px 0px 10px 10px; WIDTH: 250px; FLOAT: right; CURSOR: hand" border="0" alt="" src="http://ognjenbajic.com/blog/pics/TCO2.1Reports4.png" /&gt;&lt;/a&gt;Support for reports in TeamCompanion lets you use all standard TFS reports directly from Outlook including the ability to send the report as mail or create an Outlook task or an appointment with the report inside. This feature also lets you save the parameters with which you usually execute each report, so that you can access already configured report with just one click. For each report you can save multiple parameter sets. My favorite usage pattern is to add such preconfigured report to the favorite folder and have it there available for fast and easy access. Read more &lt;a href="http://ognjenbajic.com/blog/2009/04/inside-teamcompanion-21-reports.html"&gt;here&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;• &lt;a href="http://ognjenbajic.com/blog/2009/03/inside-teamcompanion-21-query-by_24.html"&gt;&lt;strong&gt;„Query by example“ Work Item Query editor (including full-text search support)&lt;/strong&gt; &lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;&lt;a href="http://ognjenbajic.com/blog/pics/QBE7.gif"&gt;&lt;img style="MARGIN: 0px 0px 10px 10px; WIDTH: 250px; FLOAT: right; CURSOR: hand" border="0" alt="" src="http://ognjenbajic.com/blog/pics/QBE7.gif" /&gt;&lt;/a&gt;Query by Example (QBE) is a simplified Work Item Query editor that makes it easier to define usual everyday Work Item Queries. Queries are defined by entering values in already available placeholders for specific most frequently used Work Item Fields (like State, Priority, Iteration or Area Path etc.). QBE also supports full text search in any text or html work item field. There is full two way synchronization between QBE and standard grid based Query Editor so that you can edit search criteria in any of these two editors and freely switch between them. Read more &lt;a href="http://ognjenbajic.com/blog/2009/03/inside-teamcompanion-21-query-by_24.html"&gt;here&lt;/a&gt;. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;• &lt;strong&gt;Powerful online and offline work item search capabilities including desktop search integration &lt;/strong&gt;&lt;br /&gt;With &lt;a href="http://ognjenbajic.com/blog/2009/03/inside-teamcompanion-21-query-by_24.html"&gt;Query by Example query editor &lt;/a&gt;for full text online search and &lt;a href="http://ognjenbajic.com/blog/2009/03/inside-teamcompanion-21-using-outlook.html"&gt;desktop search integration for full text offline search in any work item field&lt;/a&gt;, TeamCompanion gives you all the tools you need to find the information you need. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;• &lt;strong&gt;Attaching mails to work items using drag-n-drop &lt;/strong&gt;&lt;br /&gt;Just drag a mail to the work item’s attachment tab and drop it there. TeamCompanion will take care of the rest. You can also attach files with drag-n-drop or paste pictures easily too.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;• &lt;a href="http://ognjenbajic.com/blog/2009/03/inside-teamcompanion-21-open-related.html"&gt;&lt;strong&gt;Open related object (work item, changeset or build) action for notification mails&lt;/strong&gt;&lt;/a&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;Whenever you receive a notification mail from the TFS &lt;a href="http://ognjenbajic.com/blog/pics/TCO2.1AnnouncementOpenRelated.png"&gt;&lt;img style="MARGIN: 0px 0px 10px 10px; WIDTH: 250px; FLOAT: right; CURSOR: hand" border="0" alt="" src="http://ognjenbajic.com/blog/pics/TCO2.1AnnouncementOpenRelated.png" /&gt;&lt;/a&gt;that refers to some TFS object this feature will let you open that object with just one click. This works not only for work items, but also for changesets and builds. Opening a changeset from a notification mail is my personal favorite, since it gives you the ability to follow source code changes directly from Outlook – you receive a notification, open the changeset, in the list of changed files open the difference and there you have the view of the source code changes. All without leaving Outlook.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;• &lt;strong&gt;Work Item Query management &lt;/strong&gt;&lt;br /&gt;Configuring "&lt;em&gt;&lt;strong&gt;Group by"&lt;/strong&gt;&lt;/em&gt; columns is now a part of the work item query editor. This setting doesn’t change the query itself of course. It rather defines the way the query result will be displayed in Outlook.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;• &lt;strong&gt;Scheduled Work Item queries &lt;/strong&gt;&lt;br /&gt;With scheduled query feature introduced in TeamCompanion 2.0 end users can configure work item queries to be automatically executed periodically. With this release administrators get the ability to control how frequently queries may be executed to prevent too frequent execution that may cause heavy load on the Team Foundation Server.&lt;br /&gt;&lt;br /&gt;For the complete list of features visit the &lt;a href="http://www.teamcompanion.com/"&gt;TeamCompanion’s homepage&lt;/a&gt;. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:arial;"&gt;TeamCompanion is available as a &lt;a href="http://www.ekobit.com/ProductsDetailView.aspx?id=29"&gt;free 90-days fully functional trial&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18728551-2329949303638522929?l=ognjenbajic.com%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://ognjenbajic.com/blog/2009/04/teamcompanion-for-outlook-v-21-released.html</link><author>noreply@blogger.com (Ognjen Bajic)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-18728551.post-4921912267596688838</guid><pubDate>Sat, 11 Apr 2009 07:46:00 +0000</pubDate><atom:updated>2009-04-11T11:23:01.154+02:00</atom:updated><title>[Inside TeamCompanion 2.1] Reports</title><description>&lt;span style="font-family:arial;"&gt;Reports are yet another feature introduced in the TeamCompanion v2.1. It integrates standard Team System reports with Outlook, thus making it not only easy to track and analyze the status of the project but also to send that further. In addition to that, support for reports in TeamCompanion simplifies the way you work with the same report used with different parameters by saving multiple parameter sets and making them available with just one click.&lt;br /&gt;First of all there is a new Reports folder in the tree beneath the project folder containing all reports. If you open a report it will be shown embedded in the Outlook UI:&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;a href="http://ognjenbajic.com/blog/pics/TCO2.1Reports1.png"&gt;&lt;span style="font-family:arial;"&gt;&lt;img style="MARGIN: 0px; WIDTH: 550px; CURSOR: hand" alt="" src="http://ognjenbajic.com/blog/pics/TCO2.1Reports1small.png" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;The report itself looks just the way you would expect it, but there’s a new toolbar at the top of the window. It lets you send the contents of the report as a mail, create an appointment or an Outlook task with the report contents attached.&lt;br /&gt;In the popup menus for each of these options in the toolbar the default action, executed if you just click on the toolbar button, is displayed bolded (it can be configured in the Options dialog).&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;a href="http://ognjenbajic.com/blog/pics/TCO2.1Reports2.png"&gt;&lt;span style="font-family:arial;"&gt;&lt;img style="MARGIN: 0px; CURSOR: hand" alt="" src="http://ognjenbajic.com/blog/pics/TCO2.1Reports2.png" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;One of the most annoying things regarding reports is the necessity to enter the same report parameters each time you use the report: current iteration, area for the part of the project you are interested in, start and end dates and different other parameters over and over again. TeamCompanion with saved parameter sets comes to rescue: just click the Save as button in the reports toolbar and create a new parameter set. A new entry appears in the tree beneath the original report node and with just one click you can open the report with already populated parameters. And you can preset multiple different versions of the report with different parameter configurations (e.g. one for the current iteration, one for the previous iteration etc.).&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;a href="http://ognjenbajic.com/blog/pics/TCO2.1Reports3a.png"&gt;&lt;span style="font-family:arial;"&gt;&lt;img style="MARGIN: 0px; WIDTH: 550px; CURSOR: hand" alt="" src="http://ognjenbajic.com/blog/pics/TCO2.1Reports3asmall.png" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;And to make your preconfigured reports even more accessible, put them in the favorite folders. This way wherever you are in Outlook, with just one mouse click you will be able to open your favorite reports with parameters already set and start to analyze your project status straight away.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;a href="http://ognjenbajic.com/blog/pics/TCO2.1Reports4.png"&gt;&lt;span style="font-family:arial;"&gt;&lt;img style="MARGIN: 0px; WIDTH: 550px; CURSOR: hand" alt="" src="http://ognjenbajic.com/blog/pics/TCO2.1Reports4small.png" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;span style="font-family:arial;"&gt;It can’t be easier than that.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18728551-4921912267596688838?l=ognjenbajic.com%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://ognjenbajic.com/blog/2009/04/inside-teamcompanion-21-reports.html</link><author>noreply@blogger.com (Ognjen Bajic)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-18728551.post-7813546315498276188</guid><pubDate>Tue, 31 Mar 2009 18:28:00 +0000</pubDate><atom:updated>2009-04-11T10:55:38.539+02:00</atom:updated><title>[Inside TeamCompanion 2.1] Using Outlook 2007 Instant Search for offline work item search</title><description>&lt;span style="font-family:arial;"&gt;Instant Search is the way to perform precise and fast search within Outlook 2007 mails, tasks, contacts, etc. You can also use it to perform full text search within work items even if you are offline. Searching arbitrary text is easy. Just select query folder and type word or phrase you want to search. Searching for the text within specific work item fields is somewhat more involved, but is also very easy, as we will demonstrate shortly. Purpose of this text is to demonstrate both approaches.&lt;br /&gt;&lt;br /&gt;To be able to search while offline, we first need to fetch the work item information from the server in online mode. In TeamCompanion, scheduled execution of work item queries is usualy used for that. Let's suppose we want to search within work items that were returned by some query called „Test Query“. On the right side the first few work items are visible:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;p align="center"&gt;&lt;a href="http://ognjenbajic.com/blog/pics/TCOInstantSearch-screen1.png"&gt;&lt;span style="font-family:arial;"&gt;&lt;img style="MARGIN: 0px; WIDTH: 450px; CURSOR: hand" alt="" src="http://ognjenbajic.com/blog/pics/TCOInstantSearch-screen1small.png" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;span style="font-family:arial;"&gt;If we want to search for text „process guidance“, we would simply type that text in the Instant Search text box. Note that phrase must be enclosed in quotes because we want to search fields that contain both the „process“ word and „guidance“ word. These are the results:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;p align="center"&gt;&lt;a href="http://ognjenbajic.com/blog/pics/TCOInstantSearch-screen2.png"&gt;&lt;span style="font-family:arial;"&gt;&lt;img style="MARGIN: 0px; WIDTH: 450px; CURSOR: hand" alt="" src="http://ognjenbajic.com/blog/pics/TCOInstantSearch-screen2small.png" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;span style="font-family:arial;"&gt;The result is as expected; search result consists of work items that contain the phrase „process guidance“.&lt;br /&gt;&lt;br /&gt;Let's suppose that we want to restrict our search to some specific work item fields and not all of them. To accomplish that, search queries must be used. Generally, search queries have the following form: keyword:search criteria value. When searching within a single field, keyword is the name of the field and search criteria value is the phrase that field must contain for the item to appear in the search result. In the case of TeamCompanion, basic search query has the following form: &lt;strong&gt;[Tfs:work item field name]:search criteria value&lt;/strong&gt;. Work item field name is the name of the column in query view and search criteria value is the phrase to search. Note that work item field must be added as column in order to be used for search (to add columns, right-click query folder and click „Customize View“). Square brackets are required because TeamCompanion prefixes work item field names with „Tfs:“. Since colon is used by the Instant Search as the separator between keyword and search criteria value, we must tell Instant Search that colon in Tfs:work item field name is not separator. To do this we enclose Tfs: work item field name with the square brackets.&lt;br /&gt;&lt;br /&gt;Now, let's look at few examples. Assume we want to search for the phrase: „Set up“ in the Title field. Our search query must have the following form: &lt;strong&gt;[Tfs:Title]:“Set up“&lt;/strong&gt;. This is the result:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;p align="center"&gt;&lt;a href="http://ognjenbajic.com/blog/pics/TCOInstantSearch-screen3.png"&gt;&lt;span style="font-family:arial;"&gt;&lt;img style="MARGIN: 0px; WIDTH: 450px; CURSOR: hand" alt="" src="http://ognjenbajic.com/blog/pics/TCOInstantSearch-screen3small.png" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;span style="font-family:arial;"&gt;Search results now consist of work items that have the phrase „Set up“ in their Title field.&lt;br /&gt;&lt;br /&gt;Instant Search allows usage of the standard logical operators: AND, NOT, OR, &lt;, &gt;, =, etc. Next example will show how to use logical operators to create a bit more complicated search queries. Suppose we want to search work items that have word „task“ in their description but ID for that work items must be less than 200. Search query for the first condition is &lt;strong&gt;[Tfs:Description]:task&lt;/strong&gt;, and search query for the second condition is &lt;strong&gt;[Tfs:ID]:&lt;200&lt;/strong&gt;. Since we want work items that satisfy both of these condition, we're going to use AND operator to combine previous search queries into the single search query: &lt;strong&gt;[Tfs:Description]:task AND [Tfs:ID]:&lt;200&lt;/strong&gt;. Search results are:&lt;/span&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;a href="http://ognjenbajic.com/blog/pics/TCOInstantSearch-screen4.png"&gt;&lt;span style="font-family:arial;"&gt;&lt;img style="MARGIN: 0px; WIDTH: 450px; CURSOR: hand" alt="" src="http://ognjenbajic.com/blog/pics/TCOInstantSearch-screen4small.png" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:arial;"&gt;That's it! As you can see, searching work items is easy.&lt;br /&gt;For more information about search queries, you may find these links helpful: &lt;/span&gt;&lt;a href="http://office.microsoft.com/en-us/outlook/HA102388311033.aspx?pid=CH102499941033"&gt;&lt;span style="font-family:arial;"&gt;Learn to narrow your search criteria for better searches in Outlook&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; and &lt;/span&gt;&lt;a href="http://office.microsoft.com/en-us/outlook/HA012305851033.aspx"&gt;&lt;span style="font-family:arial;"&gt;Office Online on using Instant Search&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;[This blog entry was written by Dini Selimovic who implemented large parts of TeamCompanion.]&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18728551-7813546315498276188?l=ognjenbajic.com%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://ognjenbajic.com/blog/2009/03/inside-teamcompanion-21-using-outlook.html</link><author>noreply@blogger.com (Ognjen Bajic)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-18728551.post-5148476318614707970</guid><pubDate>Tue, 24 Mar 2009 22:34:00 +0000</pubDate><atom:updated>2009-04-11T10:54:16.815+02:00</atom:updated><title>[Inside TeamCompanion 2.1] Query by Example (QBE)</title><description>&lt;span style="font-family:arial;"&gt;TeamCompanion features the standard grid based work item query editor (see Picture 1) since the version 2.0. This editor is powerful, very flexible and supports lots of options, which makes it overly complex for most standard everyday queries. Although there are only a handful of work item fields usually used in the queries, user needs to pick them from a long list of fields each time over and over again. From the names in the list it is not always even clear which is the right field for specific criteria. These are only some of the issues with the standard query editor that led us to the idea to make better querying experience possible.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;p align="center"&gt;&lt;a href="http://ognjenbajic.com/blog/pics/QBE1.gif"&gt;&lt;span style="font-family:arial;"&gt;&lt;img style="MARGIN: 0px; WIDTH: 450px; CURSOR: hand" alt="" src="http://ognjenbajic.com/blog/pics/QBE1small.png" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p align="center"&gt;Picture 1: Standard Work Item Query Editor&lt;/p&gt;&lt;div align="left"&gt;&lt;span style="font-family:arial;"&gt;In order to enable easy and efficient work item query editing and work item search in general we have decided to implement a new kind of work item query editor in TeamCompanion v 2.1 - Query by Example (usually referred to just as QBE). &lt;strong&gt;In the QBE, the standard fields are already predefined and user only needs to fill in the values. Defining search criteria this way is easier, faster, and more straightforward – most of the queries can be defined with just few clicks.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;In QBE, fields are grouped in 5 different groups and presented in as many tabbed dialogs:&lt;br /&gt;• General (for general query filter fields like Project name, State, Work Item Type, Area and Iteration path, Id etc.),&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;a href="http://ognjenbajic.com/blog/pics/QBE2.gif"&gt;&lt;span style="font-family:arial;"&gt;&lt;img style="MARGIN: 0px; WIDTH: 450px; CURSOR: hand" alt="" src="http://ognjenbajic.com/blog/pics/QBE2small.png" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;span style="font-family:arial;"&gt;• State transitions (for the fields related to the work item state transitions like Created on, Created by, Resolved on etc.),&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;a href="http://ognjenbajic.com/blog/pics/QBE3.gif"&gt;&lt;span style="font-family:arial;"&gt;&lt;img style="MARGIN: 0px; WIDTH: 450px; CURSOR: hand" alt="" src="http://ognjenbajic.com/blog/pics/QBE3small.png" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;span style="font-family:arial;"&gt;• Text (for full text search over different text fields),&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;a href="http://ognjenbajic.com/blog/pics/QBE4.gif"&gt;&lt;span style="font-family:arial;"&gt;&lt;img style="MARGIN: 0px; WIDTH: 450px; CURSOR: hand" alt="" src="http://ognjenbajic.com/blog/pics/QBE4small.png" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;span style="font-family:arial;"&gt;• Historical Queries (for the &lt;a href="http://msdn.microsoft.com/en-us/library/bb130326(VS.80).aspx"&gt;ASOF wiql operator&lt;/a&gt;)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;a href="http://ognjenbajic.com/blog/pics/QBE5.gif"&gt;&lt;span style="font-family:arial;"&gt;&lt;img style="MARGIN: 0px; WIDTH: 450px; CURSOR: hand" alt="" src="http://ognjenbajic.com/blog/pics/QBE5small.png" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;span style="font-family:arial;"&gt;• Additional criteria (for the fields that are not provided in previous dialogs; in the picture below we have arbitrarily added two fields: Discipline and Triage).&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;a href="http://ognjenbajic.com/blog/pics/QBE6.gif"&gt;&lt;span style="font-family:arial;"&gt;&lt;img style="MARGIN: 0px; WIDTH: 450px; CURSOR: hand" alt="" src="http://ognjenbajic.com/blog/pics/QBE6small.png" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;span style="font-family:arial;"&gt;So, how would you define an ordinary Query like “give me all active bugs and tasks assigned to me in the current project”? Actually, all you would need are exactly six mouse clicks. Check the checkboxes for the work item types Bug and Task and select @Me from the list in the “Assigned to” control and Active from the “Status” control. It can’t be simpler than that.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;a href="http://ognjenbajic.com/blog/pics/QBE7.gif"&gt;&lt;span style="font-family:arial;"&gt;&lt;img style="MARGIN: 0px; WIDTH: 450px; CURSOR: hand" alt="" src="http://ognjenbajic.com/blog/pics/QBE7small.png" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p align="center"&gt;Picture 7: A simple Work Item Query in QBE – criteria described above are highlighted&lt;br /&gt;&lt;/p&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;We could add some additional criteria from the State transitions tab (e.g. search for work items that “I have created in the last 30 days”). Another four clicks. &lt;/span&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;a href="http://ognjenbajic.com/blog/pics/QBE8.gif"&gt;&lt;span style="font-family:arial;"&gt;&lt;img style="MARGIN: 0px; WIDTH: 450px; CURSOR: hand" alt="" src="http://ognjenbajic.com/blog/pics/QBE8small.png" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;div align="center"&gt;Picture 8: A simple Work Item Query in QBE contd. - State transitions&lt;/div&gt;&lt;span style="font-family:arial;"&gt;We can even have full text search criteria included in the query.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;a href="http://ognjenbajic.com/blog/pics/QBE9.gif"&gt;&lt;span style="font-family:arial;"&gt;&lt;img style="MARGIN: 0px; WIDTH: 450px; CURSOR: hand" alt="" src="http://ognjenbajic.com/blog/pics/QBE9small.png" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;div align="center"&gt;Picture 9: A simple Work Item Query in QBE contd. – Full text search&lt;/div&gt;&lt;div align="center"&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;/div&gt;&lt;span style="font-family:arial;"&gt;Now, you are in for a surprise. Just switch tabs from “Query by Example” to “Query Editor” and the same query we have just defined in QBE is available in the standard grid based editor and can be further refined there. We can change any of the criteria just defined in QBE or add some completely new criteria. In QBE there is a constrained set of fields available. In the grid there are no restrictions: you can choose any field you like and as long as you choose AND operator while adding new fields, you will be allowed to switch back to QBE and continue editing the query there. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;If QBE were just a fancy way to define queries using hardcoded set of fields, it would clearly be of limited use. But if you add custom fields to the query in the Query Editor and switch back to QBE, these fields will be available there too. That is what Additional criteria tab is used for. If there are additional fields in the work item query, that are not provided by default in any other tab, as long as the query structure is such that the QBE can present it, the fields will be available in the Additional criteria tab.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;a href="http://ognjenbajic.com/blog/pics/QBE10.gif"&gt;&lt;span style="font-family:arial;"&gt;&lt;img style="MARGIN: 0px; WIDTH: 450px; CURSOR: hand" alt="" src="http://ognjenbajic.com/blog/pics/QBE10small.png" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;Picture 10: A simple Work Item Query in QBE contd. – Query opened in the standard Query Editor&lt;br /&gt;&lt;p align="center"&gt;&lt;a href="http://ognjenbajic.com/blog/pics/QBE11.gif"&gt;&lt;span style="font-family:arial;"&gt;&lt;img style="MARGIN: 0px; WIDTH: 450px; CURSOR: hand" alt="" src="http://ognjenbajic.com/blog/pics/QBE11small.png" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;Picture 11: A simple Work Item Query in QBE contd. – Custom field added in the Query Editor&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;p align="center"&gt;&lt;a href="http://ognjenbajic.com/blog/pics/QBE12.gif"&gt;&lt;span style="font-family:arial;"&gt;&lt;img style="MARGIN: 0px; WIDTH: 450px; CURSOR: hand" alt="" src="http://ognjenbajic.com/blog/pics/QBE12small.png" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;div align="center"&gt;Picture 12: A simple Work Item Query in QBE contd. – Custom field editable in QBE &lt;/div&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;This way with QBE and grid based Query Editor you get the best of both worlds: efficiency and ease of use of QBE and flexibility of Query Editor.&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Following are some best practices regarding QBE that will further improve your usage experience with QBE.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;If you want to remove a clause regarding some field on the General tab that comes together with the combo for the operator (like State, ID or Priority etc.), instead of removing the value first and then the operator, clear the operator directly by choosing empty string from the combo – it will empty the value as well.&lt;br /&gt;In the QBE’s State transitions tab, by default After/On (meaning greater than or equal) or Before/On operators are used. In order not to clutter the UI too much, these operators are read only and cannot be changed here. But, if you switch to the grid based Query Editor and replace ‘&gt;=’ with ‘&gt;’ or ‘=’ or replace ‘&lt;=’ with ‘&lt;’ or ‘=’ we will honor it. Switch back to QBE and the operator will be changed appropriately. &lt;/span&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;a href="http://ognjenbajic.com/blog/pics/QBE13.gif"&gt;&lt;span style="font-family:arial;"&gt;&lt;img style="MARGIN: 0px; WIDTH: 450px; CURSOR: hand" alt="" src="http://ognjenbajic.com/blog/pics/QBE13small.png" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;a href="http://ognjenbajic.com/blog/pics/QBE14.gif"&gt;&lt;span style="font-family:arial;"&gt;&lt;img style="MARGIN: 0px; WIDTH: 450px; CURSOR: hand" alt="" src="http://ognjenbajic.com/blog/pics/QBE14small.png" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;a href="http://ognjenbajic.com/blog/pics/QBE15.gif"&gt;&lt;span style="font-family:arial;"&gt;&lt;img style="MARGIN: 0px; WIDTH: 450px; CURSOR: hand" alt="" src="http://ognjenbajic.com/blog/pics/QBE15small.png" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;div align="center"&gt;Picture 13 to 15 – Workflow when changing temporal operators&lt;/div&gt;&lt;div align="center"&gt;&lt;/div&gt;&lt;span style="font-family:arial;"&gt;You may be wondering what kinds of queries QBE does support. There is one basic criterion a query needs to satisfy to be editable in QBE: each filter clause (at the root level) has to be connected using AND operator. Additionally there are some operators QBE doesn’t support. Usually you really don’t need to worry about it – if the query isn’t supported by (editable in) QBE, QBE tab will instantly be disabled. That is not needed all too often though; QBE supports all queries from both standard Microsoft process templates and from Conchango’s Scrum template.&lt;br /&gt;One closing note: after you define the search filter in QBE and/or in the grid based Query Editor, you should go to the third tab and configure the column options for the query: columns displayed, sorting order and grouping. The first two are standard part of any work item query. The third one, grouping, is supported because in TeamCompanion we are leveraging Outlook grouping features.&lt;br /&gt;That’s it, grab your copy of TeamCompanion and start playing with Query by Example.&lt;br /&gt;&lt;br /&gt;&lt;a name="Summary"&gt;&lt;strong&gt;Summary&lt;/a&gt;&lt;br /&gt;Query by Example (QBE) is a simplified Work Item Query editor that makes it easier to define usual everyday Work Item Queries. Queries are defined by entering values in already available placeholders for specific most frequently used Work Item Fields (like State, Priority, Iteration or Area Path etc.). QBE also supports full text search in any text or html work item field. There is full two way synchronization between QBE and standard grid based Query Editor so that you can edit search criteria in any of these two editors and freely switch between them. &lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18728551-5148476318614707970?l=ognjenbajic.com%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://ognjenbajic.com/blog/2009/03/inside-teamcompanion-21-query-by_24.html</link><author>noreply@blogger.com (Ognjen Bajic)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-18728551.post-6462934745552562735</guid><pubDate>Sun, 22 Mar 2009 02:25:00 +0000</pubDate><atom:updated>2009-04-11T11:00:55.985+02:00</atom:updated><title>[Inside TeamCompanion 2.1] Open related object</title><description>&lt;span style="font-family:arial;"&gt;With the release of the TeamCompanion v 2.1 just a few days away it is high time to start a series of blog entries on the most interesting new features this version brings.&lt;br /&gt;We will start with one of the small but useful productivity features that make everyday work with the Team System in TeamCompanion easier and more efficient.&lt;br /&gt;&lt;strong&gt;Whenever you receive a notification mail from the TFS that refers to some TFS object this feature called “Open related object” will let you open that object with just one click.&lt;/strong&gt; It is similar to the ability to configure the work item links in the notification mails introduced with the TFS 2008 SP1 that lets you open work items in the Team System Web Access. But, since we are in a desktop application – Outlook, it would be a shame to have to use web UI. We should be able to open the work item in a nice familiar desktop dialog. That is what “Open related object” is all about. In addition to work items it supports opening changesets and build reports too!&lt;br /&gt;Let’s see what it looks like. We will start with a notification mail about work item change&lt;br /&gt;&lt;p align="center"&gt;&lt;a href="http://ognjenbajic.com/blog/pics/TCO2.1OpenObjectWorkItem1.png"&gt;&lt;img style="MARGIN: 0px; WIDTH: 450px; CURSOR: hand" alt="" src="http://ognjenbajic.com/blog/pics/TCO2.1OpenObjectWorkItem1small.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;After just one click on the “Open Work Item” button the work item edit form appears:&lt;br /&gt;&lt;p align="center"&gt;&lt;a href="http://ognjenbajic.com/blog/pics/TCO2.1OpenObjectWorkItem2.png"&gt;&lt;img style="MARGIN: 0px; WIDTH: 450px; CURSOR: hand" alt="" src="http://ognjenbajic.com/blog/pics/TCO2.1OpenObjectWorkItem2small.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;It works the same way for changesets:&lt;br /&gt;&lt;p align="center"&gt;&lt;a href="http://ognjenbajic.com/blog/pics/TCO2.1OpenObjectChangeset1.png"&gt;&lt;img style="MARGIN: 0px; WIDTH: 450px; CURSOR: hand" alt="" src="http://ognjenbajic.com/blog/pics/TCO2.1OpenObjectChangeset1small.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;a href="http://ognjenbajic.com/blog/pics/TCO2.1OpenObjectChangeset2.png"&gt;&lt;img style="MARGIN: 0px; WIDTH: 450px; CURSOR: hand" alt="" src="http://ognjenbajic.com/blog/pics/TCO2.1OpenObjectChangeset2small.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;and for the builds:&lt;br /&gt;&lt;p align="center"&gt;&lt;a href="http://ognjenbajic.com/blog/pics/TCO2.1OpenObjectBuild1.png"&gt;&lt;img style="MARGIN: 0px; WIDTH: 450px; CURSOR: hand" alt="" src="http://ognjenbajic.com/blog/pics/TCO2.1OpenObjectBuild1small.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;a href="http://ognjenbajic.com/blog/pics/TCO2.1OpenObjectBuild2.png"&gt;&lt;img style="MARGIN: 0px; WIDTH: 450px; CURSOR: hand" alt="" src="http://ognjenbajic.com/blog/pics/TCO2.1OpenObjectBuild2small.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;The same action is available from the context menu too: &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;p align="center"&gt;&lt;a href="http://ognjenbajic.com/blog/pics/TCO2.1Open%20related%20objectContext%20menu.png"&gt;&lt;img style="MARGIN: 0px; WIDTH: 450px; CURSOR: hand" alt="" src="http://ognjenbajic.com/blog/pics/TCO2.1Open%20related%20objectContext%20menusmall.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18728551-6462934745552562735?l=ognjenbajic.com%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://ognjenbajic.com/blog/2009/03/inside-teamcompanion-21-open-related.html</link><author>noreply@blogger.com (Ognjen Bajic)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-18728551.post-5867338860419175950</guid><pubDate>Wed, 25 Feb 2009 07:38:00 +0000</pubDate><atom:updated>2009-02-25T09:15:40.063+01:00</atom:updated><title>Oracle support for Visual Studio Team Edition Database Edition announced!</title><description>&lt;a href="http://www.quest.com/newsroom/news-releases-show.aspx?contentid=9102"&gt;&lt;span style="font-family:arial;"&gt;Quest Software announced&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; yesterday (Feb 24, 2009) that it will offer Oracle support for Microsoft Visual Studio Team System (VSTS) 2010!&lt;br /&gt;Quest will produce an &lt;/span&gt;&lt;a href="http://www.teamfuze.net/index.jspa"&gt;&lt;span style="font-family:arial;"&gt;Oracle Database Schema Provider (DSP)&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; which will integrate Oracle with Visual Studio Database Edition and allow Oracle Developers using Visual Studio Team System to perform offline design, development and change management for Oracle databases, similarly to how Visual Studio Team System works with Microsoft® SQL Server™ databases.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.teamfuze.net/beta.jspa"&gt;&lt;span style="font-family:arial;"&gt;See the screenshots or joint the beta.&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Visit &lt;/span&gt;&lt;a href="http://www.teamfuze.net/"&gt;&lt;span style="font-family:arial;"&gt;TeamFuze&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;, new community for Oracle professionals working in VSTS.&lt;/span&gt;&lt;a href="http://www.teamfuze.net/index.jspa"&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;Go to &lt;/span&gt;&lt;a href="http://www.teamfuze.net/forumindex.jspa?categoryID=636"&gt;&lt;span style="font-family:arial;"&gt;TeamFuze forums&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Visit &lt;a href="http://blogs.inside.quest.com/teamfuze/"&gt;TeamFuze blog&lt;/a&gt;.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Wahoo!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18728551-5867338860419175950?l=ognjenbajic.com%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://ognjenbajic.com/blog/2009/02/oracle-support-for-visual-studio-team.html</link><author>noreply@blogger.com (Ognjen Bajic)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-18728551.post-8101182478054213806</guid><pubDate>Sat, 08 Nov 2008 21:40:00 +0000</pubDate><atom:updated>2008-11-08T22:44:11.120+01:00</atom:updated><title>Oct'08 TFS Power Tools released</title><description>&lt;span style="font-family:arial;"&gt;I refrained from passing all the VSTS related news on the blog lately, since there are enough &lt;/span&gt;&lt;a href="http://twitter.com/MicrosoftVSTS"&gt;&lt;span style="font-family:arial;"&gt;other places&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; where one can plug in and be informed in real time of all important events.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;But this is really important news: Microsoft has released a major piece of Team System functionality in an off the band release in its October 08 TFS Power Tools.&lt;br /&gt;Oct ‘08 Power Tools come with many things lots of people have been asking for. Just read the list of the major new features:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Team Members&lt;br /&gt;&lt;/strong&gt;Adds a new node to under each Team Project to the Team Explorer called "Team Members" that identifies people and who work on the project. It serves as a "pivot point" for information and operations on people and teams. This is huge, because among supported operations we finally get IM, audio and video comm. integrated with TFS client. Right now Live Messenger 8.0 and later and Office Communicator 2005 and later are supported, but more are in the works.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Windows Shell Extension&lt;br /&gt;&lt;/strong&gt;Allows core version control operations directly within Windows Explorer (without using Team Explorer). You will need to use to use custom setup option in order to turn this feature on. And it works on 64 bit OS-es as well!&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;PowerShell Support &lt;/strong&gt;&lt;br /&gt;Provides a PowerShell pipeline and cmdlets for TFS. Initial support is for core version control operations.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Custom components&lt;br /&gt;&lt;/strong&gt;This feature brings support for automated distribution of client side custom components like custom work item controls, check in policies and similar. Up till now there was no good way to distribute them. Now there is. :-)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Above are only the most exciting features. For the complete list with more detailed description see Brian Harry’s blogs &lt;/span&gt;&lt;a href="http://blogs.msdn.com/bharry/archive/2008/10/01/preview-of-the-next-tfs-power-tools-release.aspx"&gt;&lt;span style="font-family:arial;"&gt;here&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; and &lt;/span&gt;&lt;a href="http://blogs.msdn.com/bharry/archive/2008/11/08/oct-08-tfs-power-tools-are-available.aspx"&gt;&lt;span style="font-family:arial;"&gt;here&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Get the Oct’08 TFS Power Tools &lt;/span&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=FBD14EEA-781F-45A1-8C46-9F6BA2F68BF0&amp;amp;displaylang=en#filelist"&gt;&lt;span style="font-family:arial;"&gt;here&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;. &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18728551-8101182478054213806?l=ognjenbajic.com%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://ognjenbajic.com/blog/2008/11/oct08-tfs-power-tools-released.html</link><author>noreply@blogger.com (Ognjen Bajic)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-18728551.post-7986922175348434687</guid><pubDate>Tue, 30 Sep 2008 06:10:00 +0000</pubDate><atom:updated>2008-11-08T22:45:01.438+01:00</atom:updated><title>VSTS Dev and DB Editions joined together!</title><description>&lt;span style="font-family:arial;"&gt;After a longer hiatus, this blog continues with exciting news about Microsoft yesterday’s &lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/vstudio/products/cc948977.aspx"&gt;&lt;span style="font-family:arial;"&gt;announcement&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;: &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;not only will VSTS Development Edition and Database Edition be merged in the next version of the VS, but as of October 1, 2008 if you have one (and valid SA – software assurance agreement) you are entitled to use the other even for the current 2008 version. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;This also applies to Microsoft partners that until now only received Developer Edition licenses as a part of the partner benefits! They get the Database Edition as well now. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;This is part of larger Visual Studio 2010 announcement. Read more in &lt;a href="http://blogs.msdn.com/bharry/archive/2008/09/29/shining-the-light-on-rosario.aspx"&gt;Brian Harry's blog &lt;/a&gt;(including the hint on when we can expect to get it).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18728551-7986922175348434687?l=ognjenbajic.com%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://ognjenbajic.com/blog/2008/09/vsts-dev-and-db-edtions-joined-together.html</link><author>noreply@blogger.com (Ognjen Bajic)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-18728551.post-2899442010309710000</guid><pubDate>Sat, 28 Jun 2008 01:29:00 +0000</pubDate><atom:updated>2008-06-28T03:32:47.102+02:00</atom:updated><title>TeamCompanion for Excel and Project support for TFS 2008 released</title><description>&lt;span style="font-family:arial;"&gt;Together with the &lt;a href="http://ognjenbajic.com/blog/2008/06/earlier-this-week-ekobit-released.html"&gt;new version of the TeamCompanion for Outlook&lt;/a&gt;, Ekobit released the TFS 2008 versions of TeamCompanion for Excel and Project. Find more about these two addins &lt;/span&gt;&lt;a href="http://ognjenbajic.com/blog/2007/10/teamcompanion-for-project-and-excel.html"&gt;&lt;span style="font-family:arial;"&gt;here&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18728551-2899442010309710000?l=ognjenbajic.com%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://ognjenbajic.com/blog/2008/06/teamcompanion-for-excel-and-project.html</link><author>noreply@blogger.com (Ognjen Bajic)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-18728551.post-6328718111591325155</guid><pubDate>Sat, 28 Jun 2008 01:19:00 +0000</pubDate><atom:updated>2008-06-28T03:28:12.214+02:00</atom:updated><title>TeamCompanion for Outlook v2.0 released</title><description>&lt;p&gt;&lt;span style="font-family:arial;color:#000000;"&gt;Earlier this week Ekobit released The TeamCompanion for Outlook v2.0. This second major version of the TeamCompanion brings a lot of new features. Actually, there are as many new features as there were features altogether earlier. The new TeamCompanion version sets standards in integration between Outlook and the Team Foundation Server. Scheduled queries will automatically refresh WI folders enabling you to stay up-to-date, while ad-hoc queries allow the execution of WI queries on the fly. With the ability to drag and drop queries in the favorite folders you will have that up-to-date information about the work progress always visible.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;color:#000000;"&gt;Some of the cool new features: &lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:arial;color:#000000;"&gt;Work Item query management support &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;color:#000000;"&gt;Editing areas and iterations support &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;color:#000000;"&gt;Scheduled Work Item queries &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;color:#000000;"&gt;Subscriptions to TFS alert notifications support &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;color:#000000;"&gt;Integration with Excel and Project &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;color:#000000;"&gt;Work Item reminders and To-Do list integration &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;color:#000000;"&gt;Outlook Tasks support (Work item from Task, Task from Work item, Open associated Work Item) &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;color:#000000;"&gt;Outlook RSS feeds support &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;color:#000000;"&gt;Ad-hoc queries including all standard services (Work Item to Mail, task or appointment conversion) &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;color:#000000;"&gt;Add related work item action support &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;color:#000000;"&gt;Send Work Item Query result as mail &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;color:#000000;"&gt;Additional simplified toolbar &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;color:#000000;"&gt;Trial period extended to 90 days &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;color:#000000;"&gt;... and a lot more available for download &lt;/span&gt;&lt;a href="http://ekobit.cmail5.com/l/445190/79j6t4d/4" target="_blank"&gt;&lt;span style="font-family:arial;color:#000000;"&gt;now&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;color:#000000;"&gt;. &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family:arial;color:#000000;"&gt;Visit &lt;/span&gt;&lt;a href="http://www.ekobit.com/ProductsDetailView.aspx?id=48"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;videos&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; and the &lt;/span&gt;&lt;a href="http://www.ekobit.com/ProductsDetailView.aspx?id=49"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;blog&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; demonstrating and describing the most interesting usage scenarios.&lt;br /&gt;TeamCompanion supports Outlook 2003 and 2007 and TFS 2005 and 2008 and is available in English and German.&lt;br /&gt;Product homepage: &lt;/span&gt;&lt;a href="http://www.teamcompanion.com/"&gt;&lt;span style="font-family:arial;"&gt;http://www.teamcompanion.com/&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;Download the trial from: &lt;/span&gt;&lt;a href="http://www.ekobit.com/ProductsDetailView.aspx?id=29"&gt;&lt;span style="font-family:arial;"&gt;http://www.ekobit.com/ProductsDetailView.aspx?id=29&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18728551-6328718111591325155?l=ognjenbajic.com%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://ognjenbajic.com/blog/2008/06/earlier-this-week-ekobit-released.html</link><author>noreply@blogger.com (Ognjen Bajic)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-18728551.post-7408515078912816778</guid><pubDate>Tue, 26 Feb 2008 23:54:00 +0000</pubDate><atom:updated>2009-03-22T04:22:29.832+01:00</atom:updated><title>[VSTS] Problem with Bissubscribe and keyword 'NOT'</title><description>&lt;span style="font-family:arial;"&gt;[Update: Problem described in this blog entry has been solved in TFS 2008 SP1.]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;When called twice with the same arguments &lt;/span&gt;&lt;a href="http://blogs.vertigosoftware.com/teamsystem/archive/2006/07/03/Subscribing_to_Team_Foundation_Server_Events.aspx"&gt;&lt;span style="font-family:arial;"&gt;bissubscribe&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; doesn’t do anything on the second call i.e. there is no additional second event subscription added. Normally it is safe to call bissubscribe with the same arguments as many times as you like – you will get only one subscription.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;But, there is a know bug that causes problems if the &lt;/span&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/bb130302.aspx"&gt;&lt;span style="font-family:arial;"&gt;filter expression&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; contains the keyword 'NOT'.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;If the filter contains ‘NOT’, if called multiple times with the same arguments, bissubscribe will not detect that the arguments are the same and will create a new subscription every time you call it.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Here is a generic sample to repro the problem:&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;If called twice following line will create two subscriptions&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;BisSubscribe.exe /eventType WorkItemChangedEvent /address &lt;/span&gt;&lt;a href="http://tfs2k8/Notifications/EventHandler.asmx"&gt;&lt;span style="font-family:courier new;"&gt;http://tfs2k8/Notifications/EventHandler.asmx&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt; /server &lt;/span&gt;&lt;a href="http://tfs2k8:8080/"&gt;&lt;span style="font-family:courier new;"&gt;http://tfs2k8:8080&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:courier new;"&gt; /filter "&lt;strong&gt;NOT&lt;/strong&gt; \"PortfolioProject\" = 'a'"&lt;br /&gt;&lt;/span&gt;whereby if we remove NOT from the filter expression only one subscription is created.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;Suggested workaround is to use the operator ‘&lt;&gt;’ instead of the keyword ‘NOT’. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Following call works fine i.e. can be called multiple times and will result in one subscription only:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;BisSubscribe.exe /eventType WorkItemChangedEvent /address &lt;/span&gt;&lt;a href="http://tfs2k8/Notifications/EventHandler.asmx"&gt;&lt;span style="font-family:courier new;"&gt;http://tfs2k8/Notifications/EventHandler.asmx&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt; /server &lt;/span&gt;&lt;a href="http://tfs2k8:8080/"&gt;&lt;span style="font-family:courier new;"&gt;http://tfs2k8:8080&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:courier new;"&gt; /filter " \"PortfolioProject\" &lt;strong&gt;&lt;&gt;&lt;/strong&gt; 'a'" &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18728551-7408515078912816778?l=ognjenbajic.com%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://ognjenbajic.com/blog/2008/02/vsts-problem-with-bissubscribe-and.html</link><author>noreply@blogger.com (Ognjen Bajic)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-18728551.post-4241329262661204518</guid><pubDate>Mon, 18 Feb 2008 14:59:00 +0000</pubDate><atom:updated>2008-02-27T00:32:51.852+01:00</atom:updated><title>[Inside TeamCompanion]: Desktop work item search - Part 2: Vista instant search hints</title><description>&lt;span style="font-family:arial;"&gt;In the previous blog entry I've presented desktop search integration for the work items implemented by the TeamCompanion. In this one, I will give you some hints how to best use it to get the right search results quickly and easily. The hints apply to &lt;strong&gt;Vista instant search&lt;/strong&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;The idea is to give the search engine some metadata in addition to the search term itself, so that it can best locate your work items.&lt;br /&gt;Internally work items are presented to the indexing engine as mail items, so you should use „store:mapi“ in your work items searches. That is not too restrictive but will help.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;In the following examples I will use the team foundation server name “TFS.ekobit.com” and the project name “SearchDemoProject”. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;To search for work items from a specific server tell the search engine to look in specific folder only. Use „&lt;strong&gt;Folder:TFSServerName&lt;/strong&gt; “. You don’t need to use the full server name. A part of the name unique among all of the servers used in the TeamCompanion will be enough.&lt;br /&gt;Example: enter “&lt;span style="font-family:courier new;"&gt;store:mapi Folder:TFS TeamCompanion&lt;/span&gt;” in instant search to look for the word TeamCompanion in all retrieved work items of all projects in the server TFS.ekobit.com (as long as there are no other servers with names starting with letters TFS).&lt;br /&gt;&lt;br /&gt;To search for work items in a specific team project make the query more restrictive. Use „&lt;strong&gt;Folder:TFSServerName/TeamProjectName&lt;/strong&gt;“. Here you must use the complete server name (as shown in the TeamCompanion Mail folder tree) and any unique part of the team project name&lt;br /&gt;Example: enter “&lt;span style="font-family:courier new;"&gt;store:mapi Folder:TFS.ekobit.com/SearchDemoProject TeamCompanion&lt;/span&gt;” in instant search to look for the word TeamCompanion in all retrieved work items in the project SearchDemoProject in the server TFS.ekobit.com.&lt;br /&gt;&lt;br /&gt;If you want to search only in the results of one specific work item query, make the folder specification even more restrictive: “&lt;strong&gt;Folder:TFSServerName/Team Queries/TFSWorkItemQueryName&lt;/strong&gt;”. Instead of “Team Queries”, obviously you can put “My Queries” as well.&lt;br /&gt;Example: enter “&lt;span style="font-family:courier new;"&gt;store:mapi Folder:TFS.ekobit.com/SearchDemoProject/Team Queries/All Tasks TeamCompanion&lt;/span&gt;” in instant search to look for the work TeamCompanion in all retrieved active task work items in the project SearchDemoProject in the server TFS.ekobit.com. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18728551-4241329262661204518?l=ognjenbajic.com%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://ognjenbajic.com/blog/2008/02/inside-teamcompanion-vista-desktop_18.html</link><author>noreply@blogger.com (Ognjen Bajic)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-18728551.post-7618944862989817536</guid><pubDate>Mon, 18 Feb 2008 07:05:00 +0000</pubDate><atom:updated>2008-02-26T10:24:21.601+01:00</atom:updated><title>[Inside TeamCompanion]: Full text desktop search and work items</title><description>&lt;span style="font-family:arial;"&gt;TeamCompanion integrates work item management with Outlook. As a part of this integration, every time a work item query is executed we save the complete content of all work items from the query result (of course we get only the new information or info that was changed since the last get). We do that in order to be able to support offline work, to offer work item information even if TeamCompanion is not connected to the TFS server.&lt;br /&gt;&lt;br /&gt;At the same time, since this data is subject to Outlook indexing engine, the full text search of work items is supported. All work item fields, standard or custom, are subject to search. Search also includes some not so obvious parts of work item information: attachment names, links and even categories if you assign them to the work items (btw. categories are especially useful during the triage!). Outlook highlights all occurrences of the searched term. The only prerequisites are that you have retrieved the work item data by executing a query from TeamCompanion and that the indexing engine has already processed the query result (count with some delay). For performance reasons we (currently) don’t support the search through the work item history. We might consider it for some future version.&lt;br /&gt;&lt;br /&gt;See the screenshot below:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;p&gt;&lt;/span&gt;&lt;/p&gt;&lt;a href="http://ognjenbajic.com/blog/pics/Vista%20search%201small.png"&gt;&lt;span style="font-family:arial;"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" src="http://ognjenbajic.com/blog/pics/Vista%20search%201small.png" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;This kind of search works wherever desktop search works -&lt;strong&gt;Windows XP and Vista&lt;/strong&gt;.&lt;/span&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;But, there is more to it. Since the same index is used by the Windows &lt;strong&gt;Vista instant search&lt;/strong&gt;, we are able to support searching for work items from the Vista Start menu “Start search” edit box. You enter the search term, get the list of results, choose one and as long as it is a work item, you will get it opened in the nice familiar work item edit form!&lt;br /&gt;&lt;/span&gt;&lt;a href="http://ognjenbajic.com/blog/pics/Vista%20search%202.png"&gt;&lt;span style="font-family:arial;"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://ognjenbajic.com/blog/pics/Vista%20search%202.png" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; Usualy you will need to help search engine to find precisely what you want.More about that in following blog enties.&lt;br /&gt;&lt;/span&gt;&lt;a href="http://ognjenbajic.com/blog/pics/Vista%20search%203.png"&gt;&lt;span style="font-family:arial;"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://ognjenbajic.com/blog/pics/Vista%20search%203.png" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; Click on the result link, and... Voilà - here's your work item:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://ognjenbajic.com/blog/pics/Vista%20search%204small.png"&gt;&lt;span style="font-family:arial;"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://ognjenbajic.com/blog/pics/Vista%20search%204small.png" border="0" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;That’s the beauty of joined powers of TeamCompanion, Outlook and Vista.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18728551-7618944862989817536?l=ognjenbajic.com%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://ognjenbajic.com/blog/2008/02/inside-teamcompanion-vista-desktop.html</link><author>noreply@blogger.com (Ognjen Bajic)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-18728551.post-8731535789852111874</guid><pubDate>Tue, 22 Jan 2008 02:10:00 +0000</pubDate><atom:updated>2008-01-22T03:18:41.954+01:00</atom:updated><title>[VSTS] Adding work item query to Excel programatically</title><description>&lt;span style="font-family:arial;"&gt;Inspired by the &lt;a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2696121&amp;amp;SiteID=1"&gt;forum question &lt;/a&gt;that asked whether it is possible to add work item query to Excel file programmatically and following the reasoning of the poster that since Project Creation Wizard (PCW) can do it we should be able to do that as well, I did a bit of research. I mean, I reflected a bit.:-)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;The first problem was to find the PCW plug-ins. They all implement &lt;/span&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/microsoft.teamfoundation.client.iprojectcomponentcreator(VS.80).aspx"&gt;&lt;span style="font-family:arial;"&gt;IProjectComponentCreator&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; (&lt;/span&gt;&lt;a href="http://download.microsoft.com/download/3/2/e/32e8c73f-b6c2-4b20-b794-ba1ee98398de/Arc003_@VriesMarcel_de.ppt"&gt;&lt;span style="font-family:arial;"&gt;see ppt by Marcel de Vries covering PCW plug-ins inner workings&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;) which made it easy to find them. For instance, the WSS Portal Plugin is in the class Microsoft.VisualStudio.TeamFoundation.WssSiteCreator in Microsoft.VisualStudio.TeamFoundation.TeamExplorer.dll. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Second part was to find the way this Plug-in adds queries to Excel files –the DocumentELeadEnabler class. Just call its ELeadEnable method and query is added to the Excel file. The class is internal so you should be aware of possible future changes, but for now it works all right.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Attached zip file contains the source of the command line utility that takes several arguments (Path to the Excel file, Server name, Server url, Project name, Project uri and the work item query guid) and inserts the query in the file. Hint: The guids and urls for the project and queries can be found in the properties window in Team Explorer. Query guid is a part of the query uri.&lt;br /&gt;&lt;br /&gt;Attached: &lt;/span&gt;&lt;a href="http://ognjenbajic.com/blog/Bin/AddWIQToExcel.zip"&gt;&lt;span style="font-family:arial;"&gt;AddWIQLToExcel.zip&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18728551-8731535789852111874?l=ognjenbajic.com%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://ognjenbajic.com/blog/2008/01/vsts-adding-work-item-query-to-excel.html</link><author>noreply@blogger.com (Ognjen Bajic)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-18728551.post-8307697774840726088</guid><pubDate>Thu, 25 Oct 2007 23:57:00 +0000</pubDate><atom:updated>2007-10-26T03:03:00.569+02:00</atom:updated><title>TeamCompanion for Project and Excel released</title><description>&lt;a href="http://www.ekobit.com/ProductsDetailView.aspx?id=39"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 106px; CURSOR: hand" height="93" alt="" src="http://ognjenbajic.com/blog/pics/TC-small-project.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Last week we at Ekobit have released the &lt;/span&gt;&lt;a href="http://www.teamcompanion.com/"&gt;&lt;span style="font-family:arial;"&gt;TeamCompanion for Outlook&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;, but that was not the only TeamSystem related release from the TeamCompanion family of tools that has seen the light on that day. &lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;The &lt;a href="http://www.ekobit.com/ProductsDetailView.aspx?id=39"&gt;TeamCompanion for MS Project&lt;/a&gt; and &lt;a href="http://www.ekobit.com/ProductsDetailView.aspx?id=17"&gt;TeamCompanion for Excel &lt;/a&gt;were released as well. Old time readers of this blog may remember that a bit less than a year ago &lt;/span&gt;&lt;a href="http://ognjenbajic.com/blog/archive/2006_11_01_archive.html"&gt;&lt;span style="font-family:arial;"&gt;I have published an MS Project add-in &lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;that made opening the work items from inside MS Project possible. This scenario, not normally supported by the TFS add-in for Project coming with Visual Studio Team System, makes the life of a project manager much easier since they don’t need to switch contexts and leave MS Project every time they want to open a work item in order to see its details or to edit it. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;TeamCompanion for Project is improved version of that add-in with some problems of the original version solved. TeamCompanion for Excel offers the same functionality but in Excel.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;Both tools are &lt;strong&gt;free&lt;/strong&gt;.&lt;/span&gt;&lt;/p&gt;&lt;a href="http://ognjenbajic.com/blog/pics/OpenWorkItemButton.JPG"&gt;&lt;span style="font-family:arial;"&gt;&lt;img alt="" src="http://ognjenbajic.com/blog/pics/OpenWorkItemButton.JPG" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; &lt;/span&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;Download the TeamCompanion for Project from &lt;/span&gt;&lt;a href="http://www.ekobit.com/ProductsDetailView.aspx?id=43"&gt;&lt;span style="font-family:arial;"&gt;here&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; (&lt;/span&gt;&lt;a href="http://www.ekobit.com/ProductsDetailView.aspx?id=43"&gt;&lt;span style="font-family:arial;"&gt;http://www.ekobit.com/ProductsDetailView.aspx?id=43&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;).&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;Download the TeamCompanion for Excel from &lt;/span&gt;&lt;a href="http://www.ekobit.com/ProductsDetailView.aspx?id=38"&gt;&lt;span style="font-family:arial;"&gt;here&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; (&lt;/span&gt;&lt;a href="http://www.ekobit.com/ProductsDetailView.aspx?id=38"&gt;&lt;span style="font-family:arial;"&gt;http://www.ekobit.com/ProductsDetailView.aspx?id=38&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;).&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18728551-8307697774840726088?l=ognjenbajic.com%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://ognjenbajic.com/blog/2007/10/teamcompanion-for-project-and-excel.html</link><author>noreply@blogger.com (Ognjen Bajic)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>5</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-18728551.post-8214580436414940203</guid><pubDate>Mon, 15 Oct 2007 11:58:00 +0000</pubDate><atom:updated>2007-10-15T13:59:34.944+02:00</atom:updated><title>TeamCompanion for Outlook 2007 released!</title><description>&lt;a href="http://ognjenbajic.com/blog/pics/teamcompanionbox.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 150px; CURSOR: hand" alt="" src="http://ognjenbajic.com/blog/pics/teamcompanionbox.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;A few days ago Ekobit has released the TeamCompanion for Outlook 2007, an Outlook Add-in that integrates Outlook and mails with the Team Foundation server and work items.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;If you spend a large percentage of time in Outlook writing and reading mails and at the same time work in a Visual Studio Team System based environment, wouldn’t it be great to have everything you need at hand – all the work items, mails and the great integration of the two.&lt;br /&gt;&lt;br /&gt;TeamCompanion offers great features that make work item management within Outlook enjoyable experience. Actually, for the last two months, I’ve been working with work items almost exclusively using TeamCompanion. Not only to dogfood the product, but also because it is easier and in some ways more elegant than with any other existing tool. Through ease of use, TeamCompanion enables efficient communication, better work item management and less friction between them for less effort.&lt;br /&gt;&lt;br /&gt;TeamCompanion gives you the ability to execute all the usual work item queries, access every work item field, group, filter, categorize, search (over all textual fields, including even the names of the attachments) and create appointments for work items, send them as a mail or export to MS Office OneNote. To have them always at hand, add your most frequently used queries to the favorite folders window. TeamCompanion also gives you the ability to take work items with you offline, and still do all of the above things except executing the queries, of course!&lt;br /&gt;&lt;br /&gt;When you are online once again, you will additionally be able to create, edit and quickly open work items, create work items from mail and do lot of other things.&lt;br /&gt;&lt;br /&gt;If you feel friction between the ways you communicate using mails and the way the work is managed using work items, Team Companion for Outlook 2007 might be the solution.&lt;br /&gt;&lt;br /&gt;&lt;a title="Click to display larger image." href="http://ognjenbajic.com/blog/pics/tco.jpg" target="_blank"&gt;&lt;img src="http://ognjenbajic.com/blog/pics/tco_s.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;TeamCompanion for Outlook 2007 homepage: &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.teamcompanion.com/"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;www.teamcompanion.com&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Download the fully functional 30 days free trial: &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.ekobit.com/ProductsDetailView.aspx?id=29"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;http://www.ekobit.com/ProductsDetailView.aspx?id=29&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;br /&gt;Complete features overview: &lt;/span&gt;&lt;a href="http://www.ekobit.com/ProductsDetailView.aspx?id=44"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;http://www.ekobit.com/ProductsDetailView.aspx?id=44&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;FAQ: &lt;/span&gt;&lt;a href="http://www.ekobit.com/ProductsDetailView.aspx?id=25"&gt;&lt;span style="font-family:arial;"&gt;http://www.ekobit.com/ProductsDetailView.aspx?id=25&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18728551-8214580436414940203?l=ognjenbajic.com%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://ognjenbajic.com/blog/2007/10/teamcompanion-for-outlook-2007-released.html</link><author>noreply@blogger.com (Ognjen Bajic)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-18728551.post-6609457009275282254</guid><pubDate>Thu, 04 Oct 2007 08:04:00 +0000</pubDate><atom:updated>2007-10-04T10:18:04.548+02:00</atom:updated><title>Source code for the .Net library for the .Net 3.5 and VS 2008 will be released</title><description>&lt;a href="http://weblogs.asp.net/scottgu/default.aspx"&gt;&lt;span style="font-family:arial;"&gt;Scott Guthry&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; blogs about very exciting news: Microsoft will release the source code for the .Net 3.5 library later this year. The source will be installable as a separate standalone setup and viewable in any text editor but VS will also include the debugger support in VS 2008. This is a huge leap forward in the way we'll program .Net applications!&lt;br /&gt;For the list of the libraries that will be released in the first wave and for some screenshots of the debugging experience and other details go &lt;/span&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code-for-the-net-framework-libraries.aspx"&gt;&lt;span style="font-family:arial;"&gt;here&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18728551-6609457009275282254?l=ognjenbajic.com%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://ognjenbajic.com/blog/2007/10/source-code-for-net-library-for-net-35.html</link><author>noreply@blogger.com (Ognjen Bajic)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-18728551.post-8418953338918610957</guid><pubDate>Sat, 22 Sep 2007 01:14:00 +0000</pubDate><atom:updated>2007-09-28T21:10:58.024+02:00</atom:updated><title>Custom work item controls</title><description>&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Introduction &lt;/strong&gt;&lt;br /&gt;Custom work item controls are used to implement the functionalities not offered by the set of standard controls used in the work item form (edit box, combo box, datetime, html control and the special ones like area/iteration). They are available in Team System as of SP1 for TFS 2005.&lt;br /&gt;In this article we will describe what the custom controls are and how they can be implemented and used. We will develop a custom control, the &lt;em&gt;Checkboxed options control&lt;/em&gt;, which will accept and show multiple values by showing a row of checkboxes. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://ognjenbajic.com/blog/pics/CheckboxedOptionsControl.jpg"&gt;&lt;img style="DISPLAY: block; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://ognjenbajic.com/blog/pics/CheckboxedOptionsControl.jpg" border="0" /&gt;&lt;/a&gt; &lt;span style="font-family:arial;"&gt;Checkboxed options control&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Related reading &lt;/strong&gt;&lt;br /&gt;There are no many sources of information on custom work item controls on the Internet. So, I might as well list all currently available relevant sources:&lt;br /&gt;The &lt;/span&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/bb286959(VS.80).aspx"&gt;&lt;span style="font-family:arial;"&gt;official msdn documentation&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;[1] is rather brief, so you might like to start with &lt;/span&gt;&lt;a href="http://blogs.msdn.com/narend/archive/2006/10/02/How-to-use-Custom-Controls-in-Work-Item-Form.aspx"&gt;&lt;span style="font-family:arial;"&gt;the first ever published article on custom controls&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; [2] written by Naren Datha of Microsoft. It is not too long either but covers everything from the reasoning for the custom controls to the deployment. Recently, a colleague of mine, VSTS MVP Neno Loje published the &lt;/span&gt;&lt;a href="http://msmvps.com/blogs/vstsblog/archive/2007/07/07/starting-using-custom-work-item-controls.aspx"&gt;&lt;span style="font-family:arial;"&gt;Custom work item controls primer&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; [3] on his blog, a description of the first steps needed to build and use a work item custom control. Last but not least, you should visit the &lt;/span&gt;&lt;a href="http://www.codeplex.com/WitCustomControls"&gt;&lt;span style="font-family:arial;"&gt;semi-official place to find publicly available custom controls on Codeplex&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; [4] &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;strong&gt;Why would you build a custom control?&lt;br /&gt;&lt;/strong&gt;There are many reasons why you would use custom controls. If you want to provide richer UI or provide some additional functionality in the work item form, custom controls are the way to go. One case of such better UI would be graphical representation of the severity level data in the form of traffic lights instead of just numbers from 1 to 3. Custom controls can enable more elegant way to insert screenshots as attachments [5] or to do some mathematical operation with the work item’s data, evaluate a formula e.g. sum the estimates, different parts of the team have given for a task, in order to get the total estimate. For some further ideas on possible uses of custom controls see [7].&lt;br /&gt;Currently there is no way to put multiple data in one work item field other than to use a custom control. One such case is the &lt;em&gt;Checkboxed options&lt;/em&gt; control we demonstrate in this article.&lt;br /&gt;You can implement custom controls using Windows Form controls or even use ActiveX controls wrapped as Windows Form controls.&lt;br /&gt;In which cases would it be wrong to use custom controls? You shouldn’t try to use them in order to implement additional work item rules [6], since Excel or MS Project don’t support custom controls. Your rules would not be evaluated in at least these two environments and it is thus better not to raise false expectations and to refrain from implementing rules through custom controls.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Restrictions of the custom controls&lt;br /&gt;&lt;/strong&gt;There are several restrictions you should have in mind before deciding to use the work item custom controls:&lt;br /&gt;The binaries for the custom control must be locally installed on each client computer. Visual Studio assumes the binaries are already available and does nothing itself to provide for them. If the required files are missing you will simply get an empty box instead of the control. Hint: There is no requirement for Admin rights to install custom control binaries.&lt;br /&gt;This is the major problem, since it hinders easy adoption. Until a good way to centrally manage and easily distribute the binaries is found, custom controls will have only limited importance.&lt;br /&gt;· Only Visual Studio and other environments that use standard work item edit form support the custom controls. See the section “Custom controls and different client environments (TSWA, Excel, MS Project)” below.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Basic interfaces/basics of a custom controls&lt;br /&gt;&lt;/strong&gt;Custom controls must derive from &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/system.windows.forms.control(VS.80).aspx"&gt;&lt;span style="font-family:arial;"&gt;System.Windows.Forms.Control&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; class, have a no-argument constructor and implement the &lt;/span&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/microsoft.teamfoundation.workitemtracking.controls.iworkitemcontrol(VS.80).aspx"&gt;&lt;span style="font-family:arial;"&gt;IWorkItemControl&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; interface.&lt;br /&gt;The IWorkItemControl interface looks like this:&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;public interface IWorkItemControl&lt;br /&gt;{&lt;br /&gt;StringDictionary Properties { get; set; }&lt;br /&gt;bool ReadOnly { get; set; }&lt;br /&gt;object WorkItemDatasource { get; set; }&lt;br /&gt;string WorkItemFieldName { get; set; }&lt;br /&gt;&lt;br /&gt;event EventHandler AfterUpdateDatasource;&lt;br /&gt;event EventHandler BeforeUpdateDatasource;&lt;br /&gt;&lt;br /&gt;void Clear();&lt;br /&gt;void FlushToDatasource();&lt;br /&gt;void InvalidateDatasource();&lt;br /&gt;void SetSite(IServiceProvider serviceProvider);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;The Properties property gives access to all the attributes defined for the control in the work item type definition. Custom, control specific attributes are allowed here as well. This is the way to set the configuration data for your control.&lt;br /&gt;The ReadOnly property is used to tell the control that it should be displayed as read/only. See also the section “Making a custom control read-only” below.&lt;br /&gt;The WorkItemDataSource property is the reference to the work item object. Should be cast to WorkItem class. Using the Fields property of the work item you can access any field of the current work item.&lt;br /&gt;The WorkItemFieldName property holds the name of the work item field this control is associated with. A control can be associated with 0 or 1 field.&lt;br /&gt;The AfterUpdateDatasource and BeforeUpdateDatasource events should be raised when you update the fields in the work item so that other controls can refresh themselves if needed.&lt;br /&gt;Clear should reset the content of the control.&lt;br /&gt;FlushToDatasource can usually be safely ignored since you’ll directly change the work item object as soon as the control’s content is edited.&lt;br /&gt;InvalidateDatasource – in this method the control should use the data from the work item object and other possible data sources to redraw itself.&lt;br /&gt;SetSite makes IServiceProvider interface available that can be used to access VS services.&lt;br /&gt;So, the life of a custom control in terms of properties and methods of the IWorkItemControl interface can be summarized like this:&lt;br /&gt;A control edits a field named in WorkItemFieldName of the work item object whose reference is in WorkItemDataSource. In InvalidateDatasource the control redraws itself, using the dana from the work item and probably using one or more attributes from the Properties property bag. As soon as the user edits the control's content, events AfterUpdateDatasource and BeforeUpdateDatasource should be raised. If the ReadOnly is set, the control should make itself read only.&lt;br /&gt;Once you've implemented this interface you're ready to use the control in the xml work item type definition. &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Using custom controls in the work item type xml definitions&lt;br /&gt;&lt;/strong&gt;Once you've developed a custom control, it is time to use it in the work item definition. In order to do that, it needs to be included in the work item's layout. In the work item's xml definition, the design of the work item form is defined by the &lt;/span&gt;&lt;/span&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/aa337635(VS.80).aspx"&gt;&lt;span style="font-family:arial;"&gt;Layout element&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; [8]. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;img src="http://ognjenbajic.com/blog/pics/CC_0.jpg" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Each control on the work item form is defined by the &lt;/span&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/aa337625(VS.80).aspx"&gt;&lt;span style="font-family:arial;"&gt;Control element&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; [9] below the Layout element.&lt;br /&gt;The only required attribute of the Control element is the Type attribute. Originally, there was a fixed list of possible values this attribute can have: FieldControl (meaning: the standard control, edit box or the combo box, depending on the content), DateTimeControl, HtmlFieldControl, WorkItemClassificationControl (used for Areas and Iterations) and the three special “controls” that are in fact the whole tabs in the standard work item layouts - LinksControl, AttachmentControl and WorkItemLogControl.&lt;br /&gt;With the introduction of custom controls the definition of the Type attribute was extended. If it contains something other than one of previously listed predefined values, this value is expected to be the name of a custom control class.&lt;br /&gt;Usually you will set at least one optional attribute – FieldName. It defines the name of the work item field bound to the control; the value defined with this attribute will be given to the custom control in its WorkItemFieldName property.&lt;br /&gt;Other optional attributes are Label, LabelPosition, ReadOnly, Dock, Padding and Margin.&lt;br /&gt;As we will see later, whatever other attributes you set, they will be available to your control through IWorkItemControl.Properties property bag. Once the Type attribute is used to instantiate the custom control, it is the responsibility of the control (that means, your custom code) to interpret the meaning of all other attributes. Since it is the sole responsibility of your control to interpret the attributes, as long as the control understands them, custom attributes can be used as well. In our case we will use the attribute Options to define the names of the options the &lt;em&gt;Checkboxed options&lt;/em&gt; control will display.&lt;br /&gt;&lt;control label="&amp;amp;Supported OS:" type="CheckBoxedOptions" fieldname="Ekobit.VSTS.Supported OS" labelposition="Left" options=" Vista; WXP Pro SP2;Windows 2003 Server"&gt;&lt;br /&gt;There is a bad news related to editing the xml definitions of the work item types – you will need to edit them by hand. Since the &lt;/span&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=7324c3db-658d-441b-8522-689c557d0a79&amp;amp;displaylang=en"&gt;&lt;span style="font-family:arial;"&gt;Team System Process Editor&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; (PTE) [10] doesn't support custom controls, there is no other choise. If you really like PTE and would still like to work with custom controls, &lt;/span&gt;&lt;a href="http://www.codeplex.com/WitCustomControls/Thread/View.aspx?ThreadId=7676"&gt;&lt;span style="font-family:arial;"&gt;one possible workaround&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; [11], would be to have two versions of the work item definition, the working one and the final one. The working copy contains a placeholder standard control for each instance of a custom control. This version can be edited and previewed in PTE. Once, when you are satisfied with this version, using find and replace and the text editor or some script you replace each placeholder with appropriate custom control Control tag, thus creating the final version. The final version is the one that should be uploaded (&lt;/span&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms253163(VS.80).aspx"&gt;&lt;span style="font-family:arial;"&gt;witimport&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;ed) to the server and actually used.&lt;br /&gt;That said, I prefer editing work item xml definitions by hand, since I am usually more efficient that way, but if you’re unsure what exactly needs to be done or just feel more secure doing it using a tool, with the above workaround, PTE can be of use. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;strong&gt;Work Item Custom Control (.wicc) files and deployment&lt;br /&gt;&lt;/strong&gt;How does Visual Studio know where to find the implementation of the custom control?&lt;br /&gt;It uses .wicc (Work Item Custom Control) files. These contain the fully qualified name of your control class and the name of the assembly containing the implementation. The name of the file is the name you should use as the control’s type name (Type attribute of the Control element) in the work item definition.&lt;br /&gt;The file used for our &lt;em&gt;Checkboxed options&lt;/em&gt; control looks like this:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://ognjenbajic.com/blog/pics/wicc.jpg" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;But where should I put the .wicc file and the implementation of the custom control?&lt;br /&gt;Visual Studio looks for them in the “Microsoft\Team Foundation\Work Item Tracking\Custom Controls“ folder under Environment.SpecialFolder.CommonApplicationData folder first, then under Environment.SpecialFolder.LocalApplicationData.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;img src="http://ognjenbajic.com/blog/pics/CC_1.jpg" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;In order to enable side by side installation of custom controls compiled with VS 2005 and those compiled with VS 2008 libraries, in Orcas, the search path was extended, as described in [&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="http://blogs.msdn.com/narend/archive/2007/08/23/how-to-port-whidbey-custom-controls-to-orcas.aspx"&gt;&lt;span style="font-family:arial;"&gt;12&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;]. In Orcas, VS will first look in the subfolder 9.0 of the Custom controls folder in order to find Orcas specific versions. So the Orcas versions of the custom controls (these are the ones compiled with Orcas versions of the Work Item object model .dlls) should be put in “Microsoft\Team Foundation\Work Item Tracking\Custom Controls\9.0“.&lt;br /&gt;You can xcopy deploy your files to above folders or make a .msi file that does that. Attached “&lt;/span&gt;&lt;a href="http://ognjenbajic.com/blog/Bin/CheckBoxedOptions.zip"&gt;&lt;span style="font-family:arial;"&gt;Checkboxed options.zip&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;” file contains the VS setup project that generates the appropriate .msi file. The .msi contains only two files – the .wicc file and the .dll containing the implementation of the custom control. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;img src="http://ognjenbajic.com/blog/pics/CC_2.png" border="0" /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Checkboxed options control&lt;br /&gt;&lt;/strong&gt;The &lt;em&gt;Checkboxed options&lt;/em&gt; control uses the CheckedListBox to show the list of checkboxes.&lt;br /&gt;Let’s go through the control’s initialization code:&lt;br /&gt;We check whether there is an Option attribute in the xml definition for the control, parse the content of the attribute and initialize the ListBox entries&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;//insert the list entries&lt;br /&gt;if (!m_properties.ContainsKey("options"))&lt;br /&gt;{&lt;br /&gt;throw new InvalidFieldValueException(&lt;br /&gt;"Entries for the Checkboxed options control in the work item not defined. " + Environment.NewLine +&lt;br /&gt;"Add Options attribute to the appropriate element in the work item definition.", null);&lt;br /&gt;}&lt;br /&gt;string[] names = m_properties["Options"].Split(m_Separator);&lt;br /&gt;this.m_listBox.Items.AddRange(names);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;m_listBox.ColumnWidth = MeasureListItemWidth(names);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Then we ignore the standard control attributes while parsing all other custom attributes and use them to initialize the control:&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;//set other properties&lt;br /&gt;foreach (string propName in m_properties.Keys)&lt;br /&gt;{&lt;br /&gt;switch (propName)&lt;br /&gt;{&lt;br /&gt;//ignore the non custom properties&lt;br /&gt;case "fieldname":&lt;br /&gt;case "label":&lt;br /&gt;case "labelposition":&lt;br /&gt;case "options":&lt;br /&gt;case "type":&lt;br /&gt;break;&lt;br /&gt;default:&lt;br /&gt;{&lt;br /&gt;try&lt;br /&gt;{&lt;br /&gt;string propValue = m_properties[propName];&lt;br /&gt;PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(m_listBox);&lt;br /&gt;//names of the properties are case insensitive&lt;br /&gt;PropertyDescriptor pd = properties.Find(propName, true);&lt;br /&gt;if (pd == null)&lt;br /&gt;Trace.WriteLine("Property " + propName + " with value " + propValue + " not found.");&lt;br /&gt;else&lt;br /&gt;{&lt;br /&gt;pd.SetValue(m_listBox, pd.Converter.ConvertFrom(propValue));&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;catch (Exception e)&lt;br /&gt;{&lt;br /&gt;Trace.WriteLine("Setting " + propName + " failed:\r\n" + e.Message);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;break;&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;Members m_workItem, m_fieldName, m_properties are bound to the IWorkItemControl.WorkItemDatasource , IWorkItemControl.WorkItemFieldName and IWorkItemControl.Properties respectively.&lt;br /&gt;When the user clicks on one of the checkboxes the new value for the complete “encoded” content of the control is calculated and saved directly into the work item:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;void m_listBox_ItemCheck(object sender, System.Windows.Forms.ItemCheckEventArgs e)&lt;br /&gt;        {&lt;br /&gt;            ...&lt;br /&gt;                StringBuilder sb = new StringBuilder();&lt;br /&gt;                for (int i = 0; i &lt; m_listBox.Items.Count; i++)&lt;br /&gt;                {&lt;br /&gt;                    if (i == e.Index)&lt;br /&gt;                    {&lt;br /&gt;                        if (e.NewValue == CheckState.Checked)&lt;br /&gt;                            sb.AppendFormat("{0}{1}", GetInternalRep(m_listBox.Items[i].ToString()), m_Separator);&lt;br /&gt;                    }&lt;br /&gt;                    else&lt;br /&gt;                    {&lt;br /&gt;                        if (m_listBox.GetItemCheckState(i) == CheckState.Checked)&lt;br /&gt;                            sb.AppendFormat("{0}{1}", GetInternalRep(m_listBox.Items[i].ToString()), m_Separator);&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;                string value = sb.ToString();&lt;br /&gt;&lt;br /&gt;                OnBeforeUpdateDatasource(EventArgs.Empty);&lt;br /&gt;                m_workItem.Fields[m_fieldName].Value = value;&lt;br /&gt;                OnAfterUpdateDatasource(EventArgs.Empty);&lt;br /&gt;        }&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The function GetInternalRep adds angle brackets around the value of a field. In the end, if the control looks as in the picture at the beginning of the article, the value "[WXP Pro SP2];[Vista];" is saved in the work item field. &lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Querying&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;Use "Contains" clause in the work item query tool to query for one specific option set. Following query returns all work items having "Vista" checkbox checked.&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;p&gt;&lt;a href="http://ognjenbajic.com/blog/pics/QueryToolCustomControls.jpg"&gt;&lt;img style="DISPLAY: block; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://ognjenbajic.com/blog/pics/QueryToolCustomControls.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Debugging&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;The easiest way to debug the control is to use another instance of Visual Studio and to attach it’s debugger to the first VS instance where the work item form containing the custom control is displayed. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Making a custom control read-only &lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;In order to make your custom control read only, check value of the work item field’s IsEditable property in InvalidateDatasource event and set your control’s edit state accordingly. This is how the native controls like FieldControl, DateTimeControl handle read-only state. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Custom controls and the different client environments (TSWA, Excel, MS Project) &lt;/span&gt;&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;MS Excel and MS Project don’t support custom controls. Excel and Project will show the textual representation of the data instead, which is ugly but sometimes still usable. Usually though, editing the custom control field data in Excel or Project directly, might damage the data consistency, so it should be avoided. &lt;/span&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=2105C9EE-565E-47B9-A5AC-9A8FF8A07862&amp;amp;displaylang=en"&gt;&lt;span style="font-family:arial;"&gt;Current version of the TSWA (Team System Web Access)&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; doesn’t support the custom controls, at least not in a documented way. Good news is that the &lt;/span&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=8D3F8EEC-301A-4E96-ADC5-ABF47F462654&amp;amp;displaylang=en"&gt;&lt;span style="font-family:arial;"&gt;next version of the TSWA&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; (the one coming with the Orcas wave) will support custom controls. That said, you need to have in mind that TSWA will not be able to reuse the WinForms implementation of a custom control; it will need a custom web forms based one.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Checkboxed options control: &lt;/strong&gt;&lt;/span&gt;&lt;a href="http://ognjenbajic.com/blog/Bin/CheckBoxedOptions.zip"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Source&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;, &lt;/strong&gt;&lt;/span&gt;&lt;a href="http://ognjenbajic.com/blog/Bin/CheckBoxedOptionsSetup.zip"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Setup&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;References:&lt;br /&gt;[1] Official MSDN documentation, &lt;/span&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/bb286959(VS.80).aspx"&gt;&lt;span style="font-family:arial;"&gt;http://msdn2.microsoft.com/en-us/library/bb286959(VS.80).aspx&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; [2] Naren Datha’s blog entry on custom work item controls, &lt;/span&gt;&lt;a href="http://blogs.msdn.com/narend/archive/2006/10/02/How-to-use-Custom-Controls-in-Work-Item-Form.aspx"&gt;&lt;span style="font-family:arial;"&gt;http://blogs.msdn.com/narend/archive/2006/10/02/How-to-use-Custom-Controls-in-Work-Item-Form.aspx&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;[3] Neno Loje’s article: Getting started using Custom Work Item Controls, &lt;/span&gt;&lt;a href="http://msmvps.com/blogs/vstsblog/archive/2007/07/07/starting-using-custom-work-item-controls.aspx"&gt;&lt;span style="font-family:arial;"&gt;http://msmvps.com/blogs/vstsblog/archive/2007/07/07/starting-using-custom-work-item-controls.aspx&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;[4] Codeplex project TFS Work Item Tracking Custom Controls, &lt;/span&gt;&lt;a href="http://www.codeplex.com/WitCustomControls"&gt;&lt;span style="font-family:arial;"&gt;http://www.codeplex.com/WitCustomControls&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;[5] TFS Work Item Screenshot Custom Control, &lt;/span&gt;&lt;a href="http://olausson.net/blog/PermaLink,guid,8d7a24a9-b1b4-463c-a037-769c33aabfb9.aspx"&gt;&lt;span style="font-family:arial;"&gt;http://olausson.net/blog/PermaLink,guid,8d7a24a9-b1b4-463c-a037-769c33aabfb9.aspx&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;[6] MSDN documentation: Available Field Rules, &lt;/span&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms194953(VS.80).aspx"&gt;&lt;span style="font-family:arial;"&gt;http://msdn2.microsoft.com/en-us/library/ms194953(VS.80).aspx&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;[7] Naren Datha's introduction to the custom controls, &lt;/span&gt;&lt;a href="http://blogs.msdn.com/narend/archive/2006/09/27/773025.aspx"&gt;&lt;span style="font-family:arial;"&gt;http://blogs.msdn.com/narend/archive/2006/09/27/773025.aspx&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;[8] Layout Element (Work Item Type Definition Schema), &lt;/span&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/aa337635(VS.80).aspx"&gt;&lt;span style="font-family:arial;"&gt;http://msdn2.microsoft.com/en-us/library/aa337635(VS.80).aspx&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;[9] Control Element (Work Item Type Definition Schema), &lt;/span&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/aa337625(VS.80).aspx"&gt;&lt;span style="font-family:arial;"&gt;http://msdn2.microsoft.com/en-us/library/aa337625(VS.80).aspx&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;[10] Team System Process Editor as one of the tools in the Microsoft Visual Studio 2005 Team Foundation Server Power Tool, &lt;/span&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=7324c3db-658d-441b-8522-689c557d0a79&amp;amp;displaylang=en"&gt;&lt;span style="font-family:arial;"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=7324c3db-658d-441b-8522-689c557d0a79&amp;amp;displaylang=en&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;[11] Developer discussion on Codeplex: Problems with new Process template Editor and Custom Control, &lt;/span&gt;&lt;a href="http://www.codeplex.com/WitCustomControls/Thread/View.aspx?ThreadId=7676"&gt;&lt;span style="font-family:arial;"&gt;http://www.codeplex.com/WitCustomControls/Thread/View.aspx?ThreadId=7676&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;[12] How to port Whidbey custom controls to Orcas , &lt;/span&gt;&lt;a href="http://blogs.msdn.com/narend/archive/2007/08/23/how-to-port-whidbey-custom-controls-to-orcas.aspx"&gt;&lt;span style="font-family:arial;"&gt;http://blogs.msdn.com/narend/archive/2007/08/23/how-to-port-whidbey-custom-controls-to-orcas.aspx&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18728551-8418953338918610957?l=ognjenbajic.com%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://ognjenbajic.com/blog/2007/09/custom-work-item-controls.html</link><author>noreply@blogger.com (Ognjen Bajic)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-18728551.post-2866627084043675624</guid><pubDate>Fri, 21 Sep 2007 22:45:00 +0000</pubDate><atom:updated>2007-09-22T00:52:49.927+02:00</atom:updated><title>CTP of the VSTS Web Access for TFS 2008 released</title><description>&lt;span style="font-family:arial;"&gt;Brian Harry just announced the availability of a CTP of the next version VSTS Web Access, the one that will be released together with VS Orcas. This version will work with both TFS 2005 and TFS 2008 (you will need to have Team Explorer 2008 installed locally in both cases).&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;This version of VSTS Web Access is exciting because it finally brings the support for the work item custom controls to the VSTS Web Access!&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;See the full announcement &lt;a href="http://blogs.msdn.com/bharry/archive/2007/09/21/vsts-web-access-updated-for-tfs-2008.aspx"&gt;here&lt;/a&gt;.&lt;br /&gt;Download the bits &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=8D3F8EEC-301A-4E96-ADC5-ABF47F462654&amp;amp;displaylang=en"&gt;here&lt;/a&gt;.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18728551-2866627084043675624?l=ognjenbajic.com%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://ognjenbajic.com/blog/2007/09/ctp-of-vsts-web-access-for-tfs-2008.html</link><author>noreply@blogger.com (Ognjen Bajic)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-18728551.post-4336126577696445466</guid><pubDate>Tue, 31 Jul 2007 00:42:00 +0000</pubDate><atom:updated>2007-07-31T02:51:14.134+02:00</atom:updated><title>Team System Web Access Power Tool Released!</title><description>&lt;span style="font-family:arial;"&gt;Microsoft just released the first Microsoft branded version of Team Plain - &lt;strong&gt;Team System Web Access Power Tool&lt;/strong&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;It brings much better performance, many bug fixes, and a lot of new features... Read more &lt;/span&gt;&lt;a href="http://blogs.msdn.com/bharry/archive/2007/07/30/team-system-web-access-power-tool-available.aspx"&gt;&lt;span style="font-family:arial;"&gt;here&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Download the tool &lt;/span&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=2105C9EE-565E-47B9-A5AC-9A8FF8A07862&amp;displaylang=en"&gt;&lt;span style="font-family:arial;"&gt;here&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18728551-4336126577696445466?l=ognjenbajic.com%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://ognjenbajic.com/blog/2007/07/team-system-web-access-power-tool.html</link><author>noreply@blogger.com (Ognjen Bajic)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-18728551.post-587966880220387136</guid><pubDate>Tue, 31 Jul 2007 00:40:00 +0000</pubDate><atom:updated>2007-07-31T02:42:05.759+02:00</atom:updated><title>Chat with the Visual Studio Team System product team</title><description>Come chat with the Visual Studio Team System product team – This Wednesday&lt;br /&gt;&lt;br /&gt;Join members of the Visual Studio Team System product group to discuss features available in Visual Studio Team Foundation Server, Architecture Edition, Development Edition, Database Edition, and Test Edition. In addition, discuss what's new in &lt;a href="http://msdn2.microsoft.com/en-us/vstudio/aa700831.aspx"&gt;Beta 2&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;We will be holding two sessions:&lt;br /&gt;&lt;br /&gt;Join the &lt;a href="http://msdn.microsoft.com/chats"&gt;chat&lt;/a&gt; on Wednesday, August 1st, 2007 from 10:00am - 11:00am Pacific Time. &lt;a href="http://www.microsoft.com/communities/chats/vcs/07_0801_msdn_vsts.ics"&gt;Add to Calendar&lt;/a&gt;  &lt;a href="http://www.timeanddate.com/worldclock/fixedtime.html?year=2007&amp;month=08&amp;amp;day=01&amp;hour=10&amp;amp;min=0&amp;sec=0&amp;amp;p1=234"&gt;Additional Time Zones&lt;/a&gt;&lt;br /&gt;            -or-&lt;br /&gt;Join the &lt;a href="http://msdn.microsoft.com/chats"&gt;chat&lt;/a&gt; on Wednesday, August 1st, 2007 from 4:00pm - 5:00pm Pacific Time. &lt;a href="http://www.microsoft.com/communities/chats/vcs/07_0801_msdn_vsts2.ics"&gt;Add to Calendar&lt;/a&gt;  &lt;a href="http://www.timeanddate.com/worldclock/fixedtime.html?year=2007&amp;month=08&amp;amp;day=01&amp;hour=16amp;min=0&amp;sec=0&amp;amp;p1=234"&gt;Additional Time Zones&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18728551-587966880220387136?l=ognjenbajic.com%2Fblog%2Findex.html'/&gt;&lt;/div&gt;</description><link>http://ognjenbajic.com/blog/2007/07/chat-with-visual-studio-team-system.html</link><author>noreply@blogger.com (Ognjen Bajic)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item></channel></rss>