A. vf是什麼
作為市場上最靈活和功能最強大的資料庫管理系統,Visual FoxPro擁有悠久而輝煌的發展歷史。它初創時是Fox Software公司的FoxBASE產品,「Fox」(這是國際編程界對它的稱呼)一種可靠、便捷和高效的程序員用的資料庫產品而名聞遐邇。 世界上沒有一種產品像 Visual FoxPro 那樣運行,它是獨一無二的!
許多人在享受了Visual FoxPro的服務後卻說不清它是什麼。就讓我們沿著它的發展軌跡了解了解它吧!這會使您能對它有更深刻的認識。
FoxPro隸屬於一種名為Xbase的DBMS類別。Xbase這個術語很常見,他表示諸如FoxPro、dBASEIII PLUS、dBASEIV、FoxBASE+以及ARAGO的語言。Xbase最初起源於一個大型機使用的DBMS,這個DBMS叫做JPLDIS(噴射推動實驗室資料庫管理和信息檢索系統)。這個DBMS 是由美國人Jeb Long在1972年開發成功的。到目前為止全世界的開發者和程序員已經編寫了幾千萬行的Xbase代碼。
追溯到80年代末,FoxBASE是dBase的克隆系統。只要是dBASEIII能做的工作,FoxBASE就能做得更好更快。FoxBASE雖然擁有某些全新的特徵,但它並沒有真正重大的技術突破,只是為了運行得更快更好,而更重要的是它與dBASEIII兼容。
FoxPro 1.0首先背離了與兼容的原則。它開始在圖形用戶界面的設計和軟體開發方法中採用一些新的思路,從而使它領先於當時年前景已不妙的dBASEIV。
從2.0開始,FoxPro才真正形成了它自己的特色。當FoxPro 2.0推出時,它包含了若干項關鍵技術,給PC資料庫開發市場帶來了革命性的變化。這些技術是:
加入了Rushmore技術,它能從事許多難以想像的復雜工作。突然之間,帶有以百萬計數的記錄的表格在PC資料庫系統中不僅成為可能,而且可以非常容易地加以實現,無需轉用其他比較昂貴的技術;Rushmore最重要的優點在於它是完全自動化的,不用用戶花費精力和時間。因為有了Rushmore技術,再加上Fox天生的快速,即使在今天Visual FoxPro仍然是最快的桌面資料庫引擎。
SQL語句是FoxPro 2.0推出的另一項具有革命性意義的關鍵技術。Fox的開發人員首次用單一語句取代了整個程序過程,並且這種支持是內含於Fox數據引擎之中的。SQL語言曾經並且現在仍然是強大的數據語言。
FoxPro 2.0還推出了某種所見即所得的開發報表和屏幕的工具。
FoxPro 2.0確實具備了我們今天的Visual FoxPro擁有的一些出色的功能。GUI設計服務、SQL和極快的數據訪問,是它明顯的特徵。
FoxPro 2.5有for DOS、for Windows版,不過那個Windows版只是具有看上去像「Windows」的DOS應用程序的外觀。特別是那個DOS下的版本絕對是經典之作,觀察身邊是不是還有很多這樣的系統在運行著?當時有人這樣評價:這個軟體已經無法再快了,除非硬體升級……
直到1995年春天Visual FoxPro推出時,才出現了FoxPro的又一次重大改進(這時Microsoft已經收購了Fox Software公司)。Visual FoxPro 3.0增加了一些人們企盼已久的特性,使PC資料庫開發界大為震驚。我們可以看到:Visual FoxPro與FoxPro是由很大差別的,不要再把Visual FoxPro成為FoxPro了。這些特性是:
資料庫容器(Database Container),也叫DBC,它增加了開發人員多年盼望的對存儲過程的支持、與表格相關聯的數據規則和一系列的附加數據功能。
遠程數據的無縫連接。談到連接遠程數據的處理,大家往往會想到RDO、ADO、BDE等處理數據引擎,那麼Visual FoxPro利用什麼實現遠程數據的無縫連接?Visual FoxPro本身的數據處理引擎,這和其他任何開發工具都是不同的!Visual FoxPro數據處理引擎通過ODBC驅動程序與遠程資料庫伺服器「通話」,遠程資料庫伺服器的ODBC驅動程序能將Visual FoxPro數據轉化成可由他們解釋的數據;相反,Visual FoxPro的ODBC驅動程序也能將遠程數據轉化成可由Visual FoxPro數據引擎處理的數據。可見,只要遠程資料庫有ODBC驅動程序,就可以用Visual FoxPro最為客戶端軟體。常見的SQL Server、Oracle、Access等資料庫都提供ODBC驅動程序。
在Visual FoxPro中實際操作遠程數據有兩種方法,遠程視圖和SPT技術。視圖(View)是可更新的SQL游標,增加了一整套的數據訪問方法,用於數據處理、GUI顯示和報表製作。它支持兩種類型的視圖,即本地視圖和遠程視圖。本地視圖是基於Visual FoxPro表格的視圖,遠程視圖是基於任何ODBC數據源的視圖。另外為了使Visual FoxPro成為完整的C/S開發環境,除視圖之外Visual FoxPro還支持SPT(SQL Pass Through)技術來完成視圖無法完成的工作,比如資料庫伺服器的用戶管理、存儲過程調用等。View與SPT技術的產生後,Visual FoxPro就成為訪問遠程數據的主要工具。從總體來看,創建整個企業范圍內的應用程序和使用存儲在遠程數據源中的數據,幾乎與使用Visual FoxPro表格本身一樣容易,處理在數據存取時增加了一些命令、函數,數據處理與普通的Visual FoxPro編程沒有任何區別。再次指出:Remote View與SPT技術是由Visual FoxPro數據處理引擎直接支持的,這與在VB、VC++中的外部數據訪問技術不同(他們使用組件,如:DAO、RDO、ADO……),所以用Visual FoxPro訪問遠程數據的效率很高,並能把遠程數據與本地數據完美的融合在一起,最大程度地提高開發效率和程序運行效率。
完全支持面向對象技術(OOP)。充分而健壯的實現了面向對象的處理方式大大改善了軟體開發條件。健壯的對象模型和創建你自己的類及子類的所用的功能,形成了一種全新的軟體開發手段。
Visual FoxPro 5.0是3.0的升級版本,它是一個32位的系統。具備了使用和創建COM伺服器的功能,並開始支持在Internet上發布Visual FoxPro。從這個版本開始,Visual FoxPro進入了Visual studio家族,並且Visual FoxPro將不再升級的謠言也是在這個時期出現。
在Visual FoxPro 6.0出現之前,微軟計劃推出DNA,演化到今天就是.NET,並承諾把Visual FoxPro發展成健壯的中間層工具,所以這以後Visual FoxPro的變化初級用戶就不太容易感覺了。
Visual FoxPro 6.0也沒有根本上的變化,不過有些變化還是相當明顯的。Access和Assign這兩種方法在控制放入你的對象中的數據方面很有創意。運用新的Component Gallery(組件庫)和Foundation Classes(基礎類),你能很容易地轉向創建面向對象的應用程序的工作。對COM支持的更好,在Server Pack 3後我們可以用Visual FoxPro創建多線程的COM組件。
Visual FoxPro 7是Fox第一個可視化版本——Visual FoxPro 3以後的最具有革命意義的一次產品升級換代。關於它的特性,稍候本文會有專門段落講解。
Visual FoxPro的語言是由Xbase、SQL、OOP構成的。我不知道這樣分解是否合理,我只是從FoxPro的發展歷史得出以上結論的。其實以上三者在Visual FoxPro完美的融合在一起了,已經與Visual FoxPro血脈相連、不可分割,很多語句、函數很難區分它屬於哪個門類(也沒必要)。再者Xbase這一叫法也不十分妥當,這樣容易讓人誤會,好像Visual FoxPro的語言是沒有發展的「死語言」、是十幾年前的「老古董」,其實在FoxPro每一次升級中(現在已是Visual FoxPro 7)都會對這部分語言進行修訂、增補。我看還是這樣:Visual FoxPro語言就叫它:「Visual FoxPro語言」,它既不同於任何以往的Xbase(最多有歷史淵源),也不同於其它的編程語言。這就象Delphi那樣,是Object Pascal語言,不是以前的Pascal;VB就是VB,不是以前的 Basic。
從Fox進入可視化的時代後,對COM技術的支持一直是Visual FoxPro在過去、現在、將來不斷改進的地方。面向對象程序設計(OOP)的最大的好處就在於代碼的重復使用。然而,OOP只是一種解決代碼重復使用的一種優秀的方案(solution)。單純利用OOP技術不僅要求所有對象都必須用一種語言完成,並且你還需要得到原程序代碼嵌入應用程序(就像我們在Visual FoxPro開發使用Class那樣)。如果對象是有你或你的公司完成的這些可能不是什麼問題,但如果對象是由其他人或其他公司寫的這就是問題了……再者為了節省資源我們常希望把一對象放在遠程的計算機上供許多應用程序使用,怎樣簡單、安全完成這個任務呢?看來,單有OOP是不行的!於是微軟提出了Component Object Model(COM)技術,有了它我們就不需要把對象源程序嵌入我們的應用程序中,就可以使用其他語言開發的對象,就可以分布的使用對象了。
COM技術提供四種不同的特性,Visual FoxPro支持所有的COM 特性。
ActiveX documents 允許用戶在一個應用程序中編輯另一個應用程序的document。我們把Word文檔嵌入或鏈接到Visual FoxPro中,就可以不離開Visual FoxPro編輯Word文檔了。
ActiveX controls 為開發人員提供了增加的系統功能的方法,典型的應用就是各類ActiveX控制項的使用來加強用戶界面。這里要說明的是Visual FoxPro不支持(7.0也不支持)「集裝箱式的」ActiveX 控制項,比如Cool bar控制項。
Automation 允許用戶在一個應用程序中操縱另外一個應用程序或組件,典型的應用就是Visual FoxPro 與Office 的OLE-Automation應用。
Remote Automation 或者稱 Distributed COM (DCOM)與Automation技術差不多,只是它支持組件的分布,這就是微軟的分布式應用戰略。
Visual FoxPro 不支持Active controls(ActiveX)的開發,但支持server components的開發,也就是在Automation、Remote Automation中使用的組件都可以用Visual FoxPro來開發。Visual FoxPro的這種能力是從5.0開始具有的,到了6.0的SP 3已經可以開發出多線程的組件了,這些在上文已經有過論述。以後的 Visual FoxPro 版本一定會對Automation,特別是Remote Automation有更好的支持,無論是開發server components,還是由Visual FoxPro充當客戶程序。
綜上所述,Visual FoxPro是創建關鍵任務的、企業范圍的、面向對象的單層次、雙層次、多層次應用程序的重要開發工具,這些應用程序可以在本地或全球范圍內進行配置。
Visual FoxPro 已經過時了嗎
恕我直言,這樣的問題我真的聽膩了。這個問題我聽了好幾年了。從謠言出現到今天Visual FoxPro的版本已經生了兩次變化,就是Visual FoxPro 6.0 與2001年春天推出的Visual FoxPro 7.0。根據微軟的官方消息,Visual FoxPro 8(可能是這個名稱吧)已經在研發之中了。我不敢保證是否會有Visual FoxPro 9.0(這就像我不敢保證微軟是否在那時還存在一樣)。可以這樣認為,只要不出意外情況(比如微軟倒閉、業界發生了重大的變革等),Fox就會平穩地發展!
在國外,一個程序員、一家公司把他們使用的開發工具視作一項投資,作為Visual FoxPro的開發廠商微軟公司就必須保護客戶的投資權益,這是很基本的商業原則,微軟絕對不敢隨意淘汰有著50萬用戶的Fox,除非永遠不想賺這50萬用戶的錢了。
為什麼會有Visual FoxPro 要淘汰的傳聞呢,我不是很清楚。但這兩年微軟對Visual FoxPro的不宣傳態度卻是為這股謠言起到了推波助瀾的作用。另外Visual FoxPro 確實是一個容易引起誤會的產品,初級用戶很容易對它產生「不怎麼樣的」評判,於是加上那謠言就產生了「Visual FoxPro 就真的要淘汰了」的幻覺了。
為什麼說Visual FoxPro 是容易引起誤會的產品呢?我總結以下幾點原因:
面向對象與面向過程之爭
我們說Visual FoxPro是面向對象化的語言,是有根據的。面向對象化的語言必須具備四個特性:抽象(Abstraction)、封裝(Encapsulation)、繼承(Inheritance)、多態(Polymorphism)。對照一下Visual FoxPro,是不是支持這四大特性!
當然,Visual FoxPro 與C++和Object Pascal 一樣都是歷史悠久的語言,所以語言中有很多面向過程的語素。我知道很多學校在教學中,只是教導學生們使用Visual FoxPro的面向過程的語言特色,而忽視了面向對象的教學,同樣的問題也存在於廣大的 Visual FoxPro 程序員中。我們必須明白:不能因為我們沒有使用Visual FoxPro面向對象的強大功能,而說Visual FoxPro不是面向對象的語言,這就像不能因為天下雨、沒有出太陽,而說太陽被天狗吃掉了——多麼的幼稚可笑!
我們知道Visual FoxPro對數據的操作沿用了多年來的面向過程的做法,這與現在流行的開發工具有很大的不同。我覺得,微軟這樣做是有它的道理的:
第一,面向過程的數據處理,更能發揮XBase語言體系的靈活與隨意的特色。這一點,你用過其他的資料庫開發工具,然後再用用Visual FoxPro就明白了。
第二,不直接提供面向對象的數據處理組件,不代表不允許用戶封裝自己的數據處理組件。很多優秀的 Fox程序員,都會自己封裝專門數據處理組件,這才是Visual FoxPro編程的高尚境界!
面向記錄與面向集合之爭
根據筆者的淺薄認知,關系型資料庫處理可以分為面向記錄操作和面向集合操作。
各種開發工具支持的客戶端游標體系就是面向記錄操作的,它們支持記錄之間的絕對定位,更明白地說就是可以在記錄之間導航,諸如:SKIP、GO TOP之類的語句。Visual FoxPro 無疑是此道的絕對高手,20年的語言發展,聚集了大量面向記錄的語言要素。這是因為這樣,我們才會反復強調:Visual FoxPro的Cursor 體系靈活、強大!
各類大型資料庫,如Oracle、SQL Server 是面向集合處理的代表,看看正統的SQL 語言,絕對沒有數據導航之說,數據記錄之間是平等的,一切都要講關系、擺條件!
隨著技術的發展,人們開始注意到,不能分割這兩種對數據的操作方式,於是大型資料庫支持了游標語素,Fox也支持符合規范的SQL 語言。
產品定位導致Visual FoxPro變化不易為人們感覺。微軟要把Visual FoxPro作為三層構架(或是多層構架)的中間層開發工具。
什麼是三層構架呢?第一層是用戶界面:它包含了用戶界面,讓使用者輸入,輸出,查詢等工作;第三層是資料層:它就是用來放資料的地方,一般是指後端資料庫,主要有包括 Oracle、SQL Server 等,它主要是提供一個很大的地方,來有規則的存放數據;第二層是商務邏輯層(中間層):有人要說了:存取資料,直接從第一層跳到第二層可不可以?當然可以,沒有人規定不能走捷徑,而且從資料庫直接抓資料,既快又好,那為什麼搞出個第二層呢?
商務規則是經常變化的,比如上班從8 點改為10 點,那電腦怎那麼知道老闆因為不景氣少讓大家上二個小時班呢?它一定無法知道,你必須告訴它,這時問題就來了,如果你有很多部電腦,例如:100 台,你就得一部部換新程序。如果這是一個掛在Internet上的網路程序,難道總讓用戶download新程序不成?
更重要的是,在大量客戶存在的環境里,傳統的兩層構架根本沒有能力承擔巨大的工作壓力,必須通過某種中間系統實現壓力平衡,這就是中間層的另一妙用!
中間層是沒有圖形界面設計的代碼編寫,並且是OOP方式的代碼編寫,不僅要熟悉後台資料庫的特性,還要考慮前台界面工具的特性,最重要的是商務邏輯的構架,同時還要求懂得IIS、MTS(COM+)、NT的安全設置等復雜枯燥的東西。有趣的是,近年來 Visual FoxPro 的各種改進,更多的是在這些方面下功夫,到了最新版本的Visual FoxPro 7 更是在此方面增加了若干特性,下面就讓我用四個問題來說明Visual FoxPro 在開發中間層方面的貢獻:
問題一:Visual FoxPro能開發出穩定、有效率的Server程序嗎?能,在1999年發布的Visual FoxPro SP 3中微軟賦予了Visual FoxPro開發多線程進程的內組件的能力,並增加了新的運行時刻庫VFPnT.DLL(n代表版本號),支持其運行,在這個運行庫中,刪除了大量老式的和界面控制元素,使得它更小巧。但是由於Visual FoxPro6本身不是很穩定(加打SP4或SP5才有所改善),所以這個很棒的功能在Visual FoxPro 6下並不能充分發揮,直到Visual FoxPro 7出現才使它的顯示出英雄本色!
問題二:分布式的事務、動態負載平衡怎麼實現?Visual FoxPro 7對COM+有很好的支持,藉由COM+就可以解決這兩個問題了!
問題三:作為Server程序,客戶程序怎樣與Server交換數據集合?這是Visual FoxPro 6開發的Server程序的致命弱點,我們知道Visual FoxPro是用來處理數據的,但不能與外界自由交換數據集合會大大降低開發、使用以及程序運行效率!在Visual FoxPro 7里我們XML就可以快速、輕易的傳遞大型數據集合,真正做到數據集的來去自由。現在回想Visual FoxPro 6中我們用的那種「循環+屬性」的做法,真有天上與人間的感受!
問題四:能不能讓Visual FoxPro開發的Server任由客戶使用,叫干什麼就干什麼?可以的,在Visual FoxPro 7里提供了一個全新的函數:ExecScript()。有了它,就可以一次執行多條客戶端送來的符合Visual FoxPro規范的語句:你可以定義變數、做查詢、更新數據、修改表結構……
微軟確實實踐著讓Visual FoxPro在中間層運行的承諾。但遺憾的是:由於國內用戶的水平、國內軟體應用的領域,對大多數Fox Fans 無法感受Visual FoxPro日新月異的變化——對他們來說,Visual FoxPro確實「沒有改變」!
Visual FoxPro 只能局限於桌面應用程序的開發嗎?
技術在進步,軟體技術的應用不斷在拓寬,Internet 已經是眾多開發工具競相支持的應用領域。Visual FoxPro 從版本 5 開始不斷擴充對Internet的支持,到最新的Visual FoxPro 7 更是增加了對Web Service的支持。我們可以把Visual FoxPro 對Internet的支持分為三大部分:
第一,簡單的HTML的轉換。Visual FoxPro 自帶的「Web 發布」就是這類型的工具,利用HTML和DHTML的模版,支持Visual FoxPro數據的Web化,這是一種全靜態的 Web 支持。
第二,適合於企業內部使用的 Active Document 技術。是不是希望快速、簡單的把Visual FoxPro應用程序轉變為Web 應用程序,這個Active Document 技術就是最佳的選擇。它支持 App 程序運行在IE中,它的缺點是:在客戶端必須安裝Visual FoxPro的運行庫、客戶端與資料庫間依然是緊密的有狀態的關系,屬於F/S構架——只是界面能夠運行在IE之中了。它的開發快速以及它依然基於傳統構架,決定了這個技術只能運行在企業內部,一般不能在廣域網路中發布。
這技術是Visual FoxPro 6提出的,當時在 Tool 菜單里還有一個專門的菜單項。到了而今的Visual FoxPro 7,這個菜單項已經取消了,但並不是說Visual FoxPro 7 不支持Active Document,只是這種並不出色的技術沒有必要再放在醒目的位置了。
第三,基於COM 的 Web 應用。
Visual FoxPro 真正能被用於Web 開發,就是通過 COM 支持的。
這里您要有個認識,作為資料庫開發工具,Visual FoxPro 不是FronPage這樣的用於開發Web 界面的工具(也許未來的 Visual FoxPro 會支持 Web 界面的開發)。Visual FoxPro 完全是作為 Server 運行在網站的後台,為各種應用提供服務。使用 Visual FoxPro 編寫的 COM 組件能夠被IIS支持,壓在後台進行各種運作——這就是真正意義上的Visual FoxPro 的Web應用,也是典型的多層構架的中間層!
這個階段,Visual FoxPro 對 Web的支持有可以劃分為三個層次:
FoxISAPI。
這是最先登場的技術,當年 ASP 技術還沒有出現的時候,我們在 IIS 里就可以通過 ISAPI 技術實現動態網頁開發。
Web Server
ASP 技術出現了,我們知道 ASP 技術的一大特色就是支持伺服器端的組件的應用。用 Visual FoxPro 的編寫的 COM 組件就能運行在 IIS 里,供 ASP 調用。
Web Service
這是 Visual FoxPro 7 的新特性,也是當前最熱門的技術。它與Web Service的最大不同就是:Web Server 組件只能通過 ASP 程序調用,而Web Service可以供任何系統在全球范圍調用,無論客戶端的硬體平台、軟體平台,只要它支持SOAP、支持XML就可以了。
更誇張一點說:只要能上網,就可以享用 Web Service 提供的服務!
有人也許會問:我可以用VB、VC++建立對象組件時,為何我要用Visual FoxPro 來建立相同的組件? 微軟對這一問題有專門的評論,大意為:快、重復使用性、跨語言重復使用性。「快」是指用Visual FoxPro開發的組件擷取、處理資料都極為迅速,並且Visual FoxPro能夠非常迅速的建立字元串。到底有多快,我想數據處理、存取的速度大家平時都領教過了,字元串生成速度我這里有個數據不妨一看,這是台灣的一位高手做的試驗——將1M的數據寫入文本中,結果VC++ 6.0程序用了3.5秒、VB 6.0程序用了11秒、Java 1.1.5用了24秒、Visual FoxPro 6.0用了7秒;「重復使用性」是指Visual FoxPro具備OOP的功能;「跨語言重復使用性」是指Visual FoxPro編寫的對象編譯以後成為COM、COM+對象組件,這樣就可以在其他語言中使用它了。
不要以為Visual FoxPro是「低端產品",無論從資料庫(DBF Base)品質還是開發環境評價Visual FoxPro,它都是一個「高端工具」。
許多人認為Visual FoxPro只能用來開發單用戶系統或是文件伺服器構架的小型網路系統——這是謬誤——這種無知的言論在許多講C/S、三層構架的書中都有(特別是一些VB、PB、Delphi的資料庫編程書)。我可以很負責任的告訴大家完全可以用Visual FoxPro開發C/S結構的系統。這里說的C/S構架絕對是正宗的,不是用什麼F/S構架在糊弄大家。在C/S構架中我們常常選擇Visual FoxPro作為客戶端開發工具,以Oracle、SQL Server等網路資料庫壓在後台,使用Visual FoxPro內置的Remote View和SPT技術,這樣就可以完美地解決問題。這里不能詳細展開,只特別介紹Visual FoxPro的本地引擎在開發中的作用。Visual FoxPro的本地引擎特別強大(上文我們說過處理百萬條記錄不費吹灰之力),我們在設計系統時可以十分簡單的將遠程數據與本地數據結合,很簡單、很有效地控制網路數據流量、提高系統工作效率(我看過不少VB、Delphi、PB的書,他們很少在怎樣控制網路數據流量、提高系統工作效率論述,不知是不屑一顧,還是其他什麼原因)。
我認為Visual FoxPro的本地引擎在C/S構架下起碼有三項偉大的用途。其一:非經常變動數據的本地存儲。我國的郵政編碼與地區的關系是相對穩定的數據,而且數據量也不是太小,我想總有上千個記錄(我沒仔細考察過具體情況),我們把這些信息存儲在客戶端的計算機中,就可以在使用郵政編碼及其相關信息時從本地得到數據,這樣能使高系統效率同時節省網路資源(這是C/S開發的重要原則),只在郵政編碼發生變化時在伺服器上統一更新,下載更新客戶機上的數據。如果用別的軟體實現同樣的功能,絕對比Visual FoxPro麻煩而且效果絕對不及Visual FoxPro,這因為Visual FoxPro的數據引擎直接支持遠程數據讀取,能很好的融合本地數據與遠程數據;其二:離線數據包。單位里總有人出差,在千萬里路之外能不能拿著筆記本為客戶發訂單、與客戶簽合同,就像在自己的辦公室一樣?當他回到公司時只要把筆記本連到伺服器中,發送更新就行了。Visual FoxPro的離線視圖是經濟且高效安全的方案(當然您可以使用遠程撥入或建一個Web網站,這些Visual FoxPro可能幹)。其實離線數據包還有一個重要的功能:當下載的數據是大量的(除非萬不得已請不要這樣設計系統),這種情況下使用離線視圖可以數據集自動轉化為物理表,充分利用Visual FoxPro的高速與靈活,完成後連線更新後端數據源——一切都很簡單。我認為:離線視圖絕對是Visual FoxPro在C/S系統中的一個賣點,雖然ADO也支持類似的東西,但肯定不及Visual FoxPro有效率;其三:數據驅動。您是否知道,Visual FoxPro中絕大多數文件格式實際上都是DBF文件,如DBC、SCX、FRX等,他們都可以由Visual FoxPro的本地引擎驅動完成復雜的任務。在設計C/S結構時如果要存儲用戶設置、自定義文件格式,用Visual FoxPro的本地引擎幫忙絕對比其他軟體簡單,因為你用的是換湯不換葯的方法,但它簡單、有效率。
Visual FoxPro 開發C/S系統時,最與眾不同的特色就是對遠程數據的操控是通過本地資料庫來實現的,Remote View、Connection都作為本地資料庫的對象被管理起來,完美的銜接本地數據與遠程數據。這種在客戶端建立遠程數據邏輯的做法,與最新的ADO.NET有相似之處!
在三層構架中,Visual FoxPro可以充當任意一層的任務,但本人以為大中型系統的資料庫部分應以網路資料庫為主。客戶端界面用Visual FoxPro也是可以的,但一般限於企業內部,在Internet上我們通常使用IE作為客戶界面。在三層構架中Visual FoxPro最勝任中間層的開發,它簡單(開發難度與普通的Visual FoxPro項目相差不大)、快速的字元串生成、支持COM技術、它支持(MTS)COM+技術、它支持XML(Visual FoxPro 7.0提供3個與XML有關的函數)、它具有強大本地數據引擎、靈活的數據處理方式、它支持多線程的服務組件的開發。
可能有人要問:用ASP+腳本語言一樣可以開發Web系統,何必加個中間層。的確,目前在市面上與多討論Web的書都直接使用腳本語言來開發整個系統,這是十分不正確的做法,甚至有寫書還說硬體越來越快,因此使用腳本語言來開發整個系統並沒有什麼關系。會說出這樣話的作者通常都是沒有實際開發Web應用經驗的人。腳本語言,如VBScript是一種解釋性語言,運行效率很低,他們只合適作為膠水程序。開發Web系統正統的做法是:把應用邏輯編寫成COM、DCOM對象,然後用少量的腳本語言來驅動/使用這些對象。這樣系統開發時工作量會大一些,但它符合開發任何數
B. vfp是一種什麼模型的資料庫管理系統
關系型資料庫管理系統
visual foxpro是Microsoft公司是一款快速處理數據的桌面型資料庫開發軟體。主要用於開發數據管理與運算等方面。visual foxpro獨具特色的資料庫容器提供了集中的數據管理功能,它支持面向對象的編程方法,可生成真正事件驅動的應用程序,與其他應用程序共享和交換數據,具有客戶/伺服器能力。
(2)vfp關系型資料庫擴展閱讀:
1998年9月份美國微軟公司推出了Visual Fox Pro 6.0系列,其中包括VFP6。VFP6的推出為網路數據系統使用者及設計開發者帶來了極大的方便。VFP6不僅提供了更多更好的設計器、向導、生成器及新類,並且使得客戶/伺服器結構資料庫應用程序的設計更加方便簡捷,增加了處理2000年數據的工具。VFP6以其強健的工具和面向對象的以數據為中心的語言,將客戶/伺服器和網路功能集成於現代化的、多鏈接的應用程序中。VFP6充分發揮了面向對象編程技術與事件驅動方式的優勢。