Implementing a Development Environment

Developing software is more than just writing code.

It involves some paperwork like writing software design specifications, writing documentation.
It involves building the binaries from your code and deploying them.
It involves testing your binaries: unittesting, integration testing, etc…
It involves managing your source code, versioning it, etc…

To do this, you need a lot of tools.
These are the tools we use:

Writing code

The most important tool when programming is of course your editor. We are currently using Visual Studio 2003 which we use for developing .Net and C++ applications.

Testing your code

For testing our .Net code we use NUnit and for running tests from our IDE, we installed TestDriven.NET
Testing of the C++ code happens by using a library from BOOST. There is no other means then running the test program completely to execute the tests. It is not possible to execute individual test methods from inside the IDE.

Building your code

When developing, our code is build by using our IDE. For release purposes we use Nant as a build tool

Deploying the binaries

For deployment of the binaries resulting from our code we use Nant

Maintenance of our code

The sourcecontrol system we are currently using is Visual Sourcesafe but we are considering migration to Subversion. To manage it easily we consider using TortoiseSVN.
To view differences between files we currently use the Visual Sourcesafe diff tool, but we also use KDiff3.

Documenting our sourcecode

For .Net we use NDoc, and for C++ we use a slightly customized version of Autoduck. For Autoduck, we made a custom configuration file to output the comments in XML format. We are however also considering replacing Autoduck with Doxygen.

Continuous Integration

This is not yet a part of our environment but are considering to use CruiseControl.NET as an integration server.

What are you using ?

The above tools are of course not the only tools that can be used for developing software. They are mainly the result of the context we work in: we develop for Windows and the .Net Framework.

What tools do you use? What tools do you definitely not use and why (bad experiences, other..) Just post your comments…


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s