Friday, 28 February 2014

Is your Visual Studio 2013 not supporting SandCastle Help File Builder project?

Recently we have upgraded our project solution to Visual Studio 2013. Visual Studio 2013 is awesome, specially it's loading speed. VS 2013 is loading solution file very speedy compare to VS 2010. There are many other eye catching features in VS 2013. But I am not writing this post for it.. as you will find many blogs on VS 2013 features :).

Coming back to reason of this post - after upgrading our project to VS 2013, one of our project was not able to load. It was SandCastle Help File Builder project which was now no more supported with VS 2013. I was getting "unsupported project" error message.

"SHFB Visual Studio Extension Package" of Sandcastle Help File Builder 1.9.7 is not supported in Visual Studio 2013. So you need to install "SHFBGuidedInstaller_1980".

How to load Sandcastle Help File Builder project in VS 2013?
I found that currently I have installed Sandcastle Help File Builder 1.9.7 on my system which supports VS 2010 very well. But it is not supporting VS 2013, you need to install Sandcastle Help File Builder 1.9.8 to support with VS 2013.

So if you are facing simillar situation like me, then go ahead and install version 1.9.8 from below link.

Upgrade Visual Studio 2013, Install Sandcastle 1.9.8 !!!

Thursday, 27 February 2014

Are you facing PathTooLongException while syncing with TDS in Sitecore?

We were using TDS smoothly in our day-to-day development life, but one day suddenly it started giving exception while syncing with Sitecore. 

We were getting below exception:
"The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters. (PathTooLongException):"

At first glance, we thought that it could be small and temporary issue with particular sitcore item and we can solve it easily.

But it was not like that, situation was gradually becoming critical and everyone of team was facing the same issue.

So we started digging into it and obviously first question in our mind was why did it stop suddenly? Why was it working smooth previously? Did we change anything in TDS configuration?

Answer was - No. We didn't change anything in Sitecore/TDS configuration. But yes, we did a small change and that was we moved our TDS project from short path folder to long path folder. 

Do you think this could create issue? No of course not..
We were also thinking like that, but friends it was the only reason which broke TDS sync.

As message description implies, there is problem with long file path of TDS sitecore item. TDS cannot sync with sitecore if TDS physical item path exceeds 260 characters.

How to solve it?
As per Hedgehog Development, you need to set folder alias name property to fix it.

This solution is very well explained on Hedgehog Development offical site under title of "File System Aliasing with Team Development for Sitecore" (5th video) at below link.

We became happy after seeing this solution and jumped to apply it. But unfortunately it didn't work with our environment, reason could be our TDS project is bound with SVN source-safe. We were getting "Invalid Value" message after following solution steps mentioned in above video. I am not sure why that solution was not working, we tried on few systems and everyone was facing same message.

Finally the only solution that worked was - "shorten TDS project folder path".
We moved our TDS project to near C:\ drive and it's done. But I would advise you that you should first go for "folder alias name property" and if it does not work for you like me then only go for "shorten folder path" option.

And yes, I reported this issue to Hedgehog Development support team. They replied quickly with the same solution mentioned in above video (e.g. set folder alias name property)

Friends, isn't it interesting story :)?

Facing Sitecore TDS sync issue, set folder name property/shorten TDS project path!!!

Thursday, 6 February 2014

Should you use package OR serialization in sitecore?

Few days ago, our deployment team sent us instructions to update our sitecore instance. I found that they have sent sitecore serialization items to update sitecore instance, I started to update my local sitecore instance using sitecore serialization items. But there was a question roaming in my mind, why they have provided serialization items and not package? What is difference between package and serialization (package Vs serialization) in sitecore?

The reason why such question arise in my mind was - I always use sitecore package to update/deploy items. Although I was aware that serialization can be used to update/deploy sitecore items. All these thoughts made me to find which is good option to deploy sitecore items - package or serialization?
How to decide which option to use?
Here are my findings which shows difference between sitecore package and serialization.

1) Sitecore Package:
  •  There is size limit of 2 GB for package creation in sitecore, so you need to create multiple packages instead of creating one package if your deployment exceeds 2 GB size.
  •  After installing package, if you have changed few items and now you want to revert these items back to original version then there is no way to achieve it.
  •  For example: If your package contains 50 new items, then you will have 50 new items in your sitecore instance after installing this package. Now let say you have changed 10 of these 50 items and you want to revert these 10 items back to previous version (same version when you installed package), then there is no such mechanism in package installation which will help you to revert these specific 10 items. 

2) Sitecore Serialization:
  • There is no size limit of serialization items in sitecore.
  • You have option to revert your installation using revert options (e.g. revert tree, revert items) in serialization.


So it's better to use "Serialization" than "Package" - lesson I learnt.

Note: Always use firefox browser while installing items from "package" or "serialization" because Internet Explorer gets time-out issue while installing a big package. If you want to know details about this, then do visit my colleague's blog.

Big sitecore deployment? use serialization !!!