sent to the database to fetch the requested genres and reviews. This means that fi ltering of the requested genres takes place at the database level, and not in the ASPX page. This in turn means that fewer rows are transferred from the database to the ASPX page (only those that are really needed), which results in better performance.
The profile property FavoriteGenres returns an empty list, rather than throwing an exception for anonymous users. So, even users with no profile can safely view this page. Instead of seeing any reviews, they get a message stating they haven’t set their genre preferences yet, or that they need to log in first.
In the end of the Page_Load handler, some code determines whether to show or hide the Repeater and the NoRecords controls: