Tag: framework
Scalatra: Scala web micro-framework tuned to embrace HTTP & avoid session state
Sclatra website: http://www.scalatra.org/
Hello World App:
package com.example.app
import org.scalatra._
class HelloWorldApp extends ScalatraFilter {
get("/") {
<h1>Hello, {params("name")}</h1>
}
}
PicoContainer: Lightweight, Java, Inversion of Control Container implementing Dependency Injection Pattern
Play Framework: Open source, Java/Scala, web development framework, based on a stateless architecture
Play is a web application framework designed to make web development simpler. It is inspired by convention-based frameworks such as Ruby on Rails and Djnago. Play seems to be trying to take the best from the Java web development ecosystem and strip away some of the more cumbersome parts.
From the Play Framework Wikipedia page:
Major differences From other Java frameworks:
- Stateless: Play 2 is fully RESTful – there is no Java EE session per
connection.- Integrated unit testing: JUnit and Selenium support is included in the core.
- API comes with most required elements built-in.
- Static methods: all controller entry points are declared as static (or
equivalently, in Scala, methods on Scala objects). After requests were made
for this to be customisable, Play 2.1 now supports other styles of
controllers, so controllers need not be static/Scala objects; however, this
is still the default.- Asynchronous I/O: due to using JBoss Netty as its web server, Play can
service long requests asynchronously rather than tying up HTTP threads doing
business logic like Java EE frameworks that don’t use the asynchronous
support offered by Servlet 3.0.- Modular architecture: like Rails and Django, Play comes with the concept of
modules.- Native Scala support: Play 2 uses Scala internally, but also exposes both a
Scala API, and a Java API that is deliberately slightly different to fit in
with Java conventions, and Play is completely interoperable with Java.
Riot.js: Minimal MVP Javascript Library
From the Riot.js website:
Riot is a standalone library that weighs 1.49kb (0.81kb gzipped) and has only 3 public methods
Despite the tiny size all the building blocks are there: a template engine, router, event library and a strict MVP pattern to keep things organized.
On a finished application the views are automatically updated when the underlying model changes.