That sounds great Paul! I really enjoy Xojo and the language syntax seems to make sense to my VFP side of my brain.
-Kevin
On 4/1/19 5:05 PM, Paul H. Tarver wrote:
Kevin,
I wanted to follow up and let you know based on your recommendations, I have been playing around with Xojo in a more in-depth way for the last 30 days and while I can't say I'm expert by any stretch, I've been able to piece together a little bit of working code using some of the examples and I'm fairly happy with what I've accomplished so far. I'm approaching Xojo differently this time (thanks to you) and I think perhaps this third attempt to learn Xojo may be more successful.
First, I chose a project to convert from Foxpro to Xojo which is relatively uncomplicated and makes sense to build in Xojo instead of trying to replicate my main production work environment at this point.
Secondly, I've challenged myself to spend 30-60 minutes each day to make just one thing work in the new project. Maybe it is just making a splash screen, or creating a screen to add or edit items to a simple table, or figuring out how to pass parameters to a window or use a new class/method/property/etc. By limiting my time in Xojo, I don't get too frustrated and because the daily goals are small, I get to celebrate a small win each day instead of feeling like a failure because I'm still miles away from the finished product. This strategy also gives me time in between sessions to think and process what I've been working on and that has helped with my understanding greatly. Some days I simply re-do what I did the day before because having thought about it, I come up with a better way to accomplish the same thing.
Finally and most importantly, I've come to accept this will not be a quick transition and accepting that fact has let me focus on the fun of learning instead of the stress of trying to get a job done.
I'll post some updates later if anyone is interested in this journey with Xojo I've started.
Thanks for all your comments and input!
Paul H. Tarver
-----Original Message----- From: ProfoxTech [mailto:profoxtech-bounces@leafe.com] On Behalf Of Kevin J Cully Sent: Monday, February 25, 2019 10:53 AM To: profoxtech@leafe.com Subject: RE: [NF] Migrating Skills From Foxpro to Xojo
Hello Paul and other potentially Xojo interested parties,
First thing to remember is that Xojo is not Foxpro. It has different strengths and weaknesses. I love programming in it as I find it simple and easy to get started, but doesn't have many limitations to what it can do. Sound like Foxpro? You would *never* program a modern video game in Xojo however. That also sounds like Foxpro.
If you don't like Xojo, no problem. We can still be friends. Don't like the closed source nature of it? Too expensive? Not enough events? Not data centric enough? I get it.
There is a lot to like however.
- First, it's not owned by Microsoft. Xojo is a USA based small company that has been around for over 20 years, and has their developers and staff spread out throughout the world. And they are really nice people that are interested in developing a great product.
- You can develop desktop, web and console applications. Yup, with a singular code base of classes, you can share them across projects that target these different project types.
- It is multi-platform: Winblows, Mac, Linux, Raspberry Pi (Linux), and iOS. Android apps coming soon but I'm not sure exactly when.
- You can get started for free! You can download the IDE and build as many applications as you like and use it forever without paying Xojo one cent. You only need a license when you build and application (such as an EXE on Windows) and a license for the target platform. I prefer the "Xojo Pro" license as it gets all of the platforms I am interested in.
- Licensing is reasonable in cost and scope. The cost for a Pro license is $700 and gets you all updates for a year (typically 3-4 releases in a year) and you can build for almost any platform. If you let your license lapse, you can continue to use that Xojo IDE forever, you just won't get updates. A lot of developers pay for a license every other year as a cost savings plan. You can develop as many solutions and deploy to as many customers as you like. You don't need to let Xojo know about any of it! There were several other "VFP Replacements" that wanted to know about your customers. Unacceptable in my mind.
- Xojo uses native controls. This is foreign to us. VFP runs only on Windows and we don't even think about the fact that they are windows controls. Remember running old Java applications and Windows and they seemed "funny"? The controls didn't look right? That's because they were drawn in Java. Mac people hate that. Hate that with a passion. A Mac app needs to look and work like a Mac app. Xojo (appropriately) made the design decision that all platforms will use the target platform native controls. Windows apps work and look like Windows apps. Linux apps look and feel like Linux apps. Etc. Don't underestimate how important this decision was. This also means that Xojo can be handcuffed to operating on the least-common-denominator of events and controls however. Not seeing your favorite control built into Xojo? It might be because it isn't available on all platforms. Don't panic! You can add it yourself or purchase it from a 3rd party supplier.
- Xojo is database agnostic. It natively works with SQLite out of the box, but has plugins to interface with Microsoft SQL Server, MySQL, PostgreSQL, and anything you can access with ODBC. Not seeing your favorite database there? There may be a plugin available either open sourced or as a paid solution. MongoDB anyone?
- Xojo holds a conference every year called XDC. (https://www.xojo.com/xdc/ ) At the conference will be the president of Xojo Geoff Perlman, their marketing staff, and almost every single engineer and technical support staff in the company. You can eat breakfast, lunch and dinner with each of them. Amazing really. Did Microsoft send the engineers to the Foxpro conferences? Not that I can remember. Perhaps they did. But, every single year Xojo steps up to the plate.
- The same good feeling you have with developing in VFP, you can have in Xojo. Quickly prototype a solution? Grow a small system into a large
- You can deploy web apps to Xojo Cloud with a single click (although it is a little pricy) or you can deploy to a Linux server such as a Digital Ocean droplet for as little as $5 per month (or something like $0.07 per hour). That's really cool. Getting Foxpro supported hosting was pretty expensive and hard. YMMV.
- Don't like the book to learn Xojo? Check out the Xojo YouTube channel: https://www.youtube.com/user/goxojo
- Want to learn Xojo by example? Xojo comes with *hundreds* of examples covering many many subjects. When I'm trying something that I've never done before, I just click the "New Project > Examples" and choose from the plethora of examples. I wish Foxpro had that many examples when I got started decades ago.
- I've developed a "VFP" class for Xojo to help. Want STRTOFILE() and FILETOSTR() that works cross-platform? STRTRAN()? You can even ADDBS()? I'm happy to share that and it helps ease the transition to Xojo. Eventually I stopped using these functions and went native, but it was nice to transition.
... There is more good stuff about Xojo, but I'll stop here ...
Is it all good stuff? Heck no.
- You cannot press a magic button and convert over your VFP solutions. The languages are cousins of each other, but it will still be a rewrite. I chose to just write new applications in Xojo and eventually I got to all Xojo.
- Data handling is different. Xojo uses recordsets and not cursors. You handle the data a bit more "manually" than the magic of ControlSources. It wasn't a big deal to me, but it does keep you from creating forms with millions of data controls. That might be a good thing?
- The built in report writer is pitiful. For the most part, I write my reports out to HTML/CSS and display into the browser. There is a 3rd party report writer called Bikini Shorts that is really powerful and wicked fast. (https://bkeeney.com/allproducts/bkeeney-shorts/ )
- The Xojo community is pretty nice for the most part, but there are a couple of people that are mean and petty. Be prepared to go into the Xojo forum and read some of that. I think they're full of piss and vinegar because they know that Xojo cares and is listening. For some people, the sky is always falling. Some people just want to see the world burn. Most people are very kind and helpful. That's the aspect to focus on and forget the nasty people. We don't have time for that.
...
Okay. My fingers are moving on to other tasks. All I can say is that I like it and I've created some good business solutions for my employer that I think have made things better! Take Xojo for a spin. I like it and you may as well.
-Kevin
-----Original Message----- From: ProFox [mailto:profox-bounces@leafe.com] On Behalf Of Kevin J Cully Sent: Friday, February 22, 2019 4:57 PM To: ProFox Email List profox@leafe.com Subject: RE: [NF] Migrating Skills From Foxpro to Xojo
There's a lot there. I'm out of time for the day unfortunately. Let me give you a full response on my thoughts on migrating to Xojo on Monday sometime.
-Kevin
-----Original Message----- From: ProFox [mailto:profox-bounces@leafe.com] On Behalf Of Paul H. Tarver Sent: Friday, February 22, 2019 12:04 PM To: profox@leafe.com Subject: [NF] Migrating Skills From Foxpro to Xojo
I hijacked the original thread with a reply changing the subject and adding an [NF] flag to the subject because a small comment Kevin made caused me chase a different rabbit for a little bit.
I have reviewed Xojo on a couple of different occasions over the past few years and I have tried to work my way through the book that was written to teach people how to program it and I find myself drifting by the 3rd or 4th chapter every time. Not a fault of the author; just rather a fault of me wanting something a little more advanced. Anyway, I've run into a couple of hurdles with trying to learn Xojo and perhaps someone here has some suggestions to help me out.
Try not to laugh at what may be very dumb questions! :)
I build a lot of similar but customized apps using a shared library of tools I've developed over the past 25 years. Every app I build contains a LOT of forms, reports and programs shared by all my applications as well as a lot of forms, reports and programs which are copied from previous projects and then customized for the current client. While I have seen multiple Xojo advocates confirm a similar process is possible, but I cannot find clear explanations of how to make that happen.
Every Foxpro application I build starts with a .PRG which reads a configuration .INI file and then setups up the environment, displays a splash screen, checks my version numbers, calls a database update process if a version change is detected and if all is good, it displays the main screen for the user. Once the user chooses to exit my application, a shutdown process is initiated and everything is closed in an orderly way. That having been said, I have been unable to find source code to a simple, complete Xojo application or instruction book that can walk me through the start to finish logic and firing order of all the start-up and shut-down events and allow me to compare that to the process I'm so familiar with in Foxpro.
Are there any good white-papers or books by Foxpro programmers that can provide insights into translating my Foxpro knowledge and skill directly into Xojo.
I use Foxpro on a daily basis for my business because I cannot find a language that satisfies my clients' needs the way Foxpro does. I would love to be able to say I have a backup language like Xojo, but I get only so far before I give up and go back to what I know and love. So let's assume Kevin is correct when he states Xojo is " a viable language for VFP developers" because I do not want to go down the rabbit hole of considering all the other alternatives for this sake of this discussion and share with me any tips that can help me understand Xojo on a higher level beyond just creating a simple form. I want to understand Xojo at a Complete Deliverable Application level and talk about mimicking the features I depend upon in Foxpro to share a library of tools, forms and code across hundreds of similar custom applications.
Paul H. Tarver
-----Original Message----- From: ProfoxTech [mailto:profoxtech-bounces@leafe.com] On Behalf Of Kevin J Cully Sent: Friday, February 22, 2019 8:11 AM To: profoxtech@leafe.com Subject: RE: false news....
Well, a lot of that article is correct, even though I don't want it to be. VFP as a *language* is as secure as the programmer programmed it to be. VFP as a *database* isn't secure itself. You can encrypt fields. You can encrypt the directory that the data is stored in. But DBF data isn't secure. You wouldn't store social security numbers or credit card numbers in Excel spreadsheets, right?
I've haven't recommended DBFs for storage for over a decade now. There are better storage mechanisms such as Postgres, MariaDB, and even SQLite which can be set up as an encrypted database. VFP as a language is still valid, although it will never be able to create 64bit applications but that is a different subject. [Insert Xojo plug here as a viable language for VFP developers.] I had a potential client where they based their primary keys based on employee Social Security Numbers. They didn't like it when I told them that they'd need a complete rewrite. Notice this would have been the case no matter what language/technology they were using. It was just piss poor design.
It appears from the article, that when the vendor was notified of the situation, that they were able to quickly address it although the article didn't say what that solution was. Probably encrypted the field? Hash the field with an external secured table containing the sensitive data? Who knows. To me, that's a win. Hopefully the vendor contacts all customers notifying them that there is a vulnerability and that there is a solution available.
As Ted Roche always says "Security is a process".
-Kevin
-----Original Message----- From: ProFox [mailto:profox-bounces@leafe.com] On Behalf Of Dave Crozier Sent: Friday, February 22, 2019 6:07 AM To: 'ProFox Email List' profox@leafe.com Subject: VFP: false news....
Ignorance and stupidity still runs in the so-called “expert consultant” fraternity.
“An outdated software that is used by about 200 Vermont municipalities and the Vermont Tax Department has long contained flaws that exposed sensitive information including Social Security numbers, according to an IT consultant and the software company’s founder.” “You could make a strong case that Visual FoxPro shouldn’t be used on a government level,” Johnson said.
https://vtdigger.org/2019/02/05/consultant-outdated-software-left-worker-inf...
Thankfully the software owners realise that it isn’t a fault in VFP, it is a fault in the designing of the infrastructure.
Expert: Ex - Out of date Spurt – a drip under pressure!!
Dave Crozier Software Development Manager Flexipol Packaging Ltd.
﴾⚆ᨎ⚆﴿
Flexipol® Packaging Ltd T 01706 222 792 E DCrozier@flexipol.co.uk W https://www.flexipol.co.uk/ Follow us: Unit 14 Bentwood Road, Carrs Industrial Estate, Haslingden, Lancashire, BB4 5HH
This communication and the information it contains is intended for the person or organisation to whom it is addressed. Its contents are confidential and may be protected in law. If you have received this e-mail in error you must not copy, distribute or take any action in reliance on it. Unauthorised use, copying or disclosure of any of it may be unlawful. If you have received this message in error, please notify us immediately by telephone or email.
Flexipol Packaging Ltd. has taken every reasonable precaution to minimise the risk of virus transmission through email and therefore any files sent via e-mail will have been checked for known viruses. However, you are advised to run your own virus check before opening any attachments received as Flexipol Packaging Ltd will not in any event accept any liability whatsoever once an e-mail and/or any attachment is received.
It is the responsibility of the recipient to ensure that they have adequate virus protection.
Terms & Conditions: Notwithstanding delivery and the passing of risk in the goods, the property in the goods shall not pass to the buyer until the seller Flexipol Packaging Ltd. ("The Company") has received in cash or cleared funds payment in full of the price of the goods and all other goods agreed to be sold by the seller to the buyer for which payment is then due. Until such time as the property in the goods passes to the buyer, the buyer shall hold the goods as the seller's fiduciary agent and bailee and keep the goods separate from those of the buyer and third parties and properly stored protected and insured and identified as the seller's property but shall be entitled to resell or use the goods in the ordinary course of its business. Until such time as the property in the goods passes to the buyer the seller shall be entitled at any time
--- StripMime Report -- processed MIME parts --- multipart/related multipart/alternative text/plain (text body -- kept) text/html image/jpeg image/jpeg image/png image/png image/png image/png
[excessive quoting removed by server]