日韩欧乱色一区二区三区在线_久久―日本道色综合久久_欧美日本一区二区_网曝91综合精品门事件在线

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > 為什么Visual FoxPro漸漸淘汰了?

為什么Visual FoxPro漸漸淘汰了?

來源:千鋒教育
發(fā)布人:xqq
時(shí)間: 2023-10-13 04:24:11 1697142251

一、為什么Visual FoxPro漸漸淘汰了

為什么會(huì)有Visual FoxPro 要淘汰的傳聞呢,我不是很清楚。但這兩年微軟對(duì)Visual FoxPro的不宣傳態(tài)度卻是為這股謠言起到了推波助瀾的作用。另外Visual FoxPro 確實(shí)是一個(gè)容易引起誤會(huì)的產(chǎn)品,初級(jí)用戶很容易對(duì)它產(chǎn)生“不怎么樣的”評(píng)判,于是加上那謠言就產(chǎn)生了“Visual FoxPro 就真的要淘汰了”的幻覺了。

為什么說Visual FoxPro 是容易引起誤會(huì)的產(chǎn)品呢?我總結(jié)以下幾點(diǎn)原因:

面向?qū)ο笈c面向過程之爭

我們說Visual FoxPro是面向?qū)ο蠡恼Z言,是有根據(jù)的。面向?qū)ο蠡恼Z言必須具備四個(gè)特性:抽象(Abstraction)、封裝(Encapsulation)、繼承(Inheritance)、多態(tài)(Polymorphism)。對(duì)照一下Visual FoxPro,是不是支持這四大特性!

當(dāng)然,Visual FoxPro 與C++和Object Pascal 一樣都是歷史悠久的語言,所以語言中有很多面向過程的語素。我知道很多學(xué)校在教學(xué)中,只是教導(dǎo)學(xué)生們使用Visual FoxPro的面向過程的語言特色,而忽視了面向?qū)ο蟮慕虒W(xué),同樣的問題也存在于廣大的 Visual FoxPro 程序員中。我們必須明白:不能因?yàn)槲覀儧]有使用Visual FoxPro面向?qū)ο蟮膹?qiáng)大功能,而說Visual FoxPro不是面向?qū)ο蟮恼Z言,這就像不能因?yàn)樘煜掠辍]有出太陽,而說太陽被天狗吃掉了——多么的幼稚可笑!

我們知道Visual FoxPro對(duì)數(shù)據(jù)的操作沿用了多年來的面向過程的做法,這與現(xiàn)在流行的開發(fā)工具有很大的不同。我覺得,微軟這樣做是有它的道理的:

名列前茅,面向過程的數(shù)據(jù)處理,更能發(fā)揮XBase語言體系的靈活與隨意的特色。這一點(diǎn),你用過其他的數(shù)據(jù)庫開發(fā)工具,然后再用用Visual FoxPro就明白了。

第二,不直接提供面向?qū)ο蟮臄?shù)據(jù)處理組件,不代表不允許用戶封裝自己的數(shù)據(jù)處理組件。很多優(yōu)異的 Fox程序員,都會(huì)自己封裝專門數(shù)據(jù)處理組件,這才是Visual FoxPro編程的高尚境界!

面向記錄與面向集合之爭

根據(jù)筆者的淺薄認(rèn)知,關(guān)系型數(shù)據(jù)庫處理可以分為面向記錄操作和面向集合操作。

各種開發(fā)工具支持的客戶端光標(biāo)體系就是面向記錄操作的,它們支持記錄之間的絕對(duì)定位,更明白地說就是可以在記錄之間導(dǎo)航,諸如:SKIP、GO TOP之類的語句。Visual FoxPro 無疑是此道的絕對(duì)高手,20年的語言發(fā)展,聚集了大量面向記錄的語言要素。這是因?yàn)檫@樣,我們才會(huì)反復(fù)強(qiáng)調(diào):Visual FoxPro的Cursor 體系靈活、強(qiáng)大!

各類大型數(shù)據(jù)庫,如Oracle、SQL Server 是面向集合處理的代表,看看正統(tǒng)的SQL 語言,絕對(duì)沒有數(shù)據(jù)導(dǎo)航之說,數(shù)據(jù)記錄之間是平等的,一切都要講關(guān)系、擺條件!

隨著技術(shù)的發(fā)展,人們開始注意到,不能分割這兩種對(duì)數(shù)據(jù)的操作方式,于是大型數(shù)據(jù)庫支持了游標(biāo)語素,F(xiàn)ox也支持符合規(guī)范的SQL 語言。

