Level Extreme .NET Magazine April 2008 issue

Universal Thread Magazine March 2007 issue

2006
2005
2004

2007
2006
2005
2004

2007
2006
2005
2004
2003

2007
2006
2005
2004
2003
2002

2007
2006
2005
2004
2003

2007
2006
2005
2004
2003

2004
2003
2002
2001
2000
1998
1997
1996
1993

2003
2002

2003
2001

2003
2002
2001

2003
2001

Visual FoxPro 2001
Visual FoxPro 2000
Visual Studio 2000

West Wind 2002
Double Impact 2001
FoxTeach 2001
Jam sessions
Technical Guidelines

Universal Thread documentation

About
Acronyms
Contact information
Troubleshooting
Time zones
Web Service
Terms & Conditions
Copyright

Manage your account for the messages area options, your subscription information, your invoicing, youir banners and your pictures Subscribe to the Universal Thread and get all the benefits related to the messages area A corporate subscription is needed for companies that have more than one developer Access the Universal Thread store to purchase your subscription, corporate subscriptions and banners The Universal Thread is covering several conferences per year. On site, reporters cover the technical aspect of the conference as well as making interviews, taking pictures and videos and other related content. Get all the reports from our coverages site. Universal Thread home page Level Extreme .NET Magazine, a newly published online magazine by Level Extreme about Microsoft .NET technology and its community Universal Thread Magazine, a magazine dedicated to the Visual FoxPro community Visual FoxPro DevCon '00

Quick Impressions

by John Koziol

My DevCon roommate, Dave Stevenson, has done a great job explaining what was talked about Sunday, Keynote night. I thought I'd add my overall impressions; y'all will hear lots more about the details in the months to follow......

VFP 7 is pretty cool. The enhancements and new features seem to appeal to two VFP develop camps: Those that use VFP as the single, monolithic tool and those that use VFP in the COM and Web world.

I know that monolithic VFP apps are "politically incorrect" at this time, but it's nice to see that the Fox Team hasn't ignored developers' calls for improved UI functions, enhancements to the DML, IntelliSense, et al.

For the other camp, the new additions are staggering in scope. It's not the number of enhancements, but the scope of enhancements that will cause all of us to rethink how we fit VFP into distributed environments. Of particular interest to those who plan to work with SQL Server 2000 or Web Services are an impressive array of new XML related commands and functions that would allow VFP apps to work and play very well in the Web Services world. I can't really go into details at this point because I really haven't had a chance to play with these features.

Suffice to say that several developers in attendence doing web work could be seen salivating and growing fangs as the conference progressed.

Microsoft sponsored an MVP luncheon on Monday. At that luncheon, it was said that features in the Tech Preview version of VFP7, distributed at the PDC and at DevCon tonight, can be openly discussed. This means that you can expect to see a lot of "Fun With (New Feature)" posts by yours truly and others in the coming months. Who can forget the enormously useful posts by Jim Booth on new VFP6 features a couple of years back? I hope Jim considers a sequel to those posts for the new version.

Overall? VFP is alive and kicking ass. The Fox Team has done a great job. The VFP tool and product vendors are doing a great job. Everyone is going to have a lot of fun with the new version of our nearest and dearest tool. VFP is dead in the .NET world? Could have fooled me.

 
John Koziol, Digital Elite Services 
John Koziol was an independent consultant and developer off and on for almost 20 years before joining Microsoft in 2001. Since leaving in 2005 he has been involved in several cutting-edge projects. He has written numerous articles on VFP related topics for both print and on-line media. He is an MCSD and was awarded Microsoft's MVP award from 1998 through 2001. John is married and has three children.

Opening night

by David Stevenson

The 11th Visual Foxpro DEVCON opened tonight with at least 1,000 in attendance, after a day of pre-conference seminars and workshops. Many of the VFP faithful had gathered Saturday night in the hotel bar for cold drinks and warm fuzzies. It was truly gratifying to see people with very different views actually complimenting each other and laughing together. Strange and wonderful things often happen at DEVCON events.

Robert Green's opening keynote at 7pm Sunday focused on VFP7 and Visual Studio.NET. He was joined on the stage by Ricardo Wenger, Calvin Hsia, Randy Brown, Ken Levy, and Gene Goldhammer.

A quick survey of the audience showed that about 35-40% were attending their first DEVCON, and that about 50-75 had also attended the New Orleans show in May.

Most of the new features of VFP7 have already been shown at previous events, and have been reported on in articles on the wiki and the UT, so this article will just give an overview of the opening event, with a few new features just announced tonight.

A new feature of the property sheet is more detailed information about the inheritance structure of various events. For example, we saw a form's destroy event listed as [inherited_container d:\fox70\test_base.vcx], instead of [Default].

Sankaran Raman of ACCPAC showed an automated testing harness, based on the new Active Accessibility features. After recording various keystrokes, mouse movements, and clicks, the harness was able to play back the user actions just as the user typed them. This utility will ship in the box with VFP7.

Randy Brown revealed that there are several improvements in VFP type libraries, including preserving case of property and method names, and the addition of attributes (such as a write-only property required for queued components).

The session class will hide all of its intrinsic PEMs from the type library, so someone using a VFP component won't have to wade through properties like "baseclass", etc. Also, the session class will now default to "OFF" for SET EXCLUSIVE, SET TALK, and SET SAFETY.

