{"id":207,"date":"2005-06-08T17:01:07","date_gmt":"2005-06-08T07:01:07","guid":{"rendered":"http:\/\/www.malcolmgroves.com\/blog\/?p=207"},"modified":"2005-06-08T17:01:07","modified_gmt":"2005-06-08T07:01:07","slug":"ecospacedebugger","status":"publish","type":"post","link":"http:\/\/www.malcolmgroves.com\/blog\/?p=207","title":{"rendered":"ECOSpaceDebugger"},"content":{"rendered":"<p>ECO lets you move from building your model to executing and interacting with that model incredibly quickly. The model-aware framework with its databinding support, autoforms capabilities, etc mean you can build UI&#8217;s that let you play with your model faster than any other tool. <\/p>\n<p>However, ungrateful bugger that I am, I&#8217;m now spoiled and &quot;incredibly quickly&quot; just isn&#8217;t fast enough anymore. What I want is a way to create my model, and without setting up anything, I want to be able to interact with it. Or more often, change my model, and test out my changes immediately, without adding the necesary UI bits until I know that it works how I want it to work.<\/p>\n<p>Well, lurking away in a dark corner of the ECO Framework is something that gets me very close to that. The ECOSpace Debugger gives you a UI that lets you, amongst other things:<\/p>\n<ul>\n<li>create, edit and delete instances of objects in your model <\/li>\n<li>bring up autoforms for an object <\/li>\n<li>set Checkpoints, then undu and redo changes <\/li>\n<li>start, commit and rollback object transactions<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"http:\/\/www.malcolmgroves.com\/images\/2005\/06\/08\/20050608001.jpg\" border=\"0\" \/><\/p>\n<p>At the moment you still need to write the code to invoke the ECOSpace Debugger, but it&#8217;s only a couple of lines, so that&#8217;s still pretty amazing.<\/p>\n<p>Here&#8217;s the steps to try it out:<\/p>\n<ul>\n<li>Create a new Winforms ECO app <\/li>\n<li>Define a few classes and associations in your model <\/li>\n<li>Add the Borland.ECO.Diagnostics namespace to your mainform&#8217;s uses clause. <\/li>\n<li>Drop a button on your mainform, and in the Click event add the following code:<\/li>\n<\/ul>\n<blockquote>\n<p>EcoSpaceDebugger.Create(EcoSpace).Show;<\/p>\n<\/blockquote>\n<p>That&#8217;s it! Run your app, click the button, and you can start playing with your model. Change your model, run the app again and interact with your changes. How simple is that?<\/p>\n<p>If you want to have a bit more of a sniff around, double-click on the Borland.Eco.Windows.Forms.dll in the References section of the Project manager, and drill down into the Borland.Eco.Diagnostics namespace using the Reflection tool built into the IDE. <\/p>\n<p>I did say I was ungrateful. Now that I have this, I want to get rid of that button and line of source. Like maybe by creating a non-visual component that shows the debugger on create, if a boolean property is set to true. Hmmm, maybe on my next flight&#8230;<\/p>\n<div class=\"wlWriterSmartContent\" id=\"scid:0767317B-992E-4b12-91E0-4F059A8CECA8:26c7b6a0-6764-43b9-bdfd-b62255aecdf5\" style=\"padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px\">Technorati Tags: <a href=\"http:\/\/technorati.com\/tags\/Delphi\" rel=\"tag\">Delphi<\/a>,<a href=\"http:\/\/technorati.com\/tags\/ECO\" rel=\"tag\">ECO<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>ECO lets you move from building your model to executing and interacting with that model incredibly quickly. The model-aware framework with its databinding support, autoforms capabilities, etc mean you can build UI&#8217;s that let you play with your model faster than any other tool. However, ungrateful bugger that I am, I&#8217;m now spoiled and &quot;incredibly [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-207","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/www.malcolmgroves.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/207","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.malcolmgroves.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.malcolmgroves.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.malcolmgroves.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.malcolmgroves.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=207"}],"version-history":[{"count":0,"href":"http:\/\/www.malcolmgroves.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/207\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.malcolmgroves.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=207"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.malcolmgroves.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=207"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.malcolmgroves.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=207"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}