產(chǎn)品定位導(dǎo)致Visual FoxPro變化不易為人們感覺。微軟要把Visual FoxPro作為三層構(gòu)架(或是多層構(gòu)架)的中間層開發(fā)工具。

什么是三層構(gòu)架呢?名列前茅層是用戶界面:它包含了用戶界面,讓使用者輸入,輸出,查詢等工作;第三層是資料層:它就是用來放資料的地方,一般是指后端數(shù)據(jù)庫,主要有包括 Oracle、SQL Server 等,它主要是提供一個(gè)很大的地方,來有規(guī)則的存放數(shù)據(jù);第二層是商務(wù)邏輯層(中間層):有人要說了:存取資料,直接從名列前茅層跳到第二層可不可以?當(dāng)然可以,沒有人規(guī)定不能走捷徑,而且從數(shù)據(jù)庫直接抓資料,既快又好,那為什么搞出個(gè)第二層呢?

商務(wù)規(guī)則是經(jīng)常變化的,比如上班從8 點(diǎn)改為10 點(diǎn),那電腦怎那么知道老板因?yàn)椴痪皻馍僮尨蠹疑隙€(gè)小時(shí)班呢?它一定無法知道,你必須告訴它,這時(shí)問題就來了,如果你有很多部電腦,例如:100 臺(tái),你就得一部部換新程序。如果這是一個(gè)掛在Internet上的網(wǎng)絡(luò)程序,難道總讓用戶download新程序不成?

更重要的是,在大量客戶存在的環(huán)境里,傳統(tǒng)的兩層構(gòu)架根本沒有能力承擔(dān)巨大的工作壓力,必須通過某種中間系統(tǒng)實(shí)現(xiàn)壓力平衡,這就是中間層的另一妙用!

中間層是沒有圖形界面設(shè)計(jì)的代碼編寫,并且是OOP方式的代碼編寫,不僅要熟悉后臺(tái)數(shù)據(jù)庫的特性,還要考慮前臺(tái)界面工具的特性,最重要的是商務(wù)邏輯的構(gòu)架,同時(shí)還要求懂得IIS、MTS(COM+)、NT的安全設(shè)置等復(fù)雜枯燥的東西。有趣的是,近年來 Visual FoxPro 的各種改進(jìn),更多的是在這些方面下功夫,到了最新版本的Visual FoxPro 7 更是在此方面增加了若干特性,下面就讓我用四個(gè)問題來說明Visual FoxPro 在開發(fā)中間層方面的貢獻(xiàn):

問題一:Visual FoxPro能開發(fā)出穩(wěn)定、有效率的Server程序嗎?能,在1999年發(fā)布的Visual FoxPro SP 3中微軟賦予了Visual FoxPro開發(fā)多線程進(jìn)程的內(nèi)組件的能力,并增加了新的運(yùn)行時(shí)刻庫VFPnT.DLL(n代表版本號(hào)),支持其運(yùn)行,在這個(gè)運(yùn)行庫中,刪除了大量老式的和界面控制元素,使得它更小巧。但是由于Visual FoxPro6本身不是很穩(wěn)定(加打SP4或SP5才有所改善),所以這個(gè)很棒的功能在Visual FoxPro 6下并不能充分發(fā)揮,直到Visual FoxPro 7出現(xiàn)才使它的顯示出英雄本色!

問題二:分布式的事務(wù)、動(dòng)態(tài)負(fù)載平衡怎么實(shí)現(xiàn)?Visual FoxPro 7對(duì)COM+有很好的支持,借由COM+就可以解決這兩個(gè)問題了!

問題三:作為Server程序,客戶程序怎樣與Server交換數(shù)據(jù)集合?這是Visual FoxPro 6開發(fā)的Server程序的致命弱點(diǎn),我們知道Visual FoxPro是用來處理數(shù)據(jù)的,但不能與外界自由交換數(shù)據(jù)集合會(huì)大大降低開發(fā)、使用以及程序運(yùn)行效率!在Visual FoxPro 7里我們XML就可以快速、輕易的傳遞大型數(shù)據(jù)集合,真正做到數(shù)據(jù)集的來去自由。現(xiàn)在回想Visual FoxPro 6中我們用的那種“循環(huán)+屬性”的做法,真有天上與人間的感受!

