using visual foxpro as rad tool - why not?

11

Click here to load reader

Upload: feri-sulianta

Post on 26-May-2015

797 views

Category:

Education


2 download

DESCRIPTION

Vfp seminar support foxpro community 20 dec 2006 - feri suliantaUsing Visual Foxpro as RAD Tool - Why Not?

TRANSCRIPT

Page 1: Using Visual Foxpro as RAD Tool - Why Not?

1

Seminars – Wednesday 20 December 2006

Using Visual Foxpro as Software Developer Tool

… Why Not ?

Feri Sulianta

For Educational purpose Only & Support Foxpro Community

Fox History

Foxpro History

Fox Software was a small company started by Dave Fulton and a bunch of his graduate students in Ohio. They figured they could write a better dBase than dBase. And they convinced other people they had done it, by going to a dBase convention and asking people to run their own application under FoxBase environment, when the code immediately ran faster. No code changes, just better technology underlying the same Xbase language features.

Dr Dave put out a Mac Version. He’d resolved to create New FoxBase – which became Foxpro 1.0 – which is very very compatible with MAC

Foxpro 1.0 kept Fox’s deserved reputation for running quickly

THE XBaseTHE XBase

Foxpro History

FoxPro is a text-based procedurally-oriented programming language and DBMS, originally published by Fox Software and later by Microsoft, for MS-DOS, MS Windows and UNIXAlthough FoxPro is a Database Management System (DBMS) and it does support relationships between tables, it is not considered a Relational Database Management System (RDBMS), lacking transactional processing.The final published release of FoxPro was 2.6, after which further development was limited to MS Windows and the name was changed to Visual FoxPro.Although no longer sold or supported by Microsoft, there is still an active worldwide community of FoxPro users and programmers. FoxPro 2.6 for UNIX (FPU26) has even been successfully installed on Linux and FreeBSD using the Intel Binary Compatibility Standard (ibcs2) support library.

Foxpro History Foxpro History

Page 2: Using Visual Foxpro as RAD Tool - Why Not?

2

Foxpro History (1.01)

FoxPro 1.01 DOS Desktop The Command Windows

Foxpro 1.01

• Better environment & technology to make application run faster

• Dbase Clone • Enhanced of FoxBase• Foxpro Dos was born from FoxBase (MAC OS

compatibility) – Work dan Look • Other similarity with Dbase exp: Report Writer

Foxpro History (2.0)

FoxPro 2.0 DOS Desktop The Rushmore

Foxpro 2.0

• Painted Screen and Menu• Project manager – which accommodate to focus on

application design (the way file supposed to work together)

• Rushmore Technology – Optimize data access through new index types

• SQL work enhancement• Fox keep breaking the ground in speed/efficiency

dept

Foxpro History (2.5)

FoxPro 2.5 DOS Desktop With International Language Support

Foxpro History (2.6)

FoxPro 2.6 DOS Desktop Wizard + Dbase Compatible

Page 3: Using Visual Foxpro as RAD Tool - Why Not?

3

Foxpro History (Win 2.6)

FoxPro Windows 2.6 About Screen No worthy enhancement

Visual Foxpro

Foxpro GOING VISUAL ….

Visual Foxpro History (3)

Visual FoxPro 3.0 Splash Screen Database Container + OOL

Visual Foxpro History (5)

Visual FoxPro 5.0 Splash Screen Future of Fox?

Visual Foxpro History (6)

Visual FoxPro 6.0 About Screen

Visual FoxPro 6.0 About Screen Visual Studio Package

Visual Foxpro History (7)

Visual FoxPro 7.0 Splash Screen Web Application, The XML (not RDBMS)

Page 4: Using Visual Foxpro as RAD Tool - Why Not?

4

Visual Foxpro History Visual Foxpro History

Visual Foxpro 7.0

• Visual FoxPro 7.0 is the latest version of Microsoft's object-oriented relational database management system that makes it possible for you to create data-centric applications for all environments, from the desktop to the Web.

• Visual FoxPro 7.0 provides powerful data-handling capabilities

• rapid application development (RAD) tools for maximum productivity, and the flexibility needed to build all types of database solutions.

Visual Foxpro 7.0• Visual FoxPro 7.0 contains many new features for increased productivity,

including extensible and customizable Microsoft IntelliSense® technology• New tools, such as the Object Browser and Task List Manager• Developers can also subscribe to and create publishable SOAP-based XML Web

services and utilize active accessibility support, providing application compatibility with third-party accessibility tools, such as voice-recognition devices and screen readers.

• A new Visual FoxPro OLE DB provider makes data easily accessible to applications that aren't based on Visual FoxPro.

• Visual FoxPro 7.0 includes integrated support for exporting data to XML and importing XML data directly into FoxPro tables.

