<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Sitefinity blog</title>
	<atom:link href="http://sitefinity.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://sitefinity.wordpress.com</link>
	<description>Inspider by End-Users, Built for Developers</description>
	<lastBuildDate>Tue, 26 Jun 2007 09:13:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='sitefinity.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Sitefinity blog</title>
		<link>http://sitefinity.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://sitefinity.wordpress.com/osd.xml" title="Sitefinity blog" />
	<atom:link rel='hub' href='http://sitefinity.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Finally! Blog moved to Sitefinity.</title>
		<link>http://sitefinity.wordpress.com/2007/06/26/finally-blog-moved-to-sitefinity/</link>
		<comments>http://sitefinity.wordpress.com/2007/06/26/finally-blog-moved-to-sitefinity/#comments</comments>
		<pubDate>Tue, 26 Jun 2007 09:13:55 +0000</pubDate>
		<dc:creator>Ivan Osmak</dc:creator>
		
		<guid isPermaLink="false">http://sitefinity.wordpress.com/2007/06/26/finally-blog-moved-to-sitefinity/</guid>
		<description><![CDATA[Dear readers, finally the Sitefinity Developer blog has been moved over to Sitefinity. WordPress has been a really nice platform to kick-start this blog, but as my blog needs more and more flexibility I have decided to move it to Sitefinity. The new address of the blog is : &#160; blogs.sitefinity.com &#160; So please, update [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=62&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Dear readers,</p>
<p>finally the Sitefinity Developer blog has been moved over to Sitefinity. WordPress has been a really nice platform to kick-start this blog, but as my blog needs more and more flexibility I have decided to move it to Sitefinity. The new address of the blog is :</p>
<p align="center">&nbsp;</p>
<p align="center"><a href="http://blogs.sitefinity.com">blogs.sitefinity.com</a></p>
<p align="center">&nbsp;</p>
<p align="left">So please, update your bookmarks as well as RSS subscriptions. I hope you&#8217;ll enjoy the new blog.</p>
<p align="center"> <a href="http://sitefinity.files.wordpress.com/2007/06/new_blog.jpg" title="blogs.sitefinity.com"><img src="http://sitefinity.files.wordpress.com/2007/06/new_blog.jpg?w=544" alt="blogs.sitefinity.com" /></a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sitefinity.wordpress.com/62/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sitefinity.wordpress.com/62/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sitefinity.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sitefinity.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sitefinity.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sitefinity.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sitefinity.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sitefinity.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sitefinity.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sitefinity.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sitefinity.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sitefinity.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sitefinity.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sitefinity.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sitefinity.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sitefinity.wordpress.com/62/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=62&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sitefinity.wordpress.com/2007/06/26/finally-blog-moved-to-sitefinity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/650cee6940977f5ec5f9a8a11affe26e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ivan Osmak</media:title>
		</media:content>

		<media:content url="http://sitefinity.files.wordpress.com/2007/06/new_blog.jpg" medium="image">
			<media:title type="html">blogs.sitefinity.com</media:title>
		</media:content>
	</item>
		<item>
		<title>A forgotten post : Registring a Custom Module with Sitefinity</title>
		<link>http://sitefinity.wordpress.com/2007/06/14/a-forgotten-post-registring-a-custom-module-with-sitefinity/</link>
		<comments>http://sitefinity.wordpress.com/2007/06/14/a-forgotten-post-registring-a-custom-module-with-sitefinity/#comments</comments>
		<pubDate>Thu, 14 Jun 2007 10:48:24 +0000</pubDate>
		<dc:creator>Ivan Osmak</dc:creator>
				<category><![CDATA[Building a pluggable module]]></category>

		<guid isPermaLink="false">http://sitefinity.wordpress.com/2007/06/14/a-forgotten-post-registring-a-custom-module-with-sitefinity/</guid>
		<description><![CDATA[Over the last week or so I&#8217;ve received several comments asking how to register a custom module in Sitefinity. Obviously, this post should have been written way before in the Building a pluggable module section, but I have somehow missed it. I apologize and would like to thank the kind readers that pointed that out. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=60&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://sitefinity.files.wordpress.com/2007/06/screenshot001.jpg" title="Custom module 101"><img src="http://sitefinity.files.wordpress.com/2007/06/screenshot001.jpg?w=544" alt="Custom module 101" align="right" /></a>Over the last week or so I&#8217;ve received several comments asking how to register a custom module in Sitefinity. Obviously, this post should have been written way before in the <a href="http://sitefinity.wordpress.com/tag/building-a-pluggable-module/" target="_blank">Building a pluggable module</a> section, but I have somehow missed it. I apologize and would like to thank the kind readers that pointed that out.</p>
<p>So here it goes&#8230; registring the module with Sitefinty. In case you have not already downloaded the latest download of  Contacts Module project, you can do it <a href="http://iosmak.googlepages.com/Contacts_22_5_2007.zip">here</a>. The zip file contains two projects : Sample.Contacts and Sample.Contacts.Data.</p>
<p>You need to add both of those projects to your existing project in Visual Studio in effect creating a solution. If you already have a solution, just add those two projects. Then add both projects as a reference to the WebSite project (Sitefinity website).</p>
<p>Now that you have that project, let&#8217;s see what we need to do to register it.</p>
<p><strong>1. You should add the config section for contacts module to your web.config. So find in your web.config &lt;configSections&gt; element, and then inside if &lt;sectionGroup name=&#8221;telerik&#8221;&gt; element. Paste the underline line inside that element.</strong></p>
<p><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;">&lt;</span></font><font color="maroon" face="Courier New" size="2"><span style="font-size:10pt;color:maroon;">configSections</span></font><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;">&gt;<br />
&lt;</span></font><font color="maroon" face="Courier New" size="2"><span style="font-size:10pt;color:maroon;">sectionGroup</span></font><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;"> </span></font><font color="red" face="Courier New" size="2"><span style="font-size:10pt;color:red;">name</span></font><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;">=</span></font><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;">&#8220;<font color="blue"><span style="color:blue;">telerik</span></font>&#8220;<font color="blue"><span style="color:blue;">&gt;</span></font><br />
<u><font color="#000000">&lt;</font></u></span></font><u><font color="#000000" face="Courier New" size="2"><span style="font-size:10pt;color:maroon;">section</span></font><font color="#000000" face="Courier New" size="2"><span style="font-size:10pt;color:blue;"> </span></font><font color="#000000" face="Courier New" size="2"><span style="font-size:10pt;color:red;">name</span></font><font color="#000000" face="Courier New" size="2"><span style="font-size:10pt;color:blue;">=</span></font></u><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;"><u><font color="#000000">&#8220;</font><font color="#000000"><span style="color:blue;">contacts</span>&#8220;</font><font color="#000000"><span style="color:blue;"> </span></font><font color="#000000"><span style="color:red;">type</span></font><font color="#000000"><span style="color:blue;">=</span>&#8220;</font><font color="#000000"><span style="color:blue;">Sample.Contacts.Configuration.SectionHandler, Sample.Contacts</span>&#8220;</font><font color="#000000"><span style="color:blue;"></span></font><font color="#000000"><span style="color:red;"> requirePermission</span></font><font color="#000000"><span style="color:blue;">=</span>&#8220;</font><font color="#000000"><span style="color:blue;">false</span>&#8220;</font><font color="#000000"><span style="color:blue;">/&gt;</span></font></u><br />
&lt;/</span></font><font color="maroon" face="Courier New" size="2"><span style="font-size:10pt;color:maroon;">sectionGroup</span></font><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;">&gt;<br />
&lt;/</span></font><font color="maroon" face="Courier New" size="2"><span style="font-size:10pt;color:maroon;">configSections</span></font><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;">&gt;</span></font></p>
<p>Sample.Contacts is the name of the project. SectionHandler is the class inheriting the base class ConfigurationSection and contains the functionality for loading and accessing the contacts section information.</p>
<p>2. <strong> Add the contacts section inside of telerik section group.Your contacts section will allow you to set various settings required by Contacts module. So find the &lt;telerik&gt; element and past the underlined text somewhere inside it (be careful &lt;telerik&gt; element must be a immediate parent of &lt;contacts&gt; section here).</strong></p>
<p><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;">&lt;</span></font><font color="maroon" face="Courier New" size="2"><span style="font-size:10pt;color:maroon;">telerik</span></font><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;">&gt;<br />
<u>&lt;</u></span></font><u><font color="maroon" face="Courier New" size="2"><span style="font-size:10pt;color:maroon;">contacts</span></font><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;"> </span></font><font color="red" face="Courier New" size="2"><span style="font-size:10pt;color:red;">defaultProvider</span></font><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;">=</span></font><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;">&#8220;<font color="blue"><span style="color:blue;">Sitefinity</span></font>&#8220;<font color="blue"><span style="color:blue;">&gt;</span></font><br />
</span></font></u><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;">      </span></font><u><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;">&lt;</span></font><font color="maroon" face="Courier New" size="2"><span style="font-size:10pt;color:maroon;">providers</span></font><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;">&gt;<br />
</span></font></u><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;">        </span></font><u><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;">&lt;</span></font><font color="maroon" face="Courier New" size="2"><span style="font-size:10pt;color:maroon;">clear</span></font><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;">/&gt;<br />
</span></font></u><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;">        </span></font><u><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;">&lt;</span></font><font color="maroon" face="Courier New" size="2"><span style="font-size:10pt;color:maroon;">add</span></font><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;"> </span></font><font color="red" face="Courier New" size="2"><span style="font-size:10pt;color:red;">name</span></font><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;">=</span></font><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;">&#8220;<font color="blue"><span style="color:blue;">Sitefinity</span></font>&#8220;<font color="blue"><span style="color:blue;"> </span></font><font color="red"><span style="color:red;">securityProviderName</span></font><font color="blue"><span style="color:blue;">=</span></font>&#8220;&#8221;<font color="blue"><span style="color:blue;"> </span></font><font color="red"><span style="color:red;">type</span></font><font color="blue"><span style="color:blue;">=</span></font>&#8220;<font color="blue"><span style="color:blue;">Sample.Contacts.Data.DefaultProvider, Sample.Contacts.Data</span></font>&#8220;<font color="blue"><span style="color:blue;"> </span></font><font color="red"><span style="color:red;">connectionStringName</span></font><font color="blue"><span style="color:blue;">=</span></font>&#8220;<font color="blue"><span style="color:blue;">DefaultConnection</span></font>&#8220;<font color="blue"><span style="color:blue;"> </span></font><font color="red"><span style="color:red;">visible</span></font><font color="blue"><span style="color:blue;">=</span></font>&#8220;<font color="blue"><span style="color:blue;">true</span></font>&#8220;<font color="blue"><span style="color:blue;"> /&gt;</span></font><br />
</span></font></u><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;">      </span></font><u><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;">&lt;/</span></font><font color="maroon" face="Courier New" size="2"><span style="font-size:10pt;color:maroon;">providers</span></font><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;">&gt;<br />
</span></font></u><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;">   </span></font><u><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;">&lt;/</span></font><font color="maroon" face="Courier New" size="2"><span style="font-size:10pt;color:maroon;">contacts</span></font></u><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;"><u>&gt;</u><br />
&lt;/</span></font><font color="maroon" face="Courier New" size="2"><span style="font-size:10pt;color:maroon;">telerik</span></font><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;">&gt;</span></font></p>
<p>As you can see the first and most rudimentary setting we need to set is the provider for this module. Sample.Contacts.Data is the data project for the Contacts module and DefaultProvider is the class providing an implementation for the provider model.</p>
<p><strong>3. Finally, you have to register the module. The previous two steps were needed by the module, this last step actually registers the module with Sitefinity. Find the &lt;framework&gt; element and then &lt;modules&gt; element inside of it. Paste the underlined line inside of &lt;module&gt; element.</strong></p>
<p><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;">&lt;</span></font><font color="maroon" face="Courier New" size="2"><span style="font-size:10pt;color:maroon;">framework</span></font><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;">&gt;<br />
&lt;</span></font><font color="maroon" face="Courier New" size="2"><span style="font-size:10pt;color:maroon;">modules</span></font><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;">&gt;<br />
<u>&lt;</u></span></font><u><font color="maroon" face="Courier New" size="2"><span style="font-size:10pt;color:maroon;">add</span></font><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;"> </span></font><font color="red" face="Courier New" size="2"><span style="font-size:10pt;color:red;">type</span></font><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;">=</span></font></u><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;"><u>&#8220;<font color="blue"><span style="color:blue;"> Sample.Contacts.ContactsModule, Sample.Contacts</span></font>&#8220;<font color="blue"><span style="color:blue;">/&gt;</span></font></u><br />
&lt;/</span></font><font color="maroon" face="Courier New" size="2"><span style="font-size:10pt;color:maroon;">modules</span></font><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;">&gt;<br />
&lt;/</span></font><font color="maroon" face="Courier New" size="2"><span style="font-size:10pt;color:maroon;">framework</span></font><font color="blue" face="Courier New" size="2"><span style="font-size:10pt;color:blue;">&gt;</span></font></p>
<p>ContactsModule is the class, providing substantial information for your custom module. In my previous posts I&#8217;ve referred to this class as the main module class also. That&#8217;s the one inheriting WebModule class.</p>
<p>That&#8217;s all. Let me know if you need any other assistance.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sitefinity.wordpress.com/60/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sitefinity.wordpress.com/60/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sitefinity.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sitefinity.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sitefinity.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sitefinity.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sitefinity.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sitefinity.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sitefinity.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sitefinity.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sitefinity.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sitefinity.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sitefinity.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sitefinity.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sitefinity.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sitefinity.wordpress.com/60/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=60&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sitefinity.wordpress.com/2007/06/14/a-forgotten-post-registring-a-custom-module-with-sitefinity/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/650cee6940977f5ec5f9a8a11affe26e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ivan Osmak</media:title>
		</media:content>

		<media:content url="http://sitefinity.files.wordpress.com/2007/06/screenshot001.jpg" medium="image">
			<media:title type="html">Custom module 101</media:title>
		</media:content>
	</item>
		<item>
		<title>What&#8217;s going on?</title>
		<link>http://sitefinity.wordpress.com/2007/06/05/whats-going-on/</link>
		<comments>http://sitefinity.wordpress.com/2007/06/05/whats-going-on/#comments</comments>
		<pubDate>Tue, 05 Jun 2007 22:21:45 +0000</pubDate>
		<dc:creator>Ivan Osmak</dc:creator>
		
		<guid isPermaLink="false">http://sitefinity.wordpress.com/2007/06/05/whats-going-on/</guid>
		<description><![CDATA[Dear readers, As you may have noticed I&#8217;ve been rather quiet for the past several days. No, this blog is not slowing down and this will not become a practice. On the contrary! I&#8217;m in the process of moving the blog from WordPress to Sitefinity which will allow me to demonstrate the examples live on [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=58&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Dear readers,</p>
<p><a href="http://sitefinity.files.wordpress.com/2007/06/741283_boredom_1.jpg" title="No I’ve not been lazy!"><img src="http://sitefinity.files.wordpress.com/2007/06/741283_boredom_1.jpg?w=544" alt="No I’ve not been lazy!" align="right" /></a>As you may have noticed I&#8217;ve been rather quiet for the past several days. No, this blog is not slowing down and this will not become a practice. On the contrary! I&#8217;m in the process of moving the blog from WordPress to Sitefinity which will allow me to demonstrate the examples live on the new blog. I&#8217;m also creating a UserControl that will allow you to move any blog with RSS to Sitefinity (and demonstrate at the same time how to work with blogs and rss in Sitefinity!).</p>
<p>Once I move the blog I plan to extend it with different widgets which you will be able to download and use on your own blogs.</p>
<p>So as you can see, there is a lot of goodness coming your way, but I must ask you for a bit more patience.</p>
<p>Thank you all and see you soon on the spanking new Sitefinity blog!</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sitefinity.wordpress.com/58/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sitefinity.wordpress.com/58/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sitefinity.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sitefinity.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sitefinity.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sitefinity.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sitefinity.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sitefinity.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sitefinity.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sitefinity.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sitefinity.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sitefinity.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sitefinity.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sitefinity.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sitefinity.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sitefinity.wordpress.com/58/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=58&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sitefinity.wordpress.com/2007/06/05/whats-going-on/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/650cee6940977f5ec5f9a8a11affe26e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ivan Osmak</media:title>
		</media:content>

		<media:content url="http://sitefinity.files.wordpress.com/2007/06/741283_boredom_1.jpg" medium="image">
			<media:title type="html">No I’ve not been lazy!</media:title>
		</media:content>
	</item>
		<item>
		<title>Sitefinity Meets Web 2.0 (part 2) : Dating site</title>
		<link>http://sitefinity.wordpress.com/2007/05/28/sitefinity-meets-web-20-part-2-dating-site/</link>
		<comments>http://sitefinity.wordpress.com/2007/05/28/sitefinity-meets-web-20-part-2-dating-site/#comments</comments>
		<pubDate>Mon, 28 May 2007 19:29:01 +0000</pubDate>
		<dc:creator>Ivan Osmak</dc:creator>
				<category><![CDATA[Pushing the envelope]]></category>

		<guid isPermaLink="false">http://sitefinity.wordpress.com/2007/05/28/sitefinity-meets-web-20-part-2-dating-site/</guid>
		<description><![CDATA[Undoubtedly, it takes a programmer to write about dating and romance, while using diagrams, classes, methods&#8230; Furthermore, it is also only a programmer that won&#8217;t be considered pervert if writes about dating and titles one of the sections &#8220;Basic implementation idea&#8221;. So without further ado&#8230; This post will describe how you can use Sitefinity to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=55&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p align="center"><a href="http://sitefinity.files.wordpress.com/2007/05/dating_site_header.jpg" title="Sitefinity Meets Web 2.0 - Dating site"><img src="http://sitefinity.files.wordpress.com/2007/05/dating_site_header.jpg?w=544" alt="Sitefinity Meets Web 2.0 - Dating site" /></a></p>
<p align="left">Undoubtedly, it takes a programmer to write about dating and romance, while using diagrams, classes, methods&#8230; Furthermore, it is also only a programmer that won&#8217;t be considered pervert if writes about dating and titles one of the sections &#8220;Basic implementation idea&#8221;. So without further ado&#8230;</p>
<p align="left">This post will describe how you can use Sitefinity to roll out your own dating site.</p>
<p align="left"><strong>Basic idea</strong></p>
<p align="left">As complicated as it may sometimes seem, dating is nothing more than two people meeting each other. So that&#8217;s the premise we&#8217;ll use for our application as well. Each user that wishes to find a date through our site needs to create his/her own profile. Profile is a collection of arbitrarily important facts about that person (ranging from very important such as who is the person looking for &#8211; man or a woman &#8211; to trivial facts as preferred drink). For each profile we are going to create an actual web page, so each user can have a unique url.</p>
<p align="left">We&#8217;ll create two templates that will be used for creating user pages. One for female users and one for male users.</p>
<p align="left">All profiles will be accessible only to other users with other profiles and they will be able to filter out potential dates on certain criteria.</p>
<p align="left"><strong>Short features list</strong></p>
<ul>
<li>Each user creates a profile in order to participate in dating site</li>
<li>Each profile has it&#8217;s own page</li>
<li>To create a profile users need to supply following information :
<ul>
<li>First name ( <strong>required</strong> )</li>
<li>Sex ( <strong>required</strong> )</li>
<li>Sex of a person user is seeking ( <strong>required</strong> )</li>
<li>Birth date ( <strong>required</strong> )</li>
<li>Picture ( <strong>required</strong> )</li>
<li>Number of optional information : height, weight, body type, eye color, hair, smoking, drinking, education, employment status, marital status&#8230;</li>
</ul>
</li>
<li> Users will be able to send private messages to each other. That will be the only way for two users to get in contact, since no email addresses or phone numbers will be displayed.</li>
<li>Users will be able to browse profiles of other users by filtering the preferences</li>
</ul>
<p><strong>Basic implementation idea</strong></p>
<p>Similar to the <a href="http://sitefinity.wordpress.com/2007/05/19/sitefinity-meets-web-20-part-1-digg-clone-application/" target="_blank">Digg-clone application</a> in this application we don&#8217;t need administrative controls, since users are doing all the work.  Take a look at the simple diagram showing the components we&#8217;ll need to build in order to create dating site.</p>
<p align="center"><a href="http://sitefinity.files.wordpress.com/2007/05/dating_site_components.gif" title="Dating site components"><img src="http://sitefinity.files.wordpress.com/2007/05/dating_site_components.gif?w=544" alt="Dating site components" /></a></p>
<p align="left">Let me start by explaining the web controls that we need to create.</p>
<ul>
<li><strong>User Profile</strong> &#8211; this is a key web control of this web application. This control we will implement as a <a href="http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.detailsview.aspx" target="_blank">DetailsView</a> control. The view mode will be accessible by all users who have their own Profile. The edit mode will be accessible only by the user that owns the profile. And the insert mode we will use when user is creating the profile for the very first time.</li>
<li><strong>User Messages</strong> &#8211; this is the control that will allow users to communicate among each other. To protect each user&#8217;s privacy we won&#8217;t display email or phone on the user profile and initial contact will be possible only through the <strong>User Messages</strong> control. This control has two modes : a) post a message and b) read / reply / delete messages. To the owner of a profile this control will appear in b) mode, while to other users it will appear in a) mode.</li>
<li><strong>All Profiles</strong> &#8211; this is a control that will display all the profiles in <a href="http://www.telerik.com/products/aspnet/controls/grid/overview.aspx" target="_blank">RadGrid</a> control. Profiles can be sorted, filtered by specific criteria (such as age, sex, smoking etc.). By clicking on a particular profile user will be taken to the individual page of that profile.</li>
</ul>
<p>Two other things we need to create are templates for a man profile and woman profile.  In case you are unfamiliar with templates and how to create them you can consult a developer manual (I&#8217;ll write a blog post on this topic this week as well). So, when user creates a profile, we&#8217;ll create a new page in Sitefinity and assign appropriate template to that page based on the user&#8217;s sex.</p>
<p><strong>Creating a data provider</strong></p>
<p>Since we are working with a structured data (we can&#8217;t just let users type whatever they feel like, we need a very specific info about them) we need to create a data provider for user profiles. Consider the following diagram to see how are we going to work with data.</p>
<p align="center"><a href="http://sitefinity.files.wordpress.com/2007/05/dating_site_data_provider.gif" title="Dating site - data provider"><img src="http://sitefinity.files.wordpress.com/2007/05/dating_site_data_provider.gif?w=544" alt="Dating site - data provider" /></a></p>
<p align="left"><strong>UserProfile.dbclass</strong> is a <a href="http://www.nolics.net/" target="_blank">Nolics</a> implementation of database table that will hold all information regarding a user profile. As you can see there is also a PageID field in this table. That field holds the id of Sitefinity page where this User profile will be located. But that will also gives us a reference other way around. When user opens a particular page we will simply search all the profiles to find a profile whose PageID matches the id of that page and load that profile in User Profile DetailsView control.</p>
<p align="left"><strong>Note that all the pages will be exactly the same (they will look like a template). All the web controls will be added directly to the templates. Based on the page (and it&#8217;s id) we will just bind DetailsView (User Profile) and RadGrid (User Messages) to different data.</strong></p>
<p align="left">Since we can dynamically set the template of each page, when we create a page that will hold user&#8217;s profile we&#8217;ll take into account the sex of user and set the appropriate (man/woman) template for that page.</p>
<p align="left"><strong>UserMessages.dbclass</strong> is a Nolics implementation of database table that will hold all the messages users exchange. All the fields are pretty obvious, except maybe ParentMessageID. This we&#8217;ll use for replies so that we can group messages and replies to be more user friendly.</p>
<p align="left">And the very least thing we have on the diagram is Telerik.CMS namespace. This namespace we will use to create Sitefinity pages when user creates a profile and to set templates.</p>
<p align="left">In case you are not sure how would you create Data Provider (it should be an assembly, .dll file) you can check how is Contacts.Data assembly implemented in following posts (there is also a link to download the project in the second post) :</p>
<ul>
<li><a href="http://sitefinity.wordpress.com/2007/05/16/building-a-module-for-sitefinity-part-5-module-structure/">Building a Module for Sitefinity (part 5) : Module structure</a></li>
<li><a href="http://sitefinity.wordpress.com/2007/05/22/building-a-module-for-sitefinity-part-6-anatomy-of-a-web-control/">Building a module for Sitefinity (part 6) : Anatomy of a web control</a></li>
</ul>
<p><strong>Ideas for improving the application</strong></p>
<ul>
<li>Implement &#8220;hot or not&#8221; voting on each profile</li>
<li>Create an algorithm that will attempt to match &#8220;perfect&#8221; couples and give suggestions to users</li>
<li>Provider users with an ability to post video clips on their profiles</li>
</ul>
<p><strong>List of Sitefinity API members and namespaces you should use to accomplish this task</strong></p>
<p>Namespace : Telerik.CMS</p>
<ul>
<li>ICmsPage &#8211; interface that defines cms page</li>
<li>IPage &#8211; more abstract page interface implemented by ICmsPage</li>
<li>IPageBase &#8211; interface that descibes any page (not necessarily cms page) in Sitefinity. Implemented by IPage interface</li>
<li>CmsManager &#8211; class with methods for working with pages and templates</li>
</ul>
<p><strong>Summary</strong></p>
<p>If you are about to create this application you can learn a lot by examining the JobsIntraSite module that comes with Sitefinity. Obviously, you would not care about the ControlPanel and CommandPanel controls of JobsIntraSite module since you don&#8217;t need administrative access, but you can see how data provider (Telerik.Samples.Jobs.Data) is implemented there and also learn how to work with Nolics from declarative code which you will use for all of your web controls.</p>
<p>Good luck!</p>
<p align="left">&nbsp;</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sitefinity.wordpress.com/55/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sitefinity.wordpress.com/55/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sitefinity.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sitefinity.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sitefinity.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sitefinity.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sitefinity.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sitefinity.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sitefinity.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sitefinity.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sitefinity.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sitefinity.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sitefinity.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sitefinity.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sitefinity.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sitefinity.wordpress.com/55/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=55&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sitefinity.wordpress.com/2007/05/28/sitefinity-meets-web-20-part-2-dating-site/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/650cee6940977f5ec5f9a8a11affe26e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ivan Osmak</media:title>
		</media:content>

		<media:content url="http://sitefinity.files.wordpress.com/2007/05/dating_site_header.jpg" medium="image">
			<media:title type="html">Sitefinity Meets Web 2.0 - Dating site</media:title>
		</media:content>

		<media:content url="http://sitefinity.files.wordpress.com/2007/05/dating_site_components.gif" medium="image">
			<media:title type="html">Dating site components</media:title>
		</media:content>

		<media:content url="http://sitefinity.files.wordpress.com/2007/05/dating_site_data_provider.gif" medium="image">
			<media:title type="html">Dating site - data provider</media:title>
		</media:content>
	</item>
		<item>
		<title>Working with complex properties in Custom public controls (WebTypeEditor)</title>
		<link>http://sitefinity.wordpress.com/2007/05/25/working-with-complex-properties-in-custom-public-controls-webtypeeditor/</link>
		<comments>http://sitefinity.wordpress.com/2007/05/25/working-with-complex-properties-in-custom-public-controls-webtypeeditor/#comments</comments>
		<pubDate>Fri, 25 May 2007 11:21:11 +0000</pubDate>
		<dc:creator>Ivan Osmak</dc:creator>
				<category><![CDATA[Tip of the week]]></category>

		<guid isPermaLink="false">http://sitefinity.wordpress.com/2007/05/25/working-with-complex-properties-in-custom-public-controls-webtypeeditor/</guid>
		<description><![CDATA[When working with Sitefinity, specifically with public web controls (such as Image of Posts list) you may have noticed some properties that have a &#8220;Select&#8221; button next to them. Those properties (we&#8217;ll call them Complex properties for the purpose of this post) have one thing in common : It is impossible or very hard for [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=51&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When working with Sitefinity, specifically with public web controls (such as Image of Posts list) you may have noticed some properties that have a &#8220;Select&#8221; button next to them. Those properties (we&#8217;ll call them Complex properties for the purpose of this post) have one thing in common : It is impossible or very hard for the user to type in the value of those properties so another window opens and let&#8217;s user visually determine the value of that property.</p>
<p>To show you how you can implement those complex property editors, I&#8217;ve created a short project called Quotes. The project has two controls :</p>
<ol>
<li><strong>QuoteList</strong> &#8211; public control that displays all quotes inside of one category of quotes (this control has a complex property Quotes, which can be edited in <strong>QuotesSelector</strong> control)</li>
<li><strong>QuotesSelector</strong> &#8211; web editor control that let&#8217;s user select which category of quotes to display</li>
</ol>
<p align="left">Take a look at the following screenshots to get the idea of the functionality that&#8217;s being described :</p>
<p align="center"><a href="http://sitefinity.files.wordpress.com/2007/05/complex_property1.gif" title="Complex property"><img src="http://sitefinity.files.wordpress.com/2007/05/complex_property1.gif?w=544" alt="Complex property" /></a></p>
<p align="center"> <a href="http://sitefinity.files.wordpress.com/2007/05/complex_property2.gif" title="Complex property editor"><img src="http://sitefinity.files.wordpress.com/2007/05/complex_property2.gif?w=544" alt="Complex property editor" /></a></p>
<p align="left"> Though the project is available for download and it is commented, let me just simply explain the concept.</p>
<p align="left">You create a custom control as you would usually (same principle applies if your custom control is part of module as well) and then you set up a complex property just as any other you would. So my complex property is named <strong>Quotes </strong>and it&#8217;s of type string. The value of this property is the key of the dictionary that holds different categories of Quotes. Since users don&#8217;t know which categories of quotes are available I wanted to provide them with a new control that will let them choose among various Quote categories. In order to attach a Web Editor to a property I needed to add an attribute. This is how the property is defined in QuoteList control :</p>
<p align="left">[WebEditor("Sample.Quotes.QuotesSelector, Sample.Quotes")]<br />
public string Quotes<br />
{<br />
get<br />
{<br />
return this.selectedQuotesCategory;<br />
}<br />
set<br />
{<br />
this.selectedQuotesCategory = value;<br />
}<br />
}</p>
<p align="left">As you can see I&#8217;ve added WebEditor attribute and set it to QuotesSelector control, the other control in my project.</p>
<p align="left">QuotesSelector control is just another custom control where I can do whatever I please, but with one important property! The overriden Value property of WebUITypeEditor is the value that will be returned to the QuotesList Quote property when user clicks &#8220;I&#8217;m done&#8221; button. So, one central purpose of QuotesSelector control is to set the it&#8217;s Value property. How will this been done really doesn&#8217;t matter, though should be user-friendly as possible <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p align="left"><a href="http://iosmak.googlepages.com/SampleQuotes.zip" target="_blank">The Sample.Quotes project you can download here</a>. (Note : I&#8217;ve used the fake data source which is implemented in QuotesDat.cs file)</p>
<p> p.s. when you upload Sample.Quotes.dll control through page editor Both controls will appear. Since you don&#8217;t want users to be able to drag QuotesSelector control, go to web config and delete QuotesSelector from toolboxControl section.  Optionally set section of QuoteList to &#8220;Quotes&#8221;.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sitefinity.wordpress.com/51/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sitefinity.wordpress.com/51/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sitefinity.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sitefinity.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sitefinity.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sitefinity.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sitefinity.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sitefinity.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sitefinity.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sitefinity.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sitefinity.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sitefinity.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sitefinity.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sitefinity.wordpress.com/51/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sitefinity.wordpress.com/51/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sitefinity.wordpress.com/51/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=51&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sitefinity.wordpress.com/2007/05/25/working-with-complex-properties-in-custom-public-controls-webtypeeditor/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/650cee6940977f5ec5f9a8a11affe26e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ivan Osmak</media:title>
		</media:content>

		<media:content url="http://sitefinity.files.wordpress.com/2007/05/complex_property1.gif" medium="image">
			<media:title type="html">Complex property</media:title>
		</media:content>

		<media:content url="http://sitefinity.files.wordpress.com/2007/05/complex_property2.gif" medium="image">
			<media:title type="html">Complex property editor</media:title>
		</media:content>
	</item>
		<item>
		<title>Quick question!</title>
		<link>http://sitefinity.wordpress.com/2007/05/22/quick-question/</link>
		<comments>http://sitefinity.wordpress.com/2007/05/22/quick-question/#comments</comments>
		<pubDate>Tue, 22 May 2007 19:02:33 +0000</pubDate>
		<dc:creator>Ivan Osmak</dc:creator>
		
		<guid isPermaLink="false">http://sitefinity.wordpress.com/2007/05/22/quick-question/</guid>
		<description><![CDATA[Dear readers, I&#8217;m sorry that I haven&#8217;t asked this question earlier, but better late than never&#8230; Would like me to post some samples in VB.NET? So far it was only C#. Please leave a comment if you&#8217;d like some VB.NET samples. If you show the interest, I&#8217;d gladly provide you with VB.NET samples as well. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=49&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://sitefinity.files.wordpress.com/2007/05/vb_net_question.gif" title="VB.NET question"><img src="http://sitefinity.files.wordpress.com/2007/05/vb_net_question.gif?w=229&#038;h=229" alt="VB.NET question" align="left" height="229" width="229" /></a>Dear readers,</p>
<p>I&#8217;m sorry that I haven&#8217;t asked this question earlier, but better late than never&#8230;</p>
<p>Would like me to post some samples in VB.NET? So far it was only C#. Please leave a comment if you&#8217;d like some VB.NET samples. If you show the interest, I&#8217;d gladly provide you with VB.NET samples as well.</p>
<p>Thanks,<br />
Ivan</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sitefinity.wordpress.com/49/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sitefinity.wordpress.com/49/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sitefinity.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sitefinity.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sitefinity.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sitefinity.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sitefinity.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sitefinity.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sitefinity.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sitefinity.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sitefinity.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sitefinity.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sitefinity.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sitefinity.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sitefinity.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sitefinity.wordpress.com/49/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=49&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sitefinity.wordpress.com/2007/05/22/quick-question/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/650cee6940977f5ec5f9a8a11affe26e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ivan Osmak</media:title>
		</media:content>

		<media:content url="http://sitefinity.files.wordpress.com/2007/05/vb_net_question.gif" medium="image">
			<media:title type="html">VB.NET question</media:title>
		</media:content>
	</item>
		<item>
		<title>Building a module for Sitefinity (part 6) : Anatomy of a web control</title>
		<link>http://sitefinity.wordpress.com/2007/05/22/building-a-module-for-sitefinity-part-6-anatomy-of-a-web-control/</link>
		<comments>http://sitefinity.wordpress.com/2007/05/22/building-a-module-for-sitefinity-part-6-anatomy-of-a-web-control/#comments</comments>
		<pubDate>Tue, 22 May 2007 09:49:20 +0000</pubDate>
		<dc:creator>Ivan Osmak</dc:creator>
				<category><![CDATA[Building a pluggable module]]></category>

		<guid isPermaLink="false">http://sitefinity.wordpress.com/2007/05/22/building-a-module-for-sitefinity-part-6-anatomy-of-a-web-control/</guid>
		<description><![CDATA[Generally, we can say that all web controls you are going to build for Sitefinity modules have several things in common. In this post I will explain how I&#8217;ve approached building a ControlPanel control for Contacts module. Once that is explained everything else should come pretty easy to you. At the end of this post [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=46&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://sitefinity.files.wordpress.com/2007/05/davinci.jpg" title="Anatomy of web control"><img src="http://sitefinity.files.wordpress.com/2007/05/davinci.jpg?w=149&#038;h=167" alt="Anatomy of web control" align="right" height="167" width="149" /></a>Generally, we can say that all web controls you are going to build for Sitefinity modules have several things in common. In this post I will explain how I&#8217;ve approached building a ControlPanel control for Contacts module. Once that is explained everything else should come pretty easy to you. At the end of this post you&#8217;ll find a link to the project so you can download it and examine (I&#8217;ve commented the project rather extensively).</p>
<p>There are two cornerstone ideas we have when we build any kind of control :</p>
<ol>
<li><strong>Appearance of control is defined through a template. To control it should make no difference how the template is created</strong></li>
<li><strong>Working with data is done through a manager class. It should make no difference to control how is data being stored, that&#8217;s up to provider.</strong></li>
</ol>
<p>Take a look at following diagram to get a high overview of how Web controls are built in Sitefinity.</p>
<p align="center"><a href="http://sitefinity.files.wordpress.com/2007/05/web_control_diagram.gif" title="Web control diagram"><img src="http://sitefinity.files.wordpress.com/2007/05/web_control_diagram.gif?w=544" alt="Web control diagram" /></a></p>
<p align="left"><strong>Working with controls</strong></p>
<p align="left">On the left we have Web Control (blue) which represents <strong>ControlPanel</strong> in this example. This control acts as a wrapper control for the actual controls of ControlPanel. The child controls being (if you forgot how control panel should look like, take a look at this mockup <a href="http://sitefinity.files.wordpress.com/2007/04/main_screen_small.jpg" title="Contacts module &gt; View mode">Contacts module &gt; View mode</a>) :</p>
<ol>
<li><strong>Add new contact</strong> &#8211; when clicked Control panel should switch from list mode to insert mode</li>
<li><strong>Contacts grid</strong> &#8211; Rad Grid that lists all the contacts</li>
<li><strong>Contact Editor</strong> &#8211; this control serves a purpose of adding new contacts or editing existing contacts (if you forgot, this is how this control looks like <a href="http://sitefinity.files.wordpress.com/2007/04/new_contact.jpg" title="Contacts module &gt; Insert / edit mode">Contacts module &gt; Insert / edit mode)</a></li>
</ol>
<p>In order to allow designer / user experience expert to modify the look and feel of the controls without messing with the code and recompiling we load controls from template. This is where the GenericContainer kicks in. We are always going to instantiate the template inside a class that inherits from GenericContainer. Generic Container class allows us to define controls that are absolutely necessary for ControlPanel to be working (required controls), but also allows us to define the controls that can be there, but are not necessary (optional controls). So if a template creator forgets to add a Button control with the id of &#8220;addNewContact&#8221; an exception we&#8217;ll be thrown saying that template is missing a required &#8220;addNewContact&#8221; button. By using GenericContainer class we have an easy way to make a contract between a programmer and designer.</p>
<p>Template creator has two options when it comes to creating a template without coding. One is to create an user control and set it&#8217;s path in the web.config provider or he can declaratively create template. Note that it is only possible to create declarative template if the ControlPanel is added to the page or user control declaratively as well (it&#8217;s obvious that if we add ControlPanel dynamically we can&#8217;t create template declaratively).</p>
<p>Third option for creating a template is default template, class that inherits from ITemplate. You should always implement default template because it is possible that Page object will not be accessible at one time or another (Design) and you don&#8217;t want the control to crash at that moment.</p>
<p>If all this sounds messy, take a look at the diagram once again, download the project and examine the code, and then reread it again. This whole idea is actually much simpler than it sounds.</p>
<p><strong>Working with data</strong></p>
<p>In order to keep our control as flexible as possible, all the work with data will be done through manager (ContactsManager) in this example. Depending on how you initialize manager (without the provider name it will use &#8216;DefaultProvider&#8217; or with the actual name of the provider) manager will decide which provider to use to work with data.</p>
<p>This, for example, allows you to move your data from Sql Server to XML without ever modifying the Web controls. All you need to do is create a new Data provider and initialize manager with the name of new provider.</p>
<p><strong>Few last words</strong></p>
<p>I&#8217;ve just explained the logic behind creating the controls. Understanding this logic should ease your decisions regarding where to create controls, how to bind controls to data and such. The detailed explanation you can get by examining the project, since I&#8217;ve commented all the crucial parts. Once again, if you have any questions, don&#8217;t hesitate to ask. Nothing would make me more happier that a request from you to write a blog post on a topic that has not be understood cleary <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Next steps</strong></p>
<p>Since we&#8217;ve covered most of the topics so far, I won&#8217;t be explaining the project step-by-step anymore, but will point out important aspects. So from now on, I&#8217;ll be working more on the code and comments&#8230; while in posting I&#8217;ll let you know what has been added so you can see how to whole thing is rolling out.</p>
<p><a href="http://iosmak.googlepages.com/Contacts_22_5_2007.zip" target="_blank">YOU CAN DOWNLOAD THE PROJECT HERE</a></p>
<p>One more thing, once the module is completed I&#8217;ll make the entire solution (with Sitefinity Community Edition) available for download.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sitefinity.wordpress.com/46/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sitefinity.wordpress.com/46/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sitefinity.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sitefinity.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sitefinity.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sitefinity.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sitefinity.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sitefinity.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sitefinity.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sitefinity.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sitefinity.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sitefinity.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sitefinity.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sitefinity.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sitefinity.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sitefinity.wordpress.com/46/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=46&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sitefinity.wordpress.com/2007/05/22/building-a-module-for-sitefinity-part-6-anatomy-of-a-web-control/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/650cee6940977f5ec5f9a8a11affe26e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ivan Osmak</media:title>
		</media:content>

		<media:content url="http://sitefinity.files.wordpress.com/2007/05/davinci.jpg" medium="image">
			<media:title type="html">Anatomy of web control</media:title>
		</media:content>

		<media:content url="http://sitefinity.files.wordpress.com/2007/05/web_control_diagram.gif" medium="image">
			<media:title type="html">Web control diagram</media:title>
		</media:content>
	</item>
		<item>
		<title>Sitefinity meets Web 2.0 (part 1) : Digg-clone application</title>
		<link>http://sitefinity.wordpress.com/2007/05/19/sitefinity-meets-web-20-part-1-digg-clone-application/</link>
		<comments>http://sitefinity.wordpress.com/2007/05/19/sitefinity-meets-web-20-part-1-digg-clone-application/#comments</comments>
		<pubDate>Sat, 19 May 2007 21:28:42 +0000</pubDate>
		<dc:creator>Ivan Osmak</dc:creator>
				<category><![CDATA[Pushing the envelope]]></category>

		<guid isPermaLink="false">http://sitefinity.wordpress.com/2007/05/19/sitefinity-meets-web-20-part-1-digg-clone-application/</guid>
		<description><![CDATA[&#160; Sitefinity 3.0 is much more than just a CMS. It&#8217;s flexible, modular and open architecture let&#8217;s you build on top of Sitefinity virtually any kind of web application. In the first post of this series, I&#8217;ll discuss how could one approach building a Digg-clone web application. It&#8217;s actually much simpler than you may think. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=41&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p align="center"><a href="http://sitefinity.files.wordpress.com/2007/05/digg_clone_header.jpg" title="Digg-clone application with Sitefinity 3.0"><img src="http://sitefinity.files.wordpress.com/2007/05/digg_clone_header.jpg?w=544" alt="Digg-clone application with Sitefinity 3.0" /></a></p>
<p align="center">&nbsp;</p>
<p align="left">Sitefinity 3.0 is much more than just a CMS. It&#8217;s  flexible, modular and open architecture let&#8217;s you build on top of Sitefinity virtually any kind of web application. In the first post of this series, I&#8217;ll discuss how could one approach building a Digg-clone web application. It&#8217;s actually much simpler than you may think. So&#8230; here we go.</p>
<p align="left"><strong>Basic idea</strong></p>
<p align="left">In it&#8217;s most rudimentary form, this application let&#8217;s users submit links to web pages and describe the linked story with short description and a title. Other users then,  have the option to vote for or against the submitted link / story. When story is first submitted it&#8217;s put on one page; we can call it &#8220;New stuff&#8221;. The very popular stories (stories a lot of users voted for) get on the other page; this page we can call &#8220;Popular stuff&#8221;. And that&#8217;s it&#8230; we&#8217;ll leave all the bells and whistles out for the moment being.</p>
<p align="left"><strong>Short features list</strong></p>
<ul>
<li>Users that will submit links, vote for or against the links and comment on stories need to be registered users</li>
<li>Registered  users have an ability to enter the title, short description (500 characters) and link to the story they&#8217;d like to submit</li>
<li>Each  submitted  story should have a page of it&#8217;s own</li>
<li>New stories are listed on the page &#8220;New Stuff&#8221;</li>
<li>Popular stories are listed on the page &#8220;Popular stuff&#8221;</li>
<li>Each story has buttons to vote for it or to vote against it. Only registered users can click on those buttons</li>
<li>One user can vote only once for the story</li>
<li>Users can comment on submitted stories on the story&#8217;s individual page</li>
<li>Stories appear on the &#8220;Popular stuff&#8221; page when they reach 50% of the points that average (last 100) popular stories have and they are ordered by the date and time of &#8220;becoming popular&#8221;. So if last 100 stories have 10 votes on average, this means that when story gets 5 votes it becomes popular.</li>
<li>At any time there can be only 1000 stories in &#8220;New Stuff&#8221;. If the page does not make it to be popular in the period when 1000 new stories are submitted it will be deleted.</li>
<li>Stories with 100 negative votes will be treated as spam and deleted.</li>
</ul>
<p><strong>Basic implementation idea</strong></p>
<p>Since we don&#8217;t need administration  for this kind of web application (users are doing all the work), we can implement the application solely by using custom web controls. Here is a simple chart of controls needed for this application.</p>
<p align="center"> <a href="http://sitefinity.files.wordpress.com/2007/05/digg_clone_web_controls.gif" title="Digg-clone web controls"><img src="http://sitefinity.files.wordpress.com/2007/05/digg_clone_web_controls.gif?w=544" alt="Digg-clone web controls" /></a></p>
<p align="left">So as you can see, I&#8217;ve divided controls in three categories. First is the &#8220;Digg-clone&#8221; essential controls. These controls are required to achive the basic functionality of this application. We have :</p>
<ul>
<li><strong>Submit story</strong> &#8211; this is a very basic form that lets user enter title of the story, description of the story and link to it. All we do here is save the story in the database and that&#8217;s all.</li>
<li> <strong>Stories</strong> &#8211; this is a control that lists all the stories. By altering the datasource we can use this control to display stories on &#8220;New stuff&#8221; page or alternatively on &#8220;Popular stuff&#8221; page. Alongside each of the stories we&#8217;ll display the number of votes story received and buttons &#8220;Vote for&#8221; and &#8220;Vote against&#8221;. If vote is cast, we&#8217;ll save that to database.</li>
<li><strong>Single story</strong> &#8211; when user clicks on the story in the <strong>Stories</strong> control he&#8217;ll be redirected to a page which holds our <strong>Single story</strong> control. This control displays all the info on the story, the link to the actual story and list of comments user made on this story.</li>
<li><strong>Comments</strong> &#8211; very simple control which is basically a form that let&#8217;s user leave the comment on the story. Comments are stored in the database after user enters it. Sitefinity actually has CommentsList control which you can use to display list of all comments and as a form for entering a new comment. Take a look at Telerik.Cms.Engine.WebControls.CommentsList class. If you prefer, you can use that control instead of building your own.</li>
</ul>
<p>Next we have membership controls, which are basically typical ASP.NET 2 controls. We do have to provide a way for users to register, log in and log out.</p>
<p>Finally, we have some optional controls for Digg-clone application. You can create those, but don&#8217;t really have to. It&#8217;s up to you.</p>
<ul>
<li><strong>Top 10</strong> &#8211; this control simply shows the top 10 stories that are currently most voted for. We could add a condition that top 10 stories cannot be older than 30 days just to make it more up to date.</li>
<li><strong>Voting Structure</strong> &#8211; this control has two modes or perspectives. One is to display all the users that voted for one story, other one is to display all the stories user voted for or against. Though not essential, it&#8217;s one of those hype social kind of things.</li>
</ul>
<p>And here is the point where Sitefinity API kicks in! Take a look at following diagram that will show you that all you really need to do is extend Sitefinity with only one database table and several methods. Everything else is there for your convenience.</p>
<p align="center"><a href="http://sitefinity.files.wordpress.com/2007/05/digg_clone_reuse.gif" title="Digg-clone reuse"><img src="http://sitefinity.files.wordpress.com/2007/05/digg_clone_reuse.gif?w=544" alt="Digg-clone reuse" /></a></p>
<p align="left">Because the submitted stories are nothing more than <strong>content</strong> we&#8217;ll treat them as such and use Telerik.Cms.Engine assembly which handles most of the work for GenericContent, Blogs and News modules. For the extra info (such as link to the original story, number of votes for and against the story) we&#8217;ll use powerful MetaData class which allows us to add arbitrary information related to the specific content (for example in News module that&#8217;s how we store &#8220;Source&#8221; information).</p>
<p align="left">What you are left to do is implement the code to handle User Info data and create a Nolics dbclass for holding this info in database. In the User Info table we&#8217;ll hold data on which user voted for particular story and how did he vote.</p>
<p align="left">So, in addition to creating web controls you&#8217;ll have to add assembly that will handle data. Let&#8217;s call that assembly Stories.Data</p>
<p align="left">In this assembly you need classes UserInfo.dbclass and DefaultStoryProvider.cs. First class as I have said is responsible for persisting UserInfo data, while other class should inherit from Telerik.Cms.Engine.Data.Providers.DefaultProvider class. That way you&#8217;ll be able to access methods such as CreateContent, SaveContent, GetContent, GetMetaData etc. You would need to add only methods such as CreateUserInfo, UpdateUserInfo and such.</p>
<p align="left"><strong>Ideas for improving the application</strong></p>
<ul>
<li>Implement voting for or against the comments</li>
<li>Create story categories</li>
<li>Add tagging for stories</li>
<li>Extend application to other medias (photos, videos, podcasts&#8230;)</li>
</ul>
<p align="left"><strong>List of Sitefinity API members and namespaces you should use to accomplish this task</strong></p>
<p align="left">Namespace : Telerik.Cms.Engine</p>
<ul>
<li>IContent &#8211; content interface</li>
<li>IComment &#8211; comment interface</li>
<li>IMetaData &#8211; meta data interface</li>
</ul>
<p>Namespace : Telerik.Cms.Engine.Data</p>
<ul>
<li> Providers.DefaultProvider &#8211; use it to work with any content or comment related data
<ul>
<li>CreateContent &#8211; creates new content</li>
<li>SaveContent &#8211; saves new or updated content</li>
<li>DeleteContent &#8211; deletes content (use this to delete spam)</li>
<li>GetContent &#8211; various overloads for getting single content, list of content with paging, filtering sorting etc.</li>
<li>CreateComment &#8211; creates new comment</li>
<li>DeleteComment &#8211; deletes comment (spam for example)</li>
<li>GetComment &#8211; gets comments</li>
<li>SaveComment &#8211; saves new or updated comment</li>
<li>&#8230;</li>
</ul>
</li>
</ul>
<p>Namespace : Telerik.Security</p>
<ul>
<li> SecurityManager &#8211; use it to work with members (register, log in, log out)
<ul>
<li>Though you can use common ASP.NET way of dealing with security, by using SecurityManager you have an option to easily change Membership Provider at later stage. Also, there are several helper methods in this class.</li>
</ul>
</li>
</ul>
<p align="left"><strong>Summary</strong></p>
<p align="left">So, let&#8217;s quickly review what we need to do to get our digg-clone application up and running.</p>
<ol>
<li>Create needed web controls for user interface</li>
<li>Create Stories.Data project. Add classes UserInfo.dbclass and DefaultStoryProvider.cs which inherits from Telerik.Cms.Engine.Data.Providers.DefaultProvider</li>
<li>Register Stories provider (new cmsEngine provider) in web.config (you can take a look at the Blogs provider to see how this is being done)</li>
<li>Add metafields for your new Stories provider (you can also take a look at how is this done in case of blogs)</li>
<li>Drop the controls you&#8217;ve created on pages and voila!</li>
</ol>
<p>If you have any questions, suggestions or advice regarding this post please leave the comment or drop me an email at <a href="mailto:iosmak@gmail.com">iosmak@gmail.com</a></p>
<p align="left">&nbsp;</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sitefinity.wordpress.com/41/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sitefinity.wordpress.com/41/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sitefinity.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sitefinity.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sitefinity.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sitefinity.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sitefinity.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sitefinity.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sitefinity.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sitefinity.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sitefinity.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sitefinity.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sitefinity.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sitefinity.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sitefinity.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sitefinity.wordpress.com/41/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=41&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sitefinity.wordpress.com/2007/05/19/sitefinity-meets-web-20-part-1-digg-clone-application/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/650cee6940977f5ec5f9a8a11affe26e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ivan Osmak</media:title>
		</media:content>

		<media:content url="http://sitefinity.files.wordpress.com/2007/05/digg_clone_header.jpg" medium="image">
			<media:title type="html">Digg-clone application with Sitefinity 3.0</media:title>
		</media:content>

		<media:content url="http://sitefinity.files.wordpress.com/2007/05/digg_clone_web_controls.gif" medium="image">
			<media:title type="html">Digg-clone web controls</media:title>
		</media:content>

		<media:content url="http://sitefinity.files.wordpress.com/2007/05/digg_clone_reuse.gif" medium="image">
			<media:title type="html">Digg-clone reuse</media:title>
		</media:content>
	</item>
		<item>
		<title>Sitefinity meets Web 2.0</title>
		<link>http://sitefinity.wordpress.com/2007/05/17/sitefinity-meets-web-20/</link>
		<comments>http://sitefinity.wordpress.com/2007/05/17/sitefinity-meets-web-20/#comments</comments>
		<pubDate>Thu, 17 May 2007 21:25:51 +0000</pubDate>
		<dc:creator>Ivan Osmak</dc:creator>
				<category><![CDATA[Pushing the envelope]]></category>

		<guid isPermaLink="false">http://sitefinity.wordpress.com/2007/05/17/sitefinity-meets-web-20/</guid>
		<description><![CDATA[To break the monotony I&#8217;ve decided to make a short break from pluggable module series (though that series we&#8217;ll continue parallel with this new one) and give you the list of ten Web 2.0 applications you can build with Sitefinity! Some of you may scratch your head now and wonder if I was celebrating official [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=38&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>To break the monotony I&#8217;ve decided to make a short break from pluggable module series (though that series we&#8217;ll continue parallel with this new one) and give you the list of ten Web 2.0 applications you can build with Sitefinity! Some of you may scratch your head now and wonder if I was celebrating official release of Sitefinity 3.0 a bit more than I should of and if the common celebratory substances remaining in my body are making my blogging just little too creative. Nope. As I will show, Sitefinity 3.0 is much more than just yet another CMS.</p>
<p align="center"><a href="http://sitefinity.files.wordpress.com/2007/05/sitefinity_meets_web20.jpg" title="Sitefinity meets Web 2.0"><img src="http://sitefinity.files.wordpress.com/2007/05/sitefinity_meets_web20.jpg?w=544" alt="Sitefinity meets Web 2.0" /></a></p>
<p align="left">This, as I have already stated, will be yet another list (I&#8217;ve got hooked on lists after reading Nick Hornby&#8217;s High Fidelity).</p>
<p align="left"><strong>Ten Web 2.0 apps you can build with Sitefinity</strong></p>
<p align="left"> This is not a definite list, but I like number ten almost as much as creating lists. I also like popcorn, but that fact may be behind the scope of this post <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p align="left">So, here we go :</p>
<ol>
<li>Digg-clone application</li>
<li>Dating site</li>
<li>Photos sharing site</li>
<li>Team collaboration application</li>
<li>Feed aggregator</li>
<li>Personal organizer ( TO-DO list + Calendar)</li>
<li>Blogging platform</li>
<li>Job board</li>
<li>Social networking site</li>
<li> Wiki</li>
</ol>
<p>Now, don&#8217;t get me wrong. You will have to do some programming, but with Sitefinity you are more than half way done which ever of the listed applications you are about to build.</p>
<p>Every day, for the next ten days I will explain the rudimentary idea of how you could approach building one of the applications. For each application I will provide you with the (hehe&#8230; here we go with the lists again) :</p>
<ul>
<li><strong>Basic idea</strong></li>
<li><strong>Short features list</strong></li>
<li><strong>Basic implementation idea (user controls, modules, web controls&#8230;)</strong></li>
<li><strong>Ideas for improving the application</strong></li>
<li><strong>List of Sitefinity API methods and namespaces you should use to accomplish the task</strong></li>
<li><strong>Application diagram</strong></li>
</ul>
<p>So stay tuned, tomorrow I&#8217;ll kick it off with the Digg-clone app.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sitefinity.wordpress.com/38/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sitefinity.wordpress.com/38/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sitefinity.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sitefinity.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sitefinity.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sitefinity.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sitefinity.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sitefinity.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sitefinity.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sitefinity.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sitefinity.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sitefinity.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sitefinity.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sitefinity.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sitefinity.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sitefinity.wordpress.com/38/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=38&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sitefinity.wordpress.com/2007/05/17/sitefinity-meets-web-20/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/650cee6940977f5ec5f9a8a11affe26e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ivan Osmak</media:title>
		</media:content>

		<media:content url="http://sitefinity.files.wordpress.com/2007/05/sitefinity_meets_web20.jpg" medium="image">
			<media:title type="html">Sitefinity meets Web 2.0</media:title>
		</media:content>
	</item>
		<item>
		<title>Building a Module for Sitefinity (part 5) : Module structure</title>
		<link>http://sitefinity.wordpress.com/2007/05/16/building-a-module-for-sitefinity-part-5-module-structure/</link>
		<comments>http://sitefinity.wordpress.com/2007/05/16/building-a-module-for-sitefinity-part-5-module-structure/#comments</comments>
		<pubDate>Wed, 16 May 2007 21:12:50 +0000</pubDate>
		<dc:creator>Ivan Osmak</dc:creator>
				<category><![CDATA[Building a pluggable module]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://sitefinity.wordpress.com/2007/05/16/building-a-module-for-sitefinity-part-5-module-structure/</guid>
		<description><![CDATA[The Contacts pluggable module will be made of two assemblies : Sample.Contacts and Sample.Contacts.Data The business logic and UI will be implemented in Sample.Contacts module, while the data access we&#8217;ll be done through the Sample.Contacts.Data assembly. Take a look at the following diagram to see the big picture : Sample.Contacts assembly There are five main [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=36&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The Contacts pluggable module will be made of two assemblies : <strong>Sample.Contacts</strong> and <strong>Sample.Contacts.Data</strong></p>
<p>The business logic and UI will be implemented in <strong>Sample.Contacts</strong> module, while the data access we&#8217;ll be done through the <strong>Sample.Contacts.Data</strong> assembly. Take a look at the following diagram to see the big picture :</p>
<p align="center"><a href="http://sitefinity.files.wordpress.com/2007/05/contacts_module_diagram.gif" title="Contacts module diagram"><img src="http://sitefinity.files.wordpress.com/2007/05/contacts_module_diagram.gif?w=544" alt="Contacts module diagram" /></a></p>
<p><strong>Sample.Contacts assembly</strong></p>
<p>There are five main parts of this assembly :</p>
<ul>
<li><strong>Web controls</strong> &#8211; <strong>Admin</strong> web controls that will provide a way for authorized users to work with contacts and <strong>Public</strong> controls that will display the contacts on the pages.</li>
<li><strong>Contacts Manager</strong> &#8211; Web controls will work exclusively with <strong>Contacts Manager</strong> when manipulating data.</li>
<li><strong>Contacts Provider</strong> &#8211; <strong>Contacts manager</strong> will call the methods inside of a provider class. Since there can be more than one provider (Sql and XML for example) the <strong>Contacts Provider</strong> is an abstract class that the actual provider classes need to derive from. In addition to this, the <strong>Contacts Provider</strong> class will be used to retrieve various settings from web.config used by the module (like paths to external templates and such).</li>
<li>Both, <strong>Contacts Manager</strong> and <strong>Contacts Provider</strong> classes will get the needed settings from web.config by using <strong>Configuration</strong> classes.</li>
<li>Finally, we have <strong>Resources</strong> where all the messages and labels will be stored in case we decide to localize our module at later stage.</li>
</ul>
<p><strong>Sample.Contacts.Data assembly</strong></p>
<p>There are four main parts of this assembly :</p>
<ul>
<li><strong>Contact (dbclass) </strong>- Nolics class that will define the database object for storing contacts and it&#8217;s <strong>Contact partial class</strong> that we&#8217;ll use to add some additional functionality</li>
<li><strong>Department (dbclass) </strong>- Nolics class that will define the database object for storing departments and it&#8217;s <strong>Department partial class</strong> that we&#8217;ll use to add some additional functionality</li>
<li><strong>Default Provider</strong> &#8211; This class derives from <strong>Contacts Provider</strong> abstract class and will actually implement all the data manipulation methods (such as inserting a new job, deleting a department etc.)</li>
<li><strong>Resources</strong> &#8211; here mostly to hold error and exception messages in case we decide to localize the application at later stage</li>
</ul>
<p>In the next post I&#8217;ll provide the link for the latest version of the project and describe briefly what&#8217;s been done. If you have <strong>qustions</strong> or <strong>suggestions</strong>, don&#8217;t hesitate to leave the <strong>comment</strong> <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sitefinity.wordpress.com/36/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sitefinity.wordpress.com/36/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sitefinity.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sitefinity.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sitefinity.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sitefinity.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sitefinity.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sitefinity.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sitefinity.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sitefinity.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sitefinity.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sitefinity.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sitefinity.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sitefinity.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sitefinity.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sitefinity.wordpress.com/36/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=36&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sitefinity.wordpress.com/2007/05/16/building-a-module-for-sitefinity-part-5-module-structure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/650cee6940977f5ec5f9a8a11affe26e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ivan Osmak</media:title>
		</media:content>

		<media:content url="http://sitefinity.files.wordpress.com/2007/05/contacts_module_diagram.gif" medium="image">
			<media:title type="html">Contacts module diagram</media:title>
		</media:content>
	</item>
		<item>
		<title>Building a Module for sitefinity (part 4) : Creating mock-ups</title>
		<link>http://sitefinity.wordpress.com/2007/04/10/building-a-module-for-sitefinity-part-4-creating-mock-ups/</link>
		<comments>http://sitefinity.wordpress.com/2007/04/10/building-a-module-for-sitefinity-part-4-creating-mock-ups/#comments</comments>
		<pubDate>Tue, 10 Apr 2007 10:53:27 +0000</pubDate>
		<dc:creator>Ivan Osmak</dc:creator>
				<category><![CDATA[Building a pluggable module]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://sitefinity.wordpress.com/2007/04/10/building-a-module-for-sitefinity-part-4-creating-mock-ups/</guid>
		<description><![CDATA[In this post we&#8217;ll only cover the mock-ups for the admin area of our module. Later on, we&#8217;ll get to the mock-ups for the public controls. Since the contacts module we are building is pretty simple and straightforward, we really need just the mock-ups for two different screens in our admin area. One is the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=32&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In this post we&#8217;ll only cover the mock-ups for the admin area of our module. Later on, we&#8217;ll get to the mock-ups for the public controls.</p>
<p>Since the contacts module we are building is pretty simple and straightforward, we really need just the mock-ups for two different screens in our admin area. One is the default screen with our contacts in the RadGrid (you could just as well use standard GridView control), while other one is the screen for inserting new or editing already existing contacts.</p>
<p><strong>View Mode </strong></p>
<p>The mode in which contacts are listed in the grid we&#8217;ll call View mode.  Take a look at the following image to see how it should look like. <em>Click on the thumbnail to enlarge it.</em><br />
<a href="http://sitefinity.files.wordpress.com/2007/04/main_screen.jpg" title="Contacts module &gt; View mode"><img src="http://sitefinity.files.wordpress.com/2007/04/main_screen.thumbnail.jpg?w=544" alt="Contacts module &gt; View mode" /></a></p>
<p>As you can see on the right side in CommandPanel we have a link that will show all contacts in case we want to cancel the filtering or we want to come back to the default screen.</p>
<p>Just under that we have a RadTreeview that manages different deparments. One can add, delete, edit or reorder those deparments. By clicking on any of the deparments user gets only contacts that belong to that department.</p>
<p>Under that we have the ability to show only contacts that start with a particular letter.</p>
<p>On the right side we have a RadGrid with all the contacts. We can click on the &#8220;Add new contact&#8221; link to add a new contact. In the grid we can sort contacts, delete contacts or edit them.</p>
<p>Which brings us to our second screen. The one that will be used as an insert/edit screen for a particular contact.</p>
<p><strong>Insert/Edit mode</strong></p>
<p>In this mode we can edit or insert (depending on how we got to this screen) a particular contact. Take a look at the mock-up to see what kind of information we&#8217;ll be storing about each contact. <em>Click on the thumbnail to enlarge it.</em></p>
<p><a href="http://sitefinity.files.wordpress.com/2007/04/new_contact.jpg" title="Contacts module &gt; Insert / edit mode"><img src="http://sitefinity.files.wordpress.com/2007/04/new_contact.thumbnail.jpg?w=544" alt="Contacts module &gt; Insert / edit mode" /></a></p>
<p>As you can see here we have some pretty basic contact info about each person inside of an organization. We can save that info or cancel.</p>
<p>And that&#8217;s all. In the posts to come we&#8217;ll  be building the just described functionality, so stay tuned&#8230;</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sitefinity.wordpress.com/32/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sitefinity.wordpress.com/32/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sitefinity.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sitefinity.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sitefinity.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sitefinity.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sitefinity.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sitefinity.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sitefinity.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sitefinity.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sitefinity.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sitefinity.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sitefinity.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sitefinity.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sitefinity.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sitefinity.wordpress.com/32/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=32&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sitefinity.wordpress.com/2007/04/10/building-a-module-for-sitefinity-part-4-creating-mock-ups/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/650cee6940977f5ec5f9a8a11affe26e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ivan Osmak</media:title>
		</media:content>

		<media:content url="http://sitefinity.files.wordpress.com/2007/04/main_screen.thumbnail.jpg" medium="image">
			<media:title type="html">Contacts module &#62; View mode</media:title>
		</media:content>

		<media:content url="http://sitefinity.files.wordpress.com/2007/04/new_contact.thumbnail.jpg" medium="image">
			<media:title type="html">Contacts module &#62; Insert / edit mode</media:title>
		</media:content>
	</item>
		<item>
		<title>Building a Module for sitefinity (part 3) : Setting up the project</title>
		<link>http://sitefinity.wordpress.com/2007/04/04/building-a-module-for-sitefinity-part-3-setting-up-the-project/</link>
		<comments>http://sitefinity.wordpress.com/2007/04/04/building-a-module-for-sitefinity-part-3-setting-up-the-project/#comments</comments>
		<pubDate>Wed, 04 Apr 2007 11:14:03 +0000</pubDate>
		<dc:creator>Ivan Osmak</dc:creator>
				<category><![CDATA[Building a pluggable module]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://sitefinity.wordpress.com/2007/04/04/building-a-module-for-sitefinity-part-3-setting-up-the-project/</guid>
		<description><![CDATA[After we have explained the basic concepts behind every Sitefinity module the time has come to leave the theory behind us, roll up our sleeves and do some building. In order to create a module you need to create a new C# project and in it&#8217;s most rudimentary version, you need three files inside of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=28&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img src="http://sitefinity.files.wordpress.com/2007/04/working2.jpg?w=544" alt="Working" align="right" />After we have explained the basic concepts behind every Sitefinity module the time has come to leave the theory behind us, roll up our sleeves and do some building.</p>
<p>In order to create a module you need to create a new C# project and in it&#8217;s most rudimentary version, you need three files inside of this project. The module class, and two web control classes (for command panel and control panel). To ease this process for you, you can download the project to get you started. Regardless of what kind of module you are about to build you will needed these files.</p>
<p><a href="http://iosmak.googlepages.com/Contacts_4_4_2007.zip" target="_blank">HERE YOU CAN DOWNLOAD THE BAREBONES PROJECT</a></p>
<p>In addition to this, you&#8217;ll need to reference following assemblies in your project :</p>
<ul>
<li>System</li>
<li>System.Data</li>
<li>System.Drawing</li>
<li>System.Web</li>
<li>System.Xml</li>
<li>Telerik.Framework</li>
<li>Telerik.Security</li>
<li>Telerik.Cms.Web.UI</li>
</ul>
<p>To put some kind of perspective, the sample module that will be built during this series of posts is &#8220;Contacts&#8221; module. This is a very simple module which will allow user to enter all relevant contacts across the organization (for example : CEO, sales, technical support&#8230;) with their names, emails, phone numbers, working hours and so on. More about this project you&#8217;ll be able to read in the next post. So, now that we know that we are building &#8220;Contacts&#8221; module we can continue with a little more clarity.</p>
<p>The first file in our project is the ContactsModule class. This is our module class and it has to inherit from Telerik.WebModule class in order to be used as a  Sitefinity module. Apart from several properties that describe this module (such as name and description) there are two important methods here : CreateControlPanel and CreateToolBoxControls. The CreateControlPanel method returns any Control that will be used as a ControlPanel control (the one on the rigth side). The CreateToolBoxControls returns an IList&lt;IToolboxItem&gt; object, which in turn contains all controls you want to appear in the command panel (the one on the left side).</p>
<p>As you can imagine, the two other files that you&#8217;ll need are ControlPanel class (of type CompositeControl) and CommandPanel class (of type CompositeControl,  but this class also needs to implement IControlPanelCommand interface).</p>
<p>This all fits together in the previously mentioned ContactsModule class. Namely, in CreateControlPanel method you create a new instance of ControlPanel class and return it, while in CreateToolBoxControls you create a new instance of CommandPanel class and add it to the IControlPanelCommand array.</p>
<p>And this is all that you really need to get our Contacts module work. In ControlPanel and Command panel class you can overwrite the CreateChildControls method and add just some arbitraly controls (e.g. I&#8217;ve added the labels in the attached project) to see what happens.</p>
<p>In the next post I&#8217;ll write some brief specs for the Contacts module and attach few mockups just so that we are all on the same page.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sitefinity.wordpress.com/28/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sitefinity.wordpress.com/28/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sitefinity.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sitefinity.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sitefinity.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sitefinity.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sitefinity.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sitefinity.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sitefinity.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sitefinity.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sitefinity.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sitefinity.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sitefinity.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sitefinity.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sitefinity.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sitefinity.wordpress.com/28/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=28&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sitefinity.wordpress.com/2007/04/04/building-a-module-for-sitefinity-part-3-setting-up-the-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/650cee6940977f5ec5f9a8a11affe26e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ivan Osmak</media:title>
		</media:content>

		<media:content url="http://sitefinity.files.wordpress.com/2007/04/working2.jpg" medium="image">
			<media:title type="html">Working</media:title>
		</media:content>
	</item>
		<item>
		<title>Building a Module for sitefinity (part 2) : The concept</title>
		<link>http://sitefinity.wordpress.com/2007/03/07/building-a-module-for-sitefinity-part-2-the-concept/</link>
		<comments>http://sitefinity.wordpress.com/2007/03/07/building-a-module-for-sitefinity-part-2-the-concept/#comments</comments>
		<pubDate>Wed, 07 Mar 2007 14:19:03 +0000</pubDate>
		<dc:creator>Ivan Osmak</dc:creator>
				<category><![CDATA[Building a pluggable module]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://sitefinity.wordpress.com/2007/03/07/building-a-module-for-sitefinity-part-2-the-concept/</guid>
		<description><![CDATA[Module is integrated in Sitefinity modules section as an assembly. This means that in order to create your own module you need to create a new C# project (Class library). The core class in this module you will name any way that you find suitable (for example : ListModule, MyModule&#8230;), but the important thing here [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=25&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Module is integrated in Sitefinity modules section as an assembly. This means that in order to create your own module you need to create a new C# project (Class library). The core class in this module you will name any way that you find suitable (for example : ListModule, MyModule&#8230;), but the important thing here is that this class needs to inherit Telerik.WebModule class.</p>
<p>In order to appear on the modules page and be usable, module needs to be registered in the web.config file.</p>
<p>The resulting .dll file you will obviously put in the bin folder of your website.</p>
<p>The module itself has two fundamental sides : administrative and public. The administrative side is the one you see in the modules part of Sitefinity, while the public side consists of the controls that users can drag onto the page in order to take advantage of your module. Take a look at the image below to get a better understanding of this distinction.<img src="http://sitefinity.files.wordpress.com/2007/03/administrative_public.jpg?w=544" alt="Administrative and Public side of a module" /></p>
<p>In this post, I will concentrate mostly on the Administrative side of the module. The public part will be dealt with in one of the coming posts. The administrative side of the module furthermore can be divided into two more sections. The Command Panel and Control Panel. To understand this separation better, you can think of the command panel as the &#8220;left side&#8221; and control panel as the &#8220;right side&#8221; of the screen. In essence, Command Panel (left side) is there really just to facilitate the Control panel  (right panel) with some kind of sub navigation. Take a look at this image to get a clearer picture.</p>
<p><img src="http://sitefinity.files.wordpress.com/2007/03/admin_module.jpg?w=544" alt="Administrative side of the module" /></p>
<p>So the idea here is that you use the core class of a module (the one that inherits from a WebModule class) as some kind of container to hold the two other controls you will create : the CommandPanel and ControlPanel controls. What will those two classes do is completely up to you and depends on what your module is supposed to do.</p>
<p>Here you can download a template project to get you up to speed. <span style="color:Red;font-style:italic;">[Need to create this project and post a link for download]</span></p>
<p>In the next post we&#8217;ll dig deeper into the code and create the two basic controls, namely CommandPanel and ControlPanel controls.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sitefinity.wordpress.com/25/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sitefinity.wordpress.com/25/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sitefinity.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sitefinity.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sitefinity.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sitefinity.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sitefinity.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sitefinity.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sitefinity.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sitefinity.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sitefinity.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sitefinity.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sitefinity.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sitefinity.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sitefinity.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sitefinity.wordpress.com/25/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=25&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sitefinity.wordpress.com/2007/03/07/building-a-module-for-sitefinity-part-2-the-concept/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/650cee6940977f5ec5f9a8a11affe26e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ivan Osmak</media:title>
		</media:content>

		<media:content url="http://sitefinity.files.wordpress.com/2007/03/administrative_public.jpg" medium="image">
			<media:title type="html">Administrative and Public side of a module</media:title>
		</media:content>

		<media:content url="http://sitefinity.files.wordpress.com/2007/03/admin_module.jpg" medium="image">
			<media:title type="html">Administrative side of the module</media:title>
		</media:content>
	</item>
		<item>
		<title>How to get reference to Control Panel from Command Panel (Building Modules)</title>
		<link>http://sitefinity.wordpress.com/2007/03/06/how-to-get-reference-to-control-panel-from-command-panel-building-modules/</link>
		<comments>http://sitefinity.wordpress.com/2007/03/06/how-to-get-reference-to-control-panel-from-command-panel-building-modules/#comments</comments>
		<pubDate>Tue, 06 Mar 2007 11:56:24 +0000</pubDate>
		<dc:creator>Ivan Osmak</dc:creator>
				<category><![CDATA[Gotchas]]></category>

		<guid isPermaLink="false">http://sitefinity.wordpress.com/2007/03/06/how-to-get-reference-to-control-panel-from-command-panel-building-modules/</guid>
		<description><![CDATA[The main purpose of the Command Panel (left part of the screen) in the module is to modify Control panel (right part of the screen) in some way &#8211; set property, call a method etc. In order to get the reference to the Control Panel you can use following code in the Command Panel : [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=24&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The main purpose of the Command Panel (left part of the screen) in the module is to modify Control panel (right part of the screen) in some way &#8211; set property, call a method etc. In order to get the reference to the Control Panel you can use following code in the Command Panel :</p>
<p>ControlPanel ctrlPnl = (ControlPanel)this.NamingContainer.FindControl(this.ControlPanelID);</p>
<p>To some of you this may seem rather obvious, but I had to ask to figure this out. So to all you, mere mortals like me, here is how you do it <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sitefinity.wordpress.com/24/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sitefinity.wordpress.com/24/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sitefinity.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sitefinity.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sitefinity.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sitefinity.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sitefinity.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sitefinity.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sitefinity.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sitefinity.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sitefinity.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sitefinity.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sitefinity.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sitefinity.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sitefinity.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sitefinity.wordpress.com/24/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=24&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sitefinity.wordpress.com/2007/03/06/how-to-get-reference-to-control-panel-from-command-panel-building-modules/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/650cee6940977f5ec5f9a8a11affe26e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ivan Osmak</media:title>
		</media:content>
	</item>
		<item>
		<title>Building a Module for sitefinity (part 1)</title>
		<link>http://sitefinity.wordpress.com/2007/03/02/writing-a-module-for-sitefinity-part-1/</link>
		<comments>http://sitefinity.wordpress.com/2007/03/02/writing-a-module-for-sitefinity-part-1/#comments</comments>
		<pubDate>Fri, 02 Mar 2007 11:43:54 +0000</pubDate>
		<dc:creator>Ivan Osmak</dc:creator>
				<category><![CDATA[Building a pluggable module]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://sitefinity.wordpress.com/2007/03/02/writing-a-module-for-sitefinity-part-1/</guid>
		<description><![CDATA[What is a Sitefinity Module? Modules are quite probably the most powerful feature of Sitefinity. They allow you to extend Sitefinity in any way you need it to be extended. Need a image gallery on your site? How about blog aggregation tool? Or maybe product catalog? All this you can do by taking advantage of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=23&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>What is a Sitefinity Module?</strong></p>
<p>Modules are quite probably the most powerful feature of Sitefinity. They allow you to extend Sitefinity in any way you need it to be extended. Need a image gallery on your site? How about blog aggregation tool? Or maybe product catalog? All this you can do by taking advantage of Sitefinity. Now, to see why is this so cool, think for a moment : You already have everything done except that particular functionality (e.g. blog aggregation tool). You don&#8217;t have to worry about the site navigation (already done), you don&#8217;t need to create an admin area (already done), you don&#8217;t need to worry about approval system (already done) etc.</p>
<p><strong>Asp.NET practices</strong></p>
<p>So, at this point you may think, that&#8217;s all nice and dandy&#8230; but it&#8217;ll take forever to learn how integrate my functionality into Sitefinity. Not so.  I&#8217;m the best proof of that, since I&#8217;ve joined Sitefinity team just few weeks ago and I&#8217;m already building a module, heck&#8230; I&#8217;m blogging on how to do it.  Namely, the architecture of modules is following all the best practices of for Asp.NET so most of the things will come natural to you. In addition to that, well tought architecture will simply (and unknowlingly) force you in building easy-to-maintain-and-extend modules. Take my word on this&#8230;</p>
<p>Now, to avoid risk of sounding like yet another marketer trying to sell you an idea, I&#8217;ll admit that you do need to understand some fundamental ideas of Sitefinity Modules. I had few problems on my own, and therefore I&#8217;m writing this series in hope to help you avoid these problems in the beginning.</p>
<p><strong>Conclusion</strong></p>
<p>This series will probably be extensive since I&#8217;ll try to cover as much of the process along the way, however at the end I&#8217;ll distill it into a &#8220;quick start&#8221; type of article. In the next blog post I&#8217;ll describe the basic  concepts and ideas that you need to understand about any module. Then I&#8217;ll start to build a sampe module and provide you with some source code. So stay tuned&#8230;</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sitefinity.wordpress.com/23/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sitefinity.wordpress.com/23/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sitefinity.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sitefinity.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sitefinity.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sitefinity.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sitefinity.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sitefinity.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sitefinity.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sitefinity.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sitefinity.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sitefinity.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sitefinity.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sitefinity.wordpress.com/23/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sitefinity.wordpress.com/23/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sitefinity.wordpress.com/23/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=23&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sitefinity.wordpress.com/2007/03/02/writing-a-module-for-sitefinity-part-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/650cee6940977f5ec5f9a8a11affe26e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ivan Osmak</media:title>
		</media:content>
	</item>
		<item>
		<title>Welcome to the &#8220;Pushing the envelope&#8221; category</title>
		<link>http://sitefinity.wordpress.com/2007/02/23/welcome-to-the-pushing-the-envelope-category/</link>
		<comments>http://sitefinity.wordpress.com/2007/02/23/welcome-to-the-pushing-the-envelope-category/#comments</comments>
		<pubDate>Fri, 23 Feb 2007 11:12:39 +0000</pubDate>
		<dc:creator>Ivan Osmak</dc:creator>
				<category><![CDATA[Pushing the envelope]]></category>

		<guid isPermaLink="false">http://sitefinity.wordpress.com/2007/02/23/welcome-to-the-pushing-the-envelope-category/</guid>
		<description><![CDATA[Ever wanted to do something really weired with Sitefinity? In this category we&#8217;ll post about not-so-common scenarios and solutions. How about building a module for importing content from an old site? Or hooking up Sitefinity with a web service&#8230; Obviously, I can&#8217;t come up with that many strange scenarios in the very first post, because [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=22&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Ever wanted to do something really weired with Sitefinity? In this category we&#8217;ll post about not-so-common scenarios and solutions.</p>
<p>How about building a module for importing content from an old site? Or hooking up Sitefinity with a web service&#8230;  Obviously, I can&#8217;t come up with that many strange scenarios in the very first post, because I guess they wouldn&#8217;t be that strange than&#8230; but I&#8217;ll give my best in the time to come.</p>
<p>You are very welcome to express your strange desires (though strictly Sitefinity related <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) on the comments in this category and we&#8217;ll see what can we come up with.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sitefinity.wordpress.com/22/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sitefinity.wordpress.com/22/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sitefinity.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sitefinity.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sitefinity.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sitefinity.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sitefinity.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sitefinity.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sitefinity.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sitefinity.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sitefinity.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sitefinity.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sitefinity.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sitefinity.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sitefinity.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sitefinity.wordpress.com/22/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=22&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sitefinity.wordpress.com/2007/02/23/welcome-to-the-pushing-the-envelope-category/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/650cee6940977f5ec5f9a8a11affe26e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ivan Osmak</media:title>
		</media:content>
	</item>
		<item>
		<title>Welcome to the &#8220;Sitefinity &amp; rad Controls&#8221; category</title>
		<link>http://sitefinity.wordpress.com/2007/02/23/welcome-to-the-sitefinity-rad-controls-category/</link>
		<comments>http://sitefinity.wordpress.com/2007/02/23/welcome-to-the-sitefinity-rad-controls-category/#comments</comments>
		<pubDate>Fri, 23 Feb 2007 10:44:40 +0000</pubDate>
		<dc:creator>Ivan Osmak</dc:creator>
				<category><![CDATA[Sitefinity & rad Controls]]></category>

		<guid isPermaLink="false">http://sitefinity.wordpress.com/2007/02/23/welcome-to-the-sitefinity-rad-controls-category/</guid>
		<description><![CDATA[As you may already know, Sitefinity comes with award-winning rad Control suit. If, by some chance, you are unfamiliar with rad Controls you can get a pretty good idea here. The posts in this category will show sample scenarios on how to use r.a.d.Controls inside of your website to, as the slogan quite well puts [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=21&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As you may already know, Sitefinity comes with award-winning rad Control suit. If, by some chance, you are unfamiliar with rad Controls you can get a pretty good idea <a href="http://www.telerik.com/products/aspnet/overview.aspx" target="_blank">here</a>.</p>
<p>The posts in this category will show sample scenarios on how to use r.a.d.Controls inside of your website to, as the slogan quite well puts it, &#8220;deliver more than expected&#8221;.</p>
<p>The seamless integration of r.a.d.Controls with Sitefinity makes it an excellent choice for developing more complex UIs.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sitefinity.wordpress.com/21/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sitefinity.wordpress.com/21/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sitefinity.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sitefinity.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sitefinity.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sitefinity.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sitefinity.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sitefinity.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sitefinity.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sitefinity.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sitefinity.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sitefinity.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sitefinity.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sitefinity.wordpress.com/21/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sitefinity.wordpress.com/21/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sitefinity.wordpress.com/21/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=21&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sitefinity.wordpress.com/2007/02/23/welcome-to-the-sitefinity-rad-controls-category/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/650cee6940977f5ec5f9a8a11affe26e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ivan Osmak</media:title>
		</media:content>
	</item>
		<item>
		<title>Using your own Master Page and providing blog-like calendar navigation</title>
		<link>http://sitefinity.wordpress.com/2007/02/22/using-your-own-master-page-and-providing-blog-like-calendar-navigation/</link>
		<comments>http://sitefinity.wordpress.com/2007/02/22/using-your-own-master-page-and-providing-blog-like-calendar-navigation/#comments</comments>
		<pubDate>Thu, 22 Feb 2007 19:45:38 +0000</pubDate>
		<dc:creator>Ivan Osmak</dc:creator>
				<category><![CDATA[Looking good!]]></category>

		<guid isPermaLink="false">http://sitefinity.wordpress.com/2007/02/22/using-your-own-master-page-and-providing-blog-like-calendar-navigation/</guid>
		<description><![CDATA[This blog post will explain the basic procedure of creating your own Master Page for Sitefinity and, just to make it a bit less dull, we&#8217;ll make navigation in a blog-like calendar fashion. Personally, I don&#8217;t think this is a perfect way for providing navigation (heck, I don&#8217;t think it&#8217;s even good, let alone perfect), [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=17&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This blog post will explain the basic procedure of creating your own Master Page for Sitefinity and, just to make it a bit less dull, we&#8217;ll make navigation in a blog-like calendar fashion. Personally, I don&#8217;t think this is a perfect way for providing navigation (heck, I don&#8217;t think it&#8217;s even good, let alone perfect), but every blog has it&#8230; so we&#8217;ll make one too <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Let&#8217;s first take a look at the final result :</p>
<p><a href="http://sitefinity.files.wordpress.com/2007/02/intro.gif" title="Blog-like calendar navigation"><img src="http://sitefinity.files.wordpress.com/2007/02/intro.gif?w=544" alt="Blog-like calendar navigation" /></a></p>
<p><strong> Step 1 : Creating a Master Page</strong></p>
<p>First thing we need to do is to create a Master page. I won&#8217;t get into too many details here, because there are tons of resources on using Master Pages, but I&#8217;ll point out some pecularities that you need to take into account when creating a Master Page for Sitefinity. Note : Make sure you put the code in separate file when creating a Master Page. So, let&#8217;s take a look at the Master Page file source code first :</p>
<p><a href="http://docs.google.com/Doc?id=dgz2n2cr_25gdccmb" target="_blank">OPEN CODE IN NEW WINDOW</a></p>
<p>The first important thing is that you need to replace the standard form tag with the CmsForm tag. You&#8217;ll also need to register the Telerik.Cms.Web namespace. Second thing, that you need to pay attention to, is mandatory div element that wraps everything you plan to put on your master page. This div needs to have it&#8217;s class attribute set to &#8220;cmsWrapper&#8221;.</p>
<p>Everything else is pretty straightforward.</p>
<p><strong>Step 2 : Creating the calendar navigation controls</strong></p>
<p>We&#8217;ll put our calendar navigation inside of the left sidebar div. As you can see, all you need to do is create a rad Calendar control and asp:panel control that will hold the links dynamically created based on which date user selected. Few more notes regarding the rad Calendar : make sure you disable multi select property, provide the name of the method that will handle selection changed and turn on autopostback property.</p>
<p><strong>Step 3 : Creating code file for the master page</strong></p>
<p>In this step we need to provide our navigation system with two functionalities. First we need to find all the dates on our current calendar view on which one or more posts have been created and replace the template for this cell with our custom template. Our template will look like a blue colored panel with the day and number of posts that were made on that day. See the image below.</p>
<p><img src="http://sitefinity.files.wordpress.com/2007/02/calendar.gif?w=544" alt="Calendar custom templates" /></p>
<p>Second thing we need to take care of is the list of posts&#8217; links. This list is dynamically created based on which date user selected. Take a look at the screenshot below to get a better idea.</p>
<p><img src="http://sitefinity.files.wordpress.com/2007/02/links_list.gif?w=544" alt="Links list" /></p>
<p>Now that we know what we want to do, take a look at the code file that will take care of it.</p>
<p><a href="http://docs.google.com/Doc?id=dgz2n2cr_26z99cwb">OPEN CODE IN NEW WINDOW</a></p>
<p>Ahh.. where to start from? From the beginning, I guess.</p>
<p>First class in this file is the partial class for the Master Page.  In the Page_Load method  first thing we do is to determine the first and last date displayed currently on the calendar. Then we loop through those days and see if any of the pages have been created on any of these dates. In case we find a post that has been created on one of these days we add it to the numberOfPosts variable and keep going.</p>
<p>Then you can see that in case there are actually some posts written on that particular date we create a new instance of the PostsCell class, which is going to replace the standard calendar day cell. The PostsCell class inherits from a Control class and all we do there is add a panel and a label with modified display for the particular date (now it&#8217;s not just a date, but date with number of posts).</p>
<p>Back to our Page_Load method. The very last thing we do in this method is to create a new instance of a CalendarCellContentTemplate class and pass it the calendar instance, the date for which we want to create special day and instance of our PostsCell control. If you are unsure about this, you can find out more about it on telerik calendar reference (<a href="http://www.telerik.com" title="Telerik Calendar" target="_blank">www.telerik.com</a>) .</p>
<p>So we are only left with the calNavigation_SelectionChanged method. This method, oddly enough, handles the selection changed event of rad Calendar. As you can see from the code, we are doing something similar as in the Page_Load method. We loop through the pages and for all the pages that were created on the currently selected date we add a link to the pnlLinks control.</p>
<p>Pheww&#8230; I think that covers it pretty much.</p>
<p><strong>Step 4 : Uploading the Master Page</strong></p>
<p>This is simple. All you need to do is to go to Sitefinity and upload the newly created Master Page. In addition to this you could create new theme to go along with your Master Page, as I had, but that topic is beyond of the scope of this post. We&#8217;ll cover themes in one of the upcoming posts in this category.</p>
<p>Now apply the template created from the uploaded Master Page to any pages you wish and your done.</p>
<p>This was quite simple and straightforward, though I doubt that you will ever use it <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Nevertheless I think it was a nice excercise.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sitefinity.wordpress.com/17/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sitefinity.wordpress.com/17/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sitefinity.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sitefinity.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sitefinity.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sitefinity.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sitefinity.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sitefinity.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sitefinity.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sitefinity.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sitefinity.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sitefinity.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sitefinity.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sitefinity.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sitefinity.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sitefinity.wordpress.com/17/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=17&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sitefinity.wordpress.com/2007/02/22/using-your-own-master-page-and-providing-blog-like-calendar-navigation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/650cee6940977f5ec5f9a8a11affe26e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ivan Osmak</media:title>
		</media:content>

		<media:content url="http://sitefinity.files.wordpress.com/2007/02/intro.gif" medium="image">
			<media:title type="html">Blog-like calendar navigation</media:title>
		</media:content>

		<media:content url="http://sitefinity.files.wordpress.com/2007/02/calendar.gif" medium="image">
			<media:title type="html">Calendar custom templates</media:title>
		</media:content>

		<media:content url="http://sitefinity.files.wordpress.com/2007/02/links_list.gif" medium="image">
			<media:title type="html">Links list</media:title>
		</media:content>
	</item>
		<item>
		<title>Welcome to the &#8220;Looking good!&#8221; category</title>
		<link>http://sitefinity.wordpress.com/2007/02/22/welcome-to-the-looking-good-category/</link>
		<comments>http://sitefinity.wordpress.com/2007/02/22/welcome-to-the-looking-good-category/#comments</comments>
		<pubDate>Thu, 22 Feb 2007 11:13:40 +0000</pubDate>
		<dc:creator>Ivan Osmak</dc:creator>
				<category><![CDATA[Looking good!]]></category>

		<guid isPermaLink="false">http://sitefinity.wordpress.com/2007/02/22/welcome-to-the-looking-good-category/</guid>
		<description><![CDATA[Having a &#8220;really, really, ridiculuosly good looking&#8221; web site is important. In this category we&#8217;ll be posting tips, advice and tutorials how to make your site look good. In our quest to wow your visitors, we&#8217;ll be taking advantage of award-winning rad Controls suit which comes as a part of Sitefinity, but we&#8217;ll also show [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=15&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img src="http://sitefinity.files.wordpress.com/2007/02/zoolander.jpg?w=544" alt="…really, really, ridiculuosly good looking”" align="left" />Having a <a href="http://en.wikipedia.org/wiki/Zoolander" target="_blank">&#8220;really, really, ridiculuosly good looking&#8221;</a> web site is important. In this category we&#8217;ll be posting tips, advice and tutorials how to make your site look good. In our quest to wow your visitors, we&#8217;ll be taking advantage of award-winning rad Controls suit which comes as a part of Sitefinity, but we&#8217;ll also show you how to make use of some of free JS libraries out there, such as <a href="http://developer.yahoo.com/yui/" target="_blank">YUI!</a> and <a href="http://script.aculo.us/" target="_blank">script.aculo.us</a>.</p>
<p>To kick it off, I&#8217;ll start by a simple example of creating your own MasterPage to use as a template and we&#8217;ll  then go ahead and do some funky stuff with the navigation menu.</p>
<p>Drop a comment if there are some particular topics you&#8217;d like us to talk about in this category.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sitefinity.wordpress.com/15/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sitefinity.wordpress.com/15/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sitefinity.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sitefinity.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sitefinity.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sitefinity.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sitefinity.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sitefinity.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sitefinity.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sitefinity.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sitefinity.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sitefinity.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sitefinity.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sitefinity.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sitefinity.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sitefinity.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=15&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sitefinity.wordpress.com/2007/02/22/welcome-to-the-looking-good-category/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/650cee6940977f5ec5f9a8a11affe26e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ivan Osmak</media:title>
		</media:content>

		<media:content url="http://sitefinity.files.wordpress.com/2007/02/zoolander.jpg" medium="image">
			<media:title type="html">…really, really, ridiculuosly good looking”</media:title>
		</media:content>
	</item>
		<item>
		<title>Project #1 &#8211; Image gallery User Control (Part 2)</title>
		<link>http://sitefinity.wordpress.com/2007/02/21/project-1-image-gallery-user-control-part-2/</link>
		<comments>http://sitefinity.wordpress.com/2007/02/21/project-1-image-gallery-user-control-part-2/#comments</comments>
		<pubDate>Wed, 21 Feb 2007 12:10:32 +0000</pubDate>
		<dc:creator>Ivan Osmak</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://sitefinity.wordpress.com/2007/02/21/project-1-image-gallery-user-control-part-2/</guid>
		<description><![CDATA[NOTE : This post is a part of a series. Read first part if you&#8217;ve missed it. [VB.NET example] So, after we have uploaded the images, now it&#8217;s time to create a user control that will display them. In case you are unfamiliar with using User Controls in Sitefinity consult Developer Manual on that subject. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=14&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>NOTE : This post is a part of a series. <a href="http://sitefinity.wordpress.com/2007/02/21/project-1-image-gallery-user-control/">Read first part if you&#8217;ve missed it.</a></p>
<p><em>[VB.NET example]</em></p>
<p>So, after we have uploaded the images, now it&#8217;s time to create a user control that will display them. In case you are unfamiliar with using User Controls in Sitefinity consult Developer Manual on that subject. You can also check <a href="http://sitefinity.wordpress.com/2007/02/20/working-on-a-live-usercontrol/">this</a> post out to see how to work with a &#8220;live user control&#8221;.</p>
<p>To start with we&#8217;ll add four properties to our User Control.</p>
<ol>
<li>GalleryTitle &#8211; string value representing the title of the gallery</li>
<li>RepeatColumns &#8211; integer value representing how many columns should gallery have</li>
<li>MaxThumbWidth &#8211; integer value representing maximum width of a thumbnail in pixels</li>
<li>GalleryFolder &#8211; string value representing the relative path to folder which contains the image files for the gallery (this is how we determine which gallery will be represented)</li>
</ol>
<p>Next thing we are going to do is to declare a new class MyImage, which will represent a particular image inside of the gallery. This class contains only 5 properties and no methods.</p>
<ol>
<li>ImageUrl &#8211; the full url to the image</li>
<li>ActualWidth &#8211;  the actual width of an image in pixels</li>
<li>ActualHeight &#8211; the actual height of an image in pixels</li>
<li>ThumbWidth &#8211; the width of a thumbnail image in pixels</li>
<li>ThumbHeight &#8211; the height of a thumbnail image in pixels</li>
</ol>
<p>Now what&#8217;s left is to find all the image files inside of the Gallery Folder, create objects of type MyImage for each of them and bind the DataList control to the Array List containing these MyImage objects. All this will do in Page_Load method. Below is the link for the full source of the User Control code file.</p>
<p><a href="http://docs.google.com/Doc?id=dgz2n2cr_23fhhkdp" target="_blank">OPEN THE CODE IN NEW WINDOW </a></p>
<p>Here you can take a look at the  User Control source :</p>
<p><a href="http://docs.google.com/Doc?id=dgz2n2cr_24gjhwt5" target="_blank">OPEN THE CODE IN NEW WINDOW</a></p>
<p>Let&#8217;s examine the User Control source a bit. First we have a label which displays the title of the gallery. Than there is our Data List and in the template you can see that each image we surround with a link that triggers the JavaScript function OpenImage. This JavaScript function opens the rad window, part of award-winning rad controls that come with Sitefinity.</p>
<p>So that&#8217;s all there is to it. One more thing should be noted though. The thumbnail resizing is done with HTML width and height attributes, which is obviously not a true resizing. This means that the actual size of file (in kb) is same as for the large image. This is not an optimal solution, but it will do for this example.</p>
<p>If you decide that you want to use actual thumbnails there are three different approaches that you can take :</p>
<ol>
<li>Manually create thumbnail images with free software such as <a href="http://picasa.google.com/">Picasa</a> and upload them together with the original images. You would need to modify the code a bit to look for thumbnail images as well as for the originals.</li>
<li>Secon option you have is to map image files (.jpg and .gif) to Asp.NET engine and write a http handler that would dynamically resize images.</li>
<li>Third option would be to dynamically create thumbnails and save them in a separate folder. This approach is actually a mix of first two approaches.</li>
</ol>
<p>The true resizing is actually beyond the scope of this post so I won&#8217;t elaborate any more on that, but if you are persistant engouh we just may make a project out of it and write a tutorial on dynamic resizing with Sitefinity <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I hope you&#8217;ll find a use of this project.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sitefinity.wordpress.com/14/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sitefinity.wordpress.com/14/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sitefinity.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sitefinity.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sitefinity.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sitefinity.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sitefinity.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sitefinity.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sitefinity.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sitefinity.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sitefinity.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sitefinity.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sitefinity.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sitefinity.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sitefinity.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sitefinity.wordpress.com/14/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=14&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sitefinity.wordpress.com/2007/02/21/project-1-image-gallery-user-control-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/650cee6940977f5ec5f9a8a11affe26e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ivan Osmak</media:title>
		</media:content>
	</item>
		<item>
		<title>Project #1 &#8211; Image gallery User Control (Part 1)</title>
		<link>http://sitefinity.wordpress.com/2007/02/21/project-1-image-gallery-user-control/</link>
		<comments>http://sitefinity.wordpress.com/2007/02/21/project-1-image-gallery-user-control/#comments</comments>
		<pubDate>Wed, 21 Feb 2007 11:01:27 +0000</pubDate>
		<dc:creator>Ivan Osmak</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://sitefinity.wordpress.com/2007/02/21/project-1-image-gallery-user-control/</guid>
		<description><![CDATA[Note : The images in this project are taken from www.sxc.hu and are ownership of their respective authors. I&#8217;ve used animals because the constraints for using actual people are a bit more complex. For the first project I&#8217;ve chose something simple yet very useful: an Image gallery User Control. The scenario is very common. Let&#8217;s [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=10&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Note :</strong> The images in this project are taken from <a href="http://www.sxc.hu">www.sxc.hu</a> and are ownership of their respective authors. I&#8217;ve used animals because the constraints for using actual people are a bit more complex.</p>
<p>For the first project I&#8217;ve chose something simple yet very useful: an Image gallery User Control. The scenario is very common. Let&#8217;s say you run a web site for a local chamber of commerce. So, here and there members of this chamber go to conventions, trips, throw parties and stuff like that. They shoot tons of pictures while there and they want this pictures to accompine the report from the event.</p>
<p><a href="http://sitefinity.files.wordpress.com/2007/02/image_gallery_iintro.jpg" title="Image gallery intro"><img src="http://sitefinity.files.wordpress.com/2007/02/image_gallery_iintro.jpg?w=544" alt="Image gallery intro" /></a></p>
<p><strong>The plan of action</strong></p>
<p>If we think of this on a very abstract level, there are three basic functionalities we need to provide for Image Gallery.</p>
<ol>
<li>Upload images / manage galaries</li>
<li>Display thumbnails for chosen gallery on the page</li>
<li>Pop up a new window with actual size of an image when user clicks on the thumbnail</li>
</ol>
<p>Now, the good news is that we&#8217;ll take advantage of Sitefinity&#8217;s built in features and will have to do on our own just the bullet #2 from the list.</p>
<p><strong>Upload images / manage galleries</strong></p>
<p>You are probably aware of the fact that one of the core modules of Sitefinity is File Manager. Yeah, now it&#8217;s pretty obvious&#8230; hehe. So open the File Manager in Sitefinity and create one folder where you will hold all the galleries. Let&#8217;s be excentric and call it &#8220;ImageGalleries&#8221;. Inside of this folder you would then create folders that represent particular gallery (like in my example, there is &#8220;Animal&#8221; gallery and &#8220;Flowers&#8221; gallery). The last thing you need to do is upload the images inside of the gallery folder (you see files animal1.jpg through animal6.jpg in my screenshot). And that&#8217;s it&#8230; the &#8220;Image and Gallery Managment System&#8221; <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  is done.</p>
<p><a href="http://sitefinity.files.wordpress.com/2007/02/file_manager.gif" title="File manager screenshot"><img src="http://sitefinity.files.wordpress.com/2007/02/file_manager.gif?w=544" alt="File manager screenshot" /></a></p>
<p>In part 2 of this series we are going to create a user control that will display thumbnails on the page provide the pop up functionality which will display the real size image in a new window.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sitefinity.wordpress.com/10/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sitefinity.wordpress.com/10/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sitefinity.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sitefinity.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sitefinity.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sitefinity.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sitefinity.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sitefinity.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sitefinity.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sitefinity.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sitefinity.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sitefinity.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sitefinity.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sitefinity.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sitefinity.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sitefinity.wordpress.com/10/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=10&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sitefinity.wordpress.com/2007/02/21/project-1-image-gallery-user-control/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/650cee6940977f5ec5f9a8a11affe26e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ivan Osmak</media:title>
		</media:content>

		<media:content url="http://sitefinity.files.wordpress.com/2007/02/image_gallery_iintro.jpg" medium="image">
			<media:title type="html">Image gallery intro</media:title>
		</media:content>

		<media:content url="http://sitefinity.files.wordpress.com/2007/02/file_manager.gif" medium="image">
			<media:title type="html">File manager screenshot</media:title>
		</media:content>
	</item>
		<item>
		<title>Working on a live UserControl</title>
		<link>http://sitefinity.wordpress.com/2007/02/20/working-on-a-live-usercontrol/</link>
		<comments>http://sitefinity.wordpress.com/2007/02/20/working-on-a-live-usercontrol/#comments</comments>
		<pubDate>Tue, 20 Feb 2007 17:37:52 +0000</pubDate>
		<dc:creator>Ivan Osmak</dc:creator>
				<category><![CDATA[Gotchas]]></category>

		<guid isPermaLink="false">http://sitefinity.wordpress.com/2007/02/20/working-on-a-live-usercontrol/</guid>
		<description><![CDATA[In case you&#8217;ve wondered how to modify already uploaded user control without constantly uploading it through Sitefinity pages, it&#8217;s handy to know that Sitefinity creates a &#8220;UserControl&#8221; folder inside of the website&#8217;s root folder and stores there all uploaded user controls . Once you upload your control, you can open the user control file (.ascx) [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=11&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In case you&#8217;ve wondered how to modify already uploaded user control without constantly uploading it through Sitefinity pages, it&#8217;s handy to know that Sitefinity creates a &#8220;UserControl&#8221; folder inside of the website&#8217;s root folder and stores there all uploaded user controls . Once you upload your control, you can open the user control file (.ascx) directly from that folder and make any adjustments there. That way, you&#8217;ll be working on, so to say, live user control.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sitefinity.wordpress.com/11/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sitefinity.wordpress.com/11/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sitefinity.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sitefinity.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sitefinity.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sitefinity.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sitefinity.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sitefinity.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sitefinity.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sitefinity.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sitefinity.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sitefinity.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sitefinity.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sitefinity.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sitefinity.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sitefinity.wordpress.com/11/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=11&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sitefinity.wordpress.com/2007/02/20/working-on-a-live-usercontrol/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/650cee6940977f5ec5f9a8a11affe26e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ivan Osmak</media:title>
		</media:content>
	</item>
		<item>
		<title>Welcome to the &#8220;Projects&#8221; category</title>
		<link>http://sitefinity.wordpress.com/2007/02/19/welcome-to-the-projects-category/</link>
		<comments>http://sitefinity.wordpress.com/2007/02/19/welcome-to-the-projects-category/#comments</comments>
		<pubDate>Mon, 19 Feb 2007 16:46:39 +0000</pubDate>
		<dc:creator>Ivan Osmak</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://sitefinity.wordpress.com/2007/02/19/welcome-to-the-projects-category/</guid>
		<description><![CDATA[Learning by an example is probably the oldest method of teaching and since it&#8217;s been around for such a long time, it&#8217;s surely one of the better methods. In this category we&#8217;ll every so often take apart particular project into pieces and describe how it is built in series of posts. Projects may include simple [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=9&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Learning by an example is probably the oldest method of teaching and since it&#8217;s been around for such a long time, it&#8217;s surely one of the better methods. In this category we&#8217;ll every so often take apart particular project into pieces and describe how it is built in series of posts.</p>
<p>Projects may include simple projects, such as building a particular functionality with User Controls or more complex projects such as decomposing a pluggable module.</p>
<p>The goal of this section is to show you the ropes and later on it is only your imagination that will limit you. That last sentence sounded so pathetic&#8230; like if I was writing a self-help book <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>The concept of these series will be to start with the basic idea, project outline, features and mock up. Then, we&#8217;ll build upon it. We&#8217;ll try to provide you with the source code along the way, but perhaps sometimes source code will be available for download at the end of post series.</p>
<p>Make sure to visit this section. This is the fun part!</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sitefinity.wordpress.com/9/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sitefinity.wordpress.com/9/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sitefinity.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sitefinity.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sitefinity.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sitefinity.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sitefinity.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sitefinity.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sitefinity.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sitefinity.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sitefinity.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sitefinity.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sitefinity.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sitefinity.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sitefinity.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sitefinity.wordpress.com/9/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=9&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sitefinity.wordpress.com/2007/02/19/welcome-to-the-projects-category/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/650cee6940977f5ec5f9a8a11affe26e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ivan Osmak</media:title>
		</media:content>
	</item>
		<item>
		<title>Welcome to the &#8220;Concepts &amp; Theory&#8221; category</title>
		<link>http://sitefinity.wordpress.com/2007/02/18/welcome-to-the-concepts-theory-category/</link>
		<comments>http://sitefinity.wordpress.com/2007/02/18/welcome-to-the-concepts-theory-category/#comments</comments>
		<pubDate>Sun, 18 Feb 2007 21:37:10 +0000</pubDate>
		<dc:creator>Ivan Osmak</dc:creator>
				<category><![CDATA[Concepts & Theory]]></category>

		<guid isPermaLink="false">http://sitefinity.wordpress.com/2007/02/18/welcome-to-the-concepts-theory-category/</guid>
		<description><![CDATA[While developing Sitefinity, we are trying as much as possible, to avoid reinventing the wheel. Therefore, we strive to take advantage of best practices guidlines and when possible extend, not write from the scratch, already existing Asp.NET features. In this category, we&#8217;ll try to point out the subjects you should get acquinted with in order [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=8&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>While developing Sitefinity, we are trying as much as possible, to avoid reinventing the wheel. Therefore, we strive to take advantage of best practices guidlines and when possible extend, not write from the scratch, already existing Asp.NET features.</p>
<p>In this category, we&#8217;ll try to point out the subjects you should get acquinted with in order to take full advantage of the Sitefinity. For example, did you know that Sitefinity&#8217;s Telerik.Cms.CmsSiteMapProvider class inherits from the System.Web.SiteMapProvider and in similar manner Telerik.Cms.CmsSiteMapNode class inherits from the System.Web.SiteMaNode? So, in one of the posts in this category we&#8217;ll cover the sitemap topic, which is really mostly knowledge that you can use in any Asp.NET project (and knowledge that you are probably already familiar with). We&#8217;ll explain basic concepts, provide you with further resources and tie all that together with Sitefinity related solutions.</p>
<p>Another example of a concept that you may want to dip your fingers in is DSL (<a href="http://en.wikipedia.org/wiki/Domain-specific_language" target="_blank">Domain-specific programming language</a>), because the whole data access part of Sitefinity is done with Nolics.net 2005 and its Dbclass language.</p>
<p>So, to wrap it up, we&#8217;ll try to provide you here with the list of concepts, products or features that are heavily used in Sitefinity and hopefully spare you that itchy feeling when you think something could be done, but have no clue where to look for it <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sitefinity.wordpress.com/8/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sitefinity.wordpress.com/8/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sitefinity.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sitefinity.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sitefinity.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sitefinity.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sitefinity.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sitefinity.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sitefinity.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sitefinity.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sitefinity.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sitefinity.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sitefinity.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sitefinity.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sitefinity.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sitefinity.wordpress.com/8/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=8&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sitefinity.wordpress.com/2007/02/18/welcome-to-the-concepts-theory-category/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/650cee6940977f5ec5f9a8a11affe26e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ivan Osmak</media:title>
		</media:content>
	</item>
		<item>
		<title>Tip #1 : Finding child pages based upon a parent page</title>
		<link>http://sitefinity.wordpress.com/2007/02/18/tip-1-finding-child-pages-based-upon-a-parent-page-2/</link>
		<comments>http://sitefinity.wordpress.com/2007/02/18/tip-1-finding-child-pages-based-upon-a-parent-page-2/#comments</comments>
		<pubDate>Sun, 18 Feb 2007 19:24:32 +0000</pubDate>
		<dc:creator>Ivan Osmak</dc:creator>
				<category><![CDATA[Tip of the week]]></category>

		<guid isPermaLink="false">http://sitefinity.wordpress.com/2007/02/18/tip-1-finding-child-pages-based-upon-a-parent-page-2/</guid>
		<description><![CDATA[&#160; The scenario Well, except from the fact that one of the pillars of good parenthood is the ability to tell your own children from all the other kids, there are actually other (more practical and less formal) reasons why you may need to get the reference to all the child pages of any given [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=7&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p class="snap_preview">&nbsp;</p>
<h3>The scenario</h3>
<p>Well, except from the fact that one of the pillars of good parenthood is the ability to tell your own children from all the other kids, there are actually other (more practical and less formal) reasons why you may need to get the reference to all the child pages of any given page made with Sitefinity.</p>
<p>Let’s imagine following scenario. You ran a website for a local car dealership. The dealership strucks a deal with a monthly car fan magazine to be published online on their website. So, you go and create a page for the car magazine. This page then contains pages that each represent a monthly issue. Inside of these monthly issue pages, you then have pages like news, car tests, articles etc.</p>
<p>What you’d like to do is to show on the right side of the magazine front page description and link to all the cover stories from each issue.</p>
<p>Take a look at the screenshot to get an idea what am I talking about (click on the thumbnail to enlarge it).</p>
<p><a href="http://sitefinity.files.wordpress.com/2007/02/main_pic.gif" title="Finding child pages based upon a parent page"><img src="http://sitefinity.files.wordpress.com/2007/02/main_pic.thumbnail.gif?w=544" alt="Finding child pages based upon a parent page" /></a></p>
<h3>Implementation</h3>
<p>First create the page structure like described in the scenario : Magazine &gt; Issue #1 &gt; News, Articles… Create two issue pages just to see the point of the example.</p>
<p>For each “magazine issue” page set the page title to the cover story title and in description type the brief introduction of the cover story. Take a look at the screenshot to get an idea (click on the thumbnail to enlarge it).</p>
<p><a href="http://sitefinity.files.wordpress.com/2007/02/page_properties.jpg" title="Page properties"><img src="http://sitefinity.files.wordpress.com/2007/02/page_properties.thumbnail.jpg?w=544" alt="Page properties" /></a></p>
<p>It is important to set these values to reflect the cover story of the issue, since we will use the CmsPage.Title and CmsPage.Description properties to create our User Control with the cover stories.</p>
<p><strong>Create CoverStories.ascx User Control </strong></p>
<p>Once, you are done with that we’ll create a User Control that will display all Cover stories on the right side of magazine front page. The approach we’ll take here is to get the current node of the sitemap (magazine front page) and then loop through all of it immediate children (issue pages), extract page title and page description and create controls with those value. Take a look at the code bellow :</p>
<p><a href="http://docs.google.com/Doc?id=dgz2n2cr_22crshdv" target="_blank">Open code in new window</a></p>
<p>Now, all that’s left is to upload the user control and add it to our magazine page. Consult the Developer Manual if you are unsure how to add User Control to Sitefinity page.</p>
<p>Hopefully, you’ll find some use of this <img src="http://sitefinity.wordpress.com/wp-includes/images/smilies/icon_smile.gif" alt=")" class="wp-smiley" /></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sitefinity.wordpress.com/7/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sitefinity.wordpress.com/7/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sitefinity.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sitefinity.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sitefinity.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sitefinity.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sitefinity.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sitefinity.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sitefinity.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sitefinity.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sitefinity.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sitefinity.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sitefinity.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sitefinity.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sitefinity.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sitefinity.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=7&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sitefinity.wordpress.com/2007/02/18/tip-1-finding-child-pages-based-upon-a-parent-page-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/650cee6940977f5ec5f9a8a11affe26e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ivan Osmak</media:title>
		</media:content>

		<media:content url="http://sitefinity.files.wordpress.com/2007/02/main_pic.thumbnail.gif" medium="image">
			<media:title type="html">Finding child pages based upon a parent page</media:title>
		</media:content>

		<media:content url="http://sitefinity.files.wordpress.com/2007/02/page_properties.thumbnail.jpg" medium="image">
			<media:title type="html">Page properties</media:title>
		</media:content>

		<media:content url="http://sitefinity.wordpress.com/wp-includes/images/smilies/icon_smile.gif" medium="image">
			<media:title type="html">)</media:title>
		</media:content>
	</item>
		<item>
		<title>Welcome to the &#8220;Tip of the week category&#8221;</title>
		<link>http://sitefinity.wordpress.com/2007/02/18/tip-1-finding-child-pages-based-upon-a-parent-page/</link>
		<comments>http://sitefinity.wordpress.com/2007/02/18/tip-1-finding-child-pages-based-upon-a-parent-page/#comments</comments>
		<pubDate>Sun, 18 Feb 2007 12:58:10 +0000</pubDate>
		<dc:creator>Ivan Osmak</dc:creator>
				<category><![CDATA[Tip of the week]]></category>

		<guid isPermaLink="false">http://sitefinity.wordpress.com/2007/02/18/tip-1-finding-child-pages-based-upon-a-parent-page/</guid>
		<description><![CDATA[We&#8217;d like to welcome you the &#8220;Tip of the week category&#8221; at Sitefinity Developer Blog. It&#8217;s hard to explain what are we going to write in this category without sounding trivial, nontheless here is my try Once a week (I bet you&#8217;d never guess that!), we&#8217;ll write a short, very focused post on a subject [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=4&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>We&#8217;d like to welcome you the &#8220;Tip of the week category&#8221; at Sitefinity Developer Blog.</p>
<p>It&#8217;s hard to explain what are we going to write in this category without sounding trivial, nontheless here is my try <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Once a week (I bet you&#8217;d never guess that!), we&#8217;ll write a short, very focused post on a subject that  may not look obvious to developers outside of the Sitefinity team. In addition to that, if you come up with some neat solution for a particular problem, we encourage you to send it to us and if we like it we&#8217;ll publish it here and credit you for it (we&#8217;ve noticed on <a href="http://www.sitefinity.com/support/forums/forums.aspx">our forum</a> some pretty cool input from you guys).</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sitefinity.wordpress.com/4/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sitefinity.wordpress.com/4/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sitefinity.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sitefinity.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sitefinity.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sitefinity.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sitefinity.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sitefinity.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sitefinity.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sitefinity.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sitefinity.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sitefinity.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sitefinity.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sitefinity.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sitefinity.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sitefinity.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=4&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sitefinity.wordpress.com/2007/02/18/tip-1-finding-child-pages-based-upon-a-parent-page/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/650cee6940977f5ec5f9a8a11affe26e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ivan Osmak</media:title>
		</media:content>
	</item>
		<item>
		<title>Developers for developers</title>
		<link>http://sitefinity.wordpress.com/2007/02/17/developers-for-developers/</link>
		<comments>http://sitefinity.wordpress.com/2007/02/17/developers-for-developers/#comments</comments>
		<pubDate>Sat, 17 Feb 2007 12:21:58 +0000</pubDate>
		<dc:creator>Ivan Osmak</dc:creator>
				<category><![CDATA[Core Sitefinity]]></category>

		<guid isPermaLink="false">http://sitefinity.wordpress.com/2007/02/17/developers-for-developers/</guid>
		<description><![CDATA[We&#8217;d like to welcome you everyone to this brand new Sitefinity blog for developers. I was going to make the first sentence full of corporate slang niceties, but being a developer as you are, I know that we don&#8217;t care all that much about that. So, let&#8217;s get to the business. How do we see [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=3&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>We&#8217;d like to welcome you everyone to this brand new Sitefinity blog for developers.</p>
<p>I was going to make the first sentence full of corporate slang niceties, but being a developer as you are, I know that we don&#8217;t care all that much about that. So, let&#8217;s get to the business.</p>
<p><strong>How do we see this blog?</strong></p>
<p>First of all, we&#8217;ll keep it casual <img src='http://s2.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . We&#8217;ll try to turn it into a idea generator / repository, with you and us taking different angles on Sitefinity and development related challanges. Hopefully, we&#8217;ll find many great solutions along the way that will make us all proud (and make you look good in the eyes of your clients, or bosses for that matter).</p>
<p>As a famous American writer and Nobel prize winner, <a href="http://en.wikipedia.org/wiki/John_Steinbeck" title="John Steinbeck" target="_blank">John Steinback</a>,  put it : &#8220;Ideas are like rabbits. You get a couple and learn how to handle them, and pretty soon you have a dozen.&#8221;</p>
<p><strong>What are we going to write about?</strong></p>
<p>We&#8217;ve put a lot of effort into making the developers manual and API reference as useful as possible. However, living at the mind-boggling  pace of web development enviroment, often it&#8217;ll be faster and simpler to post the ideas, examples, good practice solutions and things like that, here, on this blog.</p>
<p>We are fully aware of the fact that we simply must make mistakes and ocassionaly be a bit silly. So, whenever you spot ignorance, mistakes or simply feel the urge to show us a better way, please leave a comment. Your feedback is of a crucial importance to us and Sitefinity as a product.</p>
<p><strong>Wrapping it up</strong></p>
<p>Having all that said, I&#8217;d like to welcome you once again and invite you to visit us regulary on this blog. We&#8217;ll try to keep it regulary updated, as much as our time allows it.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sitefinity.wordpress.com/3/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sitefinity.wordpress.com/3/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sitefinity.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sitefinity.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sitefinity.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sitefinity.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sitefinity.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sitefinity.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sitefinity.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sitefinity.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sitefinity.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sitefinity.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sitefinity.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sitefinity.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sitefinity.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sitefinity.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sitefinity.wordpress.com&amp;blog=783803&amp;post=3&amp;subd=sitefinity&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sitefinity.wordpress.com/2007/02/17/developers-for-developers/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/650cee6940977f5ec5f9a8a11affe26e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Ivan Osmak</media:title>
		</media:content>
	</item>
	</channel>
</rss>
