<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><language>en</language><title>Blog posts by Patrick Ibert's blog</title> <link>https://world.optimizely.com/blogs/Patrick-Iberts-blog/</link><description></description><ttl>60</ttl><generator>Optimizely World</generator><item> <title>Logica Campaign Designer 1.1 Released!</title>            <link>https://world.optimizely.com/blogs/Patrick-Iberts-blog/Dates/2012/1/Logica-Campaign-Designer-11-Released/</link>            <description>&lt;p&gt;A new version of the custom property Logica Campaign Designer has now been released and contains the following changes:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul style=&quot;width: 406px; height: 342px&quot;&gt;   &lt;li&gt;Added a fieldset to every dialog window to make them look a little cleaner. &lt;/li&gt;    &lt;li&gt;Renamed the item &amp;quot;Page button&amp;quot; to &amp;quot;Link&amp;quot;. &lt;/li&gt;    &lt;li&gt;Added some new settings for the Link item, as Target frame, Style, Link target . &lt;/li&gt;    &lt;li&gt;Added a new setting in the custom settings page called &amp;quot;Link Css url&amp;quot;, were you now can add a path to a css for the Link item, so that the editor can choose different styles for the Link item in a dropdown list instead of just having one style for the Link as before. &lt;/li&gt;    &lt;li&gt;Added a new setting in the custom settings page for the property called &amp;quot;Let the editor set size&amp;quot;, which does so that the campaign area wont be updated by the Width and height settings in the custom settings page, but by the editor instead at the &amp;quot;Edit area styles&amp;quot; button in edit mode. &lt;/li&gt;    &lt;li&gt;Added a usercontrol that can be found in the folder RenderPropertyOnPage called &amp;quot;LogicaCampaignDesignerPropertyRender&amp;quot; that simplifies adding the property to a page a little. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The property can be downloaded from the &lt;a href=&quot;http://nuget.episerver.com/en/&quot;&gt;EPiServer nuget feed&lt;/a&gt; or from it’s &lt;a href=&quot;http://locd.codeplex.com/&quot;&gt;codeplex site.&lt;/a&gt;     &lt;br /&gt;&lt;strong&gt;     &lt;br /&gt;Feedback is always welcome!       &lt;br /&gt;&lt;/strong&gt;    &lt;br /&gt;&lt;strong&gt;Website:&lt;/strong&gt; &lt;a href=&quot;http://locd.codeplex.com/&quot;&gt;http://locd.codeplex.com/&lt;/a&gt;&lt;/p&gt;</description>            <guid>https://world.optimizely.com/blogs/Patrick-Iberts-blog/Dates/2012/1/Logica-Campaign-Designer-11-Released/</guid>            <pubDate>Mon, 02 Jan 2012 10:22:14 GMT</pubDate>           <category>Blog post</category></item><item> <title>Logica Campaign Designer 1.0 Released!</title>            <link>https://world.optimizely.com/blogs/Patrick-Iberts-blog/Dates/2011/12/Logica-Campaign-Designer-10-Released/</link>            <description>&lt;p&gt;A new version of the custom property Logica Campaign Designer has now been released and contains the following changes:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Added a list of the items in the campaign area, by dragging and dropping the items in the list you can change the z-index order of the items. &lt;/li&gt;    &lt;li&gt;Added two new input fields which lets the editor set the x and y position of an item by typing the numbers. &lt;/li&gt;    &lt;li&gt;Splitted up the javascript code in seperate js files to make it easier to maintain. &lt;/li&gt;    &lt;li&gt;Removed the button “Edit item styles” as it’s no longer needed with the new item list and input fields for x and y position. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I also uploaded a video of me demonstrating the property to youtube that you can watch here: &lt;/p&gt;  &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:f75653f6-fee7-45fe-b541-86300c18224d&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt;&lt;div id=&quot;149aee93-039d-475c-90b9-2499a5419016&quot; style=&quot;margin: 0px; padding: 0px; display: inline;&quot;&gt;&lt;div&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=BJlqCOMPUAM&quot; target=&quot;_new&quot;&gt;&lt;img src=&quot;/link/5671fbf9433b4980a50c2d41fa29fd09.jpg&quot; style=&quot;border-style: none&quot; galleryimg=&quot;no&quot; onload=&quot;var downlevelDiv = document.getElementById(&#39;149aee93-039d-475c-90b9-2499a5419016&#39;); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;448\&amp;quot; height=\&amp;quot;252\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/BJlqCOMPUAM?hl=en&amp;amp;hd=1\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/BJlqCOMPUAM?hl=en&amp;amp;hd=1\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;448\&amp;quot; height=\&amp;quot;252\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The property can be downloaded from the EPiServer nuget feed or from it’s codeplex site.    &lt;br /&gt;    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Feedback is always welcome!&lt;/strong&gt;     &lt;br /&gt;    &lt;br /&gt;&lt;strong&gt;Website:&lt;/strong&gt; &lt;a title=&quot;http://locd.codeplex.com/&quot; href=&quot;http://locd.codeplex.com/&quot;&gt;http://locd.codeplex.com/&lt;/a&gt;&lt;/p&gt;</description>            <guid>https://world.optimizely.com/blogs/Patrick-Iberts-blog/Dates/2011/12/Logica-Campaign-Designer-10-Released/</guid>            <pubDate>Tue, 06 Dec 2011 12:29:52 GMT</pubDate>           <category>Blog post</category></item><item> <title>New features for the Logica Campaign Designer property!</title>            <link>https://world.optimizely.com/blogs/Patrick-Iberts-blog/Dates/2011/10/New-features-for-the-Logica-Campaign-Designer-property/</link>            <description>&lt;p&gt;Hello everyone!    &lt;br /&gt;Today I released version 0.9 of my custom property Logica Campaign Designer. For those that somehow have missed my property heres a short description:     &lt;br /&gt;    &lt;br /&gt;&lt;strong&gt;Logica Campaign Designer (LoCD) simplifies the editorial process of creating campaign areas and front page teasers by supplying drag-n-drop elements. LoCD ships with a predefined set of elements such as text, image, link button, Facebook Like, Tweet button, Google+, Google maps and background image or color etc. All elements can be placed freely within the campaign area and controlled by the editor in the standard edit mode. LoCD is a custom property that is easily added to any EPiServer CMS page type.&lt;/strong&gt;     &lt;br /&gt;    &lt;br /&gt;This version has a few css improvements and some cool new features, one of them is google maps.     &lt;br /&gt;    &lt;br /&gt;With my property the editors can now add a google map from the Add item button. When selecting the google maps item a dialog like this shows up:     &lt;br /&gt;&lt;a href=&quot;/link/8e921598336d4d1e8c889c6d8342e23c.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;LoCD_2&quot; border=&quot;0&quot; alt=&quot;LoCD_2&quot; src=&quot;/link/7ef45db094024bf8871c9b1b162dc950.png&quot; width=&quot;295&quot; height=&quot;206&quot; /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;    &lt;br /&gt;Could look like this if you choose it to be shown as a map:     &lt;br /&gt;    &lt;br /&gt;&lt;a href=&quot;/link/0de2683a37da4fa3a2544abdc7babc0a.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;LoCD_3&quot; border=&quot;0&quot; alt=&quot;LoCD_3&quot; src=&quot;/link/279181a975b64d758f5566608bae39a4.png&quot; width=&quot;309&quot; height=&quot;186&quot; /&gt;&lt;/a&gt;     &lt;br /&gt;    &lt;br /&gt;Or if you choose it be shown as streetview it can look like this:     &lt;br /&gt;    &lt;br /&gt;&lt;a href=&quot;/link/7216808da1624a63ac1305cb22d1bd1d.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;LoCD_4&quot; border=&quot;0&quot; alt=&quot;LoCD_4&quot; src=&quot;/link/9372465cc2ad42a5bb0fa3e6fdd87071.png&quot; width=&quot;326&quot; height=&quot;195&quot; /&gt;&lt;/a&gt;     &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Another cool new feature is that we can now select what items we wish to include in the property for the editors, perhaps the editors don’t need the Like buttons, this can be changed by going to the custom settings page for the property and unselecting the checkboxs of the items you don’t wish to include, looks like this:    &lt;br /&gt;    &lt;br /&gt;&lt;a href=&quot;/link/8aac2291a4b64236a1e76534cde3f5e9.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;LoCD_1&quot; border=&quot;0&quot; alt=&quot;LoCD_1&quot; src=&quot;/link/5ab696e0393c4e318c2dd86e0d916aac.png&quot; width=&quot;316&quot; height=&quot;286&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;Where to download?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;At the moment when this blog post is written the latest version of the property is not up at the nuget feed yet, but will soon be, meanwhile you can download it from the codeplex site.    &lt;br /&gt;    &lt;br /&gt;&lt;strong&gt;Codeplex site: &lt;/strong&gt;&lt;a title=&quot;http://locd.codeplex.com/ &quot; href=&quot;http://locd.codeplex.com/ &quot;&gt;http://locd.codeplex.com/ &lt;/a&gt;    &lt;br /&gt;    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Feedback!&lt;/strong&gt;&amp;#160; &lt;br /&gt;Any feedback you could give me would be great.&amp;#160; I speak english and swedish.&lt;/p&gt;</description>            <guid>https://world.optimizely.com/blogs/Patrick-Iberts-blog/Dates/2011/10/New-features-for-the-Logica-Campaign-Designer-property/</guid>            <pubDate>Fri, 28 Oct 2011 15:54:40 GMT</pubDate>           <category>Blog post</category></item><item> <title>Introducing the new custom property Logica Campaign Designer!</title>            <link>https://world.optimizely.com/blogs/Patrick-Iberts-blog/Dates/2011/10/Introducing-the-new-custom-property-Logica-Campaign-Designer/</link>            <description>&lt;p&gt;Hello everyone! Today I would like to introduce something I have for the last month developed. It came to me as an idea from a colleague of mine here at Logica, Tobias Nilsson, this was something he had thought about making before but never had time for, so he asked me to do it and here it is so far. So let’s check out what it is I’m talking about.    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;     &lt;br /&gt;&lt;font size=&quot;5&quot;&gt;&lt;font size=&quot;3&quot;&gt;What is Logica Campaign Designer?&lt;/font&gt;         &lt;br /&gt;&lt;/font&gt;&lt;/b&gt;Logica Campaign Designer (LoCD) simplifies the editorial process of creating campaign areas and front page teasers by supplying drag-n-drop elements. LoCD ships with a predefined set of elements such as text, image, link button, Facebook Like, Google+ and background image or color etc. All elements can be placed freely within the campaign area and controlled by the editor in the standard edit mode. LoCD is a custom property that is easily added to any EPiServer CMS page type.     &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;font size=&quot;3&quot;&gt;Sounds awesome... So what does it look like?&lt;/font&gt;       &lt;br /&gt;&lt;/b&gt;Well.. After you have added it to a page it should look like something like this:     &lt;br /&gt;    &lt;br /&gt;&lt;a href=&quot;/link/3e4d3af3fe6d4e8493f84d46b6ad32c6.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;pic&quot; border=&quot;0&quot; alt=&quot;pic&quot; src=&quot;/link/4812df98ad8248ae9434d09455b1df92.png&quot; width=&quot;244&quot; height=&quot;146&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size=&quot;1&quot;&gt;(Note: you may delete the Logica picture that is there when you start up the property for the first time, but why would you want to do that? &lt;img style=&quot;border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none&quot; class=&quot;wlEmoticon wlEmoticon-smile&quot; alt=&quot;Ler&quot; src=&quot;/link/e6db4ffbde5c44d2bd89e3b548d57d8c.png&quot; /&gt;).&lt;/font&gt;     &lt;br /&gt;    &lt;br /&gt;The size of the area you give the editor to work with in this property is set in the Custom Settings page for the property, right here:     &lt;br /&gt;    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;/link/3bd301dbdf50442aba9bc4e90cb9a024.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;pic2&quot; border=&quot;0&quot; alt=&quot;pic2&quot; src=&quot;/link/dbf6ef3ab8c0492b879ec3169602c7c2.png&quot; width=&quot;244&quot; height=&quot;110&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Here you also may or may not set another path for the css you want to be used as the stylesheet for the tinymce for this property.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;    &lt;br /&gt;&lt;b&gt;&lt;font size=&quot;3&quot;&gt;So... Patrick... Please show me some more of this awesome property of yours...&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Well alright as you asked so nicely. When an editor presses the Add item button a dialog with a list of predefined items pops up. Looks like this:&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;/link/3f6cd94198144832bbd02b4a5f8316c0.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;pic3&quot; border=&quot;0&quot; alt=&quot;pic3&quot; src=&quot;/link/e43c1ec896944373b6fed8a9ceb90d3f.png&quot; width=&quot;244&quot; height=&quot;143&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;So let’s say we create a text item, we then get a text that says New text, to change it you just select it by clicking on it and then pressing the button Edit item and then a dialog comes up with a tinymce editor, like this:    &lt;br /&gt;    &lt;br /&gt;&lt;a href=&quot;/link/d43ba3fb323044af921f4b81857c798c.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;pic4&quot; border=&quot;0&quot; alt=&quot;pic4&quot; src=&quot;/link/e201ac40af8348ee8ab6483b56597002.png&quot; width=&quot;244&quot; height=&quot;242&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;font size=&quot;3&quot;&gt;Cool... But how do I install it? I want to try this out!&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; Download it from here &lt;a href=&quot;http://locd.codeplex.com/&quot;&gt;http://locd.codeplex.com/&lt;/a&gt; and just add the files to the root of your page or Install the property from it’s nuget at the EPi Nuget feed.     &lt;br /&gt;&lt;strong&gt;2.&lt;/strong&gt; After you installed it for a site you should look in the LogicaCampaignDesigner’s Styles folder. In the folder there is a css file called &lt;strong&gt;“StylesForPageUsingProperty.css”&lt;/strong&gt; that tells you what css settings you will need to put in your css for pages using the property to display it correct.     &lt;br /&gt;    &lt;br /&gt;In here there is also a css file called “&lt;strong&gt;Styles.css&lt;/strong&gt;”, this is the default css for the tinymce editor for the property, you can create your own and just change the path of it in the Custom settings page as shown before in this blog post. You will also need to add a reference to this file for the page using the property     &lt;br /&gt;    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;font size=&quot;3&quot;&gt;Any bugs I should know about?&lt;/font&gt;&lt;/b&gt;&lt;b&gt;      &lt;br /&gt;&lt;/b&gt;Well yea there are some bugs that I plan to fix in future releases, it’s pretty close to be bug free I think but there are some stuff that looks weird (mostly in IE). There could also be some bugs in it that I don’t know of yet. The known bugs are the following: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;It doesn’t work to create a google plus button in IE (there’s probably a better way to create it from code then mine) &lt;/li&gt;    &lt;li&gt;When you have edited a text item in IE and you drag it around, it changes position a little while you move it around &lt;/li&gt;    &lt;li&gt;You can only have one of these properties for a page, because the javascript was only written to handle one. &lt;/li&gt;    &lt;li&gt;When changing size of the text and having rows it will look weird in the editor, this is caused by the EPiServer editor css. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Codeplex site:&lt;/strong&gt; &lt;a href=&quot;http://locd.codeplex.com/&quot;&gt;http://locd.codeplex.com/&lt;/a&gt;     &lt;br /&gt;    &lt;br /&gt;Thanks for your time!&lt;/p&gt;</description>            <guid>https://world.optimizely.com/blogs/Patrick-Iberts-blog/Dates/2011/10/Introducing-the-new-custom-property-Logica-Campaign-Designer/</guid>            <pubDate>Mon, 03 Oct 2011 15:25:56 GMT</pubDate>           <category>Blog post</category></item><item> <title>Implement a comment system using EPiServers datastore by using Paul Smith&#39;s DynamicDataStoreSession class</title>            <link>https://world.optimizely.com/blogs/Patrick-Iberts-blog/Dates/2011/8/Implement-a-comment-system-using-EPiServers-datastore-by-using-Paul-Smiths-DynamicDataStoreSession-class/</link>            <description>&lt;p&gt;&lt;strong&gt;Hi! &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;First I would want to start this post by thanking Paul Smith for taking the time to point out the mistakes I had done in the last post I did about this, I learned a lot how to use the datastore in a correct way from his help! Thanks Paul!&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;This post is about how we can use &lt;a href=&quot;http://world.episerver.com/Blogs/Paul-Smith/Dates1/2011/7/Session-and-Unit-Of-Work-for-Dynamic-Data-Store/&quot;&gt;Paul Smith&#39;s DynamicDataStoreSession class&lt;/a&gt; with very little code to implement a comment system for our EPi pages using the EPiServer datastore. &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The idea is that I will create an Usercontrol that I can place on a page where I want people to be able to comment the content.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;I start off with creating my entity class:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public class Comment     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public Identity Id { get; set; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [EPiServerDataIndex]    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public Guid PageGuid { get; set; }&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public string UserName { get; set; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public string Location { get; set; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public string UserComment { get; set; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public DateTime Date { get; set; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;Note that my PageGuid property has the attribute [EPiServerDataIndex], it will tell the DDS to map the property to an indexed database column, which will speed up retrieving the data.      &lt;br /&gt;&lt;/strong&gt;    &lt;br /&gt;&lt;strong&gt;I then make a factory class were I will add my datastore methods:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public static IEnumerable&amp;lt;Comment&amp;gt; GetComments(Guid pageGuid)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var session = new DynamicDataStoreSession&amp;lt;Comment&amp;gt;();     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return session.Find().Where(p =&amp;gt; p.PageGuid).Equals(pageGuid).Go().OrderByDescending(p =&amp;gt; p.Date);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public static void SubmitComment(string comment, Guid pageGuid)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var store = new DynamicDataStoreSession&amp;lt;Comment&amp;gt;();     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var newComment = new Comment     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Id = Identity.NewIdentity(Guid.NewGuid()),     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; UserName = Membership.GetUser().UserName,     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Location = &amp;quot;Stockholm, Sweden&amp;quot;,     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; UserComment = comment,     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Date = DateTime.Now,     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; PageGuid = pageGuid     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; };     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; store.Save(newComment);&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;My usercontrol looks like this:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;asp:Repeater ID=&amp;quot;repComments&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;ItemTemplate&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;tr&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;td&amp;gt;&amp;lt;%# DataBinder.Eval(Container.DataItem, &amp;quot;UserName&amp;quot;)%&amp;gt; (&amp;lt;%# DataBinder.Eval(Container.DataItem, &amp;quot;Location&amp;quot;)%&amp;gt;) &amp;lt;/td&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;td&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;%# DataBinder.Eval(Container.DataItem, &amp;quot;UserComment&amp;quot;)%&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/tr&amp;gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/ItemTemplate&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/asp:Repeater&amp;gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;and in the code behind:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160; protected void Page_Load(object sender, EventArgs e)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; repComments.DataSource = ArticleComment.GetComments(CurrentPage.PageGuid);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; repComments.DataBind();     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; protected void btnComment_Click(object sender, EventArgs e)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (tbComment.Text == &amp;quot;&amp;quot;)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ArticleComment.SubmitComment(tbComment.Text, CurrentPage.PageGuid);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; repComments.DataSource = ArticleComment.GetComments(CurrentPage.PageGuid);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; repComments.DataBind();     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; tbComment.Text = &amp;quot;&amp;quot;;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;I hope you had fun and found this post useful :)&lt;/strong&gt;&lt;/p&gt;</description>            <guid>https://world.optimizely.com/blogs/Patrick-Iberts-blog/Dates/2011/8/Implement-a-comment-system-using-EPiServers-datastore-by-using-Paul-Smiths-DynamicDataStoreSession-class/</guid>            <pubDate>Thu, 18 Aug 2011 10:57:06 GMT</pubDate>           <category>Blog post</category></item></channel>
</rss>