AFA "bloat" goes, well, I'd rather run 2,000 lines through a JVM than 14,000.Then don't write 14,000 lines of code. The TMG code is rife with duplicated code, excess code, you name it.
[link|http://www.ibatis.com/jpetstore/jpetstore.html|http://www.ibatis.co...re/jpetstore.html] - 2692 LOC
[link|http://www.springframework.org/webapps/petclinic/html/petclinic.html|http://www.springfra...ml/petclinic.html] - 2217 LOC
Spring Framework is something I'm looking at using internally.
[link|http://xpetstore.sourceforge.net/|http://xpetstore.sourceforge.net/ (xDoclet)] - 3251 for servlet version, 6202 for EJB version. See what I mean about EJBs? Don't use them. Very rarely does anything require an EJB, if even then.
I'll leave that alone except to say that what I read was that no stored procedures were used - which would really hurt MS Sql Server performance.That's the least of it. The architectures were completely different. The .NET version used mixed up business/db logic and made heavy use of page fragment caching. The J2EE version had rigourously separated tiers and used Entity EJBs for data caching. The closer you cache the stuff to the front end, the better the performance. Entity EJBs are a horrible way to try to cache things.
Links? Books? CAI references?
I'm liking "J2EE Design And Development" by Rod Johnson. He doesn't pull many punches when talking about the warts of J2EE. Look at [link|http://velocity.jakarta.org|http://velocity.jakarta.org] in addition to the Spring Framework, as well. I haven't looked too closely at xDoclet yet, so I can't comment much other than to point out the LOC.
[Edit: added xdoclet]