Monday, October 5, 2009

MCTS Exam 70-561 Prep

I’m reading the Self-Paced Training Kit for Microsoft .NET Framework 3.5 – ADO.NET Application Development…

…and loving it.

At first, I wasn’t because the first four chapters were boring, but now I’m reading about interesting stuff:

  1. Creating Database Connections
  2. Selecting and Querying Data
  3. DataSets (including Strongly-Typed DataSets)
  4. Updating Data
  5. Synchronizing Data (including the Microsoft Sync Framework)
  6. Introducing LINQ
  7. XML
  8. LINQ to SQL
  9. Using the Entity Framework
  10. ADO.NET Data Services

Sunday, September 27, 2009

Tech Ed 2009 Thank you!

Dear James,

Thank you for attending TechEd 2009!

We really appreciate the effort and commitment that TechEd takes from all of our attendees and thank you for your support during the particularly tough current economic climate.

This year we hosted 128 sessions over 11 tracks and 3 virtual tracks and trust this provided you with confidence in the Microsoft roadmap, and visibility on how Microsoft technology can help to move your business and career forward. 

To maximise your TechEd experience, we are pleased to announce that as a delegate of the event, you will have complimentary access to premium content on TechEd Online. This offers hundreds of hours of breakout sessions from TechEd events around the world and is a great way to check out your favourite session or catch up on any of the sessions you may have missed.  We will notify you by email as soon as your access details have been set up.

Also don’t forget to tell us what you would like to see at future TechEd New Zealand events. Your feedback is critical for our future success so please go to to complete the evaluation form.  To show our appreciation you will automatically go into the draw to win a HP ProBook 5310. Deadline Wednesday 30 September.

Thanks again for supporting TechEd 2009 and we look forward to seeing you next year!

Kind regards,

Scott Wylie

Director Developer & Platform Strategy

Microsoft NZ Ltd

Training Report

Kiaora Jacinta,

As requested, here is a detailed report back on the value of the training that I received this year at Tech Ed.

Tech Ed is the premiere Microsoft conference in New Zealand.  It runs from Monday to Wednesday, delivering more than seven streams (DEV, DB, Security, Vendor Case Studies, Architecture, Office System, Azure) of simultaneous training from which to choose.  In addition, Code Camp is an optional, extra training day, organised by the New Zealand User Group Community that runs on the Sunday preceding Tech Ed.

Code Camp topics that I attended were:

  • What’s Happening in .NET Languages – An overview of the changes to be expected in Visual Studio 2010.  VS is the development tool that I use all day every day.  Ivan Towlson demonstrated the new Functional Language F#, as well as how the existing statically defined languages (C#, Visual Basic) can interact with them.
  • Behaviour Driven Development – This is an evolution of the formerly named Test Driven Development methodology of application development.  Owen Evans was able to clearly demonstrate the conceptual brilliance of the “Given… When… Then…” paradigm.
  • C#4.0 – Ivan again showed how VS2010 will enable developers to use new dynamic features of our existing static languages in order to “break the mould” of our strongly-typed declarative world.

In addition to attending Code Camp, I also contributed two presentations:

  • Lightening Talk – Data Dude: MS VSTS for Database Professionals (GDR), in which I explained the usefulness of GDR as an optional add-in to the Development Edition of Visual Studio.
  • Becoming Certified – In which I explained the benefits, costs & process of attaining Microsoft Credentials.

Tech Ed topics on Day 1 that I attended were:

  • Keynote presentation by Hon. Steven Joyce, Minister of IT&C, in which he discussed fibre to the home.
  • DAT201 Overview of SQL Server 2008 R2 – Mark Souza from Microsoft NZ explained how to enable managed self-service Business Intelligence, via the new Excel add-on “Gemini”.
  • DAT202 Microsoft Business Intelligence Overview – Myles Matheson from Microsoft US further elucidated on the BI Reporting Maturity Model.
  • MVP – I had a very illuminated private discussion with Rose Stamell from Microsoft Australia about what’s involved in being nominated as a Microsoft Most Valuable Professional.
  • LABS – These were available at anytime as a “filler” for in-depth hands-on training with the latest products.  At this time, I did an ADO.NET lab because DEV307 was postponed.
  • DEV302 What’s Coming in .NET 4.0 – In which John-Daniel Trask from Mindscape demoed Visual Basic 10 language improvements.
  • Gen-I Dinner – In which I briefly turned up, looked around, recognized nobody, saw it was going to be a booze party and left 10 minutes later.
  • GeekZone Dinner – In which I sat in a Chinese restaurant and conversed with industry peers.  Much more to my liking.  Social networking at its best.

Tech Ed topics on Day 2 that I attended were:

  • DEV204 What’s new in Team Foundation Server 2010 – In which Adam Cogan from demonstrated Team Collections.
  • VOC203 Databases, gods and maps – In which Scott Campbell from Express Couriers Limited demonstrated their use of GIS via SQL Server to deliver on-time, every time.
  • DEV301 Visual Studio 2008 IDE Tips – In which Sara Ford from Microsoft US demonstrated many keyboard shortcuts and little-known option settings.
  • LABS Azure – Nothing else appealed at this time.  Self-study.
  • DAT301 Building applications in SQL Azure – In which Jeremy Boyd from Mindscape demonstrated how to do it, and gave useful advice like avoid chatty calls, code for chunky calls.
  • DAT305 Upgrading from SQL 2000 to 2008 – In which Greg Low (MVP, SQL Server Master) gave us a practical approach, which I’m dying to use on our servers!
  • Tech Fest – In which I turned up for dinner, took one drink, had a few conversations, saw it was going to be a booze party and left early.

Tech Ed topics on Day 3 that I attended were:

  • LABS .NET 4.0 – In which I did self-study because SOA205 was packed.
  • DEV205 A tour of CodePlex – In which Sara Ford talked about Open Source at Microsoft.
  • DEV307 Using Team Foundation Server in a Distributed World – In which Wayne Ewington (Microsoft NZ) demonstrated working offline with TFS.
  • DEV306 TFS for successful project management – In which Adam Cogan demonstrated collecting User Stories via INVEST.
  • DAT303 Managing database with VS – In which Greg Low gave a fuller presentation of my Data Dude Code Camp presentation.

James Hippolite
MCPD (Web Developer), MCITP (Database Developer), MCT
Senior .NET Developer – Workgroup Solutions Team
Applications Development, Maintenance & Support – Shared Capability

Code Camp Auckland 2009 – Feedback from attendees

Over on Kirk Jackson’s Page of Words, he gives an overview of the feedback from attendees.  All very positive.

He also released individual speaker’s performances privately to each one of us speakers.  Here’re mine:

Becoming Certified. James Hippolite:

    • Dissatisfied: 1 (3%)
    • Satisfied: 11 (28%)
    • Satisfied++: 19 (49%)
    • Very satisfied: 8 (21%)

It was difficult to follow the structure in the Becoming Certified talk and the Secure Coding Practices talk.

I guess that’s because I had 1/2 an hour to cram 1 hour’s worth of presentation.

Kirk indicated that responses were on average about 50% of attendance, which implies I had 80 people in my talk.  Not bad, woo hoo!

Saturday, September 19, 2009

Conferences Overview

Last weekend, I attended three conferences over six days. I extensively blogged all sessions I attended. This page summarises them.

