Search code examples
databasewebdesktopenvironmentlan

Need suggestion on database development environment


I'm in a process of developing a database application that would serve several (> 20) clients though a local area network. Basically, they should be able to access a client application with a certain UI, fill some text fields and post the data to the database. Certain users, (lets call them power users) should be able to access the data posted to the database, perform some tasks on it and store it. I'm thinking of several approaches to this : Put a computer on that network, to play a role of a server. It should run 24/7

1.Install a web server on that computer ( maybe a simple WAMP, XAMP server) and make the whole system web-based. Clients would fire their web browsers, connect to that server and access a web page, where they could fill in their data and post to the database. Same thing with the "power users". It's all good, but I'm not really sure how rich the UI should be, maybe at some point they would need powerful UI controls (datagrids, listviews, treeviews with icons) and all the nice UI controls a desktop apllication can offer. Also nice reporting systems, like generating reports from database queries that look like Crystal Reports, Quick Reposrt etc.

2.Make a desktop application that is accessed trough the network. I will most probably loose the handheld devices, like phones, tablets, and probably loose other OS like Linux for the users, if I require them to run a Windows application, but.. That would solve most of the problems with rich, responsive UI and reports, but what development environment and database server should I use ? I'm thinking of Borland Delphi 7, Borland C++ Builder 6.0, Qt Creator, Microsoft C# or something else. What database - MS SQL Server, SQL Express, MySQL, MS Access, Oracle or else. Basically, what language(IDE) + what database server should I use for such a task, if I go with the desktop-application solution ?

More generally, Web-based (that would support everything that has a browser) or desktop application that would have nice UI and reports, or what about both ? What would you suggest?


Solution

  • I try to answer based on my experience. Is not necessarily the best approach but is what I already tried (with all the inherent successes and fails).

    1. Lets say

      • you have the "know how" to implement a web based application
      • you have enough time
      • Then I would go with Oracle and ExtJS/Birt. Oracle is the most flexible and versatile for a database developer. You can implement all your app logic in the database and ExtJS has all the tools you need for a nice, reach and responsive UI. They also have support for handheld devices. For the application server you can choose PHP or Java. You will have A LOT to work until you build the framework and you might seriously fail if you have a clear deadline. And if you work alone and if you have also other projects in work, you will surely fail to reach your deadline.
    2. Lets say

      • your client cant wait until you build your web based framework
      • you want more time to analyze the application logic and support, etc.
      • you want to spend as little time as possible programming
      • Then the fastest way I know is SQL Server and MS Access as UI. I tried it a few times and its rally fast. And you don't necessarily lose handheld devices. But unfortunately you and your client will became dependents on Windows. In case you are already using Windows and nothing else, this is not a real problem, I don't believe you will convince them to switch on Ubuntu. And also the costs regarding the Windows plus the development costs will be anyway less than 1.
    3. Lets say

      • you have time to study something new
      • you want something between 1. and 2.
      • Then try Ruby on Rails or Python or ask another question on stackoverflow regarding the best web based framework (I'm also interested).