Stuff to read [2]

Stuff to read [1]

  • VS2010 Productivity Power Tools and Modeling Feature Packs available, more info here
  • SQL Server 2008 R2 goodies (Feature Pack). Get it here
  • Developing web services and thinking about AppFabric? In my opinion you should. See here. I mean you just develop the service and let the AppFabric (Windows) do the rest of the work (well, almost anyway)
  • Josh Smith is probably the best person that can explain WPF with MVVM, so please read this and all related references from there.
  • Nice article that compares different view model option

Stuff to read [0]

Ok, here is the situation – there is a lot of stuff to read on the net, especially regarding development, so I’m planning to do some posts about the stuff I find there.
Hopefully the content will serve to me as a sort of favorite history collection 🙂

So, here it goes for today:

I guess that’s it for now

ASP.Net registration ends with 0x8007000B/0×80040005

I’ve been testing random stuff on my Windows 7 x64 machine. One install required .Net framework 1.1, so I quickly installed it (despite the warnings), installed required software, which by itself didn’t depended on the .Net framework version and then – uninstalled .Net framework 1.1.

After performing these steps, some web services that are relying on the ASP.Net (in my case TFS Server 2010 beta) stopped working. When browsing to the web services (typical test for TFS availability) directly I got 404, which is somewhat strange, but often means ASP.Net registration problem.

I’ve tried to run aspnet_regiis –i –enable, but got back 0x800700B message in the UI and 0x8004005 in the console. After binging for a while I found couple articles, but none related to this particular case, because I was dealing with the correct .Net framework version installed (comes as a part of OS).

Still I went to check Windows features installed and saw this nice view:


As you can see, ASP.Net was unchecked and as the result I was getting the error. Enabling ASP.Net there fixed the issue and services got back to normal.

I wish …

I wish our company management would know that 🙂

Did you knew that the biggest performance motivator for non-trivial jobs are not the money (true fact: the carrot-stick based motivation hurts performance):

  • Autonomy
  • Mastery
  • Purpose


And by the way, TED is a great place to learn about great presentation skills.

Thanks to @kraupu for the link in the blog.

Windows 7: the way I want :)

Ok, Windows 7 rocks. I mean it, really. It runs smoothly on my Asus EeePC netbook smoothly. Other features like pinning programs to taskbar, home group, snapping, live taskbar preview and other make live so nice and easy.

As everybody now talks about cost and value, so I want to remind all folks that there is some stuff, which is not in the box, but adds cream to the pie.

Many of us can run Windows without any antivirus and still have no fear of being infected by malicious software, but … if you want to have antivirus on your machine, it is pretty easy to have one. You can choose any provider you want, but I choose the one that has created OS. Yes, you can have free antimalware solution from Microsoft: Microsoft Security Essentials.

Now if you have Canon HD camcorder like me, then you probably don’t need to look for codecs and software to view the movies anymore, because windows supports AVCHD format out of the box. But, if you want to edit movies to create home video, add photographs, create panorama pictures from the photographs you have taken, there is one more free toolset available: Windows Live Essentials. With the new movie maker you can easily create home movies from the HD source, save them as HD quality WMV and watch them either using Windows Media Center functionality or, if you’re even more lucky, directly by using “Play To” feature from Windows. Windows Live Essentials contains even more tools like messenger, mail or Windows Live Writer, which I’m using now to post this blog post.

I know, it sounds a bit like a marketing, but it is so much simpler now for me to do these basic things at home so I just wanted to share.

WCF WSDL in a single file

As always, there is something I need from time to time, but not frequently enough to have it close to me, so I have to search for it from time to time. I mean OK, bing is good, but still it takes some time, so I’m publishing this as a note to myself and maybe the others. One of such problems – to generate single WSDL file for WCF service. Mainly this is required if you have some interoperability issues.

Ok, so to have the single WSDL right way you need following things (assuming you’re hosting WCF in IIS):

So, its fairly easy to achieve in the end. And if you think what is else possible to do with custom behaviors, service hosts, etc. – you will realize how much WCF is rock’n’roll.

How to get files associated to specified work item from TFS

Today I’ve got a question on how to get files that are associated with specific work item. The requirement behind that was to grab configuration, data and similar files that were associated to a specific change request, which was entered as a work item.
After quick binging and browsing of the Team Foundation Server SDK, I’ve got the sample below.

static void Main(string[] args)
    using (TeamFoundationServer tfs = TeamFoundationServerFactory.GetServer(args[0],
        new UICredentialsProvider()))
        WorkItemStore wiStore = (WorkItemStore)tfs.GetService(typeof(WorkItemStore));
        VersionControlServer vcs = (VersionControlServer)tfs.GetService(typeof(VersionControlServer));

        int workItemId;
        if (int.TryParse(args[1], out workItemId))
            WorkItem workItem = wiStore.GetWorkItem(workItemId);
            Console.WriteLine("Work item: {0}", workItem.Title);
            //We look for links associated with work item
            foreach (Link link in workItem.Links)
                ExternalLink extLink = link as ExternalLink;
                if (extLink != null)
                    ArtifactId artifact = LinkingUtilities.DecodeUri(extLink.LinkedArtifactUri);
                    //For this example I grab Changeset directly
                    //however in the real scenario you could grab other related workitems
                    //and this way parse entire tree up to the changeset
                    if (String.Equals(artifact.ArtifactType, "Changeset", StringComparison.Ordinal))
                        // Convert the artifact URI to Changeset object.
                        Changeset cs = vcs.ArtifactProvider.GetChangeset(new Uri(extLink.LinkedArtifactUri));
                        foreach (Change change in cs.Changes)
                            //We want to download files only
                            if (change.Item.ItemType == ItemType.File)

private static void RetrieveFile(Change change)
    //Technically we should process the information
    //i.e. you should create separate folders according to the server location
    //to avoid the file overwriting
    //if folders are not present - those should be created
    string fileName = change.Item.ServerItem.Split('/').Last();
    Console.WriteLine("Item name: {0}. Last operation {1}", fileName, change.ChangeType);
    change.Item.DownloadFile(@"C:MyProjectsVS10SolutionGetWIFilesttt" + fileName);

Here go the credits:
A quick reminder to myself (and the others): TFS is VERY extensible. You can extend the processes, work items, reports, functionality, … just need the right tools

Interpersonal skills

If you are consultant like me, then it is very important to understand "magic" of communication.
I found one nice place to read about interpersonal skills:
What I would like to stress is one topic: LISTEN
For myself I noted that often I think that I understood the problem and start talking (yeap, the next day I understand how I …) about my understanding, which is sometimes absolutely wrong.
The general idea is – if you listen, then you probably may hear something beyond just facts. You may hear frustration, uncertainty, fear, questions, etc. These things are often related to what is called "Emotional Intelligence" or EQ. Being a good consultant requires you to balance well between IQ (our subject competence) and EQ (our ability to hear, understand and feel).
Thinking about the same subject with Aikido in mind – the ability to listen translates to feel and be able to adjust.
Not only patterns of the movements are important, but also the behaviour and stance of the partner you are practicing with.
If you don’t "listen" to a partner, who moves slower than you want to perform the technique, then probably you’re trying to drag, push, etc.
And even if you would be doing that technically correct from the angles and stance position, the result will be far from what it is supposed to be.