Feed on
Posts
Comments

Yesterday, I had a college about Design Patterns. This can be  very interested, but it requires a teacher which can describe the problems in a good way and show unlimited examples. To bad, the theacher wasn’t able.
So I decided to show some of the stuff in Sitecore(Factories, Facades, etc) to one my my classmates. And while clicking trough my Sandcastle -dump of Sitecore 5.3, I run trough the Query-class(Sitecore.Data.Query.Query). I knew that Sitecore uses lexical analysis, but what I didn’t knew was, that they provide the parsing-tree :) .  For example, add the following code to the ‘Sample layout.aspx’:

<script runat=”server”>
protected override void Render(HtmlTextWriter output)
{
Sitecore.Data.Query.Query myQuery = new Sitecore.Data.Query.Query(“/sitecore/*[(@name='content' or @name='master')]/*[@@fieldname < 11]“);
base.Render(output);
myQuery.Print(output);
}
</script>

This is what appears on the screen:

- Root
- Children ["sitecore"]
- Children ["*"]
   - Predicate
      - OrOperator
         - EqualsOperator
            - FieldElement ["name"]
            - Literal ["content"]
         - EqualsOperator
            - FieldElement ["name"]
            - Literal ["master"]
- Children ["*"]
   - Predicate
      - SmallerOperator
         - FieldElement ["@fieldname"]
         - Number ["11"]

So now it’s possible to optimize your queries as you are now able to minimalize it’s states :) .

Leave a Reply