Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Tapestry Wiki" for 
change notification.

The following page has been changed by ErikVullings:
http://wiki.apache.org/tapestry/SuccessStories

------------------------------------------------------------------------------
  = Tapestry Success Stories =
  
  Come on you lurkers! Post your stories here!
+  * ChoosingTapestry
+  * MovingToTapestry
  
+ == DocsDB/4 ==
+ DocsDB/4 is a professional relational document management, workflow and 
archiving system through a web-based interface. See http://www.docsdb.com
+ 
+ Tapestry is a very powerful, practical and well build framework on which our 
entire DocsDB/4 web application is based. DocsDB/4 is a real heavy-duty web 
application, performance, maintainability and concurrency are very important 
and Tapestry helps in every way. DocsDB/4 consists of many pages with 90% 
dynamic content, complex business logic and huge forms, nothing like a regular 
web page.
+ 
+ Developing web applications with Tapestry felt like home for the Java and 
HTML programmers because of the strict separation of the presentation and the 
business layers. All other aspects of Tapestry, especially the component-based 
architecture, make up for clean, reusable and maintainable code! Tapestry is 
nothing like we ever experienced before developing a web application!
+ 
+ 
+ == TheServerSide.com ==
+ 
+ As of a couple of weeks ago, [http://theserverside.com TheServerSide.com] (as 
well as !TheServerSide.net) are running on Tapestry and HiveMind.  The work was 
done by myself, Howard Lewis Ship.  The majority of users
+ did not see a difference, beyond a few refinements to the UI here and there.
+ 
+ Performance has been excellent, though a true before and after comparison 
would not be possible, since the backend database access changed from WebLogic 
CMP entity beans to Solarmetric Kodo JDO at the same time.  Additionally, the 
application runs entirely stateless (no !HttpSession), though a good bit of 
state is stored in hidden form fields.
+ 
+ It was primarily a one-man job; the bulk of the effort was dealing with the 
backlog of existing JSPs containing content (such as articles, interviews, and 
so forth).   In many cases, these had to be converted into partial HTML files 
that are included as part of a Tapestry page.
+ 
+ The client is completely thrilled by the end results, in terms of performance 
and the promise of vastly improved functionality.  Expect to see more detailed 
reports on !TheServerSide.com.
+ 
+ == partnermine.com ==
+ 
+ '''[http://partnermine.com/ partnermine.com]''' is a new dating site with the 
goal to stand out of the jungle of bad dating sites that are out there. Due to 
the nature of our very detailed user profiles and search engine we were faced 
with rather big HTML forms that even repeated in large parts on three or more 
pages. We started out with Struts because it sounded like the standard tool for 
the job, but it was such a pain, and the amount of duplicate and dumb glue code 
was just not standable. Maintainability would have been near to impossible 
without introducing errors. When we looked for alternatives Tapestry quickly 
became our favourite and soon after the winner, especially because of the 
brilliant component model that helped us to separate our pages into reusable 
parts, and we are well rid of duplicate code - we edit once and it changes 
everywhere.
+ 
+ It took us maybe 3-4 weeks to get properly into Tapestry and convert all our 
old Struts code to Tapestry. It was quite a learning curve (though the Struts 
one wasn't exactly fun either) and threw us apparently(!!) back by a month. But 
I'm certain that in the end it helped us to reduce total development time. We 
have such a beautifully clean project now - and it's easily maintainable too! 
It's just a pleasure to work with it and I don't even want to think of the 
nightmares that Struts or similar frameworks would have given us if we had gone 
the full way with them.
+ 
+ We are very happy with the efficiency and productivity Tapestry gives us, and 
feel that other frameworks would have required considerably more time and/or 
staff to accomplish what we have now.
+ 
+ So, if you're in the process of evaluating what tool is the best for you, 
come to '''[http://partnermine.com/ partnermine.com]''', have a look around, 
and enjoy the wonderful world of Tapestry.
+ 
+ == Intellidos Limited ==
+ 
+ === Our Application ===
+ 
+ '''[http://www.intellidos.com/ IntellidosTM]''' have produced a web served 
data 
+ integration tool that compiles a dossier containing all the known data about 
a 
+ specific entity on a web page and provides hyperlinks to other related 
+ entities. '''[http://www.intellidos.com/products/hyperdossier.htm 
HyperDossierTM]''' 
+ is designed to allow users to browse and explore large collections of 
+ corporate data through an intuitive, easy-to-use web interface. In 
+ addition, '''[http://www.intellidos.com/products/queryconstructor.htm 
QueryConstructorTM]''' 
+ allows users to create complex, cross-domain ad-hoc queries against this 
space 
+ to search for entities with specific properties. 
'''[http://www.intellidos.com/products/hyperdossier.htm HyperDossier]''' groups 
properties into 
+ reports and uses a file browser-like tree to allow uses to select which 
+ combination of properties to show. 
+   
+ === Quick Tour ===
+ 
+ The first demo gives a  general 
+ tour of '''[http://www.intellidos.com/products/hyperdossier.htm 
HyperDossier]'''  (and 
'''[http://www.intellidos.com/products/queryconstructor.htm 
QueryConstructor]''') and located at 
+ 
'''http://www.intellidos.com/viewlets/HyperDossierGeneral_viewlet_swf.html'''. 
+ It shows how collated information about small molecules, assays, proteins, 
people and teams is 
+ displayed and cross linked.
+   
+ The second demo gives you an 
+ insight on how we used '''Tapestry'''
+ to implement wizards by showing how a 
+ new report is created by an administrator. This demo is located  at
+ '''http://www.intellidos.com/viewlets/ReportCreation170804_viewlet_swf.html 
'''.
+ 
+ === Technology ===
+ 
+ Before undertaking 
+ this development we evaluated a number of Java technologies to determine 
which 
+ one(s) suited our needs best. Our previous experience was in developing 
+ large, complex, component-based systems with Swing GUIs and a strong MVC 
+ architecture. JSP was rejected very early and then Struts, Turbine and 
+ '''Tapestry''' were evaluated by 
+ writing quick prototypes. As might be expected Struts produced working 
+ results very quickly but the code was found to be harder to maintain in 
larger 
+ systems due to the lack of components and a clear separation of MVC.
+ While Turbine provided a good controller model it was found to be a little 
bit 
+ too low level for our needs and did not provide its own view layer.
+   
+ '''Tapestry''' was found to be quite difficult to get into at 
+ first and the 'quick' prototype took longer than expected. However, this was 
+ before Howard M. Lewis Ship published '''[http://www.manning.com/lewisship/ 
Tapestry in Action]''' which 
+ makes learning much easier. Once the initial learning curve had been overcome 
+ we found that we could increasingly apply our Swing experience and the 
+ development speed accelerated. '''Tapestry''' offers a high degree of 
+ flexibility and functionality which helped us in our aim to build a rich 
+ Swing-like web GUI. The code was nicely structured using components and 
+ the familiar MVC pattern which greatly aided understanding, maintainability 
+ and the use of automated testing.
+ 
+ === Results ===
+ 
+ While '''Tapestry''' does have a fairly steep 
+ learning curve we have been delighted with the results. As you can see 
+ from the links the product looks good and has a high degree of GUI 
+ interactivity. What is not so obvious is that the GUI has gone through 
+ several evolutions and the code is still maintainable despite this. This 
+ alone should be enough to recommend '''Tapestry''' for any serious ongoing 
software 
+ engineering project.
+   
+ A demo of our products can be 
+ found on our website at '''[http://www.intellidos.com www.intellidos.com]'''
+ 
+ 
+ 
+ == Thomson - Compu-Mark ==
+ 
+ At Compu-Mark, we started using Tapestry as our default web framework for all 
our on-line services in August 2003.
+ We first did an evaluation on the available/popular frameworks, and the 
refreshing new concept (using components) of Tapestry made us decide to use it.
+ 
+ The project on which we used it first, was composed out of 3 developers of 
which none had prior experience with Java nor web-development. They were all 
experienced C++ developers.  Learning to do web-development in Java was 
expected to be a challenge, but in fact Tapestry lowered to barrier: there is 
HTML to do the layout, and there is Java to do the logic.  Of course, some 
experience needed to be build up in wiring it together.
+ 
+ By now, 4 Tapestry-based B2B applications are launched with success.  
+ If we had to choose a web-framework again, it would again be Tapestry.
+ 
+ Thanks Howard!
+ 
+ 
+ 
+ == US International Trade Commission EDIS Search Application ==
+ 
+ I had known of Tapestry for over a year when I found myself in the lead 
position on the ground floor of a project for the USITC. The two sub-projects 
were
+  * A back-end content feed system for moving public documents to a Web server 
and indexing them along with their meta-data in a search engine
+  * A public Web front-end for the above-mentioned search engine
+ 
+ Initially, the assumption was that another experienced developer would handle 
the back-end system alone and I would work with a junior (I don't like such 
titles, but it's easier than typing ''less-experienced'') developer to create 
the Web app. It is worth mentioning that this would have been a mentoring 
effort for me as the junior developer had '''''absolutely no professional Java 
experience'''''.
+ 
+ I had initially dismissed Tapestry due to the apparent steep learning curve. 
However, after an unsuccessful attempt at using 
[http://www.opensymphony.com/webwork/ WebWork], I decided to experiment with 
Tapestry by asking the junior developer to go through Kent Tong's excellent 
''[http://www2.cpttm.org.mo/cyberlab/softdev/tapestry/tutorial1/GettingStartedWithTapestry.html
 Getting Started with Tapestry]'' Tutorial. Not only did he get through the 
tutorial just fine, but I made some encouraging observations:
+ 
+  1. '''He was having fun.''' I frequently caught this otherwise 
highly-composed imperturbable man exclaiming "Yes!" upon a successful 
mouse-click.
+  2. '''He took personal initiative in his work.''' He figured out how to set 
up a Tapestry environment in Eclipse using Spindle and began development of our 
production app without a break after working on the tutorial for only 2 or 3 
days.
+  3. '''He became resourceful.''' After purchasing 
[http://www.amazon.com/exec/obidos/tg/detail/-/1932394117/103-7792846-6517465?v=glance
 Tapestry in Action], he actually created his own custom component and got on 
with form field validation with little to no assistance.
+  4. '''He cleanly integrated with the search engine.''' We exposed the search 
engine's API calls as [http://www.springframework.org/ Spring] beans. The 
distinction between the controller and model could not be clearer. I cannot 
even think of how the line between these could be blurred.
+ 
+ As it happened, in less than 3 weeks the back-end task turned out to be a 
great deal more complex and demanding than initially anticipated. So, I had to 
focus almost 100% of my time on it and the junior developer was tasked with 
making a solo attempt at creating the front end. He did it. The project has 
been a resounding success.
+ 
+ Tapestry components just work - no questions asked. I disagree with the 
statements alluding to a steep and time-consuming learning curve. Tapestry is 
markedly different from [http://struts.apache.org/ Struts] or 
[http://www.opensymphony.com/webwork/ WebWork], which are perhaps more 
intuitive as they resemble extensions of the application-level protocol (HTTP) 
of the TCP stack. However, we have found great advantage in using a framework 
which is divorced from this paradigm. We did not have to come up with any 
unexpected or unnatural extensions, and a single consistent development pattern 
facilitated productivity and developer communication.
+ 
+ It would be unfair to credit our success exclusively to Tapestry and leave 
the brilliance, talent and work ethic of our junior developer unrecognized. 
However, I sincerely believe that the choice of Tapestry was catalytic in 
activating these attributes. This is invaluable to someone like me, to whom 
software development is a people-centric endeavor.
+ 
+ Our client is sold on Tapestry as well, and it will be a key tool in our 
organization's efforts going forward. You may have a look at our application 
[http://searchapp.usitc.gov/edis3 here].
+ 
+ Regards,
+ 
+ Atif Faridi
+ 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to