# Monday, July 29, 2013
Monday, July 29, 2013 4:22:00 PM (GMT Daylight Time, UTC+01:00)
# Saturday, July 27, 2013

Are you a TFS user or interested in using this product? In the past, it was necessary to install TFS onto a central server or virtual machine before using it. No more. Now, Team Foundation Services allows you to access a TFS server hosted by Microsoft.

The service is free for small teams (<5 people) while it is in Preview, but I have not seen any future pricing announcements.

Get started by navigating to visualstudio.com and signing up for an account. Note the URL, up to ".visualstudio.com". This is the server name. You will need this to integrate with Visual Studio solutions. In my case, it is "https://giard.visualstudio.com".

At the home page, click the [New Team Project] button (Fig. 1)


The "Create Team Project" dialog displays (Fig. 2). Enter a project name and description;


Next, select a Process template. The choices are:

  • Microsoft Visual Studio Scrum 3.0 - Preview
  • MSF for Agile Software Development 7.0 - Preview
  • MSF for CMMI Process Improvement 7.0 - Preview

Finally, select a Version Control repository. Currently, TFS and Git are supported. Click [Create Project] and you will be ready to start using TFS within a few seconds.

The navigation is simple and intuitive.

You can add and remove team members by clicking the Manage All Members link.

You can enter a new Task, Bug, Issue, Feature, or Test Case using dialogues similar to those found in the Visual Studio Team Explorer.

The source control repository can be seen by clicking the "Code" link on the top menu. From here, you can download files but not upload them.

TFS source control is easiest to use when you integrate it with Visual Studio. Open a solution in Visual Studio and select File | Source Control | Add Solution to Source Control

You may be prompted to add a TFS server. If so, use the URL ending in ".visualstudio.com" that you noted from above. (Fig. 3)


Select the Team project to which this solution belongs (Fig. 4) and click the [Connect] button.cl


From here you check-in, check-out, branch, merge, and get latest in the same way that you would use a TFS server within your enterprise.

Microsoft is adding new features to this Team Foundation Service each week. You can follow the progress on Brian Harry's blog at http://blogs.msdn.com/b/bharry/archive/tags/tfservice/.

Team Foundation Service allows you to manage projects on your own or with organizations that don't have the hardware and/or time to set up their own TFS server. It can be a simple solution to integrating your project with Application Lifecycle Management tools.

Agile | ALM | TFS | Visual Studio
Saturday, July 27, 2013 7:39:05 PM (GMT Daylight Time, UTC+01:00)
# Wednesday, July 24, 2013

What I liked about "Continuous Integration in .NET" by Marcin Kawalerowicz and Craig Berntson is that it does not assume any prior knowledge of continuous integration (CI) by the reader. It begins by discuss CI - its theory, goals, and tools - and it moves on from there.

It's often difficult for an organization to achieve CI all at once, so this book walks the reader through the various pieces of CI - source control, automated build, unit testing, continuous feedback, analysis, deployment. They go into detail on each concept, showing step-by-step how to get there with a variety of tools.

Kawalerowicz and Berntson take care not to focus on a single tool. The implementation of each concept is shown using Cruise Control .NET, Team City, and Team Foundation Server.

Continuous Integration in .NET is a very good book to get you up and running with automated build and deployment processes and moving into continuous integration, even if you have no experience with these concepts.

Agile | books
Wednesday, July 24, 2013 8:34:00 PM (GMT Daylight Time, UTC+01:00)
# Tuesday, July 23, 2013

Recently, I wrote my first Windows Phone 8 application. In order to share my application with the world, I needed to publish it in the Windows Phone app store and in order to publish it, I needed to register with the Windows Phone Dev Center. Most dev centers like this charge about $100 a year and I believe that is Microsoft’s usual fee.

But currently, they are running a special and charging only $19. This offer is good until August 27. If you are thinking of writing an app for Windows Phone 8, this is a good time to do it. You can register and pay your $19 at https://dev.windowsphone.com/en-us/join?logged_in=1.

Tuesday, July 23, 2013 8:10:00 PM (GMT Daylight Time, UTC+01:00)
# Monday, July 22, 2013
Monday, July 22, 2013 9:23:00 PM (GMT Daylight Time, UTC+01:00)

We can all agree that some code is better than others. But if you write code that compiles and meets all the user's requirements, is it possible to improve this code?

Robert C. Martin's answer is an emphatic "Yes". Although sloppy code can meet short-term requirements, it quickly becomes difficult to maintain. Clean Code, Martin argues, is easier to read, understand, and test; and safer to change. Our goal should be to write Clean Code.

