<?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>Goutamdey.com &#187; Coding</title>
	<atom:link href="http://goutamdey.com/blog/coding/feed/" rel="self" type="application/rss+xml" />
	<link>http://goutamdey.com</link>
	<description>Web development blog from Kolkata(Calcutta),India</description>
	<lastBuildDate>Thu, 07 Jan 2010 20:54:02 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>5 Javascript MVC Frameworks</title>
		<link>http://goutamdey.com/2010/01/02/5-javascript-mvc-frameworks-2/</link>
		<comments>http://goutamdey.com/2010/01/02/5-javascript-mvc-frameworks-2/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 06:17:43 +0000</pubDate>
		<dc:creator>goutam</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[MVC]]></category>

		<guid isPermaLink="false">http://goutamdey.com/?p=102</guid>
		<description><![CDATA[What is MVC?
In general when ever we talk about MVC we think about software engineering and design patterns which ease the life for a software developers. But MVC is not only a a design pattern for software engineering,  MVC is also a recommended pattern for HCI/Usability suggested by Jan Borchers in his book “A Pattern [...]]]></description>
			<content:encoded><![CDATA[<p><strong>What is MVC?</strong></p>
<p>In general when ever we talk about <a href="http://www.google.co.in/url?sa=t&amp;source=web&amp;ct=res&amp;cd=1&amp;ved=0CAgQFjAA&amp;url=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FModel%25E2%2580%2593view%25E2%2580%2593controller&amp;rct=j&amp;q=MVC&amp;ei=abM5S_O1EY-TkAWf5uyFCQ&amp;usg=AFQjCNEoEvCDLhz2Yph-XxbO1YhFwwXLIg" target="_blank">MVC </a>we think about software engineering and design patterns which ease the life for a software developers. But MVC is not only a a design pattern for software engineering,  MVC is also a recommended pattern for HCI/Usability suggested by <a href="http://hci.rwth-aachen.de/borchers" target="_blank">Jan Borchers</a> in his book “A Pattern Approach to Interaction Design” .</p>
<p><strong>Why we need it?</strong></p>
<p>In today’s world of software development <a href="http://en.wikipedia.org/wiki/Usability" target="_blank">usability</a> and <a href="http://en.wikipedia.org/wiki/Interaction_design" target="_blank">interaction design</a> considerations are inevitable. We all know about the buzz “<a href="http://en.wikipedia.org/wiki/Enterprise_social_software" target="_blank">Enterprise 2.0</a>” ( I will be posting some of my ideas on this very soon) and we just not think of an enterprise application without lots of big and really long forms. As web has become a ‘de facto’ standard for new breed of software&#8217;s in anyway we need to put a lot of client side validations(a hefty line of codes) and usability and UI tweaking for web forms.</p>
<p>Yes I can understand, no body wants to be remembered of those nightmares, but it is inevitable in any way. So please consider using a MVC here even for this forces of software designing.</p>
<p>We have ‘views’ as forms, we have ‘models’ and business/validation logic  and if we could glue-in the ‘controller’ we are done to solve our puzzle by using MVC in javascripts.</p>
<p>Going more into the frameworks available as of today is out of the scope of this article but I would like to put more in this subject when ever I get some more time to provide my readers a working samples to use and evaluate. For the time being the list of best(according to me) javascript MVC frameworks available for use.</p>
<h4><strong>SproutCore</strong></h4>
<p><a href="http://goutamdey.com/wp-content/uploads/2009/12/sproutecore.jpg"><img title="sproutecore" src="http://goutamdey.com/wp-content/uploads/2009/12/sproutecore_thumb.jpg" border="0" alt="sproutecore" width="504" height="254" /></a></p>
<p><strong><a href="http://www.sproutcore.com/home/" target="_blank">SproutCore</a></strong> is an open-source platform for building fast rich cloud applications on the web.  Specifically, the tools we develop are suitable for building large-scale applications that scale to many millions of users across many different devices.</p>
<h4><strong>PureMVC framework for Javascript</strong></h4>
<p><a href="http://goutamdey.com/wp-content/uploads/2009/12/puremvc.jpg"><img title="puremvc" src="http://goutamdey.com/wp-content/uploads/2009/12/puremvc_thumb.jpg" border="0" alt="puremvc" width="504" height="254" /></a></p>
<p><a href="http://darkstar.puremvc.org/" target="_blank">PureMVC</a> is a lightweight framework for creating applications based upon the classic Model-View-Controller design meta-pattern.<br />
This free, open-source framework is implemented in ActionScript 2 and 3, Java, Javascript and a number of other popular programming languages. This allows development on a wide variety of platforms.</p>
<h4><strong>CorMVC</strong></h4>
<p><a href="http://goutamdey.com/wp-content/uploads/2009/12/cormvc.jpg"><img title="cormvc" src="http://goutamdey.com/wp-content/uploads/2009/12/cormvc_thumb.jpg" border="0" alt="cormvc" width="504" height="254" /></a></p>
<p><a href="http://www.bennadel.com/resources/projects/cormvc/demo/index.htm#/home" target="_blank">CorMVC</a> stands for: <strong>C</strong>lient-<strong>O</strong>nly-<strong>R</strong>equired <strong>M</strong>odel-<strong>V</strong>iew-<strong>C</strong>ontroller, the application architecture held completely separate from server-side technologies. Ideal for single page application.</p>
<h4><strong>JavascriptMVC Javascript MVC framework based on JQuery.</strong></h4>
<p><a href="http://goutamdey.com/wp-content/uploads/2009/12/javascriptmvc.jpg"><img title="javascriptmvc" src="http://goutamdey.com/wp-content/uploads/2009/12/javascriptmvc_thumb.jpg" border="0" alt="javascriptmvc" width="504" height="254" /></a></p>
<p><a href="http://www.javascriptmvc.com/" target="_blank">JavaScriptMVC</a> is an open-source framework containing the best ideas in enterprise JavaScript development. It guides you to successfully completed projects by promoting best practices, maintainability, and convention over configuration.</p>
<h4><strong>Jamal</strong></h4>
<p><a href="http://goutamdey.com/wp-content/uploads/2009/12/jamal.jpg"><img title="jamal" src="http://goutamdey.com/wp-content/uploads/2009/12/jamal_thumb.jpg" border="0" alt="jamal" width="504" height="254" /></a></p>
<p><a href="http://jamal-mvc.com/" target="_blank">Jamal</a> is a set of conventions and small javascript libraries to achieve a complete separation of html, css and javascript in your web application. Jamal is built on jQuery and inspired by MVC frameworks like Ruby on Rails, CakePHP and its derivatives.</p>
]]></content:encoded>
			<wfw:commentRss>http://goutamdey.com/2010/01/02/5-javascript-mvc-frameworks-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java way of doing Ruby on Rails</title>
		<link>http://goutamdey.com/2006/12/11/java-way-of-doing-ruby-on-rails/</link>
		<comments>http://goutamdey.com/2006/12/11/java-way-of-doing-ruby-on-rails/#comments</comments>
		<pubDate>Mon, 11 Dec 2006 18:19:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Ruby On Rails (ROR)]]></category>

		<guid isPermaLink="false">http://goutamdey.gdzine.net/?p=6</guid>
		<description><![CDATA[New kid on the J2EE blocks, RomaFramework, no not another new framework for confusing you by adding your framework bookmarks.
Inspired by Ruby on Rails a new java based framework for Ajaxified Web based application development framework thatâ€™s can turn your heads with some cool features:

Roma it&#8217;&#8217;s totally based on POJO (Plain Old Java Objects)
True Object [...]]]></description>
			<content:encoded><![CDATA[<p>New kid on the J2EE blocks, <a href="http://romaframework.xwiki.com/xwiki/bin/view/Main/" target="_blank">RomaFramework</a>, no not another new framework for confusing you by adding your framework bookmarks.</p>
<p>Inspired by Ruby on Rails a new java based framework for Ajaxified Web based application development framework thatâ€™s can turn your heads with some cool features:</p>
<ul>
<li>Roma it&#8217;&#8217;s totally based on <strong><a href="http://romaframework.xwiki.com/xwiki/bin/view/Doc/POJO">POJO</a></strong> (Plain Old Java Objects)</li>
<li><strong>True Object Oriented vision</strong> in all aspects: from the model to the view and to the repository/database</li>
</ul>
<ul>
<li>Encourage the use of the <strong><a href="http://romaframework.xwiki.com/xwiki/bin/view/Doc/DDD">Domain Driven Model (DDD)</a></strong> approach: let&#8217;&#8217;s think to the <strong><a href="http://romaframework.xwiki.com/xwiki/bin/view/Doc/Domain">Domain</a></strong>: the other things are secondary <strong><a href="http://romaframework.xwiki.com/xwiki/bin/view/Doc/Aspects">Aspects</a></strong></li>
<li>It works with <strong><a href="http://romaframework.xwiki.com/xwiki/bin/view/Doc/Conventions">Conventions</a></strong> ala <strong><a href="http://www.rubyonrails.org/">Ruby On Rails</a></strong>: much less code to write and maintain and more uniformity in projects</li>
<li>Applications are <strong>fully portable across frameworks</strong> since the application is developed using POJOs. For example you can switch between JDO and EJB3 PersistenceAspect without changing code unless you use directly the aspect implementation (see below)</li>
<li>Allow to makes things dirty: you can use <strong>directly</strong> the target framework taking the full advantage of the implementation power</li>
<li>You can use the already developed <strong><a href="http://romaframework.xwiki.com/xwiki/bin/view/Doc/Modules">Modules</a></strong> (CRUD, User&amp;Profiles, etc.) and extend their if you need</li>
<li>The <strong>skill</strong> requested to build application can be lower than required for modern Java Web Applications: minor cost of development</li>
<li>Roma is based on <strong><a href="http://www.springframework.org">Spring Framework</a></strong> as <a href="http://today.java.net/pub/a/today/2004/02/10/ioc.html">IoC container</a>, but you can use another one if you want.</li>
<li>The supported frameworks and tools are continuously update on <a href="http://romaframework.xwiki.com/xwiki/bin/view/Doc/Modules">Modules</a> page.</li>
</ul>
<p>You can have the pleasure of Ajax web front-end with the help of Echo framework and if you are too much conservative and do not want to break out your tie with JSP you can do that too with this framework.</p>
<p>Itâ€™s worth checking this framework before going for any other RAD framework in J2EE space.</p>
]]></content:encoded>
			<wfw:commentRss>http://goutamdey.com/2006/12/11/java-way-of-doing-ruby-on-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DOM caching without AJAX</title>
		<link>http://goutamdey.com/2006/05/12/dom-caching-without-ajax/</link>
		<comments>http://goutamdey.com/2006/05/12/dom-caching-without-ajax/#comments</comments>
		<pubDate>Fri, 12 May 2006 19:56:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Caching]]></category>
		<category><![CDATA[DOM]]></category>

		<guid isPermaLink="false">http://goutamdey.gdzine.net/?p=15</guid>
		<description><![CDATA[In my present company we are having huge enterprise java web app for our client. In the web UI of this app. we have provided them a good â€œOO Javascriptâ€ for their dropdown navigation.
Dropdown navigation system was written in such a way so that it can fetch navigational data from database after implementation of proper [...]]]></description>
			<content:encoded><![CDATA[<p>In my present company we are having huge enterprise java web app for our client. In the web UI of this app. we have provided them a good â€œOO Javascriptâ€ for their dropdown navigation.</p>
<p>Dropdown navigation system was written in such a way so that it can fetch navigational data from database after implementation of proper access control.</p>
<p><span id="more-8"></span></p>
<p>And after 2 years the navigation data are huge (over 5 level deep with so many children). And as a result for each request and response phase it has to re render all the elements dynamically and thus slowing down page rendering process.</p>
<p>We had very few option at this point of the project life cycle. We were caching the menu tree at server-side (session) but no other option to cache the rendering process.</p>
<p><!--more--></p>
<p>We were looking for some technique to cache the rendering process ( DOM creation) in rendering the response phase except using frame based navigation. But for a Dropdown navigation system we have developed non-frame based navigation.</p>
<p>So options may be Flash based menu or Ajax call to server. Flash option was not a good solution because anyway we had to re-render the thing on every page refresh.</p>
<p>So the option remains is Ajax. But we were not in a position to take the risk of changing server side code and for security reason unable to introduce DWR for enabling Ajax.</p>
<p>So finally an old trick paid off. Frame is there as â€œtop barâ€ for other notification system and so.</p>
<p>So I have started exploring the code and found that after first rendering menu code is generating elements which is cacheable (container.innerHTML) but the problem is when you attach events dynamically to an object it is not going to have any foot-print in your rendered DOM.</p>
<p>So we have just cached the DOM tree in the top frame and used it next time onwards with few â€œdynamic event attachmentâ€ codes with it.</p>
<pre>    if(!top.topFrame.menubarcache.length){ // check for first time rendering from server            }else {         createMenuBarAndChildrenContainer(); // create the containers        var obj1= document.getElementById(''s1'');         var obj2= document.getElementById(''menuChildren'');                 obj1 = top.topFrame.menubarcache; // storing from cache        obj2 = top.topFrame.menuchildrencache; //stroing from cache        attachevents(obj1); // attach events dynamicaaly        attachevents(obj2); // attach events dynamicaaly    }</pre>
]]></content:encoded>
			<wfw:commentRss>http://goutamdey.com/2006/05/12/dom-caching-without-ajax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.268 seconds -->
