Martin Hinshelwood's Blog

A Scottish dyslexic software developer: Team System MVP, .NET architect, developer, evangelist, technology enthusiast and multi-dimensional free thinker


News

Disclaimer

The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.


Subscribe

Personal

Get Microsoft Silverlight

Accreditation

Stats

My Stats

  • Posts - 309
  • Comments - 362
  • Trackbacks - 128

Twitter












Tag Cloud


Recent Comments


Recent Posts


Article Categories


Archives


Post Categories


Image Galleries


Blogs I read


Blogs of Friends


Blogs on VSTS


Multi-Dimentional Free Thinking Bloggers


Personal


Projects


April 2008 Entries

Major deadline


 imageWell the faeces hit the fan at work today...let me explain...

We have a completely unmanaged Sharepoint Portal server at work. It was installed in early 2004 and has been running in self service mode ever since. Not all of the company is using it, but those that are, are using it heavily. Particularly areas that service customers and one customer specifically use it so completely that that area of the business would find it hard to function if it was not available.

So early this year I started a project to migrate / rewrite for Microsoft Office Sharepoint Server (MOSS) and we now have a proof of concept site online that demos the features and architecture of a finished portal. This POC version was scheduled for go live in Q4...

This had been ticking over for a while with a number of project requests getting in the way, the TFS Sticky Buddy for one, along with many others. As the only .NET developer in EMEA it can get a little hectic.

imageRecently I had a project to make a copy of one of the Sharepoint 2003 portals and I ran into a number of problems... now, I am not a Sharepoint 2003 guru, having had most of my exposure to it with Team Foundation Server deployments, but I followed all of the documented approaches for copying a site, to no avail. For each attempt, of which there were many, and for each approach, again there were many, I ran into problem after problem. Either the export commands failed, or the import command failed, and the resultant restore looked nothing like the original having been mangled during the process.

The result of my efforts was a custom APS.NET application that replicated the functionality provided by Sharepoint (it is worth noting that the site did not use much of SharePoint to do its job). Problem solved...

But not really... I still had a soon to be mangled Sharepoint 2003 portal server with over a thousand users on it.

image Then the bomb shell landed... I had been getting some reports of problems for the users of a site that is used to handle a customers contract, these users were running into real performance issues and functionality limitations. They were aware of the proof of concept MOSS deployment and wanted a look, so when some of the guys were in the office I stupidly, as I always do, started showing off MOSS features and functionality that puts Sharepoint Portal server to shame. How stupid of me... in my zeal to get MOSS deployed to the business I inadvertently stepped on a land mine. They went home, spoke to a few people and lo and behold, my deadline has been moved up from Q4 to now.... or at leas as soon as possible, and specifically for the aforementioned site.

The Plan

image

Apart from quitting, having a nervous breakdown and ultimately committing Seppuku I had to come up with a way of fulfilling this insane idea of a deployment schedule.

To do this I plan to use the Business Data Catalog to connect to customer data, and create a portal site that dynamically build sites using an as yet non existent site template for a specified customer. This way there is system data available for creating excel services reports and stats along with document library and InfoPath forms. The site should look exactly like the My Sites, but for a customer. It can then be branched out for other entitles like products (we build them and then rent and service them) and contracts.

In the immortal words of the Windows 2003 Active Directory Installer:

This may take some time, or considerably longer...

 

posted @ Wednesday, April 30, 2008 9:39 PM | Feedback (0) |


Vote for your feature


I am currently taking votes for which features will make it into the next version of the TFS Sticky Buddy (v1.1 CTP 1), which will move towards v2.0. The current list of features is slim, but specific.

Features (11 Votes) Click an item to submit your vote...

Votes Status Title
2 Proposed Add Second diagram for Dashboard
1 Proposed Data Refresh
3 Proposed Drag and Drop
1 Proposed Percent work complete
3 Proposed Should be able to hold more work items per "node"
1 Proposed Suggestion - Click on the work item

If you want to suggest another feature, please be my guest but make sure you are not making a duplicate :)

 

If you are interested TFS Sticky Buddy v1.0 has been downloaded 256 times since Apr 21 2008... No I am not making it up....

 

posted @ Wednesday, April 30, 2008 4:25 PM | Feedback (1) |


Kerberos problems


