Good resources for building web-app in Tapestry - resources

I'm currently researching into Tapestry for my company and trying to decide if I think we can port our pre-existing proprietary web applications to something better. Currently we are running Tomcat and using JSP for our front end backed by our own framework that eventually uses JDBC to connect to an Oracle database.
I've gone through the Tapestry tutorial, which was really neat and got me interested, but now I'm faced with what seems to be a common issue of documentation. There are a lot of things I'd need to be sure that I could accomplish with Tapestry before I'd be ready to commit fully to it. Does anyone have any good resources, be it a book or web article or anything else, that go into more detail beyond what the Tapestry tutorial explains?
I am also considering integrating with Hibernate, and have read a little bit about Spring too. I'm still having a hard time understanding how Spring would be more useful than cumbersome in tandem with Tapestry,as they seem to have a lot of overlapping features. An example I read seemed to use Spring to interface with Hibernate, and then Tapestry to Spring, but I was under the impression Tapestry integrates to the same degree with Hibernate. The resource I'm speaking of is
http://wiki.apache.org/tapestry/Tapstry5First_project_with_Tapestry5,_Spring_and_Hibernate . I was interested because I hadn't found information anywhere else on how to maintain user levels and sessions through a Tapestry application before, but wasn't exactly impressed by the need to use Spring in the example.

The sources I use are:
the documentation itself particularly the component reference
Howard's blog
the wiki, particularly the howtos
the mailing list archives (the convention is to put 'T5' in the subject for Tapestry 5 issues)
the Jumpstart project pages
the Chenille Kit demo for additional components
Personally, I've found that Tapestry 5 does everything a basic web app needs without Spring. There might be some specific Spring utilities you would want to pull in, but the Tapestry/Hibernate integration is very solid and easy to use. Still, the wiki has some examples of integrating the two.
I'm not sure of what you're referring to regarding sessions. It's extremely simple with T5. See this.

Don't forget to check the new, improved documentation at http://tapestry.apache.org.

Related

how stable is AirBnB node.js rendr?

I wanted to know if anyone has been using AirBnB Rendr and is it stable and ok to use in commercial projects or is it still changing a lot?
I'm developing a website which can run both client and server based, this mean I need to be able to render pages and widgets server and client based.
The server is running Node.js, dust.js and has custom server based code to render the pages and widgets on the server side. I need to pick how to handle it on the client side.
Naturally I want to try and not repeat code, but obviously the client is different I can:
Keep my current page based server rendering and develop custom
client side code.
Use backbone.js on client side and keep my server based code the
same.
Use AirBnB rendr that is based on Node.js and backbone to use the
same code on client and o server. AirBnB Rendr Library
I like the 3rd idea very much, but I'm looking for some input from you guys.
Has anyone used it? any experience with it in terms of stability and/or how often their api changes etc?
I've just started playing around with Rendr. If I ignore the learning curve and oboarding friction, I like it a lot and I plan to write my next large production app using Rendr.
Unfortunately, as bababa listed above, the documentation needs a lot of work. There is an explanation of how Rendr works in its README and the example app's README but beyond that you'll need to source dive in order to figure out how the gears are turning. Currently, there is no forum for questions (other than stack overflow :D) and I've had a hard time figuring out its idioms on my own.
Despite all the struggles, I finally see the light and I'm starting to understand why Rendr is so powerful.
tl;dr - If you're willing to source dive and figure out your own workflow, I would suggest using Rendr. Otherwise, I would recommend going old school by writing a traditional client app with a more mature library. (is it too early to say that? =X)
Well given AirBnb is a successful commercial enterprise, there's some validation that the library works well enough for them. This question is probably best answered by watching their github commit log for breaking changes. Given backbone is 1.0 and essentially stable at this point, rendr will probably quickly stabilize, but honestly your fear of instability is probably unjustified. I think rendr looks compelling and although my current project is using a very similar home-grown solution, I would consider using rendr in a future project or even porting our code to rendr. "Stability" per say is much less important to the web development community compared to other situations like packaged or embedded software.
I used (tried to use) and Rendr on a project and gave up. There are just to many limitations (currently) and the lack of documentation doesn't help. I ended up need to rewrite the source code to accomplish some things I would consider trivial with other frameworks, such as passing multiple collections to a view. It just wasn't possible (at the time I used it) and that was a deal breaker. Not being able to pass a collection of categories and results to a page was to much of a limitation.
I have no doubt it will eventually be ready for production use, but right now I would say unless you are an engineer at AirBnb and know how to hack the source then no, it's not ready.
If you really want to know if it will work for your needs, take a look at the issue list on github. That will give you a good idea where the projects at.

Viability of using ADF Faces outside of jDeveloper studio

