Sunday, November 15, 2009

DogFoodII: VSTS 2010 | Follow-ups

Had a fantastic audience Friday for my VSTS 2010 Overview presentation at DogFoodII. Thanks for coming. I wanted to follow up on some of the questions with more complete responses.

Q. Will 2008/5 custom SSRS reports fail following the upgrade?

A. One key aspect here is “custom”. 2010 significantly changes the data warehouse schema (…which drives most reports). So, existing reports will need some work to function properly under 2010. That said, the VSTS team upgraded/updated the process templates and reports for Agile and CMMI to work properly against the 2010 schema. If you have custom reports, you’ll need to update them manually. Excellent information from Aaron Bjork here.

Q. Will 2008/5 customizations to team builds fail following the upgrade?

A. After doing some internal reading, I think this will actually work ok and upgrade successfully. The process template upgrade solution will wrap custom builds in a “legacy” MSBuild file and simply call Team Build against it. That said, you may want to leave behind some customizations and embrace the more optimal WF-style of automated builds. You may find you don’t even need that customization any longer. Finally, C# MSBuild Tasks you built custom and want to leverage in 2010 should continue to function as they did with 2008.

Q. Will 2008/5 customizations to process templates fail following the upgrade?

A. There is a process template upgrade “engine” (for lack of a better term). I think this will depend upon the extent of customization.

Aside: Internally, there was an exhaustive Beta1 to Beta2 TFS Upgrade Guide published to assist early-adopters and MVPs with the upgrade. The Rangers are taking on a similar project for the RTM. Keep an eye on the “TFS Upgrade Guide” on the Rangers page. Pramodv is heading up the team.

Q. Will Visual Studio 2005 Team Explorer work with TFS 2010?

A. Yes, as will most clients…with an upgrade/install called the General Distribution Release (GDR) Forward Compatibility Update. Great details here from the WIT team. KB article is here.

Q. Is it possible to expose my TFS repository over the Internet?

A. Yes, with 2008, this is possible via SSL. However, I would err on the side of requiring remote users to use a VPN to first connect to your internal network. At the least, if you must expose TFS on the public Internet, deploy certificates to would-be clients using AD/PKI. Older but good article here.

Q. Is there anything that would accelerate my remote development teams? Interacting with the source repository consumes lot of time for my overseas / geographically disperse teams.

A. Yes. Check out TFS Proxy Server. It synchronizes source changes across slow or remote connections. Grant Holiday provides a nice launch point here.

Q. I would like to pull quantitative developer metrics (lines of code committed, number of unit tests, reactivations, code churn, number of builds broken, average code coverage, etc.) from TFS. Is this possible?

A. I haven’t done it but yes, most of this is possible. However, I don’t recommend it. IMO, it’s too easy to misinterpret this data at an individual level (vs. a team level). Just because I have a lower number of lines of code committed or number of unit tests, doesn’t necessarily mean I’m a sub-standard developer. That said, you could easily pop open Excel 2007, point to the TFS data warehouse and/or SSAS cubes and crawl through the schema. Good starting points here and here.

Friday, November 13, 2009

DogFoodII: VSTS 2010

Thanks for coming to my VSTS 2010 (Beta2) presentation at DogFoodII in Columbus. I've posted the deck here and will publish a follow-up post with Q&A from the session.

Special thanks and appreciation to Randy Pagels, Microsoft Developer Solution Specialist for the Heartland District for supplying a lot of the material. Randy maintains an excellent resource on VSTS/TFS at

Also, special thanks for the VSTS MVPs for helping us learn and understand what's coming in 2010.

Saturday, October 31, 2009

TFS/VSTS 2010: A Preview @ DogFood II

I'll be speaking at DogFood II on TFS/VSTS 2010. It's a preview but will help you get your hands around the breath of 2010. Here's the skinny:
Please join us for the 2nd Annual Dog Food Conference; sponsored by the partner community. We will have MS speakers, MS partners, ISVs, MS MVPs and community leads presenting over 40 topics. Around half of the speakers are community leads; and half are MS specialists. As seating is limited, we encourage you to knowledge share with your peers, see overviews and chat one on one at the “Ask the Expert” area.

Website has the full agenda and register links.

Saturday, October 10, 2009

SQL Server Reporting Services 2008 Presentation

Recently, I delivered a client presentation on SQL Server Reporting Services 2008. There were some follow-ups I thought I’d share:

Q. After creating and deploying an .RDL file to Report Manager, later, when I want to modify it, can I bring it back into BIDS?

A. Yes. Simply create a new, empty Reporting Services project within BIDS and then Add >> Existing, browse out and open the existing .RDL file. You may need to make some minor edits if you were using a shared data source.


Q. Compare Report Builder 2.0 with BIDS.

A. Reference this page:


Q. Compare SSRS 2008 for Standard and Enterprise SQL Server editions.

A. Reference this document:



Additional, informative article:

Q. Is there a freely available version of SSRS?

A. Yes. SQL Express optionally includes a scaled-back version of SSRS. Download here:

