發表文章

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

如何製作VSIX封裝檔

圖片
在VS2010開發工具開始風行的時候,各位一定都發現副檔名為.vsix的封裝檔真的越來越多,不管是從VS2010中的線上範本,或是選單「工具」-->「擴充管理員」理所看見的擴充功能、元件庫等,或是您自到該網站所下載下來的安裝檔案可能也都是看到.vsix的封裝檔案。而當您執行.vsix的封裝檔案時會有一個安裝的對話框,這個對話框與您在擴充管理員或是線上範本點選下載安裝的對話框相同,如下擴充管理員的操作畫面。 圖(一)、擴充管理員畫面 要自行自作.vsix的封裝檔期時也非常的容易,不過這是Visual Studio 2010 SDK當中所提供的功能,讀者或許會有疑問?當我裝好一個完整的Visual Studio 2010後不就包含整個SDK以及開發工具了嗎,為什麼還需要這個SDK工具?難道當初沒有含括在內!其實讀者的質疑是對的,原先的為完整Visual Studio小組所開發的功能一直不斷的增加,屬於主要開發工具。那現在下載的這個SDK屬於Extensions(延伸)的部分,並非主要Visual Studio 2010開發工具組。 下載該工具可到 http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=47305cf4-2bea-43c0-91cd-1b853602dcc5 下載。 從說明不難發現他是一個延伸VS 2010編輯器、功能、範本等延伸組件。OK!下載下來的檔案直接執行即可安裝,畫面如下: 安裝完成之後重新啟動Visual Studio 2010後會發現在新增專案的視窗多一個Extensibility的項目,其中就有VSIX Project,這就是筆者今天要介紹的,如下畫面: 要製作一個VSIX的封裝真的還非常的容易,首先建立一個VSIX專案,接著點選Add Content選擇您腰封裝的內容,預設即有七種(Project Template、Item Template、Template Wizard、VS Package、MEF Component、Custom Extension Type、Toolbar Control)可以選擇、我們先以最單存的Project Template來測試吧!如下畫面,筆者將先

如何限制WCF Data Service存取的用戶端IP

圖片
在開發WCF Data Service的時候,筆者一直在想一個問題,就是安全性的問題!如何限制哪些IP可以存取這個WCF Data Service,不然任何人都可以呼叫也很奇怪。當然方法其實有很多,也可以使用Windows整合驗證並使用Web.config來設定Role,但是筆者想的是像一般網站一樣,透過系統管理者在自行開發的程式上設定阻擋IP,限制這個WCF Data Service可以使用的IP位址。 要實作這樣的功能必須在WCF Data Service提供服務之前攔下來並檢查用戶端的IP是否符合要求。這時可以複寫DataService的OnStartProcessingRequest方法,並且要複寫HandleException()方法將HandleExceptionArgs的UseVerboseErrors設定為true,表示要對用戶端回應詳細錯誤訊息,這樣才能使我們throw的錯誤訊息可以回傳至用戶端。 筆者先使用最簡單的方式在OnStartProcessingRequest內以HttpContext.Current.Request.UserHostAddress 取得用戶端的IP。 程式碼非常的簡單,如下: using System; using System.Data.Services; using System.Data.Services.Common; using System.Collections.Generic; using System.Linq; using System.ServiceModel.Web; using System.Data.Objects; using NorthwindModel; using System.ServiceModel; using System.Web; public class WcfSPDataService : DataService { // 只呼叫一次方法初始化全服務原則。 public static void InitializeService(DataServiceConfiguration config) { // TODO: 設定規則,指出哪些實體集及服務作業可見、可更新等等。 // 範例: config.