<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Design Patterns</title>
        <link>http://geekswithblogs.net/gizmox/category/4321.aspx</link>
        <description>Design Patterns</description>
        <language>en-US</language>
        <copyright>Guy Peled</copyright>
        <managingEditor>dudegizmo@gmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>6.3.11 released with important fix for VWG designer</title>
            <link>http://geekswithblogs.net/gizmox/archive/2009/10/19/135546.aspx</link>
            <description>&lt;p&gt;&lt;a title="" href="http://www.visualwebgui.com" target="_blank"&gt;Visual WebGui&lt;/a&gt; 6.3.11 was released after we had a major breakthrough with an issue that had been with us from day one of the Visual WebGui designer. I guess most of you are used to reopening the designer after certain actions. You can imagine that we had sleepless nights thinking about this issue as we aim at perfection and this issue is far from being some thing you can live with. &lt;/p&gt;
&lt;p&gt;The issue I am talking about is &lt;a href="http://support.visualwebgui.com/issue/ViewIssue.aspx?id=642"&gt;this&lt;/a&gt; issue, which as its id (642) indicates is a long standing issue that has a few related issues.&lt;/p&gt;
&lt;p&gt;The irony of it all is that all the hours spent on finding this issue resolves in simply deleting one extra disposing call. When renaming forms, changing certain parts of the code and some more places, Visual Studio requires the designer to reload and that simulates the closing and opening the designer but obviously not perfectly as one service required to be left between the first loading and the second one.&lt;/p&gt;
&lt;p&gt;The new release is available for download &lt;a href="http://www.visualwebgui.com/tabid/110/default.aspx"&gt;&lt;strong&gt;here&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt; &lt;img src="http://geekswithblogs.net/gizmox/aggbug/135546.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Guy Peled</dc:creator>
            <guid>http://geekswithblogs.net/gizmox/archive/2009/10/19/135546.aspx</guid>
            <pubDate>Mon, 19 Oct 2009 11:47:05 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/gizmox/comments/135546.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/gizmox/archive/2009/10/19/135546.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/gizmox/comments/commentRss/135546.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/gizmox/services/trackbacks/135546.aspx</trackback:ping>
        </item>
        <item>
            <title>New web development paradigm for ASP.NET Ajax Web Developers</title>
            <link>http://geekswithblogs.net/gizmox/archive/2009/08/02/133862.aspx</link>
            <description>&lt;p&gt;I would like to direct your attention to an interesting article targeted for Web developers and more specifically ASP.NET developers who would like to learn a way to focus their development efforts on algorithms, requirements and business logics using a new, highly productive, boosted web development paradigm which provides maximal flexibility, interoperability and interactivity with any other web applications, controls set and architectures.&lt;/p&gt;
&lt;p&gt;The article compares between traditional web development paradign represented by ASP.NET and a new approach represented by &lt;a href="http://www.visualwebgui.com"&gt;Visual WebGui&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;To read the article click &lt;a href="http://www.visualwebgui.com/Gizmox/CIOs/WhitePapers/tabid/528/articleType/ArticleView/articleId/647/Visual-WebGui-for-ASPNET-Ajax-and-other-Ajax-Web-Developers.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt; &lt;img src="http://geekswithblogs.net/gizmox/aggbug/133862.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Guy Peled</dc:creator>
            <guid>http://geekswithblogs.net/gizmox/archive/2009/08/02/133862.aspx</guid>
            <pubDate>Sun, 02 Aug 2009 14:43:22 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/gizmox/comments/133862.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/gizmox/archive/2009/08/02/133862.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/gizmox/comments/commentRss/133862.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/gizmox/services/trackbacks/133862.aspx</trackback:ping>
        </item>
        <item>
            <title>Server vs. Client Empowered Web Applications</title>
            <link>http://geekswithblogs.net/gizmox/archive/2009/07/16/133528.aspx</link>
            <description>&lt;p&gt;The following post is taken from an article that explore the differences, pros, cons and usages scenarios of the &lt;strong&gt;Server empowered web architecture&lt;/strong&gt; of &lt;a href="http://www.visualwebgui.com"&gt;Visual WebGui&lt;/a&gt; and on the other side the &lt;strong&gt;Client empowered web architecture&lt;/strong&gt; features by solutions such as Classic AJAX, Flex/Flash, Classic Silverlight, Java Applets.&lt;/p&gt;
