====================================== FoxPro Developers Network of San Diego ====================================== FoxDev TipsLetter #03-04 May, 2003 Website: Editor: ---------------------------------------------------------------------- CONTENTS: * Calendar * From the Editor * Tech Tips: VFP 8 Release Ken Levy Task Panes in VFP 8 Tips For Deploying Applications Charlie Coleman Header Files for Office Automation Stephen Settimi A Report Engine for VFP Rich Simpson * The Great EULA Flap Dan Covill * Other Stuff: Status of VFP Ken Levy Error Messages Dave Barry Why Not Just Upgrade? Dan Covill .NET vs Java More Humor * Knowledge Base Updates New/Updated KB articles on VFP * Links: Where Can I Find...? * Administrivia ====================================================================== CALENDAR: Thu - May 8 - Whil Hentzen -------------------------- Short Presentation - Barbara Peisch: VFP 8 Collection Classes Main Presentation - Whil Hentzen Topic: Linux and VFP Thu - June 12 - Mike Stewart ---------------------------- Short Presentation - OPEN Main Presentation - Mike Stewart Topic: Security considerations in VFP Thu - July 10 - Kevin McNeish ----------------------------- Short Presentation - OPEN Main Presentation - Kevin McNeish Topic: TBA Thu - August 14 - Craig Bernston -------------------------------- Short Presentation - OPEN Main Presentation - Craig Bernston Topic: Using Crystal Reports with VFP Thu - September 11 - Mike Feltman --------------------------------- Short Presentation - OPEN Main Presentation - Mike Feltman Topic: TBA ----------------------------- All meetings start at 6:30 pm. Sizzler Meetings: Back room of Murphy Canyon Sizzler: 3755 Murphy Canyon Rd Take I-15 to the Aero Dr exit (South of Balboa) Head West to first traffic light West of freeway Turn Right Sizzler is on the right almost immediately Buy your dinner at Sizzler and we'll have our Q&A session while we eat. PLEASE TRY TO COME EARLY ENOUGH TO ORDER YOUR DINNER BEFORE 6:30! ====================================================================== FROM THE EDITOR: VFP 8.0 has been released, and people really like it. However, it comes with some changes to the EULA, and people don't like those at all. I don't like the part that says (I am not making this up) that if you buy the Upgrade you must stop using the earlier versions. Huh? See the article on "Why Not Upgrade?" in this issue. The part that really hit the fan was about the runtimes operating "only in conjunction with the Windows platform." Ken Levy called Whil Hentzen to remind him of that, and a firestorm ensued. Read about in the article on "The EULA Flap". I'll be away on vacation for the next month, so the next newsletter will be sometime late in June. A quote for our times: "Voice or no voice, the people can always be brought to the bidding of the leaders . . . All you have to do is tell them they are being attacked and denounce the pacifists for lack of patriotism and exposing the country to danger. It works the same in any country." Hermann Goehring, at the Nurnberg War Crimes Trials. Dan Covill ====================================================================== TECH TIPS ====================================================================== MORE ON THE VFP 8 RELEASE by Ken Levy Visual FoxPro Web Site Updated http://msdn.microsoft.com/vfoxpro The Microsoft Visual FoxPro Web site has been updated with new information and links for Visual FoxPro 8.0. There are weekly updates planned for the Visual FoxPro Web site and next month the following is just some of the content added for Visual FoxPro 8.0: New Evaluation Guide, new whitepapers, new sample downloads, updated free downloadable VFP 8.0 OLE DB provider with small enhancements from the one included in VFP 8.0, and more. Refer to for more details. Visual FoxPro 8.0 Featured on Microsoft PressPass A detailed press announcement called New Microsoft Visual FoxPro 8.0 Driven By Customer Feedback has been posted on Microsoft PressPass and submitted to journalists world-wide for education on Microsoft's release of Visual FoxPro 8.0. The article contains quotes from Eric Rudder (senior vice president of the Developer and Platform Evangelism Division at Microsoft), Brian Jones (vice president of DPRA Inc.), and a brief case study of an award winning Visual FoxPro application. CoDe Magazine Focus: Visual FoxPro 8.0 http://code-magazine.com/focus This special edition of CoDe Magazine focusing entirely on Visual FoxPro 8.0 which was significantly subsidized by Microsoft. This 72 page issue of CoDe Magazine contains detailed articles on Visual FoxPro 8.0 to complement upcoming technical whitepapers and content coming soon to the MSDN Library and the Visual FoxPro Web site. The content is technical resources for developers who are evaluating or using Visual FoxPro 8.0. And all the articles are online at . Ken Levy Visual FoxPro Product Manager ---------------------------------------------------------------------- TASK PANES IN VFP 8 by Ken Levy [** This URL wraps! DC] Inside the Visual FoxPro 8.0 Task Pane Manager MSDN whitepaper on Inside the Visual FoxPro 8.0 Task Pane Manager by Beth Massi. Learn about the Visual FoxPro 8.0 Task Pane Manager: how the built-in panes work, how the Task Pane Manager architecture is structured, and how to create your own, including complex, dynamic task panes that incorporate XML data, link to Internet resources, run Visual FoxPro code, and display rich controls. Finally, learn to publish your task panes and share them with others. (38 printed pages) Ken Levy Visual FoxPro Product Manager ---------------------------------------------------------------------- TIPS FOR DEPLOYING APPLICATIONS by Charlie Coleman What we've hit more often is the idiots don't listen to our instructions... "After installation, the user needs to have 'complete' (or full) rights to the directory in which the program was installed." Does that sound like it's English? Maybe IT shops don't read English? We've recently gone as far to actually check to see if the rights had been granted (e.g. we write a file, create a directory, etc). If it fails we tell the user to contact their IT support and correct the situation on the appropriate directory(s). As an aside, we've started also putting a dummy form in our system. On this form we put all OCXs that are used anywhere in the system. During startup (or as a test) we try to instantiate the form (invisible - they don't see it). If it fails we tell them the OCXs have not been installed correctly. Charlie Coleman ---------------------------------------------------------------------- HEADER FILES FOR OFFICE AUTOMATION by Stephen Settimi Imagine that! Finding something useful on the Microsoft site. After scouring the web for a simple Excel header file I came upon some code at MS expressly for VFP that takes OLB (Office Library Object files, "OLB"), extracts the constants and lets you save out as a wholely horrific handy header file, to alliterate. OLBs are used in the original "Mighty 7". Microsoft Word 2000 MSWord9.olb Microsoft Excel 2000 Excel9.olb Microsoft Access 2000 MSAcc9.olb Microsoft PowerPoint 2000 MSPPT9.olb Microsoft Outlook 2000 MSOutl9.olb Microsoft Graph 2000 Graph9.olb Microsoft Binder 2000 MSBdr9.olb Go to Stephen Settimi, GNS Information Technologies, Inc. http://www.GNSInfoTech.com ---------------------------------------------------------------------- A REPORT ENGINE FOR VFP by Rich Simpson My Mind's Eye Report Engine is similar to VPE in the sense that you can use Methods and Properties to add Text Objects onto a page in memory. All positioning in my control is done with 10,000ths of an inch precision. I also have written code in a VCX to run VFP Reports as is and pump the output into my control. I actually wrote my own Report Engine to mimic the VFP Native Report Engine and then took out the bugs. You can look at the DEMOIT() Method in my MindsEyeReportEngine Class that will show you how to pump out reports like you are wont to do. You can also have multiple page sizes and/or orientations in a single Report and then save it to PDF. Also, the PDF engine I wrote into the control is about 5 to 10 times faster than outputting through Adobe PDF Writer. I write directly to a PDF Document and do not use any printer drivers. You can also email your PDF document with the click of a Toolbar button and it supports Charts and Barcodes as well. For more information check out: You can download a full functioning demo. Rich Simpson Mind's Eye, Inc. www.mindseyeinc.com rsimpson@mindseyeinc.com ====================================================================== SPECIAL SECTION ====================================================================== THE GREAT EULA FLAP by Dan Covill VFP has gotten more publicity in the computing world during the last month than over the previous 3-4 years. The reason is a debate over the meaning of the VFP 8.0 EULA - the End User License Agreement. Here's what happened: 1. Whil Hentzen is Warned. Ken Levy called Whil Hentzen and warned him that his article on running VFP under Linux could be a violation of the EULA. As a result, Whil cancelled his demonstration to the SF FoxPro Users. (Click on the "What's new...4/18" link) Since Whil is a VFP celebrity, the news got around VERY quickly! 2. Whil asks for a ruling. As quoted on Whil's site, he asked Ken for a statement clarifying the EULA and its application to using VFP applications on non-Windows OSes. 3. The Register gets involved: The Register is an exceedingly irreverent English e-publication with an astoundingly wide readership. They were informed of The Warning by Chet Gardiner and Nick Causton, two members of the ProFox listserve. [http://www.theregister.co.uk/content/4/30325.html] This story was picked up in several other publications worldwide. Most were, to say the least, critical of Microsoft. 4. Microsoft "Answers" (The reason I put "Answers" in quotes will be obvious when you read Ken Levy's official response:) "I have been asked to post the following information on a few VFP community sites. I will not be commenting further on this issue. Thanks." [http://gotdotnet.com/team/vfp/vfp_eula_runtime.txt] "Visual FoxPro was designed and tested for use in creating applications that run on the Microsoft Windows platform; the same applies to the components that are provided to developers for redistribution with Visual FoxPro-based applications. If a developer wishes to distribute the Visual FoxPro runtime with an application, the runtime may only operate in conjunction with a Microsoft Windows platform. As with any contract, you should seek your own legal counsel's advice when interpreting your rights and obligations under the Visual FoxPro End User License Agreement." Most thoughtful observers interpret this to mean that a) Microsoft does _not_ authorize the distribution of the VFP 8 runtimes for use on a Linux system, b) it is not clear what if any action they will take if someone does it, and c) they do not intend to clarify the issue further. (Keeping their options open?) 5. The storm rages on. Most VFP forums have since been inundated with posts expressing various degrees of sorrow, confusion, outrage, and even a few sympathizing with MS' position (if they can be said to have one.) Most common positions are: a. They can't do this to us, I'm writing my congressman. b. That's the end for VFP, I'm going to learn .NET. c. That's the end for VFP and MS, I'm going Linux/open source. c. What if we buy a copy of XP Home and just don't use it? d. They'll never enforce this - I'm going ahead anyway. An interesting legal point of view is here, at Interaction Law: [http://interactionlaw.com/interactionlaw/id12.html] The author argues that EULA restrictions might constitute "misuse" of the copyright, and thus be unenforcable. "But the Microsoft tactic is pure rubbish, and it is disappointing that, perhaps due the enormous cost of defending a copyright infringement lawsuit, or the cost of suing to prove Microsoft's position is rubbish, the software developers trying out FoxPro on Linux operating systems fear sharing their findings with the public. As a result, the public is denied the benefits of these new developments, and Microsoft gets to enlarge the scope of its FoxPro copyright to control lawful conduct unrelated to it." My bottom line: This started with Ken Levy pointing out the changes in the VFP EULA for version 8 (and version 7). (Version 6 did not contain the quoted language.) The shock and outrage is the rest of us suddenly realizing what it really says, and that MS might mean it. I put this (the Hentzen flap) together with the upgrade gotcha (see my story on "Why Not Just Upgrade?" in this issue), together with the article "2003" I quoted in the March-April issue, and I don't like what I see. MS' approach may be unfair, unnecessary, and even stupid, but they've got the product, the lawyers, and the money. If they choose to use them in a restrictive fashion, there's not much we can do to prevent them. As the '2003' article said, we are not going to have the luxury of using VFP by itself - MS is going to force us to adopt their entire package, forsaking all others. The alternative is to leave MS entirely, going the Linux/open source route. It's already too late for VFP 8.0, unless you relish the idea of a legal battle. Better get ready for some hard choices - upgrade to VFP 8 and learn .NET, switch to open source and find an entirely new way to develop applications, or forget the upgrades and stick with VFP 6 (which is still legal to distribute under Linux). Dan Covill ====================================================================== OTHER STUFF ====================================================================== THE STATUS OF VFP by Ken Levy Questions from ProFox: 1. Can you tell us something about what MS is doing to improve VFP marketing? 2. Are MSDN purchases by VFP developers counted the same as VFP8 box purchases? How so? (is there a registration card or something in MSDN?) 3. What is the MS count of VFP developers worldwide? Reply from Ken Levy: There will be a few additional announcements coming soon from Microsoft within the next few weeks, and following that the press/media outlets will be contacted and what they choose to print about the release of VFP 8.0 is up to those print publications. There is a special issue of CoDe magazine just completed with 30,000 copies printed, and the latest issue of FoxPro Advisor is dedicated to VFP 8.0, more in upcoming issues. The result of these efforts will be more that what was done for the launch of VFP 7.0. It is better for the VFP team to have people obtain VFP 8.0 through MSDN than through VFP 8.0 upgrades or stand alone. We do multiple surveys that are very accurate that tell us what percentage of MSDN users use VFP and what percentage of VFP developers obtain VFP via MSDN subscriptions. We don't know the exact amount of VFP developers, probably about 125,000 which includes all versions of FoxPro and VFP as well as people to did not obtain VFP legally. It appears about 10% of those people are active in the community in some way (mainly online or user groups and conferences). Ken Levy Visual FoxPro Product Manager ---------------------------------------------------------------------- ERROR MESSAGES "My new computer has a truly fascinating feature: Whenever I try to turn it off, the following message, which I am not making up, appears on the screen: An exception 0E has occurred at 0028:F000F841 in VxD---. This was called from 0028:C001D324 in VxD NDIS(01) + 00005AA0. It may be possible to continue normally. Clearly, this message is not of human origin." -- Dave Barry , explaining why he is a big fan of technology . ---------------------------------------------------------------------- WHY NOT JUST UPGRADE? by Dan Covill This all started when I responded to a ProFox post by Ken Levy urging everyone to upgrade at once to VFP 8.0. I was proud of my post, but the comments by Ted Roche and Mike Stewart should be required reading for all who ask, "Why not just upgrade?". Post by Dan Covill: I'm one of the people who hasn't upgraded to VFP 8.0 yet. The main reason is the change in the EULA - I'm forbidden to use my previous versions as a condition of the upgrade. But I have VFP 6 applications to support (let's not talk about the FP DOS applications ). I think what I'm going to do is buy a version 8.0 upgrade, put it on another machine to play with, and keep supporting my VFP 6 apps. The VFP 8 is the one I won't use. I'd love to use the neat new features, but there's no chance of upgrading one of my VFP 6 clients in the near future. And, since I'm semi-retired, the expense of a non-upgrade, full version isn't justified just for playing around. Question by Henry Dagher Just out of curiosity, Dan, why do your clients 'have to' stay with VFP 6 ? Royalty-free runtimes mean that the cost to them is ZERO. You supply the app with the runtime files; they get better features. What is the holdup ? I can see in-house development clients resisting upgrades because it would mean several licences AND they have to worry about the code upgrade. This is not a criticism. I am just wondering why. Comment by Ted Roche: IAND (I am not Dan), but I'll tell you about two of my clients frozen at VFP5 and 6. Client #1 is a Fortune 129 client with a VFP5 app on 28,000 desktops. You read it right - TWENTY-EIGHT THOUSAND DESKTOPS. Even if one percent of the upgrades mean that the machine needs to be visited by a tech for one hour at $100 - that's $28,000. For an app that already meets their needs. Client #2 is a one-man operation with 1300 customers. In order to distribute his application, he will need to burn 1300 CDs, print 1300 sets of instructions, and mail 1300 mailers. 10% will never install the upgrade, losing it or misfiling it, so he'll need to support two versions for some time to come. 5% will have troubles installing it and he'll need to spend time on phone support to do that. Both clients have asked me to justify the cost of upgrading. Free runtime distribution is a nice benefit, but TCO can cost a whole lot more. I think that was the fatal miscalculation of VFP 7.0 - all developer features, and few end-user features made distribution justifications hard. Comment by Mike Stewart (Microsoft): It burns me when we hire College Boy straight out of school, and the first time they're confronted with a customer scenario using a skanky old version of one our products, their first reaction is, "why don't they just upgrade?" My reply is, "hey, College Boy, when's the last time you rolled out an application to 10K seats? Thought so. Now shut the up." Question by Henry Dagher: For Client 1, though, why does a tech need to visit the workstation ? Is >it because the MANY users are NOT connected via network ? My network upgrades are usually invisible to the user as my launcher copies some files if they have changed. Final comment by Mike Stewart: In a situation with 28K seats, I would think a tech would have to visit *every* workstation if they're using proper security and user permissions. The users should not be able to install random bits without admin permissions. But then again, I'm paranoid. ---------------------------------------------------------------------- .NET VS JAVA [Many VFP developers are concerned about the future of VFP as Microsoft continues its marketing blitz on .NET. Here is a Letter from Application Development Trends April 2003 magazine that makes an interesting case. DC] To .NET or Not To .NET Hankering Down With Java: Why hasn't everyone moved to .NET? What caused us to decide not to move to .NET? MS abandonment of VB6 developers. When they stopped delivering MSDN that was compatible with VB6, it was apparent to us that they had no intention of supporting that developer base. Then when we took a look at VB.NET and realized MS wanted us to learn a whole new language, we decided to learn a cross-platform language. I did a lot of research. I learned a lot about Delphi and Kylix. I deeply explored the new Ruby language, but decided it would be problematic finding developers. We settled on Java. The reasons are simple: It's highly secure, cross-platform, very low cost in terms of development tools and the framework itself, I love its pure object orientation, and it gets us out from underneath Microsoft's pressing thumb. The last part is a biggie for a mid-size company. The patches that need patches, Licensing 6.0 and the crummy way they treat customers caused us to decide that the more open world outside of Microsoft gives us more flexibility and lowers our overall cost of development. So now we are moving to Linux servers and desktops. We program for Apache using PHP and Java. In-house and business rules are to be run by J2EE. Just one company's opinion, but we are on the front edge of a growing trend. I was frankly stunned by the options available outside the Microsoft world. It's definitely a planet I don't want to return to. Jerry V. Way Kenra LLC, Indianapolis, IN ---------------------------------------------------------------------- MORE HUMOR "More than anything else, [Windows] XP reminds me of a tourist trap. You arrive in a foreign city, and a handsome stranger walks up to you and says he will show you around the city. He offers to take you to the very best shops and restaurants. But you soon realize that he is taking you only to places that are owned by his relatives or by someone who gives him a kickback." , Tom Regan, Staff writer of The Christian Science Monitor "If we really wanted to accomplish something, we shouldn't be teaching our allies how to use PowerPoint. We should give it to the Iraqis. We'd never have to worry about them again." -- Peter Feaver, a military expert at Duke University, wondering if the U.S. military is misusing the presentation software. "Every night at around 6:35 one of their machines disappeared off the network for about 10-15 minutes. One day he and another guy were there late working on a project when they watched while the cleaning lady came in and unplugged the switch that the machine was attached to, and plugged in her vacuum. In a few minutes she was done, so she unplugged the vacuum and plugged in the switch again." ====================================================================== VFP KNOWLEDGE BASE UPDATES ====================================================================== (none received since 3/22) How To Look Up These Articles: To get to a specific KB article: a. Go to support.microsoft.com. Search is at left of the page. b. Select "Visual FoxPro" on the drop-down. c. Enter the document number in the textbox below it. d. Click on the green arrow. To Subscribe: Subscribe at . You can specify any MS product to receive alerts on. ====================================================================== LINKS ====================================================================== This is a (semi) permanent list of places to look for technical help when you get blind-sided by the latest urgent requirement. We don't give specific URLs for MSDN articles because (a) they're too long and (b) they change too often! ------------------------------- MSDN ON LINE: There's a ton of stuff here, look at the Magazines tab, and read some of the regular columns. MSDN Library Look in Technical Articles | Visual Studio | Visual FoxPro MSDN Library: "Building Three-Tier Client/Server Applications with Visual FoxPro" ADO MSDN Library: ADO Jumpstart for Microsoft Visual FoxPro Developers John V. Petersen, April 1999 DNA (Distributed interNet Architecture): MSDN On-line: "Top Windows DNA Performance Mistakes and How to Prevent Them" FoxPro 2.6: http://members.aol.com/FoxProResources/fpfp.htm MTS: Microsoft Transaction Server MSDN Library: "Microsoft Transaction Server for Visual FoxPro Developers" ODBC: MSDN Library: "Using Visual FoxPro to Access Remote Data" ODBC drivers are part of MDAC - Microsoft Data Access Components - and are available for download at: "www.microsoft.com/data" VS Installer: MSDN Library: a. "Using Visual Studio Installer for VFP 6.0 Applications" b. "VFP 6.0 and VS Installer Tutorial" VFP Publications: www.advisor.com FoxPro Advisor www.pinpub.com FoxTalk magazine www.hentzenwerke.com Hentzen Publishing (Books, discussion, and downloads) VFP General: msdn.microsoft.com/vfoxpro Microsoft's official VFP home page www.foxcentral.net Joint effort by Microsoft, West-Wind, and the Universal Thread Lots of news and development info. MS Developer Applications Forum on Compuserve http://go.compuserve.com/msdevapps The History of FoxPro (submitted by Steve Settimi) www.foxprohistory.org The Universal Thread http://www.universalthread.com The "Wiki" www.wikis.com fox.wikis.com fox.wikis.com/wc.dll?Wiki~FoxForumWiki Here is the most complete set of FoxPro links you're likely to find: http://www.cetus-links.org/oo_visual_foxpro.html Private websites with useful free info and downloads: www.prolib.de/foxlinks.afp wOOdy Wondzinski www.honeypass.com Allen Pollard www.ukfug.org.uk British user group www.lafox.org LA user group www.pinter.com/ Les Pinter www.vfug.org/ Virtual Fox User Group www.leafe.com Ed Leafe, ProFox listserve www.jamesbooth.com www.foxforum.com www.foxfolk.com www.foxite.com (registration required) A group of Dutch developers - refreshingly geeky. (Don't be put off by the registration - they're not selling anything.) www.stevenblack.com www.craigberntson.com WEB Development: These products all work well with VFP. AFP www.afpweb.com and www.afpages.com DotFox www.elsoftware.com FoxWeb www.foxweb.com Web Connection www.west-wind.com X-WORKS www.x-works.com Windows General Win32 API (with VFP examples) XML - What's New in XML for Microsoft Windows 2000 See also OLE DB drivers for XML in MDAC 2.6 at "microsoft.com/data" [Contributions solicited. DC] --------------------------Administrivia------------------------------- This newsletter is a service to all FoxPro developers, provided without charge by the FoxPro Developers Network of San Diego (FPDN). Anyone may subscribe (or unsubscribe) at our web site . The link is on the home page. The Resources button on the website will take you to the back issues of the newsletter. The editor (Dan Covill) is solely responsible for the content. E-mail him with YOUR tips, comments, or complaints. Editor: Dan Covill 858-272-2448 dcovill@acm.org Board of Directors: Eric Lendvai - President 760-734-4929 eric@elsoftware.com Art Bergquist - Vice Pres 760-740-0428 abergquist@sbcglobal.net Thad V'Soske - Secretary 619-544-9900 tvsoske@yahoo.com Barbara Peisch - Treasurer 760-729-9607 barbara@peisch.com Lou Syracuse - Director lsyracuse@delmardb.com Claude Nikula - Director 619-615-6318 crndev@cox.net ----------------------------------------------------------------------