Advice on web framework for small consultancy


Web tier: servlets, JSP, Web frameworks: Advice on web framework for small consultancy

  1. Advice on web framework for small consultancy (5 messages)

    In my small company we build web based applications for small businesses. Typically they consist of 15-25 domain objects, corresponding CRUD screens, several custom reports (some pretty complex) and series of public facing screens. In the past we've followed the model of CakePHP for the relatively lightweight sites and SpringMVC/JSP/JPA for anything that was high-volume or data intensive. CakePHP was nice because it is dead-simple to host and fast to develop on but it has some significant performance issues once the traffic reaches a certain level. Also, complex business logic is painful to code in PHP. SpringMVC is fast and we love coding business rules in Java because of all the help the IDE gives us, but the configure/code/compile cycle it forces us into is a real drain on productivity. I would really like to have a single framework that allows rapid development, but has the performance and scalability of java. Specifically this is what we are looking for: 1) Full-stack web framework. (Should be able to handle basic CRUD tasks out of the box, have an integrated template system, great support for validations and form handling) 2) Page/action based (not component based) 3) Full URL control 4) Convention over configuration 5) Write controller/domain code, reload page and have the changes appear without having to restart the webserver 6) Relatively small runtime requirements (should be able to run comfortably in a 128M VPS) 7) Relatively small library requirements. (Minimize downtime when uploading new WAR file) Some frameworks we've looked at: 1) GRAILS: Great for RAD elements but not-so great performance in a constrained environment. Their ugly stack traces make hunting down things like NullPointerExceptions a real pain. Large library requirements 2) LIFT: Has potential but a pretty steep learning curve and poor documentation. My attempts thus far to grok Scala have not been real successful. The force-everything-into-XML templating system is a little annoying. 3) PLAY: I like everything I've seen so far, but am unsure about the relatively small community and the runtime requirements of the groovy templating system. 4) STRIPES: Very clean form handling, little configuration required. Lightweight runtime. Still need to recompile/restart to test changes and there is no built-in way to handle CRUD tasks for domain objects. (Need to have validations on an ActionBean level, then another set of validations on the Domain object) I would appreciate any real-world feedback you might have on this. Thanks

    Threaded Messages (5)

  2. Hi John, It looks like you want a full-stack Java framework that allows for rapid development. That certainly sounds reasonable, but as you have mentioned, most frameworks that use a lot of convention over configuration and allow for fast development use languages that are more dynamic than Java, such as Groovy. Many good Java frameworks are not full-stack out of the box, such as Stripes. It looks like the closest thing to match your requirements is Play. I wouldn't worry too much about a small community; at my previous workplace, we replaced JSF with Stripes, despite its small community, and we had excellent results. We were able to fix bugs where we had hit walls with JSF, and overall our code was reduced by about 40%. As for the templating system, I don't know the architecture of Play, but most of the time, if the separation of concerns is done right, it's not too difficult to use a different templating system. I'm sure their developers can offer some advice. Let us know how things go. Cheers, Freddy
  3. AJAX with WaveMaker[ Go to top ]

    Hi John, A year ago I was in the same position looking for an complete IDE for developing rich internet applications until I found WaveMaker. WaveMaker comes "out-of-the-box" with Spring, Hibernate, JAXWS, ACEGI, Dojo, Sun JDK and supports POJOs, JOSSO, Java, JavaScript, CSS, HTML, WSDL, WADL and LDAP. The best thing ever though, apart that you can program server and client side in one IDE, is the WYSIWYG editor and pre-installed dojo widgets like datagrid, buttons or editor fields. After installing and running the software, which runs by the way in the browser, I was able to import a MySQL database, drop a data widget on the canvas and deploy it on TomCat, which is part of WaveMaker, and entering and saving data to the database in less than 5 minutes without writing one single line of code. After I repeated the same steps in Eclipse, which took me over an hour, I was convinced that this tool is the "NEW WAY" of developing AJAX application. The best thing of all it is OPEN SOURCE. That means you can start modifying the JAVA or JAVASCRIPT code including spring security settings (Acegi security) to your own need. Most likely you won't touch those files as you will see that the entire WaveMaker framework is thoroughly thought through. Just give it a go and let us know what you think.
  4. NetBeans or Eclipse[ Go to top ]

    Have you ever tried NetBeans or Eclipse.These IDEs specially eclipse is very fast for development environment. Cheers Sandeep
  5. You may want to take a look at the Jt design pattern framework. It provides full support for CRUD apps. - Jt Framework ( Jt is a pattern oriented framework for the rapid implementation of Java applications. Jt has been utilized in several large mission critical systems. Jt implements many well-known patterns including Data Access Objects (DAO), GoF design patterns and J2EE patterns. The framework addresses the following goals and requirements: A) The pattern oriented framework implements and/or facilitates the implementation of well-known design patterns like GoF design patterns and J2EE Design patterns. The framework itself is conceived and implemented based on design patterns (from the ground up). The framework facilitates and accelerates the implementation of applications based on design patterns. B) The framework architecture is based on a messaging design pattern: framework objects are able to interchange information and perform computations by sending, receiving and processing messages. A messaging API provides strong encapsulation and loose coupling; framework components can be easily plugged into complex framework applications using a ‚Äúlego/messaging‚Ä? architecture. The framework takes full advantage of the power and simplicity of the messaging design pattern. C) The framework lego/messaging architecture provides transparent access to remote components: remote framework objects is treated as local objects. Design patterns implemented by the framework (adapters, remote proxies and facades) make this posible by hiding the complexities associated with remote APIs. D) The framework provides transparent integration with other technologies via framework adapters, proxies and the implementation of related design patterns. These technologies include BPM, DAO implementations, MVC implementations, EJBs, JMS, XML and Web Services. E) The framework is designed to be lightweight and fast in terms of performance (low overhead). F) The framework messaging/lego architecture should improve and simplify design/development efforts. There should be a tight correspondence between UML design diagrams and the framework messaging based applications and components needed for the implementation. Ideally, the framework provides wizards and automated capabilities for generating framework applications. Framework components should be easily added to BPM process diagrams. In future versions of the framework, it should be possible for applications to be generated directly from the UML design diagrams. G) The framework messaging architecture facilitates testing and debugging efforts. The framework provides capabilities for testing components independently (each component as a unit) by sending messages and verifying the reply (output) messages. H) In order to provide additional productivity benefits, the framework is integrated with open source IDEs.
  6. Datalator - full-stack Java framework[ Go to top ]

    Here we go: client run-time (application or applet), server run-time, RAD tool, all in two jar files. Runs localy, intranet, internet. No HTML, no JSPs, pure Java. External only JavaDB(Derby), but it might be anything else. All business logic programming's done on the client side (bye "ServerSide" coding :-)). We are running real-time real-life application (5 clients) for a few month now, without restarting the server, but the framework is kind of experimental yet and, well UI is unusuall. But very fast. There are some more theory, screenshots, screencasts on You need a framework, we need a playground - give us a shout, we are in Canada :-)