powerbuilder tips powerbuilder 11 .net window form編譯(just in time...

12
M-Power eNews VSD 加值服務部 李煌乙 OCT 08 M-Power eNew 本篇文章版權為倍力資訊股份有限公司所有,未經書面同意,嚴禁複製、轉載 Page 1 of 12 PowerBuilder TipsPowerBuilder 11 .NET Window Form 1991PowerBuilder1.0問世,功能強大的datawindow開啟了PBC/S(client/server)應用 開發工具輝煌的10年。2002PB8撘配EAServer提供N-tier的應用程式架構,讓PB客戶不再只 侷限於C/S的應用,得以挾PB工具的優勢跨入web應用的領域。2007PB11因應ASP .NET流,推出一系列.NET Target的新功能,能夠幫助客戶直接將傳統的PB script程式碼轉化為能夠 .NET環境上運作的執行碼,如此一來PB script就能夠隨著.NET的發展在更多的應用上發揮。 我們本次的主題就是介紹PB11中的.NET Window Form,讓我們來看看求新求變的PB,在PB11 中如何能夠協助客戶們開發時下正熱的.NET應用吧! .NET簡介 什麼是.NET?要認識他其實很簡單,它是一個軟體開發的架構,在這個架構中它包含了一 個叫.NET Framework的框架,這個類似於Java語言中JVM角色的框架,它允許程式設計師用不 同的語言來開發應用程式,所有被開發出來的程式都在其上運作,如此一來程式設計師在程式設 計時就不需要去處理一些煩瑣的細節,如:資料存取、資料庫聯結、安全性、加密、數值演算法 和網路通訊等底層的問題,這些都由.NET Framework來提供,程式設計師只要專注於商業邏輯 的部份即可,且有很大的可能性,.NET在未來也能夠發展成像Java一樣擁有跨平台的能力, .NET並不僅侷限於web應用程式的開發,像是.NET Window Form.NET Webservice.NET Assembly ,多面向的應用使其成為最被看好的語言之一,由下圖我們可以看到.NET Framework 的架構。

Upload: others

Post on 26-May-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

  • M-Power eNews VSD 加值服務部 李煌乙

    OCT 08 M-Power eNew

    本篇文章版權為倍力資訊股份有限公司所有,未經書面同意,嚴禁複製、轉載

    Page 1 of 12

    PowerBuilder Tips:

    PowerBuilder 11 .NET Window Form

    1991年PowerBuilder1.0問世,功能強大的datawindow開啟了PB在C/S(client/server)應用

    開發工具輝煌的10年。2002年PB8撘配EAServer提供N-tier的應用程式架構,讓PB客戶不再只

    侷限於C/S的應用,得以挾PB工具的優勢跨入web應用的領域。2007年PB11因應ASP .NET潮

    流,推出一系列.NET Target的新功能,能夠幫助客戶直接將傳統的PB script程式碼轉化為能夠

    在.NET環境上運作的執行碼,如此一來PB script就能夠隨著.NET的發展在更多的應用上發揮。

    我們本次的主題就是介紹PB11中的.NET Window Form,讓我們來看看求新求變的PB,在PB11

    中如何能夠協助客戶們開發時下正熱的.NET應用吧!

    .NET簡介

    什麼是.NET?要認識他其實很簡單,它是一個軟體開發的架構,在這個架構中它包含了一

    個叫.NET Framework的框架,這個類似於Java語言中JVM角色的框架,它允許程式設計師用不

    同的語言來開發應用程式,所有被開發出來的程式都在其上運作,如此一來程式設計師在程式設

    計時就不需要去處理一些煩瑣的細節,如:資料存取、資料庫聯結、安全性、加密、數值演算法

    和網路通訊等底層的問題,這些都由.NET Framework來提供,程式設計師只要專注於商業邏輯

    的部份即可,且有很大的可能性,.NET在未來也能夠發展成像Java一樣擁有跨平台的能力,

    且.NET並不僅侷限於web應用程式的開發,像是.NET Window Form、.NET Webservice、.NET

    Assembly,多面向的應用使其成為最被看好的語言之一,由下圖我們可以看到.NET Framework

    的架構。

  • M-Power eNews VSD 加值服務部 李煌乙

    OCT 08 M-Power eNew

    本篇文章版權為倍力資訊股份有限公司所有,未經書面同意,嚴禁複製、轉載

    Page 2 of 12

    在這個架構中很明顯可以看到.NET能夠支援Visual Basic、C#、C++、VisualJ++、Jscript

    等多種語言的開發,可說是.NET最大的特色,但不只如此,在其架構上運行的程式也能夠呼叫

    舊技術所撰寫的程式如:windows API、COM元件、Active X以及“In-Proc” 的OLE controls,而

    這也相對應的衍生了兩個新名詞:Managed Code(列管碼)與Un-Managed Code(非列管碼)。簡

    單的說,能夠在.NET Framework上運作的程式,就是所謂的Managed Code,而上述的windows

    API、COM元件、Active X以及“In-Proc” 的OLE controls等無法在.NET Framework上運作的就

    稱之為Un-Managed Code。

    不同的程式語言所開發出來的程式之所以都能夠在.NET Framework上運作,其原理是各種

    不同程式語言經過編譯之後通通都會變成MSIL(Microsoft Intermediate Language;微軟中繼語

    言),它的角色類似JAVA的byte code,其本身並無法直接執行,所以在.Net機制中就透過JIT式

    編譯(Just In Time Compiling),在MSIL被喚起執行時會被JIT編譯器翻譯成目的機器原生碼

    (Native Code),然後再交給CLR去執行,CLR是Common Language Runtime的縮寫,它是.NET

    執行環境的虛擬機器,這個機器就是讓.NET程式設計師無須在意程式究竟運作於何種硬體及平

    台的保證。

  • M-Power eNews VSD 加值服務部 李煌乙

    OCT 08 M-Power eNew

    本篇文章版權為倍力資訊股份有限公司所有,未經書面同意,嚴禁複製、轉載

    Page 3 of 12

    開發第一個.NET Window Form應用程式:

    初步了解.NET以後,您是否已經能夠感受到.NET近來為何能如此熱門的道理了呢?然而,

    正式開發PB .NET Window Form(以下簡稱.NET WinForm)之前,我們還必須檢查PB11是否”完

    整”安裝。因為要正常地運作.NET程式,除了PB本身之外,.NET Framework也必須被正確安裝,

    這使得PB11的安裝要比過去其他PB版本要來的複雜,安裝的步驟如下:

    1. 安裝.NET Framework 2.0(PB11目前僅支援此版本!)

    2. 安裝.NET Framework SDK V2.0

    3. 安裝PB11

    若您已經安裝,可以比對下列軟體環境,確認安裝是否完全:

    1. 確認是否安裝.NET Framework2.0 檢察下列路徑是否存在:

    C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727

    3. 檢察.NET Framework SDK V2.0,檢察下列路徑是否存在

    C:\Program Files\Microsoft.NET\SDK\v2.0

  • M-Power eNews VSD 加值服務部 李煌乙

    OCT 08 M-Power eNew

    本篇文章版權為倍力資訊股份有限公司所有,未經書面同意,嚴禁複製、轉載

    Page 4 of 12

    4. 確認作業系統環境變數Path中C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727

    的路徑必須在其他舊版本 (1.1, 1.0) 的前面。

    確認過環境無誤後,接下來就可以正式建立.NET WinForm應用程式,請按照下述步

    驟逐步完成:

    1. 建立WinForm Target。

    2. 接下來您可以選擇重頭開發一個全新的WinForm應用,或由已經開發好的

  • M-Power eNews VSD 加值服務部 李煌乙

    OCT 08 M-Power eNew

    本篇文章版權為倍力資訊股份有限公司所有,未經書面同意,嚴禁複製、轉載

    Page 5 of 12

    PowerBuilder程式來直接做轉換。

    rget來轉換為

    3. .NET 在本範例中我們展示的是第三個選項,選擇一個已經存在的PB ta

    WinForm。

    4. 其餘的步驟選預設值然後下一步即可,完成後可以看到下列的畫面 面我們,由這個畫

    可以看到選用已經存在的target的話,則.NET WinForm中PBL與所有的物件基本上會

    與舊PB target的物件共用(注意:PBL是共用同一份,新的.NET WinForm target並不

    是採用複製的策略),比對兩個target tree的話可以發現唯一不同之處是.NET

    WinForm中會多出一個deployment project去取代原本可能存在的PB C/S應用

    application project。

  • M-Power eNews VSD 加值服務部 李煌乙

    OCT 08 M-Power eNew

    本篇文章版權為倍力資訊股份有限公司所有,未經書面同意,嚴禁複製、轉載

    Page 6 of 12

    5. deployment project在.NET WinForm中的角色非常重要,最主要的功能是提供程式設

    計師設定.NET WinForm程式部署時的一些設定及功能,如下圖顯示這個新的project

    所對應的tool bar功能,接下來點選Deploy鈕。

    6. 完成部署後,再點選Run Project鈕,就能看到如下圖的執行畫面:

  • M-Power eNews VSD 加值服務部 李煌乙

    OCT 08 M-Power eNew

    本篇文章版權為倍力資訊股份有限公司所有,未經書面同意,嚴禁複製、轉載

    Page 7 of 12

    7. 上圖的執行畫面與傳統的PB應用(下圖)在外觀上其實只有window title bar上的小圖

    示不同,下圖為PB target執行的結果。

    Deployment project其他設定說明:

    由上一個小節的介紹,我們可以看到建立一個.NETWinForm的應用程式有多麼

    簡單、快速,主要就是透過deployment project來做快速的部屬、執行,程式設計師

    完全不必碰觸到任何C#語法的處理,完全憑藉開發PB C/S程式的經驗就能夠勝

    任.NET WinForm的開發工作。

  • M-Power eNews VSD 加值服務部 李煌乙

    OCT 08 M-Power eNew

    本篇文章版權為倍力資訊股份有限公司所有,未經書面同意,嚴禁複製、轉載

    Page 8 of 12

    除此之外,我們還要再進一步介紹deployment project painter中其他頁籤的主要

    功能設定,這些設定能夠更近一步協助程式設計師對.NET WinForm的程式轉換:

    1. General頁籤:設定.NET WinForm轉換後的程式的執行檔名稱及執行程式輸出

    的新資料夾路徑(這一個資料夾將是.NET WinForm檔案的放置處,我們將再下

    一個小節作進一步說明);此外它還能設定本次輸出的.NET WinForm版本是

    debug版還是正式的release版本,其中若選擇debug type的話,則我們可以

    對.NET WinForm程式做逐行debug的動作,模式跟傳統的PB debug mode一模

    一樣。

    Publish as smart client application選項是因應.NET WinForm中smart client應

    用而存在,當此選項被勾選時,C/S架構最大的罩門:程式部署問題,將透過.NET

    獨門的One click技術,自動下載並安裝到client端而獲得解決,這個部分我們將

    於往後其他的tips中再補充介紹。

    2. Resource Files頁籤:設定應用程式需要使用的外部資源檔案(例如圖檔、連結

    資料庫用的driver、PB底層需使用的dll檔:Pbshr110.Dll),由於.NET WinForm

    不支援PBR檔的部署,亦不支援嵌入圖檔於PBD檔案中(在.NET WinForm中只

    有datawindow才會被部署為PBD檔),所以這個頁籤的設定也就相對重要,其中

    Search PBR Files能夠協助程式設計師解析原本就存在的PBR檔案,將其中參

    考到的外部資源加入到清單中。

  • M-Power eNews VSD 加值服務部 李煌乙

    OCT 08 M-Power eNew

    本篇文章版權為倍力資訊股份有限公司所有,未經書面同意,嚴禁複製、轉載

    Page 9 of 12

    3. Library Files頁籤:設定.NET WinForm所使用PBL檔案的路徑,除此之外若程

    式之中有使用到win32規格的dll檔,則要將其路徑加到win32 dynamic library

    files的清單中。

    4. Post-build頁籤:這個頁籤能夠撰寫簡單的指令,告知PB在程式的deploy動作完

    成後接著要完成什麼動作,如將pb__WinformOutput底下的檔案,

    搬移到指定的資料夾下。

  • M-Power eNews VSD 加值服務部 李煌乙

    OCT 08 M-Power eNew

    本篇文章版權為倍力資訊股份有限公司所有,未經書面同意,嚴禁複製、轉載

    Page 10 of 12

    5. Run頁籤:設定執行.NET WinForm時,其執行檔所儲存的位置以及資料夾的路

    徑。

    關於end user的程式部署:

    .NET WinForm的程式部署主要的部份是名為appname_winform_WinformOutput的資料

    夾,這個資料夾下有以下五個檔案,檔案的意義分別如下:

    i. appname.exe

    ‧ 主要執行檔

    ii. appname.exe.config

    ‧ 為XML檔,設定run time error的追蹤

    iii. appname.exe.manifest

    ‧ 為XML檔,負責描述所部署的應用程式

    iv. appname.pbd

    ‧ 只有datawindow才會被包到這個檔案之中

    v. appname.pdb

    ‧ 是一個程式資料庫,負責儲存.NET程式debug時的各種變數狀態

    除此之外,end user還需要安裝.NET Framework Redistributables 2.0 (Runtime files)以及

    下列PowerBuilder System Library for .NET的檔案,而這些檔案都可以用PowerBuilder

  • M-Power eNews VSD 加值服務部 李煌乙

    OCT 08 M-Power eNew

    本篇文章版權為倍力資訊股份有限公司所有,未經書面同意,嚴禁複製、轉載

    Page 11 of 12

    Runtime Packager來加以製作(如下圖),非常方便:

    ‧ Sybase.PowerBuilder.Win.Dll

    ‧ Sybase.PowerBuilder.Interop.Dll

    ‧ Sybase.PowerBuilder.Common.Dll

    ‧ Sybase.PowerBuilder.Core.Dll

    ‧ Pbshr110.Dll

    ‧ Sybase.PowerBuilder.DataWindow.Win.Dll

    ‧ Sybase.PowerBuilder.DataWindow.Interop.Dll

    ‧ Pbdwm110.Dll

    ‧ Sybase.PowerBuilder.Graph.Win.Dll

    ‧ Sybase.PowerBuilder.Graph.Interop.Dll

    ‧ Sybase.PowerBuilder.Graph.Core.Dll

    補充說明:

    進行.NET WinForm的應用開發時,需注意有哪些功能與物件是NET所不支援的,還有某些

    語法或程式用法無法順利被轉換,這些無法被轉換部份可以由Compiled HTML Help File下

    Deploying Application and Components to .NET\Chapter 11 Unsupported Features in

    Windows Forms Projects去查詢。

  • M-Power eNews VSD 加值服務部 李煌乙

    OCT 08 M-Power eNew

    本篇文章版權為倍力資訊股份有限公司所有,未經書面同意,嚴禁複製、轉載

    Page 12 of 12

    結論

    開發工具的演進與淘汰一直是令人目不暇給的,永遠的贏家並不存在,沒有努力求新求變,

    就沒有今時今日仍然屹立不搖的PB,在PB11中推出.NET程式的轉換功能,使得PB的程式碼能

    夠憑藉著.NET更為完善的架構及彈性,繼續將極速開發、方便使用的開發工具理念繼續傳承下

    去,這次我們介紹的.NET WinForm希望能為大家帶來更寬廣的應用程式開發選擇。