發表文章

實體Server轉成Hyper-V

   近來公司的測試機,所執行的工作及設定越來越多,為避免改天一不小心機器掛了,要再重設一次相關設定..,決定將它轉成Hyper-V來使用。還沒開始前,先在本機作一下實驗,如何將實體OS轉成Hyper-V。 測試記錄 DiskToVHD   一開始使用的工具是 DiskToVHD ,但轉完後的vhdx運行後會出現錯訊息"No UEFI-compatible file system was found",此問題,國外文章的回應,開機磁不能為EFI.....。解決方法為將vhdx mount起來後,再透過另一個軟体轉檔,但我在第一個步驟Mount就發生錯誤了,所以放棄此作法( 參考文章 )。

SQL Server持續整合

圖片
目前的CI 架構,還缺一個資料庫持續整合的功能,來自動更新資料庫結構,今日剛好瞄到一篇舊文後,趕快來補上。 新增SqlServer Project,匯入現有的資料庫結構 建立發行檔,選擇目的資料庫  

報表群組-多筆MasterDetail

圖片
報表需求:依據訂單編號為群組,顯示多筆訂單的Master/Detail資訊,如下圖POC 群組分頁 例:另一張訂單編號,則重新計算分頁及頁數 訂單主檔Master 訂單明細Detail 實作重點 老人家對報表不是很熟....XD,實作完後,趕緊作功課將相關重點記下來。 加入Table,並將明細的欄位加入 Add Group 以訂單主檔的編號為群組依據 此時仔細看一下Detail的資料列,已被包在Group內,用括號及漢堡圖表示 新增OutsideGroup 顯示主檔的欄位資訊 此時資訊列的圖示也會顯示群組的括號,但與明細的不同,代表著為群組的Header,完整如下圖 預設在分頁資訊上不會顯示Table Header的資訊,所以需將設定 ReportOnNewPage打開 讓分頁資訊,跟著訂單編號重新計算,例:0001顯示 1/3,0002為1/5。 PageName:設為跟群組相同的訂單編號 最後加入顯示的分頁資訊 順道一提,若報表也需要顯示完整的分頁,可以使用OveralPageNumber跟OveralTotalPages 參考連結 https://blogs.msdn.microsoft.com/robertbruckner/2010/04/25/report-design-reset-page-number-on-group/

[MVC] View切換不同主題

圖片
  最近要作一個網站,在UI的呈現上,需讓使用者可以自行挑選色系及版型。實作前,先去參考了WordPress的作法,是根據設定來讀取themes目錄下的程式如: .php,.css.js 等。對照在.NET MVC上,要如何實作? 研究一下相關文章後,可以透過ViewEngine的實作,來達到所需要的功能。網站開工前,先作了一個簡單的POC來驗證一下。 ThemeViewEngine實作 預設的ViewEngine讀取方式不變(若沒有對應的Theme,使用預設),新增一個ThemeViewEngine來讀取Theme目錄底下的View。如下圖

MVC 使用CKEditor

圖片
第一使用CKEditor..,記錄一下所需功能的安裝過程。 Nuget安裝 ckeditor-standard 裝完後,引用所需的.js檔,及網頁載入的初始設定 取代content text area 為 html editor。 指定上傳圖檔到後端的Url。 指定skin,更多skin可以到 官網下載 。

Visual Studio 偵錯過慢

圖片
  今早打開Visual Studio 2015,按下F5進行偵錯後,每一步的偵錯,異常的慢,尤其在呼叫其他Library的方法更是明顯,如下圖output,只能看見一些iis express的訊息。 試著在Configuration / Debugging將一些設定關閉,但都無效.........,最後在IntelliTrace上看到,怎麼會是勾到第二項收集事件及呼叫訊息...。 改回第一選項後,回復正常。 若沒用到此功能,將Enable IntelliTrace取消,進入Debug會更快。

IIS 8 自動預熱

圖片
  使用者反應第一次載入網頁很慢,想說目前的IIS 已有設定Always Running,照理說Pooling 回收後,應用程式應會自動執行,而不至於很慢才對。 如下設定: Pooling Setting Site Setting 實際測試時,在Applicaiton_Start輸出Log來觀察Pooling回收時,應用程式是否被執行。手動將Pooling後,Application_Start並沒有跑.....,查了一下相關文章,發現少裝了Application Initialization。 進一步指定網頁執行   上述的Application Initialization裝完後,每次的Pooling回收,就會自動執行應用程式。而若想在Pooling回收後,自動先執行特定網頁,可以在組態檔設定applicationInitialization,如下 ps:initializationPage可以設定多筆,但值不能重複 參考來源 http://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-application-initialization http://serverfault.com/questions/590865/how-can-i-warm-up-my-asp-net-mvc-webapp-after-an-app-pool-recycle

[Expression Tree] 取得IQueryable的查詢欄位

圖片
  專案上有一需求,要提供一個共用方法,取得IQueryable<T>的查詢欄位,基本上若要取得欄位的話,只要透過type的GetProerties就可以取到。如下測試 Foo類別 測試程式,取得IQueryable內的屬性集合。

ClickOnce 無法更新最新版本

圖片
     寫了一支應用程式,讓客戶端透過ClickOnce的方式執行,但之後的更新的版本,客戶端都無法下載,每次執行都停在舊版。一開始想說無法更新的話,乾脆將它先移除再重裝,到目錄刪除C:\Users\User\AppData\Local\Apps\2.0。還是無效,甚至使用 保哥介紹 的使用的使用mege.exe刪除,但都無效....。  找了一下午之後,最後在chrome測試應用程式下載時,才發現是快取在Proxy Server 如下圖.

[Visual Studio] 解決 error MSB6006: "aspnet_compiler.exe"

圖片
  今早在發行專案時,出現錯誤訊息" error MSB6006: "aspnet_compiler.exe" exited with code 1 . ",將專案比前一天比對,不同的地方是我有加入Roysln 建置所需的package。   在比對別的可以使用Roysln發行的專案的Package,發現差別在於Microsoft.Net.Compilers版本不對,預設為1.0.0,把它升上目前的最新版1.1.1後,修正此錯誤。