INTELLIGENT WORK FORUMS
FOR COMPUTER PROFESSIONALS

Log In

Come Join Us!

Are you a
Computer / IT professional?
Join Tek-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

*Tek-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Jobs

Lianja, Foxincloud & tablet apps

Lianja, Foxincloud & tablet apps

(OP)
I am now 49 years old in July of 2017. I have used Visual FoxPro for over 15 years. I don't see any end to using it. I hate .NET and tolerate Python. I am fortunate to work for a company which allows me to develop with Visual FoxPro. That said and burying the question, "Is FoxPro dead?"...

Lianja -
Anyone have experience with this and what are your thoughts on it being what Visual FoxPro 10 should have been?

Foxincloud -
Has anyone had experience converting apps to the web with Foxincloud?

Tablet apps -
I am just finishing up a Visual FoxPro app using a Lenovo 10.1" 320 MIIX tablet. It is super fast and light using local foxpro tables and SQL Server. It is beautiful and has been as always a pleasure.

As long as developers can sell and deliver Visual FoxPro apps which solve business needs, the fox will live on.

VIVA LA FOX!

Regards,

Rob

RE: Lianja, Foxincloud & tablet apps

Hi Rob,
You kind of ask and answer your own question. But I think you're looking for some other insights particularly around alternatives.
Your point about VFP on the whole, I agree with. I am highly frustrated with the "modern alternatives" and the excessive time it takes to do simple things that we have been able to do in VFP for years (like class inheritance at the visual control level).

Regarding the others:
Lianja: I recently got a trial version of it, and played around minimally with it. They mention it supports VFP code, but I didn't see exactly how it would do it. I didn't have a lot of time to give to it, in fairness, so I still want to look into it a bit further in a few months when I have more time again.

FoxInCloud: I did the week long class a couple years back after SWFox conference. I was not a fan. If you are using any non-native VFP or a Framework, it's a very long time to get the VFP appearance in a web application. If your app is simpler, and all native it's a little better. My biggest complaint with it though is, it takes over your VFP installation. So all future modifications of your app has to be done in the FoxInCloud client of VFP. Trying to back out of that if you decide not to do it, you need to have made a backup.

"Tablet" applications that are on native Intel platforms are fine, can be run on any Intel based non-Atom processor. So long as it runs on Windows platform, they will keep working.
Do you have a screen shot of your tablet app? Would like to see that.
The one downside to tablet apps is that VFP doesn't support multi-touch and a few other "modern interface" items, but they can be worked around to a degree.

Best Regards,
Scott
MIET, MASHRAE, CDCP, CDCS, CDCE, CTDC, CTIA, ATS

"Everything should be made as simple as possible, and no simpler."hammer

RE: Lianja, Foxincloud & tablet apps

Recently there is the urge to turn off SMB V1 protocol and just use SMB V2 and/or V3, mainly because ransomware makes use of SMB1 flaws.

That means no more control about OpLocks, they are forced on us. The Hotfix already streamlined into the normal SMB versions still doesn't fix DBF/CDX file handling. This topic now will most probably come up again more often with concerns of SysOps and you can't deny their right to prioritise the overall safety over the stability of DBF files. That means we're bound to fiddle with some LanmanServer/Parameter keys to optimise SMB/OpLocks to cause the least problems. I don't know of a solution with OpLocks active without any problems.

So, if I take that for granted and am pessimistic about that ever being fixed, VFP multi user applications within a LAN/WAN environment are a dying species.

That doesn't harm using VFP as local single user applications, eg on tablets, unless you use tablets as the end user devices of a multi user DBC via a company Wifi, where that in itself is a stability issue. Under the circumstances a multi user solution needs the application itself only address local files and that means a terminal server solution, where the network is betweeen user end client device and the terminal server only.

Not being able to turn off OpLocks also doesn't harm any VFP desktop applications based on client/server principles and using MSSQL or MySQL or any DB Server as backend.

But I see that as a sign of things out of our control, even if you are very proactive about protecting your VFP assets, i.e. your VFP retail box CD or ISO download and all the other things you installed to have your developer environment, the outside world changes are not under our control.

