Changes between Initial Version and Version 1 of Development/GettingStarted


Ignore:
Timestamp:
03/01/09 10:48:49 (11 years ago)
Author:
ibboard
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Development/GettingStarted

    v1 v1  
     1[[PageOutline(2-5)]]
     2= Getting Started =
     3
     4The following instructions should help you get started with the WarFoundry source code so that you can explore it and start working with it.
     5
     6== Required Tools ==
     7
     8There 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 [http://www.go-mono.com/mono-downloads/download.html Mono] (which may already be installed on some Linux distros) or Microsoft's [http://msdn.microsoft.com/netframework/aa731542.aspx .Net framework] (which may already be installed on some versions of Windows).
     9
     10=== Development Environment ===
     11
     12All of the WarFoundry projects use Visual Studio 2005 project files, as 2005 includes useful features like [http://en.wikipedia.org/wiki/Generic_programming#Generic_programming_in_C.23_and_.NET Generics] without the [http://en.wikipedia.org/wiki/.Net_Framework#Criticism huge framework download] and lack of open-source support.
     13
     14For System.Windows.Forms development (Windows-based applications), using Visual Studio 2005 is recommended. Microsoft make versions of [http://www.microsoft.com/express/2005/ Visual Studio 2005 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.
     15
     16For GTK# and other non-System.Windows.Forms development, using [http://monodevelop.com/ MonoDevelop] is recommended. MonoDevelop isn't as powerful as Eclipse for Java development, but it does have a plugin architecture (including SVN support) and a GTK GUI editor.
     17
     18Other development environments may also be suitable, depending on taste, (e.g. Eclipse with a Mono/.Net plugin, or SharpDevelop) but Visual Studio Express 2005 and MonoDevelop have been adequate and useful for all current development.
     19
     20=== SVN Client ===
     21
     22The 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).
     23
     24==== SVN in MonoDevelop ====
     25
     26If you are using MonoDevelop then integrated subversion is already built-in through the supplied plugins. If the plugin is disabled then check that the Subversion client executable is installed on your computer. MonoDevelop will write a warning to the console if the plugin is enabled but it can't find the subversion executable, but not warn you through the GUI. Once MonoDevelop can see the subversion executable you should have a "Checkout" menu item under the "File" menu.
     27
     28==== SVN in Visual Studio ====
     29
     30There are several SVN plugins for Visual Studio, but all of the ones I've seen have a price tag and aren't compatible with Visual Studio Express editions. This is part of Microsoft's general tactic of getting people used to core functionality and then get the money when they want advanced functionality. The easiest solution (if you don't already have a full copy of Visual Studio) is to use an external SVN client.
     31
     32==== External SVN clients ====
     33
     34If your development environment doesn't include SVN integration then the easiest alternative is an external client. There are [http://en.wikipedia.org/wiki/Comparison_of_Subversion_clients#See_also lots of clients] for all OSes. The most popular client for Windows seems to be TortoiseSVN, while most Linux developers tend to have development environments that include source control as a core feature.
     35
     36==== SVN from the command-line ====
     37
     38The brave can always use SVN from the command-line. While it does have its uses, it's not generally advised for long-term use. Command-line arguments and usage instructions can be found in the [http://svnbook.red-bean.com/ SVN book at Red-bean.com].
     39
     40== Getting the source code ==
     41
     42Exact details of how to get the source code will vary by client, but the following are the required projects to work with WarFoundry.
     43
     44Some 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.
     45
     46=== WarFoundry Core ===
     47
     48 * [svn://svn.ibboard.co.uk/IBBoard/IBBoard IBBoard] - core IBBoard utils
     49 * [svn://svn.ibboard.co.uk/WarFoundry/IBBoard.WarFoundry.API IBBoard.WarFoundry.API] - core API for WarFoundry
     50
     51=== WarFoundry GTK# ===
     52
     53 * [svn://svn.ibboard.co.uk/IBBoard/IBBoard.Log4Net IBBoard.Log4Net] - Logging support (for use with the LogNotifier in the IBBoard core utils)
     54 * [svn://svn.ibboard.co.uk/WarFoundry/IBBoard.WarFoundry.GUI.GTK IBBoard.WarFoundry.GUI.GTK] - GTK# interface for WarFoundry
     55
     56Also, while the Rollcall plugin is still hard-coded in to the GTK# app for testing the following are also needed:
     57 * [svn://svn.ibboard.co.uk/IBBoard/IBBoard.Ini IBBoard.Ini] - INI file parsing for Rollcall
     58 * [svn://svn.ibboard.co.uk/WarFoundry/IBBoard.WarFoundry.Plugin.Rollcall IBBoard.WarFoundry.Plugin.Rollcall] - Rollcall ADF file support
     59
     60=== WarFoundry SWF ===
     61
     62 * [svn://svn.ibboard.co.uk/IBBoard/IBBoard.Log4Net IBBoard.Log4Net] - Logging support (for use with the LogNotifier in the IBBoard core utils)
     63 * [svn://svn.ibboard.co.uk/WarFoundry/IBBoard.WarFoundry.GUI.GTK IBBoard.WarFoundry.GUI.WinForms] - System.Windows.Forms interface for WarFoundry