Wednesday, December 31, 2008

Upcoming Microsoft Webcasts

Keeping up on technology is important and I find to be a valuable resource on learning what Microsoft is providing.

Wednesday, January 14, 2009 2pm - - Building a Silverlight Application in One Hour - provide an overview of creating forms-based applications in Microsoft Silverlight 2, the new rich Internet applications platform

Thursday, January 15, 2009 2pm - - Enterprise Build Automation with Team System and Team Build - Explains the five key characteristics of every enterprise build automation solution. Even a discussion on integrating legacy code into your automated builds.

Wednesday, January 28, 2009 2pm - - Discover the Windows Azure Services Platform - Provides an overview of the components and services that make up the platform and the development environment for developing and deploying cloud-based applications. Windows Azure represents Microsoft's firm commitment to making cloud computing a compelling and cost- effective platform.

Thursday, January 29, 2009 2pm - - Windows Workflow Foundation Overview with Visual Studio 2008 - Covers the fundamentals of what Workflow Foundation is and where you might use it. Demonstrates using the development tools and several of the interesting activities included out of the box in Microsoft Visual Studio 2008.

Monday, December 29, 2008

Blog engines at CodePlex with source code

Some of the most popular code projects at are blog engines. Here's a few to see: - Apparently this is the most popular one if you measure by downloads and its had a lot more use experience than the others. - This one will probably surpass BlogEngine in functionality and code quality based on the support for it. - DotNetNuke seems to have the biggest ambitions with plenty of subsites and functionality planned. However its yet to get as big of a mindshare as BlogEngine or Oxite.

Thursday, December 18, 2008

Some Sharepoint solutions to evaluate