Q. Book recommendations?

A. I really like “Microsoft SQL Server 2008 Reporting Services”, by Brian Larson.

Friday, October 09, 2009

COALMG November: TFS 2010 from Microsoft's Doug Neumann

Very excited to announce we've (well, Alexei deserves all the credit) landed Doug Neumann for COALMG's November meeting!

Thursday November 5th, 6PM, Polaris Microsoft Office (4th Floor)

Visual Studio 2010 is almost here, and with it comes a host of new capabilities for application lifecycle management in Team Foundation Server. In this talk, we'll survey the new features in TFS 2010, starting with enhancements to the core features of version control, work item tracking, and build automation and then venturing into new capabilities for executing agile projects, managing quality assurance activities, and simplifying the provisioning of virtualized testing environments. There's a lot to learn with Team Foundation Server 2010, but this talk will cover the foundations and get you on your way to becoming an expert.

Doug Neumann has been working on Team Foundation Server since its inception in early 2003 when he was responsible for designing a new version control tool to succeed Visual SourceSafe. Currently he is a Principal Group Program Manager for the product and manages the teams responsible for the version control, build automation, web access, and administrative features of the product.

Sunday, August 16, 2009

VSTS Tester Demo Follow-ups

Last week, I delivered a VSTS 2008 Tester Edition demo to a prospective client. Following up on a few questions to which I didn’t know the answer:

Q. Can I use Subversion with TFS?

A. I get this question all the time from developers. It’s a perfectly valid question. The answer is no…but yes…sort of. The version control repository (and all data) must remain SQL Server. Yes, it’s proprietary. Further, if you plan to use TFS in your software development environment, but choose not to leverage it for version control, it severely limits the usefulness of the information elicited from TFS (because you’re not feeding in the crucial VC data). If you’re not leveraging VC in TFS, you’re probably not leveraging Team Build either.

That said, while a fully-integrated TFS for ALM and SCM is the ideal, there’s a compelling argument to leverage TFS as a repository for requirements, scenarios, test cases, functional and load testing as well as defect tracking. TFS is an excellent repository to store “stuff”: risks, requirements, issues, defects, etc and relating all these items. So, while your shop won’t get 100% of the horsepower of TFS without leveraging VC, there are still benefits.

Q. In a Web Test (and Load Test), one can indicate the browser type and even break this out into a distribution (e.g. 50% of users are FF3; 50% IE7). What is this really testing? (Test menu >> Edit Test Run Configuration…Web Test…Browser Type)

A. Contrary to what we would drool over, this is not actually rendering the test in a given/different browser. This is just sending a browser-specific header to the web server and hence the testing engine. The web server will note the browser type (user agent) but it’s not like these settings will reveal (for example) HTML table tags mis-rendering in IE when they look fine under FireFox 3.x (you are using CSS, right?). Here’s a write-up describing how to install additional/new browser types.

Q. If we deploy our web site into a test environment, the base URI for the web tests will differ from that when administered on the local machine. How can we make the base URI dynamic/configurable?

A. Yes, one can make the base URI dynamic / data driven from (for example) configuration.

1. Record the test with a local instance

2. Right-mouse on the test selecting “Parameterize Web Servers”

3. Configure with meaningful names (TestEnvironment, UATEnvironment, etc.). I have to imagine this could be configured at build / deployment time but I haven’t done that.


Q. What Instant Messenger (IM) clients does the “Team Members” functionality support?

A. Right-mouse on Team Members (need SP1 for this functionality), Personal Settings, Collaboration, Change button. Live and Communicator are included. Beyond that, the interfaces are exposed and an MVP team created a Skype provider. Good write-up here.

Awarded Team System MVP

A little more than a month ago, I was awarded the Microsoft Most Valuable Professional (MVP) Award for Team System. I haven't said much about it because I try to remain a humble guy and frankly, I've been swamped with work/life. And, unlike a lot of awards, it's not really one you "go after" comes to you without a formula.

What I really want to say about this is thank you. Thank you to the community for creating opportunities to present. Thank you to Microsoft for supporting technology professionals and creating jobs and careers around your products (and staying out of the way when I comes to implementation :). Thank you to the community leaders and professionals who dedicate their time and seemingly endless energy to making all of us stronger by creating environments of intense learning and camaraderie. Thank you to my employer for believing in my endeavors and investing in me the time to develop my TFS/VSTS skill set and share what I learn with the community and clients. And finally, I want to thank you--the readers/community/professional folks. Thanks for showing up to presentations, seminars, user groups and conferences. It’s a blast!

I'm humbled even to be mentioned in the same sentence as some of the past and current MVPs. While the MVP is quite an honor, it's not a means to an end. I'm still the same guy. I plan to keep doing the same sort of things I was doing before. To that end, please let me know how I can help you with learning or adopting TFS/VSTS in your environment. If you know me, I'm not completely bias toward TFS...there are other great tools for the job out there. We'll help get you up and running and producing high quality software--regardless of toolset.

