views:

160

answers:

5

I have an application I developed 20 years ago with INFORMIX-SQL version 2.10 for MS-DOS 5.0. I have it working on MS-DOS 6.22, within Microsoft Virtual PC 2007, under Windows Vista, but I would like to re-write this application with a WINDOWS-based RDBMS.

I'm looking for a product, similar in functionality to informix-sql, but for windows which:

  1. Will generate royalty-free (.exe) programs which don't require a runtime.
  2. Quickly prototype screens, reports, stored procedures (app generator).
  3. Integrated Development Environment.
  4. Rich functionality.

I've looked at:

  1. FourJs
  2. Visual FoxPro
  3. Access
  4. Oracle

Any suggestions?

+1  A: 

Take a look at SQL Server Express which is free from Microsoft. You get excellent tooling support in Visual Studio.

--Edit addressing runtimes--

Since a concern about installing runtimes has been brought up, I thought it appropriate to address this issue. Most Windows programmers now program in .Net. The .Net runtime needs to be on the clients computer for such programs to run. This is not really a problem since "Version 3.0 of the .NET Framework is included with Windows Server 2008, Windows Vista, and Windows 7" from Wikipedia. Of course one is always free to write "classic" windows programs in Visual Studio (unmanaged code) if for some reason they do not want to use .Net. SQL Server Express will work either way.

Perhaps my reference to SQL Server is confusing. I do not mean the full blown version running on a server but rather the stand alone runtime on a client computer. This used to be known as Microsoft SQL Server Desktop Engine (MSDE) and is completely free The current version is SQL Server 2008 Compact. Once again this is either pre-installed or easily rolled into a one-click deployment package.

From Microsoft's website:

Microsoft SQL Server Compact is a free SQL Server embedded database ideal for building standalone and occasionally connected applications for mobile devices, desktops, and Web clients. Top Features

Free to use and distribute

Supports desktops and mobile devices

Small footprint for easy deployment

Fully embeddable architecture

No administration required

Single file, code-free database format

Support for ClickOnce, XCopy, MSI, CAB, and non-admin embedded installation options

Supports all Microsoft Windows embedded, mobile, desktop, and server operating systems

Supports a rich subset of Transact-SQL syntax and SQL Server data types

Microsoft Visual Studio 2008 integration

Supports ADO.NET, LINQ to SQL, LINQ to Entities, and the ADO.NET Entity Framework

Supports multiple concurrent local connections

So in summary one can get Visual Studio Express for free and build programs in VB or C# that use the free database runtime. Of course if one wants a more advanced version of Visual Studio costs can rise rapidly.

JonnyBoats
What part about a simple .exe being required for deployment did you fail to grasp and conceptually read in the post? So let me get this straight: You are suggesting to install and setup Microsoft’s SQL server on that computer. Then install the .net runtimes. Then adopt Visual Studio for one’s development paradigm. This is supposed to result in a simple .exe deployment model of a stand alone desktop program to be copied to the target computer and run? I’m trying to come up with a paradyne about leading horses to water and you not grasping how software development works but words fails me here.
Albert D. Kallal
Well actually yes, it does result in a simple click once deployment model _if_ the target (client) computer is running a current version of Windows. Remember that the .net runtime and the sql server engine come pre-installed on Windows so they do not need to be pushed to the client machine.
JonnyBoats
But so does Access, and Access has fewer dependencies and fewer security risks (e.g., SQL Server is one of the most commonly exploited apps when running on client PCs).
David-W-Fenton
Albert and Kallal, I have nothing against Access. I used it extensively for many years back in the 1990s, often as a front end to SQL Server for multi-user apps. I still believe it is a great product. Just like some people like VB and others C, the choice really comes down to what one feels comfortable with.The one proviso on Access is that one needs to realize that with the 2010 release (you can download the beta for free), the development model changes substantially.
JonnyBoats
SQL server is NOT preinstalled on windows desktops. SQL services has to run + startup when the application is launched. You then have to figure out how to shutdown sql server when the application is not running. SQL compact edition is a possible suggestion as it a in-process system just like JET and does not run as a service like sql server. SQL server and running sql server services is not part of the default install on any desktop edition of windows. So your suggestion entails installing sql server and it also entails the management system to start sql server services and shut it down.
Albert D. Kallal
As for the development model in access 2010? It is not much different then access 2007 ( from a UI point of view). The big changes in 2010 are the ability to create web forms and web applications. There also the ability to consume web services and a slick new web browser control. If you ignore new features then the classic VBA development model is same as it always been. If you ignore the new features such as stored procedures and data triggers then developing in access 2010 is really no different then developing in the previous version so I not sure what you mean by big change?
Albert D. Kallal
MSDE has been replaced by sql server express, not by sql compact edition. That compact edition of sql is a in process file based data engine (just like JET). If you are talking about compact sql then yes it is a great suggestion on your part. MSDE or sql express is a different beast altogether. By the way, I not trying to throw bath water on your suggestions. You are giving out advice and participating in this community by offering help to others here and I respect that. SQL express can be used for standalone programs, but JET or sql compact edition as you now note makes a lot more sense.
Albert D. Kallal
@JohnnyBoats: Exactly how do you believe the A2010 development model changes? There were large enhancements to macros introduced in A2007 to support VBA-less applications (so that untrusted apps could be run), and that has been expanded in A2010. The main reason for this is not so much untrusted applications as the fact that this is a great way to insure that program flow can be ported to Sharepoint. But nobody is forced to use any of these new features, any more than one is forced to use ACCDB. In all cases, you use it if you benefit from it, and continue as normal if you like.
David-W-Fenton
David- You asked me "Exactly how do you believe the A2010 development model changes?". As you pointed out "There were large enhancements to macros introduced in A2007 to support VBA-less applications (so that untrusted apps could be run), and that has been expanded in A2010."The point I was trying to make is that the new features in 2010 are a substantial upgrade so that if someone is considering using Access they should not base their decision solely on 2007.
JonnyBoats
@JonnyBoats: OK, I accept that a runtime library is needed, just as a separate database engine is needed for client development tools. So, as Access2010 has been released, do I have to pay anything to Microsoft everytime I sell my Access'10/SQL-express based app?..Did Microsoft make Access'10 easier to rapidly develop apps or should I resort to a tool like RadVolution?
Frank Computer
Frank For a question like Access vs RadVolution I am not the right person to answer since I am not familiar with RadVision.As to the question "Did Microsoft make Access 10 easier...", well Microsoft would certanily claim so. If you want to use Access, I recommend using the latest version. (better support etc.)Microsoft provides a free Access 10 runtime that you can re-distribute (you still need to buy a copy of Access to do development). See: http://blogs.msdn.com/b/access/archive/2010/05/10/download-access-2010-runtime-database-engine-redistributable-and-source-code-control.aspx
JonnyBoats
A: 

