After a long time of working on TooGaming I have learnt a couple of things that really should of come earlier. Unfortunately these critical to a lot of projects. TooGaming is developed with .NET2.0 for the client to get maximum OS compatibility so using the .NET framework gives us a lot of advantages. Some of the modifications that had to be changed after partially developed haven't set us back to much.
Anyway...
1. Application Localization (aka Multi-Lingual Applications)
This is a huge one that you have to decide on at the start how many of us have written
MessageBox.Show("Ahh its all gone wrong");
Well there is a fundamental problem with that, to a person that speaks German that means nothing. So at the start of all projects decide who am I aiming this at, what languages do the speak, an annoying first question to is will I ever support multiple languages if yes put the work in first set up your resource files to support your applications future development and avoid any hard coded strings.
2. Skins and Layout
This is something that doesn't effect all projects but its something worth thinking about. Since our implementation was based on Windows Forms, we needed to be able to handle a more unique interface so that it didn't look like a dry windows application. Therefore we skinned the form to make it look more aesthetically pleasing.
Now making a form and deriving from it may seem obvious but plan it through first, think of what your layout is. We use a fixed layout with ajustable backgrounds so that we can simply change the style but this introduces limitations. We mainly did this for security we didn't want too much playing around with the underlying layout. None the less you need to think through what options you need.
Always remember the stray panel's like error messages critical errors we handle with the standard MessageBox but most of them should be handled with your theme in mind and therefore must look like they are part of your application.
3. The wonders of Components
On TooGaming I went a little crazy with this one but In truth it helps being able to easily drop in a LogIn or a chat wherever you needed with minimal lines works well. This even led to the extent of a component based forms where you create a new form/control and the form will automatically layout it's self around the control this was a convenience for quick pop-ups.
Components give you a lot of flexibility and I've found made code a lot easier to re-read. Don't lock yourself down are you 100% sure you wont need that Contact Support form in the same or a different context in another place?
These are just a few of my ramblings, and although TooGaming is still in development I urge all to check it out. We aim to revolutionise PC gaming.
(Yes I dream big
)