<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0">
  <channel>
    <title>Ivan's Developer Blog</title>
    <description>Ivan's Developer Blog</description>
    <link>http://blogs.sitefinity.com/ivan/home.aspx</link>
    <docs>http://backend.userland.com/rss</docs>
    <item>
      <title>Our friends at Habaneros came up with a nice workaround</title>
      <description>Our friends at &lt;a href="http://www.habaneros.com/"&gt;Habaneros Consulting Group&lt;/a&gt; have found a problem with Events Schedule View control when workflow is turned on and let us know about it - but not to leave it at that - they've also came up with a workaround and send it to us. We are really grateful to be part of such a great community.&lt;br /&gt;&lt;br /&gt;For all of you interested in the problem and workaround you can find more about it at this forum thread:&lt;br /&gt;&lt;a href="http://www.sitefinity.com/support/forums/support-forum-thread/b1043S-bkkggg.aspx"&gt;http://www.sitefinity.com/support/forums/support-forum-thread/b1043S-bkkggg.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Once again, on behalf of Sitefinity team, I'd like to thank Habaneros Consulting Group for sharing this with community.&lt;br /&gt;</description>
      <link>http://blogs.sitefinity.com/Ivan/Post/08-08-15/our_friends_at_habaneros_came_up_with_a_nice_workaround.aspx</link>
      <pubDate>Fri, 15 Aug 2008 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Few weeks later...</title>
      <description>It has been few weeks since we have released the all new and shiny developer manual. As promised we've been updating it since then (though the Monday thing failed miserably, we've managed to update manual once per week - so that's how it's going to be from now on - once per week :).&lt;br /&gt;&lt;br /&gt;So here is a little overview of major updates:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Events API overview&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://www.sitefinity.com/help/developer-manual/events-api-overview.html"&gt;http://www.sitefinity.com/help/developer-manual/events-api-overview.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Bare-bones Pluggable module Visual Studio template&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://www.sitefinity.com/help/developer-manual/adding-new-modules-pluggable-bare-bones.html"&gt;http://www.sitefinity.com/help/developer-manual/adding-new-modules-pluggable-bare-bones.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Images and Documents API overview&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://www.sitefinity.com/help/developer-manual/libraries-api-overview.html"&gt;http://www.sitefinity.com/help/developer-manual/libraries-api-overview.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Adding new Generic Content based module&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://www.sitefinity.com/help/developer-manual/overview.html"&gt;http://www.sitefinity.com/help/developer-manual/overview.html&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Each of these sections consists of several topics, so we've been also able to keep the four topics per week promise.&lt;br /&gt;In the coming weeks, you can expect additional topics in &lt;strong&gt;Adding new Generic Content based module&lt;/strong&gt; section, &lt;strong&gt;ContentViewDesigners&lt;/strong&gt; overview with samples for modifying or extending them - and finally &lt;strong&gt;security samples&lt;/strong&gt; across all types of custom modules (Intra Site, Pluggable and Generic Content based).&lt;br /&gt;&lt;br /&gt;Also, we are working on &lt;strong&gt;Templates Map&lt;/strong&gt; section which will provide quick and simple lookup for all control templates in Sitefinity, what they do, how they look like and how can they be safely modified without losing your changes on the next upgrade.&lt;br /&gt;&lt;br /&gt;If there is anything else you think is a top priority for Dev Manual, leave a comment and it'll make its way into the manual.&lt;br /&gt;&lt;br /&gt;Greetings from our small, but brave (!), dev docs team.                      
                </description>
      <link>http://blogs.sitefinity.com/Ivan/Post/08-07-31/few_weeks_later_.aspx</link>
      <pubDate>Thu, 31 Jul 2008 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>HOW TO : create a control designer for user controls</title>
      <description>&lt;p&gt;&lt;strong&gt;[UPDATE: problems reported in the comments below this post have been fixed and files for download have been updated]&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;As you may have noticed on some of our controls, when you edit them in a page editor, there are two modes for editing the control (or setting the properties). There is a simple and advanced way. In this post I am going to explain how to achieve this same functionality for the user controls you create and upload to Sitefinity toolbox.&lt;br /&gt;&lt;br /&gt;First of all, let's see what are the pros and cons of the two editor modes, which will also show you why do we chose to have two editor modes instead of one.&lt;br /&gt;&lt;br /&gt;&lt;img src="/Ivan/Images/control_designer_diagram.gif" alt="User Controls - Control Designer Diagram" /&gt; &lt;br /&gt;&lt;br /&gt;As you can see on the above diagram, both modes have their advantages, so which one should be used really depends on the actual user. When designing your controls, you should keep in mind the knowledge level of the user that is likely to use the control. Based on this assumption, you can decide whether to create a control designer or not. &lt;br /&gt;&lt;br /&gt;In this sample we are going to build a simple user control that will wrap standard ASP.NET 2.0 BulletedList control. We are going to let users set the DisplayMode (Text,HyperLink, LinkButton) of a control and in addition to that let them add or remove the items from the list. All in all, it should vaguely resemble to the designer of this control that is available in Visual Studio. Since we are assuming that some pretty unexperienced user will be using this control, we are going to provide them with a Control Designer, or Simple mode for editing the control. To get an idea of how this simple editing mode will look like (more or less :), please take a look at the following image:&lt;br /&gt;&lt;br /&gt;&lt;img src="/Ivan/Images/control_designer_mockup.gif" alt="User Controls - BulletedList Control Designer Mockup" /&gt; &lt;br /&gt;&lt;br /&gt;At this point, I advise you to download the project so you can keep following the post. The whole project you can download from &lt;a href="/Ivan/Downloads/UserControlDesigner_fix.zip"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;Installation&lt;br /&gt;&lt;/h3&gt;1.Download the project from &lt;a href="/Ivan/Downloads/UserControlDesigner_fix.zip"&gt;here&lt;/a&gt;.&lt;br /&gt;2. Unzip the project &lt;p&gt;3. Copy the ~/App_Code/Designer folder to your ~/App_Code folder (add App_Code folder if it does not exist)&lt;br /&gt;4. Copy the ~/MyTemplates folder to your project&lt;br /&gt;5. Copy the ~/MyControls folder to your project&lt;br /&gt;6. Create a page in Sitefinity and upload a new user control. The control you should upload is  ~/MyControls/MyBulletedList.ascx (make sure to upload the code-behind as well)&lt;br /&gt;7. Drag the control onto the page and click on Edit (it'll appear when you hover over the control if you are in Overlay mode)&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;Explanation&lt;/h3&gt;&lt;p&gt;&lt;br /&gt;Let's examine the steps that we needed to undertake to make this happen.&lt;br /&gt;First, we created an user control just as any other. We defined the properties of this user control, we make them function, so nothing fancy here.&lt;br /&gt;&lt;br /&gt;Second thing we needed to do, was to create a designer class for this control. Since we are doing this for User Control, we have put that class in a App_Code folder. Since I have commented the code I will not get into too many details here, but what we needed to do is to create some kind of a connection between the designer and our user controls. In modules and custom controls, we generally use the type of our control as a reference, but here we are working with the UserControl so that won't help us a lot. Since C# does not support multiple inheritance, we could not have created a baseclass and let our user control inherit from that class as well (in addition to inheriting UserControl base class). So the solution is to create an interface and implement that interface on our User Control. Then we are going to be able to treat the user control from our designer as a control that implements a specific interface. This approach has some other neat side-effects such as an ability to create one designer and use it by multiple controls.&lt;br /&gt;&lt;br /&gt;Finally, you will see that our Custom designer is nothing but a custom control, which creates its user interface through a template (same principle as with creating pluggable modules).&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;Conclusion&lt;/h3&gt;&lt;p&gt;&lt;br /&gt;In order to implement a custom designer on a User Control, you are going to need:&lt;br /&gt;1. User control&lt;br /&gt;2. Custom control representing a designer&lt;br /&gt;3. Template for the UI of designer&lt;br /&gt;4. Interface to which you can cast user control&lt;br /&gt;&lt;br /&gt;The whole code you can download from &lt;a href="/Ivan/Downloads/UserControlDesigner_fix.zip"&gt;here&lt;/a&gt;. Drop a comment if you have any additional questions or if there are some problems with the project.&lt;br /&gt;&lt;/p&gt;</description>
      <link>http://blogs.sitefinity.com/Ivan/Post/08-04-23/how_to_create_a_control_designer_for_user_controls.aspx</link>
      <pubDate>Wed, 23 Apr 2008 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Dev manual updates to be released on Mondays</title>
      <description>Sorry, for misinforming everyone, but there is a little change in a plan - in regards to releasing the updates of developer manual. My initial idea was to do it every Friday - but turns out there are some technical issues in regards to the build and upload of the manual - that make Monday's much more suitable.&lt;br /&gt;&lt;br /&gt;So, nothing essentially changes, except that from now on you will be able kick off your week by reading some juicy stuff from the Sitefinity Developer Manual.&lt;br /&gt;                            
                </description>
      <link>http://blogs.sitefinity.com/Ivan/Post/08-07-09/dev_manual_updates_to_be_released_on_mondays.aspx</link>
      <pubDate>Wed, 09 Jul 2008 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Developer manual - scheduled topics for July 11th, 2008</title>
      <description>&lt;img style="margin: 0pt 0px 5px 5px; float: right;" src="http://blogs.sitefinity.com/Ivan/Images/direction.jpg" /&gt;
