June 2008 - Posts

Neptune AWOL ... watching my son swim

Sorry for the blogging silence ... I have not lost my passion for technology, but am currently "relaxing" in Sasolburg, in a real old-style hotel, and hopefully motivating my son to do well over the next two days at the Sasolburg winter championships.

Pictures of the event will be shared when I get back to Johannesburg ... in the interim I will include a map to the event. The hotel is as indicated and the pool is circled in red.Blue Man Diving Into Water Clipart Illustration

Map image
image

It is cold ... but relaxing q;-)

Posted by willy with no comments
Filed under:

Hyper-V has shipped!

Orange Man Jumping For Joy While Breaking Away From a Ball and Chain, Getting a Divorce, Consolidating or Paying Off Debt Clipart Illustration Peek at http://www.microsoft.com/hyper-v and note that Windows Server 2008 Hyper-V has shipped! I guess it is time for me to re-think my Vista installation on my new laptop ...

Keep an eye on my colleague Zayd's blog, 'cause he will be running Hyper-V technology readiness sessions for BB&D and SA Architect shortly.

I found this great architecture diagram on http://blogs.technet.com/windowsserver/archive/2007/12/20/Xen-in-the-Windows-kernal_3F00_-Ha_2D00_ha.aspx, which shows the architecture:
HV

Posted by willy with no comments
Filed under:

Radio TFS #7 - Visual Studio Team System 2008 Test Edition

image

The latest edition of Radio TFS by Martin, Paul, and Mickey is available! These podcasts are excellent and I love listening to them in traffic on my Zune ... Martin, Paul and Mickey, please keep up the exceptional work!

Get it here!

Posted by willy with 1 comment(s)

TeamCompanion for Outlook 2.0 released

 teamcompanionboxThe latest version has shipped ... get the details from www.ekobit.com.

Quoting from ekobit correspondence:

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 will allow the execution of WI queries on the fly. Check the list of new features below.

Some of the cool new features:

  • Work Item query management support

  • Editing areas and iterations support

  • Scheduled Work Item queries

  • Subscriptions to TFS alert notifications support

  • Integration with Excel and Project

  • Outlook Tasks support (Work item from Task, Task from Work item)

  • Ad-hoc queries including all standard services (Work Item to Mail, task or appointment conversion)

  • Add related work item action support

  • Additional simplified toolbar

  • Trial period extended to 90 days

  • ... and a lot more available for download now.

Posted by willy with no comments
Filed under:

TFS Orcas SP1 & Rosario Evaluations, plus some hints

imageI have posted the consolidated series of TSF Rosario evaluation blog posts which records our experience and comments, Brian Harry's summary on the upcoming TFS 2008 SP1 and a few  tips & tricks in the Teched2008 Chalk&Talk companion handout (99 pages).

As we will not be covering Rosario in the chalk&talks at TechEd2008 in Durban, we have published the document to SA Architect Community Server and DRP Community Server for your perusal ... chat to us at TechEd if you have any questions or comments on Rosario!

Posted by willy with 3 comment(s)
Filed under: ,

Interoperability Events - Feedback on Teamprise Questions

pwrbtn At a recent technology awareness session around Rosario, we were asked about Teamprise. Here are three of the questions and thanks to our colleague Martin Woodward, running with the great Teamprise product, we are able to deliver the following feedback:

  1. client_suiteWhat plans, if any, are there to integrate Teamprise with Rosario and the new guidance workbooks, i.e. Iteration Backlog Document?
    • Teamprise hooks into Work Item tracking and will be supporting the new work item features, such as new link types and queries. This means that Teamprise will seamlessly integrate with TFS Rosario, continuing to deliver significant value to Java and cross-platform environments.
  2. Will Teamprise support agent tagging, i.e. introduce Java, Ant tags?
    • Teamprise requested the concept of tagging a while ago, to be able to indicate which build agents were capable of performing Java builds. Their plan is to embrace and support the agent tagging fully.
  3. What features are Teamprise planning to release for/with Rosario?
    • There is still a lot of NDA shrouding Rosario post-CTP12 and therefore Teamprise is unable (understandably) to respond to this question in detail at this stage. Their objective is to support features added to TFS, including:
      • Support for new WIT functionality
      • Support for new Version Control  features (including enhancements to cross-platform experience as some features get added such as the properties stuff)
      • Support for new build features, wider build tool integration support on the Java side
      • Better integration with Test functionality
      • Enhanced Eclipse functionality

