<?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; 2007 &#187; October</title>
	<atom:link href="http://www.flickdotnet.de/index.php/2007/10/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>Persistence Post II</title>
		<link>http://www.flickdotnet.de/index.php/2007/10/persistence-post-ii/</link>
		<comments>http://www.flickdotnet.de/index.php/2007/10/persistence-post-ii/#comments</comments>
		<pubDate>Sun, 07 Oct 2007 20:28:00 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">f0630277-550d-4841-b505-bcad6784f9c4:397</guid>
		<description><![CDATA[<p>I had some feedback regarding the last post about "persist your forms". Well, first of all: not the forms are persisted as streams. I picked certain components like edits and grids and selected certain properties which are being stored and restored in an ECO model. Thus, a user always has the same interface to work with. Data from edit boxes is being retrieved and the form position is being restored</p>]]></description>
			<content:encoded><![CDATA[<p>I had some feedback regarding the last post about &#8220;persist your forms&#8221;. Well, first of all: not the forms are persisted as streams. I picked certain components like edits and grids and selected certain properties which are being stored and restored in an ECO model. Thus, a user always has the same interface to work with. Data from edit boxes is being retrieved and the form position is being restored e.g. This draft version does not even have capabilities to exclude certain components. It always iterates all the components on the form and if it finds a component it &#8220;knows&#8221; the properties I selected are being persisted or restored. </p>
<p>Secondly, Olaf Monien asked me if I could deliver a version without somebody having to set up an ECO Space etc. I built it. The component looks like this in the Object Inspector now:</p>
<p><img style="WIDTH:321px;HEIGHT:143px;" height=143 src="/gfx/noeco.png" width=321/></p>
<p>As you can see, there is a Filename property. You can define a file to persist your data to. Leave the RootHandle empty and the component loads its own ECO Space and all the necessary components. You simpy have to specify the filename for the xml data. Everything else is being done by the component. This gives you less flexibility, but also makes ECO completely &#8220;unnecessary&#8221; to include. You can create a standard VCL.NET project and drop the component on a form. You still will be able to use all the great features described previously. And the best thing: if you decide to use more ECO functionality later, you can hook up the component to that as well.</p>
<p>&nbsp;</p>
<p><img src="http://flickdotnet.de:8080/aggbug.aspx?PostID=397" width="1" height="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flickdotnet.de/index.php/2007/10/persistence-post-ii/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ECO Toolset taking shape - persist your forms</title>
		<link>http://www.flickdotnet.de/index.php/2007/10/eco-toolset-taking-shape-persist-your-forms/</link>
		<comments>http://www.flickdotnet.de/index.php/2007/10/eco-toolset-taking-shape-persist-your-forms/#comments</comments>
		<pubDate>Sun, 07 Oct 2007 16:20:00 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">f0630277-550d-4841-b505-bcad6784f9c4:394</guid>
		<description><![CDATA[<p>A couple of weeks ago, I announced that I have a component in the works that persists information on your forms. It also takes into consideration what user is using the application so that if you have a client/server app, a user gets the same user interface at any workstation. People who attended my ECO session at EKON even were able to see how it works and got some of</p>]]></description>
			<content:encoded><![CDATA[<p>A couple of weeks ago, I announced that I have a component in the works that persists information on your forms. It also takes into consideration what user is using the application so that if you have a client/server app, a user gets the same user interface at any workstation. People who attended my ECO session at EKON even were able to see how it works and got some of the technical details.</p>
<p>This weekend, I wrapped it into a VCL.NET component which you can drop on your forms easily and thus persist all the information on the form (as content of edit boxes, width of grid columns) and about the form itself (size, position). The component also loads the model that is needed to persist the information completely on-the-fly, so that you can use it in <strong>any</strong> VCL.NET application without having to care about ECO! Here are some screenshots with details.</p>
<p>1. I created a new ECO VCL.NET application using the wizard.&nbsp;I selected Xml Persistence and did uncheck that a model is to be added to the project.&nbsp;The IDE presents me with the first form of the app. I select the component from the toolbar:</p>
<p><img style="WIDTH:322px;HEIGHT:43px;" height=43 src="/gfx/gallery.png" width=322/></p>
<p>2. I add a couple of buttons and two edits. Mind, that the &#8220;Debug&#8221; button is not necessary. I use it to call the Eco Space debugger to find out if my component has been doing its job correctly. You will not need it.</p>
<p><img style="WIDTH:392px;HEIGHT:171px;" height=171 src="/gfx/form.png" width=392/></p>
<p>3. Select the EcoPersistence component (displayed as a disk) and set the RootHandle to the only Root Handle there is on the form:</p>
<p><img style="WIDTH:321px;HEIGHT:131px;" height=131 src="/gfx/inspector.png" width=321/></p>
<p>4. Compile. <br />5. Select the persistence package to be used by your application. Open the Eco Space by selecting it in the editor or by double clicking on EcoSpaceUnit.pas. If you are not familiar with ECO, this is really the &#8220;only&#8221; ECO-esque action you will have to do.<br />6. right click in the ECO Space and select &#8220;Select Packages&#8221;</p>
<p><img style="WIDTH:544px;HEIGHT:328px;" height=328 src="/gfx/package.png" width=544/></p>
<p>Your dialog should look like that after you moved the package entry from the left to the right. If you see another package, move it to the left in case you are not interested in building an ECO application with more models and just want to use the persistence feature.<br />7. Select the filename for the data in case you want to persist the information after the application is being closed by selecting the &#8220;PersistenceMapperXml&#8221; and entering a filename. You can - of course - set the component using code as well.<br />8. Write code for the &#8220;Store&#8221; button:</p>
<p><img style="WIDTH:384px;HEIGHT:74px;" height=74 src="/gfx/storeform.png" width=384/></p>
<p>9. The code for the &#8220;Restore&#8221; button is the same, just call the &#8220;restore&#8221; method.<br />10. If you want to persist the changes to the disk you have to call &#8220;FEcoSpace.UpdateDatabase&#8221; in your code as well. The name of the method is a bit confusing as Xml is not really a database, but you could persist the data to a database without any changes to your code, you simply need to drop a different persistence mapper on the ECO Space.<br />11. That&#8217;s it. If you have multiple forms in your application you only need to drop the component again and assign a RootHandle. All the other steps only have to be done once. </p>
<p>I realize you do not have the component set in hand yet. However, this example clearly shows that the possibilities with ECO and VCL.NET are infinite and with a little work you can get immensely complex things done. This example may seem trivial, but considering that you have&nbsp;separate data stored for different users already makes it complex. The ability to store into different storages as databases or flat files makes it even more intriguing.</p>
<p>Hopefully, my spare time will permit me to release this component set soon as I will be busy with other things next week.</p>
<p><img src="http://flickdotnet.de:8080/aggbug.aspx?PostID=394" width="1" height="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flickdotnet.de/index.php/2007/10/eco-toolset-taking-shape-persist-your-forms/feed/</wfw:commentRss>
		</item>
		<item>
		<title>TDBAdvGrid: Custom Sorting for ECO Expression Handles as DataSource</title>
		<link>http://www.flickdotnet.de/index.php/2007/10/tdbadvgrid-custom-sorting-for-eco-expression-handles-as-datasource/</link>
		<comments>http://www.flickdotnet.de/index.php/2007/10/tdbadvgrid-custom-sorting-for-eco-expression-handles-as-datasource/#comments</comments>
		<pubDate>Sun, 07 Oct 2007 10:03:00 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">f0630277-550d-4841-b505-bcad6784f9c4:393</guid>
		<description><![CDATA[<p>You can bind <a class="" href="http://www.capableobjects.com/" target=_blank>ECO</a> Expression Handles to any grid in VCL.NET that supports TDataSource. This is one of the fab new features of RAD Studio 2007. <a class="" href="http://www.tmssoftware.com/" target=_blank>TDBAdvGrid from TMS Software</a> comes with some decent sort mechanisms. However, if you only want to load a subset of the complete data into the grid, which is handled by the PageMode property being set to True, you</p>]]></description>
			<content:encoded><![CDATA[<p>You can bind <a class="" href="http://www.capableobjects.com/" target=_blank>ECO</a> Expression Handles to any grid in VCL.NET that supports TDataSource. This is one of the fab new features of RAD Studio 2007. <a class="" href="http://www.tmssoftware.com/" target=_blank>TDBAdvGrid from TMS Software</a> comes with some decent sort mechanisms. However, if you only want to load a subset of the complete data into the grid, which is handled by the PageMode property being set to True, you have to supply your customized sort event.</p>
<p>I wrote a very much generic sort routine for <b>any</b> expression handle being bound to the grid. I just have to investigate a bit more, if you can also use this approach for columns that you derive (aka calculate) in the expression handle. However, for a start, this is pretty generic and can be used in many cases and should get you started how TExpressionHandle handles sorting.</p>
<p>I use it in my CD Demo application e.g. to sort the album and song grid.</p>
<pre class=sourcecode><img style="WIDTH:538px;HEIGHT:816px;" height=816 src="/gfx/genericsort.png" width=538/></pre>
<p>Above you see the implementation of the &#8220;&lt;tt&gt;OnCanSort&lt;/tt&gt;&#8221; event of the grid. You need to make sure that sorting in general is being enabled using the &lt;tt&gt;SortSettings&lt;/tt&gt; property. Be sure to read the manual which is provided before complaining the sorting does not work at all. There are some sophisticated possibilities with TDBAdvGrid and thus a lot of switched to set correctly.</p>
<p><img src="http://flickdotnet.de:8080/aggbug.aspx?PostID=393" width="1" height="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flickdotnet.de/index.php/2007/10/tdbadvgrid-custom-sorting-for-eco-expression-handles-as-datasource/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ANN: SiECOLogger - Custom ECO Logging class for SmartInspect</title>
		<link>http://www.flickdotnet.de/index.php/2007/10/ann-siecologger-custom-eco-logging-class-for-smartinspect/</link>
		<comments>http://www.flickdotnet.de/index.php/2007/10/ann-siecologger-custom-eco-logging-class-for-smartinspect/#comments</comments>
		<pubDate>Thu, 04 Oct 2007 17:31:00 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">f0630277-550d-4841-b505-bcad6784f9c4:390</guid>
		<description><![CDATA[<p>Today, I would like to announce the beta release of SiECOLogger, a plugin for SmartInspect from Gurock Software (<a href="http://www.smartinspect.com/">http://www.smartinspect.com</a>) that is designed to log ECO classes. ECO classes contain a lot of meta information that can only be deduced using reflection in a very complicated way or other run-time mechanisms. This specialised plugin will help you to successfully log ECO classes and will make debugging applications written for the Microsoft .NET</p>]]></description>
			<content:encoded><![CDATA[<p>Today, I would like to announce the beta release of SiECOLogger, a plugin for SmartInspect from Gurock Software&nbsp;(<a href="http://www.smartinspect.com/">http://www.smartinspect.com</a>) that is designed to log ECO classes. ECO classes contain a lot of meta information that can only&nbsp;be deduced using reflection in a very complicated way or other run-time mechanisms. This specialised plugin will help you to successfully log ECO classes and will make debugging applications written for the Microsoft .NET Framework much easier. </p>
<p>SiECOLogger will be available for .NET 2.0, 3.0 and 3.5. People interested in&nbsp;a Beta version may contact me anytime. Please be aware that the home of SiECOLogger will be on <a href="http://www.holgerflick.de/">http://www.holgerflick.de</a> as soon as a public beta will be available.</p>
<p>Below you see a screenshot of an ECO object being logged by SmartInspect. The model clearly shows that associations that have only one child are&nbsp;being used to display complete, extensive information about the object instance in the ECO Space.</p>
<p><img style="WIDTH:403px;HEIGHT:833px;" height=833 src="/gfx/loggingplayer.png" width=403/></p>
<p><img style="WIDTH:544px;HEIGHT:407px;" height=455 src="/gfx/loggingmodel.png" width=626/></p>
<p><img src="http://flickdotnet.de:8080/aggbug.aspx?PostID=390" width="1" height="1"/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flickdotnet.de/index.php/2007/10/ann-siecologger-custom-eco-logging-class-for-smartinspect/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
