Auckland .NET Users Group

Are you an NZ native? From Auckland? Are you interested in .Net development? Then you should really check out the Auckland .Net Users Group! It’s kicking off on the 24th of this month with a great session about Behaviour Driven Development (or BDD for short) and Team Foundation Server. This is a great way to get your toes wet with a set of .Net BDD frameworks and understand how you can integrate them into your development workflow. It’s also a good chance to get along and heckle  hear Rob Maher who I can highly recommend as a speaker.

If you’re interested in the details or to RSVP head over to http://aucklandnetusergroup.groups.live.com/

The short:

WhoAuckland .Net User Group

What: BDD Overview

When: 1730, Tuesday 24th May

Where: IAG – 1 Fanshawe St, Auckland

Speaking at the New Zealand ALM Conference

It’s getting to that time of year again where everyone wakes fully from their Christmas/New Year slumber. Work is busy, and events and conferences start to occur on a reasonably regular basis.

Last year saw the inauguration of a new conference both in Australia and New Zealand focusing on application life cycle management. I was lucky enough to nab a speaking spot, and apparently did enough to convince the organisers that I was worthy of presenting again this year. The difference this year is that I’ll be heading ‘across the pond’ to Wellington to present at the New Zealand conference as well! I’ll be presenting on a topic starting to get some traction within ALM, known as continuous delivery. What’s continuous delivery? You’ll have to attend my session to find out !

The conference runs on Wednesday the 6th and Thursday the 7th of April. You can get all the details on the other speakers, the swag available and how to get your hands on a ticket over at the conference site.

Hopefully I’ll see you there!

MSDeploy and TFS Deployer

Recently I was asked for my opinion on an article by a friend Peter Gfader. In his article Peter talks about automating the creation of a deployment package using MSDeploy. Along a similar line, I am regularly queried as to my opinion on what I see as the contrasts between TFS Deployer and MSDeploy. I’ve finally decided to distil these thoughts somewhat to provide a consistent expression of my opinion.

The approach taken by MSDeploy is very similar to the database deployment model taken by the Visual Studio Database tooling. It uses the project state to create a set of configuration and artefact descriptors which it then is able to compare to a target and generate a change script. This includes things like configuration setting transforms, artefact deployment, IIS setting changes etc. There is no need to have two IIS instances to compare, as Peter points out quite well you can simply have the settings packaged into a zip file with a specific format which can then form the basis of a later deployment comparison.

The first difference between the two tools is that TFS Deployer does not attempt to create a deployment package. It assumes a deployable unit is generated as part of the standard build process. This could be by any means appropriate to the tool set that is used by your organisation. As a personal preference, I err towards the use of WiX and the Votive tooling. This allows me to put together an exact specification of the deployment unit I’d like. I have had many clients where this has not been appropriate, and recognise the need for automation in this space and see Peter’s solution as quite useful for this purpose.

TFS Deployer operates primarily as a way of managing two important items that I feel MSDeploy does not yet deal with elegantly. The first is the automation of the deployment action as an operation separate to the build. As MSDeploy is instigated using an argument supplied to the MS Build engine, or as a separate tool it appears to encourage the usage of one of two possible approaches. Either couple the build and deployment actions so that the deployment is completed immediately as part of each build (which I strongly discourage) or specify a build that does no more than call MSDeploy with the correct arguments to begin the deployment process. While the second approach is agreeable in so far as it separates build and deployment actions, it too has some issues that remain to be addressed.

The primary issue I have with creating a build to initiate a deployment is that to action a successful deployment you first need two pieces of information:

  • What am I deploying
  • Where am I deploying to

There are a couple of ways to deal with this using a separate build template. One is to define a build for each environment which can quickly become annoying, especially without a meaningful grouping mechanism for build definitions. Another is to define a single build in which the parameters specifying the two above items are injected at execution time by the build initiator which I feel does not provide significant value over the manual initiation of MS Build itself due to the human error factors it introduces.

So where does TFS Deployer fit into this picture? The primary benefit of using TFS Deployer is that it takes the above pieces of information and makes them something you only need to think about once. By defining a trigger – in most cases the change in build quality, and a mapping of trigger to a specific target environment TFS Deployer allows you to execute a deployment with a single click, rather than a click and some manual configuration.

The second benefit TFS Deployer provides is that it is built around the use of PowerShell. As the defacto server management technology within Microsoft OSes, the use of PowerShell to script your deployment actions ensures that your deployments are able to be quickly understood by your operational teams as well your development teams. It also – depending on your packaging choices, is able to help limit the amount of change needed on your target servers to support deployment. This is done by using the PowerShell remote execution features to initiate the deployment on the target rather than needing a TFS Deployer instance on the machine itself.

So if these are the features, are the two products mutually exclusive? The answer is no, and nor should they be. Where MSDeploy has strengths you should utilise them, such as described in Peter’s article. However I say the same of TFS Deployer. Why attempt to bend, or wrap the usage of MSDeploy with custom code or build definitions when TFS Deployer provides a simple and effective interface for managing both the trigger and target mappings for your product.

