<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="http://www.codeplex.com/rss.xsl"?><rss version="2.0"><channel><title>CSExtras Wiki &amp; Documentation Rss Feed</title><link>http://www.codeplex.com/CSExtras/Wiki/View.aspx?title=Home</link><description>CSExtras Wiki Rss Description</description><item><title>Updated Wiki: Home</title><link>http://www.codeplex.com/CSExtras/Wiki/View.aspx?title=Home&amp;version=5</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Community Server Extras is an open project for Community Server custom controls that help users to customize Community Server for their needs.
&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Join to Project&lt;/b&gt;&lt;br /&gt;Reply to &lt;a href="http://www.codeplex.com/CSExtras/Thread/View.aspx?ThreadId=10080" class="externalLink"&gt;this thread&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; to join to project team members.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;How to Write a Control&lt;/b&gt;&lt;br /&gt;Read Keyvan Nayyeri's post to learn &lt;a href="http://nayyeri.net/archive/2007/05/09/cs-dev-guide-how-to-write-a-custom-chameleon-control.aspx" class="externalLink"&gt;How to Write a Custom Chameleon Control&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;a href="http://www.codeplex.com/CSExtras/Wiki/View.aspx?title=News%20Feeds&amp;amp;referringTitle=Home"&gt;News Feeds&lt;/a&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;b&gt;&lt;a href="http://waegis.com" class="externalLink"&gt;Online spam filter service for site, blog, forum, Wiki and contact form - Waegis&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>Keyvan</author><pubDate>Mon, 16 Jun 2008 18:27:55 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20080616062755P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/CSExtras/Wiki/View.aspx?title=Home&amp;version=4</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Community Server Extras is an open project for Community Server custom controls that help users to customize Community Server for their needs.
&lt;br /&gt; &lt;br /&gt;&lt;b&gt;Join to Project&lt;/b&gt;&lt;br /&gt;Reply to &lt;a href="http://www.codeplex.com/CSExtras/Thread/View.aspx?ThreadId=10080" class="externalLink"&gt;this thread&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; to join to project team members.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;How to Write a Control&lt;/b&gt;&lt;br /&gt;Read Keyvan Nayyeri's post to learn &lt;a href="http://nayyeri.net/archive/2007/05/09/cs-dev-guide-how-to-write-a-custom-chameleon-control.aspx" class="externalLink"&gt;How to Write a Custom Chameleon Control&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;a href="http://www.codeplex.com/CSExtras/Wiki/View.aspx?title=News%20Feeds&amp;amp;referringTitle=Home"&gt;News Feeds&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>Keyvan</author><pubDate>Thu, 10 May 2007 04:54:44 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070510045444A</guid></item><item><title>UPDATED WIKI: News Feeds</title><link>http://www.codeplex.com/CSExtras/Wiki/View.aspx?title=News Feeds&amp;version=2</link><description>&lt;div class="wikidoc"&gt;
&lt;div class="rss"&gt;
&lt;div class="accentbar"&gt;
&lt;span class="left"&gt;&amp;nbsp;&lt;/span&gt;NEWS FEED&lt;span class="right"&gt;&amp;nbsp;&lt;/span&gt;
&lt;/div&gt;&lt;div class="entry"&gt;
&lt;div class="title"&gt;
&lt;a href="http://nayyeri.net/archive/2007/05/09/cs-dev-guide-how-to-write-a-custom-chameleon-control.aspx"&gt;CS Dev Guide: How to Write a Custom Chameleon Control&lt;/a&gt;
&lt;/div&gt;&lt;div class="moreinfo"&gt;
&lt;span class="date"&gt;Wednesday, May 09, 2007&lt;/span&gt; &amp;nbsp;| &amp;nbsp;&lt;span class="source"&gt;From &lt;a href="http://nayyeri.net/rss.aspx" target="_blank"&gt;Keyvan Nayyeri&lt;/a&gt;&lt;/span&gt;
&lt;/div&gt;&lt;p&gt;&lt;p&gt;I have to change the name of my blog to "Custom Controls"!&amp;nbsp; And this time I want to talk about writing a custom Chameleon control in a new CS Dev Guide.&lt;/p&gt; &lt;p&gt;But seriously how can you write a custom Chameleon control?!&amp;nbsp; The first step is to understand the class hierarchy in Chameleon.&amp;nbsp; Chameleon controls are located in some namespaces:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;There is a general &lt;em&gt;CommunityServer.Controls&lt;/em&gt; namespace where you can find all Chameleon base classes and all controls that are used for general purposes.  &lt;li&gt;There are also some namespaces dedicated to controls that are used in a specific application.&amp;nbsp; For example &lt;em&gt;CommunityServer.Blogs.Controls&lt;/em&gt; contains all classes for blog controls.&lt;/li&gt;&lt;/ul&gt; &lt;h3&gt;Choose a Base Class&lt;/h3&gt; &lt;p&gt;After understanding the complex class structure of Chameleon controls (I have a class diagram to share with you but it's almost impossible to get anything from this large and complex diagram) you need to choose a base class for your control based on the purpose of your control and its application.&amp;nbsp; Chameleon has a large and complex class structure and I guess&amp;nbsp;&lt;a href="http://getben.com/" rel="acquaintance"&gt;Ben&lt;/a&gt; can't remember all parts of this hierarchy himself but after working with Chameleon, you'll find that how many classes are important and common.&lt;/p&gt; &lt;p&gt;Some classes are the base class for many other classes.&amp;nbsp; Some examples are &lt;em&gt;WrappedContentBase&lt;/em&gt;, &lt;em&gt;ConditionBase&lt;/em&gt;, &lt;em&gt;ActionBase&lt;/em&gt;, &lt;em&gt;WrappedFormBase&lt;/em&gt;, ...&amp;nbsp; On the other side many other base classes are derived from these base classes as well so you have a complex structure ahead.&lt;/p&gt; &lt;p&gt;Here you need a good base class to choose and start your development based on it.&amp;nbsp; This is an important step and needs some experiments with Chameleon.&lt;/p&gt; &lt;h3&gt;Implement Your Logic&lt;/h3&gt; &lt;p&gt;After passing previous step, you can create a class and derive it from your chosen base class and override some methods from base class or add your own methods and properties to&amp;nbsp;customize it to add your desire functionality to it.&lt;/p&gt; &lt;p&gt;Some base classes like &lt;em&gt;ActionBase&lt;/em&gt; have a &lt;em&gt;Render()&lt;/em&gt; method.&amp;nbsp; It takes an HtmlTextWriter as parameter and renders it as output.&amp;nbsp; At one level you can customize the HTML code directly but most times you can customize some properties and methods from base classes to get what you want.&lt;/p&gt; &lt;p&gt;Let me write an example.&amp;nbsp; I want to write a custom Chameleon control to customize default &lt;em&gt;TagCloud&lt;/em&gt; control to show posts count for each tag and hide tags with less than&amp;nbsp;2 posts.&amp;nbsp; To do this I use &lt;em&gt;TagCloud&lt;/em&gt; as my base class and write a very simple code to set two properties of this base class in constructor.&lt;/p&gt; &lt;div style="font-size: 10pt; background: white; color: black; font-family: courier new"&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt; System;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt; System.Text;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt; CommunityServer.Components;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt; CommunityServer.Controls;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;namespace&lt;/span&gt; ChameleonControl&lt;/p&gt; &lt;p style="margin: 0px"&gt;{&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;class&lt;/span&gt; &lt;span style="color: teal"&gt;CustomControl&lt;/span&gt; : &lt;span style="color: teal"&gt;TagCloud&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;public&lt;/span&gt; CustomControl()&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;base&lt;/span&gt;.ShowTagCounts = &lt;span style="color: blue"&gt;true&lt;/span&gt;;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;base&lt;/span&gt;.MinimumPostsPerTag = 2;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin: 0px"&gt;}&lt;/p&gt;&lt;/div&gt; &lt;h3&gt;Register the Control&lt;/h3&gt; &lt;p&gt;Now I compile my class library&amp;nbsp;into an assembly and deploy it to &lt;em&gt;bin&lt;/em&gt; folder.&amp;nbsp; The last step is to use this control in my Community Server pages.&amp;nbsp; To do this I have to register a tag prefix for my custom control and add it to my page like a custom server control.&amp;nbsp; As you know ASP.NET well (or in other words I suppose that my readers have a good background in ASP.NET), it's possible to register a tag prefix from page directives or Web.Config.&amp;nbsp; As the second option is a better&amp;nbsp;way, I describe it.&lt;/p&gt; &lt;p&gt;In Community Server 2007 you can find following configurations in Web.Config file:&lt;/p&gt; &lt;div style="font-size: 10pt; background: white; color: black; font-family: courier new"&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;pages&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;validateRequest&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;false&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;enableEventValidation&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;false&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;autoEventWireup&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;true&lt;/span&gt;"&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: red"&gt;pageBaseType&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CommunityServer.Components.CSPage, CommunityServer.Components&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;controls&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;add&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;tagPrefix&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CSControl&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;namespace&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CommunityServer.Controls&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;assembly&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CommunityServer.Controls&lt;/span&gt;"&lt;span style="color: blue"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;add&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;tagPrefix&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CSBlog&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;namespace&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CommunityServer.Blogs.Controls&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;assembly&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CommunityServer.Blogs&lt;/span&gt;"&lt;span style="color: blue"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;add&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;tagPrefix&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CSForum&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;namespace&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CommunityServer.Discussions.Controls&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;assembly&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CommunityServer.Discussions&lt;/span&gt;"&lt;span style="color: blue"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;add&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;tagPrefix&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CSMail&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;namespace&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CommunityServer.MailGateway.MailRoom.Controls&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;assembly&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CommunityServer.MailGateway&lt;/span&gt;"&lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;add&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;tagPrefix&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CSFile&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;namespace&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CommunityServer.Files.Controls&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;assembly&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CommunityServer.Files&lt;/span&gt;"&lt;span style="color: blue"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;add&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;tagPrefix&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CSGallery&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;namespace&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CommunityServer.Galleries.Controls&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;assembly&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CommunityServer.Galleries&lt;/span&gt;"&lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;add&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;tagPrefix&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CSReader&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;namespace&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CommunityServer.Reader.Controls&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;assembly&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CommunityServer.Reader&lt;/span&gt;"&lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;add&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;tagPrefix&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CSDynConfig&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;namespace&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;Telligent.DynamicConfiguration.Controls&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;assembly&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;Telligent.DynamicConfiguration&lt;/span&gt;"&lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;add&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;tagPrefix&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;TWC&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;namespace&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;Telligent.Glow&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;assembly&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;Telligent.Glow&lt;/span&gt;"&lt;span style="color: blue"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;add&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;tagPrefix&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CA&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;namespace&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;ComponentArt.Web.UI&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;assembly&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;ComponentArt.Web.UI&lt;/span&gt;"&lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;add&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;tagPrefix&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CP&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;namespace&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CommunityServer.ControlPanel.Controls&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;assembly&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CommunityServer.Web&lt;/span&gt;"&lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color: maroon"&gt;controls&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon"&gt;pages&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;p&gt;These are all default registered tag prefixes for Community Server controls.&amp;nbsp; All you need is adding a new &amp;lt;add /&amp;gt; element with your own tag prefix, namespace and assembly name.&amp;nbsp; After this you can simply add your custom control to all Community Server master and content pages as well as user controls and enjoy the intellisense!&amp;nbsp; Here I add &lt;em&gt;Keyvan&lt;/em&gt; as my prefix with my own namespace and assembly name.&lt;/p&gt; &lt;div style="font-size: 10pt; background: white; color: black; font-family: courier new"&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;pages&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;validateRequest&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;false&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;enableEventValidation&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;false&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;autoEventWireup&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;true&lt;/span&gt;"&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: red"&gt;pageBaseType&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CommunityServer.Components.CSPage, CommunityServer.Components&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;controls&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;add&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;tagPrefix&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CSControl&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;namespace&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CommunityServer.Controls&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;assembly&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CommunityServer.Controls&lt;/span&gt;"&lt;span style="color: blue"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;add&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;tagPrefix&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CSBlog&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;namespace&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CommunityServer.Blogs.Controls&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;assembly&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CommunityServer.Blogs&lt;/span&gt;"&lt;span style="color: blue"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;add&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;tagPrefix&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CSForum&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;namespace&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CommunityServer.Discussions.Controls&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;assembly&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CommunityServer.Discussions&lt;/span&gt;"&lt;span style="color: blue"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;add&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;tagPrefix&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CSMail&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;namespace&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CommunityServer.MailGateway.MailRoom.Controls&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;assembly&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CommunityServer.MailGateway&lt;/span&gt;"&lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;add&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;tagPrefix&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CSFile&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;namespace&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CommunityServer.Files.Controls&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;assembly&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CommunityServer.Files&lt;/span&gt;"&lt;span style="color: blue"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;add&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;tagPrefix&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CSGallery&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;namespace&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CommunityServer.Galleries.Controls&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;assembly&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CommunityServer.Galleries&lt;/span&gt;"&lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;add&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;tagPrefix&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CSReader&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;namespace&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CommunityServer.Reader.Controls&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;assembly&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CommunityServer.Reader&lt;/span&gt;"&lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;add&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;tagPrefix&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CSDynConfig&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;namespace&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;Telligent.DynamicConfiguration.Controls&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;assembly&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;Telligent.DynamicConfiguration&lt;/span&gt;"&lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;add&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;tagPrefix&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;TWC&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;namespace&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;Telligent.Glow&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;assembly&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;Telligent.Glow&lt;/span&gt;"&lt;span style="color: blue"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;add&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;tagPrefix&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CA&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;namespace&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;ComponentArt.Web.UI&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;assembly&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;ComponentArt.Web.UI&lt;/span&gt;"&lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;add&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;tagPrefix&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CP&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;namespace&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CommunityServer.ControlPanel.Controls&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;assembly&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;CommunityServer.Web&lt;/span&gt;"&lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;add&lt;/span&gt;&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;tagPrefix&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;Keyvan&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;namespace&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;ChameleonControl&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;assembly&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;ChameleonControl&lt;/span&gt;"&lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color: maroon"&gt;controls&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon"&gt;pages&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt; &lt;p&gt;At this point I add my control to a page.&lt;/p&gt; &lt;p&gt;&lt;em&gt;&amp;lt;Keyvan:CustomControl ID="TagCloud2" TagCssClasses="tag6,tag5,tag4,tag3,tag2,tag1" runat="server" &lt;br&gt;IgnoreFilterTags="true" CssClass="TagCloud" TagCloudCssClass="TagCloud" /&amp;gt;&lt;/em&gt;&lt;/p&gt; &lt;p&gt;And ...&lt;/p&gt; &lt;p&gt;&lt;img height="181" src="http://nayyeri.net/misc/keyvan/WindowsLiveWriter/CSDevGuideHowtoWriteaCustomChameleonCont_8889/Capture24.jpg" width="150"&gt; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Now playing:&lt;/strong&gt; Bruce BecVar - Istanbul&lt;/p&gt;&lt;img src="http://nayyeri.net/aggbug.aspx?PostID=71675" width="1" height="1"&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div class="entry"&gt;
&lt;div class="title"&gt;
&lt;a href="http://nayyeri.net/archive/2007/05/08/how-to-add-events-to-custom-wpf-control.aspx"&gt;How to Add Events to Custom WPF Control&lt;/a&gt;
&lt;/div&gt;&lt;div class="moreinfo"&gt;
&lt;span class="date"&gt;Tuesday, May 08, 2007&lt;/span&gt; &amp;nbsp;| &amp;nbsp;&lt;span class="source"&gt;From &lt;a href="http://nayyeri.net/rss.aspx" target="_blank"&gt;Keyvan Nayyeri&lt;/a&gt;&lt;/span&gt;
&lt;/div&gt;&lt;p&gt;&lt;p&gt;So far I've discussed about &lt;a href="http://nayyeri.net/archive/2007/04/21/how-to-create-a-custom-wpf-control.aspx"&gt;basics of creating a custom WPF control&lt;/a&gt; and &lt;a href="http://nayyeri.net/archive/2007/04/28/how-to-add-properties-to-custom-wpf-control.aspx"&gt;how to add properties to it&lt;/a&gt;.&amp;nbsp; In this post I want to write about adding events to a custom&amp;nbsp;&lt;abbr title="Windows Presentation Foundation"&gt;WPF&lt;/abbr&gt; control.&lt;/p&gt; &lt;p&gt;Adding events to custom controls is very similar to adding properties to them in the way that we register them&amp;nbsp;within our&amp;nbsp;control's static constructor.&amp;nbsp;&amp;nbsp;We use RoutedEvents to declare our events.&amp;nbsp; As you may know there are three types of RoutedEvents available in WPF (Bubble, Direct and Tunnel) that you can use in your controls (find more about&amp;nbsp;&lt;a href="http://aspalliance.com/1088_Events_in_Windows_Presentation_Foundation"&gt;Events in Windows Presentation Foundation&lt;/a&gt; from my article on ASP Alliance).&lt;/p&gt; &lt;p&gt;In order to add RoutedEvents to a custom control you can declare a public static RoutedEvent in your class and use EventManager.RegisterRoutedEvent() method to register these events.&amp;nbsp; EventManager.RegisterRoutedEvent() gets four parameters: the string value of event name, routing strategy (Bubble, Direct or Tunnel), type of RoutedEventHandler and type of the custom control.&lt;/p&gt; &lt;p&gt;Following is a simple example that demonstrates this in action by adding a new routed event named &lt;em&gt;Keyvan&lt;/em&gt; to a custom WPF control with Bubble routing strategy.&lt;/p&gt; &lt;div style="font-size: 10pt; background: white; color: black; font-family: courier new"&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt; System;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt; System.Text;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt; System.Windows;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt; System.Windows.Controls;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;namespace&lt;/span&gt; WPFCustomControl&lt;/p&gt; &lt;p style="margin: 0px"&gt;{&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;class&lt;/span&gt; &lt;span style="color: teal"&gt;MyControl&lt;/span&gt; : &lt;span style="color: teal"&gt;ItemsControl&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;static&lt;/span&gt; MyControl()&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal"&gt;EventManager&lt;/span&gt;.RegisterRoutedEvent(&lt;span style="color: maroon"&gt;"Keyvan"&lt;/span&gt;, &lt;span style="color: teal"&gt;RoutingStrategy&lt;/span&gt;.Bubble,&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;typeof&lt;/span&gt;(&lt;span style="color: teal"&gt;RoutedEventHandler&lt;/span&gt;), &lt;span style="color: blue"&gt;typeof&lt;/span&gt;(&lt;span style="color: teal"&gt;MyControl&lt;/span&gt;));&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;static&lt;/span&gt; &lt;span style="color: teal"&gt;RoutedEvent&lt;/span&gt; KeyvanEvent;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;event&lt;/span&gt; &lt;span style="color: teal"&gt;RoutedEventHandler&lt;/span&gt; Keyvan&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;add&lt;/span&gt; { AddHandler(KeyvanEvent, &lt;span style="color: blue"&gt;value&lt;/span&gt;); }&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;remove&lt;/span&gt; { RemoveHandler(KeyvanEvent, &lt;span style="color: blue"&gt;value&lt;/span&gt;); }&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;protected&lt;/span&gt; &lt;span style="color: blue"&gt;virtual&lt;/span&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; OnKeyvan()&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal"&gt;RoutedEventArgs&lt;/span&gt; args = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: teal"&gt;RoutedEventArgs&lt;/span&gt;();&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; args.RoutedEvent = KeyvanEvent;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; RaiseEvent(args);&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin: 0px"&gt;}&lt;/p&gt;&lt;/div&gt; &lt;p&gt;&lt;strong&gt;Now playing:&lt;/strong&gt; Modern Talking - Summer In December&lt;/p&gt;&lt;img src="http://nayyeri.net/aggbug.aspx?PostID=71532" width="1" height="1"&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div class="entry"&gt;
&lt;div class="title"&gt;
&lt;a href="http://nayyeri.net/archive/2007/05/07/wordpress-blogml-export.aspx"&gt;WordPress BlogML Export&lt;/a&gt;
&lt;/div&gt;&lt;div class="moreinfo"&gt;
&lt;span class="date"&gt;Tuesday, May 08, 2007&lt;/span&gt; &amp;nbsp;| &amp;nbsp;&lt;span class="source"&gt;From &lt;a href="http://nayyeri.net/rss.aspx" target="_blank"&gt;Keyvan Nayyeri&lt;/a&gt;&lt;/span&gt;
&lt;/div&gt;&lt;p&gt;&lt;p&gt;Finally it's here: &lt;a href="http://www.windows-now.com/blogs/robert/archive/2007/05/07/wordpress-blogml-export-1-0.aspx"&gt;WordPress to BlogML export tool&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;For a long time it was a request for many &lt;abbr title="Blog Markup Language"&gt;BlogML&lt;/abbr&gt;&amp;nbsp;users (and of course, Community Server users) to have a tool to export WordPress blogs to BlogML and move them to other blogging engines.&amp;nbsp; Since writing such a tool needs a knowledge in PHP, many .NET developers were unable to create it.&lt;/p&gt; &lt;p&gt;Finally&amp;nbsp;&lt;a href="http://www.windows-now.com/blogs/robert/" rel="acquaintance"&gt;Robert McLaws&lt;/a&gt; did a great job on writing this tool and released it today.&amp;nbsp; In &lt;a href="http://www.windows-now.com/blogs/robert/archive/2007/05/07/wordpress-blogml-export-1-0.aspx"&gt;his post&lt;/a&gt; he describes a bit about this export tool but for more details follow him and read his future posts.&lt;/p&gt; &lt;p&gt;However, now there is a tool available to export WordPress to BlogML and migrate to many other great blogging tools such as Community Server, SubText, DasBlog, SingleUserBlog and ...&lt;/p&gt; &lt;p&gt;You can get this export tool from &lt;a href="http://www.codeplex.com/BlogML"&gt;our workspace&lt;/a&gt; on CodePlex.&lt;/p&gt;&lt;img src="http://nayyeri.net/aggbug.aspx?PostID=71477" width="1" height="1"&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div class="entry"&gt;
&lt;div class="title"&gt;
&lt;a href="http://nayyeri.net/archive/2007/05/07/list-recent-comments-with-chameleon-controls.aspx"&gt;List Recent Comments with Chameleon Controls&lt;/a&gt;
&lt;/div&gt;&lt;div class="moreinfo"&gt;
&lt;span class="date"&gt;Monday, May 07, 2007&lt;/span&gt; &amp;nbsp;| &amp;nbsp;&lt;span class="source"&gt;From &lt;a href="http://nayyeri.net/rss.aspx" target="_blank"&gt;Keyvan Nayyeri&lt;/a&gt;&lt;/span&gt;
&lt;/div&gt;&lt;p&gt;&lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;[&lt;/font&gt;Update:&lt;/strong&gt;&amp;nbsp;&lt;a href="http://getben.com/" rel="acquaintance"&gt;Ben Tiedt&lt;/a&gt; sent a &lt;a href="http://nayyeri.net/archive/2007/05/07/list-recent-comments-with-chameleon-controls.aspx#71445"&gt;comment&lt;/a&gt; with a tip to list all feedbacks for all pages by setting the ParentID="-1"&amp;nbsp;on &amp;lt;QueryOverrides /&amp;gt;&amp;nbsp;for WeblogFeedbackList control.&amp;nbsp; Thank you Ben!&lt;strong&gt;&lt;font color="#ff0000"&gt;]&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;One of several points about Chameleon is&amp;nbsp;is many of its controls have a one to one mapping with Community Server main classes and this helps you to get the benefit of these classes in your themes and customize your UI easily.&amp;nbsp; For example WeblogPostData can be used to display many properties of an individual blog post.&lt;/p&gt; &lt;p&gt;After this short introduction I want to show you how to list recent N comments for a Community Server 2007 blog without using a third party control and only by using built-in Chameleon controls.&amp;nbsp; Previously I was using a solution on my blog to list recent N feedbacks (comments plus trackbacks) but that solution had problem (as Chris Lotter&amp;nbsp;&lt;a href="http://nayyeri.net/archive/2007/04/29/elite-circle-theme-for-community-server-2007.aspx#71402"&gt;has noted&lt;/a&gt; under my post): when viewing an individual blog post it lists recent feedbacks for that blog post only not for whole blog).&amp;nbsp; I'll describe the reason in this post but as a solution I could find two hacks but still they don't show recent N feedbacks but you can use them to list recent N comments or trackbacks independently.&amp;nbsp; Currently my blog is using this solution to only list recent N comments.&lt;/p&gt; &lt;p&gt;First I give out&amp;nbsp;my previous solution to list recent N feedbacks.&amp;nbsp; WeblogFeedbackList control is a Chameleon List control that displays a list of blog feedbacks but it has a default implementation that should be overridden to display recent N feedbacks.&amp;nbsp; In order to do this we use a &amp;lt;QueryOverrides /&amp;gt; child element and set some properties for it.&amp;nbsp; After this we can use WeblogPostFeedbackData control to display a property of individual feedbacks (like title or body) and link it to feedback itself.&amp;nbsp; This control must be placed within ItemTemplate element of WeblogFeedbackList control.&lt;/p&gt; &lt;p&gt;&lt;em&gt;&amp;lt;CSBlog:WeblogFeedbackList ID="WeblogPostList1" runat="Server"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;QueryOverrides ID="QueryOverrides2" PageIndex="0" PageSize="5" runat="server" SortBy="MostRecent"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;SortOrder="Descending" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;HeaderTemplate&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;h2&amp;gt;Recent Feedbacks&amp;lt;/h2&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ul&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/HeaderTemplate&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ItemTemplate&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;CSBlog:WeblogPostFeedbackData ID="WeblogPostData1" runat="server" LinkTo="Feedback" &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Property="Body" TruncateAt="80" Tag="Li" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ItemTemplate&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;FooterTemplate&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ul&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/FooterTemplate&amp;gt;&lt;br&gt;&amp;lt;/CSBlog:WeblogFeedbackList&amp;gt;&lt;/em&gt;&lt;/p&gt; &lt;p&gt;But what's the reason to face with aforementioned&amp;nbsp;problem for individual posts?&amp;nbsp; WeblogFeedbackList control has a default query to fetch feedbacks for current post if an individual blog post is being viewed.&amp;nbsp; This behavior can't be overridden by &amp;lt;QueryOverrides /&amp;gt;&amp;nbsp;element and I couldn't find any way to do it though.&amp;nbsp; Therefore it wasn't possible for me to solve it in general.&lt;/p&gt; &lt;p&gt;My solution was a simple hack to use a WeblogPostList control rather than WeblogFeedbackList control and override it to select a specific BlogPostType (comment or trackback) but as &amp;lt;QueryOverrides /&amp;gt; element can't get two values for its&amp;nbsp;BlogPostType property then it's not possible to select all feedbacks using this query.&amp;nbsp; As a result&amp;nbsp;it shows a list of comments only or recent trackbacks only.&lt;/p&gt; &lt;p&gt;&lt;em&gt;&amp;lt;CSBlog:WeblogPostList ID="WeblogPostList1" runat="Server"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;QueryOverrides BlogPostType="Comment" PageIndex="0" PageSize="5" runat="server" &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SortBy="MostRecent" SortOrder="Descending" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;HeaderTemplate&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;h2&amp;gt;Recent Comments&amp;lt;/h2&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ul&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/HeaderTemplate&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;ItemTemplate&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;CSBlog:WeblogPostFeedbackData ID="WeblogPostData1" runat="server" LinkTo="Feedback"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Property="Body" TruncateAt="80" Tag="Li" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ItemTemplate&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;FooterTemplate&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ul&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/FooterTemplate&amp;gt;&lt;br&gt;&amp;lt;/CSBlog:WeblogPostList&amp;gt;&lt;/em&gt;&lt;/p&gt; &lt;p&gt;If you have a better solution to show all recent feedbacks in all pages, it's worth to leave a comment.&lt;/p&gt;&lt;img src="http://nayyeri.net/aggbug.aspx?PostID=71439" width="1" height="1"&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div class="entry"&gt;
&lt;div class="title"&gt;
&lt;a href="http://nayyeri.net/archive/2007/05/06/live-space-to-blogml-converter.aspx"&gt;Live Space to BlogML Converter&lt;/a&gt;
&lt;/div&gt;&lt;div class="moreinfo"&gt;
&lt;span class="date"&gt;Sunday, May 06, 2007&lt;/span&gt; &amp;nbsp;| &amp;nbsp;&lt;span class="source"&gt;From &lt;a href="http://nayyeri.net/rss.aspx" target="_blank"&gt;Keyvan Nayyeri&lt;/a&gt;&lt;/span&gt;
&lt;/div&gt;&lt;p&gt;&lt;p&gt;While I am trying to find some free time to unit test&amp;nbsp;&lt;abbr title="Blog Markup Language"&gt;BlogML&lt;/abbr&gt; APIs and begin my work for vNext, Jason Strangroome details his &lt;a href="http://www.codeassassin.com/blog/CommentView,guid,5b322a3a-dd22-4900-9821-9b863afe3261.aspx"&gt;Live Space to BlogML converter&lt;/a&gt; which just arrived yesterday.&lt;/p&gt; &lt;p&gt;He recently joined to our team on CodePlex and added his converter to workspace.&amp;nbsp; In fact his converter is an exporter which exports the content of a Live Space blog to BlogML 2.0 format.&lt;/p&gt; &lt;p&gt;He, himself, &lt;a href="http://www.codeassassin.com/blog/PermaLink,guid,fb4c9943-7f9e-446c-97a3-8a5426a5f7e5.aspx"&gt;has migrated&lt;/a&gt; from his blog on Live Spaces to DasBlog using this converter and now the source of converter is available on our workspace.&lt;/p&gt; &lt;p&gt;In parallel to the task of writing new converters for BlogML 2.0 which is being done by some developers from different blogging tool teams, I'm planning for next version and before anything, it's necessary to unit test everything from the base.&amp;nbsp; I hope that I can follow this progress in next days and prepare everything for next version very soon.&lt;/p&gt;&lt;img src="http://nayyeri.net/aggbug.aspx?PostID=71350" width="1" height="1"&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div class="entry"&gt;
&lt;div class="title"&gt;
&lt;a href="http://nayyeri.net/archive/2007/05/04/animations-in-windows-presentation-foundation.aspx"&gt;Animations in Windows Presentation Foundation&lt;/a&gt;
&lt;/div&gt;&lt;div class="moreinfo"&gt;
&lt;span class="date"&gt;Friday, May 04, 2007&lt;/span&gt; &amp;nbsp;| &amp;nbsp;&lt;span class="source"&gt;From &lt;a href="http://nayyeri.net/rss.aspx" target="_blank"&gt;Keyvan Nayyeri&lt;/a&gt;&lt;/span&gt;
&lt;/div&gt;&lt;p&gt;&lt;p&gt;Guys at Microsoft &lt;acronym title="Europe, Middle East, Africa"&gt;EMEA&lt;/acronym&gt; and Futurecom have published the newest part of my articles about UniveRSS showcase of "The Panel" program about &lt;a href="http://www.microsoft.com/emea/msdn/thepanel/en/articles/animations_wpf.aspx"&gt;Animations in Windows Presentation Foundation&lt;/a&gt;.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;In the fourth article of our series about UniveRSS we discuss animations in XAML and Windows Presentation Foundation because animations are a main part of the UniveRSS user interface and an important part of WPF as well as being one of its powerful features. &lt;br&gt;In this article we walk through the principles of animations in WPF and talk about StoryBoard, RepeatBehavior, Transformation, ParallelTimeLine and KeyFrame. &lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;In this article I gave an overview of animations in &lt;acronym title="Windows Presentation Foundation"&gt;WPF&lt;/acronym&gt; and &lt;acronym title="eXtensible Application Markup Language"&gt;XAML&lt;/acronym&gt;.&amp;nbsp; After an introduction and a short background I took a look at &lt;em&gt;StoryBoard&lt;/em&gt; as the main element of animations then talked about repeat behaviors to customize the behavior of an animation then about transformations as one of main types of animations.&amp;nbsp; &lt;em&gt;ParallelTimeLine&lt;/em&gt; and &lt;em&gt;KeyFrame&lt;/em&gt; elements are two topics that are discussed in next sections of my article and finally you'll read a brief description about what is done in UniveRSS application.&lt;/p&gt; &lt;p&gt;Last part of&amp;nbsp;first phase of our articles about UniveRSS architecture is coming soon.&lt;/p&gt; &lt;p&gt;+ Besides this, I have to give my credits to Swee Ee Bruggisser, new editor of my articles, for her great editions and additions to my articles and also to Patrik Lustenberger for his helps on publishing them.&lt;/p&gt;&lt;img src="http://nayyeri.net/aggbug.aspx?PostID=71169" width="1" height="1"&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div class="entry"&gt;
&lt;div class="title"&gt;
&lt;a href="http://nayyeri.net/archive/2007/05/04/insert-acronym-plugin-for-windows-live-writer.aspx"&gt;Insert Acronym Plugin for Windows Live Writer&lt;/a&gt;
&lt;/div&gt;&lt;div class="moreinfo"&gt;
&lt;span class="date"&gt;Friday, May 04, 2007&lt;/span&gt; &amp;nbsp;| &amp;nbsp;&lt;span class="source"&gt;From &lt;a href="http://nayyeri.net/rss.aspx" target="_blank"&gt;Keyvan Nayyeri&lt;/a&gt;&lt;/span&gt;
&lt;/div&gt;&lt;p&gt;&lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;[&lt;/font&gt;Update:&lt;/strong&gt; Thank to&amp;nbsp;&lt;a href="http://haacked.com/" rel="friend"&gt;Phil&lt;/a&gt; for his valuable &lt;a href="http://nayyeri.net/archive/2007/05/04/insert-acronym-plugin-for-windows-live-writer.aspx#71166"&gt;comment&lt;/a&gt;, I updated the source and uploaded the new package to use &amp;lt;abbr /&amp;gt; element rather than &amp;lt;acronym /&amp;gt; but couldn't rename everything from the base!&lt;strong&gt;&lt;font color="#ff0000"&gt;]&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;In my recent posts I began using acronym tags (as you can see in archive) to let readers understand things better.&amp;nbsp; Putting these HTML tags in post bodies by hand wasn't a good idea so I came up with writing a simple Windows Live Writer plugin to automate this process.&lt;/p&gt; &lt;p&gt;Plugin is very simple.&amp;nbsp; It gets the text and its description and generates the HTML code.&amp;nbsp; Here is the source of the plugin class which is written with C#:&lt;/p&gt; &lt;div style="font-size: 10pt; background: white; color: black; font-family: courier new"&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt; System;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt; System.Text;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt; WindowsLive.Writer.Api;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;using&lt;/span&gt; System.Windows.Forms;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;namespace&lt;/span&gt; InsertAcronym&lt;/p&gt; &lt;p style="margin: 0px"&gt;{&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;span style="color: teal"&gt;WriterPluginAttribute&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; (&lt;span style="color: maroon"&gt;"655DAABD-EDD7-41a5-A014-84702D2EDCF4"&lt;/span&gt;,&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: maroon"&gt;"Insert Acronym"&lt;/span&gt;,&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ImagePath = &lt;span style="color: maroon"&gt;"Images.Acronym.png"&lt;/span&gt;,&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; PublisherUrl = &lt;span style="color: maroon"&gt;"http://nayyeri.net"&lt;/span&gt;,&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Description = &lt;span style="color: maroon"&gt;"Inserts Acronym Tags in Blog Posts"&lt;/span&gt;)]&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;span style="color: teal"&gt;InsertableContentSourceAttribute&lt;/span&gt;(&lt;span style="color: maroon"&gt;"Acronym"&lt;/span&gt;)]&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;class&lt;/span&gt; &lt;span style="color: teal"&gt;Plugin&lt;/span&gt; : &lt;span style="color: teal"&gt;ContentSource&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;override&lt;/span&gt; &lt;span style="color: teal"&gt;DialogResult&lt;/span&gt; CreateContent(&lt;span style="color: teal"&gt;IWin32Window&lt;/span&gt; dialogOwner,&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;ref&lt;/span&gt; &lt;span style="color: blue"&gt;string&lt;/span&gt; newContent)&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;using&lt;/span&gt; (&lt;span style="color: teal"&gt;InsertForm&lt;/span&gt; insertForm = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: teal"&gt;InsertForm&lt;/span&gt;())&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal"&gt;DialogResult&lt;/span&gt; result = insertForm.ShowDialog();&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;if&lt;/span&gt; (result == &lt;span style="color: teal"&gt;DialogResult&lt;/span&gt;.OK)&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; newContent = insertForm.GetHTML();&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;return&lt;/span&gt; result;&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt; &lt;p style="margin: 0px"&gt;}&lt;/p&gt;&lt;/div&gt; &lt;p&gt;And following is the very simple source code of main event (clicking on Insert button) which generates the HTML code and inserts it into a property.&lt;/p&gt; &lt;div style="font-size: 10pt; background: white; color: black; font-family: courier new"&gt; &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;private&lt;/span&gt; &lt;span style="color: blue"&gt;void&lt;/span&gt; btnInsert_Click(&lt;span style="color: blue"&gt;object&lt;/span&gt; sender, &lt;span style="color: teal"&gt;EventArgs&lt;/span&gt; e)&lt;/p&gt; &lt;p style="margin: 0px"&gt;{&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;string&lt;/span&gt; result = &lt;span style="color: blue"&gt;string&lt;/span&gt;.Format(&lt;span style="color: maroon"&gt;"&amp;lt;abbr title=\"{0}\"&amp;gt;{1}&amp;lt;/abbr&amp;gt;"&lt;/span&gt;,&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; txtDescription.Text, txtText.Text);&lt;/p&gt; &lt;p style="margin: 0px"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;this&lt;/span&gt;.HTML = result;&lt;/p&gt; &lt;p style="margin: 0px"&gt;}&lt;/p&gt;&lt;/div&gt; &lt;p&gt;Let me write an example: &lt;acronym title="Windows Presentation Foundation"&gt;WPF.&lt;/acronym&gt;&lt;/p&gt; &lt;p&gt;&lt;img height="155" src="http://nayyeri.net/misc/keyvan/WindowsLiveWriter/InsertAcronymPluginforWindowsLiveWriter_64C0/Capture15.jpg" width="160"&gt;&lt;/p&gt; &lt;p&gt;&lt;img height="188" src="http://nayyeri.net/misc/keyvan/WindowsLiveWriter/InsertAcronymPluginforWindowsLiveWriter_64C0/Capture26.jpg" width="240"&gt; &lt;/p&gt; &lt;p&gt;You can download binary and source code for this plugin from &lt;a href="http://nayyeri.net/misc/keyvan/Downloads/WLW_Acronym/Insert%20Acronym%20Plugin.zip"&gt;this link&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Now playing:&lt;/strong&gt; Nova Menco - Constantinople&lt;/p&gt;&lt;img src="http://nayyeri.net/aggbug.aspx?PostID=71162" width="1" height="1"&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div class="entry"&gt;
&lt;div class="title"&gt;
&lt;a href="http://nayyeri.net/archive/2007/05/02/why-reportviewer-does-not-show-all-records.aspx"&gt;Why ReportViewer Does Not Show All Records?&lt;/a&gt;
&lt;/div&gt;&lt;div class="moreinfo"&gt;
&lt;span class="date"&gt;Thursday, May 03, 2007&lt;/span&gt; &amp;nbsp;| &amp;nbsp;&lt;span class="source"&gt;From &lt;a href="http://nayyeri.net/rss.aspx" target="_blank"&gt;Keyvan Nayyeri&lt;/a&gt;&lt;/span&gt;
&lt;/div&gt;&lt;p&gt;&lt;P&gt;For me&amp;nbsp;.NET ReportViewer control (Windows Forms control or ASP.NET server control) has been a useless control because I&amp;nbsp;often need something more than what it gives to me!&amp;nbsp; In fact I think it's provided for quick and simple reports.&lt;/P&gt;
&lt;P&gt;But one of things that I saw&amp;nbsp;and seems to be very common for some amateur developers is a problem with this control.&amp;nbsp; Sometimes developers say that our report doesn't show more than one record (usually the last record or summation of all records).&amp;nbsp; Today one of my colleagues at new organization had this problem and searched for it on Google and I saw that there are many other guys who have gotten in this trouble!&lt;/P&gt;
&lt;P&gt;This problem has two common reasons.&amp;nbsp; The first one is a problem with data source that doesn't generate all records and in this case the logic should be corrected in this place.&lt;/P&gt;
&lt;P&gt;But the second&amp;nbsp;one is a simple technical point.&amp;nbsp; There is a distinction between a TextBox and a Table but developers put a TextBox on their reports and expect to get all their records.&amp;nbsp; One of common reasons is Microsoft developers simply drag and drop a field from data sources to their report and this generates a TextBox automatically.&amp;nbsp; The purpose of TextBox is to show a single value but the purpose of a Table is to show many records in a structured view so you can't use a TextBox to show all records and it&amp;nbsp;only shows the last one.&lt;/P&gt;
&lt;P&gt;Here I give an example of both results (with TextBox and with Table).&lt;/P&gt;
&lt;P&gt;First I create a Windows Forms application and add a DataSet to keep my data.&amp;nbsp; These data are as same as what I had generated for my &lt;A href="http://nayyeri.net/archive/2007/04/26/tablesample-clause-in-sql-server-2005.aspx" mce_href="http://nayyeri.net/archive/2007/04/26/tablesample-clause-in-sql-server-2005.aspx"&gt;TABLESAMPLE Clause&lt;/A&gt; post.&amp;nbsp; I want to show both &lt;EM&gt;id&lt;/EM&gt; and &lt;EM&gt;Value&lt;/EM&gt; fields for first top 30 records in database.&amp;nbsp; Then I create a Report to generate my reports and simply drag and drop my fields to report body.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://nayyeri.net/misc/keyvan/WindowsLiveWriter/WhyMyReportDoesntShowAllRecords_129D5/Capture1.jpg" atomicselection="true" mce_href="http://nayyeri.net/misc/keyvan/WindowsLiveWriter/WhyMyReportDoesntShowAllRecords_129D5/Capture1.jpg"&gt;&lt;IMG height=186 alt=Report src="http://nayyeri.net/misc/keyvan/WindowsLiveWriter/WhyMyReportDoesntShowAllRecords_129D5/Capture1_thumb.jpg" width=400 border=0 mce_src="http://nayyeri.net/misc/keyvan/WindowsLiveWriter/WhyMyReportDoesntShowAllRecords_129D5/Capture1_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Now I create a Windows Form and put a ReportViewer on it.&amp;nbsp; Then set its report to my recently created report.&amp;nbsp; The output doesn't have anything more than one record which shows the summation of all records.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://nayyeri.net/misc/keyvan/WindowsLiveWriter/WhyMyReportDoesntShowAllRecords_129D5/Capture2.jpg" atomicselection="true" mce_href="http://nayyeri.net/misc/keyvan/WindowsLiveWriter/WhyMyReportDoesntShowAllRecords_129D5/Capture2.jpg"&gt;&lt;IMG height=226 alt=ReportViewer src="http://nayyeri.net/misc/keyvan/WindowsLiveWriter/WhyMyReportDoesntShowAllRecords_129D5/Capture2_thumb.jpg" width=400 border=0 mce_src="http://nayyeri.net/misc/keyvan/WindowsLiveWriter/WhyMyReportDoesntShowAllRecords_129D5/Capture2_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;But now&amp;nbsp;I go back and change my report to use a Table to generate data.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://nayyeri.net/misc/keyvan/WindowsLiveWriter/WhyMyReportDoesntShowAllRecords_129D5/Capture3.jpg" atomicselection="true" mce_href="http://nayyeri.net/misc/keyvan/WindowsLiveWriter/WhyMyReportDoesntShowAllRecords_129D5/Capture3.jpg"&gt;&lt;IMG height=185 alt=Report src="http://nayyeri.net/misc/keyvan/WindowsLiveWriter/WhyMyReportDoesntShowAllRecords_129D5/Capture3_thumb.jpg" width=400 border=0 mce_src="http://nayyeri.net/misc/keyvan/WindowsLiveWriter/WhyMyReportDoesntShowAllRecords_129D5/Capture3_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Result is what I expected and it shows all records in report.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://nayyeri.net/misc/keyvan/WindowsLiveWriter/WhyMyReportDoesntShowAllRecords_129D5/Capture4.jpg" atomicselection="true" mce_href="http://nayyeri.net/misc/keyvan/WindowsLiveWriter/WhyMyReportDoesntShowAllRecords_129D5/Capture4.jpg"&gt;&lt;IMG height=228 alt=ReportViewer src="http://nayyeri.net/misc/keyvan/WindowsLiveWriter/WhyMyReportDoesntShowAllRecords_129D5/Capture4_thumb.jpg" width=400 border=0 mce_src="http://nayyeri.net/misc/keyvan/WindowsLiveWriter/WhyMyReportDoesntShowAllRecords_129D5/Capture4_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;+ Wasting my time in new organization for service has an interesting result.&amp;nbsp; Now I can see what's going on for lower level developers and what are their problems and questions!&amp;nbsp; At least it gives me good ideas for blogging!!&lt;/P&gt;&lt;img src="http://nayyeri.net/aggbug.aspx?PostID=70941" width="1" height="1"&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div class="entry"&gt;
&lt;div class="title"&gt;
&lt;a href="http://nayyeri.net/archive/2007/05/01/first-impressions-of-my-military-service-in-new-organization.aspx"&gt;First Impressions of My Military Service in New Organization&lt;/a&gt;
&lt;/div&gt;&lt;div class="moreinfo"&gt;
&lt;span class="date"&gt;Tuesday, May 01, 2007&lt;/span&gt; &amp;nbsp;| &amp;nbsp;&lt;span class="source"&gt;From &lt;a href="http://nayyeri.net/rss.aspx" target="_blank"&gt;Keyvan Nayyeri&lt;/a&gt;&lt;/span&gt;
&lt;/div&gt;&lt;p&gt;&lt;p&gt;As I &lt;a href="http://armyadvice.org/blogs/keyvan/archive/2007/04/23/I_2700_ll-Serve-in-Etka-Organization.aspx"&gt;had noted&lt;/a&gt; on my army blog&amp;nbsp;I began my military service in new organization (named Etka) on Sunday.&amp;nbsp; This&amp;nbsp;organization is a division of Iran Ministry of Defense.&amp;nbsp; I serve in an office where is 10 miles far from Tehran (in west).&amp;nbsp; Unfortunately it's far from my home and it takes 1.5-2 hours to get there or return to home.&amp;nbsp; In these three days I had to spent 13 hours of my time to go there, work for them and return to home so there was almost no time for anything else.&amp;nbsp; After arriving home I'm so tired and just check my mailbox and &lt;acronym title="Rich Site Summary"&gt;RSS&lt;/acronym&gt; feeds&amp;nbsp;and go to bed!&lt;/p&gt; &lt;p&gt;There I work in a software and networking department but don't know what's my exact responsibility yet.&amp;nbsp; It seems that my main responsibility is around software development (especially support of designed software by third party companies) but this is completely different from what you imagine.&amp;nbsp; Normally this is nothing for me but &lt;a href="http://haacked.com/archive/2007/05/01/mix07-i-am-a-terrible-at-being-interviewed.aspx"&gt;you know&lt;/a&gt; (!), worst things for a developer are:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Not being able to read technical books and explore good resources.  &lt;li&gt;Working with dirty codes that others have written.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Everyday I deal with these two annoying things.&amp;nbsp; These dirty codes are making me down.&amp;nbsp; I should spend several hours to understand what they have done and&amp;nbsp;I'll be so tired when a day ends&amp;nbsp;.&amp;nbsp; After a long time of collaborating for great developers around the world who write beautiful codes I can't accept these unstructured dirty codes!&amp;nbsp; In fact there is neither&amp;nbsp;an architecture nor any discipline behind these applications!&lt;/p&gt; &lt;p&gt;I don't know what will happen after this but anyhow I should follow next 18 months of my service in this office.&amp;nbsp; As others say things will be better after a while because I'll adapt myself with new life and will learn how to do my work.&lt;/p&gt; &lt;p&gt;Knowing above stuff, probably my online activity will be&amp;nbsp;low for some weeks until I adapt myself with new life so I may be unable to keep sending many blog posts per week and also may have a short or long delay in my responses to emails,&amp;nbsp;comments and feedbacks!&amp;nbsp; I hope things get better very soon.&amp;nbsp; The first thing that I really need is keep reading my books regularly and can't ignore this one at all!&lt;/p&gt; &lt;p&gt;+ Day after day I find more reasons to escape from this hell as soon as possible!&lt;/p&gt;&lt;img src="http://nayyeri.net/aggbug.aspx?PostID=70786" width="1" height="1"&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div class="entry"&gt;
&lt;div class="title"&gt;
&lt;a href="http://nayyeri.net/archive/2007/04/29/elite-circle-theme-for-community-server-2007.aspx"&gt;Elite Circle Theme for Community Server 2007&lt;/a&gt;
&lt;/div&gt;&lt;div class="moreinfo"&gt;
&lt;span class="date"&gt;Sunday, April 29, 2007&lt;/span&gt; &amp;nbsp;| &amp;nbsp;&lt;span class="source"&gt;From &lt;a href="http://nayyeri.net/rss.aspx" target="_blank"&gt;Keyvan Nayyeri&lt;/a&gt;&lt;/span&gt;
&lt;/div&gt;&lt;p&gt;&lt;p&gt;As I had planned and a few friends have asked for my new Elite Circle&amp;nbsp;theme code, I published it as a public download for all users.&lt;/p&gt; &lt;p&gt;My original theme required some teaks to be ready for public usage such as adding site navigation menu and a few minor changes for blog authors.&amp;nbsp; Now it's ready for public download and I hope that you enjoy it.&amp;nbsp; Elite Circle is originally designed under Creative Commons Attribution 2.5 license and I haven't put any special license on it.&amp;nbsp; You can also remove my name and link from the footer but must keep the link to original designer.&lt;/p&gt; &lt;p&gt;I'm not a professional designer and don't want to support this template forever but if you think there is any major change that should be applied, please leave a comment or contact me directly.&amp;nbsp; I'll try to apply those changes.&lt;/p&gt; &lt;p&gt;You can download Elite Circle 1.0 theme for Community Server 2007 from &lt;a href="http://nayyeri.net/misc/keyvan/Downloads/EliteCircle/EliteCircle.zip"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://nayyeri.net/aggbug.aspx?PostID=70565" width="1" height="1"&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div class="accentbar"&gt;
&lt;span class="left"&gt;&amp;nbsp;&lt;/span&gt;NEWS FEED&lt;span class="right"&gt;&amp;nbsp;&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>Keyvan</author><pubDate>Thu, 10 May 2007 04:31:26 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: News Feeds 20070510043126A</guid></item><item><title>UPDATED WIKI: News Feeds</title><link>http://www.codeplex.com/CSExtras/Wiki/View.aspx?title=News Feeds&amp;version=1</link><description>&lt;div class="wikidoc"&gt;
&lt;div class="error"&gt;
Error rendering macro: rss
&amp;nbsp;&amp;nbsp;&amp;nbsp;Invalid parameter: url: no rss channel could be found

&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>Keyvan</author><pubDate>Thu, 10 May 2007 04:30:38 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: News Feeds 20070510043038A</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/CSExtras/Wiki/View.aspx?title=Home&amp;version=3</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Community Server Extras is an open project for Community Server custom controls that help users to customize Community Server for their needs.
&lt;br /&gt; &lt;br /&gt;&lt;a href="http://www.codeplex.com/CSExtras/Wiki/View.aspx?title=News%20Feeds&amp;amp;referringTitle=Home"&gt;News Feeds&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>Keyvan</author><pubDate>Thu, 10 May 2007 04:28:42 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070510042842A</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/CSExtras/Wiki/View.aspx?title=Home&amp;version=2</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;Community Server Extras is an open project for Community Server custom controls that help users to customize Community Server for their needs.
&lt;br /&gt;
&lt;/div&gt;</description><author>Keyvan</author><pubDate>Thu, 10 May 2007 04:28:08 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070510042808A</guid></item></channel></rss>