April 17, 2009

How I Got Sitefinity To Scale (Code)

I've got a new Sitefinity website going live on Monday, April 27.

For the most part, I've really enjoyed Sitefinity. I've liked it so much that I'm going to be wiping my existing site this summer and replacing it with a Sitefinity CMS-based system...but there was one problem with Sitefinity that kept hitting me: scalability.

Sitefinity was designed for small- to mid-sized sites, and for that it works admirably. However, once you start getting above about 2,000 pages, while the visitor-facing portion still performs admirably, the admin side starts to fall to pieces. The new site has over 9,300 pages. You can imagine the problems.

I don't have enough time right now to go over the specifics about why this fixes the problem, but I do have time to share the code. This fix only fixes the "Pages" view, but given that is where most user time is spent here, it was the proper place to focus.

Note: the project linked below will require that you update the assembly references. It also isn't the highest quality...a lot of it is Reflector-then-hack. However, it reduced load time on the Pages view from over 4 minutes to 10 seconds, so I'm a happy camper and so are my users.

Some restrictions placed on users: users are not allowed to create new base-level pages, and only the 500 most recently edited pages are queried for the "All Pages" views.

This is unsupported, use at your own risk.

(http://hosted.romsteady.net/SitefinityScaling.zip, 153,346 bytes)

2 comments:

Lamar said...
This comment has been removed by a blog administrator.
Michael Russell said...

Sorry, Lamar, I insist on comments at least be topical. Yours are not.