Visual FoxPro adalah bahasa pemrograman berorientasi objek dan prosedural dari Microsoft. Awalnya bahasa pemrograman ini dikenal dengan nama FoxBASE yang diluncurkan oleh Fox Software pada awal 1984. Fox Technologies kemudian bergabung dengan Microsoft pada 1992 sehingga di depan nama FoxBASE ditambahkan awalan “Visual”.
Versi terakhir FoxPro (9.0) dapat berjalan pada sistem operasi Mac OS, DOS, Windows, dan Unix. Visual FoxPro 3.0, versi “Visual” pertama, akhirnya tersingkir karena hanya mendukung Mac OS dan Windows, dan versi berikutnya hanya mendukung Windows saja. Versi terkini Visual FoxPro adalah berdasarkan teknologi COM dan Microsoft telah menyatakan bahawa mereka tidak berniat untuk mencipta versi Microsoft .NET.
Visual FoxPro adalah data-centric berorientasi objek dan bahasa pemrograman prosedural yang diproduksi oleh Microsoft. Hal ini berasal dari FoxPro (awalnya dikenal sebagai FoxBASE) yang dikembangkan oleh Fox Software dimulai pada tahun 1984. Fox Teknologi bergabung dengan Microsoft pada tahun 1992, setelah mana perangkat lunak mengakuisisi fitur lebih lanjut dan awalan “Visual”. Versi terakhir FoxPro (2.6) bekerja pada Mac OS, DOS, Windows, dan Unix: Visual FoxPro 3.0, yang pertama “Visual” versi, mengurangi dukungan platform untuk Mac dan Windows, dan versi adalah Windows-saja. Versi saat ini dari Visual FoxPro adalah berbasis COM dan Microsoft telah menyatakan bahwa mereka tidak berniat untuk membuat Microsoft NET versi..
FoxPro berasal sebagai anggota kelas bahasa sering disebut sebagai bahasa “xBase”, yang memiliki sintaks berdasarkan bahasa pemrograman dBase. Anggota lain dari keluarga bahasa xBase termasuk Clipper dan Recital. (Sebuah sejarah tahun-tahun awal xBase dapat ditemukan di artikel dBase.)
Visual FoxPro, biasa disingkat VFP, terintegrasi dengan mesin database sendiri relasional, yang memperluas kemampuan xBase FoxPro untuk mendukung SQL query dan manipulasi data. Tidak seperti sistem database yang paling manajemen, Visual FoxPro adalah fitur lengkap, bahasa pemrograman dinamis yang tidak memerlukan penggunaan lingkungan tujuan umum pemrograman tambahan. Hal ini dapat digunakan untuk menulis tidak hanya tradisional “klien lemak” aplikasi, tetapi juga aplikasi middleware dan web.
sejarah Terakhir
Pada akhir tahun 2002, itu menunjukkan bahwa Visual FoxPro dapat dijalankan di Linux bawah suite Wine kompatibilitas Windows. Pada tahun 2003, hal ini menyebabkan keluhan oleh Microsoft:. Itu mengklaim bahwa penyebaran kode FoxPro runtime di non-Windows mesin melanggar Perjanjian Lisensi Pengguna Akhir [1]
Pada bulan Desember 2005, VFP masuk ke 20 besar pada indeks TIOBE [2] untuk pertama kalinya. Pada bulan Maret 2007 itu pada posisi 19, sehingga “B” bahasa. Pada Agustus, 2010, VFP (dikombinasikan dengan xBase) berada pada posisi 25.
Pada bulan Maret 2007, Microsoft mengumumkan bahwa tidak akan ada VFP 10 [3], sehingga membuat VFP9 (dirilis untuk manufaktur pada tanggal 17 Desember 2004) komersial terakhir VFP rilis dari Microsoft. Dukungan dari Versi 9 sedang berlangsung dengan paket layanan yang dirilis 8 Desember 2005 dan 11 Oktober 2007.
Pada saat akhir pengumuman hidup, bekerja pada rilis berikutnya CODEC Sedna (dinamai planet kerdil baru ditemukan) yang dibangun di atas basis kode VFP9 sudah dimulai. “Sedna” adalah seperangkat add-ons untuk VFP 9.0 komponen xBase untuk mendukung sejumlah skenario interoperabilitas dengan berbagai teknologi Microsoft termasuk SQL, Server 2005. NET Framework, Windows Vista, Office 2007, Windows Cari dan Team Foundation Server (TFS ). Microsoft merilis Sedna bawah lisensi sumber Bersama di situs CodePlex. Microsoft telah menjelaskan bahwa inti VFP masih akan tetap closed source. Sedna dirilis pada 25 Januari, 2008 [4]. Pada Maret 2008, semua komponen xBase dari VFP 9 SP2 (termasuk Sedna) yang tersedia untuk pembangunan masyarakat di CodePlex.
Pada akhir Maret 2007 kampanye akar rumput dimulai oleh komunitas FoxPro berbahasa Spanyol di MasFoxPro [5] (“MoreFoxPro” dalam bahasa Inggris) untuk menandatangani sebuah petisi kepada Microsoft untuk terus mengupdate Visual FoxPro atau melepaskan ke masyarakat sebagai Open Source. Pada April 3, 2007 gerakan itu dicatat oleh pers teknis [6]
Juga pada tanggal 3 April 2007 Microsoft menanggapi permintaan pemohon dengan pernyataan dari Alan Griver:
“Kami sangat menyadari masyarakat FoxPro dan yang memainkan peranan besar dalam apa yang kita diumumkan pada 13 Maret Tidak pernah keputusan yang mudah untuk mengumumkan bahwa kita tidak akan merilis versi lain dari produk dan. Itu salah satu yang kami anggap sangat hati-hati.
“Kami tidak mengumumkan akhir FoxPro: Jelas, aplikasi FoxPro akan terus bekerja Dengan beberapa perkiraan internal kami, ada lebih banyak aplikasi berjalan dalam FoxPro 2.6 daripada ada di VFP dan FoxPro 2.6 belum didukung di banyak. Visual FoxPro tahun. 9 akan didukung oleh Microsoft sampai tahun 2015.
“Untuk Microsoft untuk terus berkembang basis FoxPro, kita perlu melihat di menciptakan lingkungan pengembangan 64-bit dan yang akan melibatkan menulis ulang hampir lengkap dari produk inti. Kami juga telah diinvestasikan dalam membuat database dengan SQL Server scalable , termasuk SQL Server Express Edition yang tersedia secara bebas. Sejauh membentuk kemitraan dengan pihak ketiga yang bersangkutan, kami telah mendengar dari sejumlah pelanggan FoxPro besar bahwa ini akan membuat tidak mungkin bagi mereka untuk terus menggunakan FoxPro karena tidak lagi dari vendor disetujui. Kami merasa bahwa menempatkan lingkungan menjadi open source pada CodePlex, yang menyeimbangkan kebutuhan baik masyarakat dan pelanggan besar, adalah jalan terbaik ke depan. ”
Code samples
The Foxpro language contains commands quite similar to other programming languages such as Basic. Loops include do, if, while, for, else commands in a usage easily understood by anyone familiar with other programming languages. Commands take the form of “command” “endcommand”
Some basic syntax samples:
FOR i=1 to 10 x = x + 6.5 ENDFOR IF i=25
i = i + 1 ELSE i = i + 3 ENDIF x=1 DO WHILE x < 50
x= x + 1 ENDDO
i = i + 1 ELSE i = i + 3 ENDIF x=1 DO WHILE x < 50
x= x + 1 ENDDO
The language also has extensive database manipulation and indexing commands. The “help” index of commands in VFP 9 has several hundred commands and functions described. The examples below show how to code the creation and indexing of tables, however VFP has table and database builder screens which create the tables and indexes without making you write code.
Hello World example:
MESSAGEBOX(“Hello World”)
[edit] Object
Output of the Hello World program.
Output of the Hello World program.
loForm = CREATEOBJECT(“HiForm”) loForm.Show(1)
DEFINE CLASS HiForm AS Form
AutoCenter = .T. Caption = “Hello, World”
ADD OBJECT lblHi as Label WITH ;
Caption = “Hello, World!” ENDDEFINE
DEFINE CLASS HiForm AS Form
AutoCenter = .T. Caption = “Hello, World”
ADD OBJECT lblHi as Label WITH ;
Caption = “Hello, World!” ENDDEFINE
loMine = CREATEOBJECT(“MyClass”) ? loMine.cProp1
&& This will work.
(Double-ampersand marks an end-of-line comment) ?
loMine.cProp2 && Program Error:
Property CPROP2 is not found. ? loMine.MyMethod1()
&& This will work. ?
loMine.MyMethod2()
&& Program Error: Property MYMETHOD2 is not found.
DEFINE CLASS MyClass AS Custom cProp1 = “My Property”
&& This is a public property HIDDEN cProp2
&& This is a private
(hidden) property PROCEDURE Init()
&& Class constructor
This.cProp2 = “This is a hidden property.” ENDPROC
PROCEDURE MyMethod1()
* This is a public method, calling a hidden method
that returns
* the value of a hidden property. RETURN This.MyMethod2()
ENDPROC
HIDDEN PROCEDURE MyMethod2()
&& This is a private (hidden) method
RETURN This.cProp2 ENDPROC ENDDEFINE
&& This will work.
(Double-ampersand marks an end-of-line comment) ?
loMine.cProp2 && Program Error:
Property CPROP2 is not found. ? loMine.MyMethod1()
&& This will work. ?
loMine.MyMethod2()
&& Program Error: Property MYMETHOD2 is not found.
DEFINE CLASS MyClass AS Custom cProp1 = “My Property”
&& This is a public property HIDDEN cProp2
&& This is a private
(hidden) property PROCEDURE Init()
&& Class constructor
This.cProp2 = “This is a hidden property.” ENDPROC
PROCEDURE MyMethod1()
* This is a public method, calling a hidden method
that returns
* the value of a hidden property. RETURN This.MyMethod2()
ENDPROC
HIDDEN PROCEDURE MyMethod2()
&& This is a private (hidden) method
RETURN This.cProp2 ENDPROC ENDDEFINE
[edit] Data handling
Output of the Data handling program.
Output of the Data handling program.
&& Create a table CREATE TABLE randData (iData I)
&& Populate with random data using xBase and SQL DML
commands FOR i = 1 TO 50
APPEND BLANK REPLACE iData WITH (RAND() * 100)
INSERT INTO randData (iData) VALUES (RAND() * 100) ENDFOR
&& Place a structural index on the data INDEX ON iData
TAG iData CLOSE ALL
&& Display ordered data using xBase-style commands
USE randData SET ORDER TO iData GO
TOP LIST NEXT 10 && First 10 GO BOTTOM SKIP -10 LIST REST
&& Last 10 CLOSE ALL && Browse ordered data using SQL
DML commands SELECT * ;
FROM randData ; ORDER BY iData DESCENDING
&& Populate with random data using xBase and SQL DML
commands FOR i = 1 TO 50
APPEND BLANK REPLACE iData WITH (RAND() * 100)
INSERT INTO randData (iData) VALUES (RAND() * 100) ENDFOR
&& Place a structural index on the data INDEX ON iData
TAG iData CLOSE ALL
&& Display ordered data using xBase-style commands
USE randData SET ORDER TO iData GO
TOP LIST NEXT 10 && First 10 GO BOTTOM SKIP -10 LIST REST
&& Last 10 CLOSE ALL && Browse ordered data using SQL
DML commands SELECT * ;
FROM randData ; ORDER BY iData DESCENDING
[edit] ODBC access using SQL passthrough
&& Connect to an ODBC data source LOCAL nHnd nHnd
= SQLCONNECT
(“ODBCDSN”, “user”, “pwd”)
&& Execute a SQL command LOCAL nResult nResult = SQLEXEC
(nHnd, “USE master”) IF nResult < 0 MESSAGEBOX
(“MASTER database does not exist!”) RETURN ENDIF
&& Retrieve data from the remote server and stores it in
&& a local data cursor nResult = SQLEXEC
(nHnd, “SELECT * FROM authors”, “QAUTHORS”)
&& Update a record in a remote table using parameters
PRIVATE cAuthorID, cAuthorName
cAuthorID = “1001” cAuthorName = “New name” nResult = SQLEXEC
(nHnd, “UPDATE authors SET auth_name =
?cAuthorName WHERE auth_id = ?cAuthorID”)
&& Close the connection SQLDISCONNECT(nHnd)
= SQLCONNECT
(“ODBCDSN”, “user”, “pwd”)
&& Execute a SQL command LOCAL nResult nResult = SQLEXEC
(nHnd, “USE master”) IF nResult < 0 MESSAGEBOX
(“MASTER database does not exist!”) RETURN ENDIF
&& Retrieve data from the remote server and stores it in
&& a local data cursor nResult = SQLEXEC
(nHnd, “SELECT * FROM authors”, “QAUTHORS”)
&& Update a record in a remote table using parameters
PRIVATE cAuthorID, cAuthorName
cAuthorID = “1001” cAuthorName = “New name” nResult = SQLEXEC
(nHnd, “UPDATE authors SET auth_name =
?cAuthorName WHERE auth_id = ?cAuthorID”)
&& Close the connection SQLDISCONNECT(nHnd)
Tidak ada komentar:
Posting Komentar