Version 17 (modified by 8 years ago) (diff) | ,
---|
Getting Started
The following instructions should help you get started with the WarFoundry source code so that you can explore it and start working with it.
Required Tools
There are only really two main tools needed for developing WarFoundry, an SVN client and a development environment. As WarFoundry is built using C# 2.0 you'll also need a .Net 2.0 compatible framework such as Mono (which may already be installed on some Linux distros) or Microsoft's .Net framework (which may already be installed on some versions of Windows). This is because it includes useful features like Generics without the huge framework download.
Development Environment
All of the WarFoundry projects use Visual Studio 2010 project files. In theory this could be compatible with other versions of Visual Studio, as MonoDevelop can handle all formats, but Microsoft force an update when using the new tools.
For System.Windows.Forms development (Windows-based applications), using Visual Studio 2010 is recommended. Microsoft make versions of Visual Studio 2010 Express available for free. Although they're not as feature complete as the full version and don't (officially) support plugins, they seem more than adequate for the current WarFoundry work.
For GTK# and other non-System.Windows.Forms development, using MonoDevelop is recommended. MonoDevelop is constantly improving and has more features than Visual Studio 2010 Express, but it does have a plugin architecture (including SVN and Git support) and a GTK GUI editor.
Other development environments may also be suitable, depending on taste, (e.g. Eclipse with a Mono/.Net plugin, or SharpDevelop) but Visual Studio Express 2010 and MonoDevelop have been adequate and useful for all current development.
SVN Client
The easiest way to work with SVN is when source control is integrated in to your development environment. Unfortunately, Subversion plugins for Visual Studio normally come with a price tag and aren't compatible with Visual Studio Express (which leaves you with an even bigger price tag on Visual Studio). If you don't know how to use Subversion in your chosen IDE or on your chosen desktop then the Subversion clients page has more information.
Getting the source code
Exact details of how to get the source code will vary by client, but the following are the required projects to work with WarFoundry. You will need to check out all of the required projects for a given GUI from Subversion and add them to a solution to be able to compile and use WarFoundry.
Some projects also have companion "Test" projects. These can be identified by having the same project name, except that ".Tests" is appended. It is recommended that you also download the tests and run them regularly as you make changes to make sure that nothing is broken. Everything should also have unit tests added as/before it is written, although up until now this hasn't been the case.
Note: Each of the following is a link to the 'trunk' directory, which is the current development version. If you want to check out a branch (a separate fork of development for a different feature) or a tag (a marker that shows a specific version) then you will need to replace 'trunk' with the appropriate path. There are currently no branches or tags.
WarFoundry API
Project name | Subversion location | Description |
IBBoard | svn://svn.ibboard.co.uk/ibboard/IBBoard/trunk | Core IBBoard utils |
IBBoard.Tests | svn://svn.ibboard.co.uk/ibboard/IBBoard.Tests/trunk | Tests for core IBBoard utils (optional - only necessary if you modify the utils library) |
IBBoard.NUnit | svn://svn.ibboard.co.uk/ibboard/IBBoard.NUnit/trunk | Extra NUnit methods (optional - currently only required if you get IBBoard.Tests) |
IBBoard.WarFoundry.API | svn://svn.ibboard.co.uk/warfoundry/IBBoard.WarFoundry.API/trunk | Core API for WarFoundry |
IBBoard.WarFoundry.API.Tests | svn://svn.ibboard.co.uk/warfoundry/IBBoard.WarFoundry.API.Tests/trunk | Tests for the core WarFoundry API |
SharpZipLib | svn://svn.ibboard.co.uk/warfoundry/SharpZipLib/trunk | Custom build of SharpZipLib because of bug #311 |
WarFoundry GTK#
WarFoundry API projects, plus:
Project name | Subversion location | Description |
IBBoard.GtkSharp | svn://svn.ibboard.co.uk/ibboard/IBBoard.GtkSharp/trunk | Custom GTK# controls and helper methods |
IBBoard.WarFoundry.GUI.GTK | svn://svn.ibboard.co.uk/warfoundry/IBBoard.WarFoundry.GUI.GTK/trunk | GTK# interface for WarFoundry |
WarFoundry Qt# (Qyoto)
WarFoundry API projects, plus:
Project name | Subversion location | Description |
IBBoard.WarFoundry.GUI.QtSharp | svn://svn.ibboard.co.uk/warfoundry/IBBoard.WarFoundry.GUI.QtSharp/trunk | Qt#/Qyoto interface for WarFoundry |
WarFoundry WinForms
WarFoundry API projects, plus:
Project name | Subversion location | Description |
IBBoard.Windows.Forms | svn://svn.ibboard.co.uk/ibboard/IBBoard.Windows.Forms/trunk | Custom System.Windows.Forms controls |
IBBoard.WarFoundry.GUI.WinForms | svn://svn.ibboard.co.uk/warfoundry/IBBoard.WarFoundry.GUI.WinForms/trunk | System.Windows.Forms interface for WarFoundry |
Contributing
While the WarFoundry code is freely available through the Subversion repositories listed above, committing updates requires additional permissions and a user account. Details on how to join up to help out are in the Get Involved section.