Here’s a new idea (well maybe not too new). How about taking an existing database and then building a new front-end to it. I think there are a lot of applications running in companies that are not really up-to-date. Especially with their user-interface. They might even still be Dos/terminal based. Why are these applications still being used? I think it is because they do (almost) exactly what they have to do and they have proven their worth for the company.
Why aren’t the UI’s updated? Maybe that’s because the support for this application has ran out. Maybe it’s because the people who developed this application are no longer working for the company anymore. Maybe the supplier doesn’t even exist anymore. There can be a number of reasons.
Only thing that might be a problem is the user interface. The users are getting used to windows applications, with an XP (or maybe even Vista) look and feel. They might like it if their business applications got this look and feel too. If there are multiple applications running in a company, that were made by different suppliers (external or in-house), then the user also has to know and understand all the different interfaces. What if we could take the database (any database) and create new front-end to this. What if we could convert the database(s) to a standard platform. My preferred platform would be Oracle, but if the company uses SQL Server for instance, that shouldn’t be a problem. In the company I work for (VDA), we have created a framework for Delphi development which is based on an Oracle backend. To create applications using a SQL Server database, we would ‘just’ have to change the database connectivity layer to work with SQL Server (or any other database for that matter).
The nice thing about this approach is that the application will be based on the provided datamodel. All we would have to do is import the existing datamodel into an Oracle database (even without the data) and then use CodeGen to generate the basics of the application. Why use the Oracle database as an intermediate? CodeGen is only available for Oracle. If we only generate against the tables and views, we can even use Oracle 10G XE as an intermediate database (this is because CodeGen still relies on Java code to generate against PL/SQL Code. This should be changed in a (hopefully the first) future version).
For the framework to create working code, there is no need to generate against code, so we could even stick with Oracle 10G XE as our database to run the ‘new’ application. If the customer wants to, he can change his database to Oracle in the process, without losing any data. That would also mean that the backend can be updated to use stored code, which can in turn be used to speed up lengthy processes. If the data and or code exceeds the limits of XE, then they can easily upgrade to a more feature rich (and paid for) version of Oracle, without having to worry about the front-end application ‘breaking’.
This might be a good thing for some applications to be ‘dragged’ into the 21st century. Get rid of those old interfaces but keep all the (historic) data in place. I think it can even be used to create a more uniform way applications work within one company. Hopefully we will be able to do this in the (not to distant) future.