• Additionally, more than 50 commands, functions, and system variables have been enhanced or added to Visual FoxPro, including support for binding events to other COM components. Visual FoxPro 7.0 also implements interfacing for improved interoperability with various COM components and products, such as Microsoft BizTalk™ Server, and full support for creating and consuming XML Web services.

Visual Foxpro 7.0• Microsoft SQL Server™ 2000 Desktop Engine (MSDE 2000) is included with

Visual FoxPro 7.0, so developers can build shared solutions that are compatible with Microsoft SQL Server 2000 and can migrate them directly to SQL Server without changing code.

• A new deployment tool, which allows the creation of fully customized application setups using a special version of InstallShield Express, is also included in Visual FoxPro 7.0.

• Visual FoxPro 7.0 is capable of exchanging data with applications created in a Visual Studio .NET language through the use of XMLUpdateGrams.

• More importantly, Visual FoxPro 7.0 is capable of creating XML Web services that can be consumed by XML Web service clients of Visual Studio .NET, and it can, in turn, consume XML Web services created with Visual Studio .NET (or any other standards-based Web service).

• Upgrading to Visual FoxPro 7.0 is easy and rewardingand is 100-percent compatible with Visual FoxPro 6.0.

• Full development versions of Visual FoxPro 7.0 are available in English, Spanish, and German. Royalty-free, distributable, runtime libraries are available to support English, Spanish, German, French, Czech, Russian, and Chinese (Simplified and Traditional).

Visual Foxpro History (8 Beta)

Visual FoxPro 8.0 (beta version) Splash Screen

Page 5: Using Visual Foxpro as RAD Tool - Why Not?

5

Visual Foxpro History (8)

Visual FoxPro 8.0 Splash Screen

Visual FoxPro 8.0 Splash Screen More Web

Visual Foxpro History (9)

Visual FoxPro 9.0 with Good Great Enhancement Many More Enhancement Exp: Report Designer

The Application Framework

• What is a framework?• The overview of the architecture of

the framework• Strategies for maximizing

maintainability

The Framework In Detail

• The Application Manager• The form class• The startup program• Building an application using the

framework• The form• The Menu

Visual Foxpro Environment Visual Foxpro Environment

IntelliSense Manager Window

Page 6: Using Visual Foxpro as RAD Tool - Why Not?

6

Simple Base Classes

Label, Textbox, EditBox, CheckBox,Option Button, Option GroupCommand Button, Command GroupSpinner, Image, Line, Shape, TimerContainer, and Separator

Complex Base Classes

ComboBox, ListBox, and GridsPageFrames Custom, Container, and ControlForm, Formset, and Toolbar

Visual Foxpro Environment Visual Foxpro Environment

The Break Point – Programming Utulities

Visual FoxPro Database Container• Data dictionary• Relationships• Field level domains (Field Rule)• Table level domains (Table Rule)• Referential Integrity• Stored Procedures• DbGetProp() and DbSetProp()

Visual Foxpro Database Environment

DataBase Container = Database Designer . For Easy

Page 7: Using Visual Foxpro as RAD Tool - Why Not?

7

VFP Ability

TOOLS FOR RAD(Builder & Wizard)

Visual Foxpro Environment

Wizards• Application Wizard• Cross-Tab Wizard• Database Wizard• Documenting Wizard• Form Wizard• Graph Wizard• Import Wizard• Label Wizard• Local View Wizard• Mail Merge Wizard• One-To-Many Form Wizard• One-To-Many Report Wizard

• PivotTable Wizard• Query Wizard• Remote View Wizard• Report Wizard• Sample Wizard• SQL Upsizing Wizard• Table Wizard• Web Publishing Wizard

Using Builders The Visual Foxpro Builders

– Make it easier to setup the complex controls

Building your own builders– Builder.dbf and Builder.app– ASELOBJ()– Using the special Builder property of a

class

Builders• Application Builder• AutoFormat Builder• Combo Box Builder• Command Group Builder• Edit Box Builder• Form Builder• Grid Builder• List Box Builder• Option Group Builder• Referential Integrity Builder• Text Box Builder

Builders are tools that aid in setting properties of controls on a form.Unlike wizards, builders are reentrant, so you can reopen a builder on a particular control repeatedly.

Goals for Prototyping

• Reducing Development Time– By building a quick prototype, you can refine your

application's design and local architecture quickly and easily, without having to access the remote server to rebuild server tables and databases

• Decreasing Development Costs While Increasing Customer Satisfaction– can easily demonstrate a working model of your

application to the end user early in the development cycle

• Contributing to Successful Implementation– provide the prototyped application as a demonstration for

your users, like testing and trained using prototype

C/S Appl, Local to Remote View

Page 8: Using Visual Foxpro as RAD Tool - Why Not?

8

VFP as RDBMS & P Language

VFP COMPARISON

Database Comparision

Microsoft Access• Aimed at the desktop, power user. • Designed for ease of use • Not specifically as a programmer