As we have promised, the developer manual will be updated every Friday in the months to come. This coming Friday, we are planning on releasing following topics:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Events module API Walkthrough&lt;/li&gt;&lt;li&gt;Pluggable module topics (the current section will be completely revised):&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Starter-kit: Bare-bones pluggable module&lt;/li&gt;&lt;li&gt;Simple pluggable module&lt;/li&gt;&lt;li&gt;Pluggable module with LINQ provider&lt;/li&gt;&lt;li&gt;Pluggable module with Nolics.NET provider&lt;/li&gt;&lt;li&gt;Pluggable module with LINQ provider and implemented security&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;If time allows, we'll try to throw in few more, but at this point that's the plan.&lt;br /&gt;&lt;br /&gt;The plan for July 18th update has not yet been set, so if there is anything you'd like to see there, drop a comment and we'll see what we can do about it.&lt;br /&gt;&lt;br /&gt;                       
                </description>
      <link>http://blogs.sitefinity.com/Ivan/Post/08-07-07/developer_manual_scheduled_topics_for_july_11th_2008.aspx</link>
      <pubDate>Mon, 07 Jul 2008 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>MetaMaster 2008 - finally released!</title>
      <description>  &lt;p&gt;Nice title, ehh? &lt;/p&gt;&lt;p&gt;Since everyone seems to be releasing something these days, I thought I'd give it a try on my blog as well. From now on, I'll be branding all the code samples.  For the time being all the samples will be released under RandomSFCode label (until I come with something more along the web 2.0 lines) and the first control is MetaMaster 2008 (even though it sounds like it could help you lose 20 lbs in 10 days, it won't. Nevertheless, talk to your physician about it. He may like it.)&lt;/p&gt;&lt;h3&gt;So, what is MetaMaster 2008?&lt;/h3&gt;&lt;p&gt;MetaMaster 2008 is a control that you can use in conjunction with any ContentView based control (ContentView, BlogPosts, NewsView and EventsView). What MetaMaster 2008 allows you to do is to easily map the values of meta-fields to any property of any control inside of a template. Take a look at the following example:&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="BORDER-RIGHT: #7f9db9 1px solid; BORDER-TOP: #7f9db9 1px solid; FONT-SIZE: 11px; OVERFLOW: auto; BORDER-LEFT: #7f9db9 1px solid; WIDTH: 100%; LINE-HEIGHT: 100%! important; BORDER-BOTTOM: #7f9db9 1px solid; FONT-FAMILY: Courier New; HEIGHT: 160px; BACKGROUND-COLOR: white"&gt;
&lt;table style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; MARGIN: 2px 0px; WIDTH: 99%; BORDER-BOTTOM: #eee 0px solid; BORDER-COLLAPSE: collapse; BACKGROUND-COLOR: #fff; BORDER-RIGHT-WIDTH: 0px" cellspacing="0" cellpadding="0"&gt;&lt;colgroup&gt;&lt;col style="PADDING-LEFT: 10px; FONT-SIZE: 11px; BORDER-BOTTOM: #f7f7f7 1px solid; FONT-FAMILY: Courier New; WHITE-SPACE: nowrap" /&gt;&lt;/colgroup&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;font style="FONT-SIZE: 11px"&gt;&lt;/font&gt;&lt;font style="COLOR: blue"&gt;&amp;lt;&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;cc1:MetaMaster &lt;/font&gt;&lt;font style="COLOR: red"&gt;ID&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;=&lt;/font&gt;&lt;font style="COLOR: blue"&gt;"MetaMaster1"&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt; &lt;/font&gt;&lt;font style="COLOR: red"&gt;runat&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;=&lt;/font&gt;&lt;font style="COLOR: blue"&gt;"server"&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;&gt;  &lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="BACKGROUND-COLOR: #f7f7f7"&gt;    &lt;font style="COLOR: blue"&gt;&amp;lt;&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;Mappings&lt;/font&gt;&lt;font style="COLOR: blue"&gt;&gt;&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt; &lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;        &lt;font style="COLOR: blue"&gt;&amp;lt;&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;cc1:MetaMapping &lt;/font&gt;&lt;font style="COLOR: red"&gt;MetaKey&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;=&lt;/font&gt;&lt;font style="COLOR: blue"&gt;"Title"&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt; &lt;/font&gt;&lt;font style="COLOR: red"&gt;TargetControlId&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;=&lt;/font&gt;&lt;font style="COLOR: blue"&gt;"testLabel"&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;                               &lt;/font&gt;&lt;font style="COLOR: red"&gt;TargetProperty&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;=&lt;/font&gt;&lt;font style="COLOR: blue"&gt;"Text"&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt; &lt;/font&gt;&lt;font style="COLOR: blue"&gt;/&gt;&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt; &lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="BACKGROUND-COLOR: #f7f7f7"&gt;        &lt;font style="COLOR: blue"&gt;&amp;lt;&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;cc1:MetaMapping &lt;/font&gt;&lt;font style="COLOR: red"&gt;MetaKey&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;=&lt;/font&gt;&lt;font style="COLOR: blue"&gt;"Author_Picture"&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt; &lt;/font&gt;&lt;font style="COLOR: red"&gt;TargetControlId&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;=&lt;/font&gt;&lt;font style="COLOR: blue"&gt;"testImage"&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;     &lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;                         &lt;font style="COLOR: red"&gt;TargetProperty&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;=&lt;/font&gt;&lt;font style="COLOR: blue"&gt;"ImageUrl"&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt; &lt;/font&gt;&lt;font style="COLOR: blue"&gt;/&gt;&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt; &lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="BACKGROUND-COLOR: #f7f7f7"&gt;        &lt;font style="COLOR: blue"&gt;&amp;lt;&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;cc1:MetaMapping &lt;/font&gt;&lt;font style="COLOR: red"&gt;MetaKey&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;=&lt;/font&gt;&lt;font style="COLOR: blue"&gt;"Author_Picture"&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt; &lt;/font&gt;&lt;font style="COLOR: red"&gt;TargetControlId&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;=&lt;/font&gt;&lt;font style="COLOR: blue"&gt;"testImage"&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;    &lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;                         &lt;font style="COLOR: red"&gt;TargetProperty&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;=&lt;/font&gt;&lt;font style="COLOR: blue"&gt;"Tooltip"&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt; &lt;/font&gt;&lt;font style="COLOR: blue"&gt;/&gt;&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt; &lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="BACKGROUND-COLOR: #f7f7f7"&gt;    &lt;font style="COLOR: blue"&gt;&amp;lt;/&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;Mappings&lt;/font&gt;&lt;font style="COLOR: blue"&gt;&gt;&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt; &lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;font style="COLOR: blue"&gt;&amp;lt;/&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;cc1:MetaMaster&lt;/font&gt;&lt;font style="COLOR: blue"&gt;&gt;&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt; &lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="BACKGROUND-COLOR: #f7f7f7"&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;  &lt;p&gt;All you need to do is place this control in any of the ContentView templates (for now this control will work only in a template for SingleItem mode - for example, for NewsView you can add this control to ListPageDetails.ascx).&lt;/p&gt;&lt;p&gt;So, once you place the MetaMaster control in the template, you can add any number of mappings to it. Each mapping consists of three properties that you need to set:&lt;br /&gt;&lt;b&gt;&lt;br /&gt;MetaKey&lt;/b&gt; - the value of which meta-field should be mapped to control's property&lt;br /&gt;&lt;b&gt;TargetControlId&lt;/b&gt; - the id of the control whose property you want to map to meta-field value&lt;br /&gt;&lt;b&gt;TargetProperty&lt;/b&gt; - finally, the value of which property you want to set to the value of meta-field&lt;/p&gt;&lt;p&gt;The way standard ContentView control works is following - it reads all the metakeys, tries to find the controls with same ids and then sets the text property of the control to the value of the meta-field. Sometimes, however, you may need two labels to display the value of same meta-field. On other occasions, you may have the URL as a value of meta-field and you want this value to be in ImageUrl or NavigateUrl property, not just text. The common solution to this problem is to overwrite the ContentView control and make your own implementation - and judging by your feedback - you don't exactly enjoy this. So - that's how MetaMaster 2008 was born (the slow Thursday in office helped as well).&lt;/p&gt;&lt;h3&gt;How to install MetaMaster 2008?&lt;/h3&gt;&lt;p&gt;The control comes with full source, so you can modify it or fix it, if needed. Basically, all you need to do is compile the .dll with the references to the dependent projects from your own website (or you can use my .dll if you are running the latest hotfix).&lt;br /&gt;&lt;br /&gt;&lt;a href="/Ivan/Downloads/MetaMaster2008.zip"&gt;YOU CAN DOWNLOAD THE WHOLE PROJECT FROM HERE&lt;/a&gt;&lt;a&gt;.&lt;br /&gt;&lt;br /&gt;1. Then take that .dll and copy it to the bin folder of your website. &lt;p&gt;&lt;strong&gt;DO NOT UPLOAD THIS CONTROL THROUGH SITEFINITY PAGE EDITOR. &lt;/strong&gt;&lt;/p&gt;&lt;p&gt;2. Open the template (in Visual Studio) that represents a template for single item mode of any ContentView control. Here are some examples:&lt;br /&gt;&lt;br /&gt;~/Sitefinity/ControlTemplates/News/Modes/ListPageDetails.ascx       ~/Sitefinity/ControlTemplates/Events/Modes/ListPageDetail.ascx         ~/Sitefinity/ControlTemplates/Generic_Content/ContentViewSingleItem.ascx&lt;br /&gt;.&lt;/p&gt;&lt;p&gt;3. Register the assembly for the control, by adding this line at the top of the template:&lt;br /&gt;&lt;/p&gt;&lt;div style="BORDER-RIGHT: #7f9db9 1px solid; BORDER-TOP: #7f9db9 1px solid; FONT-SIZE: 11px; OVERFLOW: auto; BORDER-LEFT: #7f9db9 1px solid; WIDTH: 100%; LINE-HEIGHT: 100%! important; BORDER-BOTTOM: #7f9db9 1px solid; FONT-FAMILY: Courier New; HEIGHT: 76px; BACKGROUND-COLOR: white"&gt;
&lt;table style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; MARGIN: 2px 0px; WIDTH: 99%; BORDER-BOTTOM: #eee 0px solid; BORDER-COLLAPSE: collapse; BACKGROUND-COLOR: #fff; BORDER-RIGHT-WIDTH: 0px" cellspacing="0" cellpadding="0"&gt;&lt;colgroup&gt;&lt;col style="PADDING-LEFT: 10px; FONT-SIZE: 11px; BORDER-BOTTOM: #f7f7f7 1px solid; FONT-FAMILY: Courier New; WHITE-SPACE: nowrap" /&gt;&lt;/colgroup&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;font style="FONT-SIZE: 11px"&gt;&lt;/font&gt;&lt;font style="COLOR: blue"&gt;&amp;lt;&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;%@ Register &lt;/font&gt;&lt;font style="COLOR: red"&gt;Assembly&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;=&lt;/font&gt;&lt;font style="COLOR: blue"&gt;"RandomSFCode.MetaMaster2008"&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;                   &lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="BACKGROUND-COLOR: #f7f7f7"&gt;             &lt;font style="COLOR: red"&gt;Namespace&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;=&lt;/font&gt;&lt;font style="COLOR: blue"&gt;"RandomSFCode.MetaMaster2008"&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt; &lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;             &lt;font style="COLOR: red"&gt;TagPrefix&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;=&lt;/font&gt;&lt;font style="COLOR: blue"&gt;"cc1"&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt; %&lt;/font&gt;&lt;font style="COLOR: blue"&gt;&gt;&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt; &lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="BACKGROUND-COLOR: #f7f7f7"&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;4. Add the MetaMaster control to the template and start mapping:&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="BORDER-RIGHT: #7f9db9 1px solid; BORDER-TOP: #7f9db9 1px solid; FONT-SIZE: 11px; OVERFLOW: auto; BORDER-LEFT: #7f9db9 1px solid; WIDTH: 100%; LINE-HEIGHT: 100%! important; BORDER-BOTTOM: #7f9db9 1px solid; FONT-FAMILY: Courier New; HEIGHT: 160px; BACKGROUND-COLOR: white"&gt;
&lt;table style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; MARGIN: 2px 0px; WIDTH: 99%; BORDER-BOTTOM: #eee 0px solid; BORDER-COLLAPSE: collapse; BACKGROUND-COLOR: #fff; BORDER-RIGHT-WIDTH: 0px" cellspacing="0" cellpadding="0"&gt;&lt;colgroup&gt;&lt;col style="PADDING-LEFT: 10px; FONT-SIZE: 11px; BORDER-BOTTOM: #f7f7f7 1px solid; FONT-FAMILY: Courier New; WHITE-SPACE: nowrap" /&gt;&lt;/colgroup&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;font style="FONT-SIZE: 11px"&gt;&lt;/font&gt;&lt;font style="COLOR: blue"&gt;&amp;lt;&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;cc1:MetaMaster &lt;/font&gt;&lt;font style="COLOR: red"&gt;ID&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;=&lt;/font&gt;&lt;font style="COLOR: blue"&gt;"MetaMaster1"&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt; &lt;/font&gt;&lt;font style="COLOR: red"&gt;runat&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;=&lt;/font&gt;&lt;font style="COLOR: blue"&gt;"server"&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;&gt;  &lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="BACKGROUND-COLOR: #f7f7f7"&gt;    &lt;font style="COLOR: blue"&gt;&amp;lt;&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;Mappings&lt;/font&gt;&lt;font style="COLOR: blue"&gt;&gt;&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt; &lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;        &lt;font style="COLOR: blue"&gt;&amp;lt;&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;cc1:MetaMapping &lt;/font&gt;&lt;font style="COLOR: red"&gt;MetaKey&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;=&lt;/font&gt;&lt;font style="COLOR: blue"&gt;"Title"&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt; &lt;/font&gt;&lt;font style="COLOR: red"&gt;TargetControlId&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;=&lt;/font&gt;&lt;font style="COLOR: blue"&gt;"testLabel"&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;                               &lt;/font&gt;&lt;font style="COLOR: red"&gt;TargetProperty&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;=&lt;/font&gt;&lt;font style="COLOR: blue"&gt;"Text"&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt; &lt;/font&gt;&lt;font style="COLOR: blue"&gt;/&gt;&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt; &lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="BACKGROUND-COLOR: #f7f7f7"&gt;        &lt;font style="COLOR: blue"&gt;&amp;lt;&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;cc1:MetaMapping &lt;/font&gt;&lt;font style="COLOR: red"&gt;MetaKey&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;=&lt;/font&gt;&lt;font style="COLOR: blue"&gt;"Author_Picture"&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt; &lt;/font&gt;&lt;font style="COLOR: red"&gt;TargetControlId&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;=&lt;/font&gt;&lt;font style="COLOR: blue"&gt;"testImage"&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;    &lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;                         &lt;font style="COLOR: red"&gt;TargetProperty&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;=&lt;/font&gt;&lt;font style="COLOR: blue"&gt;"ImageUrl"&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt; &lt;/font&gt;&lt;font style="COLOR: blue"&gt;/&gt;&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt; &lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="BACKGROUND-COLOR: #f7f7f7"&gt;        &lt;font style="COLOR: blue"&gt;&amp;lt;&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;cc1:MetaMapping &lt;/font&gt;&lt;font style="COLOR: red"&gt;MetaKey&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;=&lt;/font&gt;&lt;font style="COLOR: blue"&gt;"Author_Picture"&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt; &lt;/font&gt;&lt;font style="COLOR: red"&gt;TargetControlId&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;=&lt;/font&gt;&lt;font style="COLOR: blue"&gt;"testImage"&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;     &lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;                         &lt;font style="COLOR: red"&gt;TargetProperty&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;=&lt;/font&gt;&lt;font style="COLOR: blue"&gt;"Tooltip"&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt; &lt;/font&gt;&lt;font style="COLOR: blue"&gt;/&gt;&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt; &lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="BACKGROUND-COLOR: #f7f7f7"&gt;    &lt;font style="COLOR: blue"&gt;&amp;lt;/&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;Mappings&lt;/font&gt;&lt;font style="COLOR: blue"&gt;&gt;&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt; &lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;font style="COLOR: blue"&gt;&amp;lt;/&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt;cc1:MetaMaster&lt;/font&gt;&lt;font style="COLOR: blue"&gt;&gt;&lt;/font&gt;&lt;font style="FONT-SIZE: 11px"&gt; &lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="BACKGROUND-COLOR: #f7f7f7"&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;  &lt;p&gt;&lt;a href="/Ivan/Downloads/MetaMaster2008.zip"&gt;YOU CAN DOWNLOAD THE WHOLE PROJECT FROM HERE&lt;/a&gt;&lt;a&gt;. &lt;p&gt;I've done some superficially testing and its working. If you ran in problems leave a comment and I'll try to address them in timely manner. &lt;/p&gt;&lt;/a&gt;&lt;/p&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;  </description>
      <link>http://blogs.sitefinity.com/Ivan/Post/08-07-03/metamaster_2008_finally_released_.aspx</link>
      <pubDate>Thu, 03 Jul 2008 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>New developer manual published</title>
      <description>We have published new developer manual and we are not happy with it. But, that's the good news. &lt;p&gt;Namely, we weren't able to explain everything we wanted, but we also didn't want to make you wait six months until we are "happy", so we decided we will release the new manual at the point when it becomes better and more useful than the old manual. And we believe today is the day!&lt;/p&gt;&lt;p&gt;Before I go into details about the manual, let me just explain why is it good news that we are not happy with the new manual. Knowing that there is so much more to be explained and that the time is of essence, we have decided that for the foreseeable future we will release at least four new topics every Friday - both in web version and the offline version. In the strange world of technical writing, topic is a page actually - in case you were wondering. Given this dynamic we will also be able to include new topics based on your feedback and specific demands.&lt;/p&gt;&lt;p&gt;Now - the new manual.&lt;/p&gt;&lt;p&gt;The new online and offline version of manual can be accessed from this page: &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.sitefinity.com/support/documentation.aspx"&gt;http://www.sitefinity.com/support/documentation.aspx&lt;/a&gt;&lt;/p&gt;&lt;h3&gt;What has changed?&lt;/h3&gt;&lt;p&gt;The whole structure of the developer's manual has been changed. From the previous 20-something top level sections, we've gone down to 8 task orientated sections. We've reorganized quite a lot of material and we believe that with the new structure it will be much easier to find particular information.&lt;/p&gt;&lt;p&gt;In addition to this, we have removed the obsolete and incomplete topics.&lt;/p&gt;&lt;h3&gt;What was the focus of this release?&lt;/h3&gt;&lt;p&gt;The two main areas we wanted to improve were general understanding of Sitefinity and Sitefinity API. We've put a lot of effort in giving high level overviews of Sitefinity architecture and its building parts. Also, the general guidelines for implementations were given much more space, as opposed to some previous versions where we were answering mostly the question "how?" and completely omitted the "why?".&lt;/p&gt;&lt;p&gt;The second area in which we have put a lot of effort is Sitefinity API. We have provided API walkthroughs with dozens of examples for pages and modules. There are still few APIs that we have not managed to cover, but we've done the major ones and we will cover them all in following weeks.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.sitefinity.com/support/forums/support-forum-thread/b1043S-bembgk.aspx"&gt;The official announcement you can find here with the more detailed information&lt;/a&gt;.&lt;/p&gt;&lt;h3&gt;What will the future bring?&lt;/h3&gt;&lt;p&gt;The keyword is: examples. We are committed to providing more and more examples, be they simple examples of API methods or full blown examples of module or service implementations. In addition to this we are committed to comment our code in the time to come and therefore to round up the manual with full and complete API reference section - in the mean time we will have API Walkthroughs. &lt;/p&gt;&lt;h3&gt;The final word&lt;/h3&gt;&lt;p&gt;Apart from the fact that the manual is not finished (and probably will never be finished) we hope you will find it useful and enjoyable, as much as manual can be enjoyable. I will be posting the updates on the new topics every Friday, so stop by and see what we have done. If you'd like to see something in the manual and we are missing it leave a comment here or on the forums and we'll do our best to include it.&lt;/p&gt;&lt;p&gt;Thank you all for your patience and understanding.&lt;/p&gt;</description>
      <link>http://blogs.sitefinity.com/Ivan/Post/08-07-04/new_developer_manual_published.aspx</link>
      <pubDate>Fri, 04 Jul 2008 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Control designer for user control - the one that actually works</title>
      <description>&lt;img style="FLOAT: left; MARGIN-RIGHT: 10px" alt="Sorry..." src="/Ivan/Images/donkey.jpg" /&gt; &lt;p&gt;In the &lt;a href="/Ivan/Post/08-04-23/how_to_create_a_control_designer_for_user_controls.aspx"&gt;HOW TO: Create control designer for user control&lt;/a&gt; post I have very nicely explained everything, except that I have zipped completely wrong files. I am really sorry for that and apologize to anyone who ran into problems and frustration with that code sample.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;On the bright side, it took me just about a month to figure that out and post this fixed code sample. :)&lt;br /&gt;&lt;br /&gt;&lt;a href="/Ivan/Downloads/UserControlDesigner_fix.zip"&gt;Here is the sample code for that post that actually works&lt;/a&gt;. The instructions and explanations are same as in the previous post.&lt;/p&gt;</description>
      <link>http://blogs.sitefinity.com/Ivan/Post/08-06-26/control_designer_for_user_control_-_the_one_that_actually_works.aspx</link>
      <pubDate>Thu, 26 Jun 2008 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Sitefinity 3.2 Service Pack 2 released</title>
      <description>In case you've missed the post on the forum, we have released Service Pack 2 for Sitefinity 3.2 on Friday. As usually, not to repeat ourselves the full info about the release, installation instruction, known issues and of course the download link you can find at the forum announcement &lt;a href="http://www.sitefinity.com/support/forums/support-forum-thread/b1043S-bebbhc.aspx"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Let us know what you think.</description>
      <link>http://blogs.sitefinity.com/Ivan/Post/08-06-02/sitefinity_3_2_service_pack_2_released.aspx</link>
      <pubDate>Mon, 02 Jun 2008 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>ArchiveControl workaround - per popular demand</title>
      <description>&lt;p&gt;We've had archive control as a Sitefinity built in control for a brief time, however there were some performance issues with it, so we took it out - until we get time to rebuild it.&lt;br /&gt;&lt;br /&gt;We've got quite a few complaints about removing that control and most of the people told us the old control worked just fine for them. So, I've created a new ArchiveControl for blogs and will publish it in this post, together with the source.&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;The basic idea&lt;/h3&gt;&lt;p&gt;&lt;br /&gt;To have archive functionality on our site, we obviously need an archive control. However, we are also going to need a modified BlogPosts control that will know how to show only the posts for a particular month and year. So, for this workaround I have created two custom controls:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;ArchiveListControl&lt;/strong&gt; - this control will display the list of month/year pairs together with the number of posts published in that month. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;BlogPostsArchiveSupport&lt;/strong&gt; - custom control that inherits BlogPosts control and overrides CreateFilter function so that it can recognize and correctly implement query string passed by ArchiveListControl.&lt;br /&gt;&lt;br /&gt;Both controls are very simple and I have commented the more important parts, so I won't go into too much details. Depending on the version you are working with, you may need to rebuild the controls with correct references (I was working on 3.2 SP 1 version).&lt;br /&gt;&lt;br /&gt;Anyhow, the compiled controls together with the source you can &lt;a href="/Ivan/Downloads/BlogsArchive.zip"&gt;download from here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Let me know if you have any questions.&lt;br /&gt;&lt;br /&gt;p.s. with very little work you can extend of modify these controls to support Events archive, News archive and so on.&lt;br /&gt;&lt;/p&gt;</description>
      <link>http://blogs.sitefinity.com/Ivan/Post/08-05-12/archivecontrol_workaround_per_popular_demand.aspx</link>
      <pubDate>Mon, 12 May 2008 00:00:00 GMT</pubDate>
    </item>
  </channel>
</rss>