Date Time Conference Code Session Presenter Comment
11-Sep-09 19:00 Promise Keepers #1 Out of the Fire Peter Whaanga Gave a powerful testimony of a vision of Hell
11-Sep-09 20:00 Promise Keepers #2 Forged for the Future Nick Tuitasi Be open to change
12-Sep-09 9:00 Promise Keepers #3 Known By Name Ivan Bezzant You don't know who you really are, until the pressure goes on.
12-Sep-09 10:00 Promise Keepers #4 Following Instructions Geoff Wiklund Spend time listening to God, hearing His Truth about who you really are.
12-Sep-09 11:00 Promise Keepers   Leader Breakout Dean Comerford Ministry with men is the single most important thing your church can engage in.
12-Sep-09 14:00 Promise Keepers #5 Welded Together Mike Gorrie Welded together in marriage
12-Sep-09 15:00 Promise Keepers   Guard Your Heart Paul Subritzkey Panel Session: Sexual Purity
12-Sep-09 16:00 Promise Keepers #6 Apprenticeships Tim Sisarich It's our job, to teach our children to serve Him.
12-Sep-09 18:00 Promise Keepers   Altar Call Geoff Wiklund 12 men responded (second night, 50 on the first night)
12-Sep-09 19:00 Promise Keepers   A Transformed Heart Paul Subritzkey Panel Session: The seven promises of a Promise Keeper
12-Sep-09 20:00 Promise Keepers #7 Tomorrow's Man - God's Man David Dishroon Mentoring others
13-Sep-09 10:20 Code Camp NZ #CCNZ01 What's Happening in .NET Languages Ivan Towlson Functional languages can do you head in.
13-Sep-09 11:25 Code Camp NZ #CCNZ02 Behaviour Driven Development Owen Evans Given...when...then... conceptually brilliant
13-Sep-09 12:30 Code Camp NZ #CCNZ03 C# 4.0 Ivan Towlson Dynamic languages
13-Sep-09 12:40 Code Camp NZ #CCNZ05 Lightening Talks James Hippolite Data Dude: MS VSTS for Database Professional (GDR)
13-Sep-09 13:00 Code Camp NZ #CCNZ06 Becoming Certified James Hippolite MCPD for Visual Studio and MCITP for SQL Server
13-Sep-09 14:45 Code Camp NZ #CCNZ08 Silverlight with Prism Sky Sigal Missed: Registering for Tech Ed
13-Sep-09 15:50 Code Camp NZ #CCNZ17 .NET on the iPhone and beyond Grant Archibald Missed: Unpacking new HP Mini
14-Sep-09 9:00 Tech Ed NZ 09   Keynote Hon Steven Joyce Fibre to the home
14-Sep-09 10:40 Tech Ed NZ 09 DAT201 Overview of SQL Server 2008 R2 Mark Souza Enabling managed self-service Business Intelligence
14-Sep-09 12:05 Tech Ed NZ 09 DAT202 MS Business Intelligence Overview Myles Matheson BI Reporting Maturity Model
14-Sep-09 14:15 Tech Ed NZ 09 MVP Who Do You Have To Kill? Rose Stamell Missed: DEV420 was packed. Had impromptu one-on-one with MVP Lead
14-Sep-09 15:50 Tech Ed NZ 09 LAB ADO.NET James Hippolite Missed: DEV307 was postponed. Did self-study instead.
14-Sep-09 17:15 Tech Ed NZ 09 DEV302 What's Coming in .NET 4.0 John-Daniel Trask Including Visual Basic 10 language improvement
15-Sep-09 9:00 Tech Ed NZ 09 DEV204 What's new in TFS 2010 Adam Cogan Including Team Collections
15-Sep-09 10:45 Tech Ed NZ 09 VOC203 Databases, gods and maps Scott Campbell How Express Couriers are delivering us to the future
15-Sep-09 12:10 Tech Ed NZ 09 DEV301 Visual Studio 2008 IDE tips Sara Ford Not only is she CodePlex’s Queen of Open Source, but she’s also a VB-er!
15-Sep-09 14:20 Tech Ed NZ 09 LAB Azure James Hippolite Nothing else appealed; self-study.
15-Sep-09 15:45 Tech Ed NZ 09 DAT301 Building applications in SQL Azure Jeremy Boyd Avoid chatty calls = code for chunky calls
15-Sep-09 17:10 Tech Ed NZ 09 DAT305 Upgrading from SQL 2000 to 2008 Greg Low A practical approach
16-Sep-09 9:00 Tech Ed NZ 09 LAB .NET 4.0 James Hippolite Missed SOA205: Packed. Did self-study instead.
16-Sep-09 10:45 Tech Ed NZ 09 DEV205 A tour of CodePlex Sara Ford Open Source at Microsoft
16-Sep-09 12:10 Tech Ed NZ 09 DEV307 Using TFS in a Distributed World Wayne Ewington Working offline with Team Foundation Server
16-Sep-09 14:20 Tech Ed NZ 09 DEV306 TFS for successful project management Adam Cogan Collecting user stories via INVEST
16-Sep-09 15:45 Tech Ed NZ 09 DAT303 Managing databases with VS Greg Low Visual Studio Team Edition for Database Professionals

Wednesday, September 16, 2009

DAT303 Managing Databases with Visual Studio

