Dojo-integrated Tapestry 4.1 released

Discussions

News: Dojo-integrated Tapestry 4.1 released

  1. Dojo-integrated Tapestry 4.1 released (19 messages)

    Tapestry 4.1, focused on providing a clean API for developing dynamic Web applications, has been released. The latest version includes JSON/XHR/DHTML functionality based on the Dojo JavaScript toolkit. This development series provides a full layer of support for building Web applications. This initial alpha release doesn't display a wide variety of new Ajax components, but it provides a completely tested API. The new JavaScript portions of the system now also have a set of functional unit tests based on the Rhino JavaScript interpreter, as well as some of the foundational infrastructure used by dojo to test JavaScript packages. In addition to the API changes (like the new @EventListener annotation), the client side validation system has also been replaced by a system that now allows easy performance of adding form fields and listening to changing client state. Tapestry is an open-source framework for creating Java Web applications. The framework builds upon the standard Java Servlet API in order to work in any servlet container or application server. What do you think of this latest version of Tapestry?

    Threaded Messages (19)

  2. Tapestry 4 = AJAX for dummies[ Go to top ]

    I had a look yesterday at the new documentation... I have to say that the AJAX api is brilliant. To see how easy it is to do ajax in Tapestry now, this page http://tapestry.apache.org/tapestry4.1/ajax/EventListener.html has a great example. Fantastic work Jesse!!
  3. Dojo is clearly an outstanding solution. However integrating Dojo with Tapestry is like putting lipstick on a pig. User are demanding more intercative web based applications. Dojo is as great solution for the UI widget side but you end up creating Javascript code , HTML and java code and hope that the interation "points" that you put in place to hold the two together work seamlessly. IMHO a better and easier solution is integrating Struts/ Spring MVC with GWT (Thank you Luca Mansini ! http://www.jroller.com/page/masini?entry=gwt_and_spring_mvc). Your Struts JSPs will load and setup the page and GWT will provide interactivity to the page with sealess connectivity to you server side code aka Spring beans. You will get to write your code in Java , debug your widgets in a debugger and you will be generally much more productive with this approach.
  4. Using GWT with Struts sounds like putting lipstick on a cockroach, to continue your metaphor. Any reason why somehow Tapestry is the pig in this scenario (which I'm assuming you mean, given how you state that Dojo is outstanding)? In my experience, Tapestry offers a much more friendly programming model than Struts. I don't want to start a war between Struts versus Tapestry, just curious as to why somehow Struts seems to be a better solution specifically when integrating with Ajax libraries.
  5. The "pig" metaphor may be a bit too harsh but the fact remains that Tapestry and JSF are overly complex. Yes, if the team mastered the technology, sure it may work out but the learning curve imposed is too steep. And even then, if you have a highly interactive application with lots of dynamic behavior on a page, these frameworks won't be of much help. For example think of an Excel like web based financial application which can pull data from different sources on the fly and which allows you to view the effects of your inputs on your financial ratios like ROA etc. before you commit or save. Building an application like this is not trivial, be it using Struts or Tapestry. However, Struts/ Spring MVC are much simpler; the complexity is in the dynamic behavior and that is handled best by GWT. Trying to "instrument" this kind of UI with Tapestry or JSF is just asking for trouble. The simple elegance of Struts or Spring MVC lies in the fact that you can do 75% of whatever you need to get done with very little effort or learning curve. And the other 25% is really too complicated for Tapestry and JSF. GWT makes building interactive pages simple. My team is able to create sophisticated UIs with little effort ; I guess everyone is more comfortable with Java than Javascript and GWT debugger helps. And with Spring Integration with GWT (some assembly required), those UI widgets are calling our Spring Based server side beans. We are able to offer as terrific interactive experience to my users without the expense of getting my team to learning Tapestry or JSF. Before GWT came along Tapestry and JSF used to be the only alternatives for sophiticated UI . Now , their key value proposition is delivered better, cheaper and faster (in development time) by GWT.
  6. prove it! :)[ Go to top ]

    ...Before GWT came along Tapestry and JSF used to be the only alternatives for sophiticated UI . Now , their key value proposition is delivered better, cheaper and faster (in development time) by GWT.
    Somehow I'm doubting that your viewpoint is that of an impartial third party, but I can understand championing your currernt favorite technology. Though I have used GWT/Struts individually (but never Spring MVC), I've never seen them used together. Without bothering to go through a lot of redundant conversations that don't prove anything, do you think it would make sense for us to compare writing some sort of small piece of functionality to see which supporting framework code looks cleaner/etc ? I doubt you have taken a look at the new API's provided in 4.1, but I personally think they are very powerful and even preferrable to what I've seen in GWT. (Ie less code/less verbose). Let's see something :)
  7. Re: prove it! :)[ Go to top ]

    I wish I could show what we have been doing with it , but this is a great example that a Tapestry user can use to compare apples to apples. http://octagonsoftware.com/home/mark/gwthangman Enjoy
  8. not seeing the point to it[ Go to top ]

    I wish I could show what we have been doing with it , but this is a great example that a Tapestry user can use to compare apples to apples.

    http://octagonsoftware.com/home/mark/gwthangman

    Enjoy
    It's a very nice visual display, but I guess I'm not seeing how it applies to the enterprise/web application world. I'd probably implement the same thing in dojo as a widget. It would definitely be less lines of code, but then again it seems like a silly comparison. Do you have anything that does something useful like talk to a server ?
  9. p.s.[ Go to top ]

    Where is all of the struts/spring/foo-ey code that you were talking about? Unless we are turning the conversation from your GWT/Struts/world mashup vs Tapestry+Dojo into just Tapestry+Dojo vs GWT?
  10. Re: prove it! :)[ Go to top ]

    I wish I could show what we have been doing with it , but this is a great example that a Tapestry user can use to compare apples to apples.

    http://octagonsoftware.com/home/mark/gwthangman

    Enjoy
    What am I supposed to see there? Ok, tell NoScript to allow scripts. Still nothing. Reload, still nothing. Close window, open again, now I see something. Cool, I won! Why do I have all steps remembered in browser session history, so I click Back and nothing changes except the anchor in the address line? Otherwise, pretty neat. Can this be done without GWT? Easily. This example is not the one that should be used to promote GWT. Something like a nice pageable datagrid should make a more appropriate demo.
  11. Re: prove it! :)[ Go to top ]

    I wish I could show what we have been doing with it , but this is a great example that a Tapestry user can use to compare apples to apples.

    http://octagonsoftware.com/home/mark/gwthangman

    Enjoy
    Where's the code? Or do you think you're this is a forum for managers ;)
  12. Re: prove it! :)[ Go to top ]

    I wish I could show what we have been doing with it , but this is a great example that a Tapestry user can use to compare apples to apples.

    http://octagonsoftware.com/home/mark/gwthangman

    Enjoy


    Where's the code? Or do you think you're this is a forum for managers ;)
    Ah, found it
  13. I've worked pretty extensively in Struts, Webwork, and Tapestry. I have to say that IMHO there is little to no "elegance" in struts. If you want to keep something really simple on the controller framework, you're far better off using something like WebWork than Struts. I can't speak for GWT, having not used it myself (yet), but I would be quite frankly surprised if ANY existing web framework made the kind of application you describe simple. Perhaps GWT is the tool for that job, but if that's the case, I'd probably not be trying to use Tapestry and Dojo in any case. I tend to think the best approach is to use the tools that best fit the job. For a lot of other apps besides a custom, complicated financial calculator, I find Tapestry to work really well. Of course, in other scenarios, I'd rather use an action framework like WebWork (never Struts! Too overcomplicated for things that should be simple). I think before accusing one framework of being worse than another, you really need to use the context. There are no silver bullets. For the kinds of applications for which Tapestry works well, the new dojo features sound great.
  14. Components and HTML templates[ Go to top ]

    Tapestry offers multiple advantages to the developers who use it, but two of the main ones are: 1) Components -- the ability to "package" your work and let other people use it only through its interface. This allows you to make very complex interfaces (often a conglomeration of other components) very simple to use. Small examples: contrib:Palette and contrib:Table. Tapestry makes the creation and use of components particularly easy, so that this is the preferred approach of the developers. Not having components in your framework is like not having classes in your programming language. 2) HTML Templates -- define the appearance of your components use pure HTML and allow a separation between designers and developers. Developers, unfortunately, are usually poor designers and the appearance of their HTML is often sub-optimal. Designers on the other hand do not know JSP or Java. HTML templates allow those two groups to work together without stepping on their toes. What's more, the business people can apply their ideas much faster, which translates to a significant business advantage. Struts and Spring MVC support neither of the above. It is strange that anyone should recommend them. I guess the lessons of development that brought us OO and the efficiency of specialization are not being taken into account...
  15. dojo + tapestry makes sense to me[ Go to top ]

    Over the course of working with both API's very closely I've found that dojo and tapestry actually make a very good fit. Both are component oriented to start. Dojo calls them "widgets" , but they mean the same thing. Individual UI items that come pre-packaged with their own resources(html/css/images) that do one specific thing very well. We've also been adding in a lot of overall "decorator" type logic into the new 4.1 release, like the EventListener annotation, which allows you to bind and interact with almost any client side event concievable. All in all I've found the two libraries mixed together have done very well. There are certainly going to be bumps here and there as the release continues to mature but I'm confident that the end result will be a pretty intuitive/powerful combination for people programming web applications with java/javascript.
  16. Well done[ Go to top ]

    Well done to the Tapestry team with this release. I have used Tapestry in quite a few projects and found it to be a excellent way to develop web applications. This release makes the use of Dojo/Ajax seamless. Great work Jesse. As far as the 'large learning curve' conserned. I have not found that to really be the case. I have run a number of small teams using Tapestry and the in-experience team members have been able to pickup the API and be very productive very quickly. There are advanced features and yes you need to put in some effort to be an expert but thats the same in every framework. You can be productive very quickly. Personnally, the best feature is how easy it is to build components. Once you start building your own components (which is easy to do) then you really start to really benefit from this framework.
  17. This is probably the funnyiest post I have seen on TSS for a while. Having used all three frameworks commercially, they all have their pros and cons. * Tapestry does have a steap learning curve, but is pretty powerful if you are willing to invest the time comming to grips with it. * Struts is a pretty basic and somewhat convoluted framework. The big advantage it has is that most people have had some experience with it. * Spring MVC is another rehash of the Action/Command pattern framework and doesn't really bring much more to the table. It you are happy with Struts its not worth the investment retraining a team to use Spring MVC. regards Malcolm Edgar http://click.sourceforge.net
  18. Though it's great to have lots of frameworks so you can choose what's appropriate, it's hard to *know* what's appropriate. GWT is cool, but I don't see how it'd make Struts better either and examples would help...
  19. Well done to the tapestry team! Truly a major improvment on already wonderful framework! No more manually wiring client side events to server side listeners, no more looking wistfully at widgets being developed in javascript that would need substantial reworking to be of any use in a server side framework, and definitely less javascript. Well done, again!
  20. Ugly[ Go to top ]

    Looks like only Tapestry fanatics think this is a good idea - Mixing Dojo, Java, Tapestry markup (on top of JSP), Java annotations and a few other odd layers like OGNL and Hivemind. You've got events, scripting, markup, and objects all in a very brown soup. Every time I look at this stuff I can't believe anybody thinks this is a reasonable architecture. It makes simple problems impossible. You gotta be kidding! The only thing it has going for it is that JSF is even worse!