動態外部物件(Dynamic External Objects)是一項獨特的技術,它不僅允許用戶,還允許應用程式透過網路(很快就會透過 Web)共用類別。
您無需將表單、程式、類別和報告連結到必須手動安裝在每個工作站上的單一可執行檔中,而是部署一個shell – 一個簡單的dBASE 可執行文件,它會呼叫初始表單,或提供一個可從中存取的啟動選單您的表單和其他 dBASE 物件。 shell 執行檔可以是一個簡單的程序,如下所示:
執行startup.prg
其中「startup.prg」可以是啟動應用程式的每個目錄中的不同「.pro」對象,也可以是動態建立動態上下文相關選單的程式。
動態物件可以是可視的,也可以是僅包含「業務規則」的類,用於處理和發布事務,或保存和檢索資料。
這些物件中的每一個都可以由所有使用者以及呼叫它們的所有應用程式在網路上共用。
例如,您可能有一個在客戶追蹤應用程式中使用的客戶表單,但也可能由您的聯絡人管理程式以及應收帳款模組使用。 假設您想要更改表單上的一些欄位或新增驗證或計算例程。
沒問題,只需編譯新表單並使用 Windows 資源管理器將其拖曳到伺服器上的相應資料夾即可。 每個用戶和應用程式都會立即更新。
使用動態外部物件的好處:
更新物件只需要簡單的拖放操作。 無需註冊,無需接口文件,無需應用程式伺服器。 更新從未如此簡單。
雖然物件位於網路伺服器上,但它們在工作站上運行,從而顯著減少伺服器上的負載,並有效利用網路上的所有本地處理能力。
您的 LAN 和您的網站可能會共用相同的(非視覺)物件。 動態外部物件非常小且載入速度非常快。 它們的大小很少超過 140K,並且通常運行小於 100K。
而且,最值得注意的是,這是唯一支援完全繼承的物件模型之一。 您不能從 ActiveX/OCX 物件繼承。 您可以在 CORBA 中繼承 Java 對象,但這非常困難,很少有人嘗試。
使用 dBASE,繼承外部物件是小菜一碟:
更改超類別表單的佈局,每個應用程式中的每個表單都會在下次呼叫時繼承這些變更。
你的公司更名了嗎? 改變了你的標誌? 將新的.cfo檔案拖放到伺服器上,更新完成
實現動態對象
- 像平常一樣編譯原始碼。 DEO 使用編譯程式碼。 在dBASE中,編譯後的程式碼可以被識別,因為它的檔案副檔名以“o”結尾。 .Rep 編譯後變成 .Reo,.Wfm 變成 .Wfo,等等。
- 僅建置(建立可執行檔)主啟動表單,或使用預先建置的通用啟動表單。
- 將您的物件複製到伺服器。
Done !
與來源別名一樣,DEO 具有查找物件庫的機制,使得在網路和應用程式之間共用它們變得更加容易。 此機制基於可選搜尋列表,該列表是使用應用程式的 .ini 檔案中的簡單文字變更建立的。
dBASE 依下列方式(順序)搜尋物件:
- 它會查找啟動應用程式的“home”資料夾。
- 它在 .ini 檔案中尋找是否指定了一系列搜尋路徑。 它檢查清單中的所有路徑,尋找應用程式請求的目標檔案。
- 它查看應用程式的 .exe 檔案內部,就像 Visual dBASE 過去所做的那樣。
假設您有一個計劃在其中儲存共享物件的庫。 我們還假設該應用程式名為“Myprog.exe”並從 c:\project1 資料夾運行。
在Myprog.ini中,我們可以加入以下語句:
[ObjectPath]
objPath0=f:\mainlib
objPath1=h:\project1\images
objPath2=f:\myWeb
您的程式碼如下所示:
set procedure to postingLib.cc additive
- dBASE 先會找 c:\project1(主目錄)。
- 如果失敗,dBASE 將在 f:\mainlib 中尋找。 如果它找到postingLib.co,它將載入該版本。 如果沒有,它將查找清單中的每個剩餘路徑,直到找到目標檔案的副本。
- 如果失敗,dBASE 將檢視 MyProg.exe 內部。
Tips
您必須嘗試使用 DEO 來發現編寫和部署應用程式的最佳方法。 但是,您可以利用以下一些有趣的微妙之處來獲益:
- 意外更新(Unanticipated updates):
假設您已經將 dBASE 應用程式作為完整的可執行檔發布。 現在您想要對一個模組進行更改。 沒問題,只需將目標檔案複製到應用程式的主目錄即可使用它,而不是可執行檔中內建的檔案。 您不需要像在大多數其他應用程式開發產品中那樣重新部署完整的應用程式。 只是改變了對象。
- 報告(Reports):
您可以部署報告並將其新增至應用程式中,方法是設計一個報告選單,檢查磁碟上是否有副檔名為 .reo 的檔案。 讓選單從文件列表中自行建立。 這裡我們有真正的動態物件 – 應用程式甚至直到運行時才知道它們存在。 DEO支援即時動態應用。
- 技術支援(Tech Support):
想要嘗試一些程式碼或將修復程式部署到客戶站點或遠端分支機構嗎? 沒問題,只需將目標檔案透過 FTP 傳輸到遠端伺服器即可完成更新。
- 遠端應用程式(Remote Applications):
如果您有 VPN 支援(或任何將 Internet 連線對應到磁碟機號碼的方法),您可以透過 Internet 遠端執行 dBASE DEO 應用程式。 dBASE 的未來版本將包括 URL 和 IP 位址解析,以便您可以直接透過 TCP/IP 存取遠端對象,而無需中間件支援。
- 分散式物件:
物件可以位於伺服器上的單一資料夾、網路中的各個資料夾中,或複製到最多十個資料夾中以進行故障轉移。 如果您的一台伺服器關閉,且某個物件不可用,dBASE 將搜尋清單中的下一個位置,直到找到可以載入的位置。 物件可以位於工作站可以找到的任何位置。