Having worked with 2 JSF component libraries, or frameworks if you wish, I can't help
but wonder if I'm missing a trick by not evaluating ADF Faces. The big stumbling block
for me is the way ADF is clearly deliberately tied in with jDeveloper studio. I work
with NetBeans on a glassfish a/s, and as open as I am to change, I want to maximise
my existing experience and leverage this stability.
My (tentative) rationale is that perhaps a company with the resources of Oracle could,
perhaps, come up with a better quality product than other alternatives and with superior
functionality, and this is what I wish to evaluate.
So I just wondered if anyone had any experience they could share with respect to working
with ADF Faces outside a jDeveloper environment. Presumably from a technical perspective
it's not much more than extracting the necessary jars from the distribution and taking
it from there. Equally important would be any licensing/legal considerations of course.
I've read that ADF has a business layer however I'd want to continue working with a Java
6 EE stack at this time.
What would be really cool would be to have a maven repository, although presumably the
reason that no such thing exists is to protect the jDeveloper business.
Has anyone got ADF working outside jDeveloper, got it working and can provide a small
amount of direction as to any major considerations.
If so, is it worth it? is ADF Faces a superior and more in depth product than can
otherwise be found (oh no, what have I said...)?
What are the licensing considerations? my present understanding is that fees would be
payable is you're not using weblogic. How about glassfish enterprise?
I have only recently found out, and was very surprised, to realise that ADF has the
third JSF core implementation, alongside Mojarrra and MyFaces. Is this just a case of
taking the RI and making a few necessary changes to support core ADF functionality or
more than that? I see from the JIRA that Ed Burns corresponds closely with the ADF
team, of course they now work for the same company. Clearly the RI has to mirror the
spec, and that takes time, so this in itself could be interesting.
Thanks.
dont know if this will help you , but it seems that you can now freely deploy adf on glassfish server
https://blogs.oracle.com/shay/entry/deploying_oracle_adf_applications_to
http://docs.oracle.com/cd/E35521_01/admin.111230/e16179/ap_glassfish.htm#BABIEADD
ADF is only officially certified to work with WebSphere 7.0.0.13 AS or ND(aside from weblogic of course). Although there are blogs and forum posts that indicate people were able to make it work with Tomcat(with much pain of course).
I know for a fact that there is an eclipse version/plugin/whatever that has ADF Faces features.
AFAIK, you only have to pay when you are using a container/AS that is not weblogic.
ADF Faces is great. It has all the components you would expect plus more. It also has a great Controller framework(see ADF Task Flows). For demos you can check out the Demo.

Need suggestion to choose JSF

HI,
We are in the process of evaluating the different technologies to implement our application. Our application is like forums which will get the millions of users every day. For example, this stackoverflow.com handles such a heavy user base without any problem.
My question is whether JSF is suitable framework to develop such a application. We will be using components like RichFaces on top of JSF to design the front end. I have seen few comments about jsf that it is slow compare to other technologies.
I am anticipating your suggestions and ideas for my work. I am Java developer and would prefer to select any of the Java framework. Please advise me.
I would say JSF is indeed a very good choice. If you're building an application that serves "millions of users", then more often than not the back-end architecture is much more important than the frond-end web framework.
As a rule of thumb, only a small percentage of the time that processing a complete requests takes is spent in the web framework. The majority of time is always in the DB and in IO. Get that right and you're basically there.
The advantages of JSF are many. It's very easy to work with and it's very popular. This means there are many books, articles, blogs and fora out there to help you. Additionally, it's relatively easier to find extra employees who already know JSF than it is to find people having experience with one of the less used web frameworks.
The fact that JSF is so popular also means there are lots of component libraries and extensions available for it. This overall makes your life a lot easier. It's always faster to use some existing component than building it from scratch.
If you are looking for a website like SO, then I'd suggest GWT. It is easy to work with, faster (relative to jsf), good ajax support, embeddable and doesn't have a steep learning curve especially when you are coming from an action based framework like struts etc.
Checkout its demo show case and also the real world implementations here.
If you are building a forum-like application, why not use an existing solution such as the software on which stackoverflow.com is built-on?

Are there any WCF Configuration Tools out there that will make the job easier