&lt;p&gt;Both server and client empowered solutions can support any kind of UI look &amp;amp; feel using Silverlight or rich AJAX.&lt;/p&gt;
&lt;p&gt;Client empowered applications support the highest performance in applications that data interactions are less common than pure UI/animations/media interactions.&lt;/p&gt;
&lt;p&gt;Gaming, animations, and, most of the editors are not security critical applications so that client solutions are valid for those, however, server empowered solutions and more specifically &lt;a title="" href="http://www.visualwebgui.com" target="_blank"&gt;Visual WebGui&lt;/a&gt; is much more secured by design.&lt;/p&gt;
&lt;p&gt;Client footprint is the parameter representing the download weight as a function of the application’s complexity. When client UI interactions, animations, and media are more common, and the software updates frequency is relatively low, then client solutions tend to be more efficient regardless their weight. However, in any other case the small &amp;amp; static footprint of Visual WebGui server empowered paradigm is much more efficient and reasonable.&lt;/p&gt;
&lt;p&gt;Client empowered solutions are virtually more scalable as they reduce mass responsibilities from the server. However, when the intensiveness of data interactions is higher than UI changes or heavy animations and media, Visual WebGui server empowered paradigm provides the best scalable and redundant solution.&lt;/p&gt;
&lt;p&gt;ull virtualization of the desktop environment i.e. Registry and File system is enabled within Visual WebGui server as a complementary service, providing full virtualization of desktop environment for web/cloud applications.&lt;/p&gt;
&lt;p&gt;Media, streaming and animations based applications, require the flexibility of Silverlight and Flash client based applications, the set of tools offered in this family of development tools is more graphic designer oriented and adapted. Visual WebGui server empowered paradigm with single layered object oriented code, desktop like form designer, point &amp;amp; click customization, and data designed set of controls, developer gains great advantage when developing data/business centric application. It simplifies and cuts about 90% of this kind of apps development time.&lt;/p&gt;
&lt;p&gt;Maintaining single layered object oriented code is preferable in all cases than any kind of multiple layers and technologies. Even Silverlight which enables Dot.Net in the client requires the establishment of application .NET client &amp;amp; XAML infrastructures and .NET server code as data infrastructures in different layers.&lt;/p&gt;
&lt;p&gt;The same tools are available for web UI (DHTML/Silverlight) customization whether the architecture is client empowered or server empowered. However, customizing data controls and business functional UI is enhanced and boosted with the Visual WebGui server empowered paradigm point &amp;amp; click controls designer.&lt;/p&gt;
&lt;p&gt;Sharing WPF/Silverlight XAMLs, code &amp;amp; resources may result in some level of presentation freedom (enabling the use of the same application from multiple devices and media). Though, the complete decoupling of Visual WebGui server empowered paradigm code from the presentation layer provides full capabilities to choose any device as an alternative presentation layer (plain browsers, Silverlight, Flash, mobile devices, smart clients etc).&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.visualwebgui.com/Gizmox/CIOs/WhitePapers/tabid/528/articleType/ArticleView/articleId/615/Server-vs-Client-Empowered-Web-Applications.aspx"&gt;You can read the original article here...&lt;/a&gt;&lt;/p&gt; &lt;img src="http://geekswithblogs.net/gizmox/aggbug/133528.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Guy Peled</dc:creator>
            <guid>http://geekswithblogs.net/gizmox/archive/2009/07/16/133528.aspx</guid>
            <pubDate>Thu, 16 Jul 2009 09:28:36 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/gizmox/comments/133528.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/gizmox/archive/2009/07/16/133528.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/gizmox/comments/commentRss/133528.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/gizmox/services/trackbacks/133528.aspx</trackback:ping>
        </item>
        <item>
            <title>A Visual WebGui 6.3.8a fix released</title>
            <link>http://geekswithblogs.net/gizmox/archive/2009/07/16/133527.aspx</link>
            <description>&lt;p&gt;&lt;a title="" target="_blank" href="http://www.visualwebgui.com"&gt;Visual WebGui&lt;/a&gt; 6.3.8a was released today as a fix to the following issues of the Visual WebGui 6.3.8 platform:&lt;/p&gt;
