Görsel FoxPro - Visual FoxPro
Geliştirici(ler) | Microsoft |
---|---|
Son sürüm | v9.0 SP2 / 16 Ekim 2007
|
İşletim sistemi | Windows 2000 , Windows XP ve Windows Server 2003 |
platformu | IA-32 |
Uygun |
IDE: İngilizce, Almanca, İspanyolca Çalışma Zamanı: Yukarıda artı Fransızca, Çince, Rusça, Çekçe, Korece |
Tür | Entegre geliştirme ortamı , programlama dili |
Lisans | Ticari tescilli yazılım |
İnternet sitesi | msdn |
Visual FoxPro , daha sonra nesne yönelimli hale gelen bir Microsoft veri merkezli prosedürel programlama diliydi .
Bu türetilmiştir FoxPro 1984. Fox Teknolojileri, 1992 yılında Microsoft ile birleşti, bundan sonra yazılım "Görsel" ileri özellikleri ve öneki edinilen başlayarak Fox Software tarafından geliştirilen (aslen FoxBASE olarak bilinir). FoxPro 2.6 , Mac OS , DOS , Windows ve Unix üzerinde çalıştı .
İlk "Görsel" sürüm olan Visual FoxPro 3.0, yalnızca Mac ve Windows'a azaltılmış platform desteği ve sonraki sürümler 5, 6, 7, 8 ve 9 yalnızca Windows'du. Visual FoxPro'nun geçerli sürümü COM tabanlıdır ve Microsoft, bir Microsoft .NET sürümü oluşturmayı düşünmediklerini belirtmiştir .
Aralık 2004'te yayınlanan ve Ekim 2007'de SP2 yaması ile güncellenen Sürüm 9.0, ürünün son sürümüydü.
Tarih
Visual FoxPro , dBase programlama dilini temel alan sözdizimine sahip, yaygın olarak " xBase " dilleri olarak adlandırılan diller sınıfının bir üyesi olarak ortaya çıkmıştır . xBase dil ailesinin diğer üyeleri arasında Clipper ve Recital (veritabanı) bulunur.
Genellikle VFP olarak kısaltılan Visual FoxPro, SQL sorgusu ve veri işlemeyi desteklemek için FoxPro'nun xBase yeteneklerini genişleten kendi ilişkisel veritabanı motoruyla sıkı bir şekilde tümleştirilmiştir . Çoğu veritabanı yönetim sisteminin aksine , Visual FoxPro ek bir genel amaçlı programlama ortamının kullanılmasını gerektirmeyen tam özellikli, dinamik bir programlama dilidir . Sadece geleneksel " fat client " uygulamalarını değil, aynı zamanda ara katman yazılımlarını ve web uygulamalarını yazmak için de kullanılabilir .
2002'nin sonlarında, Visual FoxPro'nun Linux üzerinde Wine Windows uyumluluk paketi altında çalışabileceği gösterildi . 2003'te bu, Microsoft'un şikayetlerine yol açtı: FoxPro çalışma zamanı kodunun Windows olmayan makinelere dağıtımının Son Kullanıcı Lisans Sözleşmesini ihlal ettiği iddia edildi .
Visual FoxPro, TIOBE Programlama Topluluğu İndeksi tarafından ölçüldüğü üzere, popülaritesinde hızlı bir yükseliş ve düşüş yaşadı . Aralık 2005'te VFP ilk kez ilk 20'ye girdi. Haziran 2006'da 12. sıraya yükseldi ve (o sırada) bir "B" dili haline geldi. Ekim 2019 itibariyle Visual FoxPro, TIOBE endeksinde 51. sırada yer almaktadır.
Mart 2007'de Microsoft, VFP 10 olmayacağını duyurdu ve böylece VFP9'u (17 Aralık 2004'te üretime sunuldu) Microsoft'un son ticari VFP sürümü haline getirdi. Microsoft Visual FoxPro 9.0 için Service Pack 2 16 Ekim 2007'de yayımlandı. Sürüm 9'un desteği 13 Ocak 2015'te sona erdi.
Ömrün sona erdiği duyurusunda, VFP9 kod tabanının üzerine inşa edilen Sedna kod adlı bir sonraki sürüm ( yakın zamanda keşfedilen bir cüce gezegenden adını almıştır ) üzerindeki çalışmalar çoktan başlamıştı. "Sedna", SQL Server 2005, .NET Framework , Windows Vista, Office 2007, Windows Search ve Team Foundation Server (TFS) dahil olmak üzere çeşitli Microsoft teknolojileriyle bir dizi birlikte çalışabilirlik senaryosunu desteklemek için xBase bileşenlerinin VFP 9.0'ına bir dizi eklentidir. ). Microsoft , Sedna'yı CodePlex sitesinde Paylaşılan kaynak lisansı altında yayınladı . Microsoft, VFP çekirdeğinin hala kapalı kaynak olarak kalacağını açıkladı. Sedna 25 Ocak 2008'de piyasaya sürüldü. Mart 2008 itibariyle, VFP 9 SP2'nin (Sedna dahil) tüm xBase bileşenleri CodePlex'te topluluk geliştirme için mevcuttu.
Mart 2007'nin sonlarında , MásFoxPro'daki ( İngilizce "MoreFoxPro" ) İspanyolca konuşan FoxPro topluluğu tarafından, Visual FoxPro'yu güncellemeye devam etmek veya topluluğa açık kaynak olarak yayınlamak için Microsoft'a bir dilekçe imzalamak için bir taban kampanyası başlatıldı . 3 Nisan 2007'de hareket teknik basın tarafından kaydedildi.
3 Nisan 2007'de Microsoft, dilekçeye Alan Griver'ın şu ifadesiyle yanıt verdi:
"FoxPro topluluğunun çok farkındayız ve bu 13 Mart'ta duyurduğumuzda büyük bir rol oynadı. Bir ürünün başka bir sürümünü piyasaya sürmeyeceğimizi duyurmak asla kolay bir karar değil ve bunu göz önünde bulunduruyoruz. çok dikkatli.
"FoxPro'nun sonunu ilan etmiyoruz: Açıkçası, FoxPro uygulamaları çalışmaya devam edecek. Bazı iç tahminlerimize göre, FoxPro 2.6'da VFP'de olduğundan daha fazla uygulama çalışıyor ve FoxPro 2.6 pek çok uygulamada desteklenmiyor. Visual FoxPro 9, 2015 yılına kadar Microsoft tarafından desteklenecektir.
"Microsoft'un FoxPro tabanını geliştirmeye devam etmesi için, 64 bitlik bir geliştirme ortamı yaratmaya bakmamız gerekecek ve bu, çekirdek ürünün neredeyse tamamen yeniden yazılmasını içerecek. Ayrıca SQL Server ile ölçeklenebilir bir veritabanı oluşturmaya yatırım yaptık. Ücretsiz olarak temin edilebilen SQL Server Express Edition da dahil olmak üzere.Üçüncü bir tarafla ortaklık kurma söz konusu olduğunda, çok sayıda büyük FoxPro müşterisinden, bunun FoxPro'yu kullanmaya devam etmelerini imkansız hale getireceğini duyduk. Artık onaylı bir satıcıdan olmayacaktı. Hem topluluğun hem de büyük müşterilerin ihtiyaçlarını dengeleyen CodePlex'te ortamı açık kaynak haline getirmenin ileriye dönük en iyi yol olduğunu hissettik ."
Sürüm Zaman Çizelgesi
Listelenen tüm sürümler Windows içindir.
Sürüm | Yayın tarihi |
---|---|
Görsel FoxPro 3.0 | Haziran 1995 |
Görsel FoxPro 5.0 | Ekim 1996 |
Görsel FoxPro 5.0a | Ekim 1997 |
Görsel FoxPro 6.0 | 18 Mayıs 1998 |
Görsel FoxPro 7.0 | 27 Haziran 2001 |
Görsel FoxPro 8.0 | 1 Şubat 2003 |
Visual FoxPro 8.0 Hizmet Paketi 1 | 7 Ekim 2003 |
Görsel FoxPro 9 | 20 Aralık 2004 |
Visual FoxPro 9 Hizmet Paketi 1 | 8 Aralık 2005 |
Visual FoxPro 9 Hizmet Paketi 2 | 16 Ekim 2007 |
Kod örnekleri
FoxPro dili, Basic gibi diğer programlama dillerine oldukça benzer komutlar içerir.
Bazı temel sözdizimi örnekleri:
FOR i = 1 to 10
x = x + 6.5
NEXT && Instead of "NEXT" can also use "ENDFOR"
IF i = 25
i = i + 1
ELSE
i = i + 3
ENDIF
x = 1
DO WHILE x < 50
x = x + 1
ENDDO
x = 1
DO WHILE .T.
x = x + 1
IF x < 50
LOOP
ELSE
EXIT
ENDIF
ENDDO
nMonth = MONTH(DATE())
DO CASE
CASE nMonth <= 3
MESSAGEBOX("Q1")
CASE nMonth <= 6
MESSAGEBOX("Q2")
CASE nMonth <= 9
MESSAGEBOX("Q3")
OTHERWISE
MESSAGEBOX("Q4")
ENDCASE
FOR EACH oControl IN THISFORM.Controls
MESSAGEBOX(oControl.Name)
ENDFOR
f = Factorial(10)
FUNCTION Factorial(n)
LOCAL i, r
r = 1
FOR i = n TO 1 STEP -1
r = r * i
NEXT && Can also use "ENDFOR" here instead of "NEXT"
RETURN r
ENDFUNC
Merhaba Dünya örnekleri:
* Output at the current location
? "Hello World"
* Output at a specified location
@ 1,1 SAY "Hello World"
* Output in a separate window, cleared on input
WAIT WINDOW "Hello World"
* Output in a standard dialog box, cleared on OK
MESSAGEBOX("Hello World")
Nesne
* Output in a defined window
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
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 because it's hidden externally.
? loMine.MyMethod1() && This will work.
? loMine.MyMethod2() && Program Error: Property MYMETHOD2 is not found because it's hidden externally.
DEFINE CLASS MyClass AS Custom
cProp1 = "My Property" && This is a public property
HIDDEN cProp2 && This is a private (hidden) property
dProp3 = {} && Another public property
PROCEDURE Init() && Class constructor
This.cProp2 = "This is a hidden property."
PROCEDURE dProp3_Access && Property Getter
RETURN DATE()
PROCEDURE dProp3_Assign(vNewVal) && Property Setter uses the "_assign" tag on the property name
IF VARTYPE(vNewVal) = "D"
THIS.dProp3 = vNewVal
ENDIF
PROCEDURE MyMethod1()
* This is a public method, calling a hidden method that returns
* the value of a hidden property.
RETURN This.MyMethod2()
HIDDEN PROCEDURE MyMethod2() && This is a private (hidden) method
RETURN This.cProp2
ENDDEFINE
- VFP, IDE'de bir Özellik Sayfası ( Yöntemler dahil ) aracılığıyla erişilen önceden tanımlanmış sınıfların ve görsel nesnelerin kapsamlı bir kitaplığına sahiptir , bu nedenle yukarıdaki tanımlayıcı sınıflar ve nesneler gibi kodlar yalnızca özel amaçlar ve büyük sistemlerin çerçevesi için gereklidir .
Veri işleme
Dil ayrıca kapsamlı veritabanı işleme ve indeksleme komutlarına sahiptir. VFP 9'daki komutların "yardım" dizini, açıklanan birkaç yüz komut ve işleve sahiptir. Aşağıdaki örnekler, tabloların oluşturulmasını ve indekslenmesini nasıl kodlayacağınızı gösterir, ancak VFP, tabloları ve indeksleri size kod yazmadan yaratan tablo ve veritabanı oluşturucu ekranlarına sahiptir.
* 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 DATA && Do not close open libraries etc
* Display ordered data using xBase-style commands
USE randData
SET ORDER TO iData
LOCATE && In place of GO TOP. Enforces use of index to find TOP
LIST NEXT 10 && First 10
GO BOTTOM
SKIP -10
LIST REST && Last 10
CLOSE DATA
* Browse ordered data using SQL DML commands
SELECT * ;
FROM randData ;
ORDER BY iData DESCENDING
SQL geçidi kullanarak ODBC erişimi
PRIVATE cAuthorID, cAuthorName && Private variables supplant any previous global or private variable of the same name
LOCAL nHnd, nResult && Local variables are visible only here
* Connect to an ODBC data source
nHnd = SQLCONNECT ("ODBCDSN", "user", "pwd")
* Enter a loop so we can exit to the close connection code if there's an error
DO WHILE .T.
* Execute a SQL command
nResult = SQLEXEC (nHnd, "USE master")
IF nResult < 0
MESSAGEBOX ("MASTER database does not exist!")
EXIT && To close the connection
ENDIF
* Retrieve data from the remote server and stores it in a local data cursor
nResult = SQLEXEC (nHnd, "SELECT * FROM authors", "QAUTHORS")
IF nResult < 0
MESSAGEBOX ("Unable to execute remote SQL SELECT command!")
EXIT && To close the connection
ENDIF
* Update a record in a remote table using parameters
cAuthorID = "1001"
cAuthorName = "New name"
nResult = SQLEXEC (nHnd, "UPDATE authors SET auth_name = ?cAuthorName WHERE auth_id = ?cAuthorID")
IF nResult < 0
MESSAGEBOX ("Unable to execute remote SQL UPDATE command!")
EXIT && To close the connection
ENDIF
* If we get here, we have retrieved everything successfully
EXIT && Exit unconditionally
ENDDO
* Close the connection
SQLDISCONNECT(nHnd)
Uygulamalar
Visual FoxPro'da yazılmış bazı önemli uygulamalar şunları içerir:
- PWCT : yazılım geliştirme için ücretsiz açık kaynaklı görsel programlama dili
Ayrıca bakınız
Referanslar
Dış bağlantılar
Microsoft sayfaları
Diğer sayfalar
- Visual FoxPro Wiki FoxPro bilgi deposu (VFP'de yazılmıştır)
- FoxPro tarihine adanmış bir site
- VFPx VFP 9.0 için açık kaynak eklentiler oluşturmaya yönelik bir Visual FoxPro Topluluğu çabası