perlquestion
jfrm
<p>I'm writing prototype code to establish proof of concept for a web database app. I have DBIx-Class working and searching OK.</p><p>
I'd like to use webforms (just basic CGI HTML), first to just to search and show results from searches but also to do CRUD/BREAD. I can see a number of modules that might help. I'd rather not guess which are the best modules/methods to use...</p><p>
I've located 12 likely modules and skimmed through the documentation of each + other stuff and reduced my list to 3 options. The others I've categorised according to my reason for rejection underneath. I would be grateful if anyone can:<ol> <li>comment on the validity; compare/contrast these 3 otherwise help to decide which is most appropriate</li> <li>comment on the wisdom of the elimination of the other candidates</li><li>Suggest another candidate that I missed?</li></ol><p>Otherwise, perhaps the list will be useful to other beginners anyway.</p><p>
<readmore>
<u>Based on DBIx, sounds straightforward</u>
<code>
DBIx::HTMLinterface
Class for creating a CGI interface to a database
DBIx-HTMLinterface-0.11 - 15 Dec 1999 - James Furness
[The DBIx::HTMLinterface class allows a CGI interface to a database. It enables a CGI interface to a database to be created, supporting record addition, modification, deletion and searching. It provides a user friendly interface with descriptions of fields provided. The field descriptions along with information on whether the field is visible, hidden or excluded are extracted from a table, allowing easy modification and addition of fields and tables without having to edit code.
Features
Simple database administration. Forms are created automatically on demand, SQL statements are generated as needed and processed. The module contains enough autonomy to potentially run with only wrapper perl code placed around it.
Full form configuration
Forms can be modified to add descriptions and extra information to fields, making it easy to change output without having to edit code.
Control
Extensive callback procedures and configuration options allow output, password protection and logging to be configured as desired.
Full HTML customisation
HTML output and table formats can be customised easily by the user.]
</code>
<code>
DBIx::HTMLView
For creating web userinterfaces to DBI databases.
DBIx-HTMLView-0.1 - 01 Oct 2001 - Hakan Ardo
[This is a general propose module to simplify the creation of web userinterfaces to a DBI database, currently it can list, view, add, edit and delete entries in the databse using either <input ...> or <textarea> to gather the info. Se the new method description for info on how to define the database format and how the fields should be edited.]
</code>
<code>
CGI::FormBuilder
Easily generate and process stateful forms
CGI-FormBuilder-3.0401 - 08 Sep 2006 - Nate Wiger
[Nate: As for feeding DBIC directly into FB w/o Catalyst, all you really need is to use get_columns and pass this list into FB->new. A simple form will be created automatically.]
</code>
<u>Based on Catalyst or otherwise similarly frightening</u>
<code>
Catalyst::Plugin::FormBuilder
Catalyst FormBuilder Plugin
Catalyst-Plugin-FormBuilder-1.05 - 07 Sep 2006 - Nate Wiger
</code>
<code>
Catalyst::Plugin::CRUD::DBIC
CRUD (create/read/update/delete) Plugin for DBIx::Class
Catalyst-Plugin-CRUD-0.13 - 28 Aug 2006 - Jun Shimizu
</code>
<code>
DBIx::Class::HTMLWidget
Like FromForm but with DBIx::Class and HTML::Widget
DBIx-Class-HTMLWidget-0.06 - 15 Jun 2006 - Marcus Ramberg
[ You'll need a working DBIx::Class setup and some knowledge of HTML::Widget and Catalyst. ]
</code>
<code>
DBIx::Class::InstantCRUD
Like DBIx::Class::HTMLWidget but handles relationships and extra info in the columns_info metadata. It also has methods to put DBIC objects into HTML
Catalyst-Example-InstantCRUD-v0.0.14 - 23 Aug 2006 - Zbigniew Lukasiak
[You'll need a working DBIx::Class setup and some knowledge of HTML::Widget and Catalyst. ]
</code>
<code>
DBIx::Class::FormTools
Utility module for building forms with multiple related DBIx::Class objects.
DBIx-Class-FormTools-0.000004 - 21 Jun 2006 - David Jack Olrik
[The module is not ment to be used directly, although it can of-course be done as seen in the above example, but rather used as a utility module in a Catalyst helper module or other equivalent framework.]
</code>
<u>Based on CDBI - therefore presumably will not have functionalily of modules based on DBIC</u>
<code>
CGI::Application::Plugin::BREAD
Plugin for Dynamic Database Management Application
CGI-Application-Plugin-BREAD-0.12_2 - 10 Jul 2005 - Jason Purdy
[A lot of emphasis has been put on Ruby on Rails, Catalyst or other type of easy-to-use and easy-to-setup BREAD applications. BREAD (oh how we love acronyms) stands for Browse, Read, Edit, Add and Delete. CRUD (Create, Retrieve, Update and Delete) also suffices, but BREAD just sounds better. Either way you slice it (pun intended), this Plugin will allow you to setup a database management tool for your users in no time.]
[bread_db
This method points the BREAD plugin to what database to work with. There's a lot of flexibility in the parameter choices. You can provide an array reference of Class::DBI classes or Class::DBI::Loader. This method will inspect your parameter by looking at its reference.]
</code>
<u>Incomprehensible, inappropriate or dubious</u>
<code>
DBIx::Web
Active Web Database Layer
DBIx-Web-0.62 - 30 Jun 2006 - Andrew V. Makarow
</code>
<code>
DBIx::Browse::CGI
Perl extension to browse tables with a CGI interface.
DBIx-Browse-2.09 - 10 Dec 2002 - Evilio Jose del Rio Silvan
</code>
<code>
[I couldn't find a module called DBIx::HTML which is strange but I found]
DBIx::HTML::LinkedMenus
Convert SQL to 2 linked HTML popup menus.
DBIx::HTML::PopupRadio
Convert sql into a popup menu or radio group.
DBIx::HTML::ClientDB
Convert sql into a client-side db with keyed access.
All by - Ron Savage ::
</code>
<code>
DBIx::CGI
Easy to Use DBI interface for CGI scripts
DBIx-CGI-0.06 - 24 Dec 1999 - Stefan Hornburg
</code>
<code>
DBIx::CGITables
0.001 - Easy DB access from a CGI
DBIx-CGITables-0.001 - 26 Feb 2000 - Tobias Brox
[This module is under development - and this version is not tested very well.]
</code>
<code>
DBIx::HTMLTable
Create HTML table from DBI query output.
DBIx-HTMLTable-0.24 - 17 Mar 2004 - Robert Kiesling
[Note: may be useful for just presenting search results]
</code>
<h4>Update 11 Sep</h4><p>John Siracusa has pointed out that [CPAN://Rose::HTML::Objects] is another alternative.</p><code>Rose::HTML::Objects
Object-oriented interfaces for HTML.
Rose-HTML-Objects-0.53 - 14 Jun 2006 - John Siracusa </code>