Agile Developer Intensive

Releasing software every iteration sounds daunting, but it doesn't have to be. This course is designed to help teams implement a solid process for designing, testing, documenting and releasing software in an automated manner. We will review the use of open-source tools in the context of a real project. We will also discuss some of the additional challenges geospatial developers face. Although this class will focus on .NET technologies, the techniques and core concepts apply to any development language and platform.


Course Topics

Source Control with Subversion

Source control systems are critical to any software development effort. We'll review how to setup a free Subversion repository at Assembla.com, and how to work with it via TortoiseSVN and the AnkhSNV plugin for Visual Studio.

Automated Code Documentation

Ever come back to some code you wrote and wonder what you were thinking? Did you wish you had some documentation? In today's development environments, adding good comments is very simple, and in some cases automated. Putting in structured comments also simplifies the creation of API documentation. We'll review how to leverage Xml comments, GhostDoc, and DocProject to produce professional quality HTML documentation from your source code.

Unit Testing

Going with the idea you need to walk before you can run, we'll start with an introduction to the why, what and how of unit testing. We'll look at how you can leverage unit tests today as part of a test-after development strategy. We will then look at MBUnit, a popular unit testing framework for .NET, as well as the TestDriven.net Visual Studio add-in that streamlines testing. We will also discuss the use of mock objects, and look at how we can use RhinoMocks to simplify things.

Design Patterns

Now that we have a handle on what unit testing is all about, we need to figure out how to write code that's testable. Luckily we can lean on some really smart people like Martin Fowler who have come up with re-usable code patterns that help us build testable software.

Refactoring Tools

Being agile means being open to that wild change of direction your client just asked for. When that happens you'll really appreciate good refactoring tools, but we'll show you how they can help keep your code lean and mean on a daily basis, and allow you to easily implement design patterns. We'll be looking at the tools built into Visual Studio, as well as ReSharper

Automated Builds

It's one thing to know it builds on your box, but that's not what counts! We'll review how to write a build script using MSBuild, the MSBuild Community Tasks, and how to setup a daily build process.

Continuous Integration

Since having the software build automatically every day is good, building on every check-in must be great! This is the core idea behind continuous integration - every time there is a check-in, the code is built, tests are run, and the team is notified if anything breaks. We'll look at setting up a CruiseControl.net server, and how that works for a real project.

tools

Course Info

Length: 3 days

Cost: $1,800 USD (per student)


2008 Dates

September 17-19, 2008

9:00 AM - 5:00 PM

Ft. Collins, CO

Register Now


For Email Marketing you can trust