I would recommend these resources:
Contact document and this blog post by John Doyle.
I am sure others can add to this but this is a very generic question and it often depends on the problem you are trying to solve.
Please Login to Report Topic
Please Login to Share Feed