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, October 17, 2006

Tapestry 5 Screencast #1

I've just put together a 6 minute screencast about Tapestry 5. It covers creating a new project (using Maven), setting up dependencies and structure, and creating a page template and seeing changes to the live application when you change a Java class.

Tapestry 5 Technology Preview #1 -- 17 Oct 2006

Class reloading is a key feature of Tapestry 5 and is exceptionally important to the stellar productivity Tapestry 5 will enable. Just as people fastened on to the Tapestry 3/4 templating system, I think many people will fasten on to class reloading. Don't be mistaken; there's a lot more to this enchilada than that one feature. But it's a great feature to hook people early on!

22 comments:

Anonymous said...

Oh boy, you've really gone and done it now. ;)

Luo Shifei said...

Great!

Luo Shifei said...

Great!

s_dani_g said...

Cool, thanks for the glimpse.

Kevin C. Dorff said...

Hey Howard, awesome stuff. More screencasts! I would love to see how you supply other arguments to more complex components, create more complex components, etc. I guess I will have to do some more T5 research.

Dhanji said...

hi howard, that screencast was pretty cool. I read in your previous entry's comments that you're looking at conversation/flow support.

I am curious as to what you're looking at for this? I hope you're not thinking along the lines of spring web flow, it seems horribly verbose and a bit strutsy to me.

Have you looked at the web beans JSR or what gavin king is doing with Seam and out-jection? Even though it seems to be focused on EJB and JSF, it might be cool to have properties "carry" across a conversation thru bijection.

I think there's a bit of a block for us in expressing flow statically with java--there is no real language construct to build static graphs. Nested arrays of annotations may be the only choice:

@Flow( { @Page("Start"), @Page("Page2"), @NestedFlow(..) etc..} )

The moment you do it dynamically you either have to express configuration in xml (and lose structural static type-safety--verbose MalformedXMLExceptions) or programmatically so it cant be visualized/read easily.

What are your thoughts on this?

Anonymous said...

Excellent screencast. The automatic reloading is very attractive. I have yet to grok in full the IOC container but I like the that you have removed the XML configuration.

I have just finished reading the documentation on the Tapestry 5 website and I have noticed something quite disturbing.

You've thrown jwcid out the window!?

Where we used to "instrument" existing markup now we are relegated to unattractive JSF-like tags. ick. ick. ick.

My vote is to discard the JSF tags and keep jwcid.

Howard said...

I need to make it clearer in the docs that Tapestry 4 style markup will be making a comeback soon.

Massimo said...

Nice... <e.g>

rattana said...

Hello Howard.
I'm real fan of Tapestry because it's fun to construct a page just like doing a Lego construction : assembling components.
In this screencast, Tapestry 5 seems really cool but I don't love the use of the tag. It's remermber me about JSP or JSF.

Where's are the components notion ?
Will Tapestry 5 still a Component centrics Framework ?

Anonymous said...

Happy to say that I was able to reproduce the demo app in your movie in about half and hour. Most of that was tweaking Maven to get the Tapestry 5 code to build.

Howard said...

Remember, this screencast just scratches the surface. Even a cursory look at the documentation will show that components are still around and are much, much easier to write than ever before.

But I still have a lot more coding to get the framework ready, even for the other developers to dive in. Getting close, though.

Dustin said...

Wow, that is a ton different then the v3 I am currently using. I can't wait to use it.

Anonymous said...

hi howard,

do you have a rough timeframe for tapestry 5?

Anonymous said...

just curious, are you using a separate class-loader for every class.

Tapestry 5 is really kool

Howard said...

A single class loader for all component classes, from the application and all libraries. Otherwise, you'd see ClassCastExceptions everywhere.

liigo said...

Great work!
I have been studying tapestry5 source code almostly everyday, since the first day Howard commits codes to t5 svn. I love it, and waiting for it eagerly.

Anonymous said...

Excellent screencast. Short sweet and to the point. What maven and jetty plugins are you using in eclipse?

Howard said...

JettyLauncher 1.4.1

Maven 2.0 integration 0.0.9

Anonymous said...

Cool indeed, although I'd like to see how you instantiate multiple components a bit more.
And I'd also like to know roughly when it might be available (end of year, end of next year?)...

vidrim said...

It would be really great to have more screencasts showing how to do more complex components, or have much more documentation or examples just to know how to fully take the best from taestry.

Howard said...

I'm very proud of the new Palette component, so I may do a quick screencast on that subject this weekend. It's all a matter of time as I'm fully booked with a full-time client (doing Swing no less!) for the meantime.