![]() |
![]() ![]()
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
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!
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.
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!
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 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.
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 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!)
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:
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.
Features in Sedna will target Visual FoxPro's extensibility and interoperability to work with application components created by using
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.
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:
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:
Finally Ken summarized his recommendations to the attendees:
What is new in VFP 9.0 GUI 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.
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 "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.
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 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.
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 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 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.
Then he was speaking about other problems such as:
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 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.
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 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:
At the end we were speaking about XML. Michal told us that XML is native data type. It can be used such as:
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 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 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:
Developers' party
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? 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:
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 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.
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 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.
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:
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:
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 as a highly experienced Visual FoxPro developer described the metadata processing, which he has been implementing in VFP applications for several years now.
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 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.
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+ 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.
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 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.
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 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.
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 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.
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 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:
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, 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 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?
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 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 The aim of the session was to discuss the changes in the VFP ReportWriter architecture between version 8 and version 9.
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
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:
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 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...
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 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 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.
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.
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
62 Rue Doucet, Petit-Rocher, New Brunswick, E8J 1L3 Telephone: 1-506-783-9007 Email: mfournier@levelextreme.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||