TODAY, DEVELOPERS ARE continuously being overloaded with new technologies, standards, and tools, which are all being developed to fulfill customer requirements. This puts tough challenges on developers who need to produce modern software, whether it is shrink-wrapped software, enterprise applications, or part of systems integration. Therefore, large vendors like Microsoft put a lot of effort into describing best practices and guidelines for using...