I have been having a lot of Kerberos double hop problems on the network at work, and although I have not yet managed to fix them... I did find these useful pages:

What Is Kerberos Authentication? - Good high level overview...

Troubleshooting Kerberos Delegation - which I think I may find the most useful...

 

I will keep you updated on my progress...

 

Technorati Tags: , , ,

posted @ Monday, April 28, 2008 2:37 PM | Feedback (3) |


TFS Sticky Buddy v1.0


This is the first full release of the TFS Sticky Buddy application written in VB.NET 9 and WPF with Visual Studio 2008 Team Suit.

image

The application provides a graphical view of TFS Work Items and allow user to navigate round either the Area (Codeplex Component) or Iteration (Codeplex Release) tree. It displays all the work items loaded (by selecting a Team Query) on the node, colour coded by Work Item State.

You can edit and add templates for displaying Work Items loaded for different Life Cycle templates in Team Foundation Server by editing the XAML in the Life Cycle resource directory (#InstallLocation#\RDdotNet\TFS Sticky Buddy\Resources\LifeCycle\[Name]\[Name]Resources.xaml) and editing the resource file. Though I would suggest creating a new file for each Life Cycle you want to display. Out of the box I have supported a Default option that works for most TFS Process Templates, and a Codeplex option for supporting your Codeplex projects.

Usage

When the TFS Sticky Buddy application starts you will be prompted to select a team foundation server from the list (if you do not see any servers then you must set them up using Team Explorer) which will populate the Projects and other menus. The navigation diagram will by default render the first project in your selected TFS server.

Use the "Queries" menu to select which work items that you want loaded into your view.

System Requirements

.NET Framework 3.5
Visual Studio 2008 Team Explorer (not forced)
Access to a Team Foundation Server (not provided)

 

If you already have CTP1 or CTP2 you should update to the full release now...

 

posted @ Monday, April 21, 2008 10:15 AM | Feedback (1) |


End of another Sticky week...


As you have probably noticed I have been soldiering on with the TFS Sticky Buddy project, and I though I would share.

 image

With the next release you will be able to connect to any external (not on same domain) TFS server including CodePlex servers and load up your projects. The TFS Sticky Buddy guest stars above.

image

One of the major improvements is the ability to add skins for different TFS life Cycles. I have a "Default" setting and you can change it to the Codeplex Template. Over time I will be adding others, but I only have access to CodePlex, and my local production TFS server, so if you want a custom one, you may need to build it yourself...

If you want a go of these features you will need to download the source and build the main folder code... but there will be a release soon..

 

posted @ Friday, April 18, 2008 5:29 PM | Feedback (0) |


TFS Stick Buddy v0.4.0 CTP2 released


All to soon and it is that time again...I have been developing, hell bent on getting a working sticky buddy online, and here it is...

Download TFS Stick Buddy v0.4.0 CTP2 Now...

image_thumb23

With this version you can select what work items you want to display by choosing a Query from the list. You can add queries to your list through Visual Studio and the TFS Web Access power tool to allow customisation of the display for your needs and project template types. If you do not have a work item called "Requirement" and instead use one called "Customer Request" then you just need to make a query that pulls this information back.

image_thumb24

When you open TFS Sticky Buddy you will be asked to select a Team Server to connect to. If you have a proxy, like I do in the office, you will not be able to connect to an external TFS server through it as your credentials will be wrong... maybe I need a work item for that smile_regular

Once you have selected your team server you will need to wait for it to authenticate, but I added a little "loading" window to keep you happy as it may take a little while to authenticate depending on the speed on your network and the load on your TFS server.

When the load it complete you will have access to the menu options, but it will have automatically loaded the first Team Project on your server and the first work item query on your project (which tends to be "Active bugs").

image_thumb25

If you have this many bugs, you may need to invest more in quality control...

The application will load all of your Areas and their hierarchy by default and display any work items in your selected query on that Area. You can see that it will display everything on the node and colour code it depending on the state of the work item:

  • Proposed = Blue
    image_thumb22
  • Active = Red 
    image_thumb20
  • Resolved = Amber
    image_thumb21
  • Closed = Green
    image_thumb19

I plan to have other options, but I will need to make some changes to the skining files, but you get the picture...

image_thumb18

 

I hope everyone "team servery" has a go, and don't be shy about reporting bugs and requesting features.

You can even use the discussion forums...

 

Download TFS Stick Buddy v0.4.0 CTP2 Now...

 

posted @ Thursday, April 17, 2008 9:29 PM | Feedback (0) |


TFS Sticky Buddy v0.3.1 CTP1


 image There is a Community Technology Preview release of the Team Foundation Server Sticky Buddy digital dashboard project that is built using Windows Presentation Foundation (WPF). I have used the source code from the Family.Show project to create functionality and a look that is appealing.

You can download it from the Codeplex site and you can raise bugs with the issue tracker...

Please remember that this is a CTP and is not fully functional. With this version you can see how your Areas and Iterations tree diagrammatically. I intend to display the work items within the body of the node and display a different view depending on the zoom level...

image

 

I have yet to skin the whole application so you will see some bitts that look exactly like the Family.Show application from Vertigo... yes I know.. I am a lazy developer...

 

 

 

 

 

 

posted @ Tuesday, April 15, 2008 5:53 PM | Feedback (1) |


Bug in ObservableCollection?


I seam to be having a little problem. Now, this may be me being stupid, but I can't get an ObservableCollection to work if you pass it a generic type!

For example, consider the following code:

Public Class ItemBitCollection(Of TItem)
    Inherits ObservableCollection(Of ItemBit(Of TItem))


End Class

Public Class ItemBit(Of TItem)

    Private m_item As TItem

End Class

 

 

Now, if you create an instance of ItemBitCollection you will see an error on the IDE regardless of wither you use a custom object type or a String type to initialise it:

image

Why does this not work? What is ObservableCollection doing that maybe it should not? Time to get Reflector out...

After some looking at the source I am still none the wiser. Even if you dumb down your classes to the bare minimum you cant pass a generic type into an ObservableCollection.

This is a limitation if you ask me...

Annoying solution:

If you create a fixed class type:

Public Class ItemBitCollection(Of TItemBit)
    Inherits ObservableCollection(Of TItemBit)

End Class

Public MustInherit Class ItemBit(Of TItem)

    Private m_item As TItem

End Class

Public Class DefaultItemBit
    Inherits ItemBit(Of String)

End Class
 

And then pass that class in it does work:

Dim o As New ItemBitCollection(Of DefaultItemBit)

Although this is a work around, it causes other problems in my code... Ahh well... worth a try...

 

posted @ Monday, April 14, 2008 11:17 AM | Feedback (0) |


Creating a better TFS Sticky Buddy (Core)


TFSStickyBuddy_Core_ClassDiagram Over the last week I have been looking at the source for the application from Vertigo. I needed to look at methods of presentation of hierarchical information graphically using WPF and I saw this as a good representation of that sort of data. So I se about not only converting it to VB.NET but adding generics to the mix.

The first part of the application is the core objects that represent the data and allow interaction in a way that WPF can handle. This means using Observable Collections and implementing INotifyPropertyChanged to allow a higher level of interaction. I wanted to support any Source object type as well as my own custom types, so the type needed to be nested with a Wrapper that gives the illusion that it is a solid type, but in actual fact it is a soft wrapper that allows the system to interact with it without really understanding the type. The specific understanding of the type is done at a much higher level.

You will need to open this diagram in a new window to get the effect, but it is a completely generic representation of Parent, Child and  Sibling relationships for any object regardless of wither you have access to the source or not.

This is not currently designed to be an editable object, but inheriting from the ItemWrapper class would allow this, but would require a modification to the framework to handle the inherited type. Maybe v2...

 

posted @ Monday, April 14, 2008 9:36 AM | Feedback (0) |


Developer joins TFS Sticky Buddy project


I was pleasantly surprised to see a lot of interest in the Sticky Buddy project. I was particularly exited when Siddharth Bhatia contacted me, but disappointed that he could not get the proof of concept versions to work.

Well, hopefully that is about to change with the addition of Eric Willeke to the development team. if you have been following the project you will see that he has been a avid tester from the beginning and I would like to welcome him fully on board for the next leg of the project...

Eric, I hope you are good a deciphering convoluted and complicated code that at times borders on the nasty!

 

posted @ Monday, April 07, 2008 8:59 AM | Feedback (1) |