Visual Foxpro漫談(一)時間:2007-05-09 本站
- 前言 這篇文章可以說是 BOE 數(shù)據(jù)網(wǎng)絡(luò)工作室的開山之作了。它的動工是從2000年國慶節(jié)開始的,,寫寫停停,,直到那年的農(nóng)歷春節(jié)才完成初稿…… 后來我有幾次修改,算在2002年4月的這個版本,,應(yīng)該是第四版了,! 當初,我寫這篇文章的動機是:平靜的表達我的觀點。作為一名 Visual FoxPro 的程序員經(jīng)常受到別人的質(zhì)疑,、甚至是批駁,、挖苦,我不是一個擅長口舌爭斗的人,,更不敢冒犯“眾怒”,。于是我就用鍵盤陸續(xù)敲擊一些文字,表達我對 Visual FoxPro 的認識,,同時表達對各類問題的看法…… 近兩年來,,就我本人來說發(fā)生了很多變化:由于工作的關(guān)系,我接觸了很多其他的開發(fā)工具,,其中有大家廣為熟悉的Delphi,,也有國內(nèi)不見經(jīng)傳的Rapid Plus、InTouch,、InSQL,、InTruck。體會過種種,、經(jīng)歷過許多,,我覺得我更有能力完成此文了,我希望站在公正的立場上看待Visual FoxPro,,而不是社會上一味的批評,、鄙夷,更不是Fox Fans的“天下我是老大”的心態(tài),!希望大家能在文章中感到BOE的成熟和進步,。 網(wǎng)友們特別喜歡這篇文章,我知道Fox 的 Fans能在此處得到共鳴,,其實我寫這篇文章也就是要把平時大家關(guān)心的話題總結(jié)歸納一下,,去粗取精、去偽存真…… 去年春天 Visual FoxPro 7 就正式發(fā)行,,好多狐友都在等待簡體中文版,,很遺憾的是,微軟并沒有漢化它,。我覺得,,沒有任何必要使用簡體中文版的Visual FoxPro 7,原因如此:功能上講,,中文版與英文版完全相同,;Visual FoxPro 7的IDE與以前版本沒有什么區(qū)別,所以對于熟悉Visual FoxPro的用戶來說,,使用上不會有任何障礙,;再就是Help文件,,Visual FoxPro 7自帶了一個完整、獨立的英文版的,,而中文Visual FoxPro 6的Help是集成在MSDN里的,,巨大無比,其實也沒怎么漢化,,一般的Fox Fans都不裝的,,所以就幫助來說,對于不熟悉英語的朋友來說,,英語Visual FoxPro 7與中文Visual FoxPro 6是一樣的,;Visual FoxPro 7從各方面來說,均非Visual FoxPro 6可比擬的,,升級開發(fā)工具是必然的,。所以,希望各位,,升級到Visual FoxPro 7吧,! Visual FoxPro是什么 作為市場上最靈活和功能最強大的數(shù)據(jù)庫管理系統(tǒng),Visual FoxPro擁有悠久而輝煌的發(fā)展歷史,。它初創(chuàng)時是Fox Software公司的FoxBASE產(chǎn)品,,“Fox”(這是國際編程界對它的稱呼)一種可靠、便捷和高效的程序員用的數(shù)據(jù)庫產(chǎn)品而名聞遐邇,。 世界上沒有一種產(chǎn)品像 Visual FoxPro 那樣運行,,它是獨一無二的! 許多人在享受了Visual FoxPro的服務(wù)后卻說不清它是什么,。就讓我們沿著它的發(fā)展軌跡了解了解它吧,!這會使您能對它有更深刻的認識。 FoxPro隸屬于一種名為Xbase的DBMS類別,。Xbase這個術(shù)語很常見,,他表示諸如FoxPro、dBASEIII PLUS,、dBASEIV,、FoxBASE+以及ARAGO的語言。Xbase最初起源于一個大型機使用的DBMS,,這個DBMS叫做JPLDIS(噴射推動實驗室數(shù)據(jù)庫管理和信息檢索系統(tǒng))。這個DBMS 是由美國人Jeb Long在1972年開發(fā)成功的,。到目前為止全世界的開發(fā)者和程序員已經(jīng)編寫了幾千萬行的Xbase代碼,。 追溯到80年代末,F(xiàn)oxBASE是dBase的克隆系統(tǒng),。只要是dBASEIII能做的工作,,F(xiàn)oxBASE就能做得更好更快。FoxBASE雖然擁有某些全新的特征,但它并沒有真正重大的技術(shù)突破,,只是為了運行得更快更好,,而更重要的是它與dBASEIII兼容。 FoxPro 1.0首先背離了與兼容的原則,。它開始在圖形用戶界面的設(shè)計和軟件開發(fā)方法中采用一些新的思路,,從而使它領(lǐng)先于當時年前景已不妙的dBASEIV。 從2.0開始,,F(xiàn)oxPro才真正形成了它自己的特色,。當FoxPro 2.0推出時,它包含了若干項關(guān)鍵技術(shù),,給PC數(shù)據(jù)庫開發(fā)市場帶來了革命性的變化,。這些技術(shù)是:
FoxPro 2.0確實具備了我們今天的Visual FoxPro擁有的一些出色的功能。GUI設(shè)計服務(wù),、SQL和極快的數(shù)據(jù)訪問,,是它明顯的特征。 FoxPro 2.5有for DOS,、for Windows版,,不過那個Windows版只是具有看上去像“Windows”的DOS應(yīng)用程序的外觀。特別是那個DOS下的版本絕對是經(jīng)典之作,,觀察身邊是不是還有很多這樣的系統(tǒng)在運行著,?當時有人這樣評價:這個軟件已經(jīng)無法再快了,除非硬件升級…… 直到1995年春天Visual FoxPro推出時,,才出現(xiàn)了FoxPro的又一次重大改進(這時Microsoft已經(jīng)收購了Fox Software公司),。Visual FoxPro 3.0增加了一些人們企盼已久的特性,,使PC數(shù)據(jù)庫開發(fā)界大為震驚。我們可以看到:Visual FoxPro與FoxPro是由很大差別的,,不要再把Visual FoxPro成為FoxPro了,。這些特性是:
Visual FoxPro 5.0是3.0的升級版本,,它是一個32位的系統(tǒng),。具備了使用和創(chuàng)建COM服務(wù)器的功能,并開始支持在Internet上發(fā)布Visual FoxPro,。從這個版本開始,,Visual FoxPro進入了Visual studio家族,并且Visual FoxPro將不再升級的謠言也是在這個時期出現(xiàn),。 在Visual FoxPro 6.0出現(xiàn)之前,,微軟計劃推出DNA,演化到今天就是.NET,,并承諾把Visual FoxPro發(fā)展成健壯的中間層工具,,所以這以后Visual FoxPro的變化初級用戶就不太容易感覺了。 Visual FoxPro 6.0也沒有根本上的變化,,不過有些變化還是相當明顯的,。Access和Assign這兩種方法在控制放入你的對象中的數(shù)據(jù)方面很有創(chuàng)意。運用新的Component Gallery(組件庫)和Foundation Classes(基礎(chǔ)類),,你能很容易地轉(zhuǎn)向創(chuàng)建面向?qū)ο蟮膽?yīng)用程序的工作,。對COM支持的更好,,在Server Pack 3后我們可以用Visual FoxPro創(chuàng)建多線程的COM組件。 Visual FoxPro 7是Fox第一個可視化版本——Visual FoxPro 3以后的最具有革命意義的一次產(chǎn)品升級換代,。關(guān)于它的特性,,稍候本文會有專門段落講解。 Visual FoxPro的語言是由Xbase,、SQL,、OOP構(gòu)成的。我不知道這樣分解是否合理,,我只是從FoxPro的發(fā)展歷史得出以上結(jié)論的,。其實以上三者在Visual FoxPro完美的融合在一起了,已經(jīng)與Visual FoxPro血脈相連,、不可分割,,很多語句、函數(shù)很難區(qū)分它屬于哪個門類(也沒必要),。再者Xbase這一叫法也不十分妥當,,這樣容易讓人誤會,好像Visual FoxPro的語言是沒有發(fā)展的“死語言”,、是十幾年前的“老古董”,,其實在FoxPro每一次升級中(現(xiàn)在已是Visual FoxPro 7)都會對這部分語言進行修訂、增補,。我看還是這樣:Visual FoxPro語言就叫它:“Visual FoxPro語言”,,它既不同于任何以往的Xbase(最多有歷史淵源),也不同于其它的編程語言,。這就象Delphi那樣,,是Object Pascal語言,不是以前的Pascal,;VB就是VB,,不是以前的 Basic。 從Fox進入可視化的時代后,,對COM技術(shù)的支持一直是Visual FoxPro在過去,、現(xiàn)在、將來不斷改進的地方,。面向?qū)ο蟪绦蛟O(shè)計(OOP)的最大的好處就在于代碼的重復(fù)使用,。然而,OOP只是一種解決代碼重復(fù)使用的一種優(yōu)秀的方案(solution),。單純利用OOP技術(shù)不僅要求所有對象都必須用一種語言完成,,并且你還需要得到原程序代碼嵌入應(yīng)用程序(就像我們在Visual FoxPro開發(fā)使用Class那樣)。如果對象是有你或你的公司完成的這些可能不是什么問題,但如果對象是由其他人或其他公司寫的這就是問題了……再者為了節(jié)省資源我們常希望把一對象放在遠程的計算機上供許多應(yīng)用程序使用,,怎樣簡單,、安全完成這個任務(wù)呢?看來,,單有OOP是不行的,!于是微軟提出了Component Object Model(COM)技術(shù),有了它我們就不需要把對象源程序嵌入我們的應(yīng)用程序中,,就可以使用其他語言開發(fā)的對象,就可以分布的使用對象了,。 COM技術(shù)提供四種不同的特性,,Visual FoxPro支持所有的COM 特性。
Visual FoxPro 不支持Active controls(ActiveX)的開發(fā),,但支持server components的開發(fā),,也就是在Automation、Remote Automation中使用的組件都可以用Visual FoxPro來開發(fā),。Visual FoxPro的這種能力是從5.0開始具有的,,到了6.0的SP 3已經(jīng)可以開發(fā)出多線程的組件了,這些在上文已經(jīng)有過論述,。以后的 Visual FoxPro 版本一定會對Automation,,特別是Remote Automation有更好的支持,無論是開發(fā)server components,,還是由Visual FoxPro充當客戶程序,。 綜上所述,Visual FoxPro是創(chuàng)建關(guān)鍵任務(wù)的,、企業(yè)范圍的,、面向?qū)ο蟮膯螌哟巍㈦p層次,、多層次應(yīng)用程序的重要開發(fā)工具,,這些應(yīng)用程序可以在本地或全球范圍內(nèi)進行配置,。 |
|