TFS 2010 Unboxing – Melbourne

After successful events in Sydney the TFS 2010 Unboxing comes to Melbourne! Check out the details below…

—-

Since 2005, Team Foundation Server (TFS) has been providing integrated version control, work management and build capabilities. The release of TFS 2010 builds on the foundations formed in the earlier 2005 and 2008 products and focuses on lowering the barrier of entry for teams wanting to get the maximum benefit from TFS with minimal implementation fuss.

If you’ve been thinking about adopting TFS, or are just interested to see what it could bring to your development effort this is a great opportunity to experience what TFS 2010 has to offer. In this session you’ll see both myself and our test partners at KJ Ross walk through everything to do with TFS from installation and getting the basics of version control, build and work item tracking running to what is possible with a fully integrated build, test and lab setup.

By the end of the half-day session you will:

  • be able to install and configure TFS to suit your need
  • understand the benefits that SharePoint and SQL Reporting can bring as optional extras
  • know the role TFS plays in each of the SDLC disciplines and how it can add value

This is definitely an opportunity not to be missed!

The details:

What: TFS Unboxed – A journey through 2010

When: Monday the 2nd of August (morning and afternoon sessions available)

Who: Stephen Godbold (Readify), Dr Mark Pedersen and Dr Tafline Murnane (KJ Ross)

Where: Microsoft, Melbourne – Level 5, 4 Freshwater Place, Southbank

Cost: $75 (includes light refreshments)

Register for the morning session here or the afternoon session here

TFS Unboxing – Links

Thanks to everyone who attended the TFS 2010 Unboxing at Microsoft North Ryde. For those unable to attend – there is potential for the session to be hosted again in other cities around Australia. If you’d like a session in your city, the best way to have it happen is to either leave a comment here or contact me on stephen.godbold at gmail.com with an expression of interest.

Some of the links I promised to provide:

The powershell scripts I mentioned are not yet ready for release. For those interested I would suggest to keep an eye on Jason Stangroome’s blog. He’s got a couple of really useful scripts in the pipeline.

Thanks again to all of those that made it, hopefully I was able to give you a picture of what Team Foundation Server is capable of and how you can get the most out of the product!

Canberra VS ALM – July Meeting

This month see’s VS ALM MVP Anthony Borton visiting sunny Canberra on the 7th to present on one of the great test automation features in the Visual Studio ALM suite.

Agenda

0810 – 0830: VS Breakfast

Share a bite to eat with the Canberra VS ALM group. Bring your Visual Studio and TFS queries and triumphs and share them! Quiz your peers on how they are getting the most out of Visual Studio and TFS, and maybe pick up some ideas you can take to work with you.

0830 – 0930 : Session – Coded UI tests in Action

As developers, it is easy to focus our testing efforts on unit tests and leave the rest to dedicated testers. Learn how this has changed with the new Coded UI Tests in Visual Studio 2010. Now we can create automated UI tests in code and have them run as part of our automated builds. In this session you will learn how to write effective and maintainable Coded UI tests and increase the quality of your application.

About the speaker

Anthony Borton is the lead ALM Consultant/Trainer for Enhance ALM Pty Ltd, an Australian consulting and training company specializing in Application Lifecycle Management and Microsoft Visual Studio. He has been working with Visual Studio Team System full-time since 2005. Anthony is a Microsoft MVP (Visual Studio ALM) and Australia’s first Professional Scrum Developer Trainer. He is also the president of the QLD ALM users group and maintains a blog at http://www.myalmblog.com

Head to http://cvsalmjul10.eventbrite.com/ to register for this event!

TFS Unboxed – A journey through 2010

Since 2005, Team Foundation Server (TFS) has been providing integrated version control, work management and build capabilities. The release of TFS 2010 builds on the foundations formed in the earlier 2005 and 2008 products and focuses on lowering the barrier of entry for teams wanting to get the maximum benefit from TFS with minimal implementation fuss.

If you’ve been thinking about adopting TFS, or are just interested to see what it could bring to your development effort this is a great opportunity to experience what TFS 2010 has to offer. In this session you’ll see both myself and our test partners at KJ Ross walk through everything to do with TFS from installation and getting the basics of version control, build and work item tracking running to what is possible with a fully integrated build, test and lab setup.

By the end of the half-day session you will:

  • be able to install and configure TFS to suit your need
  • understand the benefits that SharePoint and SQL Reporting can bring as optional extras
  • know the role TFS plays in each of the SDLC disciplines and how it can add value

This is definitely an opportunity not to be missed!

The details:

What: TFS Unboxed – A journey through 2010

When: Friday the 25th of June (morning and afternoon sessions available)

Who: Stephen Godbold (Readify), Dr Mark Pedersen and Dr Tafline Murnane (KJ Ross)

Where: Microsoft, 1 Epping Rd, North Ryde, Sydney Australia

Cost: $75 (includes light refreshments)

Register for the morning session here or the afternoon session here