If I had more time ..... I'd look at the following more carefully ..... - Community Kit for Sharepoint - A set of best practices, templates, Web Parts, tools, and source code that enables practically anyone to create a community website based on SharePoint technology for practically any group of people with a common interest. - SharePoint Learning Kit - a SCORM 2004 certified e-learning delivery and tracking application built as a Windows SharePoint Services 3.0 solution. It works with either Windows SharePoint Services 3.0 or Microsoft Office SharePoint Server 2007, and has the following core features: (1) Supports SCORM 1.2, SCORM 2004, and Class Server content, allowing users to store and manage this content in SharePoint document libraries. (2) Supports learner-centric and instructor-led (assigned) workflows. (3) Allows assignment, tracking and grading of both e-learning and non-e-learning content. - STSDEV: Simple Tools for SharePoint 2007 Development - A SharePoint developer's utility designed to quickly transform your ideas into real-world components that you can deploy into a staging or production Web farm with confidence. - ChartPart for SharePoint is a web part for Microsoft SharePoint Services 3.0 or Microsoft Office SharePoint Server 2007 which generates charts from SharePoint lists. The ChartPart is free to use for everyone, as long as you follow the License, who would like to "light" up their SharePoint installation with some nice graphs and charts. - PowerEventReceivers, PowerWebPart (supports AJAX and JQuery, execute PowerShell Script in a WebPart, render HTML and write ASP.NET code with PowerShell syntax), PowerActivity (execute PowerShell Scripts in a SharePoint Designer Action), Lookup Field with Picker (Single- and multi-Selection Mode, searching, search operators, select the fields you would like to search for, supports default values...), PowerShell Scripts V1.3, List without Title Column (you often doesn't need the title field but unfortnuately the context menu is attached to the title field so you're forced to use it anyway. Tha's over! Just try the List without Title Column. The context menu is attached to the ID of the List Item), User WebService (useful to switch views depending on the current user's SharePoint groups in Infopath; actually the WebService has only one method: GetUserGroupsFromCurrentUser ... a build-in SharePoint WebService which does the same?! Yes, but the built-in service doesn't work with Infopath 2007), Codename SPAC - SharePoint Assembly Cache (realized with SharePoint and WCF), and much much more. - SharePoint 2007 Test Data Population Tool - The SharePoint 2007 Test Data Population Tool (WSSDW.exe) is a capacity planning and performance testing tool that populates data for testing SharePoint deployments. The SharePoint 2007 Test Data Population Tool is available as a command-line executable program that extracts information about how to populate the server from an XML configuration file, and calls Microsoft .NET assembly: WSSDWLib.dll. Use this tool to populate test data for SharePoint capacity planning. Also included are some sample test scripts that can be used for performance and load testing SharePoint and Excel Services with the test data. - Podcasting Kit for SharePoint - Listen and watch audio/video podcasts, anywhere on your PC or mobile device (Zune, SmartPhone, or any podcasting device); Share content by producing your own audio/video podcasts and publish them on PKS on your own; Connect and engage with podcasters via your integrated instant messaging program; Find the most relevant content using the five star rating system, tag cloud, search engine and provide your feedback via comments; Get automatic podcast updates by subscribing to RSS feeds fully compatible with Zune and other podcasting devices; Simple RSS feed based on a defined podcast series; Simple RSS feed based on a person; Dynamic RSS feed based on search results (will be implemented later in 2009); Play podcasts in real-time using Microsoft® Silverlight™ and progressive playback; Retrieve instant ROI and metrics with the ability to track the number of podcasts downloaded and/or viewed, instant feedback via rating system and comments, and subscribers via the RSS feed; Access the richness of SharePoint to extend the solution: workflows, community sub-sites, access rights, editorial and more; Customize your own PKS User Experience

TFS 2010 New Features

See or or!80E4A0EADF0C523C!1576.entry for some commentary on planned features for TFS 2010. Some things I like include:

1. Finally we get hierarchical Work Item relationships.
2. Linking of work items to each other and other objects is much more user-friendly.
3. Build agent pooling lets you define a pool of build machines instead of individual build servers. This feels a lot like pulling your build machines from the cloud.
4. Build workflow is vastly improved. For example, parallel building from one agent.
5. A new Agile process template.
6. Rollbacks really work right in SCC.
7. Modeling that works with code. The planned Architecture Layer Diagram means that a developer or architect can use models to enforce constraints on code as well. The Architecture Layer Diagram can be coupled to code making it an active diagram that can be used for validation.
8. A new Test Impact View window enables a developer to view a list of tests that need to be run as the result of a code change.
9. Eliminating "No-Repro" bugs. I'll believe it when I see it.
10. Branch Visualization is improved – basically a variety of graphical ways to see branching. Branches become a first class citizen and show up in Source Control under a different icon (no longer just a subfolder structure). You can visualize the hierarchy. You can also visualize the way a changeset has been merged through the branch structure to help you see if a parent or child has been missed.

Writing to the SharePoint Unified Logging Service

See!8F5DEA8AEA9E6FBB!236.entry for some helpful code on using a class library for writing to Sharepoint ULS - i.e. the Unified Logging Service.

TraceProvider.WriteTrace(TraceProvider.TagFromString("XXXX (must be 4 letter tag)"), TraceProvider.StringToSeverity("Exception or Information"), Guid.NewGuid(), "Method Name", "Assembly Name", "Project Name", "Message");

Some must-reads

Some must-reads I've bookmarked: - This blogger named Ian Nelson is good at keeping up on the latest/greatest for TFS, Sharepoint, .NET and all things Microsoft development related. Watch this video on "Introduction to Manual Testing with Team System".

Videos for some training

I highly recommend looking at, and for training videos on Microsoft Team Foundation Server (TFS) and Visual Studio Team Suite (VSTS).

Some other links to see for training material on TFS, MOSS, Sharepoint, .NET, etc. include: \

Column mappings between MS Project and TFS

See, and for the details on the MS project Columns Mappings file for TFS.

TSWA - Team System Web Access

Please see for information on how to use Team System Web Access (TSWA).

Some other links to see:

Apparently there is a recent Service Pack for TSWA :)

Configuring Caching for Team Foundation Server Proxy

Team Foundation Server Proxy is designed to improve network performance by caching copies of source control files in a remote location, local to the developer needing the files but away from the main source control location.

After installing Team Foundation Server Proxy, you must configure it in order to enable and manage a cache of source control files for the Team Foundation application-tier server. You can also configure Team Foundation Server Proxy to cache files for additional Team Foundation application-tier servers.

For more information about Team Foundation Server Proxy configuration, visit the following topic 'How to enable source control caching after installing Team Foundation Server Proxy' in the Team Foundation Administrators guide located online at or in the product documentation.

For more information about Team Foundation Server Proxy installation, see the Team Foundation Installation Guide located online at or the TFSInstall.chm file included with the product.

List of 5 Simple SharePoint 2007 Fixes

Before you waste time on trying to fix complex TFS or MOSS problem I suggest doing 5 things.

1. Run an IIS Reset

2. Run 'SharePoint Technologies and Configuration Wizard'

Only #2 on the list because it takes slightly more time than #1. On the other hand, this should fix more problems than any other on the list. This does automatic IIS resets, so you will have temporary downtime.

3. Reboot your machine(s)

4. Make sure account has proper rights

This one is more for stsadm operations and scripts, but most of the time I have found if a command is giving you some strange failurethat it shouldn't, it is more often the account you are using doesn't have the specific right you need for that operation. The command line runat command is your friend for testing this.

