Tapestry Training -- From The Source

Let me help you get your team up to speed in Tapestry ... fast. Visit howardlewisship.com for details on training, mentoring and support!

Tuesday, March 15, 2005

Pressing forward with Portlet Tapestry

The refactoring has been continuing for Tapestry. I've been working for weeks, adding features and doing the refactoring needed to support the Servlet API and the Portlet API simulateneously.

Over five years ago (yowza!) when I was first working on Tapestry, there was a point early on where I had to code for well over a week just to get to "Hello World". In retrospect, that was a sprint and this is a marathon ... also, I don't code the same way anymore (writing tests as you go is a slower process that gets your to your destination faster).

Regardless, in the next couple of days, I should get to "Hello World", Portlet style. Of course, that's just part of my to do list:

  • Write some Tapestry articles/tutorials for DeveloperWorks
  • Create some Ajax components
  • Learn Trails
  • Create a Trails presentation for NoFluffJustStuff
  • Writes some more labs
  • Learn enough about JSF to compare it to Tapestry properly
  • Get the Tapestry Support Network up and running
  • Create a forum/community/component-bazaar application for the Tapestry Support Network

The worst is, I'm sure I'm forgetting a bunch of things!


Cardsharp said...


Years ago I created a DHTML framework that used an applet to make XML requests to a Servlet. We built some amazing client-side applications with it. It was based on ideas from Microsoft's DHTML Remoting. Now, years later there's renewed interest in this field in the form of Ajax. I'm currently using Tapestry and wondering how the two technologies could be integrated in a seamless way. I'd like to create a Tapestry Service that fires events to a Tapestry page that contains an "ajax" style component. The only way I can think of to make that work is to have the service rewind the page. I know in the past you've said that ActionLinks and full-page rewinding is, in you mind, a bad practice. I suppose I could use a Direct link type event handler to hook up the Ajax componet to the Tapestry page, but the page would not have its state loaded. I guess you can make the same arguments about Tapestry DirectLInks... Thoughts?

Howard said...

My thinking about supporting Ajax is that you'll want new engine services to support the components. This is similar to the charting component in the Workbench.

Ajax is a very unbounded concept, so each use becomes a very specific use case and implementation.