Bowmain Consulting

Part of Project Denning


The most recent release of Wilberforce is 0.9.

The latest version (0.92), not released, is available for download Here. It may be unstable.


Applications are released under GPL or MIT. Source code can be downloaded from Sourceforge (project: Denning).


Wilberforce is a C# financial risk management application. It loads trades from a database, displays them, calculates present value and allows users to create new trades. It currently only supports vanilla calls and puts. It falls far short of a commercial Risk Management product.


Wilberforce has limited testing. Emphasis is on development rather than testing. Help would be appreciated in this area in the near future.


C# proved a superb language for developing this type of application. It is far faster to develop GUIs and application logic in C# than C++. I have seen articles on the web that say that C# development is typically 3 to 4 times faster than C++. I believe it.

The DatGrid Control

Data binding is used to populating controls. It requires very few lines of code. Against this are the architectural limitations (discussed below in "Comment on Data Binding") and the unfinished nature of the DataGrid control. The Datagrid control has some annoying bugs and shortcomings:

The grid control smacks of a product that was released when time ran out for further development, not when it was finished. I can only agree with those that say "if you want to do serious data grid development, use another data grid". The quality of this control can only damage MS already tarnished reputation. Roll on C# 2.0, and lets hope they fix this control up.

To do

Comment on Data Binding

OO and Relational (Data binding) models do not always fit together well. Data Binding works best when there is no polymorhism. Trading applications are full of polymorhism.

A typical trading application architecture for shown below. The relational database is only used to persist server objects. The client, server and calculaton engine pass objects between them, or call remote object interfaces. This type of architecture became very popular during the Internet craze in the mid-1990s; some variant is the only choice if the client is to talk over the internet to the server/calculation engine/database.

Most applications are only used internally within organisations; there is no need to use a 3 tier architecture. It makes more sense to use a 2 tier architecture, which is considerably simpler and cheaper to build. It is equally scalable; it was the standard way of implementing applications before the mid-1990.

Wlbeforce is a 2 tier application; its arhcitecture is shown below. The application tallks directly to the Database (or DataSet, which is just a disconnected database) using "Data Binding".

Further information about Wilberforce can be found here.

Copyright Bowmain Ltd, 2004