Wednesday, December 17, 2014

Standard Values for Language Versions

Today, one of my colleague asked me about standard values and how they work when creating different language versions. Following are just a small note on what I learn regarding that.

Standard values are language sensitive. i.e. if you have different language versions, you need to create language versions for standard value item also.
Items does not inherit standard value of "__Source" field from its data template standard value item

A good blog post on standard values,

http://www.sitecore.net/Learn/Blogs/Technical-Blogs/John-West-Sitecore-Blog/Posts/2013/01/All-About-Standard-Values-in-the-Sitecore-ASPNET-CMS.aspx
http://learnsitecore.cmsuniverse.net/en/Developers/Articles/2010/08/Standard-values-in-sitecore.aspx

Friday, December 12, 2014

Create Versions Action for Workflows

One of my recent work includes to support a complex workflow scenario.
While I am working on that, I got to know the following small but very useful module, "Create Versions Action" module. You can find it on sitecore marketplace.

https://marketplace.sitecore.net/Modules/Create_Versions_Action.aspx?sc_lang=en

What this module does is, it create a new workflow action. By using this action, we can create new language versions for existing workflow item. Also, it has given a option of selecting which languages that you need to create new version.

I found it very cool.. :-)

I also extend this and added new features. I will write a new blog post in near future about that.

Bye for now.

Friday, November 14, 2014

First Meetup of Sitecore User Group Sri Lanka ended Successfully!

After lot of preparation and hard work, we were able to do our first meetup on 12th November.

Over 12 developers participated for the event including developers from Codehouse Ltd, HSBC, Virtusa, Exilesoft, Calcey Technologies, CAAMS software development companies.

Presentation was done by Mr. Sen Guptha, Solution Architect, Sitecore International.
The presentation includes following points
  • Introduction to Sitecore Company
  • Growth of Sitecore Company
  • Introduction to Sitecore - Page Editor, Content Editor, Desktop, etc
  • Introduction to Sitecore Marketing suite - Marketing center, DMS, etc
  • Sitecore Certification Programs
  • Sitecore Resources - Marketplace, SDN, KnowledgeBase, etc

Presentation which took around 1 hour was followed by a Question and Answer session.

Q&A Session was highly successful with participants asking lot of question and clarifying their doubts from Mr. Sen Guptha.


After the presentation and Q&A session, it is time to relax and have some refreshments. Participants were discussed on how to progress with these meeting and how to promote the group so that more and more people with get the benifit from this group.

This event was powered by Codehouse Ltd, Sitecore Solution Partner.

Following are few snaps of the evnet










Looking forward to meet everyone on our December Meetup !

Until then, Ayubowan! (Good Bye) :-)

Wednesday, November 12, 2014

Sitecore User Group Sri Lanka - First Meeting

We are starting "Sitecore User Group Sri Lanka", aiming to grow and educate the sitecore community in Sri Lanka. This will be an open discussion forum dedicated to support growing sitecore community in Sri Lanka.

Sitecore was generous to provide an Exclusive Online Presentation for our first Meetup, 12th November, 2014. We are expecting around 10 - 15 participants for the first meetup.

This will be facilitated by Codehouse Ltd, a Certified Sitecore Partner.


Everyone is welcome! :-)

Monday, September 8, 2014

Issue with SEO Toolkit module and SBOS Accelerator Module running together

One of my recent investigations was about an issue caused by SBOS Accelerator module. After through investigation, it proved to be an issue caused by SEO Toolkit module. This post is about my findings.

Environment :

Sitecore 7.2 rev. 140526
Sitecore Search Engine Optimization -1.3.0 rev.130319
SBOS Accelerators Shared Source Module - 2.0 rev. 140422


Issue 1 : SEO Toolkit module issue
When we run the seo tool for a page, and then select the "Links" link in the results, it returns/displays the following error


















when "Links .." link selected,


Issue 2 : SBOS module issue

When we select the "Enable personalization tracking" checkbox and save, and then return to the same place again, checkbox was displayed unselected/unchecked




Investigation/Solution :

1. When check into the sitecore error logs, following error was found 

Error Logs Message I:

Exception: System.Web.HttpUnhandledException
Message: Exception of type 'System.Web.HttpUnhandledException' was thrown.
Source: System.Web
   at System.Web.UI.Page.HandleError(Exception e)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   at System.Web.UI.Page.ProcessRequest()
   at System.Web.UI.Page.ProcessRequest(HttpContext context)
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

Nested Exception

Exception: System.Web.HttpException
Message: The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>).
Source: System.Web
   at System.Web.UI.ControlCollection.Add(Control child)
   at Sitecore.Layouts.PageContext.InsertSystemControls()
   at (Object , Object[] )
   at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args)
   at Sitecore.Layouts.PageContext.BuildControlTree(Object sender, EventArgs e)
   at System.Web.UI.Page.PerformPreInit()
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

 
2. Checked our own control files. -> we could not find any place with <% .. %>
 3. Disabled SBOS Accelerators module (rename /App_Config/Include/Sitecore.SBOSAccelerators.config file to Sitecore.SBOSAccelerators.config.disabled)
 when clicked on the "Links" after running the SEO module, it again return the error.
