This page lists all the good practices (to be respected at any cost) and bad practices (to be avoided at any cost) that must be observed by any developer contributing to the SocialTFS project.


  1. report issue description in English (not Italian!)
  2. report number and link to the issue tracker item when committing a bug fix, or enhancement, or whatever change made in response to an open issue
  3. respect C# coding style and conventions for vars, files, packages, classes, interfaces, methods and so on (see here for an example)
  4. use png images whenever possible, gif otherwise;
  5. when a bug is encountered, first open an issue in the issue tracker and describe it; then fix it and commit changes
  6. whenever possible, write MSUnit test cases for any new feature added (please, read these Code Contracts wiki page for more)
  7. add the Microsoft Public License (MS-PL) prologue when adding new files to the repository. Grab a copy of the MS-PL license here
  8. Any new build installer uploaded to the Downloads section must respect the following naming conventions:
    • for the client-side component: SocialTFS Client X.Y.exe (e.g. SocialTFS Client 0.7)
    • for the server-side component: SocialTFS Server 0.7.exe (e.g. SocialTFS Server 1.12)
  9. whenever a new stable release is uploaded, its changes must be appropriately described in the changelog file within the repository.


  1. add code comments in Italian! Use English, instead.
  2. commit broken files
  3. commit untested files
  4. commit unformatted files, use TBD style
  5. commit files with warnings (e.g. unused vars or using)
  6. commit files with unorganized imports
  7. commit files with XXX, TODO, and FIXME comment annotations that do not have a related issue open in the issue tracker
  8. commit files with dead code blocks
  9. commit any resource without a description or changelog in the comment field
  10. commit changes without any related MSUnit test cases (if possible), to prove that everything works fine
  11. commit images whose file name contains capital letter (e.g. use agenda_item.png rather than agendaItem.PNG`)

Last edited Oct 25, 2011 at 3:00 PM by fcalefato, version 13