5. Install most recent Service Pack/Update

Be sure to check with Microsoft for any updates. SharePoint is one of their most premier products at the moment, and they are spending a lot of time and money developing for it.

Important to note: Recycling your app pools, restarting IIS and rebooting your machine are no-brainers in a dev environment. However in production you need to proceed cautiously. That's why its important to stage a stable prod server with config/settings changes made off-hours with some automated scripts to generate thousands of hits immediately afterwards as this will find 98%+ of potential problems before the users do.


Daily Scrum WIQL

If you've ever heard of SQL then you will quick understand what the Work Item Query Language (WIQL) is for Team Foundation Server (TFS). I've created a Daily Scrum WIQL that I'll use to generate a report for each Daily Scrum. Here is the WIQL:

SELECT [System.Id], [System.TeamProject], [System.Title], [System.AssignedTo], [Microsoft.VSTS.Common.Rank], [Microsoft.VSTS.Scheduling.StartDate], [Microsoft.VSTS.Scheduling.FinishDate], [Microsoft.VSTS.Common.Discipline], [System.Description], [System.ChangedDate]
FROM WorkItems
WHERE [System.ChangedDate] >= @today - 1
ORDER BY [System.ChangedDate] Desc

In Team Explorer you can save this Daily Scrum query in the "Work Items\Team Queries" folder of your Team Project. Run it, select all the result items and then copy/paste them into Excel. Then you can format the results to make a printout for everyone before the daily scrum.

TFS in the Cloud

Its no secret that its very difficult it is to install/support an instance of Microsoft Team Foundation Server. Many IT organizations have paid tens of thousands of dollars on labor to just get this task done and they've failed. As a result some organizations are looking for using TFS "in the cloud". Personally I think its great if you are doing offshore work or projects for non-profits and volunteer & open source engagements. But for industries like finance, insurance, medical records, government, etc. or industries where security of competitive data matters it doesn't make sense. However I think its useful to know/understand some "cloud" options such as the following.

Important Work Item Fields for Task Management

In managing tasks using Team Explorer its important to know the most useful queries and the most useful fields for tracking work. I'll break down the fields by three types - basic, information and tracking.

The basic fields are:

Rank - 1 and 2 means high priority and 5 means lowest priority
Assigned To - each work item should be assigned to a specific person (or a "bucket" userid)
State - In CMMi3 its Proposed by default; and in Agile its Active. Most reporting on active work is on those of Active state. Eventually the goal is to have a work item closed.

The information fields are:

Title - A brief summary of 40-70 characters that describes the work item and answers 90% of the questions on what its about so a viewer of work items won't usually need to drill down deeper into the work item to understand the scope.
Description - Paragraph(s) describing in detail the scope of the task. Oftentimes this field will be empty as TFS provides the ability to related attachments or links that help self-describe work items within the scope of a project.
History - Anytime a modification is made to a work item its sometimes necessary to add comments explaining the modifications. These comments should go in the History field.

The tracking fields are:

Discipline - categorize a work item on whether its analysis, project management, development, architecture, testing, admin, etc.
Area - good for categorizing work by functional area hierarchy; and allowing for different security/visibility rules for users viewing work items
Iteration - timeline cycles in the project; key for breaking up work for cutoff to later stages/phases
Exit Criteria - mark YES if you want this work item tracked on the project checklist; keep NO if its only needed for internal team consumption. Its basically all about identifying the tasks that are "iteration backlog"
Issue - mark YES if you want this work item tracked for review with the customers and stakeholders; keep NO if its not needed for customer review.

For Team Projects created using the Agile or CMMI process template you should see /Process%20Guidance/Supporting%20Files/AboutWorkItems.htm on the Team Project's Sharepoint portal site for more information on Agile work item types. Example:

Daily Scrums

I suggest that work teams establish a daily time to do a quick technical interchange and see where we're at. In "Agile Scrum" these are called the "Daily Scrum". They should NEVER last longer than 15 minutes. And we'd like to rotate weeks on taking on duties of being the "Scrum Master". If going longer its because we're going in-depth on some technical collaborative work, having a code review or something of that sort.
During the daily scrum each team member provides answers to the following three questions:
  1. What did you do yesterday?
  2. What will you do today?
  3. Are there any impediments in your way?

We'd limit the role of "Scrum Master" to really be the meeting facilitator and the person who records that the answers to these 3 questions were reflected in the TFS work items' changes and if not to follow up and do it themselves or ask the other team member to do so. See and for some info.

Ultimately its an effective way to work as a team of peers using TFS out-of-the-box, to deliver in accordance to the project plan and methodology guidelines that the project manager has committed the team and to empower the leadership/customer to have full project vision and management capabilities as they wish.