4. But, this time, sitecore logs displayed a different error message
Error Logs Message II

Exception: System.Web.HttpRequestValidationException
Message: A potentially dangerous Request.Form value was detected from the client (<postData><links><link controlID=""a70"><![CDATA[http://chg....").
Source: System.Web
   at System.Web.HttpRequest.ValidateString(String value, String collectionKey, RequestValidationSource requestCollection)
   at System.Web.HttpRequest.ValidateHttpValueCollection(HttpValueCollection collection, RequestValidationSource requestCollection)
   at Sitecore.Pipelines.PreprocessRequest.SuppressFormValidation.Process(PreprocessRequestArgs args)
   at (Object , Object[] )
   at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args)
   at Sitecore.Nexus.Web.HttpModule. (Object , EventArgs )
   at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

6756 13:24:19 ERROR Application error.
Exception: System.Web.HttpRequestValidationException
Message: A potentially dangerous Request.Form value was detected from the client (<html id="...lang="en"><!--<![endif]--><hea...").
Source: System.Web
   at System.Web.HttpRequest.ValidateString(String value, String collectionKey, RequestValidationSource requestCollection)
   at System.Web.HttpRequest.ValidateHttpValueCollection(HttpValueCollection collection, RequestValidationSource requestCollection)
   at Sitecore.Pipelines.PreprocessRequest.SuppressFormValidation.Process(PreprocessRequestArgs args)
   at (Object , Object[] )
   at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args)
   at Sitecore.Nexus.Web.HttpModule. (Object , EventArgs )
   at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)


5. To solve this issue, we add the following property to <httpRuntime ..> tag in web.config
<httpRuntime maxRequestLength="512000" executionTimeout="600" enableKernelOutputCache="false" relaxedUrlToFileSystemMapping="true" requestValidationMode="2.0" />

6. Then, SEO Toolkit module start to work fine.
7. Re-enabled the SBOS Accelerators module (rename /App_Config/Include/Sitecore.SBOSAccelerators.config.disabled to Sitecore.SBOSAccelerators.config)
8. SEO toolkit module stopped working again with the Error Logs Message I
9. Then, I looked into the control files in SEO module. In those files I found the <% .. %> code part.
/seotoolkit/ui/Extender.ascx, /seotoolkit/ui/Keyword.ascx, /seotoolkit/ui/SearchEngine.ascx
Fortunately, those files did not have any code behind files. So, I create a seperate library project and moved the <% .. %> code parts into that project. Then, point the seotoolkit .ascx files codebehind to those library .cs files.
All the things start to work properly. (Including the issue 2 - "Enable personalization tracking" checkbox).
Hope this help..

Friday, July 18, 2014

Sitecore DMS with MongoDB

From Sitecore 7.5, Sitecore has move its DMS database to MongoDB database.

    http://www.velir.com/blog/index.php/2014/06/03/xdb-sitecore-dms-moves-to-mongodb/
    http://www.sitecore.net/About/Press-and-Media/Press-Releases/2014/05/MongoDB.aspx

Some of the benefits that Sitecre is aiming to achieve by moving to MongoDB are,

  • Scalability
  • Speed/Performance
  • High Availability
  • Flexibility with the Data model

About MongoDB
MongoDB is the leading NoSQL database, empowering businesses to be more agile and scalable.
MongoDB is built for scalability, performance and high availability, scaling from single server deployments to large, complex multi-site architectures.
Quote : https://www.mongodb.com/mongodb-overview

To achieve high scalability and speed, MongoDB has cut down (removed) some features in RDBMs. Few features that MongoDB does not deal with are,

  •     Joins
  •     Complex Transactions


MongoDB provides some online training/certification programs, which I think very good to learn about MongoDB.
    https://university.mongodb.com

I have started to follow "M102: MongoDB for DBAs" training program from MongoDB university. Even though I am in the beginner level when it comes to MongoDB, I have already started to love this new database. :-)

Tuesday, May 20, 2014

Drawbacks in Twitter Bootstrap

From last year onwards, when I first saw and used bootstrap, I was a great fan of that. I used it in one of my ASP.NET MVC project and I was actually in love with it. It makes life so much easy for the developers that is not very good with front-end development (as in my case :-D ) as well as for rapid application development and prototyping.

Bootstrap, a sleek, intuitive, and powerful mobile first front-end framework for faster and easier web development.
Quote : http://getbootstrap.com 
But, recently I have heard some negatives about Bootstrap framework from few of my UI expert friends. I tried to list the drawback points below.
  • Adds more than necessary (bulky) HTML and CSS to a web page
  • Hard to structure/design web pages as necessary
  • Contains some accessibility issues - Ex: color contrast issues, non-sementic markup, etc
  • Released versions are not backward compatible
  • W3C HTML and CSS validation issues

Alternative/Options :

  • Customize the bootstrap framework to fix these issues
  • Foundation 5 framework - http://foundation.zurb.com     
    • Note: I have not used this. One of my UI expert friend highly recommend this framework


Some good links regarding this issues :

http://www.wearecube.ch/limitations-of-twitter-bootstrap/
http://stackoverflow.com/questions/14227000/pros-cons-of-switching-to-twitter-bootstrap
https://github.com/dobtco/bootstrap-accessible/issues