Having encountered a significant amount of difficulty getting Appeon Web configured at all, and done the first deploy and analysis and seeing just how many parts of our existing PB code won't work - often with no suggestions for what to do about them in the Workarounds document - I'm starting to wonder whether another approach would be better.
The other approach would be to just put client DBs on a web server, and have a regular client/server version of our current apps access them directly, through SSL of course for security. (Our current apps are client/server with the DB on the user's PC, or on a computer on the user's LAN, and we will be continuing to offer that version whatever else we do.)
Here are some initial thoughts about pros and cons of each approach - I'd like others' feedback on their thoughts as well!
Pros of Appeon Web:
- No installation (well, some!).
- Probably faster data transfer.
- Looks like it's a web app to the user (though I still think it's only a pseudo web app).
Cons of Appeon Web:
- Huge effort to mod the app to get rid of all unsupported features, not clear how to do so for many of them (for instance, exception handling with Try/Catch/Finally).
- Huge amount of documentation to read and understand (way over 1,000 pages).
- Errors in the docs that lead to needing a lot of support. (For instance, the Appeon Web Server Configuration Guide suggested a bunch of steps for non-cluster setups that aren't necessary and killed everything - someone from Appeon just had me undo all of them to make things work!)
- Unknown issues in features that are legal but behave differently in the Appeon Web version (like differences in handling of NULLs in arithmetic etc.), extremely hard to detect where that might be an issue, in a large code base.
- Cost! Have to increase our prices to pay for the Appeon stuff.
- Cost issues are risky because we don't know what the conversion rate would be from our current installed base (about 9,000 users) to the web version, and how many new users would purchase because of the new offering, won't know how many simultaneous users we will need until we have some experience with it, don't know for sure how soon we would need to move up to a cluster, and then the costs go up a lot. (Our programs are very inexpensive.)
- Large amount of testing of all varieties of web browser, both 32 and 64 bit.
- Have to have 64-bit versions of all of the current 32-bit DLLs and COM controls that our app uses, and do coding to abstract away whether we are using the 32-bit or 64-bit versions, depending on the bit-ness of the client browser.
- Code bloat with all of the work-arounds to have some code run for Appeon Web and different code for our existing client-server version. (Would definitely be keeping only one code base for both!)
- Not at all clear we can get our apps sufficiently modified and tested within the 30-day evaluation period to know whether it is a viable enough option that we want to purchase it, and the cost is significant for our small business.
- Not too impressed with the support offering - bug submission, or Community forum that doesn't email you with answers. (I know that is scheduled to be fixed in Q4 sometime, but that will still be after our eval period ends.)
Pros of Client/Server with DB on our web Server:
- Very little code modification needed. (Do need to migrate to a different DB server - we currently use Firebird and it doesn't even support SSL - but already did that conversion, to MySQL, in preparation for testing Appeon Web.)
- App will run exactly like it now does, no worries about different functionality except perhaps disconnection issues over the Internet, and removal of features that don't make sense with that setup (like database backups).
- Can get something working fast.
- Current app features of converting data from the DBs of various competitors into our DB can be done with our existing code. (Appeon Web can't read client-side DBs natively, though I did come up with a solution using ADO.)
Cons of Client/Server with DB on our web Server:
- Probably slower for data transfer than Appeon Web. (May not be a big deal, our users tend to have fairly small DBs.)
- Still has to be installed just like our current apps.
- Can't advertise it as a web app, maybe as a "Cloud Data" version or something.
Things that are about the same for either:
- Only works on Windows (no Mac, which we get a fair amount of requests for). (Yes, Appeon can also work on mobile but that introduces even more limitations, and our apps are primarily data entry so not really appealing to use even on decent-sized tables with keyboards.)
- Need more web server power than we have now (though probably more for Appeon Web than the client/server solution).
- Need to handle backups ourselves (currently the users are responsible for their own backups).
- Need to code for increased security, figure out some sort of licensing DB online etc.
- Users would be able to use the app from anywhere (after some level of install), accessing the same data. (Currently we have several ways for users to access the same DBs from multiple PCs not on the same LAN, but all of those ways have their disadvantages!)
That's all I can think of on a first attempt, but I'm sure there are more issues too. I'd be particularly interested in hearing of major cons that we haven't thought of, for the client/server with DBs on a web server approach. Thanks.