Visit Teamprise at www.teamprise.com for more information!

Posted by willy with 1 comment(s)
Filed under: ,

Common Bits&Bytes Patterns - Decorator Pattern, Part II (2 of 2)

Continued from http://dotnet.org.za/willy/archive/2008/06/23/common-bits-amp-bytes-patterns-composite-pattern-part-ii-1-of-2.aspx.

Category Structural design pattern
Intent

Attach additional behaviour or capabilities to an object dynamically.

Applicability

Use this pattern to:

  • Add responsibility to object dynamically
  • Allow withdrawal of responsibility
  • Avoid explosion of subclasses

Class Diagram

image

Source Code Example

   1: using System;
   2: using System.Collections.Generic;
   3: using System.Linq;
   4: using System.Text;
   5:  
   6: namespace DecoratorPattern
   7: {
   8:     public interface IComponent
   9:     {
  10:     }
  11:  
  12:     public interface IDecorator
  13:     {
  14:     }
  15:  
  16:     public class Reader_Component : IComponent
  17:     {
  18:     }
  19:  
  20:     public class InputStreamReader_Decorator : IDecorator, IComponent
  21:     {
  22:         public InputStreamReader_Decorator() { }
  23:         public InputStreamReader_Decorator(System.IO.FileStream inputStream)
  24:         {
  25:             this.inputStream = inputStream;
  26:         }
  27:         System.IO.FileStream inputStream;
  28:     }
  29:  
  30:     public class BufferedReader_Decorator : IDecorator, IComponent
  31:     {
  32:         public BufferedReader_Decorator(Reader_Component reader)
  33:         {
  34:             this.reader = reader;
  35:         }
  36:  
  37:         Reader_Component reader;
  38:     }
  39:  
  40:     public class FileReader_ConcreteDecorator : InputStreamReader_Decorator
  41:     {
  42:         
  43:     }
  44:  
  45:     public class CommsReader_ConcreteDecorator : InputStreamReader_Decorator
  46:     {
  47:     }
  48:  
  49:  
  50: }

Code Complexity Code Metrics

image

image

This has been the last of the pattern mini-series for the time being. I hope that these seven posts have been of some value to the community ... for me the formal documentation has allowed me to explore them in more detail and to create an interesting environment for my Unisa studies.

Posted by willy with no comments

Common Bits&Bytes Patterns - Composite Pattern, Part II (1 of 2)

Composite Pattern?

During the next short burst of patterns, continuing from http://dotnet.org.za/willy/archive/2008/05/23/common-bits-amp-bytes-patterns-factory-pattern-part-5-of-5.aspx, we focus on the composite and the decorator pattern. As always, for detailed information on patterns refer to the Gang of Four (GOF) publication, a software engineering book titled Design Patterns: Elements of Reusable Object-Oriented Software ISBN 0-201-63361-2 authored by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides

Category Structural design pattern
Intent

Compose objects into tree structures to represent a hierarchy.

Applicability

Use this pattern to:

  • Represent a hierarchy of objects
  • Allow consumers to ignore the differences between composite and individual objects and treat all objects uniformly.

Class Diagram

The simple example simulates a simple toolkit hierarchy, which is represented by MFC, ATL, AWT or Swing type frameworks in real life.

image

