HOME | SIGN UP | ACCOUNT | SUBSCRIBE | STORE | WHAT'S NEW | TESTIMONIALS | TROUBLESHOOTING | SUPPORT AREA | SITE NEWS | LOGIN
Classes & methods · News · Jobs · Links · Downloads · Articles · Conferences · Magazines · Training · Consultants · Consulting · Blogs · FAQ
Books · Applications · Meetings · User groups · Speakers · User group leaders · Universal Thread Magazine · Coverages · Photos · Videos

German Visual FoxPro Developer Conference 2003

The German Visual FoxPro Developer conference is organized by the German FoxPro User Group. It is the main event for Visual FoxPro in Germany, Austria and Switzerland since 1994. 2003 is the 10th anniversary - as always in early November and this time the first time with UT-online-coverage. In 2002 we got back the attendees we lost due to Sept. 11th with an overall increase of 3%. We hope to do even better in 2003 with the new and best ever version 8.0 of Visual FoxPro available.

Date: 
Location: 

This conference has 228 pictures. We display 12 randomly selected pictures here. You may click here to view the album thumbnails.

German VFP DevCon 2003
German VFP DevCon 2003
German VFP DevCon 2003
German VFP DevCon 2003

German VFP DevCon 2003
German VFP DevCon 2003
German VFP DevCon 2003
German VFP DevCon 2003

German VFP DevCon 2003
German VFP DevCon 2003
German VFP DevCon 2003
German VFP DevCon 2003

Day Zero

by Hans-Otto Lochmann and Armin Neudert

Hello again! We are now in Frankfurt, Germany, waiting for the German FoxPro DevCon to start. Like in the past we will start our reporting with a very short reference to the place, where we are now, the City of Frankfurt, where this event will take place.

The City of Frankfurt

Frankfurt am Main, located in the valley of the river Main, between mountainous areas of Spessart and Taunus, is nowadays one of the most important financial and commercial centers in Europe.

The origins of Frankfurt go way back into the past. In early medieval ages (794 A.D.) there is a first documentary mention of Frankfurt. Yet the place must have been inhabited much longer. Its name consists of two parts: "Furt" means river crossing and "Frank" comes from "Franken", which was the name of a closely related group of Teutonic tribes living along the Rhine valley, along the Main valley and further to the west. In the early medieval ages (500 - 800 A.D.) the Franks formed the most powerful empire in central Europe. Nowadays there is a region, called Franken, which is the northeastern part of Bavaria; well, the empire of the Franken still exists: The Germans call it Frankreich, English speaking people simply call it France.

Being in the cross section of all of this, Frankfurt became a place of trade and commerce. You will probably remember, that in the 4th century A.D. Sunday became the holy day of the Christians: What to do after the divine service in Church, which usually is on Sunday morning? Well, if you have enough traders in the city... So in Frankfurt these guys started to make some trades after the divine service, which - everybody was Catholic at that time - was called "mass". So they called these trade gatherings also "mass". This second meaning of the word "mass" survived in the German language until today: trade shows or fairs are still called "Messe", the German name for mass. By the way: the first time that fairs in Frankfurt were mentioned, is in old Jewish sources in 1150.

From the medieval time until today Frankfurt remained to be a world trade place. The picture to the right shows the Frankfurt Stock Exchange. There are quite a few international fairs, the probably best known internationally are the book fair and the IAA, the Internationale Automobil Ausstellung (international motor car trade show). These and other fairs lure annually approx. 2,5 million visitors and 37,000 exhibitors from all over the world to come into the city.

Mainhattan

What would trade be without banks? In Frankfurt there are now about 460 banks (130 from outside of Germany) and the fourth largest stock exchange in the world. These institutions are controlling quite a substantial portion of monetary funds in Europe. So when the EURO was introduced in 1998, the European central bank was located in Frankfurt. With so many banks, Frankfurt has nearly as many persons employed (569,000 jobs) such as inhabitants (650,000). Which in essence means that there is a lot of traffic around Frankfurt every morning and evening. The local Frankfurt airport is one of the busiest traffic hubs in Europe: planes are starting every two minutes each day.

Banks and trade fairs need houses. And as bank people are shy and tend to stick together, they build their houses closely together which in turn means they build skyscrapers. The skyline from Frankfurt is nowadays rather unique in Europe. Presently around 80 large bank and office buildings tower above the center of the city. Among the highest are the Commerzbank tower (258 m) and the Trianon of the Deutsche Bank (German Bank) with its two towers, called "Soll und Haben" (debit and credit). In many buildings visitor platform are open to the public, and offer unforgettable views over the city.

In addition, other industries have their location in this region as well. There are more than 2,500 High Tech companies located in and around Frankfurt, production and selling goods and services. 65 of the 500 largest European corporations (measured in turnover) are located in the area around Frankfurt am Main (Frankfurt on the river Main).

And someone couldn't resist the temptation and called that place "Mainhattan" - of course with a big smile.

Johann Wolfgang von Goethe

You cannot talk about Frankfurt without mentioning one of its "greatest sons" Johann Wolfgang von Goethe. He was born in 1749. He began studying law in Leipzig in 1768, which he had to interrupt because of a serious illness. He continued his studies of law in Strasbourg and finished in 1771. On invitation of Duke Carl August he moved to Weimar, where he started working as a member of the local government in 1776 until he died in 1832. As usual with public servants his daily workload could not have been very high, if you look on what he did besides that:

  • a successful poet, whose works are still read worldwide today; he was using, as a scientist found out, the by far largest vocabulary of German words of any of the German poets before or after him (except for modern tech talk),
  • a successful bon vivant and womanizer with lots of true and invented adventures, told by him or others,
  • a successful operator of the local theater, which eventually became famous throughout Germany,
  • a successful scientist, whose theory of colors strongly influenced the "3-item" structure of today (e.g. RGB) and whose collection and analysis of minerals strongly initiated a long living movement in the upper middle class to have collections of minerals at home.

Now two cities are preserving his fame: Frankfurt and Weimar. Both named places and streets after him. In Frankfurt even the university was named after him. Goethe's birth house was destroyed in the Second World War, but it was carefully rebuilt thereafter so it is more original than it was ever before. It is open to the public, of course with an admission fee (so you can express your admiration toward that genius of mind).

ISYS GmbH and dFPUG

