發表文章

目前顯示的是 3月, 2014的文章

使用VisualStudio建置事件及xcopy快速分類輸出的檔案

圖片
前言    目前在內部建立了一組專案樣板的Nupkg,若要發佈更新時,我的步驟是先發行專專 輸出到目錄,並作了以下動作: 1.複製dll到nupkg的lib目錄 2.複製其他所需內容 如:js,css等內容檔到nuget的content目錄 Ps:在作第2點時會需要先將目錄內的一些非必要檔案移除

Nuget package發行自訂的組態設定

圖片
前言    在 前一篇介紹的" 透過Nuget Package Explorer建立內部的Nupkg "後,若是想在使用者安裝後加入自訂的組態設定,可以使用以下方法:

透過Nuget Package Explorer建立內部的Nupkg

圖片
1.請先到以下連結下載安裝 http://npe.codeplex.com/ 2.安裝後執行會跳出視窗,選擇建立新的nupkg

SingalR基本應用筆記

練習功能 1.Web Client to Web Client-->Products/Index.cshtml Script區段 2.Web Client to Win From-->需從Nuget加入Microsoft.AspNet.SignalR.Client 3.Web Server to Web Client-->需透過GlobalHost.ConnectionManager取得已在執行的Hub 例: IHubContext context = GlobalHost.ConnectionManager.GetHubContext<MyHub>(); 參考文章 http://getpocket.com/a/read/576724256 範例下載 https://github.com/kimx/SignalRLab

在SilverLight執行Native dll的方法

圖片
若想要叫用Client端Win32 Api的話可以使用DllImport的方法叫用 如下: [DllImport("User32.dll")] private static extern Boolean MessageBeep(uint beepType); 但若是透過自己寫的或ThirdParty的Native dll 則需使用Resource連結的方式 1.先將dll的屬性設為Resource及永遠複製 2.執行連結方法NativeDllHelper.SetupNativeDllFolder("TSCLIB.dll"); 此程式碼請至原作者提供的檔案下載 https://github.com/cureos/nativedll 以上的執行在本機Localhost,127.0.0.1都不會有問題,但在有網域或電腦名稱的網域 會出現"呼叫機器碼失敗。方法必須是安全性關鍵或安全性安全關鍵才能呼叫機器碼"或 "System.Security.SecurityException: 不允許檔案作業。拒絕存取路徑"..等錯誤 這是因為這些方法的執行因安全性的限制一定要在OOB(Out Of Browswer)下執行。 參考文章 http://cureos.blogspot.tw/2011/09/pinvoke-bundling-native-dlls-in.html

ASP.NET WebApi 基本應用筆記

圖片
重點記錄: 1.WebApi內的方法名稱不是重點,重點是Http的行為及參數名稱 2.使用Nuget套件:Microsoft.AspNet.WebApi.Client,使用HttpClient幫你包好Request、Response、序列化的方法 範例下載 https://github.com/kimx/WebApiLab/

佈署到IIS7出現403錯誤

圖片
如題執行時出現如下圖 環境:Windows 2008 R2 .Net 4.5 MVC 5.1 解決方法:在組態webServer的module加入runAllManagedModulesForAllRequests="true" 備註:參考其他文章是建議不要用此設定,改成自行加入UrlRoutingModule 如下 <remove name="UrlRoutingModule-4.0" /> <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition=""/>.. 此設定作完後403不會再出現,但靜態檔案卻都讀不到……………..待續 參考文章 http://rahulgbhatia.wordpress.com/2013/05/28/asp-net-routing-with-iis-7-runallmanagedmodulesforallrequests-true/ http://www.britishdeveloper.co.uk/2010/06/dont-use-modules-runallmanagedmodulesfo.html

使用Code First Enabling Migrations增加欄位

圖片
今天在使用.net 4.5的Membership時,在ApplicationUser類別增加欄位後,執行註冊功能會出現 CodeFirst的錯誤如下圖 這是因為Membership是使用CodeFirst,在第一次執行會先幫你建好資料表,但之後類別若有異動欄位, 則必須下指令告知來更新資料庫。 執行步驟如下: 1.先在"套件管理器主控台(Package Manager Console)"輸入 Enabling Migrations ps:此動作在專案只要執行一次 輸入完後在方案總管會看到Mirgrations目錄及第一次產生的類別 檔名結尾_InitialCreate.cs為依目前資料庫內產生的建立語法 Configurations.cs則為Mirgrations的設定檔 2.在類別增加欄位 3.在"套件管理器主控台(Package Manager Console)"輸入 Add-Migrations first Ps:first為自訂的識別名稱 此時會看到Mirgrations目錄產生一個繼承DbMigration類別,並且已依照增加的欄位將語法產生 此部份是讓你自行再客製用,單純加入欄位可以不用修改 4.最後需在下一個指令為Update-Database就會針對資料庫作建立欄位動作 執行完後檢查資料表,已將欄位加入,大功告成     上述動作其實還可以簡化一些,在 Configuration.cs 有一個 AutomaticMigrationsEnabled 的屬性 只要設為true後,在類別的欄位異動後執行第4步驟的Update-Database也可以達到同樣的效果,但這只適用較簡易的異動,複雜的異動還是透過DbMigration來客製會比較好。 參考文章 http://blog.sanc.idv.tw/2012/04/entity-framework-code-firstenabling.html

ASP.NET MVC使用User Profiler

圖片
1.預設在ASP.NET MVC不會有System.Web.Providers,所以需在Nuget主控台輸入 install-package "System.Web.Providers" 2. 設定組態 < profile defaultProvider ="DefaultProfileProvider" > < providers > < add name ="DefaultProfileProvider" type ="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName ="DefaultConnection" applicationName ="/" /> </ providers > </ profile > 3. 定義資訊 < properties > < add name ="ForeNames" type ="System.String" /> < add name ="LastName" type ="System.String" /> < add name ="Gender" type ="System.String" /> < group name ="Contact" > < add name ="MobileNo" type ="System.String" />