Last not least, though I don't want to get too personal I mainly see developers even not knowing VFP deeply in and out itself sticking with it. Likely those, who don't do development as their main profession. It's surely harder for them to start new if they even don't have the drive to deep dive into any aspects of the tools they do use. There's no criticism or saying you must do so, if your focus is on other things, too, but of course, you have it harder to expand programming skills, if that is not your main task or talent.

I am quite the same age and have spent quite the same time on VFP, more on development overall before 1999. I had a non-professional history of computer programming, which already started in the 80ies for me with 6502 Assembler, so I can state I have spent double time on programming. I already stated I pick up on PHP skills and go into web development, that means I also pick up on all surrounding aspects of HTML/CSS/Javascript, I have recently started a few courses on Udemy, as they had an offer for new users for a flat price of 10USD per course. I do pick up on Laravel (PHP), also the "Mean" stack and Kotlin for cross platform development with a strong weight on targeting Android platforms. I recently said Nativescript might interest me, in regard of Udemy there are only a few Nativescript offers, so it's a bit too new. Though I also do have an interest on two of three components NativeScript interoperates with: Angular and Javascript. Angular itself is based on Typescript which is just strictly typed Javascript. So, in the end, Javascript is a major thing to learn and then Node.JS obviously is a good option, too.

I become friend with JS more and more and the ability to also use it server side, eg in the context of scripts for Google Apps, GSuite, Google office suite. This makes it the VBA of Google documents and spreadsheets, which means learning even more, namely the whole world of Google APIs, though that's learning libraries and framework rather than learning yet another language. And all that is learning while you go with tasks.

So yes, all other development is not as self-contained as developing in VFP, has much more ties into each other, which you can't only judge as pro or con.

Bye, Olaf.

RE: Lianja, Foxincloud & tablet apps

Rob,

I can't help you with Lianja or tablet apps, but I did have some experience with FoxInCloud about three years ago. I'll summarise some notes I made at the time.

When reading this list, please bear in mind that it is based on notes that were written in 2014, and might well be out of date now. Also, I didn't use the product very extensively, so this is by no means an expert opinion.

1. An important goal of FoxInCloud (FiC) is to retain compatibility with the desktop. Thsi means that, after you have converted your app to run under FiC, it should still run as usual on the desktop, so you can maintain a single code base for both desktop and web versions of the app.

2. There are a number of features that are not supported. These are mainly because they are not supported in the browser. It might be possible to overcome these limitation with some Javascript coding. The features in question include right-click events and context menus; IncrementalChange event (can use LostFocus instead, but that would be no good for things like incremental search); Destroy event; "Active" properties (ActiveForm, ActiveControl, etc.); ACTIVATE command; AfterRowColChange (in a grid); MouseEnter and MouseLeave; and resizing a grid.

3. Toolbars are not supported. You can use ordinary forms to simulate toolbars, but docking is not supported either.

4. Printing of reports is not supported. The workaround I used was to generate the reports as PDFs, and then to use a free-standing viewer program to display and print the reports. At the time, there was a suggestion that future versions of FiC would be integrated with XFRX, but I don't know if that ever happened.

