The Mystery of the Disappearing Content
That’s the general nature of these bugs. Except the PublishEmptyItems bug can cause entire sites to disappear. Happened to me. 2 hours of downtime. Was going crazy trying to inspect every single line of my configuration files, restoring DBs, and going through logs.
The new Sitecore v7.2 has a lot of great features and I personally recommend upgrading after a thorough QA test to make sure things run smoothly, but it wouldn’t be “software” if it didn’t cause your site to sink into a pothole once in a while. That’s the nature of the beast.
New PublishEmptyItems Setting
Version v7.2 Released
First and foremost, I’d like to congratulate the Sitecore Dev team on the new v7.2 release. I’ve been using Sitecore since v6.1 and since then, have developed a modest wish list of features I would have loved to see. I can honestly say, this version is jam-packed with features from that list.
Publish Related Items Feature – Explained
One of those new awesome features is the Publish Related Items feature. What. A. Timesaver.
It’s especially great for rapid development and deployment. Imagine you are developing a new feature.
- You create the template.
- You create the layouts.
- You upload the media.
- You create the content based on the templates, with the mapped layouts in the presentation layer and associate any media in the image files
You want to publish? Before v7.2, you had to publish each one individually. Not that rapidly deployed. Now, with Publish Related Items checked, all those assets associated with the content item you are publishing will get published, including any and all images contained within the content item, layouts, and templates.
Not sure if this is Sitecore removing the training wheels and bib or movin’ on up to the east side, but as of version 7.1, Sitecore is deprecating the Developer Center and removing it shortly thereafter. As soon as I heard, I reached out to Alex Shyba (@alexshyba) and he pointed me to LINQPad. The LINQPad site had no mention of Sitecore, so I went on a Google scavenger hunt and found Adam Conn’s blog post that covered the steps, along with some pointers Jim Scott’s Coding Blog.
It wasn’t all smooth sailing for me and I was at an hour or two in until I got the everything to work, so I thought why not do a video walkthrough and save my readers the headache.
The video is embedded below and the link to the configuration file is posted to my GitHub here.
In Media Library, after clicking on the Attach button in a media item, and clicking Browse, the file dialog does not open.
Until Sitecore comes out with an official fix, you can force “Upload.Classic” mode which will work as intended.
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.
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.
Clear external image/CDN cache when a media item gets published.
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.
[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.
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:
- Your own CustomCache class
- A CacheManager class
- 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.
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.
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.