發表文章

Web API HelpPage 加入說明

圖片
  新增Web專案時,若範本選的是Web API,預設會幫我們建立一個HelpPage的Area 進入首頁後,點上方API連結

解決Razor Intellisense無法使用的錯誤

圖片
   今早打開Visual Studio 2015時,出現了載入某個元件的錯誤提示。本想說不去理它,應該下次再重開就好了,但之打開MVC View編輯時,出現了如下錯誤。雖然建置沒問題,但所有的Intellsense提示完全失效....。 ActiveLog.xml 解決方法 清空ComponentModelCache目錄內的檔案 C:\Users\ [username] \AppData\Local\Microsoft\VisualStudio\14.0\ComponentModelCache 參考來源 https://hanskindberg.wordpress.com/2014/02/27/visual-studio-clear-cache/

使用Azure Power Shell 變更資料庫服務層和效能層級

圖片
      目前的專案有一需求是在資料匯入時,將服務層級提高來加快匯入的速度,待完畢後再降回來,避免資源(金錢)的浪費。趁此K了一下最近剛入手的 Azure教戰手札 ,並撰寫一支Power Shell Script來玩玩。 前置工作   第一次使用PowerShell ,需設定ExecutionPolicy: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned ps:此動作要使用Administrator執行 先確定是否已安裝Azure Power Shell ps:安裝後,需要 重新開機 ,否則會出現找不指令錯誤

使用Visual Studio Online新的建置系統發佈到Azure

圖片
   這幾天在Survery Visual Studio Online CI相關技術,看到一篇文章介紹VSO全新的建置系統 。試玩一下,將VSO的專案發佈成Pacakge並發行到Azure,感覺還不錯用,將目前使用的功能記錄起來。 VSO專案先建立Azure Service 切換到Services Tab 加入Service 輸入Azure的訂閱資訊,若找不到,也可以從上圖紅框的”publishsettings xml file”下載取得。

[MVC] Razor Views使用預先編譯加快第一次的執行速度

圖片
在發行網站後,每個View被第一次執行時,會進行第一次編譯的動作,並將編譯後的相關檔案複製到”Temporary ASP.NET Files”內(一堆.compiled的檔案)。此為預設的發行選項,好處是隨時可以修改View,不用透過VisualStudio再發行一次,壞處是每次修改及發行後的第一個執行會很慢。上述所說的好處,我想在正式環境上,幾乎也沒什麼機會去作這件事,所以可以不用考慮。 使用預先編譯 發行時使用預先編譯選項,將所有的View都預先編譯好,在第一次執行時,速度會明顯快很多。另一好處是順便會幫你檢查View是否有錯誤,例如:ViewModel已移除的屬性,但View在設計時期,無法知道。 如下圖的發行設定,並將"Allow precomplied site to be update” 移除勾選。

[AngaulrJs] 解決ng-animate引起的效能問題

圖片
前陣子將AngularJs從1.3.18升上1.4.4後,遇到若ng-repeat的資料數目超過約500個時,在第一次繋結很快,但在取得資料再重新繫結時,會有很明顯的效能問題,整個畫面會卡住約5秒。如下sample。 See the Pen ng-animate-slowly-1 by kimxinfo ( @kimxinfo ) on CodePen . 降回1.3.18測試後,並不會有此問題........。暗...升上來,豈有再降回的道理,立馬使用chrome profile來錄製,看是慢在哪一段。經測試後,發現慢的js是angular-animate.js 。 之前看過1.4.4 的 release note ,想說不是針對ng-animate作了很多bug修正及改善。怎麼會引起效能問題..........重點是,我沒有使用它在ng-repeat上丫....。

[Chrome Extension] YAHOO Dictionary Search

圖片
  個人最常用的翻譯工具之一"Google Translate",在chrome安裝相關套件後,可以在網頁選取文字後,按右鍵,前往Google Translate 作翻譯,如下圖。 而我另一常用的翻譯工具"奇摩字典",在商店想找類似的功能,但找不到相關的套件,索性自己寫一個來玩玩。 使用方式

[Sql Server] 當 SQL Server 發生 Deadlock 時,自動發送 Email

圖片
同事分享一篇文章,關於資料庫發生DeadLock時,如何通知管理者。不過內容很簡略,摸了一陣子才搞起來。 Step by Step 1.啟用目標資料庫(本例使用AdventureWorks2014)與msdb的Service Broker。 執行語法前需先將SQL Server Agent 停用 ,等執行後再打開 2.建立DeadlockEvents資料表、排程及通知 此部份引用msdn範例

POC-實作Web與Window應用程式互動

圖片
  今天同事提到Spotify,有個很酷的登入功能,在桌面應用程式登入後,再到網頁作登入的動作,會自動登入。登出,再登入,也都不用輸入帳號密碼。但若桌面程式關閉後,Web要登入就要輸入帳密。   雖不知它實作的機制是如何,但停不住好奇心的我們,花了些時間朝著Web與Window互動的方法去尋找類似的作法。找了幾篇後,在CodeProject剛好有篇文章,介紹到使用 HttpListener 讓Desktop與Browser溝通 ,在瞭解相關作法後,實作了一個類似的Spotify的登入機制。   如下示意圖,使用者電腦的Desktop應用程式,使用HttpListener在本機Host一個port為60999。瀏覽器透過對localhost:60999Request,會取到目前的登入者作登入。

[AngularJs] 解決UI Bootstrap bindHtmlUnsafe is now deprecated.

圖片
將專案的AngularJS UI Bootstrap 從0.13.0 升上到0.13.3後,在使用typeahead的時候,瀏覽器的console會出現警告訊息 如下圖,提示bindHtmlUnsave已不推薦使用。 此問題是我的typeahead有使用自訂的template,而template的內容使用到bind-html-unsafe作html的繫結 此行程式我是參考ui-bootstrap 在Github的原始碼,來作比對的highlight用。本想說它既然警告了此用法,那它應該也有修改成正確的寫法才對。但....答案是沒有.. 解決方法 1.將bind-htmjl-unsave 改成 ng-bind-html。 改完後,引用模組"ngSanitize"。 2.加入angular-sanitize.js 3.引用ngSanitize 參考來源 https://docs.angularjs.org/api/ngSanitize