<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1710870327809883645</id><updated>2011-07-07T18:20:12.988-07:00</updated><title type='text'>Java Server Faces best practices</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://myknowledge4all.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1710870327809883645/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://myknowledge4all.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Meraj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_Ox_K0NsRpnk/TAPHLserokI/AAAAAAAAAIk/JYFvZBkoX7Y/S220/Picture+069-1.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1710870327809883645.post-2164034300252491655</id><published>2010-07-22T03:52:00.000-07:00</published><updated>2010-08-20T07:59:28.524-07:00</updated><title type='text'></title><content type='html'>&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1710870327809883645-2164034300252491655?l=myknowledge4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myknowledge4all.blogspot.com/feeds/2164034300252491655/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://myknowledge4all.blogspot.com/2010/07/great-career-opportunities.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1710870327809883645/posts/default/2164034300252491655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1710870327809883645/posts/default/2164034300252491655'/><link rel='alternate' type='text/html' href='http://myknowledge4all.blogspot.com/2010/07/great-career-opportunities.html' title=''/><author><name>Meraj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_Ox_K0NsRpnk/TAPHLserokI/AAAAAAAAAIk/JYFvZBkoX7Y/S220/Picture+069-1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1710870327809883645.post-9105701198284950316</id><published>2010-06-05T04:53:00.000-07:00</published><updated>2010-06-05T04:58:18.866-07:00</updated><title type='text'>Java Server Faces best practices</title><content type='html'>&lt;p&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:10pt;"  &gt;While working on a Java™Server Faces (JSF) project for last 3+ years, I had  the opportunity to use Facelets. What I most liked about Facelets was that  it let create reusable composition components. Its really great advantage of converting a simple JSP into reusable component. I personally think if  we don’t use Facelets with JSF, we might not get the most out of the JSF.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:10pt;"  &gt;There might be serious problem from performance perspective, because of  mismatch&lt;/span&gt;&lt;/span&gt; between &lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:10pt;"  &gt;JSP and JSF development. I would recommend to go through&lt;/span&gt;&lt;/span&gt;  &lt;b&gt;&lt;span style="font-weight: bold;"&gt;“&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=";font-family:Arial;font-size:78%;"  &gt;&lt;span style="font-weight: bold;font-family:Arial;font-size:9pt;"  &gt;Improving  JSF by Dumping JSP&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-weight: bold;font-family:Arial;" &gt;” &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="MsoHyperlink"&gt;&lt;u&gt;&lt;span style=";font-family:Arial;font-size:85%;color:blue;"   &gt;&lt;span style=";font-family:Arial;font-size:10pt;"  &gt;&lt;a rel="nofollow" target="_blank" href="http://onjava.com/lpt/a/4919"&gt;http&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:12pt;"&gt;://&lt;/span&gt;&lt;/span&gt;onjava&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:12pt;"&gt;.com/lpt/a/&lt;/span&gt;&lt;/span&gt;4919&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-weight: bold;font-family:Arial;" &gt;  &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:Arial;"&gt;by &lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:10pt;"  &gt;&lt;a rel="nofollow" target="_blank" href="http://onjava.com/pub/au/138"&gt;Hans&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:12pt;"&gt; &lt;/span&gt;&lt;/span&gt;Bergsten&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:Arial;"&gt;, author of &lt;/span&gt;&lt;/span&gt;&lt;span class="MsoHyperlink"&gt;&lt;u&gt;&lt;span style=";font-size:85%;color:blue;"  &gt;&lt;span style="font-size:10pt;"&gt;&lt;a rel="nofollow" target="_blank" href="http://www.oreilly.com/catalog/jsvrfaces/"&gt;JavaServer&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style=";font-family:Arial;font-size:12pt;"  &gt;  &lt;/span&gt;&lt;/span&gt;Faces&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:Arial;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="line-height: 150%;"&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span style="line-height: 150%;font-size:12pt;" &gt;JSF is  a stateful UI component based framework. To maintain the state of components, JSF has to create and  maintain a tree for the components in the server. The situation would be worst if  screen is very complex and having too many UI elements (JSF component). If  these trees are not controlled there could be memory leakage and excess consumption  of memory by JSF Component tree only.  JSF is very easy to use and  implement in any project. But the framework is very complex and if we don’t understand  the complexity, there could be serious issue in development/maintainers and  in performance and scalability. So I would recommend have at least some  experts in JSF who can work on optimization of usage of JSF in the project. There  could be different area where we need to be very careful while using JSF.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;ol style="margin-top: 0in;" start="1" type="1"&gt;&lt;li class="MsoNormal" style="margin-top: 0in; margin-bottom: 0.0001pt; text-align: justify;"&gt;&lt;b&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span style="font-weight: bold;font-size:12pt;" &gt;Short      component Id&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ol&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; line-height: 150%;"&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span style="line-height: 150%;font-size:12pt;" &gt;When a HTML page is being rendered by JSF, a client IDs is being generated as  the HTML ID. This client ID is the ID of the component itself prefixed with IDs  that are inherited from a hierarchy of naming components that contain this  component. All such IDs are separated by colons to form the client component ID,  example&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.75in; line-height: 150%;"&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span style="line-height: 150%;font-size:12pt;" &gt;id="Form:tabs:0:datatable:0:_id283"&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style="margin-left: 0.75in; line-height: 150%;"&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span style="line-height: 150%;font-size:12pt;" &gt;Because these prefixes are being used repeatedly in the HTML pages, the network  traffic can be reduced by shortening this prefixes. This will reduce the amount  of data to be transferred. For examples:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;ol style="margin-top: 0in;" start="2" type="1"&gt;&lt;li class="MsoNormal" style="margin-top: 0in; margin-bottom: 0.0001pt; text-align: justify;"&gt;&lt;b&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span style="font-weight: bold;font-size:12pt;" &gt;Facelets      for dynamic includes&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ol&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; line-height: 150%;"&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span style="line-height: 150%;font-size:12pt;" &gt;Facelets integration has a great feature called 'dynamic' includes, which allows  the developer to conditionally control what tag content is compiled into the  JSF component tree. &lt;ui:include src="%E2%80%9D#%7B..%7D%E2%80%9D/"&gt; can be used to dynamically include different content into the page depending on a bean  property. &lt;/ui:include&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 0.75in; line-height: 150%;"&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span style="line-height: 150%;font-size:12pt;" &gt;If this technique is not used, all tag content will be compiled into the  component tree. The advantage of using the dynamic Facelets include mechanism is  that the resulting JSF component tree can be made much smaller, consuming less server-side memory. Minimizing the size of the JSF component tree can  have a large effect on server-side memory consumption as the JSF component tree usually accounts for the majority of memory consumed in an application.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;ol style="margin-top: 0in;" start="3" type="1"&gt;&lt;li class="MsoNormal" style="margin-top: 0in; margin-bottom: 0.0001pt; text-align: justify;"&gt;&lt;a rel="nofollow" name="_Toc251692874"&gt;&lt;b&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span style="font-weight: bold;font-size:12pt;" &gt;Avoid component bindings&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;b&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ol&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; line-height: 150%;"&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span style="line-height: 150%;font-size:12pt;" &gt;Component binding, easy and sometimes useful represents anti-pattern in JSF  development, as it couples the view to the model in the application. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style="margin-left: 0.75in; line-height: 150%;"&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span style="line-height: 150%;font-size:12pt;" &gt;There are several things to consider when using component bindings. First,  component bindings make it very difficult to refactor JSF pages. As the components  are tied to the model, a change to the page may directly affect the model,  and/or also require changes to the managed bean used for the binding.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style="margin-left: 0.75in; line-height: 150%;"&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span style="line-height: 150%;font-size:12pt;" &gt;The use of component bindings may also have the negative side-effect of possibly causing &lt;span style="border-bottom: 2px dotted rgb(54, 99, 136); cursor: pointer;" class="yshortcuts" id="lw_1275738702_0"&gt;memory leaks&lt;/span&gt;  with component tree management with Facelets and JSF.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;ol style="margin-top: 0in;" start="4" type="1"&gt;&lt;li class="MsoNormal" style="margin-top: 0in; margin-bottom: 0.0001pt; text-align: justify;"&gt;&lt;b&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span style="font-weight: bold;font-size:12pt;" &gt;Avoid      using JSF components for static value.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ol&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; line-height: 150%;"&gt;&lt;span style=";font-family:Times New Roman;font-size:100%;"  &gt;&lt;span style="line-height: 150%;font-size:12pt;" &gt;Using pure &lt;span class="yshortcuts" id="lw_1275738702_1"&gt;HTML elements&lt;/span&gt;  for any static value will reduce the length of the element id. The size of tree will be reduced a lot.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1710870327809883645-9105701198284950316?l=myknowledge4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myknowledge4all.blogspot.com/feeds/9105701198284950316/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://myknowledge4all.blogspot.com/2010/06/while-working-on-javaserver-faces-jsf.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1710870327809883645/posts/default/9105701198284950316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1710870327809883645/posts/default/9105701198284950316'/><link rel='alternate' type='text/html' href='http://myknowledge4all.blogspot.com/2010/06/while-working-on-javaserver-faces-jsf.html' title='Java Server Faces best practices'/><author><name>Meraj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_Ox_K0NsRpnk/TAPHLserokI/AAAAAAAAAIk/JYFvZBkoX7Y/S220/Picture+069-1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1710870327809883645.post-1053909620821121040</id><published>2010-05-31T07:31:00.000-07:00</published><updated>2010-05-31T07:42:50.267-07:00</updated><title type='text'>ICEFaces for next generation web application</title><content type='html'>&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span class="blog-entry"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:10pt;"  &gt;Hi     All, my name is Mohammed Meraj; I have more than 9 years of  experience in     JAVA-J2EE platform. I have been working on JSF for more than 3.5  years.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:10pt;"  &gt;&lt;br /&gt; &lt;br /&gt;   &lt;span class="blog-entry"&gt;&lt;b&gt;&lt;span style="font-weight: bold;"&gt;JSF &lt;/span&gt;&lt;/b&gt;is      one of the fastest growing and stable UI component based framework  and &lt;b&gt;&lt;span style="font-weight: bold;"&gt;ICEFaces &lt;/span&gt;&lt;/b&gt;has  contributed a lot to make     JSF Component more rich and easy to use in complex projects. I had  started     using ICEFaces since 1.6.1 (2007) version.&lt;/span&gt;&lt;br /&gt;   &lt;span class="blog-entry"&gt;I really appreciate the kind of improvement  done in     the ICEFaces by ICEsoft guys. Honestly when I had started using &lt;b&gt;&lt;span style="font-weight: bold;"&gt;ICEFaces&lt;/span&gt;&lt;/b&gt;, it had lots of issues  and     struggle a lot (one fact could be due to new in JSF for me). But  when you     compare now, we can see a lot of differences in all respects whether  its     richness of UI components, performance efficient. Etc. most  important thing     is than even &lt;b&gt;&lt;span style="font-weight: bold;"&gt;ICEFaces &lt;/span&gt;&lt;/b&gt;is  open     source, ICEsoft is constantly working to improve stable the &lt;b&gt;&lt;span style="font-weight: bold;"&gt;ICEFaces &lt;/span&gt;&lt;/b&gt;component.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;   &lt;span class="blog-entry"&gt;I will share my experience with ICEFaces  and ICEsoft     for only selected area which was challenging in our projects. Rest  detail;     we can find in &lt;a rel="nofollow" target="_blank" href="http://icefaces.org/"&gt;&lt;span class="yshortcuts" id="lw_1275316875_0"&gt;http://icefaces.org.&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span class="blog-entry"&gt;&lt;b&gt;&lt;span style="font-weight: bold;"&gt;Ajax&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="blog-entry"&gt;&lt;b&gt;&lt;span style="font-weight: bold;"&gt; Based UI  Components:&lt;/span&gt;&lt;/b&gt;     IceFaces provides a rich web presentation environment for Java  Server Faces     (JSF) applications that enhances the standard JSF framework and  lifecycle     with AJAX-based interactive features. Recently ICEFaces have  introduced     composite components which have lot of real world rich component  that can     be easily fulfilling complex requirement.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;   &lt;span class="blog-entry"&gt;&lt;b&gt;&lt;span style="font-weight: bold;"&gt;For  standard     component please visit:&lt;/span&gt;&lt;/b&gt; &lt;a rel="nofollow" target="_blank" href="http://component-showcase.icefaces.org/component-showcase/showcase.iface"&gt;&lt;span class="yshortcuts" id="lw_1275316875_1"&gt;http://component-showcase.icefaces.org/component-showcase/sh      owcase.iface&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;   &lt;span class="blog-entry"&gt;&lt;b&gt;&lt;span style="font-weight: bold;"&gt;For  composite     component please visit: &lt;/span&gt;&lt;/b&gt;&lt;a rel="nofollow" target="_blank" href="http://composite-component-showcase.icefaces.org/icefaces-composite-comps-showcase/showcase.iface"&gt;&lt;span class="yshortcuts" id="lw_1275316875_2"&gt;http://composite-component-showcase.icefaces.org/icefaces-co      mposite-comps-showcase/showcase.iface&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;   &lt;span class="blog-entry"&gt;&lt;b&gt;&lt;span style="font-weight: bold;"&gt;Direct-2-DOM      (D2D):&lt;/span&gt;&lt;/b&gt; I like the most about ICEFaces is about D2D  rendering.     Let me explain a bit about Direct-2-DOM (D2D) rendering. ICEfaces  employs a     technique called 'Direct-2-DOM' rendering, or D2D for short, to  achieve     smooth incremental page updates to the browser. ICEfaces stores a  copy of     the DOM, which represents the browser presentation state in a &lt;span class="yshortcuts" id="lw_1275316875_3"&gt;tree     structure&lt;/span&gt;, on the server. When the user interacts with the  page, an  Ajax call may be made     to the server, resulting in a change to the application state, which  in     turn will cause the page to be re-rendered on the server. Once the  page is     re-rendered on the server, and before the response is sent back to  the     browser, ICEfaces differs the old and new DOM trees to create a DOM  update,     which comprises the essential changes to the page which need to be  sent     back to the browser. These DOM updates, when received by the  browser, are     then evaluated and the browser DOM is reconstructed and updated with  the     necessary changes. &lt;/span&gt;&lt;br /&gt; &lt;br /&gt;   &lt;span class="blog-entry"&gt;The benefit of D2D in that when ever any  field value     changed the dependent field update automatically, we don’t need to     explicitly refresh the dependent block this saves lot of code and     complexity an other important benefit we get is optimized server to  client     data transfer, only changed data is transfered from server to  client.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;   &lt;span class="blog-entry"&gt;&lt;b&gt;&lt;span style="font-weight: bold;"&gt;Concurrent  DOM     Views : &lt;/span&gt;&lt;/b&gt;ICEFaces also provide multi window concept  (Concurrent     DOM Views), where same screen can be access at same time. Let me  explain a     bit. In our project user can access same module more than once let  say user     wants open a screen to view some customer detail at the same time  user also     wants to create new customer detail, this could be easily possible  with the     help of Concurrent DOM Views concept of ICEFaces.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;   &lt;span class="blog-entry"&gt;&lt;b&gt;&lt;span style="font-weight: bold;"&gt;Preventing  Double     Submit:&lt;/span&gt;&lt;/b&gt; ICEFaces also handled one of the crucial and  important     requirement is preventing double submit. If this issue is not  handled in     any of the projects this could be serious issue from business  perspective.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style=";font-family:Arial;font-size:10pt;"  &gt;&lt;span style="font-weight: bold;"&gt;Ajax Push:&lt;/span&gt; For real time notification asynchronously  for the application users.&lt;br /&gt; &lt;br /&gt;   &lt;span class="blog-entry"&gt;&lt;b&gt;&lt;span style="font-weight: bold;"&gt;Rich  Themes:&lt;/span&gt;&lt;/b&gt;     ICEFaces also provide rich and standard set of themes e.g. rime, xp  and     royale.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;   &lt;span class="blog-entry"&gt;&lt;b&gt;&lt;span style="font-weight: bold;"&gt;Great  technical     support: &lt;/span&gt;&lt;/b&gt;A lot of forum and experts are there to support  you if     you stuck any where.&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;   &lt;span class="blog-entry"&gt;&lt;b&gt;&lt;span style="font-weight: bold;"&gt;Dont  miss my next     blog, on best practices and how to use JSF-ICEFaces in an optimized  way     from performance, scalability and maintainability perspective.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1710870327809883645-1053909620821121040?l=myknowledge4all.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://myknowledge4all.blogspot.com/feeds/1053909620821121040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://myknowledge4all.blogspot.com/2010/05/icefaces-for-next-generation-web.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1710870327809883645/posts/default/1053909620821121040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1710870327809883645/posts/default/1053909620821121040'/><link rel='alternate' type='text/html' href='http://myknowledge4all.blogspot.com/2010/05/icefaces-for-next-generation-web.html' title='ICEFaces for next generation web application'/><author><name>Meraj</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://3.bp.blogspot.com/_Ox_K0NsRpnk/TAPHLserokI/AAAAAAAAAIk/JYFvZBkoX7Y/S220/Picture+069-1.jpg'/></author><thr:total>0</thr:total></entry></feed>