Databases in the TFS Data Tier

The TFS Data Tier is composed of 13 SQL Server databases as follows:

2 Reporting Services and 4 WSS databases: ReportServer, ReportServerTempDB, WSS_AdminContent, WSS_Config, WSS_Content, WSS_Search

7 TFS-specific databases: TFS Databases: TfsActivityLogging, TfsBuild, TfsIntegration, TfsVersionControl, TfsWarehouse, TfsWorkItemTracking, TfsWorkItemTrackingAttachments

You can learn more about each one of these at or by googling them. In my Firefox browser I select the word I want to google in the browser, right-click and then select "google ...." from the menu.

New TFS Gadgets

As the Microsoft.TeamFoundation namespace opens up all the TFS functionality for third-party tool development/integration it should be no surprise that we're starting to see more gadgets built to help teams productively work together in fulfilling their team's missions.

TFS Team Members Power Tool - see or for more on this.

Teamprise Remote Accelerator - I'm not as excited about this one - - but its good in case the TFS server is ever super-widely used.

System Center 2007 Management Pack for TFS 2008 - great for monitoring uptime and problems with the TFS server(s) -

TFS to TFS Migration Tool - it comes with a lot of disclaimers on when you should not use it -

TFS Working On - the perfect system tray tool for tracking which task you are presenty working on -

Operations Guidance for Team Foundation Server

See for what I think is the best Operations Guidance manual for Team Foundation Server. I should warn you that it was geared towards TFS 2005. However it looks like the content is still applicable to running a TFS 2008 server. The fact that this TFS 2005 manual is very useful for TFS 2008 reminds me WHY its so typical that once an application architecture has been established in prototypes, stop-gaps and other temporary plans they tend to get stuck in concrete. Its just so hard to fix design problems later once they've become stuck inside a "temporary" prototype that works.


For DHS-ICE I've setup a .NET solution with a TFS Process template I've created called "MSF for SLM". Now developers/managers can make improvements to the default settings, documentation, policies and workflow used in setting up new Team Projects in TFS without a steep learning curve in learning new tools. What's needed is Visual Studio, connectivity/access to the TFS server and the TFS Power Tools addin. Earlier this year I did a similar project task of setting up an enterprise-wide TFS process template for a publicly-traded company in the Chicago metro area. I fully expect that this federal agency will get the same added value potential by having this process template in place that'll do their methodology out-of-the-box and get work started more quickly and efficiently in the future. A TFS process template provides the full potential of having a ERP/CRM system for an IT organization all integrated in one platform.

DHS-ICE uses the System Lifecycle Management (SLM) methodology for all their IT work. See for more on ICE's methodology. DHS-ICE uses Microsoft tools/software extensively across the enterprise. This Process Template is the means for marrying this methodology with the enterprise tools and its potential to transform the organization is huge. Its fully making it possible for any technical team at DHS-ICE to fully integrate all their processes/code/documentation in a reliable, stable, scaleable, customizable platform in order to be fully compliant with SLM.

I sent out the following instructions to the rest of the technical team involved.

You can access/modify the SLM process template for TFS by running Visual Studio Team Suite 2008 on a machine that has installed TFS Power Tools.
1. Connect to the TFS server - i.e. (hint: IP and port masked for this public posting)
2. Navigate to $/SharepointArchitecture/ProcessTemplates_TFS under Source Control.
3. Work with the ProcessTemplates_TFS solution.
4. Use your local workspace folder for the "MSF for DHS ICE System Lifecycle Management - v1.0" subdirectory of this solution as your starting point for uploads using the Process Template Manager. Hint: You get to the Process Template Manager by right-clicking on the server node in Team Explorer and then selecting "Team Foundation Server Settings" -> "Process Template Manager" from the context menu.

See or to learn more about TFS process templates. I'm quickly seeing that CIO(s), IT leaders and the people paying their bills everywhere are getting excited about the opportunities that a TFS Process Template provides in being able to finally allow them to really fully manage and integrate all their IT projects and processes. As these leaders look at alternatives they quickly realize what a no-brainer it is to go with TFS because no other product exists from any dependable, strong vendor that is robust enough to manage/run everything in an IT organization's business that will integrate well with current techonologies. A big reason why TFS can succeed in this is because of its Process Template(s) capabilities. The difficult part is finding an IT architect with the right mix of skills/experience to help get them started on this process.

StsAdmn Documentation

I found a page on a MSDN blog that provides links to wall posters and technical specs on the Stsadm tool/parameters for Microsoft Office SharePoint Server 2007 and Windows SharePoint Services 3.0.