Görsel FoxPro - Visual FoxPro

Görsel FoxPro
VisualFoxProScreenshot.png
Windows XP üzerinde çalışan Visual FoxPro v9
Geliştirici(ler) Microsoft
Son sürüm
v9.0 SP2 / 16 Ekim 2007 ; 13 yıl önce ( 2007-10-16 )
İş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 .microsoft .com /vfoxpro

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

Merhaba Dünya programının çıktısı .
* 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.

Veri işleme programının çıktısı .
 * 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