In software engineering, the most misused word is performance. Although anyone may like a performing application or website, the word itself hides a lot of meanings, each with specific pros and cons.
A professional programmer must have a deep understanding of the various facets of the term performance, as the term assumes different meanings in different scenarios.
A well-performing application should comply with different kinds of performance requirements, which usually change according to the application's architecture and design. It should also focus on the market expectations and (sometimes) what the current development trend is.
As C# programmers, we must add to the generic knowledge about performance-oriented programming. All these skills let us achieve the best results from coding. Choosing the best architecture solution or design pattern will give a boost to long- or short-term performance results (explained later in this chapter). However, implementing these architectures with the wrong design, will nullify expectations of speed or quality we planned. This chapter will guide you on the meanings and facets of the term performance, as implied when programming for Microsoft .NET Framework:
Understanding performance
Performance as a requirement
Performance engineering
Performance aspects
Class of applications
Technical overview