Disclaimer The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway. The content of this website represents a personal opinion and is of the nature of general comment only, and neither purports nor intends to be advice. Readers should not act on the basis of any matter in this website or any related parts without considering and if appropriate taking professional advice with due regard to their own particular circumstances. The author expressly disclaims, to the fullest extent permitted by law, all and any liability to any person or entity for the results of any actions taken based on information on this website or any related parts.
In my endeavour to develop a simple to use, feature rich personal finance software, I had to trawl through the internet in search of the most convenient development tools, and here's my story.
After spending more than a couple of days searching, I eventually found what I'm looking for.
First I wanted a database to store the data in. With too many on the list to pick from, which would you have choosen? I have decided to settle on Firebird for a few reasons.
Database: Firebird
Now that we've solved the data issue, let's move on to the next of kin, ORM.
Object-Relational Mapping is a requirement nowadays. The choices here are no lesser than the database arena. I have taken the easy solution approach to picking this one, dOOdads. dOOdads comes with the MyGeneration, code generation tool.
Other ORM options I have looked at include, Hibernate.NET and Gentle.NET. I personally prefer the Gentle.NET approach. Gentle.NET 2.0 is still in an early stage of development to be used with .NET 2.0.
ORM: dOOdads
A couple of main features I liked about the unit testing tools I've chosen, namely, VS.NET integration and perfornmance statistics on tests.
Unit Test: Zanebug
To integrate Zanebug with VS .NET, I had to use TestDriven.NET. One caveat, though, is that you cannot run VS.NET using a regular user account and get the VS.NET integration for Zanebug. You will have run VS.NET with a user account belonging to the Administrators of the machine to allow TestDriven.NET to start an external process.
Next comes the source control requirements. SVN was my choice. I haven't created the tree for MoneyMan yet, but will surely use SVN.
Source Control: Subversion (SVN)
It's a fact, software programs will have problems, unless you spend big $$$$$....$$$$ on development and especially QA. How long it will take to uncover an issue in a piece of software is, based on statistics, a matter of time and user engenuity. Our project is no exception, but I hope to keep bugs under control. To help manage this part of the development process, I picked BugNET for issue management.
Issue Management: Mantis
Check our the post on Installing Mantis.
TO DO: Look for a continuous integration engine. I'm in two minds between CruiseControl.NET and NANT.
What would you have picked?
Remember Me