Ask Slashdot: Linux Database GUI Application Development?
New submitter msubieta writes I have been developing some applications to use in small businesses using Windows and SQL Server. I would like to move on and start doing the same thing in Linux. I have looked at several Frameworks/Databases/Development environments and I really don't know what is the best/simplest/fastest to learn approach. I use VS and C# mostly, although I could easily go back to C++. I found Qt and GTK+ are the most common frameworks, but they seem to lack controls that deal with datasets and stuff (sorry, spoiled by the .net form controls), but I also know that I could use Mono in order to make the jump. I would have no problem on moving to MySQL, as I have done quite a lot of work on that side, and I would like to stick with the traditional client server application, as I find it easier to maintain, and a whole lot more robust when it comes to user interaction (web apps for POS applications don't seem to be the right way to go in my view). Any suggestions/comments/recommendations?
Yes, stick to Windows/SQL Server/C#
Have a look at Xojo. It used to go by the name REALbasic.
If you post as Anonymous Coward, don't expect a reply.
Here is a Database Journal article from 2010 listing some useful MySQL GUI development tools that may provide some leads -- http://www.databasejournal.com...
Look into the Lazarus project. It's a Delphi semi-clone.
Table-ized A.I.
C# is basically MS Java. Just go and develop in Java. Why make it hard on yourself?
I'm biased towards Python - and the following suggestions have nice UIs but they are web-based - so please forgive me in advance ;)
After years working in Siebel (UI dev tools, transparent database interface, etc) moved over to Linux dev and was stuck for a while - finally settled on Flask (http://flask.pocoo.org/) a Python micro-framework, which is light (i.e. not as incomprehensible as Django ;) but comes with a lot of functionality if you need it. Jump in. Here's a good guide that mixes in Bootstrap to make a very appealing UI - http://flaskbook.com/
Alternatively, go all ERP with lots of built in business functionality and nice UI features and try ERP Next (https://erpnext.com/) - which I'm looking at right now. It has some poor documentation, but the dev guide for the underlying framework (Frappe) is pretty clear (e.g. https://frappe.io/developers/g...) and looks less scary.
Have you thought about hiring a programmer to do this stuff? It's probably going to save you a lot of time and hassle to go this route than actually doing it yourself.
$5 / month hosted VPS on linux = awesome!
Go is still young so if you're looking from a "language saturation" standpoint, it's not where you want it to be yet but it's gaining traction fast. It will be familiar from a typing standpoint and as a language it provides excellent concurrency, which in certain types of applications becomes a really big help. By learning Go you'd be providing yourself with a language that helps solve a complicated use case rather than just another language that does exactly the same things as other server side languages. It's compile time is almost instantaneous which is similar to a scripting language. Runs well on both Windows and non-Windows environments too, which will make it easier to use it along side your existing .NET stuff if needed.
PostgreSQL as a database is pretty much amazing. Everything you like from SQL Server is there without a lot of the stuff that you don't. Here's a writeup that I did a few months back breaking down what's great about PostgreSQL in as concise of a post as I could. http://www.brightball.com/post...
Since this is a specific "what should I learn based on my current background" type question, that's my recommendation for YOU based on the post.
"Don't teach a man to fish, feed yourself. He's a grown man. Fishing's not that hard." - Ron Swanson
Java FX is your friend
Then you should either write your own QT controls (and sell them or open source them). Or stick with Windows.
I think POS is fine as a web app, as you can run a browser on any POS these days, and have it communicate to a small stub on localhost so that local operations (like system management) and cached/offline operations can still work in case the POS is temporarily disconnected.
That opens you up to doing a mix of javascript for the GUI part, and the server back-end in C++, Java, Python, Ruby, NodeJS, Haskell, whatever. There are good server frameworks for just about all of those (except maybe C++).
“Common sense is not so common.” — Voltaire
LibreOffice Base seems to be what you're asking about.
http://www.libreoffice.org/discover/base/
Learning HOW to think is more important than learning WHAT to think.
Databases are handled with best using web services. If you switch to PHP and MySQL, you will have your work done. You will find excellent documentation and examples on net. And your app will be cross-platform.
I agree except that you don't need Microsoft SQL Server. The C# Entity Framework works just fine with Open Source servers. Also Visual Studio Community 2013 is now fully featured for teams of up to five.
Next version of ASP.NET 5 (aka vNext) which contains MVC6 and Web Api is open source, and it runs already on linux rather easily taken the fact it's just unleashed. After working on Python and Django for years, the C# is godsend with IDE that knows the types. (Soon though Python may support gradual typing since Guido is interested to bake mypy in the Python, but that day is not here yet)
The developer tools are abysmal on Linux side, if you can use Windows to develope your linux applications you are pretty well off.
GTK actually has lots of good widgets for 'data' not sure what that means exactly, forms, spreadsheets that stuff is there, but you are correct anything complex you will have to build up from more basic controls. I would also characterize GTK as a royal PITA even with glade.
Why don't you like web for POS? Honestly there are plenty of great 'data' interfaces. Building your app an in-process webserver that just binds 127.0.0.1 on some high port. There are plenty of frameworks out there that should make building a POS app UI a breeze and because your app is still a local process if you need to do something like trigger a cash draw that should be just as strait forward as anything else you could do.
Repeal the 17th Amendment TODAY! Also Please Read http://www.gnu.org/philosophy/right-to-read.html
Qt has model-driven views. Here's some videos. See #47 for a bit about model-view: https://www.youtube.com/playli... Also, be sure to catch up on C++11/14 if you do come back to us from the dark side.
Having programmed in GTK+, Qt, Java, and C#: I find C# to be the most painful for database interactivity. Its data bound controls (to me) are infuriatingly convoluted, complex, inefficient, and inflexible.
I find it far, far easier to use a tool that generates database models, create readers and writers based on those models to abstract them away from the application, and then use those readers/writers in the mainline application. The payoff is immense.
The closest fit for you is Java (since C# started life as Microsoft's attempt to make a Windows-specific version of Java). The two best IDE choices then become Netbeans and IntelliJ (do yourself a favor, and skip Eclipse).
FIrst decide the right way to solve the problem, then look at the available tools to solve it.
Client server is better at solving specific problems, anything graphics heavy usually. For pure data entry a straight up server side web application is usually the best choice. You don't need to support multiple client installs, just the server instance.
For ease of development: PHP, for scalability, some java based framework (Spring, Wicket, etc...) or even Scala/Play if you feel somewhat daring.
I've been exploring the same route. There are a lot of options but none as mature (from the developer's perspective) as what you are used to. After a lot of search and trial and error,
I've settled on PostgreSQL for database since it is mature, fast, easy to manage, and generally solid. It's really comparable to what you are used to in MS SQL Server.
For languages, I've settled on Java, which I swore never to do. It's not as robust as C# since there was a leadership vacuum for too long at Sun's demise and Oracle's stumbling. It's catching up, though. Just avoid using reflection. It's a dog in Java. Also, don't assume that generics are the same thing in C# as in Java. C# allows a lot of runtime generic goodness where Java allows it for coding but it compiles down differently, stripping out a lot of what you would expect. Other than that it's very close to C# in use and a stable language.
For the IDE, I recommend going with Eclipse. It can be a pain when you are user to VS but it's the closest I've found for maturity and features. Also, being written in Java, the "eat you own dog food" test has proven useful. It's good for Java, not so much for other languages. Not that you can't do a lot with other languages in Eclipse... Lord known I've tried. Use the Kepler or later build. Older versions had some issues, particularly with source control integration. I'm on Luna and it works well on Linux AND Windows.
Another side note: This setup works equally well on Linux, OS-X, and Windows. I've been looking for a solid cross-platform setup for years. Avoiding Java was a waste of time. I miss the C#/VS/MS stack for it's solid performance on Windows but, as you know, it was a no show for every other OS out there. This stack works on everything. It's a pain to switch but if you've been in the business for long you'll be productive again in a week or two.
Good luck.
I'm going to get jumped for saying this, but stick with Windows for fat client development. Unless you are looking at developing web apps, you are going to be almost completely disappointed at the selection of tools available to you on Linux when compared to those for Windows. I'm not saying that there aren't tools for doing this on Linux, but dear gawd, why would you want to when the VS tools are so much easier to work with. And by "work with" I mean get work done. Use MySQL on Linux as your db server, by all means, but do your client development with what you already know.
The company I work at has lots (probably 50% or more) of apps built in-house. Many of them VB6...we're still transitioning to .NET, and aren't even close. The problem we see (and part of why I was hired) is that legacy apps require legacy systems to run them. My suggestion is to go web-based. Deployment is easy, cross-platform is relatively easy, and there are lots of libraries out there for PHP or other languages to make rich user interfaces. The LAMP platform is solid and flexible, but using other languages or databases than mySQL and/or PHP is still fine. Unless you're developing apps for image editing or hard-core word-processing/spreadsheet type stuff, you can do about whatever you want using LAMP. And, the user support community is enormous.
The correct answer is 42.
We're looking at 2 years minimum for .Net Core to be solid and complete for Linux. I've been following this closely. Tools are totally missing as well, which you mentioned. I don't see something like Visual Studio even being ported unless MS abandons the "Windows is dominant" position. If they do, I don't expect a solid showing for VS until 2020 at the earliest. For now you are stuck with Mono, which isn't bad, it's just anemic compared to VS.
Some day, schools will have to start to teach students that there are languages best suited for different levels of the stack - a language used to write a hardware driver is not well suited to build a presentation layer GUI. Know what you're doing, partition the problem, and we'll all be better off.
I get the impression its kinda like MS Access
If you're just developing for the fun of it, have at.
But if your goal is to have a POS application, stop writing code right now. There exist hundreds of off the shelf POS apps all ready. For Windows, for Linux, thick clients, thin clients, web, desktop, green screen, etc...
Your time would be vastly better spent finding an existing product and adapting your business process to it. Especially if it is something that can tie into your accounting/inventory systems.
As the old saying goes, "Good developers write good code, great developers steal good code."
-Rick
"Most people in the U.S. wouldn't know they live in a tyrannical state if it walked up and grabbed their junk." - MyFirs
Parts of .NET is open source. But Visual Studio, are you sure about that?
I'm a big fan of PostgreSQL over MySQL.
Since you're looking at Qt and GTK, I assume that you're writing a local GUI client, not a web app, so what operating system are your users running? Chances are that they are not already running Linux. Unless your product is some sort of turn-key system where you supply the hardware and software, then you ought to stick with whatever operating system your users already have in their offices -- which is probably Windows, possibly OSX, but they almost certainly do not run Linux on the desktop. (yes you can run Qt or GTK on Windows, but why bother?)
Lazarus is pretty good. It is a Delphi like/compatible IDE based on FreePascal. I always thought that Delphi's approach to DB GUIs was the most straightforward.
CodeTyphon is a good cross-platform distro for Lazarus that bundles lots of components. It also specializes in cross-compilation. But you are probably not looking for that aspect. It can target multiple GUI toolkits including Win32, Qt & GTK with the same set of components. I am surprised why it isn't more popular. Perhaps it is because Delphi is not as well known as C++/Java/.NET. While I am not a particular fan of Pascal, the component framework (Delphi: VCL, Lazarus: LCL) makes it worth while.
http://www.pilotlogic.com/site...
Indeed. If VS is FOSS...well... Someone needs to get Eclipse's act together then.
Cake PHP will generate an app extremely quickly if all you want is Create-Read-Update-Delete (CRUD) of records, in a Model-View-Controller structure.
1. Define the database in MySQL
2. Run the delightful commands "./cake bake model all", "./cake bake.controller all", "./cake bake view all"
3. And you are done, 20 minutes after you started. Cake exploits naming conventions to give you auto generation of code, auto lookup of encoded values, etc etc. I have not yet discovered all it can do.
And best of all, you don't need to write any interface code, that is what a browser is for.
"Cock Up Your Beaver" does not mean what you think. This sig is intended to clog filters and annoy do-gooders
Have you considered a Web client? HTML5 + JavaScript + [your favorite server language and ORM]* is a good development stack. It also has the benefit of zero-install for your clients.
We develop complex scientific software and made the decision to go HTML/JS for all our client code a few years ago and haven't regretted it. It takes a little bit of learning the libraries, but there are some good mature ones available to make streamline development.
-Chris
*I've used Django and Tornado+SQLAlchemy extensively for this.
This problem has been solved time and time again using web browsers. Even the big GUI app companies are starting to produce extremely capable versions of non-intensive tools in the browser.
Really for database/form-based apps, I can see absolutely no compelling reason to use Glade or GTK (or C++ or Mono) for this.
Web applications are portable, easy for users to install (they don't have to do anything), easy for users to update (they don't have to do anything), and accessible from just about anywhere on just about any device. HTML/CSS/JavaScript have matured a lot. It is very easy to prototype your application's UI, and easy to develop very slick looking applications with rich fonts, colors, fancy tables, etc. Unless there's some fundamental reason you absolutely must have a native UI, I would never choose a toolkit over the web.
Oracle *did not* completely fuck over the Java community. We're very pleased with the progress Oracle has made getting Java 7 and 8 out the door, open sourcing Java FX, the continuation of Java EE, opening up of the JCP, etc. They've been perfect stewards of Java. What you're complaining about is Oracle sewing Google over their Java implementation based on Apache Harmony. If Google would have gone through the TCK process, they could have made it a royalty free Java because it is open source.
A nice GUI for Postgresql. Check out what tools they are using. Do a few walk throughs with a debugger to see how it works.
putting the 'B' in LGBTQ+
Glom and BOND are your two main graphical database frontend options in the Linux world. Or you could try developing something in the cloud with Google Apps, scripted with Javascript, using a Google Spreadsheet or the Google Drive API as the "datastore". Or you could get even fancier and build a cloud database app with Firebase, it's pretty amazing (and they just released Angular bindings for Firebase, so you get data binding to UI widgets built in).
I'll recommend Qt and C++ as a workable combo. Learn how to use their Model/View architecture and there's a whole lot of fun stuff that opens up for you. Instead of looking for database components, think in terms of writing a data model that happens to get its data from an SQL backend.
I'll also second the recomendation of others to look at PostgreSQL for your backend. When it comes time to deploy your application, PostgreSQL is a lot easier to package and install than SQL Server. The features aren't identical, but they're close enough for all but some very specialized cases. In a lot of those cases, there are tools that accomplish the same goals via a different mechanism.
Easy Online Role Playing Campaign Management
Linux is all the bomb for the back-end, but not the front-end.
If you want to do that way - go for it. But in the world of Windows desktop (which you've already done), there are a lot of other avenues that seem more important. In several places that I've worked - and a lot of scientific and technical places that are big on Linux - MacOS is surprisingly where the desktop is, and the trend seem to be growing. Furthermore, iOS and Android are important "front-end platforms". too.
If you really wanted the Linux support - I would be (and have been) included to go the HTML-5 route. You get Linux, and many other front-ends for free.
In short - unless there is a pretty specific reason to believe you're going to have Linux users on the front-end, I'd stay away.
P.S. This is not going to be "The Year of the Linux Desktop".
You might look at Gambas http://en.wikipedia.org/wiki/G...
VS is NOT. The CLR and the C# compiler are in the process of being open sourced, fully. There is a BIG difference between the compiler and the IDE. The .Net web stack is being open sourced as well, and is now, with OWIN, layered to remove the IIS dependency.
Well, Microsoft is doing their part.
http://msdn.microsoft.com/en-u...
Java has great free and Free development tools like Eclipse and NetBeans. You can also get the community edition of IntelliJ, or a paid edition.
Java, and its development tools, run on every desktop: Mac, Linux, Windows.
If you know Java, then you've already got a leg up on doing Android development; and doubly so if you use Eclipse or IntelliJ.
If you want to develop complex web applications, then Java is the way to go. You can write a large web application in a dynamic language, but maintenance will become a long term problem in a gigantic code base. There is a reason that Java is used for very large websites. (Not to confuse large with high traffic.)
Java is used in high speed trading.
Java is used in the SIM card of your phone. Your bluray player.
Once you are familiar with running Java on the JVM (Java Virtual Machine) you'll discover that there are dozens of other languages that run on the JVM with complete interoperability with other JVM languages. This is because of the common runtime and type system, and because of GC. With GC in the underlying runtime, the entire contract of who is responsible to dispose of what goes away. Did this library create that data structure? Maybe, but nobody has any responsibility to keep track of it and dispose of it.
The JVM is an industrial strength platform. You can have heap sizes of dozens or hundreds of gigabytes. With a dozen gigabytes you can have GC pause times under 10 ms with little to no tuning. If you need hundreds of gigabytes in a single heap with 10 ms GC times, then contact Azul systems who can sell you their Zing JVM. Which brings up the fact that JVMs (like everything in the Java world) has multiple vendors. Don't want to run Tomcat, then use Jetty, or one of several other choices.
Your favorite language compiler emits JVM bytecode which the JVM compiles into native code. It has an extremely aggressive global optimizer. The JVM compiler can optimize globally, something that compilers like GCC cannot do. The JVM can inline other methods into YOUR method. But the JVM can also dynamically reload classes. So what happens if class A is reloaded, but your method now has stale inlined code from Class A? The JVM will de-optimize your method so it is back to running as interpreted JVM bytecode. Now if your method (still) is one of the CPU hotspots, then the JVM will re-compile your method back to native code again. The overall application never stops. The only methods that get compiled to native code are the ones that dynamic profiling proves to be ones that would make a difference to aggressively compile. Call me when you other language runtime can do all that.
Java is where the jobs are. Look for yourself.
There is much more. But I'll stop.
I'll see your senator, and I'll raise you two judges.
Yet another cross platform GUI project (C++), but one I prefer over the QT offering. Further, wxPython (the python bindings) is an awesome package. wxPython Demo (a separate package) is just fantastic. It comes with demos for all the controls and you can cut&paste the synoptic code into your work - it just doesn't get quicker or easier to learn or use.
In the past, QT licensing has been all over the place, so I avoided it. wxWidgets is mature, with a full feature set. Highly recommended in order to be independent from the OS.
Unless you are saving thousands by not paying for Windows Server licenses on 20+ servers, do not waste your time. It will be a lose-lose in speed of delivery and maintainability. Nuget puts things like Maven to shame, Asp.NET MVC beats Java Spring and Ruby in maintainability with tens of thousands of people working on nuget and Asp.NET MVC. The developer community is much larger and friendlier.
thats quite a leet yarn store POS you have
I am a C# programmer by day. It's been my job for something like 5 or 6 years now. For me, the greatest feature of moving to a different platform would be...
NOT HAVING DATASETS!!
The things are a horible crutch! All of our software is Datasets everyhwhere, our programming department has standardized on them as the go-to tool for everything to the point of discouraging any other solution as "making it harder by not using what everyone else is used to."
The problem is Datasets are really nice objects.. for... representing a database. But why would you want to represent a database? With most development you probably already have a database!
Don't get me wrong, I love relational databases. They are great at the data storage level but they should remain there. You shouldn't still be thinking about tables, rows, collumns and joins all the way up to the UI layer. Leave the database stuff for the queries you write within your model code. Write your models to provide an API that reperesents what you are trying to do, not the storage enigine behind everything!
Instead of objects that pretend to be databases (what's the point?) instead write objects that represent widgets, employees, orders and sales or whatever else is apropriate. They should have methods and properties that represent what you are trying to do like product.price and employee.fire() not dsProducts.Rows.Find(productid)["price"] and dsEmployees.Rows.Find(employeeid)["status"] = SomeProject.SomeNamespace.StaticsClass.EmployeeStatus.Terminated; .NET, at least as it is normally used sucks, it encourages bad code. Run away while you can!
http://gambas.sourceforge.net/...
http://gambaswiki.org/wiki?l=e...
Buy your next Linux PC at eightvirtues.com
The part where Microsoft is still in the process of reviewing the code and are releasing it piecemeal. Bits and pieces are getting uploaded onto GitHub on a steady basis, but it is not all there yet.
There are a number of python tools you might want to have a look at for this, whether you want native desktop clients or not.
* http://www.sqlalchemy.org/
* http://www.python-camelot.com/
* http://pandas.pydata.org/
Fan of Gambas3 + sqlite3 + SSD immensely fast depending on implementation details.
Moved about half a billion data points around in 30 mintues with medium speed PC.
Supposedly 1.5x faster than Python in some configurations.
Can be compiled to work on ARM CPUs that run Lubuntu.
Works with MySQL no problem.
Netbeans has a bunch of database application wizards. Of course this means using the superior Java and being able to run the apps on Linux, Windows or Mac.
I'm sure this won't be a very popular option because Slashdot is allergic to Java in general and Eclipse specifically, but if were trying to write multi-platform GUI code with database integration I would probably start by investigating Eclipse RCP + Datatools.
An example of this is Teradata Studio
XML is a known as a key material required to create SMD: Software of Mass Destruction
Then there are those of us who want to get paid for our work to live, there are those that are paid to develop compilers,
there there are those who actually develop applications, I bet you probably have not written half of what you currently use
I really dont want to develop the OS, the compiler, the application, bet you are using someone else's compiler or
did you bootstrap your complete system including the firmware on the PC?
Why don't use platform independent language like Java?
Java can run on Windows, can also run on Linux. Java has rich library and frame works for applications are quite complete, no need to reinvent wheel. With JDBC (a part of Java Library), the same applications can also use different database as back-end server, not just MySQL, or MS SQL server.
It doesn't matter what solution you find for your data base. Systemd will break it, forcing you to write your own systemd-database-gui noid to start the wanker.
Consider using the relational framework in slib.
Kexi, created in 2002, in addition to competing with MS Access contains Qt-compatible data-aware widgets: forms, reports, tables, queries. And all designers for them. Also import/export with strong CSV support. C++ developers can employ all this in their apps, this happens from time to time.
Predicate is a database connectivity and creation library, something more than QtSQL and alikes. You can create database without backend-specific SQL. Predicate origins are in Kexi, it competes with Qt SQL and contains many more than it. See https://community.kde.org/Pred.... There's even SQL parser that helps to 100% control of what SQL is passed by your users. It's Qt-only. We're porting Kexi to it these weeks.
So you have visual designers, and data-oriented framework, both interacting with each other.
Feel free to ask for more info: https://community.kde.org/Kexi...
Cheers, Jaroslaw Staniek
I would suggest you take a look at Xamarin. It is basically using Visual Studio but being able to target any "Mono" runtime. I have done cross development and found it to be relatively easy, although user interfaces still require work across different platforms. To be able to continue using Visual Studio and C# but be able to target Android, OS/X and iOS, makes life for me a lot simpler. The tools are about $1000 per year (i think) for the licence which gives full Visual Studio integration and debugging. Well worth it.
For a custom GUI bringing in data from a database, I've found most GUI tools for this on Linux to be a bit clunky yet. Writing PHP forms and reports was just easier, and I'm not a web developer by any means, but it didn't take much for me to get exactly what I needed, and in just a little mroe time that it would have taken me with Access front end and MS-SQL backend. If I did that work more often, I could probably bang it out quicker in PHP.
Today your browser is THE gui. This way you gain flexibility, portability, and reusability.
Who logs in to gdm? Not I, said the duck.
I moved to MySQL on the server and Linux on the desktop, but for years missed a workable visual IDE, that was a real Linux tool. I won some time using php applications, until finally I discovered Gambas. I started to play with the IDE, and discovered an active development team. By the time I got used to the ugly mascotte, they finished version 2: nice, fast, true to the linux/unix concepts, and it felt very good in the KDE-environment I was using. But I could also choose to make a new project "cross-platform" (no, not to MS - I mean cross-desktop on Linux, my platforms); then you just get the common subset of buttons, dialogs, lists etc. to choose from for the screens. With one button you make a tar.gz file of your project (source + files), another button to compile to a .gambas application with a startup icon on the desktop. I installed and used it on completely different distro's as (K)Ubuntu, openSuse, Fedora, etc. Gambas is at version 3.x for the moment, and it put the fun back in programming for the desktop (althoug a commandline application can be done as well). The IDE itself is programmed in Gambas, to somehow prove their point I think. In the beginning I used it together with phpMyAdmin, but since a while it has its own database manager.
There's not much explanation here, but lot's of pretty pictures. :) It's an inventory program that I wrote/maintain. It uses X-Windows so the client program is not running on the user's computer. They login to an account on the server that gets things going. This makes it easy to keep everyone using the same version since there is only one copy of the program to change. It started on an IBM ThinkPad running Linux, moved to a Sun workstation, then to a Linux workstation, and now is on a Linux virtual machine. All of those migrations took changes to about 5 lines of code. It's now using MariaDB, instead of MySQL. No changes were needed for that move. I have MySQL running on my MacBook and do destructive database testing on there. I can copy over the nightly mysqldump to my laptop, recreate the real database and be losing data in seconds. :) It originally took about 5 months to get up and useful (from scratch), but it had to have a lot of parts to be useful for our needs.
www.passcal.nmt.edu/~bob/passcal/software/pis.html
Has anyon used Dabo (http://dabodev.com )? It is a python and wxpython DB GUI.
Try web2py. It's a web development framework with python server side, has *terrific* documentation (if you are not a total noob), it's easy to deploy locally, it's DB agnostic, it has features for RAD-like development (the server has an IDE and an app manager, you can strip the source and ship bytecode only) and it's very customizable.
The killer feature? compatibility with apps developed with the older versions is a design goal. So once you have your app, you don't have to worry much about maintaining it or upgrading to newer versions.
Cons? Python is not as easy as php to deploy on web hosting companies, and you need to tweak the configuration for heavy traffic sites, and python3 will need web2py to fork a specialised version. None of these are showstoppers for your use case.
---- MISSING MISCELLANEOUS DATA SEGMENT --- [sigdash] trolololol
Using SDL libs through C/C++ will give you nearly universal coverage on the linux desktop. I built a 2D game engine with TTF support, three layers of animated tiles, background music, instanced sound, collision detection - all using SDL in a few hundred lines of code. It makes your front end super easy to build and it has the bells and whistles to make it pop.
My personal preference is web-based, with apps running on a Linux webserver (dirt simple & highly reliable) and data being saved to SQL Server. It's a fairly rare combination, which we used to accomplish using the FreeTDS library but more recently switched over to Microsoft's official ODBC Driver for Linux.
As a big fan of RDBMS, I would say stay away from MySQL, it can be convenient but it's generally crap. (Citation: ALLOW_INVALID_DATES) If I had to use an open-source DB it would be Postgres all the way.
Programming language? For you, I'd suggest Java based on your familiarity with C#. That would open you up to doing both web and "fat client" development and as a bonus your fat clients would be cross-platform.
I went to eat some animal crackers and the box said, "Do not eat if seal is broken." I opened the box and sure enough..
I'm biased towards Python - and the following suggestions have nice UIs but they are web-based
I agree there, especially if you are coming from the purgatory of VB6 or .NET line-of-business apps, and there are good frameworks out there.
The original poster does want to know about traditional client-server, and there is a Python business application framework that is a closer fit: Tryton
It is not web centric and has a GTK based client, although there is integration with Flask for web based applications (the Nereid module) and a big push on for a full fledged web client alternative to the GTK client (plans are to give it a "material design" look and leverage all the best tools and practices etc).
It has a very extensive API so if the provided front ends do not suit your needs you can make a front end tailored specifically to your needs and leverage Tryton for the model, business rules, workflows and such. The database of choice is PostgreSQL, though you can implement SQLite or MySQL I think. ERPNEXT I think is limited (or was when I last looked) to MySQL and seemed to lack in documentation and testing, but it might be simpler if you can live with web front ends.
Hope this helps...
Consider LibreOffice (or OpenOffice).
It has a graphical interface to allow forms construction for use with database access, and there are several engines available for intefacing with MySQL/MariaDB, Postgresql, MS Access, and other databases, as well as general ODBC/JDBC connectivity.
Business logic can be implemented with LibreOffice BASIC or through the SDK using C/C++.
All in all, LibreOffice provides capabilities similar, but not idenitcal to that of of MS Access.
It certainly is worth a look.
Bwahahahahahahaha!
Just like they released iOS and Android versions of office before Windows? They are releasing things ad hoc now not always for their own platform first. Might buy them some cool factor I suppose but I'm worried they are going the way of Sun: "Everything is free and runs on commodity hardware, wait, what is it people are going to pay us for? I forget."
https://github.com/LeoUnglaub/HannaSQL
10 seconds to create a database. 10 more seconds to create an input panel that would let you populate tables with data. You could vi-edit the panels if you wanted to make them pretty. Is there an analog to that speed of development now?
Java - the language of your job is going to India, and have fun training your replacement.
OK. I haven't really used it. But I always plan to have a look. http://www.kexi-project.org/
Of course today you would do such things via webservice, but if you prefer actual desktop applications you can use Lazarus, which is a Delphi clone. The database connectivity concept of Delphi is geared towards creating fancy GUI applications with database connectivity easily. It's more or less point and click.
Plus unlike .net or Java you can run this on multiple platforms just by recompiling. And on every platform you get a (mostly) statically linked binary file.
web apps for POS applications don't seem to be the right way to go in my view
You can use VirtualUI to develop a Windows application that can also be rendered to an HTML5 interface. Supports Delphi and .NET. Works quite well. The server is expensive though.
And hopefully perl 6 will be out by the same date?
This is problem I have given a good deal thought to as well.
First a bit of background: I have lived on UNIX and Linux for most of my far too long career. I programmed Windows and OS/2 back when it was fun (ie. Win3 and earlier; the fun went away after that); I have programmed C and C++ most of the time, and I have worked with both GNOME and KDE.
The problem, I find, is that you get tied into whichever environment you choose, so I took a step back and tried to figure out which environment give me most mobility across platforms and desktop environments. My answer, much to my dismay, was Java, which is available on nearly all HW and OS, and which has extensive and concise standards for almost everything relevant to a developer.
I am still new to it, but the technology I really like is Java Enterprise (previously J2EE) - what I've done is download a package with Netbeans (an IDE), Glassfish (application server) and J2SE (the Java SDK), and it becomes relatively easy to develop database applications, with a frontend in JSF, which works in all browsers across OSes and gives you full GUI functionality, and a backend that can run on a remote application server (not only Glassfish) and against any batabase with a JDBC driver.
Perhaps this is overkill for you purpose, but to me it seems ideal.
it's portable, doesn't require a runtime and had bindings in most languages you'll want to use.
Any guest worker system is indistinguishable from indentured servitude.
I remember a project called http://dabodev.com/ , not sure how alive it is.
JavaFX is definately a good option. I've been using it for a while now to create (very) complex UI's and it just works. I have created numerous custom components to perform tricky stuff and it's generally really easy to do. It still has some rough edges but a lot of them are fixed in the version distributed with java 8.
The awesome part is obviously that it's cross-platform. I develop exclusively on linux and it Just Works on windows.
An additional bonus is that you have direct access to the massive java ecosystem which gives you -amongst other things- JDBC/JPA which makes database interaction a breeze (without having to focus on a specific database).
After wading through all the junk about IDE, frameworks and other shit....
I have come to the conclusion that modern programmers are stupid fucking pussies!!!!
Who can't program themselves out of a paper bag without fucking help!!!
You seem to believe that incorrectly perceived cost savings of outsourcing programming is unique to the Java language.
Several things can make your job more secure. Be excellent at what you do. Irreplaceable. Be the source of all leading edge knowledge. Be the one management comes to when they first hear of the new buzzword of the month. Don't focus on the tasks that interchangeable programming drones can do. Management loves interchangeable drones, and partly for the reason you describe. Identify and solve the really hard problems that others won't look at. Be willing to do some of the interchangeable tasks. The value you bring should exceed your coworkers. This should be reflected in your performance reviews. If it were easy, everyone would do it.
I'll see your senator, and I'll raise you two judges.
See subject: Delphi Object Pascal-like FreePascal & its Lazarus IDE do it http://www.bing.com/search?q=l...
&
If you need a great set of Internet controls to go with the DB capabilities FreePascal has (just like Delphi/Object Pascal)?
Look no further than http://www.overbyte.be/frame_i...
Both target 32 & 64-bit...
APK
P.S.=> Enjoy... apk
APK
You may be interested in fast prototyping your apps in Executable English.
You can type an app in English into a browser page, run it, see explanations of the results, and capture complex generated SQL for use elsewhere.
Just point Chrome or Firefox to www.executable-english.com . Shared use is free. No advertisements. Nothing to install.
've been writing a database GUI for MySQL using Swing and java.sql.*. JTable has a nice model system in which you just have to implement a new AbstractTableModel subclass. This type of model backend UI component is common in Swing. All fairly straightforward stuff, actually a pleasure to work with. Java Goodies has some nice classes that make layout of forms a bit easier too.
superb easy to use GUI designer tools and lots and lots of libraries: http://en.wikipedia.org/wiki/Gambas
What you want is Meteor.com - You will thank me later. If you think it's not what you need, you're thinking wrong, and should expand your mind, do some reading and studying and researching, and in the end, you will still reach this same conclusion. Or you can just trust me and give it a try. Start with a small project, to get a feel for it. Again, you'll thank me later... ;-)
All those moments will be lost in time, like tears in rain... time... to... die...
The CLR and the C# compiler are in the process of being open sourced, fully.
I love how it takes a process to do this, makes me thing they're trying to hide something.