Technorati Tags: ,,,,

Tuesday, July 28, 2009

VSTS 2010: Architecture Edition Presentation

Recently, I had the pleasure of co-presenting (probably generous...I more just rode shotgun :) on VSTS 2010: Architecture Edition with Randy Pagels, Developer Platform Technical Specialist with Microsoft. We spoke to an impressively-attended internal user group at Cincinnati Financial. Thank you Randy for the invitation to co-present and Cincinnati Financial for having us in.

To be honest, I'm not a big fan of the current 2008 Architecture Edition. Too rigid. Doesn't roll with the punches very well. It's more of a lay-down-the-law boundaries at the beginning of the project without the flexibility of absorbing feedback and instituting ongoing, evolutionary change.

The new version seems much more flexible and functional. It imposes a model / architecture but can be (and expects to be) adjusted easily over the life of the project. One can also institute a confirmation check of the code against the model during the automated build. It's less overbearing and more of a quality gate and feedback mechanism: "Uh, excuse me, you're directly accessing the data layer from the presentation layer...? Nope, sorry. You need to go through the interface / business layer to ensure...Thank you."

From the presentation, we fielded a lot of great questions. Here are the responses Randy and I compiled that we needed to take away. Thanks to Randy and the product group for their responses:

Q. Can we modify the TSWA project home page to include 2 WI query results: Individual, Team?
A. There’s not much you can do with TSWA 2008 but there’s a new feature in TSWA 2010 (which is now a part of TFS 2010) that might accommodate this request. In TSWA 2010, you will be able to customize the “Work Items Summary” section on the home page(talk about nice!) to select a stored query. Even though the Limitation here is that you can’t have more than one query showing, you can select a query that might have a filter that looks like “AssignedTo = @me OR AreaPath=Team”.

Q. Can a Coded UI test, test multiple browsers during a build? e.g. Mozilla, IE6, 7, 8
A. We support IE7 and IE8. The support for FireFox 3.0 will be at CTP level by RTM time. There are no plans for other browser support from product team at this point but there is extensibility support here for other 3rd parties/partners to add the support.

Q. Does code need to compile in order to produce the sequence diagram?
A. Generally speaking, the code must compile for sequence generation to work. Since we use the language services which use a sort of background / delay compile system – you will get a generated diagram for the parts of your code that does compile. For the parts that don’t compile, all bets are off since the language services do not guarantee behavior at that point.

Q. Can you update the underlying DGML XML and have that change reflect in all instances? Sort of a search/replace?
A. Not totally clear on this, but in general, if you update the raw XML behind a DGML graph, it will be immediately reflected in the graph.

Q. Is there any Visio import UML?
A. Yes, this will be provided as a PowerTool at RTM.

Q. Is there any XMI import UML?
A. Yes, same story as the Visio Import.

Q. Is there state management / authentication persistence support within SuperPreview?
A. Since this runs in an actual browser session and will run anything in the “OnLoad javascript” call so if there is anything going on in there it will execute and then take a snapshot of the page. An image is produced after you specify the URL – it is a snapshot. You have to change the URL to change the side by side layout. Unfortunately, there’s no way currently for SuperPreview to work with web pages that are behind a log-in (if I’m interpreting your question, correctly). The page must be publicly accessible. This is a pretty high priority item for the PG with the next version of SuperPreview.

Q. Does Test Essentials require agent/service/install onto QA boxes?
A. Yes, through small services called “Data Collectors”

Q. What's new in unit tests for VSTS 2010?
A. There are some minor enhancements, such as support for categories instead of test lists, performance improvements like using more than one core. Simplifying deployment that will result in improved performance as well. Unit Tests can now be extended with custom attributes (like privilege escalation attribute). The unit test type can be extended to provide custom coded tests (this is how coded UI is implemented)

Some good discussion: on Managed Extensibility Framework (MEF) at

Monday, July 13, 2009

Off Topic: Chicago Must-Eat Foods

This is a frequent topic of conversation with friends visiting Chicago. I lived there for 8 years and loved Chicago...well, except for the October to May winters. Chicago has great sports, culture, festivals, events, shopping and...of course food. So I can avoid regurgitating this list every time I'm asked, here we go:

Chicago Pizza and Oven Grinders (Pizza in a bowl...owner remembers wait list by your face)
Cafe Babareeba (Spanish tapas)
Giordano's (deep dish pizza; pass on Gino' where near as good)
Portillo's (Loaded dogs)
Joe's (get the Stone Crab if it's in season)
Mon Ami Gabi (French)
Tizi Melloul (Mediterranean)
Mia Francesca's (Italian)
Star of Siam (Tai)
Mitchell's (breakfast)

I'm sure I'm forgetting something but that's a good start. Enjoy!

Monday, June 22, 2009

TFS 2010 Setup: Gotchas

I'm sure I missed a step somewhere during setup the search engines catch 'em, I'm going to post my TFS/VSTS 2010 setup missteps below:

