Level Extreme .NET Magazine April 2008 issue

Universal Thread Magazine March 2007 issue

2008
2007
2006
2005
2004
2003

2008
2007
2006
2005
2004
2003

2008
2007
2006
2005
2004
2003
2002

2006
2005
2004

2008
2007
2006
2005
2004

2007
2006
2005
2004
2003

2004
2003
2002
2001
2000
1998
1997
1996
1993

2003
2002

2003
2001

2003
2002
2001

2003
2001

Visual FoxPro 2001
Visual FoxPro 2000
Visual Studio 2000

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

Universal Thread documentation

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

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

Microsoft Czech Republic and DAQUAS will organize a conference for developers who create applications using Microsoft Visual FoxPro. "Visual FoxPro DevCon, Praha 2005" will take place in Prague, Czech Republic in June 2005. Visual FoxPro DevCon, Praha 2005 will comprise of at least 30 sessions out of which more than 10 are presented in English by worldwide respected FoxPro experts. This year is the 8th year of the event and in 2004 it was the world's best attended FoxPro conference with an audience over 450!

Date: 
Location: 

Day Zero

by Jan Vít and Jan Král

Hello again!

We are now back in the Czech Republic in the summer Prague, waiting for the world's biggest Visual FoxPro event to start. Just as the previous years, we certainly expect spending both educational and most enjoyable two and a half days full of technical sessions and opportunities to listen to the news from the members of Visual FoxPro development team. The unofficial part of the conference, of course, is to have a chat with other fellow developers, to exchange experience and just simply to ... have fun!

Although the conference itself can provide all mentioned above (for the fun section read below about the Developer Party), it might be worthwhile to look around the place and to be perfectly honest, I can't imagine many places better for that than Prague.

The very beginning of the city goes well beyond a time anyone can remember, but the important time was 14th century, when Prague began to have its importance. At that time Prague became a seat and the capital of the Holy Roman Empire. From this period, every Czech knows the name of Charles IV. He is the one who choose the city of Prague as his residence, have it rebuilt and founded here the first University in Central Europe. We can find many places here that carry his name and that was probably also the reason, why he was recently elected by the nation as the most important Czech of all - even though, he actually did not come from the Czech lands.

If you want to find out more about the capital of the Czech Republic, please check the previous Prague DevCon reports.

But let's get back to the main event and its highlights for now. Not only DAQUAS as the organizer has made the Prague Visual FoxPro DevCon the biggest Visual FoxPro conference in the world as far as the number of attendees are concerned, they set another record mark of their own this year: This year there are as many as 45 sessions, only three of which are repeat sessions. In order to facilitate this there are four sessions running in parallel most of the time.

For each of the previous DevCons DAQUAS has chosen a special background theme. In 2003 it had been Christmas time with snow, scarf and presents, last year the theme was traditional local clothing. Up to now DAQUAS kept the selected theme secret from the attendees, so it had always been a surprise to the attendees at the beginning of each conference. This year the organizers have chosen a different approach: They assigned the attendees the role to surprise DAQUAS!

This year we are going to have a masquerade! Each attendee has some homework to do: Each attendee has been asked to bring along with her/him something that would disguise him/her in a unique way. This will culminate in the Developer party, where everyone will attend. Of course there will be a competition: the best mask will win a prize. If anyone does not have time to prepare or just simply does not know what to select, he/she still gets a chance. At the entrance to the party, everyone can get a mask in exchange for a voluntary contribution, which will be used to support the Foxes adopted by Prague Visual FoxPro DevCon attendees in previous years. They both reside in the Brno Zoo.

A locally well-known proverb says: "A Czech - a musician." Most Czechs have a positive attitude to music. Not only there have been many famous Czech musicians and composers in the Czech history, there are also two main festivals taking place in the Czech Republic every year. One in spring called "Prague Spring", which ends at the beginning of June and the second one called "Prague autumn", taking place - you got it - in autumn. To honor the Czech musical tradition, DAQUAS has some more homework for those, who like to play some musical instruments. Everyone can bring with him/her an instrument, which he/she knows how to play.

And of course the university has prepared its own surprise not for DAQUAS only but for the attendees alike. The main entrance to the university, where the DevCon has been taking place since its very beginning, has been changed. The original entrance, which we got used to use in the past years, is now undergoing reconstruction. The new one is located about 100 meters further down. We wonder how many of the hardcore attendees will try to force their way through the traditional entrance they all have been using for so many years in the past!

 

Tuesday, June 21

by Jan Vít and Jan Král

Introduction and Welcome
Darina Vodrážková and Igor Vít

Well, with an audience of people coming from various countries around the world, Darina and Igor welcomed everybody to this event. There will be 45 sessions (including three repeat sessions) given by 26 speakers, out of which are 17 Czech speakers and 7 English speakers.

This is now the 8th DevCon in sequence arranged in the "Golden City" of Prague by DAQUAS. There are more then 400 people attending this event. About 100 of them are first timers, 50 are members of the class of '98, which means that they are attending this event for the 8th time.

About 40 persons have been coming from about 10 countries other than the Czech Republic or Slovakia, mostly European countries. Farest away were two attendees, who came from Israel - welcome Jaime & welcome Eylon!

Igor and Darina welcomed everybody to the DevCon. As this is an international audience, Darina took the Czech part, while Igor translated everything into English. After words of welcome both cordially invited everybody to the party this night and explained that it will be a masquerade. And there will be a beauty contest between the participant, who has the most beautiful and the most unique masque. Caring as ever DAQUAS will supply masks for all of those, who did not have enough time to get one by himself/herself.

As Prague is for some obvious reasons called the "Golden City" DAQUAS arranged for a foot walk through some of the prettiest places, though this is not exactly the method, by which real computer buffs get their information. But being invited so nicely (and having someone, who cares for the luggage, of course DAQUAS), even the most "hard-boiled" computer geek may make an exception this time (but only one per year!) and go to the party.

Keynote
Ken Levy, Randy Brown, and Richard Stanton of the Microsoft Visual FoxPro Team

There they are, three well-known members of Microsoft's dream team, Ken Levy, Randy Brown, and Richard Stanton. (Do you know, why Microsoft's Visual FoxPro Team is a real dream team? Well, they dream up all those fancy features, nobody else dares to think about, and make these dreams really happen! How they do it? Well, buy your Visual FoxPro 9.0 copy and you'll see, how they did it recently!)

The mission of this year's Key Note was to give a broad overview of what is going on in Microsoft's World, at least as far as these items are of some interest to the Visual FoxPro community. The agenda will be:

  • State of the Visual FoxPro union
  • Microsoft Platform overview
  • Visual FoxPro Roadmap overview
  • Sedna overview
  • Visual FoxPro 9.0 demos
  • VFP 9.0 with VS 2005 interoperation demonstrations
  • Sedna early preview demos
  • Visual FoxPro resources
  • Summary

Of course, this is not the place to repeat each single piece of information of the Key Note. So we reporters will concentrated on those bits of information, which seem to be most valuable as far as we can see it.

First of all the "State of Union" in the Visual FoxPro community: Microsoft had a survey been made among the Visual FoxPro community members on a voluntary basis. More than 5600 participated in April 2005 Online VFP Survey:

  • 51 % have used VFP over 10 years (the reporters: whow! What true fan club!)
  • 33 % are now using VFP 9.0
  • 80 % small company, 68% mid-size, 27% enterprise
  • 71 % maintaining apps, 69% new apps, 25% web apps
  • 98 % plan to using VFP within next 12 months

