C# Style Guidelines
===================

These guidelines should be followed when writing code in Banshee. For the most
part they are similar to the Mono syntax guidelines [1]. All public API must
adhere to the .NET Framework Design Guidelines. [2]

Patches and additions to the code base will be checked for adherence to these
guidelines. If code is in violation, you will be asked to reformat it.

  1. Private variable/field names should be written like:

      lower_case_with_under_scores

  2. Property, event, and method names should be written like:

      UpperCaseStartingLetter

  3. No spaces before method/conditional parenthesis, braces:

      if(condition) {
         CallSomeFunction(args);
      }

  4. One space before a brace on the same line as a conditional or property:

      while(condition) {
         ...
      }

  5. Namespace, Class, Method braces on separate lines:

      namespace Foo
      {
          public class Bar
          {
              private void Method()
              {
                  if(condition) {
                      ..
                  }
              }
          }
      }

  6. The exception to rule 5 is for Properties. The brace in the same line:

      public string Something {
          get { return "yay"; }
      }

  7. If the property accessor block (get/set) is more than one line, use the
     alternative syntax:
     
     public string Something {
        set {
            DoSomething();
            something = value;
        }
    }

   8. Use 4 space characters for indention, NOT tabs
   
   9. Try to observe a 120 character wrap margin. If your lines are over 120
      characters, break and indent them logically.


[1] http://www.mono-project.com/Coding_Guidelines
[2] Highly recommended reading: http://www.amazon.com/gp/product/0321246756/