&lt;p&gt;VWG-5087 - IE-Button: The right-side border should be rendered in the correct position&lt;br /&gt;
VWG-4256 - Button with 21x21 image should not crop image with button size of 25x25&lt;br /&gt;
VWG-5091 - OpenFileDialog non-Flash should not throw JS error (while calling parent.Upload_CloseWindow())&lt;br /&gt;
VWG-5092 - OpenFileDialog non-Flash should not hang when OK button pressed&lt;br /&gt;
VWG-5093 - OpenFileDialog in Flash mode should not throw JS error while Obscuring active&lt;br /&gt;
VWG-5090 - OpenFileDialog non-Flash should show frames around the buttons&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.visualwebgui.com/tabid/110/default.aspx"&gt;Click here to download all 6.3.8a versions...&lt;/a&gt;&lt;/p&gt; &lt;img src="http://geekswithblogs.net/gizmox/aggbug/133527.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Guy Peled</dc:creator>
            <guid>http://geekswithblogs.net/gizmox/archive/2009/07/16/133527.aspx</guid>
            <pubDate>Thu, 16 Jul 2009 09:19:42 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/gizmox/comments/133527.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/gizmox/archive/2009/07/16/133527.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/gizmox/comments/commentRss/133527.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/gizmox/services/trackbacks/133527.aspx</trackback:ping>
        </item>
        <item>
            <title>Visual WebGui 6.3.8 Released</title>
            <link>http://geekswithblogs.net/gizmox/archive/2009/07/07/133308.aspx</link>
            <description>&lt;p&gt;&lt;a title="" href="http://www.visualwebgui.com" target="_blank"&gt;Visual WebGui&lt;/a&gt; Web &amp;amp; Cloud platform version 6.3.8 was released today.&lt;/p&gt;