Source Code Example

   1: using System;
   2: using System.Collections.Generic;
   3: using System.Linq;
   4: using System.Text;
   5:  
   6: namespace CompositePattern
   7: {
   8:     class Component
   9:     {
  10:         protected void InitializeOpsService(object ios)
  11:         {
  12:         }
  13:  
  14:         protected object GetOpsService()
  15:         {
  16:             return null;
  17:         }
  18:     }
  19:  
  20:     class FxContainer : Component
  21:     {
  22:         protected void Activate()
  23:         {
  24:         }
  25:  
  26:         protected void Deactivate()
  27:         {
  28:         }
  29:     }
  30:  
  31:     class FxComponent : FxContainer
  32:     {
  33:     }
  34:  
  35:     class FxButton : FxComponent
  36:     {
  37:         protected void SetState(int state)
  38:         {
  39:         }
  40:  
  41:         protected int GetState()
  42:         {
  43:             return 0;
  44:         }
  45:     }
  46:  
  47:     class FxLabel : FxComponent
  48:     {
  49:         protected void SetText(string text)
  50:         {
  51:         }
  52:  
  53:         protected string GetText()
  54:         {
  55:             return string.Empty;
  56:         }
  57:     }
  58:  
  59:     class FxTextBox : FxComponent
  60:     {
  61:         protected void SetText(string text)
  62:         {
  63:         }
  64:  
  65:         protected string GetText()
  66:         {
  67:             return string.Empty;
  68:         }
  69:     }
  70:  
  71:     class FxWindow : FxContainer
  72:     {
  73:         protected void SetTitle(string text)
  74:         {
  75:         }
  76:  
  77:         protected string GetTitle()
  78:         {
  79:             return string.Empty;
  80:         }
  81:     }
  82:  
  83:     class FxFrame : FxWindow
  84:     {
  85:     }
  86:  
  87:     class FxDialogBox : FxWindow
  88:     {
  89:     }
  90: }

Code Complexity Code Metrics

image

Next post will have a peek at the Decorator pattern.

Posted by willy with 2 comment(s)

Interoperability Event ... pondering over some of the feedback

Based on the comments attached to my post-event event post, the interoperability event was well received. Unfortunately it seems that a large batch of evaluation forms never made it into the final statistics we received from Microsoft SA and I have picked up the following comments which need further analysis:image

  1. Wasn’t very much interoperability content. I feel like the advertising was very misleading. Still enjoyed the sessions though.
  2. More depth on presentation, specifically DEV stuff.

On point (1) ... if we look at all three sessions of track 1 as listed below, we covered approximately 80% non-Microsoft technologies in all three sessions, with full focus on integration and interoperability. Although we had immense environment challenges in session 2, which in my opinion made the session extremely challenging, fun to present (looking back) and more informative, as we had to pull all magic out of the bags to rebuild the environment while delivering the session and completing all planned demonstrations successfully.

On point (2) ... again based on the sessions of track 1 we delivered minimal presentation slides, but focused on demonstrating and exploring the technologies with demonstrations. Is this format flawed or is the less-powerpoint-more-demo format preferred?

It must be emphasises that these two are the only two negative comments we picked up, with all the others being very positive and encouraging ... but we must investigate all to be able to imp[rove the program q;-)

Track 1 Sessions were:

  1. Interoperability using Microsoft WCF and Linux Mono
    The session explores the Windows Communication Foundation, interoperability in general and the integration with Linux environment using Mono. Creating a service oriented solution using Windows, Linux and WCF concepts and technology is no longer a dream.
  2. Integrated development environment using TFS 2008, Teamprise and Java
    Ever wondered how we can integrate a heterogeneous team under one Application Lifecycle Management environment. The session explores the Team Foundation Server ALM environment, introducing both VSTS and Eclipse development environment seamlessly integrating with TFS.
  3. Open Q&A Session
    Stoned Framework, a real-world example of true integration and interoperability, supporting Windows, LINUX and UNIX platforms, demonstration.
    Ask the experts and engage in an interactive discussion.

Comments anyone?