Tuesday, April 24, 2007

VB.net COM+ Tutorial part3

前面寫的
都是元件的部份
現在要講的
是如何使用元件的問題

以下是VB呼叫的範例
範例分為遠端使用跟本機呼叫

VS2005的元件使用上跟原本不太一樣
觀念上要先new一個實體
把實體傳給interface做參考
然後使用interface對元件進行操控
解釋起來有點困難
就把程式碼post出來
各位看一下就應該了解了
(註: 範例跟剛剛的元件沒有關係,完全是因為偷懶,剪現成的範例畫面)

1. 遠端呼叫時,參考tlb檔





















2. 遠端呼叫的方法










3. 本機呼叫的方法




VB.net COM+ Tutorial part2

再來要談註冊的問題
前面已經談過VS2005寫的元件不能夠用regsvr32來註冊
要用 regasm 來註冊
regasm在windows檔案夾裡
(跟剛剛System.EnterpriseServices.dll同一個目錄)
C:\WINNT(or windows)\Microsoft.NET\Framework\v2.0.50727

註冊指令就下
regasm ClassLibrary1.dll /tlb:ClassLibrary1.tlb /codebase
他會產生tlb檔
這個tlb檔很有用
當你把元件註冊在server上的[元件服務]時
client端就需要靠這個tlb檔來參考到這com+元件
這麼一來
就只需要在server端灌.net framework就好
不用每壹台client都灌.net framework

VB.net COM+ Tutorial part1

最近又偷懶沒有上來寫心得了
這次要談的是將class包裝成com元件
對於使用過VB的人應該都不是難事
因為VB寫的dll本身就是com元件

然而寫com元件在VS2005上有些不同
雖然VS2005已經簡化很多步驟
但還是有些地方要注意的
那就是VS2005寫出來的com是不能用以前的regsvr32來註冊
另外
對外界面要使用interface來export函式或是屬性
了解這兩點寫個com就不是難事
步驟還是用看圖說故事比較清楚

1. 開啟一個新的專案,專案型態選擇[類別庫]














2. 在選單[專案]上面,選擇[加入參考]
切換到[瀏覽]頁籤,在你的windows檔案夾裡面
尋找Microsoft.NET->Framework->v2.0.50727(看開發環境的版本)->System.EnterpriseServices.dll
將他引用進來



















3. 程式碼的部份,先import以下幾個參考
然後用interface將元件屬性及函式定義好
再寫個class Implements你的interface















4. 如果專案中還有其他class,記得將public class改成Friend Class






5. 專案屬性的部份,可以勾選[註冊com interop]
他會自動在本機上面註冊,對於開發時期比較便利































6. 建置專案,您的com元件就寫好了