Category: Sitecore

More >

Lessons Learned: Upgrading Sitecore from 6.1 to 6.5

alright
Just deployed the latest and greatest in Sitecore for my company. The guy on the left knows what I am talking about.

With the multiple languages and the complexity level of my company’s site, this was not a simple process of just running a couple of SQL update scripts and modifying some lines in the web.config. This upgrade took at couple of weeks and there were a lot of lessons learned along the way. Hopefully, my lessons will save you some time if you are going the same route.

By the way, shout out to @alexshyba once again, for pointing me to the right places and saving me hours upon hours of time.

Continue reading

Category: Sitecore

More >

Using Sitecore Publishing Pipeline to Refresh External CDN Cache

This is either one of those things you may never have to use, or you come across a requirement and realize this is exactly what you need and just didn’t know what it was called.  I fell into the latter category when I needed to programmatically refresh images in my media library that were cached in my company’s content delivery syndicator – Akamai.   Thankfully, @AlexShyba pointed me in the right direction.

Goal
Clear external image/CDN cache when a media item gets published.

Solution

The PublishProcessor object is located in the Sitecore.Publishing.Pipelines.Publish namespace. We will need to inherit from this object to your own class and override the Process(PublishContext) method with our own custom functionality.

The PublishContext that’s passed in by Sitecore’s publishing processor has a list of items being published.  All we have to do is iterate through the list and use the Sitecore Item’s Path.IsMediaItem property to determine if it’s a media library item or not.  If it is, we just pass it or its full path to a custom method and use whatever API is provided by your CDN of choice to force refresh on it.

Continue reading

Category: To The Cloud Series

More >

Sitecore Azure: Walkthrough – Installation to Deployment

My tweet from 5 days ago:

You, too, can weep tears of joy after seeing exactly how magical this process is. I did bang my head against the wall a couple of times, but the wonderful support staff @ Sitecore, including Jesper Ravnsgaard, Product Manager for Sitecore, did help me reach the finish line.

First thing is first – you have to make sure you have met all the prerequisites and read the known issues from my previous post. The second thing you want to do is download the Windows Azure SDK from here. The third thing is download the latest version of Sitecore Azure from here, which is currently at version 1.0.4. If you read my previous post, you should have already sent out a request for and received a Sitecore Azure environment file. You cannot proceed without it. So don’t try. Seriously. Don’t.

Continue reading

Category: Sitecore

More >

Sitecore Azure: Installation Prerequisites & Known Issues

[UPDATE 7/13/2010]: Jesper Ravnsgaard, the product manager for Sitecore Azure, was kind enough to point out some corrections.  They are below in blue next to the crossed-out text.

This post will cover the prerequisites and getting out the gate with Sitecore Azure.  If you haven’t yet received your Azure account credentials, check my previous post.

Also, there are two things to bear in mind.

1) Sitecore Azure is its beginning developmental stages, so while it may work in most common scenarios, it will not work in all (see known issues below).

2)  I am also new to Azure development, especially Sitecore Azure, so this is as much a learning experience for me as it is for you.  If I stumble on anything contradictory in future posts, I will be sure to update any incorrect details.

Continue reading

Category: To The Cloud Series

More >

Sitecore Azure: “To The Cloud” Series

For those that follow my blog closely, you probably noticed that frequency of my posts has slightly decreased. Despite the workload, Azure has been a hot topic and has been bugging me for attention for quite a bit now.

I don’t think my workload will free up anytime soon, but I’m going to commit to another Sitecore series of blogs called Sitecore Azure: To The Cloud. It might take some extra spare time, but I plan on documenting everything in detail in multiple posts, even if it takes a while.

Without further ado, the first step is going to be getting an account. You can get a trial account at http://windowsazurepass.com with this promotion code – TBBLIF . If you are reading this after the code expires, try searching for another one unless the program has been discontinued, at which point you will have to provide a credit card.

Account activation will take 2-3 business days. I’ve just submitted mine. We’ll see what happens…

[UPDATE] Found my account activated this morning.  Stay tuned…

Category: C#

More >

Sitecore’s CustomCache – A simple implementation

Sitecore comes stocked with a custom caching mechanism in its Sitecore.Caching namespace. Unfortunately, there is not much documentation on it, but this post will hopefully shed some light on this mysterious, yet useful object known as CustomCache.

To implement, you will need 3 things:

  1. Your own CustomCache class
  2. A CacheManager class
  3. The code that will be using the cache

Your own Custom Cache class

Because Sitecore.Caching.CustomCache is an abstract class, you cannot directly instantiate it, but you can inherit from it.

Continue reading

Category: Sitecore

More >

Inside Look at a Real World Web Project – Planning, Strategy, Design, and Implementation

My team and I just deployed a high-profile, albeit small website for one of our brands. This article will give you an inside look at each step of this real world project, which you may not necessarily be able to find in a WROX publishing book. I will cover the project framework, overall design strategy, and working with Sitecore. In a cross-post, one of my teammates, @kaidez [http://www.kaidez.com], go into the detail of front-end code and some of the invaluable tools that simplified the general development of this project.

Project Framework

For our framework, we chose SCRUM. In a 4-person web team, all sitting within reach of each other, we have found that over the years, this works best for us. The designers know what the developers are doing and vice versa. Like SCRUM, we are fast and efficient. In fact, I am very proud of my team. As a 4-person standalone web design shop, I think we’d do rather well, assuming we wouldn’t have to pay for our own healthcare.

Continue reading

Category: C#

More >

The Power of LINQ – Sorting Lists with a single line of code

This post, just like the code example, is short and to the point, because that’s how LINQ is – short, to the point, and powerful.

Let’s say you have an object called Country. There will be a List<> populated with it that is going to be used in a drop-down box. It has the following properties:

  • CountryName (string)
  • DropDownValue (string)
  • SortOrder (int)

The business logic for the list is to order it by SortOrder, and then by CountryName. You ready for the code?

Continue reading

Category: microsoft.slash.web

More >

Liveblog from Microsoft Mix 11 – Keynote

[10:29] New in Windows Azure – Access Control Service, Caching, CDN, Traffic Manager.
We saw Facebook & Twitter icons around ACS. Hopefully, it wasn’t just clipart and they are supported.

[10:26] Umbraco CMS demo. Another .NET based open source project. The twist – running on Windows Azure cloud. Currently used by mainstream sites like vogue.co.uk.
Allows you to scale the instances and looks like it gives you a lot of control on the cloud.

[10:12] Orchard CMS Demo. Open Source project that Microsoft is contributing to.  It’s no Sitecore, but still worth taking a look at.

Continue reading

Category: MultiLingual Series

More >

Sitecore Multilingual Sites: How to Configure Sitecore for Multiple Domains

If you have chosen to the multiple domain path to implement your multilingual sites, either on your own or based on my previous post, Single Domain vs. Multiple Domain Implementation, the good news that it’s more configuration than development, with the bulk of it being done inside the web.config.

This was tested on Sitecore v6.1, so please perform ample testing when working with other versions.

Default Web.config Sites Section


<sites>
   <site name="shell" ... />
    <site name="login" ... />
    <site name="testing"... />
    <site name="admin" ... />
    <site name="service" ... />
    <site name="modules_shell" ... />
    <site name="modules_website" ... />
    <site name="website" ... />
    <site name="scheduler" ... />
    <site name="system" ... />
    <site name="publisher" ... />
</sites>

Continue reading