FileMaker pro is a good alternative. Not quite sure about the "royalty-free" part though. It is cross platform as well.

HTH

ring bearer
+2  A: 

Access fits this bill with the exception of needing a runtime.

I can’t imagine really much of any decent RAD development tool that does not require some type of runtime. I mean even going back to FoxPro DOS days, you still had to provide a runtime, and for development of all versions of VB all the way up to VB6, then you had to ensure and provide a runtime (on the other hand, it immensely helped that Windows XP, vista, and windows 7 all shipped with visual basic runtimes).

In fact, even when you produce executables using the .net development, again you have to install a runtime system.

Keep in mind that one great advantage of an executable runtime system , is once the runtime system is installed on the target machine, then your updates are simply a x-copy development paradigm. Thus means each update to your software is simply a copy of a new program without needing the support libaries.

For example Access has a terrific and very rich reporting system. Once the runtime is installed. Then each new update to your software will result in very small if any growth at all in the resulting application size. Deploying that new application will generally as a rule be very small in size. It does not make sense to redeploy and reissue all of the runtime bits and pieces that that application environment requires. With a runtime system you only do this ONCE.

So while there are some downsides of requiring a runtime system, there are also some significant upsides. Those advantages particularly show themselves when you’re offering many frequent updates to your software. Of course once the development cycle is complete, and updates and new feature request become quite rare for your software, then I would certainly concede that having a stand alone executable system has its advantages.

For the most part the combined philosophy and approach of our WHOLE software industry has much left behind the concept of a stand alone executable. So, Just about any decent and productive development environment today will require all kinds of things like connectivity to the web, rich report writers etc.

To be fair there is a trend towards what we call application virtualization application or app streaming in which in a complex application with many dependencies is deployed as a single .exe. However, despite deploying the application as a single .exe, the development paradigm and tools used to create that .exe still requires a Feature rich runtime package to be included with that .exe, it just hidden to the OS and this application virtualization concept does solve the .dll breakage and dependencies issue very well indeed.

So Access offers completely royalty free distribution, but you have to produce you install package that includes a runtime.

However I can say this is really much different than what we’ve had for many years with visual basic, the old DOS FoxPro, or now .net. It standard fair you need a runtime, and going all the way back to Foxpro or DBASE days that was also the case.

Albert D. Kallal
+1  A: 

Try Oracle's free windows database XE (Express Edition) available for a quick and easy download and install from oracle.com

It's 10g (not the latest oracle version, which is 11g, but it's unlikely you'll need any of those newer features).

It comes with APEX which is Oracle's easy to use IDE (Integrated Development Environment)

We're a big oracle user and we use this for local development because it's so quick and easy to install and use. We then port that code into their industrial-strength enterprise databases for 'production'.

geekzspot
+1  A: 

Visual FoxPro 9.0 SP2 is an ideal fit for this, because the database engine, reporting tool and so on are all first-class and integrated into the product. It can easily handle huge databases and many concurrent users.

The only problem of course is that it is nearing official end-of-life, will never be 64-bit, everyone thinks it's dead because that's what everyone says on Google and so on.

MS Access would also fit the bill except I would have question marks over the richness of user interface available there, and scalability.

You could also consider RealBasic perhaps ...

Alan B