java方面編程的初級學員必需掌握的基礎知識:java語言、HTML、JSP以及至少一種資料庫。這是最低的標准,但是也是最高的要求,因為基本上其他相關的技術和架構都是基於這些以上的。總之,我覺得都是一通百通,基本上做一個項目就能熟練掌握一種技術。
至於企業方面:本人先後在國內幾個大的軟體公司工作過,外企也差不多。小公司我沒有去過,但是我覺得小公司不能去,學的技術好像很多,但是其實阻礙了一個工程師從一個工程師到項目經理或者技術經理的發展,因為小公司做的不可能是很大的項目,難么架構和設計不那麼嚴謹,這樣從宏觀來看對一個程序員是沒有好處的。
企業方面根據所做項目的不同用到的技術也不一樣,而基本上大一點的公司都有自己的主營項目,也就是強項。比如亞信是做通信行業的,目前處在web化階段,其對於java工程師的需求很大,但是它的核心還是C語言的,所以一個java程序員在這樣的公司是不會有多大發展的,也學不到什麼東西,值得一提的是這種公司都有自己的工具軟體,也就是把一些常用的模塊或者功能都做好了,你只要調用就行了,所以基本上你到這種公司學不到高深的技術,以後跳槽也難! 現在大一點的公司都有自己的工具軟體,目的是封裝常用的模塊,縮短開發周期,提高運行效率,但是對於喜歡技術的人來說就沒有什麼好處了。
最後,想說的是:企業其實需要的是學習能力強的人,踏實肯干就會得到認可。至於技術都是進入公司以後的事情,只要上面說的幾樣搞清楚了,面試談的不錯,加點技巧就可以了!
java 學習資料要視頻干什麼呢? 用Eclipse工具自己買本書或者到網上下幾個程序源代碼研究一下,再寫幾個小例子就差不多了!
這些都是我的心得,我是工作4年的java工程師,也許說得不準確,但確實是親身所見。希望你別走我的彎路,祝你順利開心!
Ⅱ 初學電腦編程需要什麼
初學電腦編程需要學習英語,選擇一門編程語言,要有數學基礎,具體介紹如下:
1、英語基礎
計算機英語與傳統的英語知識不同,需要了解的大部分是計算機的專業單詞或者詞彙,普遍較為簡單。但是在高級編程中,會出現比較生澀的詞彙,對於想要參與計算機語言設計以及在職業發展上有更多追求的同學可以自學一下大學英語。
2、選擇一門編程語言
選擇一門編程語言。雖然目前編程語言有600種左右,但是比較流行的編程語言只有幾十種,所以盡量選擇流行程度比較高的編程語言來入門編程。對於沒有明確編程場景的初學者來說,盡量選擇全場景編程語言,比如Java、Python、C#等就是不錯的選擇
3、數學基礎
當然擁有初中階段的數學基礎也可以成為一名合格的程序員,這也是目前很多計算機編程培訓學校招收初中畢業學生的原因。但想要成為一名優秀的程序員,最少要高中及以上的數學基礎,而且要懂得如何舉一反三,靈活運用。
4、了解計算機操作系統原理
所有的開發或者說軟體應用都是在特定的操作系統上進行的,所以計算機操作系統原理可以說是基礎中的基礎是必須要了解的。
5、數據結構和演算法
這門課程能夠決定一個人程序設計水平的高低,是學習過程中需要重點掌握的。C和C++都是可以選擇的,前期可以先學C,再學C++會相對簡單一些。
在學習編程語言的過程中,也需要同時學習計算機網路、資料庫等相關知識,在當前的雲計算和大數據時代背景下,還需要掌握如何通過雲計算(PaaS)來輔助開發,以及如何利用大數據平台的各種資源。
Ⅲ Adobe Flash Player 11的最新功能
通過Adobe®Flash®Player運行時交付極具吸引力的用戶體驗,支持本機64位操作系統和瀏覽器,加速圖形渲染、非同步點陣圖解碼、高解析度點陣圖支持等等。
本機64位支持
FlashPlayer現在可利用Linux®、MacOS和Windows®上對64位操作系統和64位網頁瀏覽器的本地支持。
Stage3D加速圖形渲染*
探索Adobe高性能2D/3DGPU硬體加速圖形渲染的新架構,為應用程序高級渲染提供了低級Stage3DAPI,帶來互動體驗類的框架開發。
*個人計算機的初始支持。
滑鼠控制
針對新的內容類別製作身臨其境的全景游戲,其中包括需要利用無限滾動、滑鼠鎖定、相對坐標以及右鍵和中鍵事件的第一人稱視角游戲。
三次Bezier曲線
輕松創建復雜的三次Bezier曲線,無需通過cubicCurveTo繪制API自定義ActionScript®API。
增強的高解析度點陣圖支持
可以開發使用大量點陣圖的應用程序。BitmapData對象不再局限於16兆像素(16,777,215像素)的最高解析度,最大點陣圖的寬度/高度不再局限於8,191像素。
非同步點陣圖解碼
通過解碼初始載入而非點播載入的圖像,提高應用程序的響應,提供更流暢的動畫。圖像視需要緩存。
創造令人贊嘆的媒體體驗
藉助FlashPlayer的高級音頻和視頻功能創造令人贊嘆的媒體體驗。
相機的H.264/AVC軟體編碼
來自您的計算機攝像頭的美麗流媒體視頻,具有更高的壓縮效率和行業廣泛的支持,實現高品質的實時通信(例如,視頻聊天和視頻會議)和視頻直播節目。
受保護的HTTP動態流化(HDS)
跨設備保護流視頻,同時取消部署復雜的許可證伺服器。
多線程視頻解碼
提供流媒體和實時交互視頻,改進了播放性能並提高了Windows、MacOS和Linux系統上運行的高比特率內容的幀速率。
回聲消除(僅限桌面)
向游戲、企業和其他類型應用程序添加實時VoIP功能,而無需用戶佩戴降噪耳機。用戶可以使用台式機或攜帶型計算機內置的喇叭進行聊天。
高質量視頻編解碼器
通過漸進式下載、HTTP流或RTMP流,提供高達1080p的高清(HD)質量視頻,足以媲美當今最佳的視頻編解碼器,包括網路上最流行的視頻格式On2VP6、On2VP6-S和行業標准H.264。
Speex音頻編解碼器
充分利用高清晰、開放源代碼Speex語音編解碼器,它為語音編碼提供了等待時間較短的備選方案。FlashPlayer還支持ADPCM、HE-AAC、MP3和Nellymoser。
內容保護
回放使用FlashPlayer中的AdobeFlashAccess保護的媒體可支持各種業務模型,包括用於流化和下載的視頻點播、租賃和電子售出。
HTTP動態流化
使用標准HTTP基礎結構和SWF級回放組件,交付視頻點播和實時多位速率流化。交付直播和錄制媒體,包括對FlashAccess的HTTP流媒體視頻的全面內容保護。
電話的G.711音頻壓縮
通過FlashMediaGateway(FMG)和其他第三方客戶端(通過開放RTMP協議),支持與傳統電話系統的互操作性,而無需轉碼。
StageVideo硬體加速
在嵌入式和全屏模式下,享受網路上高清晰度H.264視頻的優美、流暢回放。AdobeFlashPlayer利用StageVideo硬體加速視頻管線,具備更高的幀速率和更低的功耗。
InternetExplorer9硬體加速渲染支持(僅限桌面)
充分利用InternetExplorer9中的硬體加速圖形,藉助硬體渲染表面提高圖形性能並實現無縫合成。
H.264視頻硬體解碼
跨支持的設備以最低的開銷交付順暢的高品質視頻。硬體解碼卸載CPU任務、改進視頻回放、降低系統資源的使用、維持電池壽命。
快速切換
藉助根據不斷變化的網路條件自動調整的流顯示出眾的視頻效果。FlashPlayer經過增強,縮短了位速率之間的切換時間。
AdobeFlashAccess®
利用關鍵旋轉支持、V3許可證鏈接、域名支持、增強輸出保護以及設備過濾功能。
流重新連接
即使連接中斷時,也可以通過緩沖區播放RTMP流。在ActionScript中加入重新連接邏輯,重新建立伺服器連接並在不中斷視頻的情況下繼續流化。 延伸FlashPlayer的運行時功能,在瀏覽器中實現前所未有的用戶體驗。
圖形多核支持
藉助利用最多四個CPU的多核支持加快矢量、點陣圖、濾鏡和視頻呈現,其中包括真正的1080p視頻。
矢量數據類型
使用類型化數組類實現更高的數據性能、效率和錯誤檢查效果。
ActionScript3.0
實現卓越的性能,通過:復雜的應用程序;大型數據集;基於ECMAScript標准(ECMA-262)的ActionScript3.0面向對象的可重用代碼庫。
全局錯誤處理
編寫一個處理程序就可以處理之前不屬於try/catch語句的所有運行時錯誤。通過捕捉和處理意外運行時錯誤和顯示自定義錯誤消息,改善應用程序可靠性和用戶體驗。
麥克風訪問(僅限桌面)
訪問來自麥克風的實時和連續波形的二進制數據,以創建新類型的音頻應用程序。
動態生成聲音
使用增強的聲音API生成音頻並創建新的音頻應用程序類型,如混音器和音序器、游戲實時音頻、甚至音頻觀測儀。實時處理、過濾和混合音頻。
繪制API
藉助可重新設置樣式的屬性、3DAPI以及無需逐行編碼即可繪制復雜形狀的新方式,更輕松地完成運行時繪制。
文本引擎
使用新的、極其靈活的文本布局引擎創建新穎的文本控制,該引擎與TextField並存,後者提供對文本布局和交互API的低級訪問,用於創建組件級文本對象。
二進制文件支持
藉助對二進制數據的直接位元組訪問,增強您的網路應用程序。通過為新的文件和數據類型添加支持等新方式控制和訪問數據,或實時處理聲音數據以創建新的聲音效果。
緩沖的流追趕
處理點陣圖、將矢量數據復制到點陣圖中以及在運行時使用點陣圖效果。
上下文菜單
通過對常見文本欄位上下文菜單項使用支持純文本和富文本的ActionScriptAPI,控制上下文菜單中可以顯示的內容。剪貼板菜單以安全、受控方式提供對剪貼板的訪問。
音頻硬體解碼
藉助硬體加快音頻解碼、避免CPU密集型分析和解壓縮,從而降低了移動設備的CPU負載和延長電池壽命。
硬體加速
利用圖形卡的硬體處理能力將SWF文件繪制到瀏覽器中並加快點陣圖、濾鏡、混合模式和視頻疊加的合成計算,與軟體處理相比速度更快。
全屏、硬體加速模式
為用戶提供硬體加速、多核增強、全屏視頻回放功能,實現跨主要操作系統和瀏覽器的高解析度觀看。
圖形呈現
在運行時享受快速、高質量的按比例圖像縮減。通過點陣圖緩存減少矢量和圖形呈現,提高性能。.
消除鋸齒引擎(Saffron3.1)
藉助增強的Saffron和消除鋸齒引擎,享受消除鋸齒後更高的文本性能和質量,對於亞洲字元呈現尤為明顯。筆觸字體支持降低了內存要求。
ActionScriptVirtualMachine2
充分利用ActionScript3.0以及為富Internet應用程序優化的AVM2。AVM2包含一個JIT編譯器,它可以將ActionScript位元組代碼轉換為本機代碼,從而實現最高執行速度。
優化的SWF管理(僅限移動)
優化移動CPU和內存限制的SWF載入和回放,以提供更好的用戶體驗。不查看時會自動暫停SWF回放,從而降低CPU、電池和內存使用。
睡眠模式(僅限移動)
通過在移動設備轉入屏幕保護程序或類似模式時減慢FlashPlayer定時器,降低移動設備上的CPU和電池消耗,並且不中斷音頻/視頻回放。來電使FlashPlayer暫停。
FlashPlayer高速緩存
使用開放源代碼Flex框架等公用平台組件構建應用程序,縮小SWF文件大小並縮短應用程序下載時間。FlashPlayer可以將公用組件放入本地高速緩存,然後供任何域的SWF文件使用。
周期定時器
通過消除對不同瀏覽器定時器實時的依賴性,實現一致的跨平台行為,降低CPU使用並延長電池壽命。以任意幀速率回放視頻,增加回放保真度。
輕量級應用程序大小
輕量級、二進制SWF文件格式使您能以較小的文件提供引人入勝的內容。
漸進式應用程序載入
縮短啟動時間,實現快速的用戶體驗。FlashPlayer在下載時執行SWF內容。
硬體加速視頻演示
在嵌入式和全屏模式下,享受網路上高清晰度H.264視頻的優美、流暢回放。AdobeFlashPlayer利用StageVideo硬體加速視頻管線,具備更高的幀速率和更低的功耗。 降低跨不同設備、軟體、網路和用戶環境創建、測試和部署內容的成本,最終提高經營業績。
跨平台和瀏覽器一致性
創建能以一致、可靠、向後兼容並且安全的方式訪問的內容,並且可以跨主要操作系統和瀏覽器訪問它們。通過重用代碼、資源、框架、工具和服務,為桌面和移動平台創建應用程序、內容和視頻。
快速採用
使用最新功能設計內容,並在幾個月內瞄準主體用戶。快速採用FlashPlayer的新發行版使開發人員能藉助尖端技術獲得更多用戶。
安裝簡單
為用戶提供了順暢的上下文升級體驗。FlashPlayer包含快速安裝和自動更新通知功能,實現FlashPlayer新發行版的快速採用,開發人員可以自信鎖定這樣的目標。
FlashPlayer後台更新
藉助此次針對Windows系統進行了功能增強的更新機制,現在可以向終端用戶更有效率地提供新版本的運行時。 利用Android™、BlackBerry®Tablet和iOS操作系統的本機文本輸入控制項,開發移動應用程序。
移動平台支持
向移動設備提供內容。目標移動操作系統包括Android和BlackberryTabletOS。合作夥伴可以獲得一個移植工具包和基於Linux®的參考實施,用於將FlashPlayer移植到其他平台。
StageVideo硬體加速
在嵌入式和全屏模式下,享受網路上高清晰度H.264視頻的優美、流暢回放。AdobeFlashPlayer利用StageVideo硬體加速視頻管線,具備更高的幀速率和更低的功耗。
移動文本輸入
如果未檢測到物理鍵盤,可以藉助TextField支持使用本機設備虛擬鍵盤輸入文本。在移動設備上編輯文本時,會自動升起和降下一個虛擬鍵盤,從而實現無阻、直觀的文本編輯。
多觸和手勢
藉助面向多觸和本機手勢事件的全新ActionScript3.0API,充分利用最新的硬體和操作系統用戶交互功能。為廣泛的設備創建多觸感知內容。
加速計輸入
將加速計輸入用於用戶輸入控制以及控制屏幕方向。從本機設備加速計感測器讀取x、y、z軸的加速值,指定計算機的更新速度以節省電池壽命。
H.264視頻硬體解碼
跨支持的設備以最低的開銷交付順暢的高品質視頻。硬體解碼卸載CPU任務、改進視頻回放、降低系統資源的使用、維持電池壽命。
音頻硬體解碼
藉助硬體加快音頻解碼、避免CPU密集型分析和解壓縮,從而降低了移動設備的CPU負載和延長電池壽命。
優化的SWF管理(僅限移動)
優化移動CPU和內存限制的SWF載入和回放,以提供更好的用戶體驗。不查看時會自動暫停SWF回放,從而降低CPU、電池和內存使用。
睡眠模式(僅限移動)
通過在移動設備轉入屏幕保護程序或類似模式時減慢FlashPlayer定時器,降低移動設備上的CPU和電池消耗,並且不中斷音頻/視頻回放。來電使FlashPlayer暫停。
硬體加速視頻演示
在嵌入式和全屏模式下,享受網路上高清晰度H.264視頻的優美、流暢回放。AdobeFlashPlayer利用StageVideo硬體加速視頻管線,具備更高的幀速率和更低的功耗。
本機文本輸入UI(移動)
移動應用程序現在可以利用Android、BlackBerryTablet和iOS操作系統上的本機文本輸入控制項,包括特定平台的用戶交互行為,例如放大倍率和文本選擇。
與Android瀏覽器渲染引擎更進一步的集成(需要Android3.0.1或更高版本)
由於FlashPlayer與增強的Android3.0瀏覽器進一步集成,您可以充分利用豐富的互動式網路內容更快、更好的渲染實現更順暢、響應更快的瀏覽體驗。
智能手機
您可以感受到為充分利用新款智能手機和Tablet中的下一代處理器而度身定製的性能提升。FlashPlayer以智能方式利用多核和GPU技術流暢地交付FLV文件。
自動軟鍵盤支持
在與豐富內容交互、需要鍵盤輸入的觸摸屏設備上享受更出眾的體驗。簡化需要鍵盤輸入的應用程序開發,使其易於優化移動設備的桌面應用程序。
移動文本輸入
如果未檢測到物理鍵盤,可以藉助TextField支持使用本機設備虛擬鍵盤輸入文本。在移動設備上編輯文本時,會自動升起和降下一個虛擬鍵盤,從而實現無阻、直觀的文本編輯。
多觸和手勢
藉助面向多觸和本機手勢事件的全新ActionScript3.0API,充分利用最新的硬體和操作系統用戶交互功能。為廣泛的設備創建多觸感知內容。 通過本機JavaScript對象表示法(JSON)、套接字進度事件、JPEG-XR支持、增強SWF壓縮、垃圾收集API和刪除容器的子組件,提高您的開發馬力。
本機JSON(JavaScript對象表示法)
ActionScript開發人員現在可以利用高性能本地解析和生成JSON格式數據。開發人員可以將現有數據無縫集成到他們的項目中。
垃圾收集通知
GC通知API對垃圾收集進度提供了額外的控制,使垃圾收集過程不會破壞用戶體驗。
JPEG-XR支持
支持JPEG-XR高級圖像壓縮標准(國際標准ISO/IEC29199-2),具備比JPEG更高效的壓縮,同時支持有損和無損壓縮,並增加對alpha通道透明度的支持。
高效率SWF壓縮支持
利用LZMA壓縮減少SWF文件大小高達40%,通過縮短下載時間和減少帶寬消耗,使用戶能夠從更豐富的體驗中受益。
新的removeChildrenAPI
DisplayObjectContainer現在實施了removeChildrenAPI,使開發人員能夠運用單一API調用,快速刪除容器的所有子對象。
新的MovieClip屬性
利用新的MovieClip.isPlaying特性,返回MovieClip的當前播放狀態。
套接字進度事件
通過確定寫入緩沖區剩餘位元組數的新特性以及數據發送至網路層的新事件,改進數據傳輸管理。新的API允許應用程序輕松跟蹤進展情況並提供反饋。 通過FlashPlayer中的本機設備功能實現高度創新的電影體驗來吸引用戶。
3D效果
從2D開始,然後將您的動畫轉換為3D。AdobeFlashProfessional軟體簡單易用的API和3D工具實現動態動畫,原先只是有經驗的ActionScript®用戶或自定義第三方庫才能實現。
MacOS自動更新通知
添加實時動態效果,如模糊、投影、發光、斜角、漸變發光等。使用混合模式、徑向漸變以及與通過PixelBender技術創建的自定濾鏡和效果結合的筆觸增加創作選項。
自定義濾鏡和效果
創建電影體驗實時效果。藉助PixelBender,效果既可用於AdobeAfterEffects®CS5軟體的作品製作,也可以與FlashPlayer一起實時使用。將獨特的濾鏡、效果和混合模式應用於所有顯示對象。
子像素文本渲染
FlashPlayer中的文本可讀性得到改進,尤其對於基於復雜字元的語言。
高級文本支持
充分利用靈活的文本引擎,它為網路帶來了印刷級出版。藉助開放源代碼文本布局框架獲得對文本布局更高的控制力,這是一個用於創建多語言網路應用程序的可擴展庫。
移動文本輸入
如果未檢測到物理鍵盤,可以藉助TextField支持使用本機設備虛擬鍵盤輸入文本。在移動設備上編輯文本時,會自動升起和降下一個虛擬鍵盤,從而實現無阻、直觀的文本編輯。
本機自定義滑鼠游標
定義自定義本機滑鼠游標,從而增強用戶體驗和提高性能。
多觸和手勢
藉助面向多觸和本機手勢事件的全新ActionScript3.0API,充分利用最新的硬體和操作系統用戶交互功能。為廣泛的設備創建多觸感知內容。
加速計輸入
將加速計輸入用於用戶輸入控制以及控制屏幕方向。從本機設備加速計感測器讀取x、y、z軸的加速值,指定計算機的更新速度以節省電池壽命。
動畫與合成
藉助Alpha通道、蒙版和圖層支持等動畫及合成功能為設計注入活力。創建與圖像及視頻集成、令人贊嘆的動態圖形。
圖像導入
動態導入GIF、漸進JPEG和PNG文件。
顏色校正
交付顏色准確的網路應用程序,令喜愛的網路目標外觀如您所願。顏色校正可以與顯示器的ICC顏色配置文件配合,允許您將SWF文件轉換為標准RGB。
3D效果
可處理高達16,777,216像素(4096x4096)的大型點陣圖,每側最大長度可達8191像素。 利用新的隱私功能為用戶提供更多的安全性和存儲控制,帶來更加透明和可信的體驗。
安全隨機數生成器
開發人員現在可以利用加密安全隨機數生成來構建更安全的演算法和協議。
TLS安全套接字支持
利用客戶端/伺服器應用程序對安全通信的全新支持。
簡化本地存儲管理
以簡單與集成的方式進一步控制用戶隱私,通過瀏覽器隱私設置界面清除本地存儲,就像現在用戶清除他們的瀏覽器cookie一樣。
本地設置管理器
藉助簡化的控制更輕松地管理FlashPlayer隱私、安全性和存儲設置。用戶可以從Windows®、Mac和Linux®計算機的控制面板或系統首選項直接訪問FlashPlayer設置管理器。
MacOS自動更新通知
由於MacOS上支持軟體更新自動通知,您可以更輕松地隨時使用最新的新增功能。 創建各種應用程序,它們與瀏覽器密切集成、充分利用本地系統資源並為用戶提供了更安全的體驗。
非同步點陣圖解碼
通過解碼初始載入而非點播載入的圖像,提高應用程序的響應,提供更流暢的動畫。圖像視需要緩存。
二進制套接字
充分利用與現有自定協議的互操作性,藉助緊湊的數據表示法提高數據傳輸性能。
共享對象
在本地計算機或伺服器上的SWF文件之間實時共享數據。
二進制數據訪問
藉助開放、緊湊的ActionMessageFormat(AMF)交換二進制數據。通過ActionScript對象序列化,保持和檢索 應用程序狀態。
本地連接
在同一客戶端上運行的應用程序之間傳輸和共享數據。
全球化支持
使用操作系統區域設置首選項或與當前選定區域設置無關的特定格式處理文本和列表,並根據位置環境顯示信息。
文件上載和下載API
允許用戶從您的網路應用程序上載並保存文件,為他們帶來真實體驗。新的文件參考運行時訪問無需往返伺服器,即可實現本地數據處理。
輸入法編輯器
通過從您的應用程序中訪問操作系統IME,實現本地化輸入。
讀/寫剪貼板訪問
允許用戶通過剪貼板菜單以安全、受控的方式訪問剪貼板,以便您編寫用於粘貼文本的處理函數。
瀏覽器專用模式(僅限桌面)
使用主機瀏覽器的「專用瀏覽」模式,因此不會在本地保留本地數據和瀏覽活動,為SWF和HTML內容提供了一致的專用瀏覽機制。在Firefox、Chrome和InternetExplorer中受支持。
內存不足管理
當SWF文件嘗試分配的內存超出設備上的可用內存時,通過關閉相應實例,自動防止內存不足瀏覽器崩潰。
外部API
通過外部FlashPlayerAPI與基於HTML、DHTML和Ajax的網路應用程序集成。
提供一致的網路體驗
Adobe致力於通過採用開放技術推動創新,提供一致、與眾不同的網路體驗。
開放規范
創建產品和技術,它們實施了SWF、FLV/F4V、RTMP和AMF規范。Adobe使開發人員能輕松訪問這些規范。
開放源代碼支持
利用Adobe對開源活動的支持,包括Tamarin開源項目的ActionScript虛擬機,提供一個開源Flex框架,並支持Linux版FlashPlayer。
公共缺陷庫
通過FlashPlayer公共缺陷和問題管理系統請求新功能、報告缺陷、為缺陷投票和追蹤狀態。
SWF搜索
依賴於動態網路內容和RIA大幅改善的搜索結果。Adobe通過向主要合作夥伴提供經過優化的FlashPlayer技術,與搜索行業的領先公司合作。
OpenScreenProject
充分利用OpenScreenProject™,這是一個行業聯合的項目,旨在幫助用戶跨多個屏幕順暢訪問和共享豐富的內容,而無論所使用的設備、操作系統、瀏覽器或網路。
Ⅳ 關於ASP連接Excel資料庫無法更新的問題
為什麼會有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對象,然後用少量的腳本語言來驅動/使用這些對象。這樣系統開發時工作量會大一些,但它符合開發任何資料庫應用程序的最基本的原則:分離應用邏輯與用戶界面。這樣系統就會變的容易維護了——你可以經常變換那些膠水程序來改變Web頁面,應用邏輯變換時你又可以改變某一個邏輯對象,而不用為雜亂且關系復雜的代碼發愁。再者,由於Visual FoxPro是高效、靈活的數據處理語言,任何商業邏輯都可以用它來代碼化,並且您可以獲得幾十倍甚至上百倍於ASP+腳本語言的運行效率,以及更為強健的執行效果。
Visual FoxPro 的語言看上去蠻難的。
人們在贊揚 Visual FoxPro 始終是褒揚他的易學易用,我不同意這種觀點(我不知道他們站在什麼立場上說話)。我看問題的角度是「成為一名還過得去的 Visual FoxPro 程序員」,我的結論是Visual FoxPro 作為一個開發工具並不是好學的。這不是說Visual FoxPro的語法、概念像C那麼繁復,而是指:即使是簡單的應用,也要掌握很多Visual FoxPro的概念、語法、函數,可能還要較深入了解OOP——往往讓人摸不到深淺。比如,拿資料庫系統最重要的功能——查詢來講,Visual FoxPro就「花樣繁多」。我曾統計過,不算「List、Browse"等互動式命令,Visual FoxPro起碼支持4條命令(Find,Seek,Locate,Select-SQL)、3個函數(Lookup(),Seek(),Indexseek()),(當然其中有的已經淘汰)這些命令的關鍵字、函數的參數眾多,有的要求索引, 有的可以用索引但要求優化索引……而這在VB、Delphi中絕對就只是兩三個方法的事情。從上面的例子中如果您只看到了Visual FoxPro的繁雜,那麼您就完全錯了:在VB、Delphi實現查詢功能的原理與Visual FoxPro應是一樣的,但他們封裝了許多環節,而Visual FoxPro就把許多東西更低階(當然不如VC++那麼低層次,但是已經比使用對象的語言難多了)的展示給我們,所以Visual FoxPro的開發者往往比使用其他的開發工具開發者更會思考、更懂得的資料庫開發的真諦,因為工具逼迫他們朝這個方向努力……
用Visual FoxPro有助於提高程序員對資料庫概念的理解。許多在Visual FoxPro程序員中不是問題的問題往往成為那些使用對象處理數據的程序員的噩夢。比如在Visual FoxPro中數據緩沖、事務處理都是重要的概念(事實上要幹活就必須了解這些東西),在其他開發環境中一味強調方便快速往往忽視程序員的基本概念培養,編出的東西要麼效率不高、要麼老出問題。讀書人都懂得:基本概念、基本理論是命根子,這就是Visual FoxPro帶給我們的好處。
有趣的是Visual FoxPro繁、難也就到這個程度了 ,他的學習難度曲線是所有語言中最平穩的——不像在有些語言中,基礎開發十分容易,一旦深入卻難度很高。在Visual FoxPro中初級應用、中級應用、高級應用的難度差異很小——就是那些似曾相識的語句、易於理解的函數。Visual FoxPro的這種高級應用不太難,初級應用不十分容易的特性,對初入門者來講是無法體會其中的妙處的,這就造成了Visual FoxPro的不太友好形象;
同時,Visual FoxPro的難度卻帶來了很多的好處(前文我已談了很多),Visual FoxPro比其他語言在數據處理上更快速、更靈活,數據處理方式更多、更完備。設想一下用Visual FoxPro開發數據對象時,我們可以使用豐富多彩的語句、函數,實現十分復雜、變化多端的功能,用其他語言開發數據對象,它們的功能只能是建立在已有的數據對象的功能之上(這叫繼承),變化就少了,功能就弱了。如果要實現Visual FoxPro的Xbase+SQL 那樣靈活、強大的功能恐怕要使用底層的API了——這太可怕了!
OOP不僅是指「面向對象」的開發環境,更是一種開發思想、開發技術,Visual FoxPro 在後者上做得更好。
我們講過Visual FoxPro完全支持OOP的開發,但有趣的是在數據處理方面,微軟實際上沒有提供什麼現成的對象(FFC是Visual FoxPro 6.0才有的,且封裝性、適應性都不盡如人意),這一點我不知是Visual FoxPro的福氣還是禍害。說「福氣」這將逼迫程序員掌握這門並不太簡單的技術(可能用「思想方法」更恰當),而不是簡單地使用對象。OOP對於中間層的開發來講是很重要的,因為COM組件必須是建立在OOP思想上的,要開發這種組件就必須掌握OOP技術;講「禍害」這使Visual FoxPro變得不易於學習和使用了(就我個人而言,真正體會到「用Visual FoxPro應會編制數據處理對象」這一問題也是在使用了Visual FoxPro好長時間之後的事情了)。事實上現在很多誹謗攻擊Visual FoxPro的人都沒有深刻的認識這一問題——他們只感到Visual FoxPro用起來不及Delphi、PB、VB容易,但他們從不想該怎樣開發數據處理對象,到編寫COM組件時就要他們的命了。那些「精英們」大多不懂OOP,他們只懂「點」操作符號——彷彿對象的使用就是OOP,他們有什麼資格來批評我們呢?
Visual FoxPro的界面能力真的很差嗎?
我認為作為資料庫系統的開發工具微軟為我們提供的那些內置控制項加上十幾個附送的ActiveX控制項已經夠用了。
我們討論Visual FoxPro控制項應從兩方面入手,第一就是界面美觀問題,再就是數據處理、分析是否方便。很多人很在意的前一個問題,我倒是不以為然——控制項不多特別是美化界面的控制項不多並不代表Visual FoxPro就開發不出賞心悅目的軟體,我的感受是軟體界面的專業化程度、高級別的審美、整體的效果要比個別的界面特效重要千萬倍,實際效果可要好上千萬倍。看看國外用Visual FoxPro編制的程序您就會明白這個道理了;我對Visual FoxPro的不滿在於數據處理、分析控制項不全,特別是缺少了一批數據分析控制項。比如沒有可以與數據捆綁的圖表控制項、沒有可以列示捆綁交叉表的表格控制項、沒有可以捆綁數據的數據透視表格控制項……在這個問題上Visual FoxPro確實應該向Delphi、PB等軟體學習,這是我們對未來的Visual FoxPro的期望!
Visual FoxPro與OLE DB、ADO
ADO是Windows環境下主流的數據存取的解決方案,那些以對象操作數據的語言基本上都使用ADO實現數據存取,如:VC++、VB、Delphi。在Visual FoxPro的開發環境中好像看不到ADO的影子,是不是Visual FoxPro不支持ADO呢?ADO其實是一組COM對象,Visual FoxPro支持COM,當然支持ADO。
我認為:Visual FoxPro對ADO的支持只是停留在較低的水平。這並不是說Visual FoxPro限制了什麼ADO的功能(所有功能都能用),而是指:用起來不方便,不像在VB、Delphi中方便。這種不方便主要體現在ADO的Recordset無法與Visual FoxPro的內置控制項捆綁。其原因是:Visual FoxPro 不認識ADO的Recordset,只能將記錄逐條讀取,而不是一下子認得整個Recordset。這樣數據就不能被捆綁了,同時也不能對ADO直接使用Visual FoxPro強大的數據處理功能(ADO是用來存取數據而處理數據還要靠客戶軟體)。
就象Visual FoxPro使用ODBC連接遠程數據源那樣,ADO通過OLE-DB與數據提供者對話。 (By the way: Visual FoxPro 7是OLE-DB提供者,這樣就可以 通過正宗的OLE-DB驅動程序在其他開發工具中使用ADO存取Visual FoxPro數據了 。)
ADO能為Visual FoxPro帶來什麼?首先要注意的是:ADO與Visual FoxPro的數據引擎是毫無關系的系統,從某種程度上講ADO的出現為Visual FoxPro提供了一種全新的遠程數據處理方式。
ADO是多層應用程序中數據集合傳遞的最好解決方案。如果我們用Visual FoxPro開發了一個中間層系統,用VB開發了用戶界面,當中間層要傳遞一個cursor到VB的客戶端就不可以使用Visual FoxPro的cursor或DBF,因為VB不認得他們。使用ADO的Recordset就可以解決問題,因為大家都認得他;Visual FoxPro 只能通過Visual FoxPro 7支持XML後才能彌補Visual FoxPro本地引擎在應用程序傳遞數據集的不足。
ADO可以存取非關系型資料庫。ADO是微軟的Universal Data Access構架的主將,它可以存取Excel等非關系型數據資料庫的數據。通過ODBC存取遠程數據的Visual FoxPro就無此能力了。但是我使用了ADO存取Excel後很失望,因為連接必須是獨占的,所以這種功能帶給我們的幫助只是有限的!
ADO可以彌補Visual FoxPro在遠程數據存取時的不足之處。譬如Visual FoxPro不認得SQL Server中nText、nVarchar、nChar等數據類型,但ADO可以。
在Visual FoxPro使用ADO存在如下缺點:
Visual FoxPro只能通過COM的方式識別ADO的Recordset,不能像表格那樣讀寫它,這樣就出現了兩個問題:Recordset無法與Visual FoxPro的內置控制項捆綁;無法直接使用Visual FoxPro強大的數據處理功能(ADO是用來存取數據而處理數據還要靠客戶軟體)。
Visual FoxPro中使用代碼實現ADO的全部功能,但代碼量大、書寫麻煩。
對待以上不足Visual FoxPro開發小組在Visual FoxPro 6推出不久後就發布了一個叫VFPCOM.DLL的組件,可以用它部分解決ADO的Recordset與Visual FoxPro的cursor的轉換和ADO事件的綁定 ,Visual FoxPro 更是內置支持 COM 事件綁定。在本文的第一版中,筆者曾有這樣的希望:「Visual FoxPro 更具效率的支持ADO」。現在我的看法有了一些改變,我認為在 Visual FoxPro 處理數據,無論是本地、還是遠程數據,無論是什麼構架的系統,最佳的解決方案認識內置的數據引擎,而不是現在流行的ADO,現在 Visual FoxPro對ADO的支持程度已經足夠了!
Visual FoxPro的數據引擎與ADO相比有什麼優勢呢?
Visual FoxPro數據引擎系統資源耗用小,ADO畢竟是COM組件要花用更多的資源。
作為系統共用組件,使用ADO可能會在不同應用系統中產生ADO的版本問題,這就像我們常遇見的ActiveX的控制項版本問題。
ADO只是數據存取組件,它沒有數據處理功能,要處理數據必須使用客戶應用程序,如VB、Delphi。Visual FoxPro數據引擎同時支持數據存取、數據處理,我已多次強調Visual FoxPro在這兩方面的偉大功能;
ADO沒有本地資料庫作為強大的支持,有需要將遠端數據暫時存放在物理文件中ADO絕對不及Visual FoxPro。Visual FoxPro的資料庫是桌面資料庫中最好的,遠端數據暫存其中不僅方便,而且伸縮性強。