<?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>WS-Blog &#187; PureMVC</title>
	<atom:link href="http://www.websector.de/blog/category/puremvc/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.websector.de/blog</link>
	<description>// Flex - AIR - Flash - JavaScript</description>
	<lastBuildDate>Wed, 18 Jan 2012 12:17:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Simple RSS reader for iPhone using PureMVC Standard for Objective-C</title>
		<link>http://www.websector.de/blog/2009/02/08/simple-rss-reader-for-iphone-using-puremvc-standard-for-objective-c/</link>
		<comments>http://www.websector.de/blog/2009/02/08/simple-rss-reader-for-iphone-using-puremvc-standard-for-objective-c/#comments</comments>
		<pubDate>Sun, 08 Feb 2009 11:24:29 +0000</pubDate>
		<dc:creator>sectore</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[PureMVC]]></category>

		<guid isPermaLink="false">http://www.websector.de/blog/?p=210</guid>
		<description><![CDATA[Few weeks ago Cliff Hall announced the release of PureMVC Objective-C Port by Brian Knorr. Brian also provided a very helpful demo called &#8220;Employee Admin&#8220;. To dive into the Objective-C port of PureMVC as quick as possible I have built a another demo. It&#8217;s a pretty simple RSS reader for iPhone or iPod touch, which [...]]]></description>
			<content:encoded><![CDATA[<p>Few weeks ago Cliff Hall <a href="http://puremvc.org/content/view/121/1/ ">announced the release of PureMVC Objective-C Port</a> by <a href="http://starterstep.wordpress.com">Brian Knorr</a>. Brian also provided a very helpful demo called &#8220;<a href="http://trac.puremvc.org/Demo_ObjectiveC_UIKit_EmployeeAdmin">Employee Admin</a>&#8220;.</p>
<p>To dive into the Objective-C port of PureMVC as quick as possible I have built a another demo. It&#8217;s a pretty simple RSS reader for iPhone or iPod touch, which grabs a feed of a blog and shows the latest 10 entries in detail. </p>
<p><span id="more-210"></span></p>
<h2>Screen shots</h2>
<p><a href="http://github.com/sectore/puremvc-objectivec-simplerssreader/" class="img"><img src="http://www.websector.de/blog/wp-content/uploads/2009/02/08/sreenshot_puremvc_iphone.jpg" alt="Screen shots of an iPhone RSS reader using PureMVC" /></a></p>
<h2>View and download full source</h2>
<p>View or grab the source here:<br />
<a href="http://github.com/sectore/puremvc-objectivec-simplerssreader/">http://github.com/sectore/puremvc-objectivec-simplerssreader/</a> </p>
<p>It&#8217;s open source licensed under the <a href="http://www.mozilla.org/MPL/MPL-1.1.txt">Mozilla Public License 1.1.</a></p>
<h2>Conclusion</h2>
<p>Brian Knorr, the project owner of the Objective-C port of PureMVC, did an awesome job! But the question is: Do I need a MVC framework such as PureMVC for developing an iPhone app? You don&#8217;t! Because Objective-C based already on a MVC paradigma. </p>
<p>However, if you are new to Objective-C and you may have a strong ActionScript background using PureMVC, it might be a good choice to dive into iPhone development. And you will see, that the code architecture is like your home <img src='http://www.websector.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>-Jens</p>
]]></content:encoded>
			<wfw:commentRss>http://www.websector.de/blog/2009/02/08/simple-rss-reader-for-iphone-using-puremvc-standard-for-objective-c/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>A basic PureMVC MultiCore AS3 example using Pipes Utility and Modules</title>
		<link>http://www.websector.de/blog/2008/06/21/a-basic-puremvc-multicore-as3-example-using-pipes-utility-and-modules/</link>
		<comments>http://www.websector.de/blog/2008/06/21/a-basic-puremvc-multicore-as3-example-using-pipes-utility-and-modules/#comments</comments>
		<pubDate>Sat, 21 Jun 2008 09:09:00 +0000</pubDate>
		<dc:creator>sectore</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[PureMVC]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[UPDATE [08/25/08]: Source has been updated using PureMVC 1.0.5 MultiCore. These days I&#8217;ve been playing around with the latest cool utility for PureMVC MultiCore AS3 called &#8220;Pipes Utility&#8221; developed by Cliff Hall. It&#8217;s a very helpful and powerful utility to communicate among all core actors of a module based application using PureMVC. For a better [...]]]></description>
			<content:encoded><![CDATA[<p style="background-color: #f6f6f6"><strong>UPDATE [08/25/08]: </strong>Source has been updated using <a href="http://puremvc.org/content/view/90/181/">PureMVC 1.0.5 MultiCore</a>.</p>
<p>These days I&#8217;ve been playing around with the latest cool utility for <a href="http://trac.puremvc.org/PureMVC_AS3_MultiCore">PureMVC MultiCore AS3</a> called &#8220;<a href="http://trac.puremvc.org/Utility_AS3_MultiCore_Pipes">Pipes Utility</a>&#8221; developed by <a href="http://puremvc.org">Cliff Hall</a>. It&#8217;s a very helpful and powerful utility to communicate among all core actors of a module based application using <a href="http://puremvc.org">PureMVC</a>.</p>
<p>For a better understanding I created a basic example using <a href="http://livedocs.adobe.com/flex/3/langref/mx/modules/Module.html">modules</a>. It&#8217;s just a simple app called &#8220;HelloPipes&#8221;, which loads and unloads a module for communicating with its shell using Pipes. Module and shell are acting as a core based on PureMVC MultiCore AS3.</p>
<p>The following example including full source may help anybody who is interested in the new Pipe Utility too <img src='http://www.websector.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  .</p>
<p><span id="more-53"></span></p>
<h2>Example<!--2--><a href="http://www.websector.de/blog/wp-content/uploads/2008/06/21/HelloPipesShell.html" class="img"><img src="http://www.websector.de/blog/wp-content/uploads/2008/06/21/screenHelloPipes.png" height="258" width="489" /></a></h2>
<h2>Full source</h2>
<p><a href="http://www.websector.de/blog/?download=HelloPipes">HelloPipesSource.zip</a> (Downloads: 5489)</p>
<h2>Tips using Modules, PureMVC MultiCore AS3 and Pipe Utility</h2>
<ul>
<li>Don&#8217;t import any classes of a PureMVC MultiCore module within the shell (main application) to avoid any issues at runtime loading and unloading a module. To define constants for using Pipes such as output and input pipe names, which are shared between shell and module, don&#8217;t use a reference to any actor. Use a simple &#8220;common&#8221; class instead, which stores only these constants for sharing by shell and module. Check the <code>PipeAwareModuleConstants.as</code> within the example above.</li>
<li>For communicating from shell to module and return without Pipes use well defined interfaces for the same reason mentioned before.</li>
<li>Clean up your module to avoid any issues loading and unloading it again. This may be helpfull for a successful garbage collection as well. Check out the code for the module within the example above, which uses an Interface called <code>IPipeAwareModule</code>. Using this interface the shell forces the cleaning up process of the module before the module will be unloaded.</li>
<li>Disconnect and unregister (if necessary) Pipes connecting shell and modules, when a module is unloaded.</li>
<li>Remove all PureMVC core actors of a module using <code>facade.removeCore</code> before a module is unloaded to avoid issues reloading it.</li>
<li>General issue: To reduce the file size of a module use the compiler option called <code>load-externs</code>. For detailed information check the Flex 3 Help: &#8220;<a href="http://livedocs.adobe.com/flex/3/html/modular_4.html#170594">Compiling modules &#8211; Reducing module size</a>&#8220;</li>
</ul>
<h2>Helpful links</h2>
<ul>
<li><a href="http://www.joshuaostrom.com/2008/06/15/understanding-puremvc-pipes/">&#8220;Understanding PureMVC Pipes&#8221;</a> by Joshua Ostrom. Great tutorial!</li>
<li>PureMVC Forum entry: &#8220;<a href="http://forums.puremvc.org/index.php?topic=457.0">Pipes &#8211; A PureMVC AS3 MultiCore Utility</a>&#8220;</li>
<li>Pipe Utility example named &#8220;<a href="http://trac.puremvc.org/Demo_AS3_MultiCore_Flex_PipeWorks">PipeWorks</a>&#8221; by Cliff Hall</li>
</ul>
<p>Have fun! <img src='http://www.websector.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.websector.de/blog/2008/06/21/a-basic-puremvc-multicore-as3-example-using-pipes-utility-and-modules/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
		<item>
		<title>PureMVC’s &#8220;Best Practices Document&#8221; has been translated into German</title>
		<link>http://www.websector.de/blog/2008/05/11/puremvc%e2%80%99s-best-practices-document-has-been-translated-into-german/</link>
		<comments>http://www.websector.de/blog/2008/05/11/puremvc%e2%80%99s-best-practices-document-has-been-translated-into-german/#comments</comments>
		<pubDate>Sun, 11 May 2008 14:59:00 +0000</pubDate>
		<dc:creator>sectore</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[PureMVC]]></category>

		<guid isPermaLink="false">http://www.websector.de/blog/2008/05/11/puremvc%e2%80%99s-best-practices-document-has-been-translated-into-german/</guid>
		<description><![CDATA[It&#8217;s done! It takes me few days to translate the great documentation called &#8220;PureMVC &#8211; Implementation, Idioms and Best Practices&#8221; published by Cliff Hall into German. Anyway, it was worth it! 52 pages about using PureMVC in a right way including examples, tips and general information using design patterns. Study this document published in English, [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s done! It takes me few days to translate the great documentation called &#8220;PureMVC &#8211; Implementation, Idioms and Best Practices&#8221; published by <a href="http://futurescale.com/">Cliff Hall</a> into German. Anyway, it was worth it! 52 pages about using <a href="http://puremvc.org/">PureMVC</a> in a right way including examples, tips and general information using <a href="http://en.wikipedia.org/wiki/Design_Patterns">design patterns</a>.</p>
<p><span id="more-49"></span></p>
<p>Study this document published in <a href="http://puremvc.org/">English, France and now in German</a>, and you will have the perfect knowledge about building well structured applications based on <a href="http://www.adobe.com/products/flash/">Flash</a>, <a href="http://www.adobe.com/products/flex/">Flex</a> or <a href="http://www.adobe.com/products/air/">AIR</a> using <a href="http://puremvc.org/">PureMVC</a>. Believe me, you don&#8217;t have to dig tons of resources, blog entries or forums, just study this document!</p>
<p>Grab the the &#8220;Best Practices&#8221; at the <a href="http://puremvc.org/">official PureMVC site</a>! The German version will be there available within the next few days as well.</p>
<h2>Cover of PureMVC&#8217;s &#8220;Best Practices Document&#8221; in German</h2>
<p><img src="http://www.websector.de/blog/wp-content/uploads/2008/05/11/puremvc_doc_cover.png" width="500" height="640" alt="PureMVC - Best Practices Document in German - Cover" id="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.websector.de/blog/2008/05/11/puremvc%e2%80%99s-best-practices-document-has-been-translated-into-german/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Flex User Group Hamburg March 2008: Let&#8217;s talk about PureMVC &#8211; Cliff Hall live!</title>
		<link>http://www.websector.de/blog/2008/02/24/flex-user-group-hamburg-march-2008-lets-talk-about-puremvc-cliff-hall-live/</link>
		<comments>http://www.websector.de/blog/2008/02/24/flex-user-group-hamburg-march-2008-lets-talk-about-puremvc-cliff-hall-live/#comments</comments>
		<pubDate>Sun, 24 Feb 2008 05:13:00 +0000</pubDate>
		<dc:creator>sectore</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[PureMVC]]></category>
		<category><![CDATA[Talk]]></category>

		<guid isPermaLink="false">http://www.websector.de/blog/2008/02/24/flex-user-group-hamburg-march-2008-lets-talk-about-puremvc-cliff-hall-live/</guid>
		<description><![CDATA[[UPDATE: 03/31/08]If you&#8217;ve missed this great event organized by Adobe Flex User Group Hamburg you will find here all slides and discussed topics of the presentations. Cliff, thanks again for visiting our User Group in Hamburg! That&#8217;s awesome! Cliff Hall is going to have a talk about PureMVC at our Flex User Group in Hamburg [...]]]></description>
			<content:encoded><![CDATA[<div style="background-color:#F6F6F6">
<p><strong>[UPDATE: 03/31/08]</strong>If you&#8217;ve missed <a href="http://www.flexughh.de/2008/02/24/nachstes-treffen-lets-talk-about-puremvc-cliff-hall-live/">this great event</a> organized by <a href="http://www.flexughh.de/">Adobe Flex User Group Hamburg</a> you will find <a href="http://www.flexughh.de/2008/03/29/slides-und-links-vom-letzten-meeting-lets-talk-about-puremvc/">here all slides and discussed topics of the presentations</a>. Cliff, thanks again for visiting our <a href="http://www.flexughh.de">User Group</a> in Hamburg!</p>
</div>
<p>That&#8217;s awesome! <a href="http://puremvc.org/">Cliff Hall</a> is going to have <a href="http://www.flexughh.de/2008/02/24/nachstes-treffen-lets-talk-about-puremvc-cliff-hall-live/">a talk</a> about <a href="http://puremvc.org/">PureMVC</a> at our <a href="http://www.flexughh.de/">Flex User Group in Hamburg / Germany</a>. Take the chance to meet him and to talk about the <a href="http://puremvc.org/">PureMVC project</a>. Here are the details: </p>
<p><span id="more-47"></span></p>
<h2>When / Where</h2>
<p><strong>Date:</strong> 28th March 2008 <br /><strong>Time:</strong> 20:00 &#8211; 22:00 (doors open at 19:45) <br /><strong>Location:</strong><br />
	Adobe Office Hamburg <br />
	Große Elbstraße 27 <br />
	Stadtlagerhaus <br />
	22767 Hamburg <br />
	GERMANY	</p>
<p>(Location at <a href="http://maps.google.com/maps?f=l&#038;hl=en&#038;geocode=&#038;q=adobe&#038;near=hamburg,+germany&#038;ie=UTF8&#038;z=13&#038;iwloc=A">Google Maps</a>)</p>
<h2>Agenda</h2>
<p>
<p>- General info (<a href="http://www.flexughh.de/">Flex User Group Hamburg</a>) <br />
- PureMVC &#8211; An Overview (<a href="http://puremvc.org/">Cliff Hall</a>)<br />
- Let&#8217;s See Code! A walkthrough of the code in a PureMVC sample (<a href="http://www.websector.de/">Jens Krause</a>)<br />
- Questions &#038; Answers (<a href="http://puremvc.org/">Cliff Hall</a>)<br />
- Open discussion</p>
</p>
<h2>Register</h2>
<p>It&#8217;s free and open to everyone! Registration is required using <a href="http://de.groups.yahoo.com/group/flexughh/message/1">our mailinglist</a>. You will find further information (in German!) visiting the blog of the <a href="http://www.flexughh.de/">Flex User Group Hamburg</a>.</p>
<h2>Thanks!</h2>
<p>Cliff, thanks again to enable such an awesome talk! I look forward to meeting you in Hamburg!</p>
<p>Thanks to <a href="http://www.soenkerohde.com/">Sönke Rohde</a> for helping to organize this event and <a href="http://www.adobe.com/">Adobe</a> for providing the location!</p>
<p>-Jens</p>
]]></content:encoded>
			<wfw:commentRss>http://www.websector.de/blog/2008/02/24/flex-user-group-hamburg-march-2008-lets-talk-about-puremvc-cliff-hall-live/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Voices on PureMVC: An interview with Cliff Hall</title>
		<link>http://www.websector.de/blog/2008/02/11/voices-on-puremvc-an-interview-with-cliff-hall/</link>
		<comments>http://www.websector.de/blog/2008/02/11/voices-on-puremvc-an-interview-with-cliff-hall/#comments</comments>
		<pubDate>Mon, 11 Feb 2008 09:44:39 +0000</pubDate>
		<dc:creator>sectore</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[PureMVC]]></category>

		<guid isPermaLink="false">http://www.websector.de/blog/2008/02/11/voices-on-puremvc-an-interview-with-cliff-hall/</guid>
		<description><![CDATA[Cliff Hall, the founder of the PureMVC project, has recently opened a Blog called &#8220;Voices on PureMVC&#8221; and has started a &#8220;Voices Podcast&#8221;, too. At the first episode we&#8217;ve talked about some PureMVC demos I&#8217;ve created as well as about the experiences using PureMVC in my professional work. It was a lot of fun! Check [...]]]></description>
			<content:encoded><![CDATA[<p>Cliff Hall, the founder of the <a href="http://puremvc.org/">PureMVC project</a>, has recently opened a Blog called &#8220;Voices on PureMVC&#8221; and has started a &#8220;Voices Podcast&#8221;, too. </p>
<p><a href="http://puremvc.org/content/view/70/1/">At the first episode</a> we&#8217;ve talked about some PureMVC demos I&#8217;ve created as well as about the experiences using PureMVC in my professional work. It was a lot of fun!</p>
<p><span id="more-46"></span></p>
<p><a href="http://puremvc.org/content/view/70/1/">Check it out</a> <img src='http://www.websector.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> !</p>
<p>P.S. Cliff, thanks for the great interview! I&#8217;m very proud to be a voice of PureMVC <img src='http://www.websector.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.websector.de/blog/2008/02/11/voices-on-puremvc-an-interview-with-cliff-hall/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>10 tips for working with PureMVC</title>
		<link>http://www.websector.de/blog/2007/12/25/10-tips-for-working-with-puremvc/</link>
		<comments>http://www.websector.de/blog/2007/12/25/10-tips-for-working-with-puremvc/#comments</comments>
		<pubDate>Tue, 25 Dec 2007 07:40:00 +0000</pubDate>
		<dc:creator>sectore</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[PureMVC]]></category>

		<guid isPermaLink="false">http://www.websector.de/blog/2007/12/26/10-tips-for-working-with-puremvc/</guid>
		<description><![CDATA[This post is translated into German, Russian, Chinese and French. Thanks a lot to Aleksey, duzengqiang and Eric for the translations! Jesse Wardens great article called &#8220;10 Tips For Working With Cairngorm&#8221; has given me the idea to share 10 tips using PureMVC as well. I&#8217;ve been using PureMVC intensively for about six months now [...]]]></description>
			<content:encoded><![CDATA[<p style="background-color: #f6f6f6"><strong>This post is translated into <a href="http://www.flexughh.de/2007/12/27/10-tips-fur-das-arbeiten-mit-puremvc/">German</a>,    <a href="http://injun.ru/?p=425">Russian</a>, <a href="http://www.duzengqiang.com/blog/article.asp?id=674">Chinese</a> and <a href="http://www.polemedia.com/puremvc/10trucs.htm">French</a>.</strong> Thanks a lot to <a href="http://injun.ru/?author=1">Aleksey</a>, <a href="http://www.duzengqiang.com">duzengqiang</a> and <a href="http://www.videotron.com/">Eric</a> for the translations!</p>
<p><a href="http://www.jessewarden.com/">Jesse Wardens</a> great article called <a href="http://www.jessewarden.com/2007/08/10-tips-for-working-with-cairngorm.html">&#8220;10 Tips For Working With Cairngorm&#8221;</a> has given me the idea to share 10 tips using <a href="http://www.puremvc.org">PureMVC</a> as well. I&#8217;ve been using PureMVC intensively for about six months now and &#8211; that&#8217;s not a secret &#8211; I&#8217;m loving it. Anyway, all my following opinions are based on my personal experiences only. <img src='http://www.websector.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p><span id="more-42"></span></p>
<ol>
<li>
<h2>Think in (Pure)MVC</h2>
<p>How do I start using PureMVC? Short answer: Just think in (Pure)MVC! As its named says, PureMVC based on the classic <a href="http://en.wikipedia.org/wiki/Model-view-controller">Model-View-Controller</a> design meta-pattern. Using the <a href="http://en.wikipedia.org/wiki/Fa%C3%A7ade_pattern">Facade-pattern</a> you don&#8217;t instantiate the core actors directly, but every member of PureMVC has its own and clear defined role:<br />
- Proxies = Model</p>
<p>- Mediator and its ViewComponents = View<br />
- Commands = Controller</li>
<li>
<h2>Create an API for View Components</h2>
<p>A View Component might be a standard UI component (e.g. <code>DataGrid</code>) or a custom component (e.g. a world within a game) or whatever. Don&#8217;t use its public methods directly. In order to change its state or behavior create an API.</p>
<p>One of the advantage of PureMVC is to be neutral to the technologies being used. An example: I&#8217;ve built a &#8220;pure&#8221; Flash application based on PureMVC without using the Flex Framework. The same app will be ported to an AIR application for using AIR&#8217;s great File system API. The View Components have to be changed using the Flex Framework, but not the Mediators or any other actors of PureMVC.</li>
<li>
<h2>Use one Mediator for multiple View Components</h2>
<p>To coordinate more than one View Component closely, use one Mediator only. In other words: Not all Views need a Mediator. For example: Assume a <code>ApplicationControlBar</code>  containing a <code>TextInput </code>, and a <code>Button</code> or something else. Then create just one Mediator for the <code>ApplicationControlBar</code> called <code>ApplicationControlBarMediator</code> and refer to the missing components casted as a second, third, etc. View Component.</li>
<li>
<h2>Let&#8217;s Events bubble up</h2>
<p>What happens if you don&#8217;t want to use multiple View Components within a Mediator? In order to handle user interactions with multiple View Components let&#8217;s bubble Events from the nested children of a View Component up.</p>
<p>For example: Clicking any Button within a View Component will fired up a custom Event which the Mediator is listen to. So the Mediator don&#8217;t have to know about the existing Button or about any other child of its View Component, just about the custom Event bubbled up.</li>
<li>
<h2>Communicate using Notifications as often as possible</h2>
<p>Notifications are the “Events” of PureMVC. For communicating between the three tiers Model, View and Controller use Notifications for the following scenarios as often as possible:</p>
<p>(communication from -&gt; to)<br />
- Mediator -&gt; Proxy (via mapped Commands)<br />
- Proxy -&gt; Mediator<br />
- Proxy -&gt; Command<br />
- Commands -&gt; Mediator</p>
<p>Even if it&#8217;s possible to retrieve a Proxy from a Mediator, don&#8217;t change the Proxy from a Mediator directly rather than sending a Notification using a mapped Command. It&#8217;s a bad practice to change a Proxy (Model) from a Mediator (View) directly without using a Command (Controller).</li>
<li>
<h2>Use Commands / MacroCommands as often as possible</h2>
<p>Commands are doing the job at the Controller side: Retrieving and interacting Proxies, communicating with Mediators or executing other Commands. Even if a Command used only once or it has only two lines of code, use it as often as possible. To execute a Command once again anywhere or anytime within your application, you have to send just a Notification. In the future it&#8217;s easy to enlarge the Command with more complex actions. And &#8211; that&#8217;s very important &#8211; you always know, who the actor for changing the Proxy (Model) is.</p>
<p>Question: Have you had to execute more than one Command in a particular order? Use MacroCommands to execute multiple SubCommands (which means &#8220;simple&#8221; Commands) sequentially.</li>
<li>
<h2>Use Remote Proxy to send and receive server-side data</h2>
<p>To send and receive data between the application tier use Proxies called <code>Remote Proxies</code>. That&#8217;s not a special kind of a PureMVC <code>Proxy</code>, just a location based on a <code>Proxy</code> to organize the server calls such as <code>HTTPServices</code>, <code>RemoteObjects</code> or whatever.</p>
<p>For example: To call a server-side <code>RemoteObject</code> to login a user create Proxy called <code>LoginProxy</code>. The <code>LoginProxy</code> does all the job to communicate with the server-side, which means sending and receiving data. Whenever you&#8217;ll change the server-side implementation for the LoginProcess, you&#8217;ll have to change one location within your application only &#8211; the <code>LoginProxy</code>.</li>
<li>
<h2>Remove unused Mediators</h2>
<p>In some cases you don&#8217;t use a Mediator and its View Components anymore. Then remove the Mediator using <code>facade.removeMediator(MyMediator.NAME);</code> in conjunction with a self created <code>destroy()</code> method to remove the ViewComponent including all listeners, timer, references, etc. for a successful <a href="http://www.adobe.com/devnet/flashplayer/articles/garbage_collection.html">garbage collection</a>.</li>
<li>
<h2>The Power of VO&#8217;s (Value Objects)</h2>
<p>The place to store data within the Model are the Proxies &#8211; that&#8217;s right. The View Components have no need to know the Facade and the rest of the PureMVC application &#8211; that&#8217;s right, too. This means that the View Component has no access to the Model data directly.</p>
<p>To avoid this issue store within the View Component a reference to the data using <a href="http://home.earthlink.net/~huston2/j2ee/corepatterns.html#valueobject">Value Objects</a> (VO&#8217;s). The VO&#8217;s are not a core actor of PureMVC and in conjunction with the Data Binding feature of Flex are a powerful way to react changes in the Model data without breaking rules.</li>
<li>
<h2>Courseware available</h2>
</li>
<p><a href="http://content.futurescale.com/">Cliff Hall</a> has done an awesome job: You&#8217;ll find not only excellent documentations about the &#8220;<a href="http://puremvc.org/component/option,com_wrapper/Itemid,35/">Framework Overview</a>&#8220;, &#8220;<a href="http://puremvc.org/component/option,com_wrapper/Itemid,30/">Best Practices</a>&#8221; and a &#8220;<a href="http://puremvc.org/component/option,com_wrapper/Itemid,34/">Conceptual Diagram</a>&#8220;, <strike>also a very, very, very helpful <a href="http://puremvc.org/component/option,com_wrapper/Itemid,139/">Courseware</a></strike>. Check it out!</ol>
<p>Enjoy PureMVC and Happy Holidays <img src='http://www.websector.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.websector.de/blog/2007/12/25/10-tips-for-working-with-puremvc/feed/</wfw:commentRss>
		<slash:comments>37</slash:comments>
		</item>
		<item>
		<title>Another WebORB for PHP Login Sample using Flex and PureMVC</title>
		<link>http://www.websector.de/blog/2007/08/10/another-weborb-for-php-login-sample-using-flex-and-puremvc/</link>
		<comments>http://www.websector.de/blog/2007/08/10/another-weborb-for-php-login-sample-using-flex-and-puremvc/#comments</comments>
		<pubDate>Fri, 10 Aug 2007 01:15:00 +0000</pubDate>
		<dc:creator>sectore</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[PureMVC]]></category>

		<guid isPermaLink="false">http://www.websector.de/blog/2007/08/10/another-weborb-for-php-login-sample-using-flex-and-puremvc/</guid>
		<description><![CDATA[Last update: 03/23/08: The full source has been updated using PureMVC v. 2.0.3. Check out the source at the PureMVC manifold project. In my previous article I&#8217;ve published a tutorial about WebORB for PHP using Flex and Caingorm. Today I&#8217;ll give you a further WebORB for PHP sample which based also on a Login application [...]]]></description>
			<content:encoded><![CDATA[<p style="background-color: #f6f6f6"><strong>Last update: 03/23/08:</strong> The full source has been updated using PureMVC v. 2.0.3. Check out the source at the <a href="http://www.websector.de/blog/download-manager.php?id=9">PureMVC manifold project</a>.</p>
<p>In my <a href="http://www.websector.de/blog/2007/08/08/weborb-for-php-login-example-using-flex-3-and-caingorm-221/">previous article</a> I&#8217;ve published a tutorial about <a href="http://www.websector.de/blog/2007/08/08/weborb-for-php-login-example-using-flex-3-and-caingorm-221/">WebORB for PHP using Flex and Caingorm</a>. Today I&#8217;ll give you a further <a href="http://www.themidnightcoders.com/weborb/php/">WebORB for PHP</a> sample which based also on a Login application using <a href="http://www.puremvc.org/">PureMVC</a> instead of Cairngorm.</p>
<p>Do you already know <a href="http://www.puremvc.org/">PureMVC</a>? It&#8217;s an awesome lightweight framework written in ActionScript 3 for Flex, AIR or Flash applications based on the classic <a href="http://en.wikipedia.org/wiki/Model-view-controller">MVC</a> pattern. I&#8217;m falling in love with PureMVC and WebORB for PHP as well&#8230; <img src='http://www.websector.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  .</p>
<p><span id="more-35"></span></p>
<h2 id="example">Example</h2>
<div height="450">

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_PureMVCLoginWebORB_1064420486"
			class="flashmovie"
			width="100%"
			height="450">
	<param name="movie" value="http://www.websector.de/blog/wp-content/uploads/2007/08/10/PureMVCLoginWebORB.swf" />
	<param name="menu" value="false" />
	<param name="bgcolor" value="#000000" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://www.websector.de/blog/wp-content/uploads/2007/08/10/PureMVCLoginWebORB.swf"
			name="fm_PureMVCLoginWebORB_1064420486"
			width="100%"
			height="450">
		<param name="menu" value="false" />
		<param name="bgcolor" value="#000000" />
	<!--<![endif]-->
		
<p><a href="http://adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /></a></p>

	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object>
<p>&nbsp;</p>
</div>
<h2>Download full source</h2>
<p>The full source has been moved to the <a href="http://trac.puremvc.org/PureMVC_AS3">PureMVC manifold project</a>. You can it download including its remoting service here:<br />
<a href="http://www.websector.de/blog/?download=PureMVCLoginWebORB">PureMVC AS3 / Flex / WebORB Demo &#8211; Login</a><br />
(Visits: 6628)</p>
<p>Have fun! <img src='http://www.websector.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.websector.de/blog/2007/08/10/another-weborb-for-php-login-sample-using-flex-and-puremvc/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>WSPatternStyleGenerator for using WSBackgroundPixelSkin</title>
		<link>http://www.websector.de/blog/2007/07/10/wspatternstylegenerator-for-using-wsbackgroundpixelskin/</link>
		<comments>http://www.websector.de/blog/2007/07/10/wspatternstylegenerator-for-using-wsbackgroundpixelskin/#comments</comments>
		<pubDate>Tue, 10 Jul 2007 06:00:00 +0000</pubDate>
		<dc:creator>sectore</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[PureMVC]]></category>

		<guid isPermaLink="false">http://www.websector.de/blog/2007/07/10/wspatternstylegenerator-for-using-wsbackgroundpixelskin/</guid>
		<description><![CDATA[UPDATE [11/27/07]: Updating using Flex 3 and PureMVC v. 1.6. WSPatternStyleGenerator is a Flex based application creating well formatted CSS sheets for using WSBackgroundPixelSkin. The app based on the classic MVC design using the PureMVC Framework 1.4 PureMVC Framework 1.6. For loading images outside of its security sandbox it uses a PHP proxy script created [...]]]></description>
			<content:encoded><![CDATA[<p style="background-color: #f6f6f6"><strong>UPDATE [11/27/07]:</strong> Updating using <a href="http://www.websector.de/blog/wp-admin/labs.adobe.com/technologies/flex/">Flex 3</a> and <a href="http://puremvc.org">PureMVC v. 1.6.</a></p>
<p><code>WSPatternStyleGenerator</code> is a Flex based application creating well formatted CSS sheets for using <a href="http://www.websector.de/blog/2007/07/06/pimp-your-flex-app-using-wsbackgroundpixelskin/">WSBackgroundPixelSkin</a>. The app based on the classic MVC design using the <strike>PureMVC  Framework 1.4</strike> <a href="http://puremvc.org">PureMVC  Framework 1.6</a>. For loading images outside of its security sandbox it uses a <a href="http://www.abdulqabiz.com/blog/archives/general/php_proxy_script_for.php">PHP proxy script</a> created by <a href="http://www.abdulqabiz.com/blog/">Abdul Qabiz</a>.</p>
<p><span id="more-33"></span></p>
<h2>Screen shot</h2>
<p><a href="http://www.websector.de/blog/wp-content/uploads/2007/07/10/WSPatternStyleGenerator.html" class="noborder"><img src="http://www.websector.de/blog/wp-content/uploads/2007/07/10/screenShotWSPatternGenerator.png" heigth="350" width="500" /></a></p>
<h2>Requirements of external sources</h2>
<ul>
<li>File-types: *.gif, *jpg, *.jepg, *.png</li>
<li>Measures: max. 250px x 250px</li>
<li>max. 16 colors</li>
</ul>
<h2>Example</h2>
<p><a href="http://www.websector.de/blog/wp-content/uploads/2007/07/10/WSPatternStyleGenerator.html">Here</a> you&#8217;ll find an example of <code>WSPatternStyleGenerator</code>.</p>
<h2>Full source</h2>
<ul>
<li><a href="http://www.websector.de/blog/?download=WSPatternStyleGenerator">WSPatternStyleGenerator.zip</a> (latest update 07/11/07)<br />
<em>(Downloads: 2221)</em></li>
</ul>
<p>Licensed under the <a href="http://www.mozilla.org/MPL/MPL-1.1.html">Mozilla Public License 1.1.</a></p>
<p>Have fun <img src='http://www.websector.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.websector.de/blog/2007/07/10/wspatternstylegenerator-for-using-wsbackgroundpixelskin/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