Issue: "TF255147: The following server that is running SQL Server is not listening on the expected TCP port: SERVER"
Resolution: Open SQL Server Configuration Manager. Under SQL Server Network Configuration, Protocols for MSSQLSERVER, right-mouse Enable TCP/IP. Restart SQL Server. Re-run TFS configuration wizard.

Issue: "TF255282: Windows SharePoint Services 3.0 cannot be installed. The program is already installed on this server"
Resolution: Open up Add/Remove Programs (or "Programs and Features" under Win2k8 Server) and remove Microsoft Windows SharePoint Services 3.0. Re-run TFS configuration wizard.

Issue: Couldn't get Full-Text search within SQL 2008 to install.
MSI (s) (14:AC) [00:03:21:091]: Source is incorrect. Unable to open or validate MSI package D:\Setup\sql_engine_core_shared.msi.MSI (s) (14:AC) [00:03:21:093]: Note: 1: 2203 2: D:\Setup\sql_engine_core_shared.msi 3: -2147287037 MSI (s) (14:AC) [00:03:21:093]: Source is incorrect. Unable to open or validate MSI package D:\Setup\sql_engine_core_shared.msi.Please insert the disk: Please insert next disk
Resolution: I'm installing on a VPC so I simiply download ISO installs, "Capture ISO image..." from the CD menu of the VPC and install. Works great...usually. In this case, for some reason, the installation would get 2/3rds to completion and die with very innocuous errors. I kept coming up empty searching for "error" within the 500k MSI log file. Finally stumbled onto something referring to "Unable to open..." having something to do with subst.exe and network or simulated mapped drives. I expanded the ISO with MagicISO, copied it to the VPC hard drive and wala, no more issue. That was a good 6 hours of struggle.

Friday, June 12, 2009

Overriding the default assembly output directory in Team Build

