views:

69

answers:

3

I am interested in developing a new SQL-based RDS which can generate prototype CRUD-oriented 4GL code which can then be easily customized. So I am looking for opinions, suggestions, etc. in what features should a new RDS have?

I have looked at several products. FileMaker is more or less the type of product I'm looking for, but it's not SQL-based. Informix 4GL and 4Js are what comes closest, but the lead time for customizing/debugging seems to take a long time.

+1  A: 

See the feature list of Oracle Application Express for some good ideas.

ObiWanKenobi
I've already looked at APEX. Although it has a pretty good app generator and front-end, it runs on a web browser and my app is just a simple CRUD app. However, since the 4GB-data limit engine (10g) and dev tool is free, I haven't ruled it out.
Frank Computer
+1  A: 

I've used a few of these tools and things that come to my mind are:

1/ automatic joining on foreign keys

2/ keeping columns in the same order as the table in the code

3/ dynamic code generation, no separate code generation stage

4/ undo on table changes

5/ prototyping features to enable actual data to be modelled during development

6/ hide column feature

7/ SQL import for those tricky bits

8/ code locking on tricky bits

9/ version control

10/ segmentation into namespaces

11/ Language templates for easy addition of extra code languages

I think going to an intermediate 4gl first would be good and then a second stage to render code in the language of choice would be good.

I hope this is of some use to you, good luck!

MikeAinOz
Can you tell me specifically which tools you have worked with and what strength's/weaknesses they have?
Frank Computer
I'm not to sure I can answer this simply or briefly. I wrote a CRUD module generator many years ago that used templates and placeholders. That was really good except it just did all the tables in a database and generated code and SQL; the strength was in the template the weakness was that it wouldn't just do updated tables. I felt that it needed a dictionary to specify which tables to generate, also it don't do views. Handling of auto-increment keys is always a bit dicey as is date/time updated fields that are updated by trigger. So I'd like to be able to globally exclude certain fields.
MikeAinOz
Agree with version/source control especially. I'd want to be able to do a simple diff between different versions, so I'd expect to extract versions in some sort of readable format.
Gary
+1  A: 

Depends on the market you are aiming for. In your place, my first decision would be whether to link it to a specific RDBMS implementation (which would be Oracle, SQL Server or mySQL) or to try to make it flexible to use amongst any of the major databases. The latter would obviously add massively to the complexity (development, testing, support).

The second would be the OS platform. Something that is specific to Windows (or perhaps Windows Vista/7 upwards) or can be used on Linux, OSX etc. 32bit/64bit would also be a consideration here. I'd need to know that it can run on 64-bit Windows 7 at least.

Thirdly, what do you develop your Rapid Development Tool in. Dot Net would pretty much be Windows only. Java or Python offer more choice.

Fourthly, are you making this as a commercial product, or as open source (or both). Bluntly, if I was looking at buying such a tool to develop my XYZ product in, I'd be looking at long-term support. If the tool doesn't have a five-year pedigree of ongoing support, I'd be very hesitant and would only consider it if it came from a company of the likes of Microsoft/IBM/Oracle/Apple with some serious history in the field. And even then I would be skeptical (search on Microsoft's Oslo/Quadrant/SQL Server Modeling).

I'd also be looking for professional tech writers for the documentation.

Gary