Question

I'm looking at upgrading a POS (Point Of Sale) project which is currently built in FoxPro to .net. The planned architecture is quite complex and there is plenty of rationale behind the new technologies chosen. Some of the requirements include the ability to have both desktop and web front end (where web front end has limited functionality), syncing data with an external website and the ability for multiple clients to run off of 1 server. My current model of choice is an MVP pattern with Sql Server (probably Express) as the DB, and a WCF service layer between the presentation and services in order to allow for remote UIs.

My concern is that during my research I have noticed that there seems to be a common theme amongst touch screen POS systems to build them in FoxPro.

Apologies for the slightly subjective question however I am keen to find out if there is any particular reason for this? Does FoxPro have any particular out of the box functionality that lends itself to this type of system? I have not used FoxPro and so before finalising my choice of technologies for this project would like to make sure I am not missing a trick by ruling it out completely.

Was it helpful?

Solution

Licencing - SQLserver didn't run well on client OSes and was expensive.

Foxpro was cheap and easy.

If all you are doing is retrieving price values from one table and updating sales in another, then SQL is rather overkill.

OTHER TIPS

Probably because FoxPro is a POS.

(I kid, I kid.)

foxpro was an inexpensive and fast database. It was probably chosen because it was a good match for their requirements at the time it was designed.

Many POS systems have a standalone capability so that the store can continue to trade even if the connection to the in-store server(s) is down.

Typically this means a local database for price lookup etc, and local storage of transaction data until the server connection comes back up again.

The hardware and licensing costs need to be as low as possible.

Hence FoxPro was a good choice a few years ago, but a properly architected .NET application would be an excellent choice today.

Many PoS systems date back to before SQL databases became popular on desktop machines so very many still use FoxPro or other xBase-style database. As PoS systems are generally single-user and single-tasking, there was very often no compelling reason to upgrade to a fully-fledged SQL database engine.

FoxPro had a few advantages at that time. I can remember that for many many years all the new concurrent DBs laked at least in on place, so we choose FoxPro over and over again for now POS solutions:

  • it was fully integrated database - so an out-of-the box solution
  • it was really cheap compared to the alternatives (as other users have pointed out too)
  • it ran on cheap hardware - for moderate sizes (like most customers required).
  • it had a simple to learn and intuitive integrated environment, so no extra tools were required.
  • it was very very easy to create very nice reports at that time (managers liked it allot, and since they made the decisions mostly... :) ).
  • FoxPro was a learning course in almost all IT schools, so it was very cheap and easy to find FoxPro specialists. Especially in eastern European countries, their number is still huge (many POS software was outsourced there).

There are still an incredible huge number of FoxPro legacy applications (especially in small and medium companies), so this is not just a POS issue.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top