Hi,

I'm anouncing the beginning of a standalone ruby application server called
Ruby.APP
 
Status: server: design phase
        basis libraries: alpha

I've been developing web applications for more than 5 years now with
C, Perl, Python, Java and different relational databases. For this
I used a lot of frameworks, read about a lot more and now I want to 
build the best enviroment for easy and fast development. 
Think Zope and Web Objects meet J2EE and .NET. 

The most important design goal is *ease of use*. Ruby.APP will
provide the easiest way for building web applications 
(from my point of view :-)

Where to use Ruby.APP:
- Easy and fast development of web applications
- Rapid Prototyping then implement the application in e.g. Java
- Explore new concepts for web applications e.g. P2P like IBM uServ/Vinci

Where not to use Ruby.APP:
- Integration of legacy applications
- Integration of existing databases
(Both can be achived by integrating other ruby modules)
- Mission critical systems
- Module for web servers
- Ruby.APP will not try to solve *every* problem like 
  some frameworks try. For ease of use Ruby.APP will sacrifice
  flexibility.
- Design-to-the-pixel websites

How is the goal of easiest enviroment achived:
- Object Store: You do not have to write SQL queries.
  Objects can be stored, retrieved, found and changed.
  Relationships are automatically managed. 

- Integrated Database: By using Aruna, for a lot of projects
  there is no need for an external database. Ruby.APP works out of
  the box. Applications can be very easily reconfigured to use a 
  SQL database, should the need arise. All code is generated from 
  a business domain description in XML.

- Standalone application server: No need to install and administer
  Apache or IIS. Ruby.APP works without a webserver. This way Ruby.APP
  applications can be installed and used on desktops by ordinary users.

- Component based: For building HTML GUIs Ruby.APP uses components.
  The developer has not to deal with HTTP, requests, browsers and sessions.
  Instead the architecture is event based. Perhaps models will be used
  for ROTable etc. to foster reuse.

- Good Documentation: A lot of frameworks have nice ideas but bad documentation.
  Ruby.APP will be delivered with RubyDoc documentation, a tutorial for 
  building your first application and a real world blue print application.

- Integration with IDE GUI builders and UML: The component based approach
  makes the development of GUI builders and the design with UML tools easy.

- There will be higher level components that can be used in projects 
  (eCommerce, user management, security etc.)
  
- Ruby.APP is free and open source (LGPL, BSD or Apache, I'm not sure)

Ruby.APP is based on two other technologies:

Ruby.RDO (Ruby Data Objects): Persistent objects libary.
        Will be delivered with two providers for DBI and
        Aruna. The DBI provider uses connection pooling 
        and configuration with XML datasources. Aruna provides
        an embedded database. I wish for XML, RDBC and OODMS providers.

e.g. you have a one-to-many relationship between department and employee.
To list all employees of department "1" you only have to do:

factory = ObjectFactory.getFactory(Department)
department = factory.find(1)
puts "Department: #{department.name}"
department.employees.each { | employee |
  puts "  Name: #{employee.name} Lastname: #{employee.lastName}"
}

Ruby.RO (Ruby Objects): An component based web application
        enviroment like Web Objects but with some ideas from
        other GUI libs like Swing.

For outputting the employees as a HTML table (component)

table = ROTable.new(ROListTableModel.new( department.employees ))
print table.to_x


thanks for reading this anouncement,
bye
-stephan

http://www.javangelist.de