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!
Oh boy, you've really gone and done it now. ;)
ReplyDeleteGreat!
ReplyDeleteGreat!
ReplyDeletehi howard, that screencast was pretty cool. I read in your previous entry's comments that you're looking at conversation/flow support.
ReplyDeleteI 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?
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.
ReplyDeleteI 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.
I need to make it clearer in the docs that Tapestry 4 style markup will be making a comeback soon.
ReplyDeleteNice... <e.g>
ReplyDeleteHello Howard.
ReplyDeleteI'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 ?
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.
ReplyDeleteRemember, 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.
ReplyDeleteBut I still have a lot more coding to get the framework ready, even for the other developers to dive in. Getting close, though.
Wow, that is a ton different then the v3 I am currently using. I can't wait to use it.
ReplyDeletehi howard,
ReplyDeletedo you have a rough timeframe for tapestry 5?
just curious, are you using a separate class-loader for every class.
ReplyDeleteTapestry 5 is really kool
A single class loader for all component classes, from the application and all libraries. Otherwise, you'd see ClassCastExceptions everywhere.
ReplyDeleteGreat work!
ReplyDeleteI 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.
Excellent screencast. Short sweet and to the point. What maven and jetty plugins are you using in eclipse?
ReplyDeleteJettyLauncher 1.4.1
ReplyDeleteMaven 2.0 integration 0.0.9
Cool indeed, although I'd like to see how you instantiate multiple components a bit more.
ReplyDeleteAnd I'd also like to know roughly when it might be available (end of year, end of next year?)...
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.
ReplyDeleteI'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.
ReplyDelete