You may have noticed that we didn't simply concatenate a string in the Render() method of our custom server control and then send it to the <>. The reason is that string concatenation is a fairly expensive process in terms of performance, especially if you need to assemble huge strings and do it multiple times in the same page, once for each instance of a control. Using a StringBuilder object to piece together a string is much faster by several orders of magnitude. We'll go into more depth in Chapter 15, "Performance, Scalability, and Metrics."
You can also output strings directly to the <> because this is also faster than string concatenation.