問題四:能不能讓Visual FoxPro開發(fā)的Server任由客戶使用,叫干什么就干什么?可以的,在Visual FoxPro 7里提供了一個(gè)全新的函數(shù):ExecScript()。有了它,就可以一次執(zhí)行多條客戶端送來的符合Visual FoxPro規(guī)范的語句:你可以定義變量、做查詢、更新數(shù)據(jù)、修改表結(jié)構(gòu)……

微軟確實(shí)實(shí)踐著讓Visual FoxPro在中間層運(yùn)行的承諾。但遺憾的是:由于國內(nèi)用戶的水平、國內(nèi)軟件應(yīng)用的領(lǐng)域,對(duì)大多數(shù)Fox Fans 無法感受Visual FoxPro日新月異的變化——對(duì)他們來說,Visual FoxPro確實(shí)“沒有改變”!

延伸閱讀:

二、Visual FoxPro 對(duì) Web的支持的三個(gè)層次

FoxISAPI
這是最先登場的技術(shù),當(dāng)年 ASP 技術(shù)還沒有出現(xiàn)的時(shí)候,我們在 IIS 里就可以通過 ISAPI 技術(shù)實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁開發(fā)。

Web Server
ASP 技術(shù)出現(xiàn)了,我們知道 ASP 技術(shù)的一大特色就是支持服務(wù)器端的組件的應(yīng)用。用 Visual FoxPro 的編寫的 COM 組件就能運(yùn)行在 IIS 里,供 ASP 調(diào)用。

Web Service
這是 Visual FoxPro 7 的新特性,也是當(dāng)前最熱門的技術(shù)。它與Web Service的最大不同就是:Web Server 組件只能通過 ASP 程序調(diào)用,而Web Service可以供任何系統(tǒng)在全球范圍調(diào)用,無論客戶端的硬件平臺(tái)、軟件平臺(tái),只要它支持SOAP、支持XML就可以了。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
訪問網(wǎng)頁的背后發(fā)生了什么?

一、域名解析當(dāng)我們在瀏覽器中輸入網(wǎng)頁的域名時(shí),首先需要進(jìn)行域名解析。瀏覽器會(huì)將域名發(fā)送給本地域名服務(wù)器(DNS),以獲取對(duì)應(yīng)的IP地址。如...詳情>>

2023-10-13 06:04:09
外企銀行一般用什么linux版本系統(tǒng)和數(shù)據(jù)庫呢?

一、外企銀行一般用什么linux版本系統(tǒng)和數(shù)據(jù)庫Linux有非常多的發(fā)行版本,從性質(zhì)上劃分,大體分為由商業(yè)公司維護(hù)的商業(yè)版本與由開源社區(qū)維護(hù)的免...詳情>>

2023-10-13 05:50:44
為什么Python開發(fā)世界持續(xù)被Django統(tǒng)治那么久?

一、全功能的Web框架Django是一個(gè)全功能的Web框架,它提供了許多開箱即用的功能和組件,包括路由系統(tǒng)、模板引擎、ORM(對(duì)象關(guān)系映射)工具、表...詳情>>

2023-10-13 05:41:39
Binder到底是什么?

一、Binder的定義Binder是Android系統(tǒng)中的一種進(jìn)程間通信(IPC)機(jī)制,用于不同進(jìn)程間的數(shù)據(jù)傳遞和通信。它通過跨進(jìn)程的方法調(diào)用,允許一個(gè)進(jìn)程...詳情>>

2023-10-13 05:40:00
Oracle新出的數(shù)據(jù)庫Oracle21c怎么樣?

一、Oracle21c怎么樣Oracle 考慮到 2020 年我們的客戶將面臨前所未有的經(jīng)濟(jì)和業(yè)務(wù)中斷。我們決定不將 Database 20c Preview 版本升級(jí)為 General...詳情>>

2023-10-13 05:34:16
快速通道
主站蜘蛛池模板: 连州市| 湛江市| 汪清县| 宽城| 凤阳县| 宣恩县| 临汾市| 铜川市| 璧山县| 博兴县| 南川市| 齐河县| 依安县| 苏尼特右旗| 临海市| 郧西县| 博兴县| 察隅县| 南城县| 望江县| 河曲县| 庄河市| 伊金霍洛旗| 吴江市| 辉县市| 诸城市| 甘肃省| 洞口县| 溧阳市| 芮城县| 卢龙县| 海阳市| 郯城县| 陇川县| 东丽区| 长宁区| 静安区| 温州市| 庆云县| 陆河县| 社会|