Automating processes is critical to the success of any software project.
Because computers can perform redundant tasks faster and more reliably than
people, automation becomes more necessary as the processes become larger and
more complicated. This is one of the main drivers behind Test Driven
Development - constantly rerunning an automated build with Unit Tests. This
article will provide techniques to affectively automate large processes, with
a case study using NAnt.
Figure 1 shows a simple process with four tasks and various flow controls.
This illustrates how a process has two parts: the tasks that do work, and the
scripting that connects those tasks. Automating a process requires automating
both the tasks and the scripts. For ease of explanation we'll first
illustrate scripting techniques with .NET, and then show how to call almost
any task from the command li... (more)
Some things change how you fundamentally program. Automation is one of those
things. It is what will save you from wasting your weekend stepping through
tedious and error-prone processes like regression testing (unit, integration,
performance, functional, etc.), builds, deployment, or even documentation.
Automation is one of those buzzwords we all know our projects should have
(like "performance," "security," "maintainability," etc...), but the question
is how?
Microsoft gave us a huge answer with .NET 2.0's MSBuild - its new build
platform with a process-oriented scripting lang... (more)
Web sites are based on a client-server model. While the client (usually a
browser) can use client-side script such as JavaScript to do simple tweaking
of existing data, getting new data requires a request to the server. The
server does the heavy processing and makes a response back, which redraws the
entire Web page. Most development required these interactions to be atomic so
that each request to the server returns a completely new page.
The Problem with Postbacks
Postbacks, which are perhaps the most common way to communicate between the
client and server, do exactly that. While... (more)
Most developers just focus on getting the initial code done, ignoring the
important questions that ultimately affect the total cost of development.
This article will address how to handle these issues in a way that will
benefit the total cost of development.
Beyond Just HelloWorld
In enterprise development, the ability to program the design doc is taken for
granted. Managers and senior developers expect you to step up to other
problems that focus on the entire life cycle as well as enabling teamwork.
Beyond just getting the design spec for the initial beta, you should ask
yourse... (more)
After years of nearly every tradeshow, magazine, and technologist saying how
wonderful unit tests are, developers know that they're supposed to write unit
tests. But it's not always that easy. For example, while most developers can
write tests for a trivial class library, it's much harder to write tests for
the database.
There is much value in testing the database - it can contain complicated
stored procedures, transactions, and functions that could easily cause
errors. Preventing those errors can be worth the time it takes to write the
test.
This article will explain some of t... (more)