Does anyone have a database programming language / framework for a system of access points GUI?

Our company has a sales system with many additional features, such as order and reception functionality, sales and order history, etc. Our main problem is that the system was not developed properly from scratch, so it takes too much time to fix and process requests from our customers. In addition, the current technology that we use (Progress database, Progress 4GL for the language) incurs a lot of licensing costs for our customers because of the mutli-user license fee for connecting to the database, etc.

After much discussion, it looks like we are likely to start from scratch (while maintaining the current product, at least for now). We are looking for a couple of things:

  • Build a system with a nice GUI (currently, CHUI and the application were not built in such a way that we could redesign the interface ... without splitting or separating the business logic and gui ... shudder).

  • Create a system with the ability to modulate various functions so that the product does not include all functions. This will reduce the cost of our current customers who want to have basic functionality and lower the price. Bells and whistles will be available to those who want them.

  • Use the right design patterns so that the product can easily add or change any part at any time (i.e. change the database or change the external interface without having to rewrite the application or most of it). This is a problem today because 4GL Progress code is directly compiled against the database. Small changes to the database require a lot of recompilation of the code.

Our new system will be based on Linux, with the ability to use a client application from one or more windows.

So, I am looking for any suggestions about which databases and / or frameworks or programming languages ​​can be recommended to someone for this kind of products. Anyone with experience in this area can point us in the right direction or even have some ideas on what to avoid. We looked at .NET and SQL Express (we don’t need an enterprise-level DB), but this will limit us to windows (as far as I know, one way or another). I heard about Mono for writing .NET code on Linux, but I don't know about it yet. We also looked at Java and MySql based implementations.

To summarize, we want to do the following:

  • Stop licensing costs for the technology that we will use to develop the product (Oracle, yikes! MySQL, nice.)

  • Provide a solution that is easy to maintain and maintain.

  • A solution that has a component that can run on "old" equipment through the CHUI interface. (some of our customers have 40+ terminals that will be tons of cash to convert them to a PC).

Suggestions will be appreciated.

thanks

[UPDATE] I should note that we are currently conducting a general cost analysis. This question is intended to give us a couple of “educated” options that could be included in the analysis or analysis. Anyone who could share experiences / suggestions on client / server settings would be appreciated (and not just those who have experience working with points of sale ... it will be just a bonus).

[UPDATE]

For everyone who is interested, we ended up working with Microsoft Dynamics NAV, LS Retail (a plug-in for a point of sale and much more), and then did some (and currently working) work on setting up on top of this. This setting gave us additional benefit from the presence of a fully integrated g / l system, which our current system lacked.

+7
database frameworks client-server point-of-sale
source share
5 answers

I suggest that you first study your limitations a little more - you made a link to the client using a certain type of terminal - this may limit your options if the client does not agree to the update.

You need to do more work on this. It is great to receive opinions from web forums, but we cannot know your environment as well as you.

My tips for wide sweeping will focus on widely used technology. Thus, experience on the platform is cheaper than niche technology, and it will be easier to get help if you hit a brick wall. Of course, after this advice it may not be possible if you have a non-negotiable technology that already exists with customers.

My second suggestion was to complete a complete project plan, with detailed specifications and proper cost estimates, before proceeding with the rewrite from scratch option. Right now, you are saying that it would be cheaper to rewrite the system than to maintain it, and you really don't know how much it will cost to re-record.

+1
source share

Java for the language (or Scala if you want to be a “bleeding edge”, depending on how you plan to support it, and how your developers look alike, maybe better, but worse)

H2 for database

Swing for GUI

Reason: free, portable, and fairly standard.

Update: the part where the client-server has to be installed is missing. My assumption was that the database and the client should be running on the same machine.

+2
source share

I suggest you use a browser for the user interface.

Organize your application as a web application.

There are tons of options for the back-end. You can use Java + MySQL. The Java byte will save you from discussing windows / linux as it will work on both platforms. You will not have any licensing costs for Java and MySQL. (Edit: There are definitely many other languages ​​that have runtimes for Linux and Windows, including PHP, Ruby, Python, etc.)

If you take this route, you can also consider the Google Web Toolkit (GWT) to create a browser-based interface in a modular way.

One word of caution. Browsers can be annoying when it comes to memory management. In our experience, this was the most important task when working with browser-based POS. You might want to check out Adobe Flex, which works in a browser, but may be more civil in memory management.

+1
source share

What is CHUI? Character-UI, as in VT terminals? Or even a 3270 style?

It seems that you need a three-tier system - the database backend, the middle level, which runs the bulk of the business processes on the internal server, and the interface level for the CHUI / GUI / data-gateway.

All three layers can be on the same machine; or you can distribute levels to different servers. The external interface will manage the actual terminals, whether it is VT terminals or a web browser, or a user client application.

Make sure you consider your hardware needs here: are you going to have barcode scanners, cash drawers, POS debit / credit terminals, etc.? If you use a standard browser, it can be difficult to integrate these elements reliably. (At the very least, you probably have to write special applets to handle them.)

Finally, consider using thin client technology in Windows. This greatly simplifies system management since you only need to update the software centrally. Thin client PCs are cheap - less than $ 200.

+1
source share

Golden Code development (see www.goldencode.com) has the technology to automatically convert Progress 4GL (schema and code ... the entire application) into a Java application with a relational database (for example, PostgreSQL). They currently support a very complete CHUI environment, and they are reorganizing the code. For example, a transformation divides the user interface, data model, and business logic into separate Java classes. The whole result is a replacement compatible with the original (users do not need retraining, processes do not need to be changed, data is also transferred). This is possible because they provide an application server and a set of runtime classes that provide this compatibility. The result of automatic conversion is not something that requires further editing before you can compile and run it. Terminal terminal support is included, so the hardware terminals still work (access to NCURSES with Java requires a small JNI library). The rest of the code at runtime is pure Java. The resulting system does not use Progress Software Corp. technology, and it works on Linux.

At least one transformed system is already in production, operating in a critical environment from 24 to 7. This is a transformed ERP system that their experienced mid-size client uses to run their entire business.

+1
source share

All Articles