<?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"
	>

<channel>
	<title>flickdotnet.de &#187; 2008 &#187; July</title>
	<atom:link href="http://www.flickdotnet.de/index.php/2008/07/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.flickdotnet.de</link>
	<description>Opinions, reviews and software for the Microsoft .NET Framework - focusing on Linq, ECO &#38; XPO</description>
	<pubDate>Thu, 06 May 2010 17:59:22 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>XtraTreeView: Display a tree structure easily (Binding to an IList data source)</title>
		<link>http://www.flickdotnet.de/index.php/2008/07/xtratreeview-display-a-tree-structure-easily-binding-to-an-ilist-data-source/</link>
		<comments>http://www.flickdotnet.de/index.php/2008/07/xtratreeview-display-a-tree-structure-easily-binding-to-an-ilist-data-source/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 21:28:47 +0000</pubDate>
		<dc:creator>holger</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[Winform]]></category>

		<category><![CDATA[XtraTreeList]]></category>

		<guid isPermaLink="false">http://www.flickdotnet.de/?p=112</guid>
		<description><![CDATA[Today I found yet another example that most blog posts do not need to describe something extremely complicated to be helpful. I was talking to a co-worker at University about the fact that the standard TreeView control that is being delivered with the .NET libraries is a bit unusual to use. Especially, binding data to [...]]]></description>
			<content:encoded><![CDATA[<p>Today I found yet another example that most blog posts do not need to describe something extremely complicated to be helpful. I was talking to a co-worker at University about the fact that the standard TreeView control that is being delivered with the .NET libraries is a bit unusual to use. Especially, binding data to it is not an easy thing to do.</p>
<p>I immediately thought of XtraTreeView by DevExpress, which is a very complex control, but also yields excellent results without looking at it in great detail to get &#8220;some neat results and fast&#8221;.</p>
<p>For example, I had the task to display the folder structure of an Outlook data file. With the standard control you would need to add the nodes recursively, but with XtraTreeView you can data bind to a simple generic list structure. To be precise: List&lt;myClass&gt;.</p>
<p>The next screenshot shows the result you get by simply assigning the list to the data source property of the XtraTreeGrid:</p>
<p style="text-align: center;"><img class="size-full wp-image-111 aligncenter" title="Screenshot of Demo Application" src="http://www.flickdotnet.de/wp-content/uploads/2008/07/xtratree.png" alt="" width="593" height="479" /></p>
<p>You might ask &#8220;How can a tree be built from a one-dimensional list/array of objects?&#8221;. If I remember correctly, the VirtualTreeGrid component by Mike Lischke offers the same approach if I am not mistaken. I emphasize: If I remember correctly.</p>
<p>The hierarchy is being built using a property as Id which identifies every object uniquely and another property which denotes the parent object using this very Id.</p>
<p>This is the object that I want to display:</p>
<p>[code lang="c#"]<br />
public class FolderTreeItem<br />
{<br />
    public int Id { get; set; }<br />
    public int ParentId { get; set; }<br />
    public string NameShort { get; set; }<br />
    public string NameFull { get; set; }<br />
    public bool IsContactFolder<br />
    {<br />
        get<br />
        {<br />
            return isContactFolder();<br />
        }<br />
    }</p>
<p>&#8230;<br />
[/code]<br />
Note that all the information I want to display is stored in public properties. I also define two integer properties for the Id and ParentId.</p>
<p>My datasource consists of a generic list of these objects. If I assigned the datasource to a default XtraTreeList, just dropped on the form, it would be a list. No hierarchy would be created.</p>
<p>The XtraTreeList instance has two properties which one needs to adjust for the data source being used. The properties are called KeyFieldName and ParentFieldName. You may guess what values you have to enter there. KeyFieldName is being set to &#8220;Id&#8221; and ParentFieldName has to be &#8220;ParentId&#8221;.</p>
<p>That&#8217;s it.</p>
<p>After this giant modification XtraTreeList is able to display the list as a hierarchy. Not a lot of &#8220;work&#8221; was it?</p>
<p>The click event of the button which retrieves looks like this:</p>
<p>[code lang="c#"]<br />
private void simpleButton1_Click(object sender, EventArgs e)<br />
{<br />
    ConnectionWrapper wrapper = new ConnectionWrapper();<br />
    dataSource = wrapper.TreeItems;<br />
    trFolders.DataSource = dataSource;<br />
}<br />
[/code]</p>
<p>Due to the encapsulation of the Outlook part in a separate class and the use of a data structure which is prepared for the XtraTreeList the work to create a user-friendly GUI is minimal.</p>
<p><em>XtraTreeList is a component in the Winform component pack for the Microsoft .NET platform by DevExpress. More information on <a href="http://www.devexpres.com">DevExpress.com.</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flickdotnet.de/index.php/2008/07/xtratreeview-display-a-tree-structure-easily-binding-to-an-ilist-data-source/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SmartInspect 3.0 Preview</title>
		<link>http://www.flickdotnet.de/index.php/2008/07/smartinspect-30-preview/</link>
		<comments>http://www.flickdotnet.de/index.php/2008/07/smartinspect-30-preview/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 07:30:02 +0000</pubDate>
		<dc:creator>holger</dc:creator>
		
		<category><![CDATA[Delphi]]></category>

		<category><![CDATA[SmartInspect]]></category>

		<guid isPermaLink="false">http://www.flickdotnet.de/?p=109</guid>
		<description><![CDATA[Be sure to have a look at Dennis Gurock&#8217;s blog for some exciting upcoming features for SmartInspect 3.0. Dennis mentioned two big new features so far:

Encryption of logged data
Named-Pipes for logging

]]></description>
			<content:encoded><![CDATA[<p>Be sure to have a look at Dennis Gurock&#8217;s blog for some exciting upcoming features for SmartInspect 3.0. Dennis mentioned two big new features so far:</p>
<ul>
<li><a href="http://blog.gurock.com/postings/log-file-encryption-in-smartinspect-30/324/">Encryption of logged data</a></li>
<li><a href="http://www.delphifeeds.com/go/s/41403/">Named-Pipes for logging</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.flickdotnet.de/index.php/2008/07/smartinspect-30-preview/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Why are &#8220;anonymous methods&#8221; called &#8220;anonymous&#8221;?</title>
		<link>http://www.flickdotnet.de/index.php/2008/07/why-are-anonymous-methods-called-anonymous/</link>
		<comments>http://www.flickdotnet.de/index.php/2008/07/why-are-anonymous-methods-called-anonymous/#comments</comments>
		<pubDate>Wed, 30 Jul 2008 21:44:40 +0000</pubDate>
		<dc:creator>holger</dc:creator>
		
		<category><![CDATA[Delphi]]></category>

		<category><![CDATA[anonymous methods]]></category>

		<guid isPermaLink="false">http://www.flickdotnet.de/?p=104</guid>
		<description><![CDATA[If you look at the latest Delphifeed blog entries, there is quite some talk about &#8220;anonymous methods&#8221;. I clearly remember the first time I read about them in a .NET blog. It was very difficult to see the &#8220;anonymous&#8221; aspect for me. Because being anonymous means that it does not have a name - great. [...]]]></description>
			<content:encoded><![CDATA[<p>If you look at the latest Delphifeed blog entries, there is quite some talk about &#8220;anonymous methods&#8221;. I clearly remember the first time I read about them in a .NET blog. It was very difficult to see the &#8220;anonymous&#8221; aspect for me. Because being anonymous means that it does not have a name - great. They do not. But&#8230; and this is the problem&#8230; it is not what they are about.</p>
<p>I read a book about <a href="http://www.amazon.com/Pro-LINQ-Language-Integrated-Windows-Net/dp/1590597893/ref=pd_sim_b_2" target="_blank">Linq by Joseph C. Rattz </a>the other day which covers the C# language extensions which are important in order to deal with Linq. Anonymous methods play a role in that as well and thus they are explained in the book in great detail. <span style="text-decoration: line-through;">Rattz also has a problem with the name, but refers to them as &#8220;ghost methods&#8221;, which is a much better name in my honest opinion.</span></p>
<p><strong>CORRECTION</strong>: This blog basically shows how insecure I am still with all the new terms. I think it is important to simply correct my mistake and not delete this blog post. The author, Rattz, does NOT call Anonymous Methods &#8220;ghost methods&#8221;, but he refers to &#8220;Partial Methods&#8221; in this way. Anonymous methods are called anonymous - just as I reasoned in this very blog - as they do not have a name. Period.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flickdotnet.de/index.php/2008/07/why-are-anonymous-methods-called-anonymous/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Finally, a new blog engine!</title>
		<link>http://www.flickdotnet.de/index.php/2008/07/finally-a-new-blog-engine/</link>
		<comments>http://www.flickdotnet.de/index.php/2008/07/finally-a-new-blog-engine/#comments</comments>
		<pubDate>Tue, 29 Jul 2008 16:53:48 +0000</pubDate>
		<dc:creator>holger</dc:creator>
		
		<category><![CDATA[Delphi]]></category>

		<category><![CDATA[DevExpress]]></category>

		<category><![CDATA[ECO]]></category>

		<category><![CDATA[ORM]]></category>

		<category><![CDATA[WordPress]]></category>

		<category><![CDATA[XPO]]></category>

		<guid isPermaLink="false">http://www.flickdotnet.de/?p=100</guid>
		<description><![CDATA[I have not blogged recently. The number one reason was not time, but a blog engine which kept crashing on the server. Last week, I was introduced to WordPress.]]></description>
			<content:encoded><![CDATA[<p>I have not blogged recently. The number one reason was not time, but a blog engine which kept crashing on the server. Last week, I was introduced to WordPress. Great. Loved it. And it&#8217;s stable. So, I will be using it from now on.</p>
<p>I have some content prepared that I was not able to blog about and hopefully the engine will allow me to blog faster. With the old engine it was a chore to upload images and it needed a lot of work.</p>
<p>There are some new things as well. The sidebar is filled with other interesting Delphi Feeds, DelphiFeeds.com being the most prominent. Most of the &#8220;official&#8221; CodeGear blogs are covered in there as well.</p>
<p>Out of pure self-interest I also put the DevExpress newsfeed there - hopefully this will be helpful for some of my readers as well, as I know that some of them use DevExpress components for their Delphi development. Personally, I am a big fan of the DXperience component-set and use it for my .NET development tasks.</p>
<p>Aside from ECO, which has often been called &#8220;Borland&#8217;s ORM-Solution&#8221; in the past, I had a detailed look at XPO by DevExpress. Hopefully, I will be able to write down some interesting differences for you. I think there are excellent use-cases for both products and this will be (&#8221;the&#8221;) one blog where you can read about it. Thus, I added the product to the tag line of my blog.</p>
<p>Commenting is switched on again. I have big hopes in the new system that I do not get spammed so vehemently that I have to switch it off like last time.</p>
<p>Yet again, welcome to my &#8220;new&#8221; blog. I hope you will continue to enjoy my posts.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flickdotnet.de/index.php/2008/07/finally-a-new-blog-engine/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