development environment though many complex business applications

• A maximum concurrent of 10-20 users is often quoted.

http://abc.ru/pic/m/microsoft.access.jpg

Database Comparision

Microsoft Foxpro• A developers tool for small to medium

business applications. • Can handle very large volumes of data

efficiently• Enables to develop solutions very quickly as it

allows reuse of standard components • Has a data centric language (meaning it has

built in database commands) which considerable reduces amount programming

http://softwareelectronics.com/adds/gif/foxpro9.jpg

Database Comparision

Microsoft SQL Server

• Does not have its own user interface and runs only on a server.

• It is used to provide the server end of a Client-Server application.

• SQL Server applications typically require higher investment in programming but are considered to provide a higher level of reliability and better suited to very high volumes of transactions.

http://www.microsoft.com

VFP vs Access• Microsoft Access is the most broadly used and

easiest-to-learn database. • If you are new to databases, or if you want an

interactive product with plenty of convenience, then choose Microsoft Access.

• Visual FoxPro is a powerful rapid application development (RAD) tool for creating relational database applications.

• If you are a database developer who builds applications for a living and you want ultimate speed and power, then choose Visual FoxPro

VFP vs SQL Server

VFP as Data Centric Language ?

Page 9: Using Visual Foxpro as RAD Tool - Why Not?

9

Database Comparision

MULTI USER APPLICATION

Multi-user Issues

• What is the multi-user problem?• Two strategies (Philosophies)

– Optimistic• It is unlikely that there will be a problem

when I try to save.

– Pessimistic• It is very likely there will be a problem when I

try to save.

Data Buffering

• How did we do this before?• What’s new and different now?• Row versus Table buffering• Pessimistic versus Optimistic buffering• Choosing the correct buffering mode

Technical …

Setting the Buffering Mode

–CursorSetProp() (CursorGetProp())–Using a Cursor’s BufferModeOverride

property

Technical …

Saving Buffered Edits

• TableUpdate()• TableRevert()• GetFldState()• GetNextModified()

Technical …

Transaction Processing

The all or none approach

BEGIN TRANSACTION, END TRANSACTION, and ROLLBACK

Resolving conflicts using CURVAL() and OLDVAL()

Technical …

Page 10: Using Visual Foxpro as RAD Tool - Why Not?

10

Native Programming

Visual Foxpro Programming is absolutely compaltible with older version such as : Foxpro

VFP Native programming language is easy to use and can access database information in the fast and simple way

Can be Choosen + Substitute

Database Comparision

CLIENT/SERVER APPLICATION

Client/Server - Is It For You?

• When does Client/Server make sense?– Security– Scalability– Central Control of Data

Remote Data Sources

• Setting up data sources under Windows (95, NT,98)

• Connections in Visual FoxPro• Using The ODBC• Using Remote Views• Using SQL Passthrough functions

Designing Client/Server Applications

• User Interface Design– No more BROWSE of the customer table

• Awareness that your code does not have absolute control over the data updates.

Technical …

VFP Community

VFP Communities Support …

Page 11: Using Visual Foxpro as RAD Tool - Why Not?

11

Foxpro Community - USA • Abri Technologies• AOL FoxPro Resources• Cetus Links• Compuserve• DHPon:Fox• FoxDev• FoxFolk• FoxForum• FoxPro Bookmark• FoxShare• FoxStuff• FoxTalk

• FoxTools• FoxWeb Forum• FoxWorld• Google• Neil's FoxPro Resources• ProFox• Tek-Tips• The FoxPro I/O Address• VFP Developers Association• Virtual FoxPro User Group• Visual FoxPro Advisor Forum• West-Wind Message Board• West-Wind Knowledge Base Wiki

Foxpro Community - Europe • http://www.foxforum.net• http://portal.dfpug.de/• http://www.foxuser.net• http://www.prolib.de/foxpro• http://www.foxite.com• http://www.fox4um.com

And manymore in netherland, portugal,spain,germany,turkey,etc

• http://www.viafox.nl• http://www.foxitaly.com• http://www.gpuf.org• http://www.foxyClasses.com

Foxpro Community - Other

• Fox Wikihttp://www.fox. wikis.com

• Universal Threadhttp://www.universalthread.com

• WWW.FOX-ID.COM

Additional

What Steve Balmer says ? Ms CEO (About VFP 7.0)

What Eric Rudder says? – Senior VP Dev (About VFP 8.0)

What Ken Levi says ? About VFP 9.0 Enhancement + Demo

Source• http://www.foxprohistory.org• http://www.wikipedia.org• http://msdn.microsoft.com/vfoxpro/• http://www.pssuk.com/DatabasesCompared.htm• http://www.pssuk.com/foxpro.htm• Others which can not be put on the list

For Educational purpose Only & Support Foxpro Community