Greg Low

  • Wed 9/16 | 15:45-17:00 | New Zealand Room 4
  • Developers have had a rich set of options for managing their projects, source code and dealing with change for a long time. Visual Studio Team Edition for Database Professionals (aka DataDude) now lets database developers streamline their development experience too. In this session, Greg will show how it can be used to manage database schema changes, compare schemas and data, assist with making schema changes and analyse T-SQL code for quality. He will also show how unit testing can be applied to database code and data can be automatically generated for testing.
  • Principal Mentor and MD, SolidQ Australia Pty Ltd
  • Greg Low is an internationally recognized consultant, developer and trainer. Greg is the country lead for Solid Quality, a SQL Server MVP and a Microsoft Regional Director for Australia. Greg also hosts the popular SQL Down Under podcast (, organizes the SQL Down Under Code Camp and co-organizes CodeCampOz. He is a board member of PASS (the Professional Association for SQL Server). He regularly speaks at SQL Server and Microsoft events around the world and is one of a handful of people to have achieved the new Masters level certification on SQL Server 2008.


  • Manage change through Database Projects
  • Testing and Data generation
  • Building and Deployment

Visual Studio Team Edition for Database Professionals

  • Now supplied with Developer Edition
  • aka “DataDude’
  • Released as 2005 edition
  • 2008 edition basically a service pack
  • GDR (general distribution release) provided 2008 support
  • GDR2 release recently
VSTE-DBPro: Project Management
  • Model-based development
  • Team collaboration
    • TFS
    • Workitems and tasks
VSTE-DBPro: Change Management
  • SCCI source code management integration
  • Refactoring
  • Comparison tools
    • Schema
    • Data
VSTE-DBPro: Testing
  • Database Unit testing
  • MSTest integration
  • Automated data generation system
    • Extensible data generator
    • Seed-based generators
  • MSBuild integration
  • Command line tools
  • Allows for multiple inconsistent schema

Project System

  • Offline development
  • Reverse-engineer existing often easiest
  • Consists of series of .sql files
  • Projects can be included in other solutions
  • Project relates to a database

Managed Change

  • Changes are offline within project
  • Can compare project to database


  • Allows for cascading changes within DB
  • Also updates dependent project objects
    • Schema objects
    • Data generation plans
    • Unit tests
    • SQL scripts
  • Allows for atomic changes
  • Understands intent

GDR (RC and R2) Updates

  • Require VS2008SP1
  • Supports SQL Server 2008
  • RC must be uninstalled before R2
  • New architecture (not just an update)
    • Schema provider model (allows extensibility)
    • Build and Deploy separation
  • Integration of power tool features
    • Static code analysis
    • Dependency viewer

TFS Integration

  • Team Foundation Server for source code control
  • Team Projects

Unit Testing

  • Still uncommon in database development
  • Helps avoid painful rollbacks
Data Generation
  • Testing with meaningful data
  • Data generation plan
  • Customised data generators
    • Implement Generator

Session Summary

  • Outstanding new capability
  • GDR R2 re;ease much more flexible
  • Now extensible provider model
  • Should be more extensible in VS23010
  • Get control of your database projects
Online Resources
  • Gert Draper’s blog
  • Etc

Tuesday, September 15, 2009

DEV306 Team Foundation Server for Successful Project Management

Adam Cogan

  • Wed 9/16 | 14:20-15:35 | Ballroom 1
  • Visual Studio Team System (VSTS) and Team Foundation Server (TFS) are the best tools for Microsoft developers to have successful projects and smooth software development processes. In this talk the Chief Architect from SSW will show you:
    • The right way to use work items
    • The way to complete a work items and how to send a "done"
    • How to use templates for your standard work items
    • The extra work items that developers always forget
    • How TFS handles repetitive tasks
    • What is good and bad about Excel and Project integration
    • What you can use from the built in reporting as well as the Project portals available on SharePoint
    • The important reports to give to your Project Manager
    • The metrics to bother with
  • Chief Architect, SSW
  • Adam Cogan is the Chief Architect at SSW, a Microsoft Certified Gold Partner specializing in custom .NET, SharePoint and Business Intelligence solutions. At SSW, Adam is also a Team System MVP and Microsoft Regional Director.

Correct Process

  • Don’t give away freebie consulting/analysis of work: charge for scoping.
  • Confirm the Ball Park
  • Present the $ with the Plan: not a round figure. 
  • Ask for a signature

Kicking off the project

  • Choose your methodology (Microsoft, CMMI)
  • Problems with Work Items in 2008 – extraneous fields in the templates. 
  • Solution – roll your own
  • Good news – VS2010 Agile template is better
  • Rules to Better Project Management with TFS (Creating and Managing Release Plans)
Conchango Scrum
  • Developed in collaboration with Ken Schwaber (co-founder of Scrum)
  • Scrum Task Board
  • Lots of reports
    • Code churn
    • Velocity
    • Burndown
  • Plasma slide show

Talk to the Customer – Requirements workshopping

  • Collecting User Stories - INVEST
    • Independent: each feature is unique
    • Negotiable: technology independent
    • Valuable
    • Estimable
    • Small (<80 hours)
    • Testable (if you can’t test it, you haven’t defined it sufficiently)
  • As A <some role> I want <some goal> so that <some reason>
  • Using Excel to manage work items
  • Team Tab, New List
  • Decomposing work items into Tasks

Using Team Foundation Server in a Distributed World

Working Offline With VSTS

  • Wayne Ewington
  • Microsoft
  • DEV307

Going Offline

  • When TFS is not available
  • Remove the read-only attributes
  • Work with the files
  • Renaming Files!! Treated as a Delete and Add pair

TIP: Check-out All Artefacts

  • Check-out all artefacts
  • Go offline
  • “Do stuff”
  • Go back online
  • Check-in all artefacts: TFS will determine which artefacts have changed
  • Won’t work in a Team situation

TIP: Stopping TFS Auto-Connect

  • Registry Hack: HKCU\Software\Microsoft\VisualStudio\9.0\TeamFoundation\AutoLoadServer(Dword)

TFS Proxy Server

  • Architecture
    • Uploads go to TFS
    • Downloads come from proxy(ies)
  • Configuring
  • Tips & Tricks

TFS Over the Internet

  • VPN
    • All features of TFS work
    • Easiest to implement: no additional changes required
    • Requires infrastructure support
  • Publish using a Reverse Proxy
    • Reverse Proxy will Authenticate
    • Remote Users don’t require Domain access
    • Requires ISA Server 2006, TFS SP1
    • TFS is “chatty”
    • Disadvantages: can’t get Publishing Test Results, Accessing Build Reports
  • Extranet
    • Clear segregation
    • Internal Users must connect “remotely”
    • TFS is “chatty”
    • Won’t get Test Results and Build Reports

Fully Qualified Domain Names

  • Resolves the issue of getting the Test Results and Build Reports
  • Use on TFS Server, SharePoint (Sites and Central Admin), Reporting Services
  • TFSAdminUtil.exe Configure Connections
  • TFS Server needs to authenticate to itself
How? By Enabling
  • Basic Authentication
  • SSL

TRICK: Enabling Team Build Logs


A tour of CodePlex

Open Source at Microsoft

  • Sara Ford
  • Program Manager, Microsoft
  • Sara Ford is the program manager for CodePlex, Microsoft’s open source project hosting site. Prior to CodePlex, she worked on the Visual Studio team for six years, where she ran the Visual Studio Tip of the Day on her blog. Her life-long goal is to become a 97 year-old weightlifter, so she can be featured on the local news.
  • DEV 205


If you're a software developer interested in running an open source project or just looking around for a particular tool to download, come check out the latest from CodePlex. CodePlex is Microsoft's open source project hosting site. Launched in May 2006, CodePlex host thousands of open source projects. CodePlex users can start open source projects with support for source control, bug tracking, wiki pages, downloads, forums, and project statistics. Additionally, CodePlex supports the widest range of source control clients. This talk explores the top downloaded projects, outlines the CodePlex feature set, and explains how we build the CodePlex software.


  • CodePlex & Customers
  • Open Source
    • How to consume
    • How to contribute
  • Under the Hood
  • Agile Development

CodePlex is About Customers

  • Voting for CodePlex features
  • Survey Comments
  • Tweets (#codeplex?)
  • Blog feedback
  • 1-1 engagement in conferences

Open Source

  • Models
    • Business
    • Licensing
    • Development
  • Open Source Initiative (OSI)
    • Open Source Definition
  • Basics
    • Source code provided
    • View, modify and redistribute code

Demo Projects

  • AJAX Control Toolbox
  • TweetMyPC
  • TweetCraft
  • Rawr
  • Image Resizer PowerToy Clone for Windows

Contribution Software to CodePlex

  • Features for hosting projects
  • Features for contributing updates

Agile Development

  • Iteration 1 (Feature)
  • Iteration 2 (Feature)
  • Iteration 3 (Stabilise)
  • Test Pass
  • Deploy

Monday, September 14, 2009

Upgrading from SQL 2000 to SQL 2008

A Practical Approach

  • Greg Low
  • Managing Director and Mentor – SolidQ Australia
  • DAT 305
Expectations – Goals
  • 2008 Upgrade Options
  • Methodology tools and planning
  • Technical and non-technical considerations
  • Common issues, myths and mistakes
What have you already got?
  • Hardware and infrastructure review
  • Application and database domain
  • Features and editions
Upgrade Advisor
  • Analyses: Databases, Trace Files, Scripts
  • Reports on: Blocking issues, pre-upgrade issues; post-upgrade issues
  • Suggests how to fix/work around
Reporting Services
  • In-place upgrade supported for 2005 and 2000 p2
  • No upgrade support for
    • Report Server that users a remote 2000 database
    • 2000 Report Server Web Service – endpoint de-supported
    • Earlier versions of WMI provider
    • Anonymous authentication
Notification Services
  • Basically gone
  • SQL Server 2008 Feature Pack migrated
Data Transformation Services
  • Simple in-place upgrade for 2000 and 2005
  • DTS packages are retained – Need to run DTS Package Migration Wizard
  • No 64-bit design/run time for DTS packages
  • No 32-bit design/run time support for DTS packages on Itanium based systems
  • Consider 64 bit driver issues


  • Upgrade Motivations
  • Stakeholder Considerations
  • Prepare the Environment
  • Locate Dependencies
  • Third-party dependencies
  • Verification Tests
  • Mismatched SIDs (Demo)

The Upgrade

  • Prepare
  • Execute
  • Post-Upgrade tasks

Some common upgrade issues

  • *=
  • System table access
  • Service master key not backed up
  • Forgetting to re-enable DAC
  • Poorer performance after upgrade
  • Changes to log shipping from 2000
  • tempdb sizing
  • Avoid staying in order dbcompat levels!


  • Upgrades are conceptually simple
  • Easy to make human errors
  • No one right way
  • Application Compatibility Testing highly recommended
  • A tested rollback plan is critical
  • Lots of resources
  • Feedback to Microsoft via Connect will drive improvements in product and upgrade process/tools

Building applications on SQL Azure

SQL Azure – Database as a Service

  • Jeremy Boyd
  • Mindscape
  • DAT301

SQL Data Services

  • Previous incarnation
    • Entity-Value style
    • Provided REST based access to resources
  • Matched similar competitor offerings
  • Lacked familiar SQL Server syntax and capabilities
  • Use Azure Table+Blob Storage as replacement
SQL Azure Database
  • Clear feedback
  • I want RDBMS in the cloud
Provisioning Model
  • Account = zero or more servers
  • Server = each server has one or more databases
  • Database = each database has standard SQL objects
Compatibility Goals
  • Version 1: Address the needs of 95% or more standard application functionality (web/enterprise)
  • Support common application patterns
  • Consistent patterns for Azure and SQL
  • Multi-tenancy considerations
Building Applications
  • Can target SQL Azure either remotely from on-premise or from Windows Azure
  • Can promote existing applications or build new applications
  • SQL Azure offering currently favours:
    • Cacheable data sets
    • Blah
    • Blah
On Premise over Azure
  • Data is typically located outside the firewall from where your application runs
  • Be aware of latency (~150ms from NZ to US)
  • Try to pre-fetch as much as possible
Impact on System Design
  • Expect poor latency
  • Avoid chatty calls = code for chunky calls
Windows Azure over SQL Azure
  • Application Code runs within the Azure network that your data resides on
  • Same connection string as with remote
  • Check that your SQL and App instances are on the same location group (e.g. US – Southwest)
  • Note: Caching may still be appropriate
  • SQL Azure and Windows Azure will generally provide a “better together”: experience
  • Azure offers a great data synchronisation point: high availability, scalable
  • Sync Framework “Project Huron” for sync
  • Common Scenarios
    • Mobile device access to corporate data
    • Business to business sharing
    • Secure digital data hub
Database Size
  • Max single db size is currently 10GB
  • Database size calculation
    • Includes: primary replica data, objects and indexes
    • Does NOT include: logs, master database, system tables, server catalogues or additional replicas
  • V does not support auto-partitioning
  • Use Scale Out (Sharding) approach to solve if needed and applicable
Sharding with SQL Azure
  • Several databases are used to store a portion of the application's data
  • Blah
  • Two plans
    • US$9.99 per month for 1GB (Web Edition
    • US$99.99 per month for 10GB (Business Edition)
    • SLA – 99% availability
  • Price is per database
    • Each database gets a server instance
    • No limits on CPU/RAM consumption unlike Azure
    • Automatically replicated, no admin cost
  • Best to think of price in “per day” terms
Release Plan
  • Currently in CTP
  • Commercial availability in November 2009
    • Launches alongside Windows Azure

Visual Studio 2008 IDE Tips & Tricks

  • Sara Ford
  • Program Manager
  • CodePlex

Random Thoughts

Databases, Gods & Maps

How Express Couriers are delivering us to the future

  • Mike Farrell
  • Programme Manager
  • Courier Express Ltd


  • Business View & Background
  • Partners & Partnerships
  • Solutions & Functional Overview
  • Architecture

Current Environment

  • Increasing volumes nationwide
  • Changing customer needs – More for less
  • The competition have invested in technology
  • Numerous, inconsistent operational datasets
  • Legacy systems are now outdated, unsupported and don’t fit future direction
  • New Auckland depot opened in 2009, NZ’s first automated parcel sortation system.

Business Requirements

  • Customer Service remains our No1 priority
  • Deliver parcels within agreed service levels
  • Move to service orientated architecture
  • Automate current operational processes
  • Improve maintenance processes and national datasets
  • Exploit the relationships between location and the corresponding activities
  • 95% of our information has a geographical position

The Vision

  • To exploit location intelligence to differentiate the manner in which Express Couriers Limited delivers time certain services and is recognised as New Zealand’s leading express courier, logistics and distribution business
  • Location Intelligence is the capacity to organise and understand complex business operations and relationship through the use of location …

Strategic Approach

  • Develop capabilities within ECL – support improvement of data content & quality
  • Establish technical and personnel capabilities – exploit location intelligence
  • Create centrally maintained address database – one source of the truth
  • Introduce mapping applications – define, establish and manage critical datasets
  • Use external vendors – support delivery of location intelligence
  • Undertake programme of work – eliminate address data from other information systems
  • Use web based technologies – deliver location intelligence throughout organisation


  • One source of the truth
  • One view across the business
  • Improved operational process
  • Informed business decisions & discussions
  • Centralised maintenance
  • Improved data quality
  • Future proofed infrastructure
  • Eagle Technology Group Ltd – Hardware
  • Microsoft – Software
  • e-Spatial Limited – Location Intelligence (GIS expertise)
Solution = Database + Application
  • Atlas = Carrying the World
    • ESRI ArcGIS Server
    • .NET Web A[pp
    • SOAP Web Services
    • Cached Mapping
    • e-SAM Searching
  • Athena = goddess of wisdom
    • SQL Server 2008
    • SSRS
    • etc
Left Early
  • Matti tried valiantly, and almost managed to save this session from his fellow presenters.

What’s New in Team Foundation Server 2010

A Lap Around

  • Adam Cogan
  • Chief Architect
  • DEV204
  • Sydney User Group Convenor

Pain Points

  • Better Merging
  • Better Branching
  • Better Project
  • Better Scrum
  • Better Build Server
  • (already has) Better bug tracking = work items = linking requirements to code changes
  • (not) Better integration with Project
  1. How do you know where the project is at?
  2. Why don’t developers do unit tests?
    • Estimate
    • Work
    • Work
    • Overtime
    • Run out of time
  3. MS Project is not used
  4. SharePoint


  • TFS Admins
  • PM
  • Developers
  • Testers
TFS Admins
  • No VS 2005 Support – until RTM
  • No test management publishing
  • No office integration
The multi-tenanted Problem
  • You want to share a TFS server with multiple companies
  • You need complete isolation
  • how do you do this in TFS2008?
  • e.g. TFS Now
The solution – Team Collections in TFS2010
  • Team projects can now be grouped into Team Collections
  • Each collection has it’s own database
Database Changes
  • TFS 2008 had 7 database
    • TfsBuild
    • TfsIntegration
    • TfsVersionControl
    • TfsWorkItemTracking
    • TfsWorkItemTrackingAttachments
    • TfsActivityLogging
    • TfsWarehouse
  • Now: A database per collection
    • TFS_DefaultCollection
    • TFS_<Collections>
    • TFS_Warehouse
    • TFS_Configuration
Gated Check-ins
  • Can’t check in code that breaks the build
  • Can’t override the policy!
Visual Branch Management
  • Merging changes back into the trunk is a lot easier (visually drag a branch back into the trunk)
  • Visually see which branches are in sync with the trunk

Sunday, September 13, 2009

What's coming in .NET 4.0

John-Daniel Trask

  • Co-founder
  • Mindscape
  • DEV302

Agenda – Upcoming bits and pieces

  • .NET in review
  • New CLR Goodness
  • Code contracts
  • C#4.0
  • Visual Basic 10
  • Windows Foundation
  • ASP.NET 4.0

Anti-agenda – what we won’t be covering

  • · Parallel Extensions
  • · Entity Framework
  • · F#
  • · VS.NET 2010

.NET CLR Enhancements

  • · Side by side in process support
  • · DLR Inclusion
  • · Crazy ass language support
    • System.Numerics, Tuples
  • · Parallel extensions
  • · Code contracts
  • · New security model

Code Contracts

  • · Manage the expectations of software
  • · System.Diagnostics.Contracts
  • · Both runtime and compile time checking
  • · Specify contracts on interfaces

C# 4.0 – Language improvements

  • · Dynamic typing
  • · Generic variance
  • · Optional parameters
  • · Named arguments
  • · COM Interop Enhancements

Visual Base 10 – Language improvements

  • · Implicit line continuation support
  • · Lambda improvements
    • Multi-line lambdas
    • Lambdas do not require return values
    • Multiple statement lambda expressions
  • · Automatic properties
  • · Collection initializers
  • · Generic variances supporters

Windows Presentation Foundation – Framework improvements

  • · Improved font rendering
  • · Windows 7 multi-touch support
  • · Windows 7 task bar extensibility
  • · Ribbon control
  • · Data grid control
  • · Many other improvements
  • · Slack demoware L

Summary – our time is coming to an end

  • · Many nice improvements
  • · Explore code contracts
  • · Start exploring Beta 2 when released

Who do you have to kill?

…in order to be nominated for an MVP award?

That was the tongue-in-cheek question I posed to a couple of MVP Leads, here at the Microsoft TechEd conference.


I knew that it was awfully bad taste to go seeking this reward for oneself.  That it should be bestowed upon one by others who have recognized your contribution to the community through voluntary efforts.  However, after not being shoulder tapped (after many years of dedicated service, IMHO), I decided to ask the question.


Turns out, I’d been too generalist.  Which is natural for a New Zealander, but works against you in this case.  Because I’m both Web Dev and DB Dev, I’d been straddling the two streams, and contributing to both camps.  However, the MVP programme is structured along Product lines, and you must demonstrate in-depth knowledge, skill and dedication in that one area, in order to qualify.

Hence, I don’t qualify.


Question now is, do I want to bother refocussing on only one area?  Or am I basically happy to continue as I am, knowing that that particular gong is out of reach?

Thoughts and/or opinions?

As a matter of interest, the two areas that strike me as interesting, in which I feel I “had a shot” would be VB and/or SQL BI.

Microsoft Business Intelligence Overview

Myles Matheson

  • Solution Specialist – Application Platform
  • DAT202

Today’s Session

  • Microsoft BI Vision
  • The BI Reporting Maturity Model
  • Integration Services Overview
  • Demo of Integration Services
  • Business User BI Tools
  • Demo of Analysis Services
  • Demo of Re[porting Services and Performance Point
  • BI Road Map

Microsoft Business Intelligence Stack

  • Data Infrastructure & BI Platform – SQL Server 2008
  • Business Collaboration Platform – Office SharePoint Server 2007
  • Business User Experience – Office

BI Demystified - It’s simpler than you might think

  • Your existing systems – Data collected in your systems like CRM, ERP, Finance, etc.
  • Data collection – Data repository
  • Dashboards & Scorecards

Integration Services – Enterprise Data Integration Platform

  • Scalable Platform
  • Comprehensive transformations
  • Extensible Platform

Analysis Services 2008 – Drive Pervasive Insights

  • Design Scalable Solutions
  • Extend Usability
  • Deliver Actionable Insight

Reporting Services 2008 – Deliver Enterprise Reports

  • Author Impactful Reports
  • Manage Enterprise Workload
  • Deliver Personalized Reports

Integrated Predictive Analysis – Predictive KPIs

  • Integration with Microsoft Office PerformancePoint Server 2007
  • Analytics

BI Roadshow for Business Decision Makers

  • November 16-18 in NZ

Kimball University

  • Microsoft Data Warehouse in Depth 20-23 Oct 2009
  • Kimball University courses 2010

Microsoft Data Warehouse in Depth

  • Sydney
  • Hosted by Altis Consulting
  • AU$3700
  • Taught by Joy Mundy & Warren Thornthwait, co-authors of the best selling Microsoft Data Warehouse Toolkit

SQL Server 2008 R2

Code Name Kilimanjaro

  • Mark Souza
  • Director, SQL Server

It starts by building on a strong base: SQL Server 2008

  • Trusted Platform
  • Productivity
  • Business Intelligence

The SQL Server 2008 R2 Journey

  • The origins of Kilimanjaro
  • Self-service Business Intelligence
  • Application & Multi-server Management
  • Scaling for the next generation enterprise
    • High End Scale out Data Warehouses
    • CEP – Complex Event Processing
  • Reaching the summit
What’s in a name...
  • Gemini means twins
  • The corporate Twins: IT Pro/End User
  • A widening gap between these two
Enabling managed self-service BI
  • Empowered and Managed
Excel is key for IW/Users
  • It has to be Excel
  • Use Excel as a catch all tool
  • Easy sharing of insights is critical
Sneak Peak
  • Nicholas Dritsas
  • Head of project Gemini
  • Demo: BI
IT manage the “Spreadmarts”
  • Excel is the IW tool of choice, but for IT: Excel is a problem
  • Why not make Excel part of the solution?
Challenges: People vs. Hardware
  • Number of database apps increases faster than the number of DBA’s
Synthesis Vision
  • The vision of Synthesis is to bring together a set of new and existing technology investments that enable a much more efficient way to develop, deploy and management application development
Introducing a better way
  • Control server sprawl with 1 to many management – setup is fast and easy
  • Manage capacity through policies – save time, optimize resource
  • Single unit of deployment - increase deployment and upgrade efficiency
Deploy Data-tier application
  • Select the DAC package to deploy
  • Update Configuration
  • Deploy!
Application & Multi-server Management
  • Productive database application development and management via DAC
  • Multi-server Management made easier through (lots of stuff)
Data Distribution with Replication
  • Madison Appliance Nodes
  • Kilimanjaro has the 6 volcanic mountain ranges:
    • Gemini – IMBI
    • Synthesis – Multi-Server management integrated with Application management
    • Madison – Massively scale out DW
    • Orinoco – Complex Event Processing
    • SSRS – New report Builder enhancements and integration with SharePoint enhancements
    • >64 Cores
  • SQL Server 2008 R2 – 1st half CY10

Welcome to TechEd

Scott Wiley

  • Head of Developer Stuff
  • This is the Windows 7 TechEd
  • His second to lead
  • New Zealand’s 14th

What does TechEd mean to you?

  • He showed several tweets
  • He gave some housekeeping
  • He introduced first speaker

Honourable Steven Joyce

  • Minister for Communications & Information Technology
  • So-called “CIO for the Government”
Speech Contents
  • “Need to deliver fibre to the home”
  • From a discussion I (James) had last night after Code Camp, the Geek perspective is that both Labour and National have missed the point.  It’s not fibre to the home that matters.  It’s the pipe to the outside world.
  • “Government has partnered with others (such as Microsoft) to improve computer literacy.  Outside of this audience, the average kiwi doesn’t have sufficient skill to make use of ICT”
  • “Be encouraged.  Your country needs you to succeed.”
  • Keep up the fine work.  Enjoy it. 

Chris Liddell

  • Microsoft’s CFO
  • Kiwi!
Innovating for the Future
  • We’re a small country, but we have access to everything that’s good in the world.
  • 2000 out of 4 million, per capita, is the biggest Tech Ed in the world

Comparison to Previous Bears

  • Here he descended to finance-speak
  • I’ll post this now and pick up again later

TechEd NZ 2009 Keynote

Monday 14 September 9AM

Excitement is mounting; I estimate there are 2000 geeks surrounding me.  The light is dimming (except for the hundreds of HP Mini notebooks and others that are open).  A green man drumming on bongo/percussion just walked in from back.  Very avant guard.

Gonna enjoy the show.  Catch you later.

Saturday, September 12, 2009

Tweets from Code Camp

5:47 PM listening to Sky Sigal #ccnz08 #codecampnz
5:47 PM just registered and picked up HP Mini - woo hoo #tenz09
2:46 PM just gave 30min presentation on Certification #ccnz06 #codecampnz
2:46 PM just gave 5min lightening talk about Data Dude #ccnz05 #codecampnz
2:46 PM c#4.0 with Ivan #ccnz03 #codecampnz
2:46 PM RSpec? Cucumber? more buzzwords to Google, @blackmael #ccnz02 #codecampnz
2:46 PM Given...when...then... conceptually brilliant #ccnz02 #codecampnz
11:46 AM started Behaviour Driven Devt with @buildmaster #ccnz02 #codecampnz
11:46 AM score! he did! yes @blackmael there will be slides. i don't see a camera #codecampnz
11:46 AM functional languages can do your head in, i wonder if Ivan will do his dance today? #codecampnz
10:30 AM listening to Ivan Towlson #codecampnz
09:30 AM touchdown! #codecampnz

Tuesday, September 1, 2009

How I Choose To Use Data Dude

Data Dude was the old name for Microsoft Visual Studio Database Professional Edition, now also known as the GDR version. It allows you to add Server and Database projects to your Solution, which help synchronize your various environments. It can be tricky to get your head around. Here’s how I choose to use it.

  1. I make my database modifications using the visual designers as much as possible, because I’m lazy and like it that way. So, I maintain a local copy of my new database, with edits.
  2. I run a schema compare between my local database and the Solution’s database project. This generates all necessary CREATE scripts.
  3. I maintain a Post Deployment script which populates the newly dropped and recreated tables.
  4. I deploy the database updates from the Database project to the DEV (and/or TEST) server.

This has the added benefit of not-dropping and recreating my local database copy, so I don’t keep losing my lovely Database Diagram!

Sunday, August 30, 2009

Code Camp Auckland 2009 - Development | SQL | Security

I’m speaking at Code Camp, presenting on Microsoft Certifications during lunch. Here is the blurb from Kirk Jackson:

Code Camp is less than two weeks away!

If you want to catch some free sessions on the state-of-the-art in .NET development, SQL Server and developer security then sign up for Code Camp Auckland 2009 now.

Code Camps are non-profit, and organised by members of the local developer community. This year the Auckland Code Camp is the day before TechEd (Sunday 13 September), so we've managed to nab a few great speakers on their day off to present to us.

It's the biggest Code Camp ever - over 14 hours of sessions across 3 streams from 10am till 5pm:


  • What's Happening in C# 4.0 and .NET Languages and Why Should You Care?
  • Behaviour Driven Development
  • Domain Specific Languages
  • Silverlight with Prism
  • .NET on the iPhone
  • Becoming Certified
  • Lightning Talks
  • and more!

The latest and greatest in development topics, by the people that know!

SQL Server?

  • SQL Server Virtualisation Best Practices and Recommendations
  • SQL Server Analysis Services and Gemini
  • Query Optimization and Query Tuning
  • Understanding SQL Server Indexing
  • SQL Server Maintenance

Training and guidance from the best SQL trainers in the industry!


  • Secure Development Lifecycle and Threat Modelling workshop
  • Secure Coding Practices

We are lucky to have Michael Howard, author of Writing Secure Code and 24 Deadly Sins of Software Security giving a free workshop for developers, architects and team leads on Threat Modelling and the Secure Development Lifecycle. This will be followed by a session on how to write secure .NET code.

Auckland has never seen such an awesome free event!

Presenters that are offering their time include Greg Low, Nicholas Dritsas and Auckland's Alex Henderson of Architecture Chat fame.

To cover the costs of the event, we have the help of our generous sponsors: Microsoft, Datacom, Intergen, INETA and Xero.

All that's left for you to do is to visit the website for more details, and sign up now!

See you there on Sunday 13 September,

Thursday, August 27, 2009

What on Earth have I been up to?

I’ve been busy:

02-Apr-09WebCast: Intro to ORM for DBAsPASS USA
16-Apr-09What’s New in Microsoft SQL ServicesWellington SQL Users
30-Apr-09Microsoft CertificationsAuckland SQL Users
14-May-09How To: Design and Develop Applications to Ensure QualityVUW
26-May-09How To: Design and Develop Applications to Ensure QualityEllerslie .NET Users
14-Jun-09Microsoft Sync FrameworkNZ .NET Code Camp, Porirua
18-Jun-09Microsoft Sync FrameworkWellington SQL Users
15-Jul-09How To: Design and Develop Applications to Ensure QualityWellington .NET Users
30-Jul-09Microsoft Sync FrameworkAuckland SQL Users & Ellerslie .NET Users
04-Aug-09Creation: Why I BelieveMalakai’s Care Group, Wellington Elim
20-Aug-09How To: Design and Develop Applications to Ensure QualitySoftware Quality NZ
13-Sep-09Microsoft CertificationsNZ .NET Code Camp, Auckland
29-Sep-09Creation: Why I BelieveJeannie’s Care Group, Wellington Elim

I’m available for bookings!

I have moved my Blog!

Old Site:

New Site:

Reason: I can now use Windows Live Writer to write my blogs, instead of manually creating an html page in Microsoft Visual Studio!  Also, the formatting was being automatically changed, thus rendering my final output almost illegible.

Method: I had to move each item manually!  I discovered how to make my past blogs appear as though they were written on their original post date, but I couldn’t make the comments appear that way.  It took me 7 days to do it, because there was 7 pages of blogs to move over; each page was about 20 blogs.

Result: This will be my final entry at GeekZone.  Thanks, Mauricio, for being a great service when I needed you.

Wednesday, July 15, 2009

Delivered my Quality Presentation Again

This time to the Wellington Dot Net Users Group.
See previous post for link to slides.
Another good discussion ensued.
This time I demoed FxCop.  That went well.
I think next time (if there is one) I would also demo the Testing framework.

Feedback on my presentation style: was good, but I need to "own" the subject a bit more.  Instead of being deferential to either the material or the audience, I need to project confidence in the stuff I know.

Sunday, June 14, 2009

The Microsoft Sync Framework

I gave a presentation at the NZ .NET Code Camp at Whitireia Polytech, Porirua on Sunday 14 June 2009.
What Was Covered
  • Overview of the Microsoft Sync Framework
    • Enabled scenarios, vision, approach
    • Demo: Prerequisites and Installing
  • Synchronizing existing endpoints using the Sync Framework
  • Exposing data as FeedSync compatible RSS and ATOM feeds
The Microsoft Sync Framework

Access to your data on any computer, device, or service across disparate applications.



Slide Presentation

Click here to download the slide show presentation for the Microsoft Sync Framework


I was in a story-telling mood yesterday.  I explained that I had just laid my mother to rest, so was interrupted in my preparation.  I sensed sympathy for my situation and no animosity for being under-prepared.

In the course of my preparation, I discovered two quite disparate explanations of the Sync Framework from Microsoft.  The first (which I had studiously prepared) was the offline caching and automatic synchronisation that SQL Server enabled via the Compact Edition.  The second (which was rushed) was the manual coding of new providers and their exception rules via the SDK.

It ended up be a facilitated discussion (is that lazy of me? or is that being dynamic and confident and adaptable?)  Anyway, questions were asked and answered, so feedback was mainly positive.


I was asked “Does the provider enable the use of security credentials and/or encryption?”

From the material I had presented, it appeared that since the protocol could be specified, that therefore if HTTPS was specified, then encryption would be enabled.  Also, as the providers encapsulated callbacks to handle exceptions such as conflict resolution, it is logical to assume that the providers are completely programmable to handle any security (login) requirements.

I promised to look this up.  Here’s the answer:

About the Presenter

James Hippolite remembers being 15 in the 5th form at Nelson College, when he sat up one night coding a bio-rhythms application on his newly acquired second-hand Apple IIe.  At 3am, he ran into his mother’s bedroom to excitedly inform her he’d successfully finished.  Her measured response allowed him to continue to feel good about coding.

James holds Microsoft certification as a Professional Developer (MCPD: Web Developer), IT Professional (MCITP: Database Developer) and Trainer (MCT).

He lives in Wellington and is currently employed full time in a large corporate and loving the regular hours that non-consultants enjoy.

Thursday, June 4, 2009

MSDN Unplugged Roadshow Wellington


Friday, 5 June 2009 @ 9:am - 12:30pm


Microsoft Expression Blend,Microsoft Silverlight,Windows 7




Mike Zeff, Nigel Parker

Event Overview

Session 1: Windows 7 for Developers

Windows 7

Windows 7 contains many new features for developers that allow you to create very rich applications for your users, including the ability to touch-enable your own applications. This session will cover how you can take advantage of new Windows 7 features using .NET 3.5 to build rich client applications and we’ll also take a look at what’s coming in .NET 4.0. Presented by ISV Developer Advisor, Mike Zeff.

Session 2: Taking your Web experience to the next level with Silverlight 3


Internet Explorer 8 has been released and Silverlight 3 was announced recently at MIX ‘09. This session will show you how you can take advantage of Silverlight 3 and Expression Blend 3 to create stunning web applications that can run both inside and outside the browser. We’ll also show you how to take advantage of exciting features in IE8 that make your web site more ‘sticky’ for your users. Presented by Web Developer Advisor, Nigel Parker.


A good introduction to Multi-Touch programming for Windows 7 using Visual Studio 2010 and XAML.

Matti had a good question: "When with IE8 support HTML5?"  The background to that question is that HTML5 is a new standard everybody else is adopting except Microsoft, because it's a Silverlight killer.  No official answer (from Microsoft) exists.

I advertised next weekend's Code Camp.

I won the web-cam draw!  All-in-all a profitable meeting.

Thursday, May 14, 2009

How to: Design and Develop an Application to Ensure its Quality

I gave a presentation last night:


How To: Design and Develop an Application to Ensure its Quality


Victoria University of Wellington, 3rd year “Software Engineering” students (SWEN 301 = COMP 301)


About 30


Thursday 14 May @ 4pm


Ensuring Quality


The first half of my presentation, defining and designing quality, was taken straight out of the book.  Specifically, straight out of the “Analysing Requirements and Defining .NET Solution Architectures” exam.  The second half of my presentation, coding quality, came out of my head and covered training, reviewing and testing.

I could see some heads nodding in agreement as I was speaking, always a good sign.  I could see some heads nodding in weariness, never a good sign.

The question time is always my favourite, because it’s then that I can most accurately gauge whether what I have been saying is “scratching the itch” of the intended audience. 

The first question was along the lines of “great, you’ve told us some more theory, now what about you personally?  What were some of your failures in your career that will help us to avoid pain and embarrassment?”  I won’t record here what I told them in answer, suffice to say it amused them..

The PhD student in the audience had come with slightly different expectations.  I think he was hoping for more concrete examples of measurements and statistics for writing good code.  My rather lame response was that if/when I’m inclined to worry about that kind of thing, then I turn on FxCop to analyse my code for me.

I admitted to being a “lazy coder” in that I enjoy/prefer using objects that I drag onto the page from a toolbox, rather than coding everything by hand.

Definition of terms became important.  I needed to very clearly define “Agile” and “Peer”.  To me, peer programming is not necessarily the Extreme Programming definition of working side-by-side on the same computer.  It just means working as a team on the same project.  To me, Agile just means having many, quick iterations, rather than waterfall software lifecycle methodology.  I hadn’t realised they considered themselves Software Engineers.  To me, there are hardware/network engineers vs. software developers.


Hi James,

Your presentation today was really good. I believe that students love to have you coming from the really world to share your invaluable experience with them. Thank you very much again for your valuable time and your efforts, in particular while you are so busy. I really appreciate it.

Best wishes,
Dr Hui Ma

Thursday, April 16, 2009

Right Sizing Agile Development - MSDN Magazine Webinar

I logged into a web seminar this morning:
Title Right Sizing Agile Development
Audience MSDN Magazine subscribers and/or developers

Steve McConnell is CEO and Chief Software Engineer at Construx Software where he writes books and articles, teaches classes, and oversees Construx’s software development practices. Steve is the author of Software Estimation: Demystifying the Black Art (2006), Code Complete (1993, 2004), Rapid Development (1996), Software Project Survival Guide (1998), and Professional Software Development (2004). His first two books won Software Development magazine's Jolt Excellence award for best programming books of their years.

Steve has worked in the desktop software industry since 1984 and has expertise in rapid development methodologies, project estimation, software construction practices, and third-party contract management. In 1998, readers of Software Development magazine named Steve one of the three most influential people in the software industry along with Bill Gates and Linus Torvalds. Steve was Editor in Chief of IEEE Software magazine from 1998-2002.

Steve is on the Panel of Experts that advises the Software Engineering Body of Knowledge (SWEBOK) project and was Chair of the IEEE Computer Society’s Professional Practices Committee. Steve earned a Bachelor’s degree from Whitman College and a Master’s degree in software engineering from Seattle University. Read more about Steve at


In this talk, Steve McConnell draws on Construx's extensive consulting work to dissect Agile development. McConnell names the Agile practices that have worked well for Construx's clients, describes the failure modes of Agile practices that have failed to live up to the hype, and explains how to right size Agile development for your organization.

Date/Time Friday 17 April @ 7:00AM (NZT)

I liked how he explained the differences between:

  • Extreme Programming:
    lots of iterations of Analysis, Design, Build, Test
    (rinse and repeat several times)
  • Agile Programming:
    few iterations of ADBT
    (staged deployments i.e. versioning)
  • Waterfall Programming:
    no iterations
    (single monolithic)
Further Comments

I missed the first 10 minutes.

Wellington SQL Server User Group Meeting April 2009

I attended a presentation last night:
TitleWearing multiple hats.  Being a DBA and a developer.
Audience Wellington SQL Server User Group
Presenter Dave Dustin – Wolters Kluwer Health

Dave is also convenor of the Auckland SQL Server User Group
Brief Given the size of many New Zealand companies and their respective IT departments, many IT professionals wear multiple hats.  Dave will be giving his view of coming from the development world into the DBA role, and what it means if you need to work in both areas.
Attendees About 20 – a good number for us
Date/Time Thursday 16 April @ 5:30pm
Slides Coming

It was unfortunate that Dave’s security key was not present, so that he was unable to start his laptop and show us his slides.  However, he did remarkably well from just memory.

I was reminded of the usefulness of Test-Driven Development (TDD) aka “test-first” or “fail-first”:

  • Before you code, write a test which fails.
  • Then write the code that makes the test succeed
  • Then you have a permanent regression test case
Further Comments

He was not able to do the second half of his presentation, which was about Visual Studio Team System 2008: Database Pro edition – GDR.

Wednesday, April 15, 2009

What's New in Microsoft SQL Services - My DNUG Presentation

I gave a presentation today:
Title What’s New in Microsoft SQL Services
Brief Come hear how SQL Data Services is evolving to provide rich relational database capabilities and how easy it is to take existing database applications and extend them to the cloud.

Learn how SQL Data Services provides highly available and scalable relational database storage and capabilities while allowing you to leverage existing SQL Server knowledge, protocols, client libraries and tools.

Hear about Microsoft's plans to accelerate delivery of the key relational data capabilities you've asked for through a service endpoint that directly supports the T-SQL language and the Tabular Data Stream (TDS) communications protocol as well as their rich support for breadth and open source development languages, frameworks and client libraries.

James Hippolite started programming on an Apple IIe, at the age of 14. After graduating with a bachelor degree in Information Systems from Victoria University of Wellington in New Zealand, he started working with small systems relational databases, like dBase, Paradox, FoxPro and Microsoft Access.

In 1991 he founded Mana Information Systems, a company for SME who couldn't afford their own IT departments. As the lead developer, he developed small to medium WinForms applications using SQL Server, Visual Basic and latterly ASP.  In 2003 James developed in C# his first .NET web application, an internal metrics reporting tool for his new employer, Telecom New Zealand, utilising SQL Server stored procedures and .NET classes.

After finally being convinced by their absolute ease of use, James finally converted to using ORMs full-time in 2008. He is a Microsoft Certified Trainer.  He has contributed lectures on Microsoft Certification and SQL Server Reporting Services to the INETA and PASS communities.

James lives in Wellington and is currently employed full time in a large corporate and loving the regular hours that non-consultants enjoy.

Audience Wellington Dot Net User Group
Attendees About 20 – I don’t view this negatively.  It was a niche subject.
Date/Time Wednesday 15 April @ 6pm @ Xero
Slides What’s New in Microsoft SQL Services

I had to break the first rule of presentations to developers: I had no demonstrations!  This was because the Invitational CTP won’t be available until next month.  So I couldn’t go online to demo what I was talking about.  However, the 20 slides fitted well within the 1 hour that I had, with plenty of time for questions through-out.  The pizza arrived 5 minutes early, so I had to wrap up the last 4 slides, which I don’t think anybody minded!

The questions were right on the ball, and added to the body of this presentation.  Specifically:

  1. How will the new TDS requests be protected from network sniffing? 
    • It appeared that TDS + SSL is an option, but I need to investigate whether this is a connection string setting, or is implemented in some other way.
  2. What is the site where I can register my interest to be included in the CTP trial?
  3. What is Microsoft’s revenue model?  I.e. what will it cost me to use this thing? 
    • Nobody knows yet, but look to the Google model of transaction throughput + database size as a likely indicator.
  4. Is anybody else offering this?
    • Amazon’s S3
    • Google’s Big Table
Further Comments

The slide show was a download from the Mix 09 web site, which I then modified to the fact that:

  1. I couldn’t demo anything
  2. I put my name instead of Nigel Ellis, Architect, Microsoft SQL Services
  3. I took notes from Nigel’s talk and included them in my slide notes pages. 

This worked really well.  Unfortunately, because the original format was PowerPoint 2007, when I converted it to PowerPoint 2003, most of the text came across as pictures, so I lost some of the nice transitional animation.

I got to use my new MCT credential in my introduction slide for only the second time so far (first time was for the PASS presentation earlier this month).  I also show the Telecom logo and gen-i’s Microsoft Gold Partner cred.  I just think it is polite to acknowledge that Telecom have permitted me time to prepare these presentations.

Mark Carroll from Microsoft turned up half-way through my presentation.  He didn’t make me any more nervous, but I wonder whether he was auditing my presentation for any particular reason.  I hope it was to ascertain whether I would make a good MVP.  We shall see.

Wednesday, April 1, 2009

ORM for DBAs

I gave a presentation today:
Title ORM 101: Object Relational Mappers for Database Administrators
Sub-title Why Should I Be Afraid?
Audience Professional Association of SQL Server (PASS) members
Attendees About 18
Date/Time Wednesday 1 April @ 12pm EST
Thursday 2 April @ 5AM NZT
Slides Introduction to ORM for DBA

Newbie mistake: I ran out of material!  However, I was able to fill in with “Why get Microsoft Certified?” until the questions started flowing.

The questions were right on the ball, and added to the body of this presentation.  Specifically:

  1. What does the generated code look like? 
    • This sparked a reminder that I was meant to show an example of partial classes.  However, I couldn’t get the new method in the partial class to work! 
    • I realise now that the reason why was because I forgot about the NameSpace of the generated code.
  2. How does the dynamic SQL avoid injection attack? 
    • The answer, “via parameters” I was able to show by opening the code.
  3. Can you have different permissions/applications using the same DAL? 
    • I talked about an example solution I’m working on that has multiple Web Applications working from the same Database via the same Data Access Layer.
  4. How does it work?
    • “Duh, I dunno.”  I’m a lazy programmer.  If it works, it just works.
  5. Can you connect to more than one database at a time?
    • Great question.  This sparked an explanation of the SubSonic providers and the way that they put each of their objects into separate folders.
    • This further sparked an explanation of some of SubSonic’s provider options, where:
      • Pluralization can be preserved or eliminated;
      • Prefixes can be preserved or removed.
Further Comments

I was persuaded to put in an April Fool’s Day joke.  I did this by passing on a bogus Microsoft Announcement (attributed to Greg Low) that Azure was replacing SQL Server for the retail market.  Apparently, according to Mike the convenor, I was sufficiently convincing until I put up the “April Fool” slide.  Boy, it’s tough talking to a wall of silence!

I discovered SubSonic 2.1 is LINQ-like, but not actual LINQ.  SubSonic 3.0 is LINQ.

I made the decision not to bore the DBA audience with the creation of the presentation layer, and to concentrate on the flow of data through the layers instead.  However, I had the time, so need to think that through better next time.

The subtitle was decided because DBA’s traditionally hate Dynamic SQL for 2 reasons:

  • SQL Injection Attack – alleviated by use of parameters
  • Store Procedure Superior Compiled Performance – is a myth

The convenor did not read my bio (as I expected) so I was forced to introduce myself.  I able to speak with confidence from my credentialing (as at this time) as:

  • Microsoft Certified Professional Developer: Web Developer
  • Microsoft Certified IT Professional: Database Developer
  • Microsoft Certified Trainer
  • Microsoft Certified Solution Developer .NET

Monday, March 30, 2009

Exam 70-300

Exam Number 070-300
Title Analyzing Requirements and Defining Solution Architectures for Microsoft .NET
Date Tuesday, March 31, 2009
Candidate ID DT1645310
Passing Score 700
Your Score 875
Result Pass
Sectional Results
  1. Envisioning the Solution, 100%
  2. Gathering and Analyzing Business Requirements, 100%
  3. Developing Specifications, 100%
  4. Creating the Conceptual Design, 80%
  5. Creating the Logical Design, 80%
  6. Creating the Physical Design, 60%
  7. Creating Standards and Processes, 100%

Sunday, March 29, 2009

Team Focus

MSF Team Envisioning Planning Developing Stabilizing Deploying
Product Management Overall goals; identify customer needs, requirements; vision/scope document Conceptual design; business requirements analysis; communications lan Customer expectations Communications plan execution; launch planning Customer feedback, assessment, sign-off
Programme Management Design goals Solution concept; project structure Conceptual and logical design; functional specification; master project plan and master project schedule, budget Functional specification management; project tracking; updating plans Project tracking; bug triage Solution/scope comparison; stabilization management
Development Prototypes; development and technology options; feasibility analysis Technology evaluation; logical and physical design; development plan/schedule; development estimates Code development; infrastructure development; configuration documentation Bug resolution; code optimization Problem resolution; escalation support
User Experience User performance needs and implications Usage scenarios/use cases, user requirements, localization/accessibility requirements; user documentation/training plan/schedule for usability testing, user documentation, training Training; updated training plan; usability testing; graphic design Stabilization of user performance materials; training materials Training; training schedule management Testing Performance testing; problem
Testing Testing strategies; testing acceptance criteria; implications Design evaluation; testing requirements; test plan/schedule Functional testing; issues identification; documentation testing; updated test plan Testing; bug reporting and status; configuration testing. Peformance testing; problem identification, definition, resolution, and reporting
Release Management Deployment implications; operations management and supportability; operational acceptance criteria Design evaluation; operations requirements; pilot and deployment plan/schedule Rollout checklists, updated rollout and pilot plans; site preparation checklists Pilot setup and support; deployment planning; operations and support training Site deployment management; change approval