WCell:Developer Guide

From WCell Wiki
Jump to: navigation, search

This Guide is supposed to give an overview of the applied coding conventions and all available tools to developers who work with WCell, including developers of Addons.

Every developer should at least peak the articles in the Development section.

Using Visual Studio

Using Visual Studio in an efficient way, is key to developers who work on projects as big as WCell.
Here are a few links that might be able to enable you to find and edit code faster:

Pay special attention to the new Navigate To feature:

VS 2010 “Navigate To” Support

[...]

Visual Studio 2010 now supports a new (Ctrl+comma) keyboard shortcut (meaning 
the control key is held down together with the comma key).  
When you press the (Ctrl+comma) combination, a new VS 2010 “Navigate To” dialog 
will appear that allows you to quickly search for types, files, variables and 
members within your solution – and then open and navigate to them


Developing in general

Every developer should want his/her code to have the following feats:

  • Working
  • Bug-free
  • Easily maintainable
  • Well readable
  • Easily extensible

No developer should except him or herself to be able to write such code at any given time. Developing code takes a lot of time, and so does mastering the art of writing code. Do not expect too much of yourself and try to set realistic goals. If you want to learn coding, join a project with a mature approach to development that is in the range of your interest. Learning with others and using their expertise on how to write or handle code is always of greatest advantage to the apprentice.

See the Coding Guide for further reference.

After being so philosophic, lets see what we can use to make our developer-life a little easier when working with WCell:

The Tools

Here are some tools we have employed so far:

  • Very simple and extensible Command system: Dev:Commands
  • The possibility of easily making any global variable in code configurable by Administrators: Administration
  • The Packet Analyzer to analytically work with Packets sent forth and back between client and server or just make them human-readable
  • Pluggable Addon System
  • Flexible Content System
  • Dynamic Initialization Routine
  • A well-written basis for Unit Tests
  • Autoexec
  • WCell's Version Updater


Here are some feats, provided by 3rd party tools that we are using:

  • NHibernate to easily bind C# Datastructures to a Database


References

  • An overview over WCell Development