<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Manipulating Views under Cairngorm using Facades</title>
	<atom:link href="http://bildtsen.com/2008/11/manipulating-views-under-cairngorm-using-facades/feed/" rel="self" type="application/rss+xml" />
	<link>http://bildtsen.com/2008/11/manipulating-views-under-cairngorm-using-facades/</link>
	<description>Flex, Groovy/Grails, and other neat stuff</description>
	<lastBuildDate>Wed, 04 Nov 2009 17:01:26 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: Ola Bildtsen</title>
		<link>http://bildtsen.com/2008/11/manipulating-views-under-cairngorm-using-facades/comment-page-1/#comment-14</link>
		<dc:creator>Ola Bildtsen</dc:creator>
		<pubDate>Sun, 09 Nov 2008 20:30:09 +0000</pubDate>
		<guid isPermaLink="false">http://bildtsen.com/?p=117#comment-14</guid>
		<description>Good questions, thanks for the feedback. 

First of all, keep in mind that my demo is terribly simplified -- most operations on the view facade involve much more than simply switching a view (things like resetting fields, clearing validations, etc.).

The commands don&#039;t know anything about a particular view -- they simply know about facades.  So the separation of concerns is still there, plus the commands have easy access to manipulate the views thanks to the singleton logic.

Our top priority was to minimize the scripting logic in the view components.  We tried using state variables/listeners on ModelLocator in the previous attempt, and quickly found that to become confusing and very hard to track and maintain.  Each view component had tons of logic around the state of these variables.  Refactoring code became hairy, as making tweaks to the logic around these variables potentially could change behavior you didn&#039;t want to tweak.  By having very specific methods on the view facades (with descriptive names), the view manipulation logic became very neatly contained, simple to maintain, and safer from a refactoring point of view.

Binding is a fantastic and powerful concept for many things, but it can also very easily be misused.  We found that tons of bindings and listeners/logic around view manipulations to be a prime example of &quot;bindings gone bad&quot;.</description>
		<content:encoded><![CDATA[<p>Good questions, thanks for the feedback. </p>
<p>First of all, keep in mind that my demo is terribly simplified &#8212; most operations on the view facade involve much more than simply switching a view (things like resetting fields, clearing validations, etc.).</p>
<p>The commands don&#8217;t know anything about a particular view &#8212; they simply know about facades.  So the separation of concerns is still there, plus the commands have easy access to manipulate the views thanks to the singleton logic.</p>
<p>Our top priority was to minimize the scripting logic in the view components.  We tried using state variables/listeners on ModelLocator in the previous attempt, and quickly found that to become confusing and very hard to track and maintain.  Each view component had tons of logic around the state of these variables.  Refactoring code became hairy, as making tweaks to the logic around these variables potentially could change behavior you didn&#8217;t want to tweak.  By having very specific methods on the view facades (with descriptive names), the view manipulation logic became very neatly contained, simple to maintain, and safer from a refactoring point of view.</p>
<p>Binding is a fantastic and powerful concept for many things, but it can also very easily be misused.  We found that tons of bindings and listeners/logic around view manipulations to be a prime example of &#8220;bindings gone bad&#8221;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ion gion</title>
		<link>http://bildtsen.com/2008/11/manipulating-views-under-cairngorm-using-facades/comment-page-1/#comment-13</link>
		<dc:creator>ion gion</dc:creator>
		<pubDate>Sun, 09 Nov 2008 04:41:22 +0000</pubDate>
		<guid isPermaLink="false">http://bildtsen.com/?p=117#comment-13</guid>
		<description>Hmm ... doesn&#039;t look so cairngormish ..

The main issue here is having commands know the specific view ...

Why are you doing a view facade ? 
To have code behind ?

Wouldn&#039;t a state variable(with a watcher on it) in a model from ModelLocator be enough for you to to show progress/hide progress/display list/select child/etc... and keep all that pesky view code in the view itself?</description>
		<content:encoded><![CDATA[<p>Hmm &#8230; doesn&#8217;t look so cairngormish ..</p>
<p>The main issue here is having commands know the specific view &#8230;</p>
<p>Why are you doing a view facade ?<br />
To have code behind ?</p>
<p>Wouldn&#8217;t a state variable(with a watcher on it) in a model from ModelLocator be enough for you to to show progress/hide progress/display list/select child/etc&#8230; and keep all that pesky view code in the view itself?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
