Lessons learned while upgrading sitecore from 6.5 to 7.2 final release. While most of the steps are pretty straight forward and as documented by sitecore. There are some gotchas that you may want to keep in mind while upgrading it. Here are some of the notes that I’ve compiled while upgrading a project.

Upgrading to .Net 4.5.2

Running the automatic upgrade seems to have worked out fine while using Visual Studio 2013.

While working with sitecore buckets, it is possible that you will encounter this warning on top of the item:

Unbucketable Item stored in an Item Bucket
This item is stored in an item bucket. However, it is not hidden because its template is not bucketable. If you want to hide this item in an item bucket, you must make the template that is based on bucketable

It could mean that either you have items in that bucket that are not bucketable or the current item itself is unbucketable but is placed inside a bucket item. For former, simply sync the item as shown in the screenshot below and for latter, select the parent bucket item, and try syncing it.

If you still notice this warning, you may want to revert and bucket the item again.
Hope this helps.

Many times we have to deal with the process of getting content from a database, then sorting it and then displaying it to the user. Recently I was given a task of optimizing a user control on the website that pulls upcoming and past events for a particular category. The way this thing was programmed was something like this:

Pull all the event data irrespective of the category. More than 1000 records.

Put all events starting from current datetime in upcoming list

Put events dated prior to current date in past list

Grab the page category name and filter both upcoming and past lists

Display events in respective placeholder/view

This logic was spun across the site as the upcoming/past event controls were almost everywhere. It was taking up to 5 seconds to run this whole process for each user, thereby making it really slow when there are 1000s of users. The first thing I did to fix this is analyzed the queries using Sitecore’s built in X-Path query builder. I could clearly see that although grabbing all the events from the parent directory was taking less time than filtering out events per category. But I was certain that when we fit this filtered data into respective user controls things will be faster. Here’s what I did:

Now that I have events specific to just one category. Only 10 to 20 records. I sorted them based on currentdate to see if its an upcoming or past event.

Display events in respective placeholder/view

This logic took less than a second to process the whole thing. Not sure why the previous designers thought about it before. So, the moral of the story is, If data is huge collectively (as in all categories here), pull only what you need. Others may argue.

So I am working on this project that involves heavy sitecore work and I thought of writing few words on it.

For those who don’t know, Sitecore is an Enterprise CMS majorly used by mid size to large enterprises. There are many features that Sitecore offers, and it’s CMS architecture has a lot to talk about. The CMS has 3 tiers. Presentation, business and data layers. You know you can read a lot about the cms at their website www.sitecore.net, but to give you a very brief overview, sitecore puts presentation from content. It’s built on the proven MVP design pattern and utilizes heavy pipeline patterns. It’s ability to integrate with compainy’s lightweight directory for business users and an extranet module for outside visitors makes it ideal for large enterprises.
It also has a module that will help you publish content in an web farm environment. The staging module can be used to publish large media files where databases are not an ideal solution. All in all, a very smart and easy to use/adapt CMS for enterprises.