5. Changes must be made in how you define public variables and certain SET commands (these weren't an issue for me, but I noted them anyway).

6. You have to get rid of anything that can cause a modal state in your server-side code. In particular, things like message boxes and file opening dialogues must be removed.

7. At the time, the vendor was a one-person company. That person did all the development, support and marketing.

8. At the time, there was no formal support mechanism, only an email address. I had no reason to use this, but others told me that the support was very good.

9. There was no formal documentation for the product, but there were some useful tutorials.

I hope you find the above useful. In my case, I decided not to continue with FiC, mainly because of the work that would have been involved in converting the particular application I was working on. But that should not be taken as a criticism of the product. If anyone is looking for a way of moving a FoxPro app to the web, I would recommend that they do their own evaluation FiC.

Mike

__________________________________
Mike Lewis (Edinburgh, Scotland)

Visual FoxPro articles, tips and downloads

RE: Lianja, Foxincloud & tablet apps

Hi Rob,

I'm Thierry Nivelet from FoxInCloud; I'm here to add information to previous answers.

Quote (Scott)

If you are using any non-native VFP or a Framework, it's a very long time to get the VFP appearance in a web application. If your app is simpler, and all native it's a little better.

1- The time it takes to get the "VFP appearance" does not depend on how many layers of class you have in your application. As VFP frameWorks a no longer supported, it'd be better if users of the same frameWork group their effort to adapt the framework.

2- Rather than getting the "VFP appearance", you'd probably like to deliver a more modern appearance; FoxinCloud now offers an option to generate Bootstrap HTML code so that your app looks like any modern Web Application, and can be used on any terminal including tablet and smartphone. This blog post shows some forms: VFP original, 'classic' rendering, 'responsive' rendering using Bootstrap.

Quote (Scott)

My biggest complaint with it though is, it takes over your VFP installation. So all future modifications of your app has to be done in the FoxInCloud client of VFP. Trying to back out of that if you decide not to do it, you need to have made a backup.

Both true and false

true: once adapted, your code has some dependencies over FoxinCloud; all these dependencies are free to use and distribute; you can get them at any time on GitHub: https://github.com/FoxInCloud/FoxInCloud-AB

false: your app can have both adapted and non-adapted code, and you can continue with 'traditional' VFP coding at any time if you desire; for instance you can publish only a part of your app on the Web (the adapted part), and keep the rest not adapted. To do that using FAA, you can just ignore the files you want to keep not adapted. And if you want to adapt them later, you can just 'recall' them and they'll show up back in FAA.

Quote (Mike)

There are a number of features that are not supported. These are mainly because they are not supported in the browser. It might be possible to overcome these limitation with some Javascript coding. The features in question include right-click events and context menus; IncrementalChange event (can use LostFocus instead, but that would be no good for things like incremental search); Destroy event; "Active" properties (ActiveForm, ActiveControl, etc.); ACTIVATE command; AfterRowColChange (in a grid); MouseEnter and MouseLeave; and resizing a grid

As Mike mentions beforehand, FoxInCloud has improved over time and many of the features he mentions are now supported (some were already supported back in 2014):

  • right-click event: supported, see http://foxincloud.com/tutotest/bs/Event.tuto
  • context menus: supported
  • IncrementalChange event…: (Mike probably refers to textbox.InteractiveChange); this issue exists in all Web applications, not only FoxinCloud: you can emulate .InteractiveChange() using the .keyPress() HTML DOM event, it's more difficult to get the server process this event dynamically; however you can implement a custom keyPress event to query a list on the server based on some character typed; this event can be processed on the server without user state maintenance, and be fast enough. Besides many developers use .interactiveChange() instead of .Valid() and just need to move the code once for all
  • Destroy event: supported except is does not fire the same as in desktop; any code doing user-dependent stuff needs be moved to .release(); the rest (like garbage collection and/or table USE IN) can stay in .destroy()
  • "Active" properties (ActiveForm, ActiveControl, etc.): supported through wActiveForm() and wActiveControl() (part of FoxinCloud public layer)
  • ACTIVATE command: all supported except activate window and activate screen
  • AfterRowColChange (in a grid): has always been supported, base of any VFP application: see http://foxincloud.com/tutotest/bs/Event.tuto, page 'grid', check 'allow cell selection' to see before/after column change fire
  • MouseEnter and MouseLeave: has always been supported; again an issue common to any web application: these events are too fast to be processed by the server, you need to process them in the client browser instead. In many case you can replace the VFP code by an ':hover' CSS directive (hightlight, change fore or backcolor), you don't even need to code in JavaScript; you can see these events fire here: http://foxincloud.com/tutotest/bs/Event.tuto
  • resizing a grid: form.resize() is supported since V 2.22 (10/15/2016): you can see it in action here: http://foxincloud.com/tutotest/, click 'data update' or 'grid.*RowColchange()', then resize the form using the bottom right angle. Note that the form retains the same dimension if you call it as a full page using the menu in left margin


Quote (Mike)

Toolbars are not supported

Menu are supported and generally most applications have both a toolbar and a menu. The reason why we've not supported toolbar yet is that it does not fit well with current trends in Web Application design, especially responsive apps.

Quote (Mike)

Printing of reports is not supported

false: you can see it here: http://foxincloud.com/tutotest/bs/report.tuto (responsive); you can also see the couple of lines you need to write to adapt your code.

Quote (Mike)

Changes must be made in how you define public variables and certain SET commands (these weren't an issue for me, but I noted them anyway).

false: the only change you may need is: for runtime optimization, you better declare all your PUBLIC variables at application startup; not a big deal as FAA finds for you every place where a PUBLIC variable is declared.

Quote (Mike)

You have to get rid of anything that can cause a modal state in your server-side code. In particular, things like message boxes and file opening dialogues must be removed.

false for at least 2 reasons:
  1. FoxInCloud supports all modal states and responses from modal dialog; you can see this, and the corresponding code here: http://foxincloud.com/tutotest/bs/Modal.tuto
  2. FoxInCloud adapts the corresponding code automatically (in step 2-adapt); eg. changes MessageBox() into wMessageBox(), do form into wForm(), etc. Of course the whole instruction is adapted, including parameters
All you need to do is store the response from a modal form into a property and tell FoxinCloud its name, or use the standard 'wuValue' property.

Quote (Mike)

At the time, the vendor was a one-person company. That person did all the development, support and marketing

false: just click the 'about' pad on our site's menu and you'll see the 3 people participating in FoxinCloud.

Christophe Unrug has been in charge of Sales and Marketing since 2010: https://www.linkedin.com/in/christophe-unrug-9b082...

A single person could not have done so much coding (3,500 modules) and sales material alone: see the video collection

By the way West-Wind Technologies is a one-man shop and I've never seen any concern about it… FoxInCloud bashing again?

Quote (Mike)

At the time, there was no formal support mechanism, only an email address.

false:
  • there has been a 'FoxinCloud' section on West-Wind support board and LevelExtreme for more than 5 years, West-Wind support board is mentioned in the header of each page of our site.
  • we have a Facebook and Linked-in page and also a group on both

Quote (Mike)

no formal documentation for the product, but there were some useful tutorials.

right: we plan to work on that in the coming months, to complete the 'how-to' and FAQ sections

So far we have set priority on extending the support scope and delivering Bootstrap responsive HTML/CSS, a major demand from end customers.

RE: Lianja, Foxincloud & tablet apps

Hi Thierry,

I'm delighted to see you here - and especially to see all your comments on our earlier posts.

It looks as if FoxInCloud has come a long way since I evaluated it in 2014, and I'm happy to be corrected and to brought up to date on the points I made.

Mike

__________________________________
Mike Lewis (Edinburgh, Scotland)

Visual FoxPro articles, tips and downloads

RE: Lianja, Foxincloud & tablet apps

Hi Mike,

Thanks for your kind words

I wish I could be notified whenever a question arises on Tek-Tips regarding FoxInCloud; I'll look into the notification parameters.

If you want to stay updated on FoxInCloud, you may subscribe to our blog (http://foxincloud.com/blog/) or our Twitter account @FoxInCloud.

FoxInCloud is to be considered as a first step in the long path that any VFP developer or company will need to move to the future web and mobile platforms.
We're now looking at sliding the server side -- the VFP app in FoxInCloud -- to a REST API that we could maybe generate from the database structure and/or the form design.

Again, FoxInCloud has more ambition than just be a wrapper around a VFP desktop app.
With more support from VFP experts and developers, we can go very far to serve the community.

RE: Lianja, Foxincloud & tablet apps

Quote:

I wish I could be notified whenever a question arises on Tek-Tips regarding FoxInCloud

As far as I know, the only notification service offered by Tek Tips is for replies to threads you have started yourself or which you participate in - not for posts on a specified theme or topic.

You could always set up a Google Alert (https://www.google.co.uk/alerts). That could notify you of any mention of FoxInCloud - but over the whole web, not specifically for forums.

Mike

__________________________________
Mike Lewis (Edinburgh, Scotland)

Visual FoxPro articles, tips and downloads

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Tek-Tips Forums free from inappropriate posts.
The Tek-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Tek-Tips forums is a member-only feature.

Click Here to join Tek-Tips and talk with other members!

Resources

Close Box

Join Tek-Tips® Today!

Join your peers on the Internet's largest technical computer professional community.
It's easy to join and it's free.

Here's Why Members Love Tek-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close