Trends Trends you need to know for Visual FoxPro 9.0 and above German FoxPro User Group Rainer Becker Frankfurt/Germany Rainer Becker • dFPUG – Online offers – Loose Leaf magazine • • • • • VFP-DevCon Localisation Framework Visual Extend MVP, MCP Wizards & Builders GmbH Session Topics • • • • • • Takeover of VFP-features Advantages of Visual FoxPro Microsoft Marketing Advantages of Frameworks Client/Server-Example Internet-Example For a long time VFP inherited features from other Microsoft products… Now Microsoft is going to duplicate features of Visual FoxPro in .NET And it is not only about features… Do not lots of things in .NET sound familiar? • „You are not a true compiling language!“ – common language runtime – now garbage collection is „cool“ – obfuscation equals Refox-problem • „Your are not three-tiered by nature!“ – dataenvironment (kind of) in .NET • all in one tool for programming tasks – upcoming except for reportwriter (see VFP9) • migration problem to OOP / new concept – we lost half the community, why repeat that? Familiar Features in .NET • WinForms: – Grid with various features – Drag & Drop Fields onto a Form (Grid) • Data: – – – – Local database engine with index Asynchronous data access Switching the underlying database Adding validations to views (DBC-like) • Debugging – debugout and so on… Familiar Features of frameworks • • • • • • • • • sorting in grids login dialog user and rights-management saving position and so on per user application update localization features data access for multiple backends wizards and builders of various types … incomplete list … After all these times… • Looking like a true survivor – Nothing really new for VFP-developers – Been there, done that • Feeling like a little kid – And, Yes!, They are excited about it! – Like we were once upon the time • PS: We made a big mistake at the name contest – we should have renamed VFP to Whidbey! – they would have bought that stuff years ago… Anyhow, its a kind of a miracle • I do not know how YAG made it happen – – – – But they plan to do RAD now And thats what we came from And thats where they came from Having lots of buddies in mgmt. has drawbacks • Microsoft normally eats up addons of any kind – the VFP team was to kind to do so – instead they now eat up VFP itself! – with the advantage that there are no so many framework vendors to really care about at .NET But its getting even worse! • Microsoft found out about community! – they integrate community support into product – INETA, CodeZone, CLIP and other marketing progs – they even adopt FoxWishList • Microsoft found out about even more things – same language for database as for other tiers! – extending reporting features of SQL-Server – Team programming revisited If you are not part of the solution • you are part of the problem – BTW: I wonder why the „Microsoft Nimbus“ never worked for VFP - its like King Midas of Criti… • race for new features after takeover – none of competitor understood what 4GL was meant for and who the customers are • Lots of bad ideas that did not work e.g.: – VFP as middle-tier in VStudio • Reason: It has to fit to current Microsoft overall strategy (one face to the customer) We tried to sell a lot of things… • Createobjectx (Remoting) • Transaction Server – even questions in MCP-test for distributed applications • • • • • • UML-modelling / Rational Rose interface Design Patterns (really sorry to say that) Offline Views Active Desktop Integration with Visual Studio no updates for reportwriter and other basic tools But did it help to fulfill needs? • Running „as fast as the FOX“? – Where is the performance advantage? • Rapid Application Development – but how without a framework as there are pitfalls all over the place for raw box apps – but how three-tiered if there is no natural support for multi-layered architecture – but how at all if there are so many properties, events, methods, commands, functions which are all great but you need to know so much… Customer Profile lost • GPF: General Profiling failure – MVP group is kind of labor union that protects workers and members but not the jobless • GPF+: Great Promises to false audience • … profile description to be inserted here… The doc that can‘t heal himself… • We are proud that we do not deliver what the client asked for but what the client needs • But for ourself we asked for a lot of high-tech features neither we nor our colleagues needed, because – they were trendy in theory – we wanted to be part of the larger group – it was really interesting to play around with them But where are the protagonists? • Steve, Whil and others blame the market and Microsoft and are on Linux • Markus, Rick, Kevin, Rod ao move on to where the Microsoft .NET „innovation“ is • Alf Borrmann, Markus Alt ao move on to Rational Rose, UML and Modelling • Nathalie Mengel ao moved to Java • Still we are a lot of skilled VFP-developers! – but there are not so many theorists any more Where does MS want to go? • As Steve Ballmer said regarding competitors – they are going to „love them to death“ • As Yair Alan Griver said last year – it will take 3-5 years to have all important features of VFP duplicated in .NET • Till then at least I am pretty happy with the new version of Visual FoxPro! – and still do FPW-conversions <eg> But obviously we can learn… • • • • as we are still standing we know maintenance over years we know conversion / transition of old apps we do real world work Advantages of Visual FoxPro There are a lot of reasons to use Visual Foxpro as an integrated development environment for datacentric apps Low Cost DE • No runtime fees for application – Desktop, Network and Internet incl. Webservices • No runtime fees for database engine – Desktop, Multi-user, Internet-applications • No runtime fees for report designer / reports • Low cost for development environment • Various integrated tools included for all areas – Plus various builders and wizards • Install Shield Express for Rollout included Powerfull DE • Powerfull development language (Script) • Powerfull relational database – alternative: Client/Server-Backend-Access • Record- and SQL-data access integrated • Calculatable projects for development of datacentric applications • Fast applications on high performance local table engine • Long support time till 2014 for current version Visual FoxPro Language • Hybrid programming language – Procedural (great for batch jobs) • Self-modifying code or code generation • As scripting language for IIS (Active FoxPro Pages) – Data-aware commands • Compiled commands for local database engine • Even very helpful in Client/Server scenario – Object-based (like Visual Basic) • But Using real Containers instead of SimpleFrame – Object-oriented (with Business Objects) • Subclassing even of ActiveX-controls • But Ignoring theory of total encapsulation Visual FoxPro Database • Hybrid database commands – Fast Xbase table commands (records) – SQL (groups, CURrent Set of recORds) – Mixed use (xbase on cursor), my favorite • Replace all a.val with b.val for seek( a.key, „b“) • „Compiled“ database access – Critic: no strict type checking in language – Vice versa: always database comand strings… • Top tool for ETL-processing – Extraction, transformation, loading for datawarehouse Visual FoxPro Specialties • OOP Special: – – – – Awareness of parent and all other objects Container subclassing incl. ActiveX-Controls Ease of Redirection of subclassing Not Collection-oriented only • PROG Special: – Evaluate, Macro, Excescript, Compile – Definition files are tables – Command window for direct execution Tools built in VFP by VFP-developers • • • • • • • • • FFC - Lisa Slater Nicholls and Ken Levy Class Browser - Ken Levy Component Gallery - Ken Levy Object Browser - Markus Egger Rational Rose Wizard - Markus Egger TaskPane in VFP 8.0 - Ryan Katri and Beth Massi CursorAdapter/DataEnvironment Builders- Doug Hennig SuperClass - Ken Levy - toolbar, then in Class Browser IntelliSense – Calvin Hsia Visual FoxPro 8.0 • • • • • • • • • Taskpane, Toolbox, Code Reference Eventbinding Try-Catch-Errorhandling Visual Subclassing for page, column, …, … Collections CursorAdaptor Delayed Databinding AutoIncrement-Fields Hyperlinks Visual FoxPro 9.0 • • • • • • • • Extended reportwriter with protected mode No limits in SQL-statements and other areas Extended SQL-syntax New data types and data functions Docking and resizing for own forms Graphic functions Enhanced property sheet with builder support Background compilation Visual FoxPro in numbers The VFP-community in numbers • Questionnaire from Microsoft Corp., Redmond • More than 100.000 active developers • About 15.000 active in online communities • 125 Usergroups and 8 conferences • 54% use SQL-Server and/or MSDE • 18% use .NET (compact framework, ASP) Microsoft Marketing How to talk about something that is not really existing for VFP <eg> What could be done instead? 3 times moving is like 1 time burned town • Recommendation 1: Use Access instead as the main desktop database tool from Microsoft • Recommendation 2: Integration with Visual Studio 97, use Visual Studio instead • Recommendation Internet: Use ASP – Do you remember Visual InterDev? – Where are Dashboards & WebParts nowadays? • Recommendation 3: Use Visual Studio.NET – Maybe they should migrate Office first? Why this confusion? • • • • No dedicated product managers on country level But: Allowance to attack other own products Main marketing line „One face to the customer“ Development tools only to support Windowsenvironment and not as a real business unit – No need/allowance to support older versions – No need to earn money with existing customers • Main focus on selling updates / new versions – Role switching every two years, short term numbers are very important Technical advantages • Take-over of new idea and code from other Microsoft products and departments • Development of the product • Support of current versions of Windows • Life cycle support garantue • Support program for communities – Not really for VFP-communities • Still largest supplier in former XBASE-markte Marketing disadvantages • Never ending „FoxPro is dead“ – Low visibility outside of VFP-community • Never ending „We still sell this?“ – Low visibility within Microsoft company • No press work • Non-successfull strategic decisions to fit into most current Microsoft marketing masterplan Now we have a look how it could be! • Online website of a competitor – Visual FoxPro is a superior tool compared to offer – But marketingwise they are looking much better – And address a „completly different market“ HAVE A LOOK NOW • Marketing outside of the VFP-community needed – Real market is not the update-market MS prefers – Market has to be accessed by Third-Party Recommendation • Visual FoxPro 9.0 is a powerfull version each and every VFP-developer should get right away • Short term best results could be achieved with powerfull frameworks • Long term MS will still try to move VFP-community to .NET – even if it is „impossible“ to make all features available Advantages of Frameworks There are a lot of standard features needed for rapid application development, here an example Visual Extend Capabilities • • • • Proven framework with standard functions Rich set to enhance enduser application Builders for Rapid App. Development Standardized Design & Layout – Standard forms for various tasks – Grid-Page for search, Edit-Pages for details • Sourcecode included except Builders • No Business Objects, just 2-Tier-Apps Rapid Application Development • 2 tiers are most often enough for a good and fast application of small to medium size • Customers often are not willing to pay much higher price for maybe lower maintenance cost in the future • Business functions can still be encapsulated in classes which are to be used by the GUI, but these do not have to be clean BOs Rapid Application Conversion • If you do not try to re-invent the wheel conversion of FoxPro/Windows applications with the help of a framework is pretty fast-forward as you can take over tables, reports and batchcode • It is „kind of a re-write“ but not really as you can reuse your knowledge and rebuild the application very fast in VFP Client/Server Example Cursor Adaptor class really helps in building two-tiered applications which are a must nowadays Data Access Theory • Cursor Adaptor – Class: Properties, Methods – VFX Connection Manager • Advantages – – – – Data source can be switched at runtime Access information encrypted Support for DBC Support for SQL-Server • Special: Fat Client data access via Internet – Used by us for e.g. webshop update and registration Sample Application • Venelinas • Fantastic • Pizzas VFPizza • Completly based on Cursor Adaptor – Optimized data access with where-clauses • Runs on DBC and SQL-Server • Uses linked child forms – See VFX parent/child-builder • OnetoMany-Forms with picklist • Treeviewform • Localization at runtime Data Access in practise • • • • • VFX Cursor Adaptor Wizard Create new form with VFX Form wizard Test Upsize Manage Config.vfx New Features for developers • • • • • • • Taskpanes Project Update Wizard Application Builder Cursor Adaptor Wizard Parent/Child Builder Audit Trigger Wizard Project Documenting New application Features: Traders • • • • • • Based on tastrade.dbc Office compatible Print to eMail and fax 1:n-forms with picklists Product activation Product internet update – Customer management – Version management • Remote administration New application Features: Test • • • • • User groups Document container cOnetoManyPageFrame Business graphics Menue Extras Internet Example Powerfull features that should have been integrated into Visual FoxPro a long time ago! Pre-requisites • Create Internet forms with one mouse click • • • • Visual FoxPro 9.0 Visual Extend 9.0 Internet Information Server Active FoxPro Pages – Or Active Extend Server Current results • • • • • • • • Transformation of layout including pages Validations have to be moved manually Support for VFX-forms only Support for DBC / DBF only User-Login XPOpen-Dialog Various standard features Small compatible framework to manage code VFX 9.0: Test now • • • • • • • • 30 days free trial version Example VFPizza Example VFXTraders Example VFXTest VFX-Internet-Wizard included Manual in German/English Newsgroup / forum support Portal with lots of documents Thank You! Visit our websites at http://www.dfpug.de, http://portal.dfpug.de, http://forum.dfpug.de, http://newsletter.dfpug.de, http://devcon.dfpug.de, http://roadshow.dfpug.de, http://www.visualextend.com, http://www.linuxtransfer.de, http://www.visualfoxpro.de