發表文章

目前顯示的是 2月, 2010的文章

如何自訂WPF的DependencyProperty相依屬性

圖片
撰文:吳俊毅 時間:2010/02/16   在WPF當中若沒有相依屬性幾乎無法做任何事情,因為您可能要重複定義許多共同的物件屬性,這不僅增加Pg許多無意義的工作且程式設計較沒有彈性。要實做WPF的相依屬性我們得在一個class中先宣告一個DependencyProperty物件,再定義一個屬性,這個屬性做為屬性變更告知之用,而透過DependencyProperty的連結,比較重要的是在相依屬性裡並不是使用我們在.NET應用程式裡慣用的get;set;的方式,而是使用在DependencyObject物件裡定義的SetValue()與GetValue()方法,如下程式: class ColorTextBlock: TextBlock {   public static readonly DependencyProperty BackgroundColorProperty;   public bool ChangedBackgroundColor   {     get     {     return (bool)GetValue(BackgroundColorProperty);     }     set { SetValue(BackgroundColorProperty, value); }     }   } 筆者希望透過ChangedBackgroundColor屬性被變更為true時,將自身物件的Background改為Blue,因此必須註冊BackgroundColorProperty這個DependencyProperty,以便告訴WPF的子系統有這個相依的事件必須在這個屬性遭到變更時觸發!怎麼做呢?首先我們必須在constructor裡放置FrameworkPropertyMetadata物件存放與DependencyProperty相關的屬性資料並設定其DefaultValue屬性與PropertyChangedCallback的事件處理常式,最後註冊相依屬性ChangedBackgroundColor,程式碼如下: static ColorTextBlock() {   FrameworkPropertyMetadata meta = new FrameworkPropertyMetadata();   meta.DefaultValue

在Expression Web透過WebDAV佈署為何出現無法存取訊息

圖片
撰文:吳俊毅 時間:2010/02/12   WebDAV最Power的功能莫過於可以在遠端透過HTTP的協定編輯、管理整個網站了,有些讀者在Microsoft Expression Web2連線WebDAV功能時可能會遭遇到如下問題..   次問題的發生是因為您遠端的網站使用Vista,並且沒有安裝基本驗證、或II7本身並未啟動基本驗證或是WebDAV Authoring Rule未設定帳號。不過就您已經設定WebDAV Authroing Rule,但是沒有安裝IIS7基本驗證項目也是會出現此訊息,若您使用Vista,Vista預設是不會安裝基本驗證項目到IIS中的,您必須使用新增移除Windows功能自行安裝,如下:   安裝完成後再到Microsoft Expression Web2執行發佈網站,如下:   這個時候就不會再出現那個禁止存取的畫面,應該是出現一個授權登入的驗證視窗:   執行登入後就可以看見Local與遠端管理的畫面,不光只是上傳檔案,甚至可以遠端編輯檔案,如下:

啟動Windows Azure服務

圖片
撰文:吳俊毅 時間:2010/02/07   雲端技術可說是目前最熱門的話題,相關與雲端相關的產品接踵而來,Microsoft當然也不妨多讓提供Windows Azure平台服務,許多人認為他是作業系統,但筆者目前它還是一組Platform執行平台,相關體驗的開發環境與AppFabric等Microsoft允許您執行於Windows Vista/7 或Windows 2008等作業系統中,只是這樣的執行平台提供於Windows Data Center中成為系統服務,未來也會內建於Microsoft更新一版的Windows系統中,所謂的雲端其實就是一種提供運算、儲存、與軟體代管的一種服務,您可將您所開發應用程式佈署於第三方所提供之雲端執行環境,提供於全球任一角落的用戶端呼叫以及執行而不需要考慮一些問題如資料容錯處理,程式碼如何儲存及被執行,每個雲端的實體如何達到負載平衡等。所以放置於雲端是要收費的。雲端它不是一種新的技術而是一種概念,雲端的建立並不限於程式語言與開發工具或是平台,任何作業系統環境都可以建置雲端的環境。 本文中筆者先前安裝了200911CTP的執行環境,因為之前忙於專案所以一直沒有時間將此文章PO出來。許多人在安裝完Windows Azure之後並依照線上的Samples使用Visual Studio 2008 SP1建置了CloudService專案,但是專案執行時總是會告訴您Storage 服務未啟動等訊息,手動執行開始工具列的Developement Storage的連結又總是畫面閃一下就不見了,也不知道有沒有啟動,其實是因為SQL Express服務沒有啟動的關係,手動以Windows Azure SDK Command Prompt執行csrun.exe /devstore:start就會看見錯誤訊息: 這是因為Windows Azure的執行除了需要Development Fabric服務之外還必須啟動Development Storage服務,而所謂的Development Storage服務其實是將儲存體暫時儲存於SQL Express 2008中,啟動SQL Express 2008服務後會自動建立資料庫DevelopmentStorageDb,使用SQL Studio Management Studio連接可以看見如下: 這時再啟動D

SSIS功能體驗(一)、匯入EXCEL檔案

圖片
撰文:吳俊毅 時間:2010/02/03 關於SSIS的主題筆者早就躍躍欲試了,只是礙於沒有機會接觸,相信MS SQL 2005的SSIS許多人早已體驗過其強大的功能,與MS SQL 2000的DTS相比強大好幾倍,SSIS加上對.NET Framework平台的支援,指令碼的處理的Script可不像DTS只可以使用Active JScript/VBScript做為主要語言,SSIS可以支援以C#來撰寫指令碼的處理。筆者因為工作的關係需要將EXCEL檔案大量且批次的匯入到資料庫中,因為EXCEL格式為固定,而且每天都需要匯入,如果要寫程式匯入當然也可以,但未免過於麻煩,因為要寫的程式太多了,能不要寫當然就不要寫!所以筆者就想到SSIS這個強大的功能。OK我們一步步來進行! 首先需要使用VS 2008開一個新的Integration Services 專案,如下圖(屬於商業智慧專案): 新的專案預設會切在控制流程的畫面,如下圖: 對SSIS而言所有的作業基礎即是控制流程,(眼尖的讀者會發現當切換控制流程與資料流程頁籤時左邊TOOLBAR的元件是不一樣的!)接下來拖曳一個資料流程工作至畫面中,並在該資料流程工作上點選滑鼠右鍵選擇編輯後畫面會自動切到資料流程頁籤,然後將"Excel來源" 元件拖曳至畫面中,畫面如下: 接著在Excel來源點選右鍵編輯會切到EXECL來源編輯視窗,並新增一個Excel連接管理員,再設定Excel的檔案路徑,如下圖設定畫面: 以上動作都完成且確認無誤後將Excel來源編輯器的資料存取模式設定為SQL指令方式,點選建立查詢按鈕可以SQL Statement方式將Sheet1$的資料Select進來,對SSIS而言EXCEL的Sheet即是一個Table,這個概念不是到了SQL 2005才有的,早在DTS的時代就有這個概念,因為一個EXCEL檔案通常有三個Sheet,所以在這裡會看見三個Table,那麼因為筆者的EXCEL中只有Sheet1有資料,所以只加入Sheet1$就可以了!如下圖: 確定後我們可以Select看看,Sheet1$的資料會秀在下面: 決定好SQL按下確定後請預先在資料庫中建立一個Table以便匯入使用 CREATE TABLE [dbo].[Tb_Sales