From: Ilias Lazaridis Date: 2005-02-20T03:04:58+09:00 Subject: Re: [EVALUATION] - E02 - Nitro, a Ruby Based WebFramework Ilias Lazaridis wrote [the answers given on nitro-devel]: > Ilias Lazaridis wrote: [...] >> jamStack - Technology Collection >> >> [V0.4 - draft] >> >> This is the main page of the fictive technology collection jamStack, >> which serves as an evaluation template for real live technology and >> tools collections. >> IDE >> >> An IDE is not contained in this technology stack. An IDE supports this >> technology stack (and possibly adds/enhances some of the functionality). > > Nitro/Og does not provide or require an IDE. You can use the IDE > that suits you. ok >> Analysis&Design >> >> * OOAD - Think, Analyze and Design in a straight Object [or >> component] Oriented way > > Supported ok. I assume that designing is based on standard ruby objects. Or did you use any form of an component-model? >> * Use of metadata within the design (on text level [code file]) > > Supported Which metadata mechanism do you use? How is this metadata stored? >> * Fully synchronized Code level and/or Visual design. > > Not available See further below. >> Code Generators >> >> * Use of predefined and user defined code generators > > Supported at run time or development time, Nitro/Og generates most > of the code for you. What mechanism does nitro use for the codegeneration? * a standard / third party one? * an own implementation? >> Deployment >> >> * Initial design runs on local client. > > Supported (Webrick, SQLite3) http://www.webrick.org/ >> * Ability to transform design to run on higher grade systems >> o High Load Systems (load balancing, clustering ) >> o large scale OODBMS [INSERTED] >> o large scale RDBMS [/INSERTED] > > Supported (FastCGI, Postgresql, Oracle) This answer referes to RDBMS. I have corrected the document to contain both (RDBMS, OODBMS). http://lazaridis.com/case/stack/index.html#deployment I assume at this point that nitro does not support OODBMS bindings. >> * Ability to transform design to run on embedded devices. > > Partially supported (Webrick, Ruby on WinCE) ok >> Persistency >> >> [An evaluation template for ObjectRelationalMapper (ORM) can be found >> within jamORM.] >> >> * Persitency layer results directly out of the Object Model > > Supported (Og) ok a question: Changes to the object-model are trasfered down to the relational database schema in an automated way? >> * No need to deal with persitency tools, xml-config-files etc. > > No configuration at all, use standard Ruby objects. ok [how is the metadata entered/encoded/stored, see further above] >> * Provides persistence-design-metadata >> o accessible by code-generators >> o accessible by runtime > > Supported (prop_accessor mechanism) I assume "prop_accessor" is a standard-ruby-mechanism. >> * Flexible Technology usage >> o RDBMS or OODBMS >> o Embedded within app >> o or on seperate server > > Supported, Og uses RDBMS backends to emulate an OODB environment. ok >> * Easy migration mechanisms >> o Technology A to B >> o Vendor A to B > > You can switch backends (for example go from Mysql to Postgres) by > changinf a single line. does this switch include: * automated schema-migration * automated data-migration >> Security >> >> * Flexible security system >> o Security inheritance >> o Plugable security systems >> * Supports several encryption strengths Does Nitro/Og provide any security mechanisms? >> GUI / Webinterface >> >> * Exchangeable GUI System I assume that a local GUI (like GTK etc.) is not supported. Can you estimate the effort to decouple the GUI subsystem? >> * GUI is decoupled from Business Objects >> * Automated creation of Objects [Components] webinterfaces >> o display Objects >> o create Objects >> o edit Objects Any automation provided to create standard CRUD (Create, Read, Update, Delete) GUI's? >> Visual Modeling >> >> * Use of UML to model the design >> * Code level defined metadata is available/editable within UML tool >> * Uses same code-generators that are used within IDE / Command-Line Nitro deals mostly with Ruby Objects. Visual Design via any UML tool, which support user implementable code-generators/parsers should be possible. Please correct me, if I've overseen somethin. A question: can I call the Nitro/Og code-generation tools via the command-line? >> Automation >> >> * All production steps should be automated or semi-automated. >> * Automation is based on user-defined rule-systems. >> * Manual processing can always override automations. > > Automation / Code generation is the main feature. ok >> License and Standards Requirements > > BSD licence What are the main characteristics of the BSD license? e.g.: Does it allow close-source propietary extesions? >> The combined technologies include one or more programming languages and >> should fulfill whenever possible the following prioritized basic >> requirements: >> >> [For programming languages: at minimum the "execution environment" or >> "runtime".] >> >> * Based on Open Source (FSF freedom, OSI extensibility) >> * Based on Open Standards >> * Platform independent >> * Language neutral >> >> Examples >> >> * ODMG - object persistence >> * CORBA - distributed systems >> * ... .. -- http://lazaridis.com