Over the years, I've continually extended Community Server 2008.5 to support more and more features, with better performance. One way to improve performance is to reduce the data transferred over the network. This can be achieved by either compression on the web server engine, or by reducing the amount of actual data that is transferred.

For this performance feature, I've chosen to reduce the actual amount of data transferred.

The feature that I've implemented for Community Server 2008.5 is what I call the ReadMore feature. The ReadMore feature is exemplified by the "Read more..." link that you see at the bottom of every post.

The advantages of this feature are as follows:

  • Higher performance
  • Article tracking

If a web crawler, or a user views the blog post list, the site (and hence, the web server) loads faster, as the entire posting is not shown on the post list. Since the entire posting is not shown on the post list, the post list loads faster.

This allows the site to better track readers who have clicked on a post, as opposed to reading the entire blog post in the blog post list.

Here's the relevant ASP.NET code.

<CSControl:ConditionalContent runat="server">
    <ContentConditions><CSControl:UserPropertyValueComparison runat="server" UseAccessingUser="true" ComparisonProperty="IsAnonymous" Operator="IsSetOrTrue" /></ContentConditions>
    <TrueContentTemplate>
       <CSBlog:WeblogPostData Property="excerpt" runat="server" /><br/>
       <CSBlog:WeblogPostData Text="Read more..." LinkTo="post" runat="server" />
    </TrueContentTemplate>
    <FalseContentTemplate>
      <CSBlog:WeblogPostData Property="FormattedBody" runat="server" />
    </FalseContentTemplate>
</CSControl:ConditionalContent>

How it works:

If the user is anonymous, the TrueContentTemplate portion is displayed, which displays an excerpt of the blog post. If the user is not anonymous, then the FalseContentTemplate portion is displayed.

So, an anonymous user reads the excerpt, and if the user finds the post interesting, he can click on the "Read more..." link, which will then bring him to the actual blog post.

I implemented the ReadMore feature in both the postlist and the taglist portions of Community Server. Since the RSS feeds uses the postlist portion, less data is transferred as well, hence improving overall system performance.