Tapestry Web Application Development Outsourcing
Technosoft has rich experience of creating large-scale enterprise applications using Tapestry (4.0). Following is a snapshot of our experience with Tapestry based applications.
Tapestry Pages and Framework Core Components
Being foundation of the framework the Tapestry page consists of all the page related UI and business logic ranging from persisting form values, listeners, interaction with other pages etc. We have created simply too complex UI pages with listeners and event handlers. These pages use most of components available in core framework libraries including but not limited to ActionLink, DirectLink, Image, Radio, Submit, Any, RadioGroup, Block, ExternalLink, Insert, TextField, Body, Foreach, LinkSubmit, Checkbox, Form, Select, DatePicker, PageLink, ServiceLink, Delegator, Hidden, PropertySelection etc. Depending upon the requirements and nature of page corresponding page java class implements listeners like PageBeginRenderListener and contains even handlers and other page processing methods. The page specification files (.page) files are accordingly tailored to declare embedded components, beans, properties etc for a page. Generating dynamic contents for the page are the important part of an application and this feature is implemented fully on the server side using page java class and zero code in HTML templates. Thus there is a clear separation of concerns (UI, Business logic, data) that makes maintenance easy and increases team productivity.
Contrib Library Components
Contrib. library is a collection of powerful add-on components for Tapestry contributed by the community. We have used the various control. components like DateField, PopupLink, MultiplePropertySelection, Table etc. Also, we have customized the Table component by updating source code to customize the navigational styles of the components.
Tapestry Custom Components
We have created custom, reusable components for Tapestry during the implementation of various applications. These components range from simple login components to complex GUIs, Search components, Menu, and menu bar components, portlet components, and Tree-like structures etc. These components are parameterized as well as self-sufficient and highly reusable.
Implementation of AJAX in Tapestry using TACOS
The Tacos library project provides components and Ajax behavior for the Tapestry framework. AJAX has been an essential ingredient of most of the application we developed. AJAX-based implementation is based upon components provided by TACOS library. The components used from this library include AjaxDirectLink, AjaxEventSubmit, AjaxForm, AjaxLinkSubmit, AjaxSubmit, Autocompleter, DatePicker etc.
Tapestry integration with other Frameworks
True benefits of IoC (Inversion of control) and DI (Dependency Injections) in the Tapestry framework are revealed when it is integrated with Spring. In our Tapestry development, we have successfully integrated and used Tapestry with frameworks like Spring, Hibernate and ACEGI using hive module. Tapestry services are exposed as Spring Beans that can be used anywhere by simply injecting through annotations. A role-based database dependent security framework is implemented through Tapestry integration with ACEGI framework. Similarly, the business logic layer is written as spring beans that use hibernate DAO classes to access the database.
Tapestry annotations are a handy feature to reduce code and write clear behavior. We have frequently used Tapestry annotations in applications. Various annotations used to consist of @Asset, @Bean, @InitialValue, @InjectObject,@InjectState, @Persist etc. These annotations not only control the way code should behave but also reduces LOC dramatically.
Tapestry Custom Services
We have written many Tapestry custom services as standalone functionality that is usually not page-specific. These services are highly reusable code injected in many pages where needed. Along with writing totally new services wrapper services are also written on existing Tapestry services to customize their behavior e.g. writing wrapper to Tapestry Reset service to avoid it called directly by users.
Pentaho Reporting Services
We have integrated and used the reporting services of Pentaho BI suite with Tapestry. Pentaho solutions are created for reports in various formats and these reports are made available to the user through the Tapestry interface.
Various other libraries and framework have been utilized in our Tapestry development to ease development and provide a rich feature to end users. This list includes Lucene for searching, POI used in reporting to access MS based file formats, JFreeChart, Log4J, XML Manipulation libraries, JS Calendar etc.
Technosoft has extensive Tapestry Spring and Hibernate experience. Hibernate and Spring frameworks. We have also done automatic Hibernate model generation using HibernateTools plug-in. Code quality is our basic ingredient and we have enforced this using various eclipse based plug-ins like checkstyle, CPD, Jalopy and CAP. Strict JDK 1.5 features are followed like enhanced loops, annotations etc.
Technosoft has worked on the above technologies for over two years. We are very confident that our Tapestry skills are superb and we can efficiently deliver quality work using Tapestry. In addition to Tapestry Technosoft has also worked on Struts, Struts2, Spring, Hibernate, Axis, Tiles, and GWT.
Technosoft can provide technical consultancy, further R&D services, as well as help in developing Tapestry based solutions at a very affordable price. We will be happy to work with you and save your IT team’s time on the learning curve and development effort.
Our dedicated teams of Microsoft and Sun Certified professionals are ready to help!
If you are having trouble implementing a similar project, send email to firstname.lastname@example.org and in the subject line enter, WSMXO and your mail will be automatically forwarded to the technology expert in this area. Or click here to submit your technical query to our support forum. We can review your code to make it operational or can stare you in the right direction.
* Logo is a trademark of IBM.