Robert's C. Martin (sometimes affectionately referred to as "Uncle Bob") has compiled some guidance on writing clean code into a book with the self-describing title "Clean Code".

Martin did not write the entire book- he enlisted other software developers active in the Software Craftsmanship movement to contribute. Tim Ottinger, Michael Feathers, James Gremming, Jeff Langr, Kevin Wampler, and Brett Schuchert each contributed at least one chapter, outlining a specific idea of Clean Code.

Among the key concepts: Keep classes and methods small and narrowly focused, give meaningful names to variables; don't use comments as a replacement for difficult to read code; and avoid output parameters and an excessive number of parameters.

He follows up advice on craftsmanship with a set of case studies in which he describes the refactoring of existing code bases.

Although most of the examples are in Java and I am primarily a .NET developer, I found this book very useful and applicable to any language - particularly an object-oriented language, such as C#.

Code Complete was a good book for me to read when I did. I am in the process of refactoring some code that is very difficult to maintain. I knew that it is not clean, but found myself unable to articulate exactly why.

The book is not for beginners. You should have a solid understanding of your language and of OOP concepts before tackling it. But it provides excellent guidance on writing readable, maintainable and testable code.

Agile | books
Monday, July 22, 2013 9:13:00 AM (GMT Daylight Time, UTC+01:00)
# Tuesday, July 16, 2013

This morning, my first Windows Phone 8 app was approved and is now available in the Windows Phone store. You can download and install it on your phone from here or search for "MathFlashGame" in the store.

The game simulates arithmetic flash cards, displaying an addition, subtraction, or multiplication problem. The user supplies the answer and the game tells him if that answer is correct. You have the option of limiting the operators and the range of numbers displayed.

I began the app about 4 weeks ago as a learning exercise. Not only have I never written a mobile application, but I have very little experience with XAML. Everything was new to me, from the data binding to local storage to the mechanism for responding to a change in phone orientation.

I learned a lot on this project and I am inspired to write more applications for this platform. The experience was fun. If you are considering writing a Windows Phone app, I encourage you to take the plunge. There are a lot of helpful resources online and the cost for a developers license is currently very low (only $19).

And if you have a chance, please check out my app and let me know what you think.


Tuesday, July 16, 2013 11:49:23 AM (GMT Daylight Time, UTC+01:00)
# Monday, July 15, 2013
Monday, July 15, 2013 6:02:00 PM (GMT Daylight Time, UTC+01:00)
# Saturday, July 13, 2013

Earlier this month, I was honored to be renewed as a Microsoft MVP. This is the third year in a row I have received this award.

Although Microsoft is not specific about criteria, I believe that I receive this award primarily because I've been willing to share whatever knowledge I have with those around me. This community involvement, helps Microsoft to evangelize their products and it happens to be something I enjoy doing.

For me, there are two main benefits of the Microsoft MVP Award.
1. It is recognition that I'm doing some good in the world and that my skills don't suck. I won't pretend that peer recognition is not important to me. I get warm and fuzzy when I earn the respect of someone I respect and this is some pretty nice validation.
2. I get to attend the Microsoft Global MVP Summit. I go to a lot of conferences and each has its strength, but the MVP Summit attracts a high concentration of really smart people. Attendees get to see the next version of Microsoft products and even provide feedback to affect the direction of the development of these projects. But for me, the best part of the conference is the chance to talk face-to-face with authors, speakers, bloggers, and product team members. Many times, I've had the chance to meet someone

The MVP program does provide other benefits - most notably free software, both from Microsoft and from its many partners. But, for the most part, I could receive this through my work or my user group anyway.

As with most awards, many others helped me to earn this one. The volunteers at the Great Lakes Area .NET User Group (GANG); the speakers who traveled to Detroit for GANG; the conference organizers and user group leaders who invited me to speak at their events; and INETA, Sogeti, and Telerik, who helped by financially supporting my travels, making it possible for me to speak far from home; and everyone who agreed to appear on my TV show.

Recently, a well-respected member of the Developer Community started a debate on Twitter, questioning the value of receiving an MVP award. I cannot speak for him, but the advantages I listed above are enough incentive for me to fill out a brief form every spring.

The best part of this deal is that I'm rewarded for doing what I love and what I would be doing anyway.


Saturday, July 13, 2013 7:34:29 PM (GMT Daylight Time, UTC+01:00)
# Monday, July 8, 2013
Monday, July 8, 2013 7:54:00 PM (GMT Daylight Time, UTC+01:00)
# Monday, July 1, 2013
Monday, July 1, 2013 7:52:00 PM (GMT Daylight Time, UTC+01:00)