Search code examples
javaarchitectureriatapestry

Technologies required to build an end to end web application?


I want to develop a web application, like an online scheduler. (Yes I know it's been done a million times.) Most of my experience is in Java, so I want to leverage that when considering technologies.

I've primarily been a systems developer with little exposure to UI programming, so I think this is where I will need to do most of my learning.

Do you have any suggestions on the technologies I should focus on? I want to focus on technologies that are marketable and easy to learn.

So far this is what I think I need for a 3-tier architecture (from the ground up):

  • Database (likely MySQL or PostgreSQL) - SQL, JDBC
  • Back end server - Java
  • Web server (Tomcat) - JSP, Servlets
  • Web Framework - Tapestry (weak on this, any better alternatives?)
  • Browser technologies - HTML, Javascript, CSS (need to learn)

I've heard about "Rich internet application" development tools such as Flex and Silverlight, but I'm not sure about the market for such technologies.

Edit: Seems like there's a lot of mention of Spring/Hibernate, so I'll look into that. I appreciate the feedback.


Solution

  • I think you've got your bases covered pretty well.

    You'll probably want to look into some frameworks / libraries to make it easier on you.

    Web Framework - Wicket / Stripes / JSF / Tapestry (component vs request based frameworks)

    Javascript Library - JQuery / YUI / Dojo

    As for your template language you could use JSP / Velocity / Freemarker.

    Just study up on the frameworks and tools maybe try a few out and see which ones work best for you.

    Just FYI I'm currently using.

    • Apache - web server
    • Tomcat - servlet container
    • MySQL - database
    • Stripes - request based web framework
    • YUI - for ajax
    • Spring - dependency injection
    • Hibernate - Object Relational Mapping
    • jsp - to dynamically generate html