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
.