&lt;p&gt;This is a further stabilization of 6.3.x that includes some resolved button behavior issues, as well as features such as Flash 10 uploading compatibility and the ability to configure a virtual directory.&lt;/p&gt;
&lt;p&gt;The full v6.3.8 change log can be found &lt;a href="http://www.visualwebgui.com/Developers/ChangeLog/tabid/605/articleType/ArticleView/articleId/624/Change-log-638.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.visualwebgui.com/tabid/110/Default.aspx"&gt;Click here to download Visual WebGui 6.3.8...&lt;/a&gt;&lt;/p&gt; &lt;img src="http://geekswithblogs.net/gizmox/aggbug/133308.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Guy Peled</dc:creator>
            <guid>http://geekswithblogs.net/gizmox/archive/2009/07/07/133308.aspx</guid>
            <pubDate>Tue, 07 Jul 2009 14:31:28 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/gizmox/comments/133308.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/gizmox/archive/2009/07/07/133308.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/gizmox/comments/commentRss/133308.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/gizmox/services/trackbacks/133308.aspx</trackback:ping>
        </item>
        <item>
            <title>Server based AJAX for enterprise applications – Solving the AJAX security issue and enhancing AJAX productivity and manageability </title>
            <link>http://geekswithblogs.net/gizmox/archive/2007/04/29/112081.aspx</link>
            <description>&lt;div style="MARGIN: 0in 0in 0pt; DIRECTION: ltr; unicode-bidi: embed"&gt;AJAX has been breaking new grounds almost every day, with over 150 AJAX frameworks, there are plenty of options to choose from and one might say too many. Most of the AJAX frameworks provide you with browser extension libraries that will help you utilize the browser and interact with the server in a more productive way. What they are trying to do in most cases is to provide larger building blocks to achieve your goals by abstracting the calls to the browser API and to the server. &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt; DIRECTION: ltr; unicode-bidi: embed"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt; DIRECTION: ltr; unicode-bidi: embed"&gt;The last is a significant improvement over the plain vanilla browser coding but you are still writing your application in a very poor environment with very poor developer tools and your end result is a JavaScript application vulnerable in terms of security, manageability and your IP protection.&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt; DIRECTION: ltr; unicode-bidi: embed"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt; DIRECTION: ltr; unicode-bidi: embed"&gt;When you are writing enterprise applications which are actually business apps, the security, productivity, manageability and IP issues of AJAX development are becoming a real turn off. Applying SSL to your application can only bring you so far, as you are still exposing server services for the client to consume through plain old JavaScript and running business logic which can easily be hijacked using a simple script debugger. Also the different AJAX frameworks still in most cases force you to write your application mainly in client side JavaScript code which has its limits and productivity issues. The most obvious issue regarding JavaScript UI programming is lack of design time capabilities but that is only the tip of the iceberg.&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt; DIRECTION: ltr; unicode-bidi: embed"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt; DIRECTION: ltr; unicode-bidi: embed"&gt;Server based AJAX is a recent addition to the AJAX frameworks arena and it basically changes the way we think about AJAX applications. It introduces a concept of server based computing for web applications where your code runs entirely on the server and reflecting changes to the client. This concept is used widely in remote desktop or application streaming software, but has not been until now available for web developers.&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt; DIRECTION: ltr; unicode-bidi: embed"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt; DIRECTION: ltr; unicode-bidi: embed"&gt;The server based AJAX concept provides great benefits for developers in terms of productivity, manageability and usability. Currently the only available framework implementing full server based AJAX is &lt;a title="" target="_blank" href="http://www.visualwebgui.com"&gt;Visual WebGui&lt;/a&gt; (&lt;a href="http://www.visualwebgui.com/"&gt;&lt;font color="#800080"&gt;http://www.visualwebgui.com&lt;/font&gt;&lt;/a&gt; ) which provides full WinForms like API and design time capabilities for developing web applications. While it sounds very much like Google's GWT it is not, as it does not serialize the application code to JavaScript but rather uses it in runtime on the server and reflecting the UI to the client. This means that you have what can be called an "empty client" that is managed entirely by the server. Client events are sent to the server that in turn, return its update commands to the client reflecting changes made to the UI on the server. This process can be optimized in various scenarios explicitly to reduce the amount of server callbacks and bandwidth consumption, making the end result as responsive as standard AJAX applications.&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt; DIRECTION: ltr; unicode-bidi: embed"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt; DIRECTION: ltr; unicode-bidi: embed"&gt;There are some down sides to the server based AJAX concept, mainly in terms of scalability, as you are utilizing a server session to run your application but when applied to enterprise applications, rather then Amazon sized sites, you get a very nice ROI that you would not get in any other architecture. In terms of responsiveness and performance one would think that this concept lacks, but the opposite is the case, as the server uses fewer resources in terms of CPU and IO as it does not have to receive/return large blobs and most important does not need to construct and deconstruct the application classes on every request.  Also as said before there are many optimizations that can be applied to reduce server callbacks and bandwidth consumption.&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt; DIRECTION: ltr; unicode-bidi: embed"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt; DIRECTION: ltr; unicode-bidi: embed"&gt;The server based AJAX concepts may just be the solution for enterprise AJAX applications as it provides these applications with the best of both worlds. Having a responsive, rich AJAX UI that behaves pretty much like desktop UI, but still maintaining the productivity, IP protection, and security of running the application on server side provides a compelling offering for enterprises. &lt;/div&gt; &lt;img src="http://geekswithblogs.net/gizmox/aggbug/112081.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Guy Peled</dc:creator>
            <guid>http://geekswithblogs.net/gizmox/archive/2007/04/29/112081.aspx</guid>
            <pubDate>Sun, 29 Apr 2007 08:25:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/gizmox/comments/112081.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/gizmox/archive/2007/04/29/112081.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/gizmox/comments/commentRss/112081.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/gizmox/services/trackbacks/112081.aspx</trackback:ping>
        </item>
        <item>
            <title>Design patterns as a way of life</title>
            <link>http://geekswithblogs.net/gizmox/archive/2006/04/14/75141.aspx</link>
            <description>&lt;P&gt;&lt;A href="http://www.dofactory.com/Patterns/Patterns.aspx"&gt;Here &lt;/A&gt;is a nice site showing the most common design patterns.&lt;/P&gt; &lt;img src="http://geekswithblogs.net/gizmox/aggbug/75141.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Guy Peled</dc:creator>
            <guid>http://geekswithblogs.net/gizmox/archive/2006/04/14/75141.aspx</guid>
            <pubDate>Fri, 14 Apr 2006 07:12:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/gizmox/comments/75141.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/gizmox/archive/2006/04/14/75141.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/gizmox/comments/commentRss/75141.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/gizmox/services/trackbacks/75141.aspx</trackback:ping>
        </item>
        <item>
            <title>WebGui gateways bridge WinForms object module and web development</title>
            <link>http://geekswithblogs.net/gizmox/archive/2006/04/14/75140.aspx</link>
            <description>&lt;P&gt;Visual &lt;A title="" href="http://www.visualwebgui.com" target=_blank&gt;WebGui&lt;/A&gt; basically leverages the WinForms object module to give you a new development experience developing rich internet applications like outlook web access. This object module by say covers 90% of what you need in order to create a outlook web access application. So how do we bridge the WinForms object module and&amp;nbsp; web development ? through the concept of Gatways.&lt;/P&gt;
&lt;P&gt;Every &lt;A title="" href="http://www.visualwebgui.com" target=_blank&gt;WebGui&lt;/A&gt; component can declare it self as a &lt;A title="" href="http://www.visualwebgui.com" target=_blank&gt;WebGui&lt;/A&gt; gateway using the IGatewayControl interface, this allow controls to declare virtual URLs that are handles by the control by declaring actions. The IGatewayControl contains on method that gets a action name and should return a gateway handler. The gateway handler processes the request in the exact same way as an HTTP handler does which actually means that you can also use HTTP handlers (By this you can actually provide embedded ASPX pages that are hosted by the WinForms object module and can interact with that module making the interoperability between &lt;A title="" href="http://www.visualwebgui.com" target=_blank&gt;WebGui&lt;/A&gt; and legacy applications easy.&lt;/P&gt;
&lt;P&gt;Other places you can use gateways:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Providing HTML based content to IFRAMES. 
&lt;LI&gt;Providing a printable version of the current view. 
&lt;LI&gt;Interacting with applets,flash,activeX and so on. 
&lt;LI&gt;Using ASP.NET ready controls such as Janus grid. 
&lt;LI&gt;Downloading files.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;I will upload a video showing the use of gateways soon.&lt;/P&gt; &lt;img src="http://geekswithblogs.net/gizmox/aggbug/75140.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Guy Peled</dc:creator>
            <guid>http://geekswithblogs.net/gizmox/archive/2006/04/14/75140.aspx</guid>
            <pubDate>Fri, 14 Apr 2006 06:56:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/gizmox/comments/75140.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/gizmox/archive/2006/04/14/75140.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/gizmox/comments/commentRss/75140.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/gizmox/services/trackbacks/75140.aspx</trackback:ping>
        </item>
        <item>
            <title>Observer Design Pattern </title>
            <link>http://geekswithblogs.net/gizmox/archive/2006/04/10/74728.aspx</link>
            <description>&lt;P&gt;I am currently working on a MMC like application (over &lt;A title="" href="www.visualwebgui.com" target=_blank&gt;WebGui&lt;/A&gt; which is kind of WinForms for web) that is going to be a DNN admin. I am using the observer design pattern through an object wrapper called ItemData which is pretty much a wrapper objects that has events on changes made to the wrapped object.&lt;BR&gt;&lt;BR&gt;I have also created a ItemsData class that is a wrapper for a collection of ItemData that has also events on changes made to the wrapped collection. This is way when you have a form that changes a property that is also used to a TreeNode text, when you change the property through the wrapper in one place you get an event in the TreeNode that is used to change the text of the TreeNode.&lt;BR&gt;&lt;BR&gt;This design pattern dramatically reduces the amount of spaghetti code that is usually used in this kind of applications, cause you have objects that do what they need to do and the events are used to other objects to do what they have to do without direct interaction between them.&lt;/P&gt;
&lt;P&gt;I have taken the design pattern a bit further by providing each data object a referrers counter and that way I can release unused data. Lets say I have a tree like object module and I am using and as I navigate I have a treeview that has sub folders generated from a collection and also a tab of items that is generated from the same collection. When I destroy the tab I want to be able to detach from the collection I have been observing and if it is not referenced I wan the collection to be disposed. That way if I have a treenode that is not expanded and the tab was the only UI element&amp;nbsp;that was observing the collection I know I can destroy that collection.&lt;/P&gt;
&lt;P&gt;Any way I am a true believer of the observer pattern... great apps needs to be observed....&lt;/P&gt; &lt;img src="http://geekswithblogs.net/gizmox/aggbug/74728.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Guy Peled</dc:creator>
            <guid>http://geekswithblogs.net/gizmox/archive/2006/04/10/74728.aspx</guid>
            <pubDate>Mon, 10 Apr 2006 16:08:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/gizmox/comments/74728.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/gizmox/archive/2006/04/10/74728.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/gizmox/comments/commentRss/74728.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/gizmox/services/trackbacks/74728.aspx</trackback:ping>
        </item>
    </channel>
</rss>
