<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>CapableObjects</title>
	<atom:link href="http://www.new.capableobjects.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.new.capableobjects.com</link>
	<description>Model Driven Development Pure and Simple</description>
	<lastBuildDate>Sun, 05 Feb 2012 14:21:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<item>
		<title>User paid extensions</title>
		<link>http://www.new.capableobjects.com/2012/02/05/user-paid-extensions/</link>
		<comments>http://www.new.capableobjects.com/2012/02/05/user-paid-extensions/#comments</comments>
		<pubDate>Sun, 05 Feb 2012 14:21:12 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[CO-Unique]]></category>
		<category><![CDATA[Workarounds]]></category>

		<guid isPermaLink="false">http://www.new.capableobjects.com/2012/02/05/user-paid-extensions/</guid>
		<description><![CDATA[&#8230; If you have ideas on what you want the ECO framework to do and you have a business case that requires it NOW you should not just post the idea to the forum and hope for the best. What &#8230; <a href="http://www.new.capableobjects.com/2012/02/05/user-paid-extensions/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>&#8230; If you have ideas on what you want the ECO framework to do and you have a business case that requires it NOW you should not just post the idea to the forum and hope for the best. What you should do is this:
<ol>
<li>Describe the feature to YOUR stakeholders
<li>Ask us for an estimate for adding the feature to the framework &#8211; if we think it is a good idea we will provide an estimate. If we do not think it is a good idea we will tell you why.
<li>If your stakeholders accept this price and understand that the resulting work will be part of the framework and not their own (no exclusivity) you order the extension from us.
<li>We make it a priority to create the feature and deliver it (fixed price according to estimate) as a new ECO release&nbsp;
<li>You, as the financer, get the first versions to verify that this is what you ordered and it matches your needs.</li>
</ol>
<p>Voila a new feature has been added to the ECO framework for everyone to enjoy.
<p>We call this strategy &#8220;User paid extensions&#8221;. Use it &#8211; it works.
<div style="clear:both;margin:0;padding:0;">&nbsp;</div>
]]></content:encoded>
			<wfw:commentRss>http://www.new.capableobjects.com/2012/02/05/user-paid-extensions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MonoAndroid</title>
		<link>http://www.new.capableobjects.com/2012/01/06/monoandroid/</link>
		<comments>http://www.new.capableobjects.com/2012/01/06/monoandroid/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 19:40:59 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[Mono]]></category>
		<category><![CDATA[WCF]]></category>

		<guid isPermaLink="false">http://www.new.capableobjects.com/2012/01/06/monoandroid/</guid>
		<description><![CDATA[I really love MonoAndroid! I got an email from Joseph Hill at Xamarin – asking if we had tested ECO in this environment – I replied that we had glanced at it but I would look at it in more &#8230; <a href="http://www.new.capableobjects.com/2012/01/06/monoandroid/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I really love MonoAndroid! I got an email from Joseph Hill at Xamarin – asking if we had tested ECO in this environment – I replied that we had glanced at it but I would look at it in more detail. This was the day before Christmas – 4 days later I had everything working – cool beans – and yes I celebrated Christmas just as much as any other Atheist out there (had a few beers and handed out presents).</p>
<p>The MonoAndroid trial is enough for our purposes here until we want to deploy to a real phone. <br />First spin of ECO on Android. <a href="http://www.new.capableobjects.com/2012/01/06/smart-phones-and-model-driven-development/">First read this</a></p>
<p>Open up the sample that comes with ECO: </p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image4.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb5.png" width="722" height="400"></a></p>
<p>Open up the sln and ignore/ok this:</p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb7_thumb1.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image_thumb[7]_thumb" border="0" alt="image_thumb[7]_thumb" src="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb7_thumb_thumb.png" width="454" height="175"></a></p>
<p>You will see this:</p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image5.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb6.png" width="369" height="270"></a></p>
<p>The ReadMe explains the missing projects but since you are a developer you will probably not read it.</p>
<p>Delete the missing projects. And add new references to MonoAndroidApplication1</p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image6.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb8.png" width="366" height="307"></a></p>
<p>Choose browse and find the assemblies you downloaded in the PhoneBuilds.zip</p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image7.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb9.png" width="486" height="412"></a></p>
<p>Define what to start:</p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image8.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb10.png" width="506" height="338"></a></p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image9.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb12.png" width="700" height="433"></a></p>
<p>Hit F5 – This windows shows:</p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image10.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb14.png" width="244" height="162"></a></p>
<p>Start emulator Image: Pick <font style="background-color: #ffff00">MonoAndroid_API_10</font></p>
<p>When the Emulator runs:</p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image11.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb16.png" width="244" height="160"></a></p>
<p> you choose it:</p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image12.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb18.png" width="244" height="162"></a></p>
<p>And you get this window, the Root directory of our PersistenceServer</p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image13.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb26.png" width="244" height="204"></a></p>
<p>This is a simple WPF UI that shows the information in our “database”</p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image14.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb27.png" width="244" height="141"></a></p>
<p>This is the Phone App</p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image15.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb28.png" width="244" height="160"></a></p>
<p>Press the first button :</p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image16.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb29.png" width="291" height="52"></a></p>
<p>The text of the button was updated. The code on the phone:</p>
<pre class="code"><span style="color: blue">void </span>button_Click(<span style="color: blue">object </span>sender, <span style="color: #2b91af">EventArgs </span>e)
{
    <span style="color: #2b91af">EcoServiceHelper</span>.<font style="background-color: #ffff00">GetPersistenceService(_ecospace).Refresh</font>(<span style="color: blue">true</span>);
    <span style="color: #2b91af">Button </span>button = FindViewById&lt;<span style="color: #2b91af">Button</span>&gt;(<span style="color: #2b91af">Resource</span>.<span style="color: #2b91af">Id</span>.MyButton);
    <span style="color: #2b91af">IObjectList </span>list = <span style="color: #2b91af">EcoServiceHelper</span>.<font style="background-color: #ffff00">GetOclPsService(_ecospace).Execute(</font><span style="color: #a31515"><font style="background-color: #ffff00">"Class1.allinstances</font>-&gt;select(a|a.Class2-&gt;notempty)"</span>);
    <span style="color: blue">int </span>noOfC1ThatHasC2s = list.Count;
    <span style="color: blue">string </span>extra=<span style="color: #a31515">""</span>;
    <span style="color: blue">if </span>(list.Count &gt; 0)
        extra = list[0].GetValue&lt;<span style="color: #2b91af">Class1</span>&gt;().Attribute1;

    <span style="color: blue">int </span>noOfC1 = <span style="color: #2b91af">EcoServiceHelper</span>.<font style="background-color: #ffff00">GetExtentService(_ecospace).AllInstances</font>&lt;<span style="color: #2b91af">Class1</span>&gt;().Count;

    button.Text = <span style="color: #a31515">"db updated, Now C1 Total: " </span>+ noOfC1.ToString() + <span style="color: #a31515">", Total of C1 that has C2's " </span>+ noOfC1ThatHasC2s.ToString() + <span style="color: #a31515">" " </span>+ extra;<span style="color: green">        

</span>}
</pre>
<p>The code makes use of some ECO services.</p>
<p>The other buttons Code:</p>
<pre class="code"><span style="color: blue">void </span>button2_Click(<span style="color: blue">object </span>sender, <span style="color: #2b91af">EventArgs </span>e)
{
    <span style="color: #2b91af">Button </span>button2 = FindViewById&lt;<span style="color: #2b91af">Button</span>&gt;(<span style="color: #2b91af">Resource</span>.<span style="color: #2b91af">Id</span>.MyButton2);

    <span style="color: #2b91af">Class1 </span>c1 = <span style="color: blue">new </span><span style="color: #2b91af">Class1</span>(_ecospace);
    c1.Attribute1 = <span style="color: #a31515">"Created on android by mono " </span>+ <span style="color: #2b91af">DateTime</span>.Now.ToLongTimeString();
    button2.Text = <span style="color: #a31515">"c1 created"</span>;

    _ecospace.UpdateDatabase();
}
</pre>
<p>We switch back to the WCF app – hit Refresh:</p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image17.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb30.png" width="244" height="165"></a></p>
<p>You can play around with the WPF app and the Phone app to ensure yourself that objects created in one client can be seen in the other client after a Refresh.</p>
<p>If things does not work consult the <a href="http://www.new.capableobjects.com/2012/01/06/wcf-trouble-shoot/">WCF trouble-shoot</a></p>
<p>That is all I am going to show you about the Android Phone right now. Disappointed? Don’t be – we did a lot – strongly typed model driven business objects on the phone with a WCF connection to the server – that persists everything – and lets you find what is on the server.</p>
<div style="clear:both;margin:0;padding:0;">&nbsp;</div>
]]></content:encoded>
			<wfw:commentRss>http://www.new.capableobjects.com/2012/01/06/monoandroid/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Smart phones and Model driven development</title>
		<link>http://www.new.capableobjects.com/2012/01/06/smart-phones-and-model-driven-development/</link>
		<comments>http://www.new.capableobjects.com/2012/01/06/smart-phones-and-model-driven-development/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 19:14:58 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[CO-Unique]]></category>
		<category><![CDATA[Mono]]></category>
		<category><![CDATA[VisualStudio]]></category>
		<category><![CDATA[WindowsPhone]]></category>

		<guid isPermaLink="false">http://www.new.capableobjects.com/2012/01/06/smart-phones-and-model-driven-development/</guid>
		<description><![CDATA[Sales: ECO is a model driven framework that helps you construct complex and detailed software as fast as you can think – with high maintainability and only “think-bugs” no “code-bugs”. Client: Cool. Sales: ECO also helps you to persist your &#8230; <a href="http://www.new.capableobjects.com/2012/01/06/smart-phones-and-model-driven-development/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Sales: ECO is a model driven framework that helps you construct complex and detailed software as fast as you can think – with high maintainability and only “<a href="http://www.new.capableobjects.com/2012/01/06/different-types-of-bugs/" target="_blank">think-bugs</a>” no “<a href="http://www.new.capableobjects.com/2012/01/06/different-types-of-bugs/" target="_blank">code-bugs</a>”.</p>
<p>Client: Cool. </p>
<p>Sales: ECO also helps you to persist your object oriented information on the server – using the database of your liking.</p>
<p>Sales: ECO does this by providing WCF communication from the client to the persistence mapper placed on the server with a generic WCF interface.</p>
<p>Sales: ECO allows you to query the local domain cache of objects AND the persistent storage (the database) with LINQ and OCL (Object Constraint Language).</p>
<p>Client: Cool.</p>
<p>Client: How do I get that that app on to the phones?</p>
<h2>This is how</h2>
<p><b><i>Prerequisite</i></b>
<p>ECO can run on WindowsPhone 7.1 (Mango), you need <a href="http://www.microsoft.com/download/en/details.aspx?id=27570">windows phone SDK for 7.1</a>&nbsp; for this. </p>
<p>And with the use of <a href="http://xamarin.com/monoforandroid" target="_blank">Xamarin Mono for Android</a> (trial download will suffice until you want to deploy) ECO also runs on Android phones.</p>
<p>The ECO-assemblies needed for WindowsPhone and Android are not part of the standard ECO-installation, they are in this zip <a href="http://www.capableobjects.com/downloads/PhoneBuilds.zip">PhoneBuilds.zip</a></p>
<p>You will also find this on the <a href="http://www.new.capableobjects.com/downloads/">download page</a>. </p>
<p>You also need a late release of <a href="http://www.new.capableobjects.com/products/eco-model-driven-framework/">ECO6 for VisualStudio 2010</a>, also on the <a href="http://www.new.capableobjects.com/downloads/">download page</a>. </p>
<p>The model we use for the phone samples is this:</p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image3.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb4.png" width="366" height="177"></a></p>
<h2><a href="http://www.new.capableobjects.com/2012/01/06/windowsphone/">WindowsPhone</a></h2>
<h2><a href="http://www.new.capableobjects.com/2012/01/06/monoandroid/">MonoAndroid</a></h2>
<p><font size="5"></font></p>
<div style="clear:both;margin:0;padding:0;">&nbsp;</div>
]]></content:encoded>
			<wfw:commentRss>http://www.new.capableobjects.com/2012/01/06/smart-phones-and-model-driven-development/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WindowsPhone</title>
		<link>http://www.new.capableobjects.com/2012/01/06/windowsphone/</link>
		<comments>http://www.new.capableobjects.com/2012/01/06/windowsphone/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 19:12:24 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[WCF]]></category>
		<category><![CDATA[WindowsPhone]]></category>

		<guid isPermaLink="false">http://www.new.capableobjects.com/2012/01/06/windowsphone/</guid>
		<description><![CDATA[First spin of ECO on WindowsPhone. First read this Open up the sample that comes with ECO: Open up the sln and ignore/ok this: You will see this: The ReadMe explains the missing projects but since you are a developer &#8230; <a href="http://www.new.capableobjects.com/2012/01/06/windowsphone/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>First spin of ECO on WindowsPhone. <a href="http://www.new.capableobjects.com/2012/01/06/smart-phones-and-model-driven-development/">First read this</a></p>
<p>Open up the sample that comes with ECO: </p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb3.png"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image_thumb[3]" border="0" alt="image_thumb[3]" src="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb3_thumb.png" width="644" height="357"></a></p>
<p>Open up the sln and ignore/ok this:</p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb7.png"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image_thumb[7]" border="0" alt="image_thumb[7]" src="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb7_thumb.png" width="454" height="175"></a></p>
<p>You will see this:</p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb11.png"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image_thumb[11]" border="0" alt="image_thumb[11]" src="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb11_thumb.png" width="390" height="296"></a></p>
<p>The ReadMe explains the missing projects but since you are a developer you will probably not read it.</p>
<p>Delete the missing projects.</p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb13.png"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image_thumb[13]" border="0" alt="image_thumb[13]" src="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb13_thumb.png" width="368" height="189"></a></p>
<p>Choose browse and find the assemblies you downloaded in the PhoneBuilds.zip</p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb15.png"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image_thumb[15]" border="0" alt="image_thumb[15]" src="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb15_thumb.png" width="486" height="412"></a></p>
<p>Define what to start:</p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb17.png"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image_thumb[17]" border="0" alt="image_thumb[17]" src="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb17_thumb.png" width="529" height="335"></a></p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb19.png"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image_thumb[19]" border="0" alt="image_thumb[19]" src="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb19_thumb.png" width="700" height="438"></a></p>
<p>Hit F5 – three windows pop up (the phone emulator starts slowly):</p>
<p>This is a simple WPF UI that shows the information in our “database”</p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb20.png"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image_thumb[20]" border="0" alt="image_thumb[20]" src="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb20_thumb.png" width="244" height="178"></a></p>
<p>This is the Root directory of our PersistenceServer</p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb21.png"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image_thumb[21]" border="0" alt="image_thumb[21]" src="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb21_thumb.png" width="244" height="159"></a></p>
<p>This is the Phone App</p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb22.png"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image_thumb[22]" border="0" alt="image_thumb[22]" src="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb22_thumb.png" width="136" height="244"></a></p>
<p>Press the first of the X buttons in the bottom of the PhoneApp</p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb23.png"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image_thumb[23]" border="0" alt="image_thumb[23]" src="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb23_thumb.png" width="244" height="94"></a></p>
<p>The code on the phone:</p>
<pre class="code"><span style="color: blue">private void </span>ApplicationBarIconButton_Click(<span style="color: blue">object </span>sender, <span style="color: #2b91af">EventArgs </span>e)
        {
            <span style="color: #2b91af">EcoServiceHelper</span>.<font style="background-color: #ffff00">GetPersistenceService(_ecospace).Refresh(<span style="color: blue">true</span>);</font>
            <span style="color: #2b91af">EcoServiceHelper</span>.GetAsyncSupportService(_ecospace).PerformTaskAsync(<span style="color: blue">new </span><span style="color: #2b91af">Action</span>(() =&gt; {
                <span style="color: #2b91af">IObjectList </span>list = <font style="background-color: #ffff00"><span style="color: #2b91af">EcoServiceHelper</span>.GetOclPsService(_ecospace).Execute</font>(<span style="color: #a31515">"Class1.allinstances-&gt;select(a|a.Class2-&gt;notempty)"</span>);
                <span style="color: blue">int </span>noOfC1ThatHasC2s = list.Count;
                <span style="color: blue">string </span>extra = <span style="color: #a31515">""</span>;
                <span style="color: blue">if </span>(list.Count &gt; 0)
                    extra = list[0].GetValue&lt;<span style="color: #2b91af">Class1</span>&gt;().Attribute1;

                <span style="color: blue">int </span>noOfC1 = <font style="background-color: #ffff00"><span style="color: #2b91af">EcoServiceHelper</span>.GetExtentService(_ecospace).AllInstances&lt;<span style="color: #2b91af">Class1</span>&gt;().Count</font>;

                <span style="color: #2b91af">EcoServiceHelper</span>.GetAsyncSupportService(_ecospace).DispatchTaskToMainThread(<span style="color: blue">new </span><span style="color: #2b91af">Action</span>(() =&gt; {
                    <span style="color: green">// UI Stuff - everyone is happy to see that we do this in the main thread
                        </span>ContentStack.Children.Add(<span style="color: blue">new </span><span style="color: #2b91af">TextBlock</span>() { Text = <span style="color: #a31515">"db updated, Now C1 Total: " </span>+ noOfC1.ToString() + <span style="color: #a31515">",\r\n Total of C1 that has C2's " </span>+ noOfC1ThatHasC2s.ToString() + <span style="color: #a31515">" " </span>+ extra });

                }));
            }));
        }
</pre>
<p>The code makes use of some ECO services.</p>
<p>The other button:</p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb24.png"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image_thumb[24]" border="0" alt="image_thumb[24]" src="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb24_thumb.png" width="239" height="100"></a></p>
<p>Code:</p>
<pre class="code"><span style="color: blue">private void </span>ApplicationBarIconButton_Click_1(<span style="color: blue">object </span>sender, <span style="color: #2b91af">EventArgs </span>e)
{

    <span style="color: #2b91af">Class1 </span>c1 = <font style="background-color: #ffff00"><span style="color: blue">new </span><span style="color: #2b91af">Class1</span></font>(_ecospace);
    c1.Attribute1 = <span style="color: #a31515">"Created on WindowsPhone " </span>+ <span style="color: #2b91af">DateTime</span>.Now.ToLongTimeString();
    ContentStack.Children.Add(<span style="color: blue">new </span><span style="color: #2b91af">TextBlock</span>() { Text = <span style="color: #a31515">"c1 created" </span>});

    _ecospace.UpdateDatabase();

}
</pre>
<p>We switch back to the WCF app – hit Refresh:</p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb25.png"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image_thumb[25]" border="0" alt="image_thumb[25]" src="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb25_thumb.png" width="244" height="236"></a></p>
<p>You can play around with the WPF app and the Phone app to ensure yourself that objects created in one client can be seen in the other client after a Refresh.</p>
<p>If things does not work consult the <a href="http://www.new.capableobjects.com/2012/01/06/wcf-trouble-shoot/">WCF trouble-shoot</a></p>
<p>That is all I am going to show you about the WindowsPhone right now. Disappointed? Don’t be – we did a lot – strongly typed model driven business objects on the phone with a WCF connection to the server – that persists everything – and lets you find what is on the server.</p>
<div style="clear:both;margin:0;padding:0;">&nbsp;</div>
]]></content:encoded>
			<wfw:commentRss>http://www.new.capableobjects.com/2012/01/06/windowsphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WCF trouble-shoot</title>
		<link>http://www.new.capableobjects.com/2012/01/06/wcf-trouble-shoot/</link>
		<comments>http://www.new.capableobjects.com/2012/01/06/wcf-trouble-shoot/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 18:56:04 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[WCF]]></category>

		<guid isPermaLink="false">http://www.new.capableobjects.com/2012/01/06/wcf-trouble-shoot/</guid>
		<description><![CDATA[Your project looks something like this: Is your server running under IIS or DevServer? Check PersistenceServer project properties: Is your Client(s) pointing to this? Search your project for persistenceMapperClient this.persistenceMapperClient1.Uri = "http://localhost:52150/EcoProjectWindowsPhone71PMPWCF.svc"; You may find multiple entries – check them &#8230; <a href="http://www.new.capableobjects.com/2012/01/06/wcf-trouble-shoot/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Your project looks something like this:</p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb.png" width="390" height="171"></a></p>
<p>Is your server running under IIS or DevServer? </p>
<p>Check PersistenceServer project properties:</p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image1.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb1.png" width="705" height="434"></a></p>
<p>Is your Client(s) pointing to this?</p>
<p>Search your project for persistenceMapperClient</p>
<pre class="code"><span style="color: blue">this</span>.persistenceMapperClient1.Uri = <span style="color: #a31515">"<font style="background-color: #ffff00"><a href="http://localhost:52150/EcoProjectWindowsPhone71PMPWCF.svc&quot;;">http://localhost:52150/</font>EcoProjectWindowsPhone71PMPWCF.svc"</span>;
</a></pre>
<p>You may find multiple entries – check them all.</p>
<p><font style="background-color: #ff0000">NOTE: </font>If you are looking at a PersistenceMapperClient that runs <font style="background-color: #ffff00">on a PhoneEmulator you should not expect Localhost to work</font>. After all Localhost would be the phone?! Well on the WindowsPhone emulator Localhost is NOT the phone – it is the your dev-pc so you can safely use localhost. But on the <font style="background-color: #ffff00">Android emulator Localhost will NOT work, instead use the ip: 10.0.2.2 </font>(so replace localhost with 10.0.2.2 )</p>
<p>The other half of the URL comes from your persistenceServer projects definition of the WCF Service:<br /><a href="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.new.capableobjects.com/wp-content/uploads/2012/01/image_thumb2.png" width="359" height="152"></a></p>
<p>Test if it runs now… If not:</p>
<p>Do you have a ClientAccessPolicy.xml file on your webserver root ? Note, “ROOT” not “Directory” – on the devserver this is the same but in IIS I really must stress THE ROOT of the webserver and NOT your Virtual directory.</p>
<p>Does it run? If not:</p>
<p>Turn on logging in WCF to see what the holdup is – <a href="http://www.new.capableobjects.com/2011/06/26/wcf-and-eco/">read about this here</a> pay extra attention to what is required if you have declared your own enum types.</p>
<div style="clear:both;margin:0;padding:0;">&nbsp;</div>
]]></content:encoded>
			<wfw:commentRss>http://www.new.capableobjects.com/2012/01/06/wcf-trouble-shoot/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Different types of bugs</title>
		<link>http://www.new.capableobjects.com/2012/01/06/different-types-of-bugs/</link>
		<comments>http://www.new.capableobjects.com/2012/01/06/different-types-of-bugs/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 15:02:03 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[Declarative]]></category>
		<category><![CDATA[Strategies]]></category>

		<guid isPermaLink="false">http://www.new.capableobjects.com/2012/01/06/different-types-of-bugs/</guid>
		<description><![CDATA[The typing-bug : You did not actually type the things you wanted to type The code-bug: Your code does not actually do the things you intended it to do, but it was typed correctly The think-bug: Everything came out just &#8230; <a href="http://www.new.capableobjects.com/2012/01/06/different-types-of-bugs/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The <strong><em>typing-bug</em></strong> : You did not actually type the things you wanted to type</p>
<p>The <strong><em>code-bug</em></strong>: Your code does not actually do the things you intended it to do, but it was typed correctly</p>
<p>The <strong><em>think-bug</em></strong>: Everything came out just as planned – but now that you see the result you find that you planned the wrong thing</p>
<p>&nbsp;</p>
<p>The<strong><em> <strong><em>typing</em></strong>-bug</em></strong> is under control with use of strongly typed languages that use static checking with compilers. The strange thing is that not every coder understand the brilliance of this. And then there are many developers that understand the brilliance but are forced to use interpreting languages since it is the only, or at least most common, tool that works in the target environment – <a href="http://en.wikipedia.org/wiki/JavaScript">Javascript</a> is one example.</p>
<p>The <strong><em>code-bugs</em></strong> are managed with <a href="http://en.wikipedia.org/wiki/Unit_testing">unit-tests</a> which in short is to explain what you expect your active code to do with some more test code. </p>
<p>The <strong><em>think-bug</em></strong> –&nbsp; the only practical way to manage this kind of bug is to increase the development speed so that you can verify your thoughts quickly – learn, tweak and move on, over and over. This is where model driven development shines. </p>
<p>Clients and employers that pay for developers and coders should make sure that the only bug the developers are engaged in are <strong><em>think-bugs</em></strong>. </p>
<p>The<strong><em> Think-bug </em></strong>is the only kind of bug that gives value back to the domain issues we are set to solve – the other types of bugs is just a result of crappy tools and sloppiness from an immature field of engineering.</p>
<p><a href="http://en.wikipedia.org/wiki/Model-driven_engineering">Model driven development</a> as delivered with <a href="http://www.new.capableobjects.com/products/eco-model-driven-framework/">ECO</a> raise the quality by being declarative in every aspect that involves your business objects – and thus nil out<strong><em> typing-bugs</em></strong> and <strong><em>code-bugs</em></strong>. It also raise the speed of development so that the<strong><em> think-bugs</em></strong> can be managed swiftly and elegantly.</p>
<h2>In the 90’s</h2>
<p>Earlier it was believed that the <strong><em>think-bugs</em></strong> could be avoided by a very detailed analyze phase – here we find the traditional water-fall methods like <a href="http://en.wikipedia.org/wiki/Rational_Unified_Process">Rational-Unified-Process</a> (RUP). But now very few software engineers back these ideas. The <strong><em>think-bugs</em></strong> often does not originate from a poor understanding of “now” but rather from an enlightenment of “how it should be” that grows slowly as a project progress. And this is why <a href="http://en.wikipedia.org/wiki/SCRUM">SCRUM</a> and <a href="http://en.wikipedia.org/wiki/Agile_Software_Development">Agile strategies</a> are so much better at software development – they have room for dealing with <strong><em>think-bugs</em></strong>.</p>
<p>Using model driven tools like <a href="http://www.new.capableobjects.com/products/eco-model-driven-framework/">ECO</a> enables you to be truly Agile – not only are the tools at their best when we need to deal with the late changes that the <strong><em>think-bugs</em></strong> often are – but developers have a tendency to defend a solution they invested in (as all humans do) so having tools that minimize the investment done gives us developers that are open for change and can reason about the <strong><em>think-bugs</em></strong> without being defensive – this is key to solving <strong><em>think-bugs</em></strong>.</p>
<div style="clear:both;margin:0;padding:0;">&nbsp;</div>
]]></content:encoded>
			<wfw:commentRss>http://www.new.capableobjects.com/2012/01/06/different-types-of-bugs/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Clarity that makes you happy</title>
		<link>http://www.new.capableobjects.com/2011/12/11/clarity-that-makes-you-happy/</link>
		<comments>http://www.new.capableobjects.com/2011/12/11/clarity-that-makes-you-happy/#comments</comments>
		<pubDate>Sun, 11 Dec 2011 12:44:06 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[DDD]]></category>
		<category><![CDATA[Declarative]]></category>
		<category><![CDATA[Documtr]]></category>
		<category><![CDATA[MDA]]></category>
		<category><![CDATA[Modlr]]></category>

		<guid isPermaLink="false">http://www.new.capableobjects.com/2011/12/11/clarity-that-makes-you-happy/</guid>
		<description><![CDATA[When you develop detailed information systems it is SUPER-PERFECT if the documentation is a 1 to 1 match to what is actually executed – as it is if you choose your tools wisely. ACTUAL SCREEN DUMP FROM Modlr Inside VS2010 &#8230; <a href="http://www.new.capableobjects.com/2011/12/11/clarity-that-makes-you-happy/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>When you develop detailed information systems it is SUPER-PERFECT if the documentation is a 1 to 1 match to what is actually executed – as it is if you choose your tools wisely.</p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2011/12/clip_image002.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://www.new.capableobjects.com/wp-content/uploads/2011/12/clip_image002_thumb.jpg" width="640" height="347"></a></p>
<p><font style="background-color: #ffff00">ACTUAL SCREEN DUMP FROM Modlr Inside VS2010</font></p>
<p>This is one of 50-something diagrams in a project that holds 150+ classes. Domain driven development and Model driven development IRL. Cool!</p>
<div style="clear:both;margin:0;padding:0;">&nbsp;</div>
]]></content:encoded>
			<wfw:commentRss>http://www.new.capableobjects.com/2011/12/11/clarity-that-makes-you-happy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ECO for Visual Studio explained</title>
		<link>http://www.new.capableobjects.com/2011/11/26/eco-for-visual-studio-explained/</link>
		<comments>http://www.new.capableobjects.com/2011/11/26/eco-for-visual-studio-explained/#comments</comments>
		<pubDate>Sat, 26 Nov 2011 16:33:36 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[CO-Unique]]></category>
		<category><![CDATA[MS-Technology]]></category>
		<category><![CDATA[Strategies]]></category>
		<category><![CDATA[VisualStudio]]></category>

		<guid isPermaLink="false">http://www.new.capableobjects.com/2011/11/26/eco-for-visual-studio-explained/</guid>
		<description><![CDATA[Picking the image apart piece by piece Model This is the model you produce. It is expressed in Unified Modeling Language (UML) and defines Class diagrams with inheritance, many to many associations with association classes, derived attributes using Object Constraint &#8230; <a href="http://www.new.capableobjects.com/2011/11/26/eco-for-visual-studio-explained/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2011/11/image6.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.new.capableobjects.com/wp-content/uploads/2011/11/image_thumb6.png" width="854" height="538"></a></p>
<h1>Picking the image apart piece by piece</h1>
<h2>Model</h2>
<p>This is the model you produce. It is expressed in Unified Modeling Language (UML) and defines Class diagrams with inheritance, many to many associations with association classes, derived attributes using Object Constraint Language (OCL), fold pieces of the model into ViewModels with OCL, designed declarative user interfaces for a ViewModel (ViewModel View), define actions with ECO Action Language, catch information about processes, stakeholders, applications and terminology, define state machines, set up constraints and stuff like that.</p>
<h2>Documtr</h2>
<p>In Documtr you can catch rich text for every artifact in your model. Write up things that will help you remember, or background information for a solution. You can produce a full model report at any time combining your model with your documentation.</p>
<h2>Prototypr</h2>
<p>You can with Prototypr start your model. You can open up a ECO debugger to create objects and view AutoForms per class</p>
<h2>WECPOF</h2>
<p>With WECPOF you can take the model execution one step further – use the declarative ViewModels to render UI’s and your Action definitions to render menus – now you have a complete application to test on your users.&nbsp; </p>
<h2>Modlr</h2>
<p>Modlr is the tool that helps you model your thoughts. Modlr is built with ECO for Visual Studio so there is a complete Model of the classes in Modlr in our code repository – and for those of us that appreciate meta –&nbsp; cool.</p>
<h2>ECO Design time</h2>
<p>ECO Design time offers you design time support when binding data to your visual components. You can even get up an OCL editor that helps you to compile valid OCL expressions using the definitions from your current model.</p>
<h1>And on the runtime side</h1>
<h2>ECO UI Help</h2>
<p>In .net almost all the UI strategies has their own way of binding between data and UI component. In ECO we handle them all with a few specialized components.</p>
<h2>Your compiled code</h2>
<p>The model is actually folded down in the generated code as attributes on the generated artifacts. You can of course have loads of manually written code here as well. And you might have chosen to implement some derivations of attributes or associations in code. It is nice to know that we use incomplete classes to separate anything hand written from the generated stuff.</p>
<h2>ECO Runtime</h2>
<p>When your app is running and pulls in data from the database, have you ever struggled to keep track of what is loaded and not, what association needs to be fetched and if the other end of the association needs to be updated when you tie two objects together? This is what the ECO runtime does for you. It also offers other services like in memory transactions (boy can that clean up your code – no need checking ahead – just throw an exception and rollback), complete undo/redo stack, ability to linq or OCL to execute SQL queries to the database etc.</p>
<h2>ECO PersistenceMapper</h2>
<p>OR-Mapping is what we call it when taking a model expressed in UML and store it in a relational database. There are a few rules and a few options, like how to map inheritance – own table, parent or child table, but all in all it is a pretty straight forward process that you can use your standard personal dba for – or just push a button and get it right every time. In design time ECO also offers an automatic difference calculus that we call DB-Script evolution. This finds the changes you need to apply to your existing database after you have changed the model – just click and be done. OR-Mapping can also be heavily customized so that your app can run towards an existing database. You can even Reverse derive an existing database in designtime. </p>
<h2>ECO Persistence Server</h2>
<p>The ECO Persistence Server is a Tier Building block that shields your (possibly fat) clients from knowing about the database. Use this and your clients talk over a WCF channel that you fully can control with WCF configuration. Use this to get encryption or tunneling or as a way to get thru firewalls. The ECO Persistence Server also tracks what client updates what objects so that other clients can get notified about this with a low bandwith refresh call (Client synchronization).</p>
<h2>Database scripts</h2>
<p>See text under ECO PersistenceMapper</p>
<p><em><strong>Note that on the Execute side most things are optional</strong></em></p>
<p>I guess there are people around that refuse to travel by car since it is all “new and modern and not really needed”, and I know that there are plenty of developers that will not model their thoughts at all since it is all “new and modern and not really needed”. ECO for Visual Studio is not for those developers – ECO for Visual Studio is for developers that like new and modern.</p>
<div style="clear:both;margin:0;padding:0;">&nbsp;</div>
]]></content:encoded>
			<wfw:commentRss>http://www.new.capableobjects.com/2011/11/26/eco-for-visual-studio-explained/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Known limitations using ECO with Silverlight</title>
		<link>http://www.new.capableobjects.com/2011/11/26/known-limitations-using-eco-with-silverlight/</link>
		<comments>http://www.new.capableobjects.com/2011/11/26/known-limitations-using-eco-with-silverlight/#comments</comments>
		<pubDate>Sat, 26 Nov 2011 14:30:18 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://www.new.capableobjects.com/2011/11/26/known-limitations-using-eco-with-silverlight/</guid>
		<description><![CDATA[I would love to just write NONE here but no… #1 When using many to many associations like: It will fail adding to this association in Silverlight. Reason: This construct creates an implicit link class (FriendExpensiveStuff) and the implicit class &#8230; <a href="http://www.new.capableobjects.com/2011/11/26/known-limitations-using-eco-with-silverlight/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I would love to just write NONE here but no…</p>
<h1>#1</h1>
<p>When using many to many associations like:</p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2011/11/image3.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.new.capableobjects.com/wp-content/uploads/2011/11/image_thumb3.png" width="546" height="135"></a></p>
<p>It will fail adding to this association in Silverlight.</p>
<p>Reason: This construct creates an implicit link class (FriendExpensiveStuff) and the implicit class is created with reflection things not available in Silverlight.</p>
<p>The workaround is to create an explicit link class like this:</p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2011/11/image4.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.new.capableobjects.com/wp-content/uploads/2011/11/image_thumb4.png" width="528" height="137"></a></p>
<p>Then it works in Silverlight.</p>
<p>And frankly you will probably have the need for the explicit link class anyway:</p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2011/11/image5.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.new.capableobjects.com/wp-content/uploads/2011/11/image_thumb5.png" width="541" height="171"></a></p>
<div style="clear:both;margin:0;padding:0;">&nbsp;</div>
]]></content:encoded>
			<wfw:commentRss>http://www.new.capableobjects.com/2011/11/26/known-limitations-using-eco-with-silverlight/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WECPOF, the 10 times faster way to build .net systems is replaced with WECPOF2</title>
		<link>http://www.new.capableobjects.com/2011/11/14/wecpof-the-10-times-faster-way-to-build-net-systems-is-replaced-with-wecpof2/</link>
		<comments>http://www.new.capableobjects.com/2011/11/14/wecpof-the-10-times-faster-way-to-build-net-systems-is-replaced-with-wecpof2/#comments</comments>
		<pubDate>Mon, 14 Nov 2011 12:34:32 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[Declarative]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[WECPOF]]></category>

		<guid isPermaLink="false">http://www.new.capableobjects.com/2011/11/14/wecpof-the-10-times-faster-way-to-build-net-systems-is-replaced-with-wecpof2/</guid>
		<description><![CDATA[Last year when we assembled all the bits and pieces of work and consolidated it into WECPOF I was extremely satisfied. It is a good feeling to have a vision, work on it from many angles and in the end &#8230; <a href="http://www.new.capableobjects.com/2011/11/14/wecpof-the-10-times-faster-way-to-build-net-systems-is-replaced-with-wecpof2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Last year when we assembled all the bits and pieces of work and consolidated it into WECPOF I was extremely satisfied. It is a good feeling to have a vision, work on it from many angles and in the end see that it all fits together and really works.</p>
<p>We have tried the WECPOF method on a couple of real life cases and it is easy to see the value it brings being able to catch the class model, the viewmodels with UI-hints, the state machines, the actions , the high level processes, the stakeholders and user stories and the textual documentation in one place – then just execute it and show it to the users. The feedback loop is much tighter than what I have ever experienced before – and this is really important – people do not have time to forget the topic – and everything is accelerated in an unprecedented way.</p>
<p>I have heard all kinds of dooms day prophets saying that “You can never show a normal person a class diagram” – sure you can! Just make sure you show other stuff as well – like a running prototype with good examples of their own data executing that very class model. I tell you: normal people get this, normal people think this is fun, normal people want more and even faster. How cool is that?</p>
<h2>What was wrong with WECPOF</h2>
<p>WECPOF took the standard windows metaphor and made&nbsp; lot of movable windows available for showing information. Standard but not without usability problems. And at the same time WPF and Silverlight kind of moved away from the windows idea and tried to establish a more dashboard set up for presenting information. We also looked at a few good and inspiring examples using only modal windows where the user could not switch windows to search for information – but instead needed to use dead simple and consistent navigations like “enter” for going into detail and “escape” for moving back from detail. This was surprisingly powerful, liked and easily learned by users.</p>
<p>So we had the old-windows-strategy that WECPOF used, we have the dashboard thoughts of new UI’s like in <a href="http://www.zune.net/en-US/" target="_blank">Zune</a>, we had a good real life case dealing with only modal windows in a “one thing at a time kind of way”. </p>
<p>We also needed something that will sit well in a browser, a tablet, a phone or what have you… So how does a web app really work? It almost always deal with one thing at a time. You can always go back, and then go forward, you can always get a new tab or even a new window. And the navigation is always very simple, hardly ever any right clicks. Navigation is grasped by anyone in just seconds. We want something like that for WECPOF.</p>
<h2>How can we fix it</h2>
<p>WECPOF2 borrows a lot from the alternatives described above. Let the screens stack up on each other, give the user a back and forward button to move around in the stack. Just as a ctrl-click in the browser brings up the target in a new tab – a ctrl-click in WECPOF2 creates a new tab. As WPF and Silverlight apps often have a function panel, or a function stack on the side so does WECPOF2 offer the actions available in a button stack on the right side. </p>
<p>Just as with WECPOF(1) WECPOF2 also lends itself to heavy styling.</p>
<p>Check out these screen shots:</p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2011/11/image.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.new.capableobjects.com/wp-content/uploads/2011/11/image_thumb.png" width="644" height="252"></a></p>
<p> Clicking the “Show project” from the right-side action stack…</p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2011/11/image1.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.new.capableobjects.com/wp-content/uploads/2011/11/image_thumb1.png" width="644" height="299"></a></p>
<p>… brings up the project view. The back button takes you back to the project group screen. </p>
<p>“Show task” will bring a the task screen – but I will hold the ctrl key while clicking…</p>
<p><a href="http://www.new.capableobjects.com/wp-content/uploads/2011/11/image2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.new.capableobjects.com/wp-content/uploads/2011/11/image_thumb2.png" width="644" height="264"></a></p>
<p>Note that this screen shows up in its own tab, and the back button is not enabled since this is the only screen in this tab.</p>
<p>The above example is in the <a href="http://www.new.capableobjects.com/2011/09/26/a-sample-that-shows-everything-there-is-to-know-about-eco/" target="_blank">EcoSolutionShowcase</a> – it is Silverlight 4 in a browser calling an IIS hosted persistence server over WCF and uses a SQLExpress database. </p>
<p>Even if this sample is very simple it still does things a generic way that lots and lots of apps built today will have a hard time to deliver. To name a few: </p>
<ul>
<li>A refresh function that ask the persistence server after LOB-data updated after fetch – and invalidates this so that individual objects are re-fetched</li>
<li>An Undo-redo function for all LOB-data</li>
<li>Efficient fetching of data based on the declarative descriptions of UI</li>
<li>Model driven from top to toe – but plenty of room to create your c# stuff when needed.</li>
</ul>
<p>So go figure – are you working in the most efficient way today? If not – why not?</p>
<p>ps. I was extremely pleased to see that WECPOF2 only is a new transformation layer – no changes were needed to the ViewModel, Action or Design architecture to get it in place – and WECPOF(1) is still available. This “proves” the strength of the concept – totally new presentation layer – exact same model. So anyone still worried about the Silverlight vs. html5 battle? Why not focus on YOUR business… Let the presentation follow your rules and ideas. ds.</p>
<div style="clear:both;margin:0;padding:0;">&nbsp;</div>
]]></content:encoded>
			<wfw:commentRss>http://www.new.capableobjects.com/2011/11/14/wecpof-the-10-times-faster-way-to-build-net-systems-is-replaced-with-wecpof2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

