Interesting discussion. :)
As much as you can move logic from server- to client-side, there's still
stuff that doesn't fit well in the client, specially security-sensitive
stuff (including privacy issues and sensitive data that shouldn't leave
the servers). So you want this stuff done server-side, and Tapestry and
Tapestry-IoC (from which a large fraction of Tapestry-the-web-framework
awesomeness comes from) are a very good choice, maybe even the better ones.
One example in which single-page applications wouldn't work:
websitPubFactory (http://www.pubfactory.com/), which is built on Tapestry.
Disclaimer: I'm part of the PubFactory team:
https://www.safaribooksonline.com/blog/2015/11/23/my-life-with-open-source-or-how-helping-strangers-boosted-my-career/.
From PubFactory's website:
"PubFactory is built from the ground up to support books, reference works
and journals in a variety of XML formats, with full support for PDF,
images and other rich media. It offers a full array of features for users,
management tools for librarians and administrators, and a complete suite
of back-end controls for publishers to control their content and manage
relationships with their customers."
We could never pass the raw document data for it to be transformed and
rendered client-side. It would be both a security issue (raw data in the
client) and probably a performance issue (too much time and processing
power needed to do the complex transformations if done in the client,
specially in mobile devices). SEO is also a very important factor for
PubFactory and its clients and it's not covered well by single-page
applications yet.
On Tue, 29 Dec 2015 12:07:57 -0200, Barry Books <trs...@gmail.com> wrote:
I've written several "Enterprise Apps" with Tapestry and I would say as
of
5.4 it's pretty much perfect for that class of web applications. The best
feature of Tapestry is it's easy to build components and piece them
together is various ways to build applications. The obvious place to
start
is with the tml/java UI components but with Tapestry pretty much
everything
is a building block that that can be combined in various ways. For
example
BeanEditor/Grid/Hibernate can handle CRUD with only a few lines of code
and
produce a working prototype in a few minutes. By leveraging datatypes,
validators, mixing, components and services the prototype can be turned
into the final product. All the parts can easily be refactored into a
library and the next application is even easier. The addition of
Bootstrap
makes everything pretty without much work.
While Java is perhaps the new Cobol that's a feature in the Enterprise
world. Tapestry hides some of the worst parts like server restarts and if
you do things right it's faster to build prototypes with Tapestry than
almost anything else and they will work in production and be
maintainable.
With annotations most of the high level code can be declarative and it's
possible to make sweeping changes without changing the tml/Java files.
It's
possible to plug into the rendering pipeline in various ways so
complexity
can be isolated and finally if you use Maven the structure is defined and
builds are easy (really).
As far as performance I run 5 applications on one virtual machine with 4
instances of Tomcat. I load balance the apps across 2 so I can deploy
without downtime. I run Hudson in 1 to schedule jobs and the last
instance
runs all the batch jobs. The machine gets about 10 page hits a second and
runs about 10% cpu. I'm sure all of them could be run on the smallest AWS
EC2 instance.
The whole stack (except perhaps the database) is free and Enterprise
friendly. I'm not sure what else you could want.
As far as one page apps go I have built some GWT apps that run on top of
the Tapestry stack but I've been moving them back to Tapestry one by
one.
While there have been complaints about Tapestry backward compatibility
some
of my applications started with version 3 and are now 5.4 While it's
taken
some work the fundamental ideas have remained pretty constant. Currently
this does not seem to be the case with Javascript frameworks and long
term
maintenance is a problem.
While single page apps are the new hotness I think they fill a perhaps
small niche. They are not currently SEO or Enterprise friendly. That said
Google maps would be painful as an old school web app.
--
Thiago H. de Paula Figueiredo
Tapestry, Java and Hibernate consultant and developer
http://machina.com.br
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org