Everything started in 1992: Rainer Becker, addicted to computing, PCs and FoxPro, closely escaped the draft to the military service. Instead he decided to start the ISYS Software Development and Publishing House GmbH. Why he called it "ISYS" is not clear, not even to him. "ISYS" sounds nice, can be pronounced in every language, is easy to remember, and allows a great variety of interpretations like "Information SYStems" or "Intelligent SYStems" or ISYS, the Egyptian goddess, which (sorry Rainer, but I couldn't resist) was responsible for love, sexuality, ceremonies, health, healing, and immortality (good for VFP!).

The plan behind the publishing house part of ISYS was to publish a small German-language magazine about FoxPro. After exploring that field while visiting the FoxPro DevCon in Phoenix, Arizona and attending the first German FoxPro conference in Frankfurt/Main, Rainer met Gerhard Paulus as well as Juergen Wondzinski (wOOdy) who also were considering to publish a magazine and to found a User Group. After some discussions the three gentlemen agreed that Rainer set up the ISYS GmbH to publish the Visual FoxPro Newletter, whereas wOOdy started his venture to sell software tools for Visual FoxPro (ProLib GmbH). wOOdy had sent out a first "Rundmailing" (sending a mail to everybody known to him; this is one of the many meanings of the German word "rund"). Those responding to that there were invited to join the newly established deutschsprachige FoxPro User Group (dFPUG).

When Microsoft acquired Fox Software in June 1992 the development of the user group really got exciting. At that year's CeBIT (the German computer fair, unfortunately in Hannover, not in Frankfurt) the dFPUG had an exhibition stand, which was really heavily besieged by curious visitors watching the demonstrations of the new FoxPro for Windows. The numbers of members climbed precipitously from 200 to approx. 500 that year and the first booklets were produced.

Today the number of members in the dFPUG is about 800. More than half of the members are organizations and companies with more than one Visual FoxPro developer working for them. So the actual number of persons behind dFPUG is rather about 1200 or some more.

Conferences for developers, developers, developers...

In the subsequent year 1994 Microsoft organized a data base conference in Berlin. Rainer felt challenged and thought, that he could do better. So he organized - with the help of some friends - the first developer conference of dFPUG in the Steigenberger Hotel at the Frankfurt Airport. The first conference was only two days, but a full success, because a lot more information was offered and because there was much more fun (and food).

Rainer also tried to have a simultaneous translation of the lectures of Calvin Hsia and Ken Levy. Result: It was never tried again. The hotel had one big advantage: it allowed to have space either arranged into four rooms or into one big one, where then the Keynote could be held.

Though this was very attractive, the following year the hotel management had the glorious idea to have refurbishing work to be done exactly on the date of the DevCon and mostly on the floor where all speakers were located. So everybody was annoyed and Rainer looked for a new hotel for the DevCon in the following year.

The Lindner Congress Hotel in Frankfurt-Hoechst proved to be the right partner with an understanding management and suitable facilities. Now this year's conference is the 8th in this hotel and the 10th of dFPUG.

Rainer regularly visits the US DevCons, to learn more about Visual FoxPro, but also to participate in the various discussion groups and meetings to find enough appropriate speakers for the German DevCon.

Conference # 10, conference binder, attendees and the evening before

This year's conference is the 10th in a straight row of conferences.

Actually this conference is not one conference, it is three conferences in one location: A Visual FoxPro conference (Tuesday to Friday), a .NET conference and a SQL conference (each on Thursday and Friday). The attendees could "book" one or several days as it fits best to their needs. And once in the conference location attendees can easily switch between the sessions, as they like, well, not exactly that way: Each attendee has to provide his / her preferences when booking the conference, and hopefully will stick to it, so Rainer can allocate rooms (size!) to sessions depending on the demand.

Also there is also a wealth of sessions: in total 95 sessions were offered, 84 "lecturing" sessions and 11 vendor sessions. 42 + 5 sessions (lecturing + vendor) were presented in German, 42 + 6 in English. Also some of the sessions, which referred to the same area of interest, were grouped together in 4 "tracks":

  • Introduction into Visual FoxPro (8 sessions)
  • Visual FoxPro and Linux (4 sessions)
  • .NET for FoxPro Heads (10 sessions, this also is the .NET conference)
  • Microsoft SQL-Server (9 sessions, this also is the SQL conference)
Tracks have the advantage that one speaker or several speakers can concentrate on a specific field of interest. This field then nicely can be presented (and "consumed") in easily digestible portions.

And there will be 3 (in words: three) Key Notes (included in above figures):

  • On VFP 8
  • On Europa, the next version of VFP
  • On Whidbey, the next version of Visual Studio

This wealth of sessions may be a great fun for attendees; they are a pain in the neck for two poor reporters who unfortunately do not master the art of being present in 5 or 6 rooms at the same time. So "it was decided" (guess by whom) that the workload was somewhat made somewhat more bearable by concentrating on the most important topics and sessions. We therefore humbly apologize to everyone who is not mentioned as he / she would have liked to have been mentioned...

This is not only the 10th conference, but also the one with the largest folder ever issued for one conference. It comprises 980 pages, well, "close to 1,000" sounds much better. The conference CD contains

  • the material to nearly all sessions (as a paper in form of a pdf-file, all the PowerPoint Slides used and all examples),
  • links to the material of all earlier conferences,
  • material and links to the famous portal, which contains, among others on-line links to the various sections like the discussion forum, the dFPUG wiki, shop, regional meetings, dFPUG-newsletter,
  • important service packs, like SP3 of MSSQL2K, SP1 of VFP8,
  • the VFP-NET-Toolkits,
  • a trial version of Visual Extend,
  • AND the German User Interface for Visual FoxPro 8.0 (for the basic version and SP1), the German Help-File and a German dFPUG-Taskpane.

By the way: There is now a second meaning of GUI - German User Interface.

Altogether about 240 attendees have submitted their registration and will listen to the 21 speakers who will present their sessions in German and 12 speakers (1 from Hawaii (guess who), 10 from North America, 1 from Bulgaria) who will present their sessions in English.

Tuesday, November 4

by Hans-Otto Lochmann and Armin Neudert

An Overview on Visual FoxPro 8.0

The undestructible Jürgen Wondzinski, aka wOOdy, in his genuine element: Praising FoxPro.

The new version 8.0 of Visual FoxPro is surely one of the most extensive updates, which ever happened to Visual FoxPro. If you could fill a whole book on the improvements contained within VFP7, then this time there is enough material for another novel on the same topic: like a successful continuation novel! The scope of the improvements reaches from minor language extensions, which every developer wanted to have for years, up to completely new technologies, all of which have to be properly investigated in order to be understood.

Once upon a time there was a VFP update, which needed whole three years to come forward: VFP 7. This update contained all the developing efforts needed to achieve interoperability with DotNet, better support for COM+, support for Web services, IntelliSense etc. Though there had been substantial improvements compared to Visual FoxPro 6, most of these improvements have been subtle and could not easily be understood by outsiders like your boss.

But then Visual FoxPro 8.0 came only 18 months later: VFP 8 now contains everything, which was missing in the last update. Most additions came from the WishList, which is maintained by www.UniversalThread.com. Everybody can record whatever he/she wants to be included in Visual FoxPro. So this Microsoft product will stay as close as possible to whatever its developer want to have. And the WishList contains enough ideas to justify two more versions...

wOOdy then showed us all the enhancements and new features OF Visual FoxPro 8:

Track: An introduction to Visual FoxPro (Part 1/2)

Today, this track started with three sessions and was presented by Michael Niethammer, managing director and co-owner of TMN Systemberatung GmbH, located in Ilsfeld (near Heilbronn - in the southern part of Germany). This track is a version independent workshop for developers that are new to Visual FoxPro or are not very experienced with VFP, yet. Until two years ago, there was a pre-conference teaching this content, but then Rainer decided to include these sessions into the main conference. The idea was to give attendees the chance to visit only those of the sessions they want to see and not forcing them to visit the whole workshop, even if they would only want to see the more advanced parts of it. Amazingly, this track had some of the most visited sessions last year, which in my opinion shows, that there are (or at least were) still many developers out there who are switching from older FoxPro versions or from other development tools to Visual FoxPro. The whole track consists of eight sessions in total and is spread over the first two days of the conference.

The first session (Introduction to Visual FoxPro) had the goal to give an overview over the possibilities and tools Visual FoxPro offers to developers. Michael explained the whole IDE including developer tools like the Object Browser, Class Browser, Profiler, etc. He also explained what Intellisense is all about and showed the most important Wizards. After that, he gave a quick overview of the Visual FoxPro base classes.

The second session is called "The Visual FoxPro Database Engine I". Michael covered all the important topics like how to create tables, including an explanation of field types and the different index types that are available. Then he explained everything you need to know about Database Containers, Stored Procedures and Referential Integrity.

Based on the knowledge taught in the second session, more advanced data related topics were covered in the following session called "The Visual FoxPro Database engine II". Working with Local, Remote and Offline Views as well as dealing with database events were the main topics. Michael also gave an introduction on the SQL commands built into VFP and SQL Pass Through.

To be continued on Wednesday...

True Windows Server Services with VFP

Now we get to the session of my fellow reporter Armin Neudert. He first explained what services are, what they are good for and then gave an overview of the whole service technology built into Windows NT, Windows 2000, XP (Home and Professional) and newer versions. He pointed out, that Windows 95, 98 and ME only support a very small amount of the things he was going to explain.

Armin then told us why a Visual FoxPro application cannot be run as a service without the help of other tools. Then he explained why tools like srvany.exe, Firedeamon or other wrapper applications are not the best solutions to run a VFP application as a Windows Service: They are not supporting all events a Service can support and they are especially having problems when it comes to stopping the wrapped application.

After that, he presented a solution that uses Visual Basic 6.0 and a free ActiveX control to build a much better wrapper application that talks to a VFP COM DLL. This solution supports all events like start, stop, pause, continue and Windows shutdown. The VB6 application includes a Timer object that periodically calls a method of the COM server, so the VFP application can do its job. The Timer object is situated in the wrapper exe, since VFP doesn’t support Timers in inprocess servers. Armin also showed us that the VB application asks the COM server for a message to put into the Windows Event Log after the VFP code has executed when the Timer had fired.

After an overview about topics like how to control a service application, what to know about communication with users and error handling in a Service application, he explained what is needed to know about the installation of a Service and demonstrated how easy the setup of his solution is. He built a new COM DLL and simply copied the wrapper application to another directory and renamed it. After that, the name of the COM class the VB6 part is creating was changed in the wrapper’s INI file, where you can also configure the timer interval. He executed the wrapper exe with a command line switch (-install) to get it registered as a Service. Then he switched to the Management Console and started the service, which was immediately running as expected.

Happy that everything went well and the audience appreciated his session, Armin returned to his job as a UT reporter ...

Software Architecture and Design Patterns

Nathalie Mengel introduced Design Patterns and the principles of software architecture to the audience. As Nathalie outlined, intuitively developed application designs may be successful now and then, but a well-structured design, derived from the proper use of Design Patterns, may be harder to get but will be superior on the long run. But knowing (and successfully using) Design Patterns is only one half of the story. Avoiding "anti-Patterns" is the other half. Knowing anti-Patterns is therefore essen-tial for a developer or a system designer to be successful. Therefore Nathalie presents both in her session.

Nathalie showed that software systems will have an ever enlarging influence in our daily life. If one analyzes the structure of today's spending on software, the majority of money is spent for maintenance and not for development. The main determining factor for the maintenance cost is the design of the software. Well-designed (and documented) software is maintained at a fraction of the costs, which will incur, if the design is hazardously sloppy. Sloppy designs usually result from a lack of understanding of the problem to be solved, careless analysis of outside influences, lack on determining all of the parameters and so on. When these fundamentals are not carefully laid, then even the best design wouldn't help. But usually carelessly setting up a project is accompanied by lack of understanding how to design a system in a good mannor. So there is virtually nothing, which will prevent the usual disasters from happening. Contemporary example in Germany: the embarrassing delays in the introduction of a truck toll collection system.

Though it is not a universal remedy, carefully and thoroughly structuring the software system is essential to avoid most of these problems. Structuring the software thoroughly and carefully is called Software Architecture. Software Architecture partitions a system into separate units - components and subsystems - with defined responsibilities and interactions.

Well-designed software components are self-contained. Each component is able to perform certain tasks or duties, for which it is designed. It also has a well-defined interface through which it communicates with other components. The combination of these components and their interactions form the application system.

As Nathalie pointed out, these components are called objects. These objects are created at runtime from a basic design, which is patterned or derivated thereof. The functionality of these components is determined by these designs. The design also determines the interaction of these components among each other or with the environment.

The more independent these components are from each other, the less changing a component will influence its relationship to other components or influence the relationship of other components among each other. The greater this independence can be made by an appropriate design, the more stable software architecture will be.

Stability is one of the non-functional characteristics of software, which should not be neglected at any price. Nathalie explained that functional characteristics are placed in the center of everybody's attention, because the "specs" often only describe, what kind of functionality the user expects. Non-functional characteristics are usually omitted in the specifications, but are, as Nathalie outlined, essential for the success and usefulness of the software. Besides stability, other non-functional characteristics include maintainability, expandability, reusability, and "testability".

In order to develop an application system efficiently, its architecture must be designed from the outset to take care of these non-functional characteristics. Once the software system is employed further non-functional characteristics like reliability or efficiency gain importance.

Nathalie then carefully explained the basic techniques of Software Architecture like

  • Abstraction
  • Packaging
  • Information Hiding
  • Modularity
  • Separation of the interests
  • Coupling and coherence
  • Suitability, completeness and simplicity
  • Separation from strategy and implementation
  • Separation from interface and implementation
  • Principle "single POINT OF reference"
  • Principle "divide and more conquer"

Nathalie then went on to explain what Patterns are and what role they take in the software architecture. Patterns go much further than the principles explained above. They not only provide assistance or guidance, they also provide solutions, which can immediately be used.

While the above principles are derived by abstraction, the Patterns, which are used in today's software architecture are derived from analyzing the daily practice. Patterns do not only provide a solution for a given task and how they are employed. Patterns also describe, whether there are competing Patterns, which offer solutions to similar tasks and what kind of environmental influences have to be taken care of when a Pattern in question is to be employed.

Another important advantage of Patterns is that they do not only provide a solution, they also provide a complete set of rules how to analyze the system on hand in order to employ them. Complex circumstances can be understood much easier, if you do not have to find a separate method or solution for each given task. Patterns come with predefined characteristics and provide all necessary information on their employment. They provide - so to speak - a predefined set of modules with known characteristics, which can be easily combined to provide a solution. Discussions between developers are substantially simplified, because everyone knows and accepts, what a given Pattern stands for.

To make this better understood, Nathalie explained the nature of two well-known Patterns. She also explained why Layers cannot be considered a Pattern.

Knowing only Patterns won't help on the long run. Thinking in Patterns requires a strict discipline from every developer and from each member of the team. Therefore the "Anti-Patterns" were developed.

Remark from the reporter: While Antimatter is the opposite of Matter, Anti-Patterns are not the opposite of Patterns. Anti-Patterns are Patterns, which are the ugly brethren of well-designed Patterns.

As Nathalie outlined Anti-Patterns come into being because a sloppy solution was derived for a given situation or because a basically good solution was poorly employed. In order to avoid the pitfalls of Anti-Patterns they have to be known. But also it is worthwhile to know what the behavioural structures are, which will finally lead to these Anti-Patterns. Therefore Nathalie spent considerable time to outline the typical behavioral structures which lead to Anti-Patterns. Among these basic evils of software development are

  • Haste
  • Apathy
  • Narrow mindedness
  • Sloth
  • Avarice
  • Ignorance
  • Pride

Using Copy&Paste programming as an example, Nathalie told us that even a good developer can fall into the pitfalls of Anti-Patterns if he/she forgets about the mental discipline any developer has to employ if he/she wants to be successful on the long run.

Business Objects - a strategy for the future

During his introduction on the methodology of Business Objects, Marcus Alt explained why they are something a developer should want to use. One of the most important points he mentioned was that Business Objects are the solution for the "Where is the code?" problem. We always know where the code for a certain task is or where it should go. That means easier maintenance, planning, reusability, which means you have a much better and clearer design due to normalization of the application logic. Marcus pointed out, that testing also becomes a lot easier, since you always have to do changes only in one place and not in several, so we can test small encapsulated pieces of the application regarding data access.

Marcus pointed out, that one should be aware that the number of Business and Process Objects may rapidly increase while working on a larger project. He said that we should not consider this a disadvantage. We will have a lot of classes, but we will always know which one to use and where to do our changes.

Using a detailed and extensive sample implementation, TMN (the company of which Marcus is a co-owner) uses for training classes on Multi-Tier-Architecture with Visual FoxPro, he then demonstrated how Business Objects can be built with VFP and how a good design for the implementation of Business Rule Objects can look like. The sample implementation is included on the conference CD and surely is a good starting point for people, which are new to this topic and want to get a start in the right direction.

Creating Hierarchical XML with VFP

This was the first session, Venelina Jordanova ever held in English here in Frankfurt. She is a principal of a software company located in Varna in Bulgaria (Eastern Europe). The company does the programming work of some of the enhancements for the Visual Extend framework that is now owned and maintained by the German FoxPro User Group.

The main target of this session was to show, how we can deal with hierarchical XML, especially using one of the great new features in Visual FoxPro 8.0: the XMLAdapter class. Many of us have already been working with the XML functions that were introduced in Visual FoxPro 7.0, but the possibilities the XMLAdapter brings to us, are much better, as Venelina showed us.

She first made a short introduction on XML in general and then explained what makes a well formed and a valid XML document. Then Venelina explained the basic knowledge we need to know about the XMLAdapter itself and its member classes XMLTable and XMLField. She explained that the XML adapter is a two-way tool that not only gives us the ability to load hierarchical XML, but also offers functionality that lets us manipulate and save these kinds of documents.

Venelina showed us how to load an XML document into an XMLAdapter object and explained how we can access the content and how we can create VFP cursors out of the tables included in the XML with the ToCursor() method.

After that, we came to creating DiffGrams. A DiffGram is a special kind of an XML document that is designed to describe changes made to data. Venelina pointed out that we should take care to SET MULTLOCKS ON and enable table buffering in order to be able to create DiffGrams, regardless whether we are using the XMLUPDATEGRAM() function or the XMLAdapter for this task.

Then one of the most interesting parts of the session began: How to create hierarchical XML with VFP. Unfortunately, the XMLAdapter class doesn’t provide a possibility to accomplish this task. Venelina showed us a way to work around this limitation by putting child data that was created using a second XMLAdapter class, into a memo field of the parent cursor. It also needs some more trickery to have the child data XML formatted end encoded the way we need it, but in the end Venelina presented a valid and well formed hierarchical XML document created with the XMLAdapter and some custom code. To demonstrate that the XML is really valid, Venelina finally loaded the document from an ASP.NET page, which properly displayed all the data.

Track: Visual FoxPro and Linux

This track consists of 4 sessions presented on one day in one sequence. Originally the Linux portion of this track was to be presented by Whil Hentzen, the well-known publisher, book author and confer-ence speaker. Unfortunately some illness prevented him from joining this DevCon. Rainer got the bad news only on early Friday morning. It was definitely to late to find a replacement among the already invited speaker on such a short notice. So Rainer decided to take over these "three sessions in a row" by himself with "a little help from his friends".

He hired a coach for him for the weekend and prepared slides and sessions by himself - the originally planed slides and session material were still in USA. Rainer survived barely an endless disaster of C0000005's due to various wrong configuration settings... At the presentation Jochen Kirstätter helped massively with technical details regarding Linux whereas Rainer did the slides and the presentation. Gerold Lübben then presented the MySQL part - as originally planned.

This track concentrated on the how to run Visual FoxPro applications on Linux machines with the help of a Windows emulator like Wine. As more and more people use Linux machines in production (and not just for running servers), more and more invitations to bid for a development job includes the requirement to run the application in a Linux environment. If you would like to participate in such submissions, then you should get familiar with the open source operating system Linux and the open source Data Base system MySQL.

So why shouldn't we have a look on this Linux business when we assess our markets of 2004? It is no secret that the market for VFP on Windows moves slower. In order to grow your business, it might be advisable to have an educated guess, which chances are in the markets besides the Visual FoxPro plus Windows arena. There are multiple areas of opportunity.

Over the last few years, we've looked at components like Visual Studio, SQL Server, Automation, .NET, Handhelds, and the Internet. It's time to add another capability to your ever-expanding skill set: Linux. In every area of the computer industry, Linux deployment is growing.

Linux has become a contender in the server market, with the Apache Web server commanding the largest market share for years. But recent releases of Linux, such as Red Hat 8.0, have made inroads on the desktop in 2003. For instance, Munich will convert from Windows to Linux this summer. By the way: For many years Munich has been governed by a local social-democratic government. So what happens in Munich could also be worded as: Linux puts Red Hats on Red Heads.

Linux is clearly maturing. Originally, Linux was a favorite game for students in their sandbox. For centuries, students railed against the establishment. The "establishment" in the 90's of last century to rail against turned out to be a big software corporation (name not mentioned). But as these students grow older and eventually started their own professional career in the industry, they got used to be a member of the establishment. However, in order to have a balance they kept other habits like being against this software company (again: what was its name?) and sticking to Linux.

The other point is how Linux itself got its admission to the establishment: IBM discovered that Linux is a good means to sell hardware. And using Linux can IBM substantially save money, which IBM otherwise would have to spent to further maintain and update its OS-s like e.g. AIX, a Unix derivate. And selling an open source server software does not oblige the seller, i.e. IBM, to put all other software it is going to sell also under the GNU General Public License (GPL) scheme. And there is a cute little additional windfall profit for IBM: it is really a nice thing to have hordes of no cost developers.

A remark from the reporter: Industry obviously does not trust the coordinating forces and quality assurance systems of "Open Source" / "GNU". So in 2000 some companies (IBM, HP, Computer Associates, Intel, and NEC) found OSDL (Open Source Development Labs), which now has data centers in Portland, Oregon, and Yokohama, Japan. "The lab" sponsors key industry projects, including industry initiatives to enhance Linux for use in corporate data centers and in telecommunications networks. OSDL is increasingly being recognized as the center-of-gravity for the Linux industry with more supporting members by now, all sellers of hardware, provider of services or users. So "the source" is still open, but what finally goes into Linux is determines by a professionally acting management, headed by the marketing and sales professional of 22 years, Stuart F. Cohen (you can guess it: 17 years with IBM, 5 years with Radisys), supported by Linus Thorwaldsen and "other developers".

All this adds up to the fact that nowadays more and more Linux units are sold (yeah, you have to pay at least a so-called copy charge!) by commercially oriented companies like Red Hat or Suse. Ailing Novell recently acquired Suse.

Putting this together means that there definitely will be an opportunity for business apps on Linux over the next couple of years. When entering that kind of race you can take advantage of skills, which you have taken for granted. Many other developers aren't aware of these skills (database normalization, business application design, business objects, OOP, Design Patterns, UML, and so on). So you should put this other tool into your developer survival kit: Visual FoxPro on Linux.

If a customer or potential customer will call you up in the future and asks for your proposal for his problem then your can much easier offer a solution, which fits nicely to his expectations or existing environment, even if that includes Linux operating systems of a Linux-based back end database. The core portion of your solution will be based on your beloved Visual FoxPro. But don't forget Windows and all the other goodies around that. Stay versatile, be flexible and prepare to grow your business in all directions. (And stay away from the ideologists!)

These sessions provided a broad, complete overview of where Linux fits into the current computing landscape from the perspective of a VFP developer, where VFP can be used with Linux, and a conceptual plan for how to approach the incorporation of Linux into your day-to-day work. In order for you to be able to work with a Linux back end, you're going to need to know something about how Linux works. The best way involves a two-step process:

  • First, plunk down a Linux workstation on your desk next to your Windows machine and develop some experience with the new OS.
  • Second, once you have a basic level of comfort with Linux, gained through your experience on a workstation, leverage that knowledge and learn to connect to a Linux server from your Windows machine.

This track showed both of these processes: What you can expect when you set up your Linux work-station, how to set it up, how to connect to your Windows network, how to fit VFP into the mix, and even how you could use it to replace your Windows workstation in some cases. Also this track demonstrated how to connect to an existing Linux server, running MySQL or an another back end, and how to get your VFP apps talking to that back end data.

This track also showed both of the positions you can take. Rainer disliked it wholeheartedly (the bad guy position in these talks) and Jochen loved it (the good guy and "typical Linux techie"-position we all love). These opposite position lasted for three sessions and both sides where shown with their Pros and Cons in live and lively discussions of the speakers (club banging was forbidden).

Gerold Luebben showed how Visual Foxpro and MySQL can work together. MySQL is as one the most well known open SOURCE databases for nearly all platforms available. Particularly in eBusiness MySQL is well positioned and well known for its performance and its stability. Still we like Visual FoxPro more - for sure .

For VFP developers MySQL opens the way in the Unix and Linux world, where MySQL serves as back-end data base. Using running applications as an example, Gerold showed how to connect Visual FoxPro with MySQL. Using these cases Gerold also compared the level of performance of the VFP data engine, the Microsoft-SQL server, and MySQL.

It is worthwile to study the business model of MySQL AB: MySQL AB makes their product available at zero price under the GNU General Public License (GPL). But MySQL AB also sells it under a commercial license to those who do not want to be bound by the terms of the GPL. And quite a few select the second options.

"Being copied is the highest form of flattery" (Mark Twain): So why don't you learn from the business model of MySQL? If you offer an application which uses an open source operating system or an open source then have the customer buy these items as a separate business item. Your offer includes to support him during setup and installation. "Your" solution (which of course is based on Visual FoxPro) goes with a separate contract: Then it is free on any GNU licensing regulations.

Wednesday, November 5

by Hans-Otto Lochmann and Armin Neudert

Keynote # 1 - Visual FoxPro 8.0

Rainer Becker introduced Yair Alan Griver (aka YAG), Visual Studio Data Group Manager at Microsoft. The VS Data Group is responsible for Visual FoxPro and the Visual Studio Data Tools (including the Query and Data Designers included in Visual Studio and other applications). Rainer mentioned that YAG already had asked how much he could exceed the time limit. Rainer assured him that nobody would complain if he would extend his session with exciting samples, yet he should consider that this additional session time would unfortunately shorten his lunch time. Well, said YAG, we will see. After that, YAG started with the VFP keynote (and finished just in time).

By the way, YAG had been a speaker at the first dFPUG conference ten years ago. This year’s conference is the first time he made it back to Frankfurt again, in some ways a session reunion. Welcome back to the German Developers Conference!

While introducing himself, YAG said that Ken Levy is sorry that he couldn’t make it to Frankfurt this year but Ken sends best greeting to all attendees. Ken is currently very busy working on the next version of VFP as well as XML tools for the next version of Visual Studio .NET. Ken did the keynotes at the last two of the preceding conferences.

YAG announced that he would demonstrate several new features, which will be integrated into the next version of Visual FoxPro (codenamed Europa) in his Late Night Session this evening. He said that he is going to show us some of the already announced report designer features no one has seen before! We are all looking forward to the demo!

YAG also invited everybody to his .NET keynote, which he will give tomorrow: "same place, same time". We will be introduced to many of the enhancements, which Microsoft will build into the upcoming version of VS.NET, codenamed "Whidbey". These enhancements were shown for the first time at the Microsoft Professional Developers Conference (PDC) just one week ago in Los Angeles.

After that, YAG took a survey from the audience, which version of Visual FoxPro the attendees use. He asked us to raise our hands: So everybody could see, that more than half of the audience uses Visual FoxPro 8, yet there are still some people who presently are using Visual FoxPro 7 and even there are a few who still use Visual FoxPro 6 as a development tool. It might be worthwhile to mention that Rainer added an order form for Visual FoxPro 8 and some other tools to the conference invitation, which he mailed some weeks ago. His office received an amazingly large number of orders for the VFP8 update version in return! So why doesn't everybody do the same?

YAG then started his session. His agenda:

YAG once again gave a nicely compacted overview of the new features included in Visual FoxPro 8.0, which is the most stable version of Visual FoxPro until now and an excellent development tool. Most of the enhancements were based on customer feedback. (I heard a number of 80% somewhere). If you are interested in giving feedback on Visual FoxPro to Microsoft or if you have any wishes for future versions, then please go directly to the VFP Wish List on the Universal Thread. The Wish List is one easy way to submit wishes for enhancements in Visual FoxPro, and is regularly monitored by the VFP team!

Other items on Alan's agenda to this topic included new runtime features for end users, enhanced SQL Server connectivity, increased .NET interoperability, and - most important for us developers - maintaining backward compatibility with earlier versions.

YAG's list of topics for the Visual FoxPro 8.0 Themes included

  • Improve Developer Productivity
  • Provide a Better Smart Client
  • Increase Discoverability
  • Improve XML Support
  • Improve SQL Server Integration
  • Improve .NET Interoperability
  • It would be far beyond the scope of such a report to truly and timely compile each and everything, which YAG presented in "words and deeds", except for a few items which we think worthwhile to mention.

    Did you know that the main purpose of keeping Minesweeper alive is that it is used as a perfect testing tool for memory consumption, when many objects are created? You do not believe that? Maybe you know any other use for Minesweeper? Well, ask YAG!

    Among the major productivity enhancements are many Drag and Drop features, which are included in VFP. Yet some of those are well hidden, so it is sometime something like a treasure hunting when you try to find them. Get a little help from YAG: The Text Scrap feature of the Toolbox does not only allow Drag and Drop from the Toolbox to the editor window, but also from the editor window to the Toolbox! We're quite sure that nearly no one in the audience knew that before!

    When demonstrating the new TRY ... CATCH ... FINALLY error handling functionality, YAG showed his great mastery as a presenter: Without the slightest hesitation he hit the right button, harmlessly called "Show code", and off the show went: "ERROR" complained Visual FoxPro. YAG knew what to do and perfectly demonstrated how easily errors can be made in Visual FoxPro and - this is the important part - how easily they can be found and corrected :)

    Really amazing are the enhancements to the Grid class, the Bind Controls feature, GDI+ support and the additional improvements to the Report Generator, like page x of y, chaining multiple reports into one batch, the option for printer environment saving, etc.

    At the end YAG put all the enhancements and features together in one thrilling demo: Visual FoxPro talks to VS.NET and VS.NET talks to Visual FoxPro. And by that we learned a new meaning of the word "Test Engineer" - some of the guys called test engineers to do tests, like test software, others are the test, like being used as the data with which the tests are made. By learning how motorcyclists get earaches because of breaking the sound barrier, we also learned how to cure them by using a Pocket PC, sitting in the hand of a virtual physician (thanks to .NET), talking via an ASP.NET XML Web Service to a medical system written using Visual FoxPro, (the PDA, not the physician, dude!). This was really a convincing man-machine systems demonstration using VFP/NET technology!

    YAG gave a rough idea about the wealth of available examples, which either come with Visual FoxPro 8 or which are available "in the community". Alas community: Visual FoxPro is excellently suited to guide you if you want to contact anybody "in the community". Just start the Task Pane, and hit the community pad: you're connected to the world of Visual FoxPro.

    Well, not only to the World of Visual FoxPro. Also the ties and connections between Microsoft's Visual Studio and Visual FoxPro teams grow tighter. This not only improves the technical side (see "Interoperability") but also helps all developers using Microsoft Developer Tools to survive in present days' markets.

    Track: An introduction to Visual FoxPro (Part 2/2)

    Today Michael Niethammer had a hard day. The track was resumed this morning at 08:30 am and the last session ended at 06:15 pm. He held five sessions in a row, one after another.

    The topics Michael spoke about today covered more advanced topics like working with forms and object oriented programming. In the first two sessions he explained basic concepts about OOP. He showed how to create and how to use forms and classes in Visual FoxPro. The VFP base classes were covered in detail. The next step was to explain what the event methods the VFP base classes are, what they offer and what for each event can be used.

    In the third session Michael showed how to bind controls to data and how to make an application work in a multi-user environment with the help of buffering and transactions.

    The next session was about how to create COM servers with Visual FoxPro. This is still a very interesting topic for a conference. I am sure that not only VFP beginners attended it. In the beginning Michael explained the basic concepts of COM servers and that they can be easily used from merely any programming language. He showed how to integrate a VFP COM DLL in a .NET application and how easy it is to let VFP automatically create a Web Service out of a sample VFP COM DLL.

    Nearly at the end of the day the last session of this track began. Michael went through all the topics that were missing to create a complete application until now: menus, toolbars, compiling and how to create reports. He presented several tips and tricks for the development with Visual FoxPro and gave a quick overview and tips regarding the use of frameworks with VFP.

    In the evening I asked Michael how he was feeling after five sessions is sequence. He said that everything went well and that he has his work done for this year's conference and that he is happy he can now enjoy the rest of the conference totally relaxed :)

    Creating FLLs

    Christof Lange, not only a well-known conference speaker in Germany, but also a contributor to Foxpro Advisor. Christof showed us what FLLs are good for and how to create a sample FLL from scratch. His session targets VFP developers who want or need to extend their applications with functions that are written in the C or C++ language. Christof mentioned tasks like extensive string manipulation, capturing Windows events and creating callback functions for the use with Windows API functionality as some of the possible reasons for creating an FLL.

    For his demos Christof used Visual Studio .NET 2003 which includes Visual C++ 7.1. He gave a brief overview of the most important IDE elements, so the attendees know where they can find what they need when creating their first FLL. After that, Christof gave an introduction to the C language explaining available data types, the most important functions and the syntax in general. Now that the attendees had a basic knowledge of the language, Christof showed a small sample program written in "regular" C, which he then compiled to an exe.

    Christof showed the same sample program in a version that can be used to create an FLL. He explained what the differences between the two versions are and told us about the special things that make an FLL.

    He finished his session by creating a sample FLL that hooks into the Activate and Deactivate events of the VFP main window, just like you can do with the help of the Bindevent function which was introduced in Visual FoxPro 8.

    Finally, let me say a word about the whitepaper Christof wrote for his session: It is really an excellent article about creating an FLL! Never read a better and clearer introduction on this topic. He mentions each and every compiler setting (he also did that in his session) you have to make in order to create an FLL with Visual C++ and gives you a detailed step by step introduction into the world of the C language and in creating an FLL from a VFP developer's perspective.

    Integrating Crystal Reports in VFP

    Dan Jurdan, who is speaking here in Frankfurt for the second time gave an introduction on Crystal Reports 9.

    His agenda was:

    • How to design and view reports in the Crystal Reports IDE
    • Viewing reports in Visual FoxPro with the Crystal Reports ActiveX control
    • The Report Viewer UI
    • Demo of a custom report class for VFP
    • How to pass parameters to a report
    • How to create custom functions in Crystal Reports

    The first thing Dan showed us was the impressive amount of data sources Crystal Reports can read data from. You are not only able to connect to databases like SQL Server or Oracle, but also to the Windows Eventlog, Exchange Server, Outlook data and any other source an OLEDB or ODBC driver is available for. The native support for free FoxPro tables is a very interesting feature for VFP developers. Access to a table that is contained in a VFP database container can be achieved by using the VFP OLEDB provider. Dan pointed out, that after selecting the data source, everything afterwards works in absolutely the same way.

    Afterwards we got an overview on available field (= control) types and special fields like one that contains "Page x of y" information or one that contains the date and time when the report was changed the last time. There are a lot more of those field types built into Crystal Reports.

    We then had a closer look on the Crystal Reports IDE: Dan showed us that we can do formatting of the report with live data in preview mode, which is surely a very good thing. A report in the Crystal Reports design mode has bands like a report header, a page header etc. - just like we know from the VFP report designer. But what we don’t have in VFP is the support for multiple sections in detail bands.

    It is possible to create powerful report functions with either the built-in programming language - or one of the other languages Crystal Reports supports. Among those languages there’s also one with a Basic like syntax. Further more, Dan showed us some of the impressive conditional formatting possibilities Crystal Reports offers. He told us that we can also have charts in a report. There are a lot more interesting features available in Crystal Reports, but Dan pointed out that we would need another two-hour session to show them all.

    Someone in the audience asked Dan if there is a possibility to convert a VFP report to a Crystal Report. Dan told him that this could be done due to the open architecture of both environments. A converter could be built by parsing an FRX file with VFP and then programmatically creating a report in Crystal Reports via its COM interface.

    Finally, Dan did a demo of the Crystal Report Preview ActiveX control in VFP. He showed us that it is easy to use and what the preview of a report looks like. He showed us that we can customize the UI of the preview window as we need it (e.g. hiding command buttons, we don’t want our users to see) and presented the list of output options like PDF, Microsoft Excel and a lot more. Dan explained the code in his VFP class he created to give us a good start when we are deciding to use Crystal Reports. As always the according files are available on the conference CD.

    Keynote # 2 - Europa Preview

    Rainer Becker again initiated this session in his unique way: Yair Alan Griver (aka YAG), Visual Studio Data Group Manager at Microsoft will present for the first time in Germany what Europa, the upcoming next version of Visual FoxPro, will bring. YAG invited the audience to come and see what Microsoft has already prepared for the next release to be available at the end of 2004.

    After this Klaus Sobel of MSDN Germany welcomed Alan to Germany. YAG expressed his thanks to Klaus because he always cared so much for VFP people!

    After all these greetings and niceties Alan explained his agenda:

    • Europa overview
    • Europa themes
    • Demos, demos, demos
    • Oh yeah - report writer stuff
    • Stability
    • Availability

    Alan explained that Europa is based on wish list customer feedback, maintains a backward compatibility, enhanced database language and types, will have additional end user UI features and increase developer productivity. Further more Europa will improve the Report Writer significantly and extend XML, .NET and SQL Server interoperability.

    Europa Themes are

    • SQL Server Interoperability
    • .NET and XML interoperability
    • End user UI features
    • Developer productivity
    • Improved Report Writer

    Yet there is a warning YAG felt complied to stress: this session is an early look at the product. Some of the features mentioned may not make it, other features not mentioned may and some feature may come up differently. And there may be some feature, nobody knows anything about it, and they might not even come ... And some feature are so new that they were written some hours ago.

    Europa will improve .NET and XML interoperability even further

    • XML Doc Support
    • Extend XSD schema support
    • Output hierarchical XML
    • Allow XPath scripting in XMLName prop

    Language enhancements / Developer productivity

    • New functions
      • CAST()-Data Type Conversion
      • ICASE() - Immediate CASE, similar to the IIF() function
    • Enhanced System Capabilities
      • Arrays >65K
      • More than 128 levels of DO nesting
      • Property Sheet extensions
    • Background Compilation of the currently typed line:
      While programming, the current line is compiled while typing, so the developer has immediate feedback whether this line is valid or not.
    • IntelliSense
      • Available inside of WITH ... ENDWITH (that brought up a big applause!)
      • Available in memo fields, not only at design time, but also at runtime.

    Now you may be wondering why the last point - IntelliSense in Memo fields at runtime - might be useful. YAG gave us the clue: As you will probably know, you can customize many parts of IntelliSense in Visual FoxPro 8 (just by the way, Andy Kramek wrote a very good article on this topic). E.g. you can store abbreviations in the IntelliSense table, that are expanded to a specified string, when you are typing it. And now think about a large memo field on a form in your application, where a user has to enter longer expressions or text blocks ... you will be able to offer him support for entering abbreviations, which are then expanded automatically when typing.

    Remote Data Access

    • CursorAdapter: Remote data retrieved with the cursor adaptor can be refreshed automatically. This is particularly useful for fields like SQL Server's Identity column and timestamps - your application can always stay in sync with them. Remote data retrieved with the cursor adaptor can also be refreshed manually with the RecordRefresh() method.
    • SQLEXEC() supports multiple result sets. True batch processing of multiple command sent to a backend database in one call to SQLEXEC(). This function now has a new 4th parameter: a two-dimensional array returns the names of all the cursors created during the batch processing.

    VFP Data Access

    • New Data Types
      • Varchar/ Varbinary: no trailing blanks.
      • BLOB (binary large object)
    • SQL Language Enhancements
      • No limit for the number of JOINs in a single SQL Select statement
      • No limit for the number of UNIONs in one SQL statement
      • No limit for the number of tables in the FROM clause
      • We can do subqueries in a Select statement’s field list
      • The value list for the IN clause can take an unlimited number of values (only indirectly limited by the SYS(3055) setting which can be increased as needed)
      • Multiple subquery nesting
      • GROUP BY in correlated subqueries
      • Subselects can be used in FROM clause (applause!)
      • TOP/ORDER BY can be used in non-correlated subqueries
      • Subqueries can used in the field list of the SELECT and UPDATE commands
      • ORDER BY can be used with field names in SELECT with one or more UNIONs
      • Rushmore optimization for queries using LIKE and/or TOP n
      • SELECTs with UNION can be used with INSERT INTO
      • Correlated updates/deletes
      • Rushmore optimization for DELETED()
      • New index type "binary"

    UI Features

    • Anchoring of form controls
    • Forms can be docked together and at the top, left, right or bottom of VFP’s main window just like the built-in
    • Command, Set, Document View etc. windows
    • The VFP main window will not be able to be docked into Visual Studio (here YAG had a great laugh)
    • Text in a command button can be aligned to the left, right, or centered
    • The amount of space between text and an image on a Command Button can be set
    • Graphical CommandButtons can have a Hotkey
    • Support for word wrapping in Checkboxes (with the box even with the top, middle, or bottom of the text)
    • Listboxes: Can be directly bound to collections as a row source
    • Listboxes: Scrollbar can be hidden, when there’s no need to scroll
    • Labels: Can be rotated
    • Grids: Fine grain control over mouse cursor
    • Shape control has a new PolyPoints array property for support of painting polygons, doing simple graphing

    Report Writer

    This evening we had the chance to see the first demo of the extensive Report Writer enhancements and new features in Europa. And here are the main themes Microsoft has for it in the upcoming release of Visual FoxPro:

    • Protect existing FRX investments
    • Open architecture
    • Better reuse story
    • Design-time improvements
    • Access to report objects at runtime
    • Object oriented syntax
    • More flexibility with Report Chaining
    • New output types (e.g. XML, HTML)
    • Report processing events
    At the beginning of the demo YAG showed us what the Report Designer in Europa looks like. Hmm ... at first sight there seemed to be nothing special about it. It looked like the old one. But read what he showed us then!

    Just to warm up everybody - here are a few goodies:

    • The Preview Window supports zoom levels from 10 to 500%
    • New property window for report controls
    • Report controls can be positioned absolutely
    • Report controls can be sent to back and front of each other just like in the Form Designer
    • Rotation of text is supported (using this feature together with the new send to back functionality watermarks can be created easily
    • The scale used in the report can be switched to metric
    • FontCharSet support for labels and fields
    • New Page Setup dialog that is resizable
    • Better use of menus and toolbars
    • More flexibility with Report Chaining

    Report Writer Events

    Europa’s Report Designer offers a whole lot of events we can hook into. Here are some examples of it:

    • ReportOpen
    • ReportClose
    • ObjectCreate
    • ObjectChange
    • Etc.

    Multiple Bands In One Report

    We will be able to have more than one detail band in a report! YAG said that there is currently a limit of twenty bands - I think this should be enough for most people ... YAG showed an example of a report that had three bands, with the first band collecting sums and counts of invoice information, the second band showing the regions handled by the salesperson, and the third band listing the details of the invoices, using the first band's totals to do % of total calculations for each invoice! (Big cheer!)

    Protection Of Report Elements

    The MODIFY REPORT command can now be called with the new PROTECTED keyword. At design time we can set report fields, labels and several other options to be protected at various levels (field may not moved, may not be edited, etc.). This is especially useful when you are giving your users the possibility to change the report layout from within your application with the VFP Report Designer. This way we can prevent users from changing things they’d better not change!

    New output types

    XML and HTML plus an open architecture developers can hook into to support other output formats.

    _REPORTDESIGNER

    This new system variable can be used to define a replacement for the built-in Report Designer. This variable can be used just like the _BROWSER or _BUILDER system variables.

    Resumee

    Wow! That is really an amazingly high number of improvements ... and YAG told us that there is still more to come!!

    After successfully setting a benchmark in stability with Visual FoxPro 8.0 the VFP team is determined to make Europa even more stable than Visual FoxPro 8.0 SP1. Europa is to become the most stable version ever published. "Should be a lot of fun" [to work with] Alan remarked and "we are on a good way: having shown examples for more than one hour, which went deeply into the new features, Europa was behaving quite nicely, no crash, no nothing... This is a good indicator of what is going to come!"

    And here is a greeting from YAG to the VFP team: Europa is awesome! And you know what: Rainer said, it was the longest applause, which he had ever heard for any session in any German DevCons.

    Thursday, November 6

    by Hans-Otto Lochmann and Armin Neudert

    Track: .NET

    Last year the concept of having several tracks of which each one is about a certain topic had its debut. We already had a .NET track last year, which was very interesting so we are looking forward to the new sessions, which are held by well-known speakers like Kevin McNeish, Rick Strahl and the German speakers Norbert Abb and Manfred Rätzmann. Later on you can read more about several of their sessions done today.

    After the more introductory topics at last year’s conference we are now having more advanced topics like how to create web applications, as well as development for smart devices like the Pocket PC. Many of the sessions are not only covering pure .NET, interoperability between .NET and Visual FoxPro is also taken into strong regard. Things like how to program a smart device is also very interesting to Visual FoxPro developers since they can extend their set of skills with that knowledge.

    In only two days, people can get a good overview of very interesting .NET topics in a very compact and efficient way. And there are several sessions from the point of view of a Visual FoxPro developer. In total this track consist of eleven sessions, of which five are held today.

    Track .NET: Keynote # 3 - Visual Studio "Whidbey"

    First, Rainer Becker welcomed all the attendees, which arrived today and provided some information about the last two conference days.

    Then he introduced the speaker another time to the audience: Yair Alan Griver (aka YAG), Visual Studio Data Group Manager at Microsoft, was going to present the upcoming version of Visual Studio .NET (code named "Whidbey"). This the very first time that Whidbey was presented in Germany.

    YAG welcomed everybody. Then he told us that he is going to present many of the enhancements, which Microsoft has implemented in the upcoming version of VS.NET. These enhancements were shown at the Microsoft Professional Developers Conference (PDC) just one week ago in Los Angeles for the very first time in public. It is quite remarkable, that YAG did not spare time and efforts to present all of this to a German audience, mostly consisting of ardent VFP fans, which, curious as Foxes tend to be, are eager to enlarge their scope of professional knowledge.

    The version of Whidbey, which YAG was going to use for this session, was early alpha software. But it worked nicely, only a few "wrinkles" showed up, but nothing spectacular and no crash at all. Alan was evidently pleased. "As always", Yag then remarked, "some of the features mentioned may not be in the final release. Other features not mentioned may." The Agenda for the keynote

    1. Language enhancements
    2. Development Environment - Core Features
    3. Development Environment - Building applications
    4. Enterprise Support

    The Design Goals for Whidbey

    • Personalized productivity
    • Pain point reduction
    • Comprehensive tools
    • Path to the future

    And here is the list of the new features and enhancements we learned about today ...

    1. Language Enhancements

    YAG pointed out that Microsoft is going to satisfy the needs of the language communities with Whidbey and that, of course, Whidbey will provide continued support for cross-language inheritance, cross-language debugging and full access to the .NET Framework. He went on pointing out that interoperability between the different programming languages still does not mean that they are not indistinguishable. The languages are not intended to cover what each other language contains.

    1.1 Visual Basic

    • Operator overloading
    • Unsigned data types
    • XML code documentation

    1.2 Visual C++

    • POGO - Profile Guided Optimizations
    • Managed Extensions
    • MFC enhancements

    1.3 Visual C#

    • Iterators: They will provide an easier way to implement the enumerator design pattern.
    • Anonymous methods

    1.4 Visual J#

    • Browser controls
    • Java-language keywords
    • Swing functionality

    1.5 Any of the contained languages

    • Generics
    • Partial Types

    2. Development Environment Core Features

    YAG stressed that all core features of the Whidbey IDE are designed and developed with the definitive goal to support developers with a more simplified and powerful IDE. This does not only include the ease of use of all available tools, wizards and so on, this also includes strong links to the community, which can be used easily. YAG was sorry that he was not able to show us all of the new core features, since there are so many of them!

    • Drop regions for easier docking.
      Most of you will know this problem: You are trying to dock one of the many windows inside the IDE at a certain place, but you need several tries until you get it there since it is not docking where you want it to be. Here the Drop Regions come to our help. They are small regions indicating where and how the window you are currently dragging can be dropped. Remark from an attendee: "We want this for VFP!"
    • Community Web Services
      • Maintained on MSDN
      • Accessed via Visual Studio IDE
      • Web services include:
        • Starter Kits
        • Project Templates for new Code Snippets, new My Classes, new Refactoring and Product Updates
    • Extensibility
      • New VB My classes. One major new element of VB.NET are "My Classes". They are supposed to assist developers in writing code for common scenarios. The "My classes" are an easy and direct way to use the most important classes of the .NET framework. In his sample project, YAG explained the concept like so: the MyClasses are like a speed dial in a phone, a direct and easy access to many parts of the .NET framework. It will be possible to write much less code without a performance loss.
      • New C# code refactoring
      • New Code snippets
      • Customized profiles (includes window layouts, color schemes, key bindings, etc.)
      • Debugger visualizations
      • Additional Starter Kits
    • Documentation and Help.
      YAG spent a considerable amount of time to present a first look on the new Help file features, which will provide a much more intelligent and supportive information basis to the developer. Navigation in the help file is more task oriented and the search function has improved a lot. We will be able to set several search options. We have seen one, we will surely love: "priorize topics with code"! Further more, we will be able to make comments in the help file that can be saved! I am pretty sure you will like this feature. This way you can have all information in one place: the help texts, comments and information you have collected from other sources!

    3. Development Environment - Building Apps

    • Code Refactoring / Code-focused RAD / Disciplined code restructuring.
      Another important theme for Whidbey are Code Refactoring possibilities. The idea behind this is "code-focused RAD" and disciplined code restructuring. Alan showed an example, of what this means for the daily business of the developer: When we are recognizing that we need a piece of code anywhere else for a second time, we will be able to mark those lines and tell Whidbey to make a new method in any class out of it. The original code is replaced by a call to the new method. And note that the IDE is smart enough to find variable names in the code snippet and to use them as parameters in the new method. Of course, the method call will also contain the correct variable names in its argument list.
    • My Classes for VB
      • Assists programmers in writing code for common scenarios
      • Customizable and extensible
      • Create additional "My" classes
    • Auto-Correct and IntelliSense.
      The Auto-Correct feature will help you to find and correct code that is not correct. This works like a spell or grammar check in Word. IntelliSense will be enhanced by introducing filtering, so that only relevant and frequently-used class members are visible.
    • Code Snippets.
      Templates for more complex common code tasks - like upgrading from Visual Basic 6 are provided.
    • Code Formatting
      • Default options are .NET coding guidelines
      • Applied at file, project, solution level
      • Can be shared with team
    • Windows Applications
      • Ease and safety of Web application deployment
      • Richer user experience
        • New controls
        • Simplified data access (e.g. Drag and Drop of database fields on forms)
        • The Immediate Window for Visual Basic (which is the counterpart of the Visual FoxPro Command Window) will always be available, not only while debugging.
        • A new "Getting Started" task pane
        • IDE Navigator: similar to ALT+TAB in Windows, but here meant to switch between open IDE windows in a fast way
      • Faster development
        • Fewer lines of code
        • Fewer clicks
        • A new project must not be saved before code can be run.
          This is nice for testing a small piece of code outside your application.
      • Improved performance
        YAG showed some encouraging examples.
    • ASP.NET Web Applications
      • Faster development
        • Simplified data access
        • Reduce ASP.NET code by up to 70%.
          Here YAG showed us how easy it is to implement paging, sorting, etc. for grids.
      • Consistency and appearance
        • Master Pages
        • Themes and skins
      • Improved performance
      • Mobility built in
      • VS.NET comes with a new secure personal web server that can only be called from the local host and installs under a normal user account. So IIS is no longer needed on the machine you’re developing on.
    • Device-based Applications
      • Target .NET Compact Framework 2.0
        • Smartphone, Win CE .NET 4.2, Pocket PC
        • Telephony
        • MSMQ
        • SMS
      • IDE support for native C++
        • Consistent experience
    • Office Solutions
      • Schema-based Programming Model
      • Extended Office Controls
      • Assembly in document with signature or strong name
      • Server-side document creation
      • Smart Doc framework
    • Data Access
      • Make the 80% data access case easy
      • Find and incorporate data tables much easier
      • Gain more control over data binding
      • Use SmartTags to help guide the programmer
    • XML tools enhancements
      Due to a kind request from Ken Levy - "Ken will kill me, if I'm not showing you the XML tools" :)
      Alan showed examples of the XML Tools Ken is currently working on. We saw a very large XML file opening really fast in the editor and an Intellisense list that was only filled with elements that can be used at the cursor position. YAG then pointed out that lines in a stylesheet are compiled in the background while typing. This enables the IDE to immediately indicate whether the line is valid. He demonstrated that it is possible to change stylesheet code while previewing it.
      And here's the list of all the presented things:
      • Editing XML documents
        • Validation and IntelliSense from XSD or DTD
        • Custom XSD schema folder for XML validationLanguage
        • Editor style experience for XMLOutlining expand/collapse in XML editor
      • XSD schema inference
        • Create XSD schemas from XML or DTS files
      • Editing and debugging XSLT
        • XSLT language editing with IntelliSense
        • XSLT debugging with language integration!
    • Yukon Integration (the next version of SQL Server)
      Whidbey will support the Yukon project system and we will be able to write Stored Procedures in managed code with the possibility to seamlessly step across T-SQL and managed code.
    • MS Build
      • Whidbey and Longhorn build engine
      • Documented file format
      • XML-based
      • Scalable, extensible build platform
      • RAD support in Whidbey IDE
    • Debugging
      • Simpler debugger interface
      • Debugger data tips
        This feature assists developers with tips about how he can solve a problem and possible actions to take.
      • Debugger Visualizations
      • View data stored in complex data types (Collections: Tooltips scrollable)
      • Supports built-in .NET Framework types
      • Extensible for user types
    • Upgrade Strategy
      • Seamless upgrade from Visual Studio .NET 2002 and 2003
      • Visual Basic 6.0
        • Improved control migration
        • Support for control arrays
        • Keyword changes
        • App object
        • Form default instance
        • Forms collection

    4. Enterprise

    • Expanded VSIP
      • Deeper integration
      • Common services
    • Visual Designers for Service Oriented Applications

    As we have seen, Whidbey will be an exciting new release of Visual Studio .NET with a whole lot of new features and enhancements!

    Track .NET: Business Objects With ADO.NET

    Manfred Rätzmann first introduced himself. An interesting point in his biography is a book he wrote about software testing about a year ago.

    While explaining what Business Objects are he mentioned that we should take care that they are designed in a way so they can be used under all common circumstances to ensure that we consider most of the scenarios we might face in the future:

    • In a Fat Client application
    • In a web application
    • In a web service
    • In batch processes

    After giving a brief introduction on Business Objects in general (this session was a more advanced one), Manfred introduced a so called Business Object Manager class. It is responsible for every job that has to deal with multiple instances of the same Business Object. This way the Business Objects have a good level of encapsulation and are very lightweight. Then he gave an example for two common tasks so we all know whether a certain job should be done by a Business Object itself or by a manager class. A client business object could be able to give the sum of open accounts for one client, but it may not create a query result that tells you all the turnovers for all or some of the clients in your database. A Business Object Manager class can also create new instances of a Business Object or save changes of existing ones.

    He then explained his Service Provider class, which is quite the same as a Business Process class, besides the fact, that Manfed’s class is only responsible for processes where different business objects are involved. When only instances of the same Business Object class are involved, the Business Object Manager would be the right place to code these kinds of things into.

    We then saw the implementation of the model using the C# language. Manfred explained how he coded all the things he was teaching us in theory before. He showed us how flexible his approach is, by switching the data source for his demo from a Visual FoxPro database that was accessed using the VFP OLEDB provider to a SQL Server database which was directly accessed via the SQLServerAdapter.

    Manfred mentioned during his session that he already created implementations of the presented model in Visual FoxPro, .NET and Delphi successfully. So we can see, it is universal as it should be, since it is "just" a model and has (nearly) nothing to do with its implementation that comes later. Of course, you always have to take some things of the programming tool you are doing the implementation with into account (e.g. strong typing), so the model really fits.

    Track .NET: Architecting for the .NET Event Model

    Like always Kevin McNeish’s session started with a funny part, instead of the actual topic. This time we were able to see a small video sequence of Rick Strahl laughing for over two minutes. I will leave it to your imagination to figure out what happened in the room during those two minutes :)

    Afterwards Kevin started with an introduction to the .NET Event Model and pointed out that the design of it is based on the Subject-Observer Pattern we all know. We saw the regular code we need to bind controls to data in .NET. Then he explained the goal of getting this done in a Visual FoxPro way, what means that we only need to fill in a DataBind property instead of writing multiple lines of code.

    In order to get this done he started with a clear and detailed explanation of all necessary steps for creating events in .NET:

    • Creating the event
    • Creating the Delegate
    • Defining Parameter Objects
    • Defining the method that fires the event
    • Defining the eventhandler method
    • Registering the handler with the event

    Especially the way he explained this quite complicated concept of delegates helped attendees to get one of the major hard to understand parts of .NET programming into their minds.

    After being through all steps Kevin pointed out what can be done with these events:

    • Establish a relationship between Business Objects: Business Objects can send out events to inform the observers (listeners) when anything interesting happens in the object.
    • End user configuration security: The ability to do the application security setup in running forms using custom events to tell every secure control to switch into security mode and back again. This is working in Windows- and WebForms applications!

    And for sure, the session goal having intelligent data binding in Windows- and WebForms was achieved with the result of being able to simply set one property and the databinding is done.

    We got a good demo on all of these topics and Kevin showed how he implemented all of this in Mere Mortals .NET.

    Track .NET: Introduction to multithreading

    Rick Strahl's session started with a detailed part, explaining what multithreading is and where you would want to use it. Besides obvious examples like server or monitoring applications he also pointed out things like keeping the user interface "responsive" and the ability to interrupt operations.

    After that, Rick described some of the problems that exist and have to be solved when using multithreading. A closer look to the way multithreading works in .NET was the next step in his session. He showed us how easy it is to create and use threads and what different possibilities, e.g. multithreading with delegates exist.

    Good real life examples like sending mail in the background without meanwhile blocking the user interface helped to understand the technique and the code you need to implement.

    Many tips and good hints for solving problems in a multithreading environment followed this presentation and the session ended with a demo of a WebMonitor application and a few explanations about debugging in multithreading environments.

    And who didn’t get everything the first time has the chance to re-read it in his 26 (!) pages of session notes included in the conference binder.

    Track to be continued on Friday ...

    Friday, November 7

    by Hans-Otto Lochmann and Armin Neudert

    Track .NET

    Today the .NET track that started yesterday continued with six more sessions.

    Track .NET: An ASP.NET Web Shop for free - experiences from the development of the upcoming dFPUG web shop

    Norbert Abb, one of the owners of Wizards & Builders GmbH, showed a web shop application and explained its development using the upcoming dFPUG web shop as an example. The application is based on ASP.NET. He not only talked about the design and implementation, he also provided detailed information about deployment and maintenance issues.

    Norbert pointed out, that we not necessarily need Visual Studio .NET in order to develop an ASP.NET application, since Microsoft also supplies a free tool called WebMatrix. So the web shop application Norbert was going to show can be customized with a free tool, but furthermore it is also based on source code that is available freely. The sample web shop application is called IBuySpy, which you can download from the Internet.

    The data for IBuySpy is originally for MSDE or SQL Server, but Norbert showed that you can also use a VFP database for the shop. Actually, the dFPUG shop works with VFP data. The source and the VFP data for the IBuySpy sample can be downloaded from the conference website so you don’t need MSDE or SQL Server. You can stick with VFP.

    Norbert also showed us a possibility to get demo web space for ASP.NET pages with access to SQL Server for free from Microsoft on www.webmatrixhosting.net. That was something many people did not know before!

    Track .NET: Mere Mortals .NET Framework

    In this session, Kevin McNeish demonstrated the new capabilities of MM .NET version 1.1. He demonstrated how the framework is a RAD tool for building .NET Windows Forms, Web Forms, and Web Service applications.

    MM .NET "fixes" data binding in .NET allowing you to bind user interface controls to data by simply setting a few properties (similar to Visual FoxPro). This eliminates the need to write many lines of .NET data binding logic.

    Kevin also demonstrated MM .NET's enhanced user security features in both Windows Forms and Web Forms that make it easy for end users to easily configure application security for users and roles.

    MM .NET is integrated into the Visual Studio .NET IDE providing a helping hand when first creating applications all the way through the entire development process.

    The Framework provides business object base classes that allow you to easily create n-tier applications in .NET. Kevin explained that MM .NET also comes with source code so you can see what's going on behind the scenes and customize the framework to suit your needs.

    Practical Uses of the Windows API

    Marcia Akins was the first attendee (not counting speakers) from the USA at the Frankfurt conference in 1998! She and her husband Andy Kramek (whom we are all missing this year) have only missed one conference since then and attended all the others, but of course as speakers.

    This session’s goal was to introduce Windows API programming to Visual FoxPro developers. Marcia began by reviewing what the Windows API is. She pointed out that there are many VFP examples available that are showing how to call a certain API function. But there are a lot more Visual Basic and, of course, further more samples written in C available. Marcia explained to the audience, how the samples not written in VFP can be translated to our beloved Visual FoxPro code. She provided a very clear explanation on how to convert data types and how to deal with structures, which obviously is one of the hardest parts when doing API calls from Visual FoxPro. Marcia mentioned Christof Lange’s Struct class as a great help when using structures. Www.news2news.com, the UniversalThread API section and the FoxWiki are good places providing samples for VFP developers that want to use the Windows API, she pointed out.

    Then Marcia presented several practical examples using Windows API functions to do things that cannot be accomplished using native Visual FoxPro commands. These examples included code to read the Windows Registry and to retrieve user settings from the Control Panel, code to ensure that the screen is really locked when we must manipulate the appearance of ActiveX controls in our VFP forms, and much more.

    At the end of this session, everyone knew how Window API functions can be coded in Visual FoxPro, what the common pitfalls are and where to find samples. The use of samples is usually the easier way to get API calls up and running, especially when it comes to more complicated API calls.

    As always it was fun to listen to Marcia speaking!

    VFP Grid Techniques

    Who ever listened to a session of Drew Speedie knows two things: He speaks loud, fast, clear and audible. And Drew has everything in one box: His famous Grid-Box, in which he puts a wealth of knowledge, Know-How and information.

    He is also one of the pillars of the Fox community: He is a VFP Developer, Consultant, Trainer, Chief Software Architect of the Visual MaxFrame Professional framework, Contributing Editor to the FoxPro Advisor Magazine and eventually Technical Editor.

    Today he presented a new chapter of a never-ending story: how to convince the touchy beast of Grid to do what you want and not what it wants. Among the many examples he presented (all source code is on the conference CD), have been

    Workarounds: What to do when ...

    • AllowCellSelection = .F. grid allows mouse-clicking into custom column control.
    • Black HighlightForeColor is ignored.
    • Cannot set Name for member class.
    • Current row highlight ignored for Column.Sparse = .F.
    • Enforce validation of data.
    • Grid.When()=.F./Grid.Enabled=.F. ignored when grid.AllowCellSelection = .F.
    • Leftward keyboard navigation from first column shifts columns.
    • RETURNing .F. from Control.Valid() doesn’t prevent cell from losing focus.
    • Rightward keyboard navigation shifts columns.
    • .SCX-based forms won’t load when ControlSources set in Properties Sheet.

    Design Patterns - practical use for the nice sounding theory

    In this session Marcus Alt started off with a small introduction of Design Pattern history and explained what design patterns are and from where you can get further information. Afterwards he went through different examples of easy to code patterns and showed the idea behind them as well as the according code. He although gave ideas of where to use the patterns in real world applications.

    Starting with a BINDEVENTS implementation of the subject-observer pattern, Marcus went through the following patterns:

    • Strategy
    • The Template pattern which can be used while coding the strategy
    • The Abstract Factory that is used to instantiate Strategy objects
    • The hook pattern

    Many examples helped attendees to get a feeling of what design patterns are and for being interested to keep up with the topic in the future.

    Track Microsoft SQL Server

    And here’s another track, which was introduced last year. Speakers are Dan Jurden (four sessions in this track), Daniel LeClair (also four sessions) and Venelina Jordanova (one session). This year, the track consists of nine different sessions in total and covers several interesting topics like an introduction to SQL Distributed Management Objects, the Data Transformation Services (DTS), SQL Server’s XML features, User Defined Functions, DMO, the sessions covered below and several more. This track completely consists of English sessions. It’s always a pity that we cannot be in and write about every session, to cover all of the interesting topics.

    Track SQL Server: Beyond SELECT: Advanced Queries for SQL Server

    Daniel LeClair, an independent consultant, covered a whole lot of things we can do with SQL Server’s built in programming language T-SQL. He first explained the difference between the way data can be retrieved and manipulated in T-SQL. He pointed out that this works quite similar like we are used to with Visual FoxPro in some places, but that there is a main difference: In T-SQL you are mainly working with "sets" of data in contrast to VFP, where we are more used to access single rows of data. Daniel pointed out that he is mainly showing us things that are not only applicable to SQL Server 2000, but also to SQL Server 7, so that people still using the older version will have a benefit of his session, whereas some things are limited to MSSQL 2000.

    Daniel explained and presented interesting things like the use of dynamic SQL statements, using system tables in queries, using temporary tables and cursors, and other T-SQL capabilities beyond just getting back a result set. Using Cursors, Dynamic SQL Statements, UDFs, the Table Variable Type, CASE statements, Derived tables were covered as well.

    Track SQL Server: Extending T-SQL with COM

    First, Dan Jurdan, working as a Senior Application Developer for EPS-Software Corp, explained that T-SQL (SQL Server’s built in programming language) has strong limitations when it comes to more complex tasks that are not directly related to data access. Many people have faced this problem (note from the reporter: you can count me to them, as well). However, it is possible to use COM objects, like we can create them with Visual FoxPro, in T-SQL to extend the functionality, Dan pointed out.

    He went on, explaining all Stored Procedures that are provided by SQL Server in order to access COM servers and showing us, what the T-SQL code using these SPs looks like:

    • sp_OACreate
    • sp_OASetProperty
    • sp_OAGetProperty
    • sp_OAMethod
    • sp_OADestroy
    • sp_OAGetErrorInfo
    • sp_OAStop

    At the end of his session, Dan outlined that we should be careful using COM server calls e.g. on a high volume Web server, since using this technology can cause a considerable performance problem. On the other hand, he told us, using COM servers might come in quite handy, when using them on a server that is not that busy all the time, and not too many users are working with.

    And another note from the reporter: YAG announced a great new possibility to extend T-SQL in a seamless way with the upcoming new versions of VS.NET and SQL Server. We will then be able to create Stored Procedures with any language included in VS.NET!

    The Class of '94

    Ever met the Class of '94? Never? Well, you should have attended this conference. Due to a carefully designed and well-coded application the team of the dFPUG was in the position to identify the Class of '94. Who are the members of this class? Rainer proudly presents "his" Class of '94, the persons who have been attending the German DevCon for 10 consecutive years in a row: They are:

    • Norbert Abb
    • Alfred Bechtel
    • Alf Borrmann
    • Martin Dubovy
    • Sebastian Flucke
    • Peter Krause
    • Wilfried Laßat
    • Hans-Otto Lochmann
    • Elfrun Scheel
    • Hanno Ritzerfeld
    • Kai Rogler
    • Eugen Wirsing
    • Jürgen Wondzinski

    Three of them (Jürgen Wondzinski, Sebastian Flucke, and Norbert Abb) have also been speakers in all of these DevCons and one of them (Eugen Wirsing) develop himself from a simple attendee into a well esteemed speaker.

    The closing session

    Well, this is the last session of this year's Frankfurt Conference. Rainer Becker told us that everything went so smoothly this year that he sometimes thought he was unemployed (big laughter in the audience!). Of course, he was busy enough, just not the whole day and longer - only the whole day. He thanked the audience for coming and told the usual stories about how he finally convinced the "chef de cuisine" of the hotel to offer Hamburgers during at least one break. You have to know that the food here is really amazing! You can see some photos of the buffet using the picture archive of this coverage.

    As an outlook for next year’s conference, Rainer mentioned that we would have a new track about the "Report Writer". Please see our report of the Europa keynote, so you can see that we will get so many enhancements so that you really can do a whole track to cover all of them.

    Then we got to the usual raffle. All people that filled in evaluation forms now can win a price. Like in every year before, Rainer gave away prices like a Visual MaxFrame Professional package sponsored by Vision Data Solutions handed over by Drew Speedie, a List&Label Report Writer package sponsored by ProLib, two signed Megafox Books and two packages of Visual Extend sponsored by the dFPUG itself and more.

    Acknowledgements.

    Ever wondered, why certain events like this DevCon happen so successfully? Well, this is one the reason: There is a jointly pushing team behind it. Here it is the team, which always strongly, knowingly and reliable supported Rainer Becker:

    • Tina Flieher-Ojen,
    • Andelko Sicenica,
    • Michael Vogel,
    • Sven Wilke
    This team virtually knew everybody and everything. It also mastered the art of omnipresece: At least one team member was always available, when there was the slighest chance that anything could go wrong. Therfore: Great thanks to this team!

    And of course there was ample support from the well tried, reliable, and experienced proof reader Brent Speedie (11), who helped to make the wording of this report to become "real English".

    The pictures of Frankfurt were take from http://www.meinestadt.de/frankfurt-am-main and http://www.cometome.de/frankfurt. All others were taken by Gaby L. and some "helping hands".

    Hans-Otto Lochmann, Dr. Lochmann Consulting Gmbh

    Armin Neudert, TMN Systemberatung GmbH
     
    Armin is co-owner and one of two managing directors of TMN Systemberatung GmbH located in Ilsfeld (near Stuttgart, Germany that’s where the Mercedes and the Porsches come from). Armin’s first experiences with FoxPro have been with FoxPro for Windows 2.6. Over the years he worked in large projects where he got experience with MS SQL Server, UML, Multi Tier Architecture, COM+, Visual Basic, etc. Armin uses Visual FoxPro as his main development tool. Since 1994 he is a Regional Director for the German FoxPro UserGroup dFPUG. He arranges monthly meetings in the area of Stuttgart, where he often does sessions, keeps people up to date with the latest information and keeps the FoxPro community together. Armin is also a speaker at other user group meetings in Germany and at the German FoxPro conference in Frankfurt. Armin is also a Microsoft Certified Professional for Visual FoxPro.

    German VFP DevCon 2008
    DateContentDetail
    08/09 17:50NewsSouthwest Fox Speaker Ch...
    06/09 16:31MeetingSQL Server Tools, Strate...
    02/09 00:44NewsPEM Editor 6 has been re...
    27/08 17:57NewsSouthwest Fox 2010 Early...
    25/08 04:30NewsCryptoLicensing For .Net...
    22/08 09:58NewsWindows Phone 7 Gold Rush
    16/08 03:05NewsVisual WebGui reveals it...
    11/08 17:54MeetingSo You Think You Want To...
    10/08 16:41News.NET Training for VFP Pr...
    09/08 18:33MeetingLINQ & SQL Server Reporting
    03/08 08:15JobsSQL/VFP Developer for Ma...
    29/07 10:59News.NET 4 for VFP Developer...
    26/07 10:13JobsVFP Developer (Two Perma...
    25/07 06:44NewsWith Visual WebGui 6.4 R...
    24/07 11:00JobsQuality Assurance Softwa...

    Copyright © 1993 - 2010 Level Extreme Inc., All Rights Reserved · Telephone: 506-783-9007 Email: info@universalthread.com · Privacy & Security · Copyright · Terms & Conditions