By default, Team Build (MSBuild-driven) wants to output compiled assets (assemblies, config, exe's, etc.) to a flattened ..\Binaries\Release|Debug directory. I had a client desiring to package up these assets in their relative, normal output directories into an MSI using WiX.

Fortunately, there's a simple directive to set within the TFSBuild.proj file such that the individual project OutDir is honored:

Set this within the main PropertyGroup element for your build. Unless you're performing a custom check-out, you'll also need to turn off read-only attributes set during the Get from version control. Update this attribute in the AfterGet target using an Exec task:

Wednesday, June 10, 2009

Agile with TFS Presentation Follow-up

Thanks for everyone attending my "Implementing an Agile Software Development Process with Team Foundation Server (TFS)" presentation today. We enjoyed some good discussion. I had a few TFS-related questions pop up which I thought I'd address in a post:

Q. Is it possible to fail the build but only if a specific test fails? So, let's say we have 3 tests. If Test01 or Test02 fail, fail the build. If Test03 fails, don't fail the build.

A. Not that I'm aware of. If any test fails in a build but compilation succeeded, that build lists a state of Partially Succeeded. With TFS 2008 SP1, we received a property to modify or control this behavior: TreatTestFailureAsBuildFailure. If true (false is the default), any test failure will set the build state to Failed (vs. Partially Succeeded). Nice write-up here.

You might take the approach of creating two separate builds: one that contains all your tests and one containing just mission critical tests. Set TreatTestFailureAsBuildFailure to true for that one and any test failure will fail the build. Not precisely what you want but close. It may also be beneficial or helpful to check the TestSuccess output parameter.

Q. Can I move a Work Item from one team project to another (prefer not to copy...delete)?

A. Unfortunately, no. One can use the TFS Migration Tool but it's a bit heavy. We typically copy to the destination team project and then Close the source work item. For one client, we even developed a desktop triage application to programmatically copy and then delete defects and task requests between team projects. The client wanted to triage out of one team project and then distribute the work item to the correct team [project].

Thursday, June 04, 2009

Rollback a Ooops in TFS with TFPT Rollback

Rhut roe, Raggie. You just checked in a merge operation affecting 100's of files in TFS against the wrong branch. Ooops. Well, you can simply roll it back, right? Select the folder in Source Control Explorer and...hey, where's the Rollback?
Rollback isn't supported in TFS natively. However, it is supported within the Power Tools leveraging the command-line TFPT.exe utility. It's fairly straightforward to revert back to a previous version--with one caveot.
First, download and install the Team Foundation Power Tools 2008 on your workstation. Before proceeding, let's create a workspace dedicated to the rollback. To "true up" the workspace, the rollback operation will peform a Get Latest for every file in your current workspace. This can consume hours (and many GB) with a broad workspace mapping. To work around this, I create a temporary workspace targeted at just the area of source I need to roll back. So let's drill down on our scenario...
I'm working on Program.cs and I accidentally check in a change I shouldn't have. Oops.

Let's create a workspace mapped just to the folder housing Program.cs so we avoid a massive, entire workspace "Get" during the rollback operation.

Afterwards, select that workspace and perform a Get Latest (just to establish the file system directory). Open up a Visual Studio 2008 command prompt and browse to the workspace on the file system.
To perform a rollback, you can target a changeset or a filespec. I prefer the specificity of the changeset but whatever works for you. You also have flexibility with merge and recursive behavior. Here's the full write-up on MSDN for Rollback. Alternatively, just type in a

TFPT rollback /?

Executing the TFPT rollback command (with the /changeset option in this example), will earn you a prompt to get the latest. Go ahead and click Yes.

Important to note here with the changeset option: you want to identify the changeset one prior to the version you wish to rollback to. So, if I want to rollback to changetset 227, I want to use changeset 228 in the TFPT operation.

Next, you'll be presented with all the assets (files) in that folder involved in that particular changeset (228 in this case). We only want to roll back Program.cs so we'll only select that file. If you Ctrl-A and uncheck one box, it will uncheck them all. Click Rollback.

Next, you'll receive feedback at the command line about the operation. But wait, you're not finished! Rollback is a local operation. You still need to check in your change. This is a great "safety" if you messed up the rollback itself. Just Undo Pending Changes.
Ok, so we're ready to check in our changes.

Looking at View History once more, note we actually have a third version and changeset now: 229. But, we've indeed returned to the original (the first, changeset 227) version of the source.

Being back to square one never felt so good...

Wednesday, June 03, 2009

Installing TFS/VSTS 2010 Beta 1

I finally found some time to get rolling on VSTS/TFS 2010 and wanted to share how I kitted out my environment. Somewhat related, fantastic overview on where to start.
  1. Started with my Windows 2008 Server VPC
  2. Installed and configured IIS 7
  3. Downloaded and installed the SQL Server 2008 180-day Trial
  4. Configured SQL Server 2008 and SSRS, SSAS
  5. Turned off IE Enhanced Security for Administrators
  6. Under Win7 Beta1 (my host OS), I have a jerky mouse on the VPC. Unfortunately, the Change settings button under the Troubleshoot tab of my display driver is disabled under 64-bit :( Otherwise, I would enable the hardware acceleration recommendation. It's slightly better under full-screen.
  7. Downloaded and installed Windows SharePoint Services (WSS) v3.0.
  8. Downloaded and installed TFS 2010 Beta 1 following the instructions to the letter.
  9. Downloaded and installed VSTS 2010 Beta 1.
Happy exploring and learning!

Tuesday, June 02, 2009

Troubleshooting the TFS Data Warehouse

Occasionally, I encounter issues with the TFS data warehouse failing to refresh. Sometimes, it's as simple as the VS TFS Task Scheduler service isn't started but other times, it's more complicated. Here's a helpful troubleshooting document up on MSDN for troubleshooting the SQL Server TFSWarehouse relational table / Operational Data Store (ODS). If you're expereincing issues with Analysis Services (SSAS) and/or the cubes, reference this one.

Microsoft BizValue Series

Thanks to everyone attending my firm's monthly Microsoft BizValue Series. In case you missed it, I've presented recently on the Microsoft Business Intelligence (MSBI) stack, Microsoft Online Services / BPOS and Team Foundation Server (TFS).

We meet in our offices downtown (Columbus, OH) on the 2nd Wednesday of the month. Next week (June 10th), I'll be delivering a talk on leveraging TFS for agile software development efforts. I'll deliver a similar presentation in our Charlotte, NC offices the following day (June 11th).

You can learn more and register here and here.

Sunday, March 22, 2009

ArcReady: Architecting for the Cloud

Update: 3/28: Thanks for joining us in Mason, OH. Slide deck is here and on Slide Share here.

Thanks for joining us at ArcReady in Columbus, OH "Architecting for the Cloud". I hope everyone got some good information out of my "Cloud Services" session. I'll also be delivering this same session in Mason, OH this Friday. Thanks for coming and thanks to Brian Prince for offering the opportunity to present.

Architecting for the cloud
For our next ArcReady, we will explore a topic on everyone’s mind: Cloud computing. Several industry companies have announced cloud computing services . In October 2008 at the Professional Developers Conference, Microsoft announced the next phase of our Software + Services vision: the Azure Services Platform. The Azure Services Platforms provides a wide range of internet services that can be consumed from both on premises environments or the internet.

Session 1: Cloud Services
In our first session we will explore the current state of cloud services. We will then look at how applications should be architected for the cloud and explore a reference application deployed on Windows Azure. We will also look at the services that can be built for on premise application, using .NET Services. We will also address some of the concerns that enterprises have about cloud services, such as regulatory and compliance issues.

Sunday, March 15, 2009

Columbus Exchange and Windows User Group (CEWUG): Unified Communications

One solution from Microsoft I've always been curious about but never had the time to dedicate to, Office Communication Server or OCS. Presence with instant messaging, VOIP, video conferencing...all kinds of neat stuff. The next meeting of will provide a full demo. Might want to check that out.

What: Columbus Exchange and Windows User Group (CEWUG)

Join Microsoft and BT to learn how Microsoft Unified Communications solutions help streamline communications between people and organizations, bringing together e-mail, calendaring, voice mail, IM/ presence, VoIP, audio, video, and Web conferencing. This interactive session will include a live demonstration of the Microsoft Unified Communications Solutions.

CEWUG Registration Link

  • 5:30 to 6:05: Welcome time; meet the MS steering committee, pizza and beverages
  • 6:05 to 7:05: Microsoft Unified Communications overview and demonstration
  • 5 minute break
  • 7:10 to 8:15: BT INS discusses how they saved money using Microsoft Unified Communications

Where: 8800 Lyra Dr, Suite 400 Columbus, OH 43240

When: Wednesday: March 25, 2009 5:30 to 8:15 PM

  • Michael Austin , Microsoft Unified Communications Group
  • Joan Windsor, BT INS

The goal of the CEWUG is to build relationships with peers, share expertise and involvement with the central Ohio IT community.

We will meet the 4th Wednesday of the month at the MS Columbus Office: 8800 Lyra Dr, Suite 400, Columbus, OH 43240

Saturday, March 07, 2009

Configuring a Development Sandbox for the Azure CTP

I'm getting up to speed on Azure and the other cloud SDKs and need to configure an environment for development, demos and learning. My experiences...

First off, if you've read my blog, you know I haven't installed non-productivity software on my core OS for years. Further, I don't get the warm and fuzzies installing CTP software on my core OS. I also love the recoverability and start-over-from-a-checkpoint features of virtualization. Virtual PC (VPC) houses all my development, demo and learning sandbox instances. So, let's start off with a VPC instance. For this to work well, ideally, you need a good 4GB of memory. Further to the ideal, you're running x64 so as to have access to the full 4GB of memory.


To develop against Azure and/or .Net Services and SQL Services, you need an invitation code. Oooh, very exclusive. Pretty people to the front of the line! You can start the process here. If you run into problems, check this post here or the forums here. All invitations and registrations are managed out of Microsoft Connect.

Azure requires either Vista or Windows Server 2008. Fortunately, Microsoft provides a trial VPC download of Windows Server 2008.


  • Make sure you have Virtual PC 2007 with SP1 installed
  • Download the Virtual Hard Drive (VHD) file and expand
  • Within the Virtual PC Console, select: New >> Create a virtual machine >> provide a name and location >> Windows Server 2008 >> Adjust the RAM to at least 2GB if not 2.5GB (2560MB) >> An existing virtual hard disk (browse out to the VHD file you downloaded above and expanded) >> Finish
  • Fire up the VPC instance and log in (credentials are on the download page)
  • (TIP: If you need to flip between the window frame and Full Screen, it's Right-ALT + Enter)
  • Suggestion: Right-mouse on the desktop, Properties, Screen Saver: None.
  • Start >> Administrative Tools >> Server Manager (may already be up when you log in)
  • Click on Add a Feature
    • Within .NET Framework 3.0 Features, select the .NET Framework 3.0, (and within that...) select WCF Activation, (and within that...) select HTTP Activation and finally but optionally Windows PowerShell
    • Install
  • Click on Add a Role
    • Select Web Server (IIS)
    • Click Add Required Features
    • Under Role Services, select ASP.NET (click Add Required Role Services if prompted)
    • Install
  • Create a share to your core OS
    • Within the window frame of the VPC instance, select File...Install or update...additions
    • Run Setup.exe and follow the instructions to install the additions. Restart if prompted.
    • Within the window frame of the VPC instance, select Edit...Settings
    • Select Shared Folders. Click Share Folder...
    • We're setting up a share to all this software we're about to install which you've downloaded (or will). Typically, I have an Installs directory housing all my software installation files.
  • Firewall: I'm not 100% sure this is required but I enabled port 1433 through the firewall for SQL Server. Instructions.


Download or copy and then install all this software into the folder on your core OS which we just shared to the VPC. I typically just install from the share. This conserves space and prevents the virtual hard drive from expanding unnecessarily.

Thursday, March 05, 2009

Visual Studio Team System 2010 Hands on Labs

Thanks to Randy Pagels for organizing and for all enjoyed this event in Columbus yesterday. Feel free to post any questions/comments here and we'll get them answered.

One question that came up inquired about support for Sharepoint development within TFS/VSTS 2010. The Visual Studio team answered with a resounding: "Yes, Sharepoint is a first class citizen in TFS 2010".

Sunday, March 01, 2009

Go Virtual! Save your Soul.

I haven't installed a development tool (production or beta/CTP) on my core OS for years. I do all my development, presentation preparation and learning / experimentation on Virtual PC (VPC) instances. (Ok, my clients pony up development machines for client work but...and no developing / architect jokes) Also, these are not VPCs I created. Certainly, one needs to license these instances properly when used in a production environment (vs. testing/evaluation) but leveraging a VPC will save you loads of time and effort (and headaches).

To be clear, I don't recommend this approach if you need to actually learn how to install and configure a product and/or operating system. If you're studying for your MCSE, it likely behooves you to actually install it a few times rather than leveraging an existing virtual instance.

But, if you want to learn how to leverage or use the product rather than how to install and configure it, go out to your favorite search engine or and download the VPC instances Microsoft so generously provides. These often 12-month expiry instances provide ample time to create a presentation demo or a proof of concept for a potential client. Investment in setting up and configuring the OS, SQL Server, MOSS, VSTS/TFS, etc in order to leverage your product of interest: ZERO (well, except the time to download perhaps).

As an example, I leverage the Visual Studio Team System and Team Foundation Server VPC instance for all my VSTS/TFS demos and client presentations. Recently, I started leveraging the Windows 2008 Server VPC trial instance for some Azure presentation work--Azure requires Vista or Windows 2008...yes, I'm still on to my infrastructure guy :( Personally, I think Windows 2008 Server looks awesome. Do I want to set it up and configure it? Err, no.

If there's no existing instance configured the way you like, take it upon yourself to create a VPC for your team. (Again, disclaimer: license this up properly.) The folks on my MOSS infrastructure / config team kitted out a tremendous Windows Server 2008 with MOSS Enterprise, SQL Server 2008 and all the goodies. Now, the folks on the MOSS development team can benefit and get right to work learning and developing--their key focus.

Save yourself some time and energy--go virtual!

Tuesday, February 24, 2009

Developer Tools Roadmap: Columbus

Thanks to everyone who attended my firm's (Cardinal Solutions) / Microsoft joint-sponsored Developer Tools Roadmap event at the Columbus Microsoft MPR room. Thanks to Randy Pagels, Bill Steele and...(no, I won't thank myself) for speaking on C#/.Net 4.0 Futures, VSTS 2010 and Azure/S+S/Online Services, respecitvely.

Please contact me or leave a comment with any questions!

Saturday, February 21, 2009

TFS for One Please

This post includes a recent inquiry and my response. Thought it was interesting...names changed to protect the innocent.

I was one of the attendees at the Foo Bar seminar you put together earlier this month. I got a lot out of it and have been inspired to give it a try.

I do not have an employer at the moment, nor any extra equipment lying around. I want to install and configure the whole mess on my laptop (dual-core processor, 2G RAM, Vista SP1 -- so it should handle it). I don't want to use the downloadable virtual image as I want to learn how to do the actual installation process. Hopefully this experience will help me in the future. (Or is this crazy and I should just stick with the virtual image?)

I have copies of all the relevant software, and am looking for some advice on the best way to do the installation and configuration where the Team Server, SQL Server (I already have 2008 Express installed), and Team Suite will all live on the one machine (no domain). My intent is to use it for my personal .Net development projects. Obviously, this is massive overkill, but I want to gain experience with it all that I can use in future consulting assignments.

Do you have any pointers to information that is specific to my situation? I have found a lot of information out there about installing TFS, but it all assumes it is at least going on a dedicated test server.

Thanks, Itching for TFS in Lawrenceburg

Itching for TFS in Lawrenceburg,

Sure, I remember you. Glad you enjoyed the sessions. Your desire to learn is commendable! If I were you...I would probably focus on learning how to leverage TFS instead of installation and configuration.

Realistically, one only stands-up a TFS server once (or maybe twice...a test instance) per customer or full-time employer. While it's not easy, I also wouldn't say it's rocket science either. The instructions are massive but when followed step-by-step, they're effective.

However, if you're set on standing TFS up from scratch, I would definitely leverage a clean VM/VPC Windows 2008 Server instance. Install TFS 2008, SQL 2008, WSS 3.0 and Reporting Services 2008 (I believe they're all available under trial licenses). I don't believe TFS will even install on Vista and/or SQL Express 2008. It will be quite slow but 2GB will support the VM/VPC with 1.5GB dedicated (yes, I struggled through this early last year). You might consider upping your laptop to 4GB with memory so cheap right now...but I understand if you want to do this without further investment.

To further dissuade you from standing up a TFS server from scratch, 8 times out of 10, we leverage a configuration with a separate database server and a separate build server (so 3 servers total with the app server). Thus, in your practice exercise, you won't be able to replicate a true, realistic, common scenario given your current hardware constraints.

Finally, your true value will come from understanding how to customize and leverage TFS: modifying process templates, customizing builds, how different methodologies fit into TFS, how each role can and should leverage TFS, what the individual flavors of VSTS are capable of completing, etc. I've been using VSTS/TFS for 4 years now and I learn something new with it almost daily. It's crazy vast. IMO, you'll be able to demonstrate a lot more value in the configuration and leverage realm vs. the installation realm.

Just my $0.02. Best of luck!


Friday, February 06, 2009

ALM Briefing / SDLC in a Box Event

Thanks to everyone who attended our ALM Briefing / SDLC in a Box event on 2/05 at the Polaris Microsoft offices. We had a great audience with lots of intriguing questions. Our follow-up post is here.

Shameless plug: Cardinal Solutions, my employer and one of the sponsors of this event, is a Microsoft Visual Studio Team System (VSTS) Inner Circle partner. We specialize in:
  • Application Lifecycle Management (ALM) Assessments / Catalyst
  • Team Foundation Server (TFS) capacity planning, installation and configuration
  • Migration of source code
  • Process Template customization and advising
  • End-user training for all roles
  • Automated and Continuous Integration (CI) builds with Team Build
  • Best practice advising and ongoing consulting for process change, methodology implementation and customization of process and tools surrounding TFS and VSTS
Please contact me for all your Team Foundation Server (TFS) and Visual Studio Team System (VSTS) needs.

Monday, January 26, 2009

Application Lifecycle Management Briefings / SDLC in a Box

I'll be presenting VSTS/TFS 2008 at this two day event Feb. 4-5th.

Alexei Govorine, Quick Solutions
Jeff Hunsaker, Cardinal Solutions
They are the co-founders of the Central Ohio ALM Group

The SDLC in a Box session will be led by two Central Ohio community leads. This 2 day briefing will discuss an application lifecycle project, from initial conception through requirements gathering, design, development, testing, build & review processes. We also cover process concepts, integration with non-Microsoft development and best-of-breed partner solutions & offerings for Visual Studio 2008 Team System.

This two day sesions is targeted for Developers, Architects, Project Managers, DBAs and Business Analysts looking for ALM and researching Team Foundation Server.

Register for this Event! Enter code: 857100

This event will be held at:
8800 Lyra Drive
Suite 400
Columbus, OH 43240 Map IT!

Friday, January 23, 2009

MDC Detroit: Introducing jQuery in ASP.Net

Update (2/7/2009): VsDoc for jQuery v1.3.1 released!

Update (1/23/2009): Thanks to all who attended! The packed house made for some great energy...and I hope some solid learning. I added the link to the samples/demos below (all the way at the bottom).

My colleague Jason Karns and I have the honor of presenting "Introducing jQuery in ASP.Net" at the Detroit MSDN Developer Conference on January 22nd. Come see this exciting inclusion of an open source library with Microsoft Visual Studio! I've included several links below we'll discuss in our talk:


Sunday, January 11, 2009

CodeMash: 2009

Another amazing CodeMash this year. I'm a third year alum now and it just keeps getting better. I embraced Open Spaces more this year. Along with that and the Microsoft Hands on Labs, there was never a dull moment. Most importantly, I got to hang with all the amazing folks who contribute so much to the community/region...and wow can Dustin Campbell and Carl Franklin *jam* guitar (...the real ones...not Rock Band)!

Huge props to Jim Holmes, Brian Prince, Jeff Blankenburg, Jason Follas, Jason Gilmore, Josh Holmes, tons of people I missed and all the great speakers and sponsors (including my employer, Cardinal Solutions).

Can't wait until next year!

Wednesday, January 07, 2009

VSTS 2008 Data-Driven Web Test

During a client demo this afternoon, I mind-blanked on creating a data-driven web test. Sure enough, I stepped out of the client offices and figured it out. Super. But, I think it's counterintuitive enough to outline in a blog post (...trying to make myself feel better ;-). Somewhat in my defense, I was thinking about data-driven unit tests. These, IMO, are easy to implement. Data-driven web tests are a bit more effort and challenging.

Create a web test: Right-mouse on your test project selecting Add >> Web Test. Use the browser recorder to capture your web test scenario. Let's assume you're submitting an age and credit rating to an insurance rate calculator...similar to the screen capture below:


Create a table or CSV file (comma-delimited...just use Excel and save as CSV) with relevant headings for your inputs and expected values:


From Solution Explorer, double-click on your web test. In the main window, right-mouse on your web test selecting Add Data Source... :


Establish a connection to a relational database, CSV or XML file:


For each parameter posted, select Properties and then the drop-down next to the Value property:


For each of the post parameters, select the appropriate / associated data element:


Ok, so that covers our inputs. Now we need to verify the page produces the expected result. Right-mouse on the URL/page request including the form post selecting "Add A Validation Rule..."


Use the best option for your situation. Hopefully you can simply check a Form Field. In our circumstance, we're writing out an ASP.Net label to the form with the calculated results. So, we need to leverage the Find Text option (I tried Required Attribute Value but since labels output as <span id="lblSomething">Output Value</span> I wasn't able to grab the value...because it's an element vs. an attribute). Unfortunately, there's no nice drop-down for connecting to the data source's expected value. You'll need to enter it manually. The format looks like: {{DataSourceName.FileName#csv.FieldName}}. It's easiest just to copy from the input parameters and surround with the double curly brackets. Here's what the dialog looks like:


Finally, we need to instruct the test to execute once for every data record instead of the web test values captured in the recording. Within Visual Studio, select Test >> Edit Test Run Configuration >> Local Test Run:


Select Web Test from the left and select the "One run per data source row" option and click Close (save to the project if prompted):


Now we can execute our data-driven web test! (Make sure to check the Details tab confirming the Validation worked as expected and you're not experiencing a false positive):