Book Review : ASP.NET Site Performance Secrets
Book Summary
Any web site developer sooner or later encounters a situation where he or the
client is not so happy with the performance of the web site under consideration.
No wonder experienced developers look for opportunities to squeeze last drop of
performance from their web sites. To that end, ASP.NET Site Performance Secrets
provides sound understand of the time proven techniques of performance
optimization.
A common mistake committed by many beginner to intermediate level developers
is that they think about performance bit later in the project life cycle. When
they realize that their web site is not performing well they sit and try to
dissect the problem. In the process they often end up spending much more time in
re-working and fine tuning the code. If developers take care of the suggestions
and recommendations mentioned in this book chances are that their web site will
be performance oriented from the very beginning. Later, of course, they may need
to give finishing touches for best possible performance but since they have
designed the web site keeping performance in mind the efforts required will be
much less.
The book consists of 14 chapters in total and cover a wide range of
performance related topics and issues.
The term "performance" can be little vague unless you are aware which part of
the web site you are talking about. Chapter 1 discuss several areas of a typical
web site where performance can be improved. They include - server side
processing, data transfer between client and server, image loading and so on.
Chapter 2 builds on what has been discussed in Chapter 1 and discusses possible
bottlenecks on server side that can hamper the performance.
Chapter 3 and 4 discuss memory - program memory and CPU memory. Topics such
as Garbage Collection, StringBuilder, Counters, Session variables, connection
pooling, Threading are covered in these two chapters.
Chapter 5 covers ASP.NET Caching features in detail. Output caching and data
caching techniques are discussed here.
Many developers never think of using asynchronous processing for their web
sites. The Chapter 6 explains threading and asynchronous programming techniques.
Chapter 8 discusses techniques to speedup your data access code. Issues such
as indexing, expensive queries, locking, disk access are covered in this
chapter.
Chapter 9 talks about optimizing ViewState and few other tips and tricks
related to Web Forms and server controls that will help you improve performance
of the page display.
Chapter 10 discusses compression in details and covers how to configure
compression in IIS6 and IIS7.
Chapter 11 shows various ways of optimizing web forms and server controls.
Chapter 12 further tells you how image loading time can be reduced.
In modern web sites use of JavaScript and related libraries (such as jQuery)
has increased to a great extent. Hence, it has become important for developers
to know how to deal with client scripts and script load times. Chapter 13
teaches you just that.
Finally, Chapter 14 tells you how to perform Load Tests on your web site and
discusses WCAT, VSTS and VS 2010 Ultimate with respect to load testing.
Though the book follows natural flow of chapters there is a scope for better
arrangement and clear chapter titles. For example, consider these chapter titles
- Reducing Time to First Byte, Reducing Long Wait Times, Reducing Time to Last
Byte. Though an experienced developer can sense the difference immediately, for
a beginner it might be bit confusing to figure out what each chapter might be
discussing. Also, the arrangement of chapter could have been area wise. For
example, all web forms related chapters together, all hardware related
information together, all threading related information together etc. One more
area not fully addressed is MVC specific performance tips. Though many things
are directly applicable to MVC applications too, talking specifically in MVC
terms would have been great.
Overall, this book gives a good understanding of ASP.NET performance
enhancement techniques. If you are beginner to intermediate level developer
looking to develop performance oriented web sites this book can give you a good
start.