VFP7 gets early binding support for calling COM servers, using a new GETINTERFACE() function and an additional parameter added to CREATEOBJECTEX(). More details as we get them on this potentially important development.

We can now rollback changes to VFP tables that are part of distributed transactions. (Until now MTS transaction rollbacks could not rollback VFP tables). This is done NOT by supporting OLE transactions, but by using the Compensating Resource Manager feature of COM+. This involves writing a VFP worker class to change the table, and a VFP compensator class to do the rollback. The compensator class definition would include the following clause:
... IMPLEMENTS ICrmCompensatorVariants IN "comsvcs.dll".
A new feature is the XMLUPDATEGRAM(lcTmpFile), which can be run on a buffered cursor to get an XML representation of the before and after values of the data. This is equivalent to SQL Server 2000's Updategram feature.

VFP7's ability to easily create Web Services was emphasized, with the reminder that it will get rid of the need to register remote components on client machines, as is required with DCOM. A Web Services Manager dialog enables easily setting up an existing COM object as a Web Service, with the necessary code generated automatically via Intellisense code completion.

Ken Levy ("Where's my hair? Now I can code faster...") showed in about 3 minutes a very cool demonstration of the new EXECSCRIPT function, which he called his favorite Foxpro function. First, a simple example, which ran a FOR loop ten times:
EXECSCRIPT( "for i=1 to 10"+CHR(13)+"?i"+CHR(13)+"endfor"+CHR(13) )
This was followed by an amazing little prg called "intx.prg", for IntellisenseX. This one went out to a website, brought back several blocks of VFP code embedded into CDATA sections of an XML document, stripped it out, and saved it into a Foxcode.NET catalog in the Component Gallery. A double-click on the icon in the gallery gets the latest XML from the web, pulls the code from it, and runs it using EXECSCRIPT().

.NET

Robert Green gave an overview of the new .NET framework and Visual Studio.NET, then got around to the topic many of us were waiting for: What about VFP and the Common Language Runtime?

The story for the upcoming version of VFP.NET is this:

  • VFP7 does not run on the CLR
  • The .NET Framework can use VFP COM components and Web Services
  • VFP7 can call .NET components, such as VB/C# components
  • VFP7 can use the pieces of the .NET Framework, such as ADO+: thisform.mycmd = CREATEOBJECT("system.data.sql.sqlcommand")
  • VFP IS A PART OF .NET AND VISUAL STUDIO.NET (this was repeated again and again)

The integration of VFP into the Visual Studio environment is impressive, with the editor in VS able to create VFP prgs, with VFP's version of Intellisense built in. We can create, build and debug VFP components completely inside the VS IDE.

Along with our DEVCON T-Shirts on Tuesday, we will all get the VFP7 Tech Preview CD, and all paid DEVCON attendees will receive the VS.NET Beta 1 later this year, after it first ships to MSDN Universal subscribers.

Robert Green stated that the focus for this release was to build a better VFP, and to provide ways for VFP developers to integrate with apps built in VS.NET. And, once again, he stressed that VFP is a part of .NET.

He ended with the statement that CLR support is one of the options for VFP8, but that dialog with the VFP community is needed before that decision can be made. We need to study .NET and the CLR, examine the various trade-offs involved, and talk with them about what direction the product should take in the future. It's obvious that many of the community's suggestions have been incorporated into VFP7, so they are ready to hear from us about the next steps.

Robert said, "It's your Visual Foxpro -- tell us what you want us to do. We're here to make you happy."

At the dessert reception after the keynote, I asked Ricardo Wenger, VFP's Group Manager, whether there would be a VFP8 (assuming that there still is a Microsoft). He replied, "Why not? I mean, look around the room here -- it's full of VFP developers. It's a good product, and I see no reason to stop. Why not do another one?"

Robert and Ricardo both emphasized that they appreciate hearing from the community, and look forward to participating in open discussions about VFP's future feature set. "I'm not just talking about this week," Robert said, "but an ongoing discussion over the coming months, as people get more acquainted with the .NET initiative." Bottom line: they don't want to spend a huge effort on building something that few people will want or use, so we have to do our homework and join the discussion.

Comments from a few attendees:

Paul Maskens: The ease of working with distributed data with XML could cut some jobs from weeks down to days. COM and DCOM give way to XML-based applications.

Erik Moore: The XMLUPDATEGRAM() got my attention, and immediately I started rewriting my framework in my head. I just want to know if we will have the opposite function that can read an updategram and update the tables.

Ed Rauh: I didn't see much that we didn't already know, until Ken Levy did his demo. That gave me a few things to think about.

 
David Stevenson, Stevenson & Associates 
David Stevenson, Editor of FoxTalk 2.0, is an "old" Fox developer, having started with Foxbase and progressing up through Foxpro 2-2.6 (DOS and UNIX) and VFP 5-9. He is a MCSD, a regular contributor to the VFP forum on the Universal Thread and currently working as a contractor on several Visual FoxPro projects. He was for several years the Editor and Associate Publisher of Code Magazine and Marketing Representative for EPS Software Corp.



Copyright © 1993-2008, Level Extreme Inc., All Rights Reserved
62 Rue Doucet, Petit-Rocher, New Brunswick, E8J 1L3
Telephone: 1-506-783-9007 Email: mfournier@levelextreme.com