Are there any tools that go beyond requiring deep and intimate knowledge of every configuration option and nuance and will just setup an application with a minimum of inputs. Something like a wizard that produces the XML configuration based on those simple inputs. I don't care about security I just need the service to work. Ideally the tool would be able to setup IIS6 as well or at least with a given set of options it would produce a list of steps I needed to complete in IIS.
The Microsoft Service Configuration Editor is no better than direct editing of the XMl. I did find a web site that has the right idea but it wasn't able to solve my simple installation. (http://www.noemax.com/support/wcf_binding_configuration_wizard.html).
Is there anything out there that puts some convention into play over this mountain of configuration?
WCF configuration can look very daunting at first, indeed! I like that configuration wizard you linked to - why wasn't it good enough for you?
I don't know of any tool right now, that would solve your problem and help you figure out the proper configuration - it really boils down to learning the ropes and getting to know the ins and outs of it, I'm afraid.
Basically, what I've learned is : don't even start to imagine all the things you could do - try to focus on what you should do (and what you need).
Really, it boils down to about five scenarios as outlined in the excellent book "Programming WCF" by Juval Lowy:
intranet apps (use the NetTcp binding, Windows security)
internet apps (use the wsHttp binding if ever possible, username/pwd or certificates for security)
business-to-business apps (use whatever binding makes sense, secure by certificates)
queue message delivery (MSMQ)
no-security apps (legacy ASMX support, interop with "dumb" webservice clients)
Basically, pick the one you need, and from there, you're pretty much set as to what to do and how to do it. I would definitely recommend checking out Juval's book - excellent excellent resource!
So the question is: which category does your app fit in? Based on that, you can pretty much determine all that's needed from there.
Also, I watched two screencasts that really helped me get over the heaps of configuration options in WCF, and focus on what's really important:
Extreme WCF with Miguel Castro
Demystifying WCF with Keith Elder
Both gave me a good feel for what configuration is really needed - and what is just fluff.
Hope that helps some!
Marc

Web programming language

I want to go learn web programming,but besides names and a little of html I don't know anything.So I ask you what programming languages you recommend,why,what can be done with it,tools to learn ,etc.I don't know if it matters but I program in a Linux enviroment(Ubuntu).
I don't want to do hardcore web programming ,I only want to be able to develop complete websites and understand network concepts.
Well, most cheap/free web hosts support PHP, MySQL, and most browsers support Javascript.
Target those and you'll be on a reasonably good path.
Some support Ruby and Python, and you might choose that path if you want to learn those languages.
Good luck!
-Adam
Definitely start with HTML, and basic CSS. These are the core of web programming, and you need to understand them well to do anything of consequence.
Once you've got those down, you'll want to move on to a server-side language. The easiest is PHP, but be careful of picking up bad habits, since it's a loose environment; if you stick with PHP, you'll eventually want to use it with an MVC framework such as CodeIgniter, which encourage separating presentation and logic. To get a little more advanced, you can also try Python or Ruby. Get yourself some server space to mess around with; most shared hosting plans are $5-10/month.
For Javascript/AJAX, you'll probably want to start by using Firebug or Firefox's DOM inspector to learn the relationship between the HTML of a page and the DOM object which Javascript uses to interact with it. Once you understand how the DOM works, toy around with jQuery to start doing useful (and fun!) stuff.
You'll also eventually want to learn MySQL (or a similar SQL variant), but that can probably wait, since you can do lots of interesting things without tackling database stuff.
Above all, be patient and persistent, and make use of every resource at your disposal: books, Google, Stack Overflow, and cheat sheets.
Ruby all the way. It's exactly what you need if you're interested in web dev and completely starting from scratch programming-wise. From the basics of Ruby it's pretty easy to get into Rails, which is a very beginner-friendly web framework.
Many great books on Amazon (look for the highest rated of course) on both Ruby and Rails.
Great starting point for links:
http://www.ruby-lang.org/en/documentation/
As well check out Learn to Program
Now get learnin'.
Google App Engine offers free hosting for applications that do not exceed the specified limits. The server-side language is Python, the client-side language is JavaScript inside Django templates. Everything has worked nicely for me in Ubuntu 8.10.
GREAT Question,
a couple of years ago I was in the same place -
What HONESTLY Helped me was using Dreamweaver, I set it in split mode and started watching the code
I used this and started delving into the PHP Application world and could see what was going on (sort of)
I know you can use dreamweaver with wine on the linux, and it can help you do a TON
granted if you continue it has the potential to limit you to the dreamweaver world... but can help you learn and create at the same time
(I build full php apps from scratch now with a notepad... but I started with DW)
The question I'd have is what kind of scale on web programming are you wanting to do? If it is small stuff then the LAMP stack would be my suggestion while if you want to get more into 3-tier architecture then Java or ASP.Net may be worth getting into for middleware or business logic code.
With the exception of the reference to the LAMP stack above, there has been no Perl recommendations. I like Perl as it is easy enough to build a fairly full featured web application (using CGI, or mod_perl). Of course, you are going to have to learn HTML/CSS if you are going to do anything on the web. I feel Perl is a good choice for web development as it is fairly robust and full featured with all of the modules available on CPAN. Combine with an application framework like CGI::Application or Catalyst and you can build sophisticated web apps in a short amount of time. Also, using a tool like XAMPP can help as you won't have to worry about web server or database cofigurations to get started.

Resources