You want more information? Check Ken's next Newsletter

Ken then gave an overview of some of the most important feature of Visual FoxPro 9.0, like data handling and interoperability, extensible developer productivity, flexibility for All Types of Solutions (or: "From the Smart client to Tablet PC applications", or "From here to the fourth largest Moon of Jupiter and beyond with just one CD"). As there have been already lots of reports on this (for instance see the Key Notes of last year's DevCons in Prague or in Frankfurt ), so we leave it out here.

Also Ken announced the Service Pack #1 for Visual FoxPro 9.0, proving that there is virtually nothing, if the right people, our dream team, starts working on it. The Service Pack is scheduled near end of 2005.

Well, so much for today. And now Ken concentrated on what is ahead of us. One major effort of the Visual FoxPro team at Microsoft now is a new project, code-named Sedna. The primary goal of Sedna is to expand on the ability of Visual FoxPro-based solutions to better integrate with other Microsoft products and technologies.

Features in Sedna will target Visual FoxPro's extensibility and interoperability to work with application components created by using

  • .NET (Framework, Visual Studio 2005, more)
  • SQL Server 2005 (including Express version)
  • Longhorn (next Windows operating system)
  • Office 12 (next version of Microsoft Office)
Also Sedna will target Visual FoxPro's ability using extensively
  • New C++ based DLLs
  • New and improved Xbase components
  • .NET wrapper classes for use within VFP

There will be limited core product updates. Also the Visual FoxPro community will deeply be involved in specifying and testing Sedna product details during development as there are some free Betas planned. Just watch out Ken's Newsletter in the months to come.

Ken again stated: as indicated in prior public statements, Microsoft does not plan to merge Visual FoxPro into Visual Studio .NET, nor are there plans to create a new Visual FoxPro .NET programming language. Visual FoxPro will remain stand-alone Win32 based, and will run on 64-bit Windows in 32-bit compatibility mode. For deploying Visual FoxPro solutions that use components based on Microsoft .NET, Sedna will provide improvements for those components using COM and .NET interoperability. But the .NET Framework will be extended to also have it working with application components created by other Microsoft development tools.

Of course Visual SourceSafe 2005 will be available rather soon. It will be an upgrade from Visual SourceSafe 6.0 and will be available as a stand-alone and via MSDN. One major improvement will be a better performance over VPN connection, supports check in/out file access over HTTP and - what else - will work great with Visual FoxPro 9.0!

SQL Server 2005 Express will replace MSDE with more features. It is a free light version of SQL Server 2005. A look at some of the features: There will be no throttling anymore, SQL Server 2005 Express will be easier to install, SQL Server 2005 Express will allow silent mode install option, provide for downloadable scripts to create databases, have an Add-on Express Manager and will break the 2GB barrier with new 4GB limits. And - most important of all - will work great with Visual FoxPro 9.0!

Then came "he" - do you remember the report on "Integrated VFP9 Report System" in the Frankfurt DevCon 2004? Well, now "he" is here, the one, who did all the nice feature, which now enrich Visual FoxPro's 9.0 Reporting System: Richard Stanton.

Richard took over and carefully demonstrated the most important feature of the Reporting System:

  • Protect existing FRX investments
  • Open architecture
  • Better reuse story
  • Design-time improvements
  • Access to report objects at runtime
  • More flexibility with Report Chaining
  • New output types (e.g., XML, HTML)
  • Report processing events

One charming detail: Richard's mother presently also lives for a couple of months in Prague, where she was born. So his coming to the conference is at the same time kind of coming home to the birthplace of his mother. Well, we are still working on a nice remark to comment on this connection, which cannot be a pure accident...

Finally Ken summarized again the reservoir of Visual FoxPro Resources:

Additional VFP Resources
  • Book: New in Nine: VFP's Latest Hits
  • Book: .NET for VFP Developers (online free)
  • UniversalThread.com (new Sedna section)
  • FoxPro Advisor Magazine
  • FoxTalk 2.0
  • CoDe Focus for VFP 9.0
  • VFP 9.0 retail prices same as VFP 8.0
  • MSDN Subscriptions

Finally Ken summarized his recommendations to the attendees:

  • Upgrade to Visual FoxPro 9.0
  • VFP 9.0 works great with VS 2005
  • VFP 9.0 works better with SQL Server
  • VS 2005 + SQL 2005 launch: Nov 7th 2005
  • VFP 9.0 case studies to market VFP
  • Chat about VFP 9.0 online with others
  • Work with the VFP team on Sedna
  • Have fun here at the DevCon!!!

What is new in VFP 9.0 GUI
Jan Vít

Although many of the new features in Visual FoxPro are targeting the new ReportWriter, team at Microsoft did not forget about the user interface.

In his session Jan took enough time to go through every major enhancement in the Visual FoxPro GUI and showed accompanying demos.

First on the program was docking. With Visual FoxPro you can now make any user form in your application dockable. To provide a fine control over that, Visual FoxPro provides two new methods and three new properties.

Anchor property, which was added to every single visible object, makes it now very easy for developer to set up a pattern of how the objects located on a form should react to forms' resize event. All you have to do is run the new Anchor builder. That's it!

Of course, if you look at it from a different angle, all the code you have written, fine-tuned and placed in the resize events of your base classes so far is now obsolete. But we all like new features, don't we?

The next three demos showed the new graphical features of VFP 9. By setting the Rotation property labels can now be rotated, with help of PolyPoints we can create more complex shapes and VFP 9 now also provides more control over the position of the text and picture on the command button.

The last feature Jan mentioned was AutoComplete. To explain its basic functionality he assimilated it to the Internet Explorer address ComboBox behavior. By providing the list of previously used entries the Visual FoxPro textbox makes the data entry for the end user much faster.

Although this feature is very cool and definitely has many possibilities of application, it has a major flaw. If you use alphabetic order and need other Collation than Machine (Czech for example), it is not possible to change it. Fortunately that is not a fatal handicap. With help of a simple class, which Jan later showed, you can in the end get the order right.

At the very end of the session Jan also included a few features of Visual FoxPro IDE. Form the complete list, let's name these three at least: Properties window enhancements, RTF clipboard copy feature and IntelliSense finally working also in WITH, FOR EACH and memo.

Introduction to the New ReportWriter in VFP 9.0
Petr Zaoral

"We had been asking for enhancements in the Visual FoxPro ReportWriter for a long time. Now, we finally got it!" These were the exact words Petr used to start his session.

Okay, what is it what we actually wanted? Basically two things: We wanted the ReportWriter to be object oriented and we wanted to have a possibility to export the report to different formats. Well, actually we have three wishes: On the top of all we also wanted the ReportWriter to have a backward compatibility. That definitely was not an easy task.

Now, logically comes: "What did we get?" The answer is simple: "All of it and much more." To listen to the backward compatibility request, Visual FoxPro team at Microsoft decided not to make changes to the old ReportWriter but instead of that to include the new ReportWriter in VFP 9.0 in parallel with the old one. The only thing you have to do to switch between the ReportWriters is to issue a command:

Set ReportBehavior 90

This will disengage the old "black-box" ReportWriter and put the new "VFP APP-based" ReportWriter in action. Yes! A large part of the ReportWriter was written in Visual FoxPro itself. That for example allows you to add your own output type (a PDF for example) just by subclassing a report listener class.

By default the VFP can export to XML, HTML, TIFF and to the printer, of course.

And yes, there is much more. A preview of the report is a lot sharper (using GDI+), can be zoomed and can show more than one page at a time. The whole report can be assigned a DataEnvironment from any class or from a different report. The report can also be opened in a "protected" mode to prevent user from changing things we don't want him to change.

At the end of the session Petr also included a list of thing you need to add to your application when using the new ReportWriter and what is likely not to be forgotten in the process.

All attendees were then recommended to attend the advanced session on the new Visual FoxPro 9.0 ReportWriter later at the conference.

Magical command SQL-SELECT
Hana Horová

Everybody of us was sometimes looking for something. It does not matter if you were searching on a computer or on a local network; you probably used MAGICAL command.

The magical command SQL-SELECT was the main theme of Hana's session, which introduces us into the dark secrets of Join (left, right, full join), Union, Group By and other mysterious formulas such as Order By or well-know phrases like WHERE (this command or other connecting conditions are supporting Rushmore technology). She also unveiled and explained the problems with NULL values.

She showed us how SQL-SELECT works on Visual FoxPro 9. In this version you can use sub queries if you want, but she warned us to use long SQL queries without precaution because it is very easy to make mistakes.

For example there is high a probability that we will make at least one mistake if our sub query grows to 10 rows or more. If we have made some mistakes (e.g. minor things like missing a comma or a semicolon), we could overload our PC or fill up our memory completely. She told us that the user or programmer should know, what he or she wants to accomplish. Or to put simpler: Switch On Your Brain Before You Start To Type!

She also showed us a couple of her demos demonstrating how to work with SQL-SELECT such as filtrating data from a database or matching them together.

The session was very good built and easy to understand for those who don't understand the SQL commands so far and definitely would help beginners.

Tips and Tricks: Visual FoxPro and MS SQL Server
Miroslav Krejcí

Have you ever been thinking about how to store data? Maybe you were thinking of using MS SQL Server. If you did so, but had a couple of problems that you couldn't solve (DateTime datatype or something like that), then this session would be the right choice for you.

Miroslav outlined the main reason why we should use MS SQL Server: It is the best future solution for storing your data. Your data will be safe and secure as well. Miroslav showed us many good tips and tricks that can help you to work with MS SQL Server and Visual FoxPro such as connecting VFP with MS SQL Server, Memo field vs. General, locking data on MS SQL Server, network conflicts, and stratagems in T-SQL language. He also spoke about the big problems with the DateTime and some of the image formats.

Miroslav also considerable time to explain how to effectively set the user rights and he did it well.

As a resume Miroslav emphasized that the MS SQL Server is great software, but it still has a few (nice) bugs.

If you were bored with MS SQL Server, don't worry: Miroslav was also speaking about Visual FoxPro. It has a good data-engine, object model and it can work with SQL data very properly. He also did not forget to remark some cute functions improving functionality of your application and many other useful things. The session did not miss speaker's good mood and there were also things that made you laugh such as playing with converting float data type. The session was definitely directed to everyone who is going to work with SQL server using Visual FoxPro.

Visual FoxPro & Predictor - Accessing Data on Oracle and Possible Problems
Martin Jindra

Well-known Visual FoxPro developer Martin Jindra (aka as Robin Hood) pleased us with his attendance on this conference and with his very interesting session. In this session Martin lectured us about possible problems we might run into when migrating native Visual FoxPro tables into ORACLE database server.

We started with accessing the date and selecting the data. You can use ODBC or ADO/OLE-DB to access the data as well and for selecting the data you can use SQL pass-through or Remote View. He was speaking about Left, Right, Full Join and problems connected with these formulas.

He warned us not to use an alias for tables because the ORACLE Server does not like it and he told us that we couldn't make an index on LONG datatypes, BLOB datatypes and the like.

The session also informed us that the unique index is corresponding to a Visual FoxPro candidate index. He mentioned also Insert SQL (you can't input Blob data type if you use sub queries) and Update SQL Update. He did not forget to speak about triggers. He mentioned two types of triggers:

  1. Row triggers,
  2. Bloc triggers.

Then he was speaking about other problems such as:

  1. Views are READ ONLY
  2. Problem with an OCI (Oracle Call interface).

At the end he made a remark about some other resources such as some web pages and so on. The session was well built, but it was directed to more skilful, in databases SQL Server, programmers.

Visual FoxPro 9.0 Working With Visual Studio 2005
Ken Levy

As Ken gave away at the KeyNote, Microsoft is planning to enhance the ability to work with .NET from inside the Visual FoxPro in the upcoming version of VFP (code-named Sedna). There for, attending the session was a good way to find out more about what's being planned and to stay on the track.

Even though the session carries the name of Visual FoxPro and Visual Studio, the first tool Ken showed in quite a detail was neither of them. It was the Microsoft Virtual PC software, which he used to run a separate machine inside his laptop. On this virtual machine he then ran all the examples he had prepared.

The demos in the session were primarily those already presented during the KeyNote; Ken just had more time to spend with them and to show the audience how do they actually work behind the scenes.

Just like that, we were able to see a .NET WinForm to be started from within VFP, ASP.NET page using the FoxPro DBFs as a back-end or an early preview of how we might be able to create Avalon forms in VFP, a new GUI of the upcoming version of Windows.

Ken also pointed out that according to the recently made survey there will be about 50% of all VFP developers using .NET in some way in two years. If you want to make yourself familiar with .NET already, you might find useful the information on an MSDN page http://msdn.microsoft.com/vfoxpro/net, which was set up by Microsoft especially for VFP developers to help with learning how to use .NET.

News in T-SQL and working with XML in MS SQL Server 2005
Michal Neuwirth

Have you ever worked or heard about T-SQL or XML? If you haven't, don't panic. Michal's session gave us the newest known tips and trick to make our work with these things much easier.

Michal started with some news in T-SQL. Actually he told us that there are not any radical news. Maybe just that every change from ANSI is converted into ANSI 99 or ANSI 92. He was also speaking about EXECUTE AS. This command can be used on saved procedures or functions and many other things as well.

He tried to explain us how Snapshot works. Snapshot is always reading only understandable data. The Read Lock is not needed here. He pointed out one particular problem. The problem was that the Snapshot must be allowed on the database level, if it should work properly.

What about triggers? Michal was so precise that he did not forget to mention triggers. He explained us the difference between MS SQL Server 2000 and MS SQL Server 2005. The MS SQL Server 2000 is containing triggers, which can be used only for tables or views, but MS SQL Server 2005 has DLL trigger and it can be used on system events. DDL trigger are containing the information about the specific details of events stored in XML format.

Then we moved to processing the errors. MS SQL Server 2000 can process the errors only with helping of @@ERROR. Yukon (MS SQL Server 2005) has a new statement begin, try, catch and end.

After that Michal was speaking about Common Table Expression (CTE). CTE is able to create recursive queries. These recursive queries have tree parts:

  1. Anchor (means initialization),
  2. Recursion,
  3. Outer Select (means what will be the result of the query)
He mentioned also other things such as PIVOT (inputting rows), UNPIVOT (rotating the columns into the rows) and OUTPUT clause.

At the end we were speaking about XML. Michal told us that XML is native data type. It can be used such as:

  1. Column in the table,
  2. Parameter of the procedure or function,
  3. Release value,
  4. Type of variable.
He explained to us that an XML document must be WELL-FORMED and he putted a big emphasis on this fact. We must remember that the XML is not a TEXT. The content is saved in "special form". Finally we spoke about XQuery.

It is specific language for work with XML documents. It is already integrated in MS SQL Server 2005.

It was definitely a great session full of useful ideas and it changed our opinions on T-SQL and XML as well.

MS SQL Server 2005 and .NET
Michal Neuwirth

One of the biggest enhancements in the MS SQL Server 2005 is the support of the .NET Framework. That gives the Developer or SQL Administrator a new option of writing Stored Procedures, User Defined Functions, creating own data types, using triggers or aggregations.

The main content of the session was demos, demos and demos again. Some of them made you think how easy it is nowadays to write something that took an awful amount of T-SQL code earlier. Among others Michal mentioned the conversion between binary to hexadecimal - it takes 23 lines of code total, but only 5 in C#. On the other hand, a simple data access using one line of code in T-SQL (a SELECT command) can take as much as 9 lines of code in C#.

It was to no one's surprise that when at the end of the session a question was asked whether it was better to use T-SQL or .NET Michal answered shortly but absolutely accurate: "It depends..."

MS SQL Server 2005: Express and Mobile
Michal Neuwirth

Basically the session was about the smallest versions of Microsoft SQL Server 2005: MS SQL Express (formerly known as MSDE) and MS SQL Mobile (known as SQL CE 2.0).

At the beginning he mentioned the well-known MSDE, which is the smallest version of MS SQL Server 2000 and just 5 users can use it at the same time. Then he turned to MS SQL Express, which can be only run on Windows 2000 SP4 or higher and what Michal pointed out was that it needs a .NET Framework 2.0 (it can be installed with the application ClickOnce). After that he briefly compared the MSDE and MS SQL Express. MS SQL Express is the freeware version of MS SQL Server 2005, but Report services and SQL Agent are not included in the package. Michal showed how to work with MS SQL Express using SQL Express manager.

Then he introduced us the to MS SQL Mobile (SQL CE 3.0), which will play a fairly big role in the future. Michal told us in which typical situation we could use it. It can be installed and used on Pocket PCs, Smart Phones and with the future Phone Edition (Window Mobiles) as well.

He explained to us briefly, but precisely the working of SQL Server management studio for example creating mobile databases or synchronization databases. There are two kinds of synchronization:

  • Remote data access (SqlCeRemoteDataAccess, Pull, Push),
  • Merge replication (synchronization between MS SQL 2005, Mobile Edition and SQL Server).
Both these types of synchronizations need access to an IIS (access to HTTP or HTTPS).

Developers' party
All (attendees, organizers and whoever joined the crowd)

«Community is a set of people. ... The origin of the word community comes from the Latin "munus", which means a gift, and "cum", which means together, among each other. Community literally means to give [gifts] among each other. Community could be defined as a group of people who share gifts, which they provide to all. ... In a stricter use of the term, community is a group of people who interact with each other. » thefreedictionary.com

What a definition - it sounds as if it would have been made to describe the Visual FoxPro community. Well - it sounds as if it would have been made to describe that evening and the party in the middle of it (or vice versa if you like): DAQUAS had invited - and everybody came. DAQUAS asked everybody; everybody came up with an answer (and DAQUAS politely and silently took care of those, who had a little difficulty to find an answer)....

The rest is quickly told: Everybody walked by foot (well, nearly everybody) to the place, where the party was supposed to take place. At the entrance to the hall, all the helpful people were present, cared for the luggage (most of the attendees just had switched over from the last sessions) and a great wealth of possibilities for those, who did not have had found an answer to the polite invitation from DAQUAS: Please dress up with your favorite mask, we want you to surprise us with your ideas!

As you can see from the pictures in the picture archive, there was quite a lot of activity in the entrance to the hall: Many attendees and DAQUAS people were helping each other to get dressed, to get painted and to what else is needed to slip into this evenings mask. And off it went into the hall and it two wings, where food and drinks were available. The party could begin.

And that is what happened: The party started by itself, the partygoers enjoyed each other and themselves. The mood was high! There was a local band, which did its best to entertain the crowd and did it well.

Darina Vodrážková, who in "real life" is the general manager of DAQUAS, was also full in command this evening. With grandeur she led through the evening, through the mask beauty contest and later initiated the spontaneous Fox Band (see pictures).

So every attendee was giving his presence, his/her joy and his/her good humor to everyone else, everyone mixed easily with everybody without being scared to approach a person he/she had never met before: Everyone attending this party was a Fox Fan, a kind of a good neighbor, or: This evening was really a community event! We want more of that elsewhere as well!

 

Wednesday, June 22

by Jan Vít and Jan Král

Remote view? Pass-through? CursorAdapter?
Ivan Arnold

Connecting to the remote data on SQL Server is quite usual in these days, but there are few questions. Are we connecting properly? Could it be done in better way? Ivan tried to explain us how we can connect to remote data and how to do it effectively.

First he explained to us what the remote data are and how to connect to them. The best way to connect to the remote data is to use an ODBC provider. This tool is reliable and fast. What about other ways? If you want you can use ADO as well. ADO is an extension of the ODBC and it storages the data on client side. The last tool that Ivan mentioned was XML, exactly he meant using a WEB Service.

If you are using Visual FoxPro then you will probably use:

  • Data Explorer
    • There is a useful Drag & Drop function
  • DBC Container
    • Connection
    • Remote view
    • ODBC interface
  • Pass-through
    • ODBC interface
  • Popular CursorAdapter
    • ODBC interface
    • ADO or XML
After all Ivan started speaking about particular ways how to connect to the remote data. Very briefly he pointed out the most important setting of ODBC in VFP such as RecordSize, ShareConnection or Automatic Transaction.

Then Ivan went through the Remote view and remarked some good points of this connection (it has got designer) and also some bad points (relative slowness).

Pass-through is using pure SQL statements, which are sent to the SQL Server. Its positive sides are that it is fast, easy to program and it has got quite a few features. He did not forget also to mention some negative sides like that the results are only cursors that it is not object oriented and the like.

The last but not least possibility how to connect to remote data is using CursorAdapter. He pointed out very simply the main advantages of a CursorAdapter. It is really fast and it put together the Remote view and SQL functions at the same time. Some disadvantages? Of course Ivan told us that the CursorAdapter is not clearly arranged.

At the end he summarized all the advantages and disadvantages of each of these tools and gave us some advice when we should use CursorAdapter and when for example Remote view. The session was very good understandable, but if you had wanted to understand all of the information you would have had some knowledge about ODBC and the other connection tools.

Tips and Tricks in Ordinary Life of A Programmer
Milan Kosina

As in last year's session, Milan did not have any slides, except for one: The required DAQUAS title slide. Instead this session was chockfull of code and hot tips and tricks on how to handle the daily ups and downs of a programmer life. Only a person like Milan Kosina could have handled this kind of a session. His tips and tricks are breath taking and they can make your programming funny, but first of all more efficient.

Milan started with IntelliSense showing us some handy scripts that could approve your commands such as the Browse command using for instance the Autofit method. He also mentioned problem with Beautify setting for example if you are going to use commands like Declare (WinApi functions) you must remember that they are key sensitive. If you will keep Beautify On then the letters of the Declare function will be converted into capital ones, but if you turn it off the size of the letters will be as you want.

We also went through the difficulties such as debugging your applications using not Visual FoxPro tools or problems with working new Visual FoxPro 9.0 on Window NT 4 platform. He did not miss to mention the very favorite theme MS Office. He showed us some tips with MS Word and MS Excel as well.

He also warned us before using formula FOR EACH for Visual FoxPro objects, because the VFP object does not know how to work with it, however he told us that we can use it with COM objects.

Milan prepared for us many and many other examples how to program code more effectively, but we did not manage to go through all of them so he told us that it will be available on the Daquas web pages. So don't hesitate and download it as soon as you can.

Visual FoxPro and MS Office
Štepán Burian

MS Office is one the most common software for everyday use. Everybody of us was working either with MS Word or with MS Excel once. Maybe you had an idea that it would be great to use MS Office and Visual FoxPro together. Well, it is no problem now. In Štepán Burian's session we were introduced to an integration of MS Office and Visual FoxPro.

In the introduction he pointed out that the MS office is build on COM architecture (OLE Automation). If we want to export data we need to know the particular object model of the program where we are going to export to.

He was mainly speaking about MS Excel, because you can work with it very easily. He told us some important things that we should know before we want to start exporting data from MS Excel to VFP or vice versa:

  • Main class is application
    • Next sub class Workbook
      • Then comes sub class Worksheet and so on

Štepán Burian also mentioned how to work with columns, rows and even work with cells. He did not miss to tell us some tips and tricks how to faster and more successfully export data to MS Excel using combination of COPY TO and Automation or using macros. After that he continued with a couple of demos.

MS Word is also a powerful program like MS Excel. He explained the basic class to us, which is quite similar to MS Excel's ("application"), and showed us how to work with sub classes such as:

  • Document
  • Paragraph
  • Range and so on...

At the end but unfortunately there was no time left for his section on working with Outlook. So he skipped it in favor of giving useful answers to a lot of very interesting questions.

Metadata, ZIP and ProgressBar - What's the Rhyme
Michal Tvrdý

Michal as a highly experienced Visual FoxPro developer described the metadata processing, which he has been implementing in VFP applications for several years now.

The term metadata was unknown to many of the attendees so Michal started from the beginning and described it in its very details, including several implementation possibilities and offers from independent vendors.

Many people then realized that they are all already working with it or would like to. It seems the only weakness is the various terminology that is being used for it. Some were calling it "Data dictionary", others are using the term "Data driven application" and so on.

In the second part of his session Michal described his own application for metadata maintenance and handling. ProgressBar is Mikhail's class used to display the progress over time-consuming tasks during the metadata processing.

The ZIP is a class based on the public ZLIB.DLL library. Its usage I think is clear to everyone.

Program to Interface not Implementation
Marcia Akins and Andy Kramek

It has been great fun to watch Marcia and Andy full in action in a well prepared session about the idea of programming to interface as a concept in theory and as a methodology, which helps to master difficult tasks in reality with elegant solutions.

Both took care to explain what the idea of programming to interface is standing for since quite some time by now. Programming to interface has nothing to do with programming to any kind of a user interface. Rather the more accurate (and unfortunately somewhat awkward) definition would be "Programming to Public Interface", where the expression Public Interface refers to a fixed set of properties, events and methods (PEMs) exposed by an object to its environment. The definition of these PEM governs the interaction between this object and its environment, which also consists of objects with "Public Interfaces".

Naturally an object usually has many more PEMs, but these are not "exposed" but hidden from the environment. By this separation an object may have some specific features, which can be accessed in a well-defined way through this Public Interface. The result will be returned in a well-defined way again through this Public Interface. Thus the Public Interface can be kept constant through quite some time, allowing the methodology, by which the object functions, to be developed further through the time.

Using a real-life example Marcia and Andy showed "Programming to Public Interface" in action. It was a very impressive lecture for us attending this session. Sorry for you, if you missed it.

Visual FoxPro 9.0 Reports - Run-time Hooks and GDI+
Richard Stanton

Where else would you like to get more information on the new ReportWriter than in the session presented by one of its creators? Having that in mind attendees filled almost every chair in the room.

At the beginning Richard showed a few demos like sending the output of the report to a shape located on the _SCREEN object. A bit later he explained methods for evaluating contents and rendering.

The point when the session really kicked off was when Richard suggested an approach to create a ReportListener subclass for every report we design, which was quite different from the ones we had seen in the VFP 9 demos so far. In real world applications it is better to use the more flexible ReportListener instead.

In his demos Richard used a ReportListener object called FXListener. That is the example of the "more flexible" one. When running the report, the report listener does not have all the information what to do with it but instead reads the metadata stored as XML data in the report itself. FXListener then uses other classes (FXRotate for example) to make the changes to the report based on the XML data while running.

The whole new ReportWriter was really designed with a demanding Visual FoxPro developer in mind and have a lot more possibilities to tweak it. To give us another idea Richard showed a demo of an enhanced report preview. He was able to change the docking of the toolbar, hide the print button or change the number of pages shown by default when opening the preview; all that just by subclassing the preview class and adding few extra lines of code.

As soon as he finished the demo a question immediately arose: "Can I use this ability to, let's say, adding a ComboBox of available printers to the toolbar, so that user can select one at the preview?" Quite demanding, huh?

Well, believe it or not, Richard was just about to show something similar in the next demo!

He added an extra button to the toolbar called "Find". When you clicked it, entered a phrase, Visual FoxPro then started to go through every occurrence of that phrase in the report preview. Wow!

The session was definitely full of new approaches and different techniques of customizing the report in all ways. I can imagine using some of the ideas to be included in Sedna (next version of VFP) by default.

XQuery
Jirí Kosek

Nowadays all the data is mostly stored in the relational databases, where we use the SQL language to query them. Since we use XML quite a lot today, there has been an attempt to unite these both worlds into a new one.

The answer is a new language. The most commonly used today is the XPath (currently in version 2.0). This language however has very basic functionality and therefore another one is being created. It is the XQuery language and it is being developed since 1999 under the supervision of the W3C. The final version is expected to arrive sometime around 2006.

XPath, SQL, XSLT, Quilt, XML-QL and OQL inspired the query language itself. In the current state it is only a query language. It does not support any kind of modification to the data. This handicap however is going to be overcome in the future.

The key features are that the language is fully function-based (everything is an expression and they can be nested together), the result is always an instance of the data model, it uses the W3C XML Schema, it is a strongly typed and it performs many syntax checks before the actual committing of the query.

Jirí then explained a few basic commands of the XQuery language and showed a way of putting all the commands together.

As stated above, the XQuery is not in its final stage yet, but the contemporary version is currently widely supported. A list of already working implementations can be found at http://www.w3.org/xml/query.html.

Professional Version Control System - SourceSafe versus Subversion
Petr Kuchar

Are you in charge of a development team? If yes, you probably already use some means to control the changes in the source code. Either you take the time to pick every bit of a new code from every developer and keep it some "sophisticated directory" or you just use some VCS.

If you don't know what a VCS is, after attending the session you would have had a perfect idea. The abbreviation stands for "Version Control System". Just in short, what does it actually do? Well, quite a lot.

It provides the developer with the possibility of checking-in separate files of the application, to lock them if he's working on them, it keeps the record of all the file changes made so far, allows different version of files to be compared and in case of a conflict the IDE of the VCS can even help you resolve it. Is that enough? What about security? Okay, would you like it to have a transaction system to store the data like the SQL Server does? You got it! So if you start to upload, let's say, 10 files and the connection goes suddenly down, the VCS will rollback the transaction and you won't get the data corrupted. You might be also pleased to hear that some of the version control systems available nowadays also have an internet check-in (in case you need that).

In his session Petr showed a list of features of a few favorite version control systems. The most known is probably the Microsoft Visual SourceSafe, currently still in version 6. Microsoft plans to release version 2005 later this year. Among VSS features let's mention the important ones. It is the check-in, checkout functions, ability to watch the differences in distinct versions and in case it is needed also the ability to solve possible conflicts. As a disadvantage we could mention the "NonAtomic check-in". So since every file has its own version number, it is not possible to easily see what files were meant to work together in one build - there is no connection. The major disadvantage however is that it is not a C/S system. The integration to VFP IDE on the other hand makes it a more preferable selection.

In the next half of the session Petr introduced other VCS, the Subversion and stated its advantages and disadvantages. In Petr's view it is a reliable and well-designed C/S system with abilities to look after various versions and supports a remote development. Some might also appreciate that it can have either Windows or Linux as a server. The disadvantages are that it is not as easy deployed as VSS and that it does not support the integration into VFP IDE.

To sum it up, VCS are great to increase the security of the project, they help you keep a perfect version history and they do not necessarily have to increase the project cost. The Subversion, for example, is in the GNU GPL, so it is for free.

At the very end, Petr emphasized that, if you have a team of three or more developers, you actually can't avoid using some kind of VCS anyway.

Net protocols and security
Petr Setka

I am sure that you definitely ask yourself the question: Is my network well secured? Do I have to do something more? Can somebody catch my email and read it? If you are not sure about these questions and you need help then this session gave you exactly what you wanted.

Pert directed the session to make an overview trough the net protocols, using them and what are they good for (HTTP, SMTP, and POP3). You also had a chance to learn how to catch interesting information and know how to prevent publishing your own data.

Firstly he spoke about the HTTP protocol. We can just ask, is it safe? Definitely is not. The HTTP protocol is used for accessing web pages such as Yahoo. MSN Messenger also uses it. Sending data via the HTTP protocol is dangerous and not recommended, because the data (passports, logins, messages and so on) are not secure and everybody can catch your data and read it without any big problems. So what shall we do with this particular problem? Petr gave us a very simple solution using a SSL encoding. If we apply the SSL on the HTTP we will get a HTTPS, which is used for instance by banking web applications etc. Then your data become more secure then before.

After the HTTP protocol Petr was speaking about the POP3 protocol. This protocol is used for downloading your email from one server only, nothing more. The user must always be authenticated. Petr mentioned one major problem here, which is that the POP3 protocol is sending the data in insecure form like the HTTP as well. You can deal with this problem using also the SSL encoding.

Petr did not forget to mention well-known SMTP protocol, which is used to send emails and it is used for a communication protocol between two mail servers as well. The SMTP has the same problems as the POP3 protocol and the HTTP protocol. The solution is also the SSL. If you send your email without using the SSL, everybody, who will catch your email, will be able to read it.

At the end of this interesting session Petr gave us some good advices for secure communication such as using the SSL, always verify who you are communicating to, be aware of not standard entering sites and he also fleetingly mentioned digital signs.

Petr told us many things what we have to do for secure our communication and I am sure he did it well.

MS SQL Server 2005: News in Administration and High Accessibility
Michael Jurek

Well-known speaker Michael Jurek from Microsoft tried to inform us about new MS SQL Server 2005. On MS SQL Server 2005 you can have maximum 50 instances or if you want you can install other versions of MS SQL Server 2005 such as SQL Server Mobile or Express. He pointed out how to effectively install this product using for example System Configuration Checker (SCC), which will check your system requirements important for installation. He mentioned important components that will be installed on your PC such as:

  1. Reporting Services,
  2. Database Engine,
  3. SQL Server Management Studio and other.

Then Michael specialized on tools for administrating and configuration. He was speaking about many tools, but the most important are:

  1. SQL Server Management Studio
    • it is quite similar to the Enterprise manager
    • it has got better reactions than the Enterprise manager and it is asynchronous
  2. SQLCMD
    • it is a command window for writing SQL scripts,
  3. Management Objects (SMO),
  4. SQLiMail (Outlook is not necessary),

He then demonstrated some handy tools for debugging and monitoring. SQL Profiler you can use for detecting slow and problematic SQL queries or monitoring SQL Server instances, transactions, commands, which run on your database, Analysis Server or debugging OLAP. After that he showed us saving the results from SQL Profiler and using them in other helpful tool called Data Tuning Advisor. Advisor will go through your results and it gives you an advice how to make your database better for instance creating new indexes.

Clustering was another big topic of Michael. The main thing he told us about the clustering was that nowadays clustering is included in standard version. There is just one limitation. Clustering in standard version works only with two servers.

If you thought Michael missed something, you were wrong. He even mentioned great feature in SQL Server 2005. It was Database mirroring. Simply it is synchronization of two running servers.

The session was full of new amazing things, ideas and demos, which gave us a complete demonstration, how to install and administrate new MS SQL Server 2005 with ease.

MS SQL Server 2005: What's new in Business Intelligence
Michael Jurek

Michael Jurek, a frequent and well-known Czech Microsoft TechNet speaker, outlined in this session something of the architecture and of the new features in the upcoming MS SQL Server 2005 in the area of Business Intelligence.

The important fact at the beginning is that the Business Intelligence tools are the integral part of the SQL Server. This will allow developers and users from enterprises of all sizes (not just users of the most advanced SQL version) to take the benefit of these tools.

First on the program were SQL Integration Services. The question is: Is it something new? Well, not really. It is the old well-known DTS in a new shirt. IS are a set of graphical tools and programmable objects that you can use to extract, transform, and load (ETL) data from various sources and move it to a single or multiple destinations.

This was nicely presented in the demo, where a particular data were sorted first, conditionally splitted, "unioned" back later and finally saved to a Flat File Destination as a final storage. Everything was made just as easy as putting a five-piece puzzle together. Pretty easy!

In the demo we also had a preview hooked on a particular data flow and as the process was running we were able to see what was actually going through the "tapped pipe".

Going further through the session Michael also showed demos of other new features in OLAP, Data Mining ad Report Services.

The session gave a nice preview of what is currently knocking on the door. None of the attendees should now be afraid to open them.

Sweet Secrets
Darina Vodrážková

As the name of the session could have been misleading for some, right at the beginning Darina made sure everybody knew the real topic of the session: "Licenses, licenses, licenses..."

The name of the session however is not the only misleading fact. Why?

Well, every speaker at the conference always prepares a Power Point presentation and examples; some at least one of these two. Another thing, which is always to be found at the end of the session, is the Q&A part. It actually is the only part a speaker cannot prepare for - unless of course he has his friends in the audience asking questions as planed. A "tricky question" can then easily make the speaker loose his ground.

The point I am trying to get to here is that in this session Darina began with something like this: "Since the license topic is so wide, it might be a better idea if you ask specific questions and I will try to provide the answer. Then I can tell you some of the frequently asked questions and useful answers to them. Do you agree?" Quite courageous, isn't it?

The audience agreed to it and believe it or not, Darina was able to answer all the coming questions in high detail and she actually never got to the FAQ she had prepared. The people in the room (roughly 30) kept asking questions for all the 75 minutes and filled all of the session time, including the last 5 minutes generally devoted to Q&As.

Questions included law pitfalls in distributing applications, interpretation of the Czech law protecting the authors, OEM issues, downgrade, selling the purchased software and so on.

Questions and Answers
All

Every year we can hear different sessions except the one: Questions and Answers. This session is not like the others. This session is special. Don't ask me why, because it is obvious. There assemble all the speakers in front of audience and they should answer many questions. Some questions are easy to answer such as question: "Is it possible to create software for PDA using Visual FoxPro?" The answer was quite simple: "NO", but there were also question that were quite hard to answer for instance: "How can I digitally sing a file using Visual FoxPro?", "There are a lot of tools that can sing a file but these solution are not very professional." said one of the sitting speakers.

If you thought that there were only serious questions you were wrong. There were a number of questions and answers that made you laugh. The question as: "How can I reset default value on a printer, where I have just finished printing of the report?" Andy Kramek dealt with this problem very elegantly. He just answered: "Get a new printer!".

Everybody of us were expecting questions about Visual FoxPro, SQL Servers, XML or something about new features in new Visual FoxPro 9.0, but it appeared one question that did not have anything common neither with Visual FoxPro nor with computers. The question was prepared very carefully and it was point on Igor's Vít relationships: "Mr. Igor Vít, last year you explained us the relationship between you and Jan Vít (other speaker) and I would like to ask you if you can comment on Saint Vita's cathedral?" Well, Igor pretending to be shocked just answered: "Well, I have to ask my grandfather".

It was a really hard session for everybody, because Igor tried to finish the session on time. Everybody has only 2 minutes and exactly 17 seconds to answer the question. For all that the "questions and answers" was full of many interesting queries, which can't be all mentioned, and it did not miss good mood and fun as well. The session had a relaxing and refreshing effect on our tired mind.

 

Thursday, June 23

by Jan Vít and Jan Král

Introduction to the VFP 9 ReportWriter Architecture
Martin Haluza

The aim of the session was to discuss the changes in the VFP ReportWriter architecture between version 8 and version 9.

The ReportWriter, which was included in VFP8, and all its previous versions were behaving basically like a black box. It was one single component, which was in charge of the IDE, data manipulation, exporting, printing and preview. This did not give VFP developer many possibilities to look under the hood or even augment the Report Writer's behavior.

This all changed in version 9. The new ReportWriter is more component based. It consists of the little ReportWriter itself with a new ReportListener component together with a Preview component. That allows you to hook in and, for example, change the output type or make the report look the way you like while it is running. The whole key, of course, is in subclassing the new ReportListener object.

Now that we know what is possible, we want to know how to use it! That's where the changes to familiar commands like REPORT FORM or MODI REPO came in. They have both been extended and can now be used with new keywords such as OBJECT, OBJECT TYPE or PROTECTED.

Martin then explained and demonstrated how we actually do all that. How we can use GDI+, make more listener objects to cooperate or what is the difference in processing pages one by one from processing all of them at once.

The big topic is always the compatibility with a previous version or with reports created in previous versions to be exact. Another nice thing might be that the REPORT FORM command can now be also called from a COM object compiled as DLL.

The number of session discussing the new ReportWriter here in Prague's DevCon definitely shows its significance for all the developers.

The Chip Cards Mifare in Visual FoxPro
Stanislav Sykora

This session was not typical as the others, because we started untraditional. Igor asked us what we want to improve on the DevCon. There were ideas such as arrange the air condition, or make a video from each session etc. This all was caused by Stanislav delay. He got stuck in the traffic jam probably caused by a car accident. So he couldn't manage to get there on time, but he compensated it with a perfect session, which was all about the Mifare card and using them in ordinary life.

At the begging of the session he described us very colorfully the structure of the Mifare cards. The card is made of plastic and it contains RFID chip. The appearance of the card is not so important.

There are two types of Mifare cards:

  • 1 kB Card
    • Older and cheaper
    • It has 16 sectors * 64B (4 blocs)
  • 4 kB Card
    • New one, but more expensive
    • It has either 32 sectors * 64B (4 blocs) or 8 sectors * 256B (16 blocs)

He also mentioned what the sectors are good for and how do they work. The result is that Mifare Cards are not only contact cards (RFID) they also have one particular ID number. He told us that these cards are resistant to BRUTE FORCE. It will take you about one thousand years to hack into the card and get the information.

He also mentioned the reading device. It is some kind of card with antenna putted into a small plastic box. This reader is not so expensive and it is communicating with a PC via the Serial Port. If you want to work with these readers in Visual FoxPro, you need to have some special classes that will allow you to work with them properly.

When we were approaching to the end of the session he mentioned where and how the card and reader can be used. It can be used for a wide range of situations, for instance to control the attendance of students in university classes or for access control to company buildings or other places with more or less sensible information or as a kind of electronic ticket for public transport (= e.g. flat transportation fee for a limited amount of time).

Optimizing Your Code
Andy Kramek

Andy started the session with a little survey. He asked the audience about how many times they had found themselves saying: "That's funny, you know - it worked well on my machine!" Now you can try to guess how many hands were in the air...

What was the goal of this session? Well, just as Andy said: "Making your good application "great"!"

Let's mention some of the GUI design optimization. When an operation is fast, it is not enough. It must look as fast in the first place. This, as Andy showed, does not necessarily have to be the same thing. In fact it can also be in a way, which you wouldn't expect. The slower process can appear faster than the fast one! Next thing is that when we are creating an application we always need to have in mind that the user must feel the application is actually doing something. For example by disabling the button after it was pressed you can prevent the user from wondering about whether the button actually "heard him" doing it and in the end prevent him from clicking it again.

Do you know and use all of the VFP commands and functions? Do you know how many there are actually? When thinking about these questions, you might come to a conclusion that you don't actually need to know all of them; after all, there are usually many ways of doing the same thing, right? Well that does not necessarily have to be true at all times. For example by using some commands you might get the same job done in milliseconds, seconds or even minutes. To give the attendees an idea Andy showed many demos including a time the concrete operations took. It is actually much faster to replace a CASE command with IF, no matter how complex it might get. The change in time might be negligible when running the command once but can be quite important when it is ran in a loop going through a few million records in a table.

Other topics covered were Rushmore, object access or refreshing. Just as Andy said at the beginning, the session was meant to make everybody rethink the way they write applications.

Implementing Design Patterns in VFP
Andy Kramek

Are you facing a class design problem or do you just want to discuss your solution with a fellow developer? If answer to any of these questions is "Yes", then Design Patterns are the right thing for you.

Design Patterns appeared for the first time in the book called "Design Patterns: Elements of Reusable Object Oriented Software" written by the famous "Gang of Four". This book has defined 24 standard patterns split in three different categories and it has also provided the very definition for them.

Each pattern has a name, which makes it easy for people to talk about it; it identifies the problem and provides a solution - everything at very abstract level.

Since Visual FoxPro is an object oriented development tool, it can also take the benefit of the Design Patterns. In this session Andy went through a few of them and showed detailed demos.

Among the mentioned ones was Bridge as the most fundamental of all the patterns (you can find the Bridge pattern in almost every other pattern), Strategy, which allows to cope with "multiple-option Bridges", Abstract factory, which provides means of creating an object without directly specifying its class name, Chain of Responsibility, which makes objects cooperate so that they can all make the single task done and of course the Decorator, Adapter and Wrapper pattern.

All these patterns are not meant to give you the solutions right away on a "served silver plate", they provide you with a template for the actual solution. Knowing them all and being able to recognize them in your code can help you make your design decision faster and much better.

Develop an App within 75 Minutes
Uwe Habermann and Venelina Jordanova

Both speakers are well known protagonists of VFX, which is a Visual FoxPro framework, which was originally designed by someone in Switzerland for Visual FoxPro 3.0. This framework was later bought by ISYS, a German company, well known by its support for the German DevCon. ISYS cared for its further development and also has it had enriched with a great number of enhancements.

Great emphasis was put on using the various features, which were built into Visual FoxPro over the years. Also various wizards and tools were developed or improved with the ease of use and RAD (=Rapid Application Development) in mind. Also the interoperability was a major goal, especially as far as data storage and using the Internet are concerned.

In order to prove, how good this framework, its tools and its wizards had become in the meantime, Uwe and Venelina concentrated on developing an application in 75 minutes. As a blueprint they selected the Pizza Ordering Example, which is included in the Visual FoxPro Sample Solutions (Home()+"\Samples\Com+\QC").

To keep a long story short: Uwe and Venelina solved their task with ease in exactly the time, they had promised to do it, fully demonstrating why VFX 9.0 is said to be a "Rapid Application Development Framework for VFP 9". Some highlights from their presentation:

Version 9.0 (the version number kept in synch with Visual FoxPro) of VFX (stands for VFp eXtended) comes with a Task Pane, with a Template Application and many Builders and Wizards. In order to create an application project the respective Wizard will need the names of the folder, the database, some texts for the about user dialog and a few more settings for the application object. By the way: A Czech-speaking version is also available, i.e. VFX can generate application with a Czech interface! And in additional 12 languages as well... The development package itself including wizards and builders has only an English interface, but that should not be a real obstacle.

Then an application is generated, which contains at Runtime

  • Splash-Screen
  • Login dialog
  • Menu and Toolbar
  • XP style open dialog
  • User management
  • User rights
and much more features...

After creating a database (one table each for customer, orders, orderdetails, products), using the VFP database designer, xCase or SDT the various VFX wizards comes onto the stage to generate all forms needed at runtime (example shown include an order form, a child form), CursorAdapter classes for all tables of a database for VFP database and for SQL Server and the like and off we go and generate an application!

As there is a close integration with AFP (Active FoxPro Pages) via a VFX-AFP Wizard Uwe and Venelina created quickly a web form with a mouse click, which has the same functionality and the same look and feel as its Visual FoxPro counterpart! (VFX 9.0 und VFP 9.0 have to be installed). Well, there are some minor limitations using the Web...

The time was over, the task was accomplished, the presenters were happy, the audience was enthusiastic. Perfect show!

 

Acknowledgements

Farewell

The DevCon ended at lunchtime and everybody went home.

Thank you for reading so far!

Words Of Thanks

Now we are done with our report. Really? Well not exactly, because some very important topics have still to be covered. As in previous years we, the reporters and the editor, have had the honor to write this report. We are very grateful for this opportunity.

Though nobody authorized us to do so, we think that we do not speak only for ourselves, but also for all attendees including the speakers and everybody else who attended this event as a guest:

We want to extend our thanks to the people and to the management of Daquas: you have done an excellent job, carefully preparing and arranging this beautiful event. We thank you for your ever present attention, for your care for even the smallest details, for your endless friendliness and your seemingly inexhaustible wits, which you invested into all the big and small things, which made this an unforgettable event.

Whatever happened you quickly found a solution, did what was necessary and did that with dignity and reliability. None was too shy to do immediately, whatever the situation required, even if this happened to be the most unpleasant things.

You won our hearts and our affection!

The Developers' Party

The Developers' Party was without any doubt one of the best community events I (the senior of the reporting team, who did the editing and who attended more than 20 DevCons so far) ever happened to attend. This was really "community" at its best: Those, who are used to work hard and who are used to support each other to cope with the big and small troubles of daily life, also can also celebrate very hard: This party was a joint venture of all attendees at this event, regardless whether they are attendees or organizers, feeling as members of the Visual FoxPro community.

Maybe this is also the reason, why this country with "only" 10 million inhabitants has the largest Visual FoxPro DevCon worldwide. Congratulations!

For that reason we decided to include so many pictures of the party in the Picture archive.

Final Words and Words of Thanks.

This has been the report about this year's DevCon in Prague. This is the 8th DevCon in sequence arranged by DAQUAS. Including the speakers 410 people attended this DevCon; out of this 39 have been coming from 10 countries other than the Czech Republic or Slovakia, mostly European countries. About 100 of them are first timers, 50 are members of the class of '98, which means that they attend this event for the 8th time.

This DevCon lasted for 2 1/2 days. There have been 19 Czech speaking and 7 English-speaking speakers. Daquas' record of this year: 45 sessions: 1 Key Note plus 44 Sessions (including 3 repeat sessions), out of which 18 were held in English, 2 in Slovakian, all other in Czech. The sessions included also 7 vendor sessions, out of which 3 were held in English. Also there have been some big and small parties (exact number not known as nobody cared to report duly).

At the end we, Jan Vít and Jan Krŕl, want to extend our thanks to everybody who helped us preparing this report:

Quite a few people supported us by supplying with their material and in many other ways in writing this report. Thank you all! Special thanks go to

  • Jan Horný from DAQUAS, who provided notes on two sessions in Czech, which we were then easily able to convert to a publishable English text. Thank you, Jan!
  • Pavel Celba, who provided roughly 50 % of the pictures, especially the wonderful ones from the Developers' Party. Thank you, Pavel!
  • Gaby Lochmann, who provided the other 50 % of the pictures, most of which are showing speakers and attendees during the day (as she had been working hard over the days she was partying very hard on the evenings) . Thank you, Gaby!
  • Igor Vít - his persistence, creativity and never ending friendliness helped a great deal. Thank you, Igor!
  • Darina Vodrážková - her ability to keep lots of open ends in her hand without losing control of any of them and her warm smile held the organization together. Thank you, Darina!
  • Our extended gratitude goes also to our wonderful Editor. He not only compiled all the text and pictures together, but also provided his help on covering some of the English sessions. In short, he provided us with an irreplaceable support. Thank you, Editor!
  • Michel Fournier - he enabled UT, he invented this type of reporting and, above all, showed remarkable patience with us because we constantly missed the deadlines. Thank you, Michel!

 
Jan Vít, Vitsoft 
Jan Vít is a student of the University Of Economics in Prague. Since 1993 he has been actively interested in programming as well as other areas of information technology. His computer experience started with PC 80386 with FoxPro 1.02, later followed by higher versions for the DOS platform and since 1999 he has been using the newest Visual FoxPro versions together with other programming languages and tools. Presently he spends most of his time with Visual FoxPro 9.0, MS SQL Server and C# in WinForms as well as WebForms development. He has been a regular speaker on the Czech Visual FoxPro DevCons since 2004 and is also the co-author of many DevCon conference reports from Prague and Germany. His work now mainly consists of developing software for pharmacies.

 
Jan Kral 
My name is Jan Kral and I am studying Third Faculty of Medicine, Charles University in Prague. I am interested in computer technology and medical science. In my free time I develop applications using Visual FoxPro 7,8 and nowadays I use VFP 9.0, all mostly for my personal use. I have been a co-author of several Czech VFP DevCons' UT reports. I also develop internet web pages using PHP, JavaScript, CSS and so on. Feel free contact me at my email.



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