很久以來,F(xiàn)oxPro被眾多迷人的產(chǎn)品掩蓋了光芒,但直到現(xiàn)在它仍然是市場中用于完成數(shù)據(jù)事務(wù)的工具。隨著9.0版本中引入新的增強(qiáng)功能,它還沒有走上很快過時(shí)的道路。
微軟的FoxPro小組準(zhǔn)備在2004年底發(fā)布最新版FoxPro。這條消息使某些人感到很驚訝,因?yàn)槲覀兘?jīng)??梢月牭揭恍o知的人問“FoxPro?它還存在???”。但是在FoxPro社團(tuán)中下一版本的FoxPro引起了很大的騷動。新版中將包含一個(gè)更快的本地?cái)?shù)據(jù)引擎,支持更多的數(shù)據(jù)類型,SQL語句執(zhí)行中更大的一致性,一個(gè)完全重新設(shè)計(jì)的可擴(kuò)展報(bào)表編寫器,以及一系列效率和功能增強(qiáng)特性。
目前,一些應(yīng)用程序仍然使用Visual FoxPro編寫和部署,但是未來美國公司對Visual FoxPro的采用和部署有顯著的下降趨勢。這主要是因?yàn)榕c.net旗艦語言(例如C#和VB.NET)相比,微軟忽視了這種產(chǎn)品。市場支持的缺乏是VFP社團(tuán)詬病的一個(gè)主要問題。
盡管受控(managed)代碼和嚴(yán)格的編譯器可以生成“更安全”、bug更少、更牢固的代碼——這個(gè)事實(shí)可能是真的,但是單個(gè)的FoxPro開發(fā)者可以在相對很短的時(shí)間內(nèi)編寫一個(gè)成熟的桌面或Web應(yīng)用程序。他們所需處理的工作復(fù)雜性只是實(shí)現(xiàn)應(yīng)用程序和業(yè)務(wù)邏輯,而不是試圖理解笨重的框架組件(Framework)或斟酌數(shù)據(jù)綁定的問題。
因此,你有必要擔(dān)心設(shè)計(jì)人員的某些偶然出現(xiàn)的失誤嗎?因?yàn)閂isual FoxPro依舊存在,而且仍然有重要意義。它在自己的范疇之內(nèi)滿足那些其它單個(gè)產(chǎn)品無法滿足的需求。此外,由于它能夠運(yùn)行在更廉價(jià)的、舊的硬件上,運(yùn)行遺留下來的代碼,而且仍然能夠執(zhí)行現(xiàn)代的編程語言希望實(shí)現(xiàn)的事務(wù),它仍然是哪些叛逆的組織、小型的資源有限的辦公室、獨(dú)立軟件開發(fā)者以及很多政府和政府運(yùn)轉(zhuǎn)機(jī)構(gòu)的選擇。
強(qiáng)大的家族
為了理解FoxPro遺留的能量,了解它的發(fā)展史是有幫助的。在八十年代中期,噴氣發(fā)動機(jī)實(shí)驗(yàn)室(JPL)跟其它政府機(jī)構(gòu)一樣,也使用微型和個(gè)人計(jì)算機(jī)。這些獨(dú)立的機(jī)器使工程師有時(shí)不用操作大型機(jī)就能處理大量的數(shù)據(jù)集合,同時(shí)還把簡單的類似英語的命令(他們可以在DOS下執(zhí)行這些命令)組合到程序中了。這些程序變成了應(yīng)用程序,并且一種新類型的應(yīng)用程序開發(fā)人員誕生了。那時(shí)經(jīng)常使用電子數(shù)據(jù)表和靜態(tài)數(shù)據(jù)包,但是它們都比較麻煩,并且容易造成數(shù)據(jù)丟失。
數(shù)據(jù)庫是處理大量數(shù)據(jù)的邏輯解決方案,因此Wayne Ratliff編寫了一個(gè)自己帶有數(shù)據(jù)庫的程序,并且同時(shí)添加了一組可以在數(shù)據(jù)上執(zhí)行的命令。“Vulcan”帶有一個(gè)交互式的點(diǎn)提示符,使用易于記住的慣用語,允許工程師使用一組簡短的命令操作自己的數(shù)據(jù)——就像操作物理數(shù)據(jù)集合一樣。這個(gè)程序最終成為Ashton-Tate的dBase數(shù)據(jù)庫程序。
“dBase與BASIC、C、FORTRAN和COBOL程序是不同的,在dBase程序中很多麻煩的工作已經(jīng)被做好了。數(shù)據(jù)維護(hù)是由dBASE而不是由用戶完成的,因此用戶可以把精力集中在自己的事務(wù)上,而不必與處理打開、讀取和關(guān)閉文件、管理空間分配這些麻煩的工作絞在一起?!薄猈ayne Ratliff
在它發(fā)布后的幾年之內(nèi),大量的dBase克隆產(chǎn)品沖擊了市場。FoxBase由于引人注目的高速度和穩(wěn)定性獲得了很大的名氣。此外,F(xiàn)ox小組很敏捷,對用戶團(tuán)體作出的響應(yīng)更多。通過定期的修補(bǔ),通過CompuServe和重要版本的及時(shí)支持,作為對用戶請求的回應(yīng),它在非常接近原始版本的同時(shí),通過添加提高生產(chǎn)率的工具變得更快了。
FoxPro發(fā)布的時(shí)候,它為DOS程序員提供了窗口界面。Fox小組已經(jīng)提供了跨平臺的編譯器,允許開發(fā)者在Unix或DOS上,以及在后來的Windows版本和Mac上部署應(yīng)用程序。接著出現(xiàn)了FoxPro 2,它帶來了“Rushmore”(FoxPro的數(shù)據(jù)性能增強(qiáng)部分)技術(shù)、在線的SQL命令、圖形屏幕和報(bào)表編寫器。
Visual FoxPro
Visual FoxPro(它現(xiàn)在屬于微軟)帶來了OOP(面向?qū)ο缶幊蹋?、完全的關(guān)系數(shù)據(jù)存儲和遠(yuǎn)程數(shù)據(jù)訪問。因此,到1995年時(shí),F(xiàn)oxPro開發(fā)者可以自然地使用SQL、使用面向?qū)ο缶幊獭⒕帉懚鄬咏Y(jié)構(gòu)的、跨平臺的應(yīng)用程序——而且同時(shí)還可以兼容dBase II編寫的遺留代碼。
對于FoxPro開發(fā)者來說,F(xiàn)ox已經(jīng)完全成為一種安全的應(yīng)用程序開發(fā)途徑;你對于這種技術(shù)的投資不會受到廠商變革的影響。不幸的是,市場中的其它產(chǎn)品或同一個(gè)廠商的不同產(chǎn)品卻不再是這樣的。這導(dǎo)致了目前的對FoxPro和它在開發(fā)者世界中的地位的誤解。
VFP將不會成為一種.NET語言。這種可能性在開發(fā)VFP 7時(shí)就被慎重地考慮過,但是這種改變可能會導(dǎo)致一些嚴(yán)重的結(jié)果,的后果是不能保持向后兼容,最糟的后果是丟掉它強(qiáng)大的數(shù)據(jù)維護(hù)能力。.NET框架組件和VFP廣泛的語言和類之間多余的區(qū)域會帶來更多的混淆,很可能導(dǎo)致該產(chǎn)品更早地死亡。
由于Visual FoxPro將不會運(yùn)行受控代碼,對微軟來說它就沒有戰(zhàn)略意義了,這可以理解。但是,它是一個(gè)成熟的開發(fā)平臺。你編寫、部署和維護(hù)多層的、高可用性的、桌面的、互聯(lián)網(wǎng)的、COM和Web服務(wù)的開發(fā)所需要的一切都已經(jīng)由Visual FoxPro或第三方廠商提供了。它包含了牢固的面向?qū)ο笳Z言和完全的關(guān)系化、速度很快的數(shù)據(jù)庫(支持2G或十億條記錄以下的表)和獨(dú)立的OLEDB數(shù)據(jù)提供程序。甚至連IDE也有完全的可擴(kuò)充的設(shè)計(jì)表面,擁有內(nèi)建在語言(和已發(fā)布資源)中的工具和向?qū)У戎匾糠帧KcSQL Server嚴(yán)格地兼容,擁有良好的COM交互操作能力——包括Office自動化、強(qiáng)大的XML處理和功能,以及與20年前編寫的代碼的兼容性。
目前VFP適合于哪些場合?
它仍然是希望完成事務(wù)的專業(yè)人員的選擇。
它特別適合那些主要工作不是編寫代碼的工作人員
微軟的FoxPro小組準(zhǔn)備在2004年底發(fā)布最新版FoxPro。這條消息使某些人感到很驚訝,因?yàn)槲覀兘?jīng)??梢月牭揭恍o知的人問“FoxPro?它還存在???”。但是在FoxPro社團(tuán)中下一版本的FoxPro引起了很大的騷動。新版中將包含一個(gè)更快的本地?cái)?shù)據(jù)引擎,支持更多的數(shù)據(jù)類型,SQL語句執(zhí)行中更大的一致性,一個(gè)完全重新設(shè)計(jì)的可擴(kuò)展報(bào)表編寫器,以及一系列效率和功能增強(qiáng)特性。
目前,一些應(yīng)用程序仍然使用Visual FoxPro編寫和部署,但是未來美國公司對Visual FoxPro的采用和部署有顯著的下降趨勢。這主要是因?yàn)榕c.net旗艦語言(例如C#和VB.NET)相比,微軟忽視了這種產(chǎn)品。市場支持的缺乏是VFP社團(tuán)詬病的一個(gè)主要問題。
盡管受控(managed)代碼和嚴(yán)格的編譯器可以生成“更安全”、bug更少、更牢固的代碼——這個(gè)事實(shí)可能是真的,但是單個(gè)的FoxPro開發(fā)者可以在相對很短的時(shí)間內(nèi)編寫一個(gè)成熟的桌面或Web應(yīng)用程序。他們所需處理的工作復(fù)雜性只是實(shí)現(xiàn)應(yīng)用程序和業(yè)務(wù)邏輯,而不是試圖理解笨重的框架組件(Framework)或斟酌數(shù)據(jù)綁定的問題。
因此,你有必要擔(dān)心設(shè)計(jì)人員的某些偶然出現(xiàn)的失誤嗎?因?yàn)閂isual FoxPro依舊存在,而且仍然有重要意義。它在自己的范疇之內(nèi)滿足那些其它單個(gè)產(chǎn)品無法滿足的需求。此外,由于它能夠運(yùn)行在更廉價(jià)的、舊的硬件上,運(yùn)行遺留下來的代碼,而且仍然能夠執(zhí)行現(xiàn)代的編程語言希望實(shí)現(xiàn)的事務(wù),它仍然是哪些叛逆的組織、小型的資源有限的辦公室、獨(dú)立軟件開發(fā)者以及很多政府和政府運(yùn)轉(zhuǎn)機(jī)構(gòu)的選擇。
強(qiáng)大的家族
為了理解FoxPro遺留的能量,了解它的發(fā)展史是有幫助的。在八十年代中期,噴氣發(fā)動機(jī)實(shí)驗(yàn)室(JPL)跟其它政府機(jī)構(gòu)一樣,也使用微型和個(gè)人計(jì)算機(jī)。這些獨(dú)立的機(jī)器使工程師有時(shí)不用操作大型機(jī)就能處理大量的數(shù)據(jù)集合,同時(shí)還把簡單的類似英語的命令(他們可以在DOS下執(zhí)行這些命令)組合到程序中了。這些程序變成了應(yīng)用程序,并且一種新類型的應(yīng)用程序開發(fā)人員誕生了。那時(shí)經(jīng)常使用電子數(shù)據(jù)表和靜態(tài)數(shù)據(jù)包,但是它們都比較麻煩,并且容易造成數(shù)據(jù)丟失。
數(shù)據(jù)庫是處理大量數(shù)據(jù)的邏輯解決方案,因此Wayne Ratliff編寫了一個(gè)自己帶有數(shù)據(jù)庫的程序,并且同時(shí)添加了一組可以在數(shù)據(jù)上執(zhí)行的命令。“Vulcan”帶有一個(gè)交互式的點(diǎn)提示符,使用易于記住的慣用語,允許工程師使用一組簡短的命令操作自己的數(shù)據(jù)——就像操作物理數(shù)據(jù)集合一樣。這個(gè)程序最終成為Ashton-Tate的dBase數(shù)據(jù)庫程序。
“dBase與BASIC、C、FORTRAN和COBOL程序是不同的,在dBase程序中很多麻煩的工作已經(jīng)被做好了。數(shù)據(jù)維護(hù)是由dBASE而不是由用戶完成的,因此用戶可以把精力集中在自己的事務(wù)上,而不必與處理打開、讀取和關(guān)閉文件、管理空間分配這些麻煩的工作絞在一起?!薄猈ayne Ratliff
在它發(fā)布后的幾年之內(nèi),大量的dBase克隆產(chǎn)品沖擊了市場。FoxBase由于引人注目的高速度和穩(wěn)定性獲得了很大的名氣。此外,F(xiàn)ox小組很敏捷,對用戶團(tuán)體作出的響應(yīng)更多。通過定期的修補(bǔ),通過CompuServe和重要版本的及時(shí)支持,作為對用戶請求的回應(yīng),它在非常接近原始版本的同時(shí),通過添加提高生產(chǎn)率的工具變得更快了。
FoxPro發(fā)布的時(shí)候,它為DOS程序員提供了窗口界面。Fox小組已經(jīng)提供了跨平臺的編譯器,允許開發(fā)者在Unix或DOS上,以及在后來的Windows版本和Mac上部署應(yīng)用程序。接著出現(xiàn)了FoxPro 2,它帶來了“Rushmore”(FoxPro的數(shù)據(jù)性能增強(qiáng)部分)技術(shù)、在線的SQL命令、圖形屏幕和報(bào)表編寫器。
Visual FoxPro
Visual FoxPro(它現(xiàn)在屬于微軟)帶來了OOP(面向?qū)ο缶幊蹋?、完全的關(guān)系數(shù)據(jù)存儲和遠(yuǎn)程數(shù)據(jù)訪問。因此,到1995年時(shí),F(xiàn)oxPro開發(fā)者可以自然地使用SQL、使用面向?qū)ο缶幊獭⒕帉懚鄬咏Y(jié)構(gòu)的、跨平臺的應(yīng)用程序——而且同時(shí)還可以兼容dBase II編寫的遺留代碼。
對于FoxPro開發(fā)者來說,F(xiàn)ox已經(jīng)完全成為一種安全的應(yīng)用程序開發(fā)途徑;你對于這種技術(shù)的投資不會受到廠商變革的影響。不幸的是,市場中的其它產(chǎn)品或同一個(gè)廠商的不同產(chǎn)品卻不再是這樣的。這導(dǎo)致了目前的對FoxPro和它在開發(fā)者世界中的地位的誤解。
VFP將不會成為一種.NET語言。這種可能性在開發(fā)VFP 7時(shí)就被慎重地考慮過,但是這種改變可能會導(dǎo)致一些嚴(yán)重的結(jié)果,的后果是不能保持向后兼容,最糟的后果是丟掉它強(qiáng)大的數(shù)據(jù)維護(hù)能力。.NET框架組件和VFP廣泛的語言和類之間多余的區(qū)域會帶來更多的混淆,很可能導(dǎo)致該產(chǎn)品更早地死亡。
由于Visual FoxPro將不會運(yùn)行受控代碼,對微軟來說它就沒有戰(zhàn)略意義了,這可以理解。但是,它是一個(gè)成熟的開發(fā)平臺。你編寫、部署和維護(hù)多層的、高可用性的、桌面的、互聯(lián)網(wǎng)的、COM和Web服務(wù)的開發(fā)所需要的一切都已經(jīng)由Visual FoxPro或第三方廠商提供了。它包含了牢固的面向?qū)ο笳Z言和完全的關(guān)系化、速度很快的數(shù)據(jù)庫(支持2G或十億條記錄以下的表)和獨(dú)立的OLEDB數(shù)據(jù)提供程序。甚至連IDE也有完全的可擴(kuò)充的設(shè)計(jì)表面,擁有內(nèi)建在語言(和已發(fā)布資源)中的工具和向?qū)У戎匾糠帧KcSQL Server嚴(yán)格地兼容,擁有良好的COM交互操作能力——包括Office自動化、強(qiáng)大的XML處理和功能,以及與20年前編寫的代碼的兼容性。
目前VFP適合于哪些場合?
它仍然是希望完成事務(wù)的專業(yè)人員的選擇。
它特別適合那些主要工作不是編寫代碼的工作人員