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:
- 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:
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
- 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
- An overview over WCell Development