What is the difference between .NET Debug and Release mode of an application? What should I use, why? I understand for final deployment Release version is preferable but why not use the Release version from beginning?

Thanx