發表文章

Power Shell 初體驗

圖片
同事分享一個在MVA看到的教學影片" Windows PowerShell 3.0 教學 ",跟著練習一遍後,將相關指令整理如下: 什麼是Power Shell      Windows PowerShell是微軟為Windows環境所開發的程式及腳本語言技術,採用的是命令列介面。這項全新的技術提供了豐富的控制與自動化的系統管理能力。除了在管理系統時透過此介面執行原有的命令列工具外,還可以透過內建的一百多種標準命令工具來額外管理登錄檔資料或WMI以及事件日誌與數學運算等等.. 基本指令 先打開power shell

[Web API] 回傳格式設定

圖片
  在使用WebAPI遇到了2個序列化的小小問題,整理如下: 讓Client端無論如何都回應JSON格式 在Chrome瀏覽WebAPI,預設會回傳 XML 格式,但用IE則回傳 JSON 格式

[SignalR] 實作聊天室功能

圖片
  今天搜尋文章時,看到MSDN有針對SngalR作一系列的悠閒Coding介紹,一時手癢跟著作一遍,來看看到底有多悠閒(誤),由於文章內的SignalR版本是1.1,到2.x後有點小變更,將內容順便整理如下: 安裝Nuget 1.先建立一個空白Web專案。 2.Nuget—>Microsoft ASP.NET SignalR,此套件會順便裝好其他必要套件

[AngularJs] 使用Protractor作前端測試-入門

圖片
    前陣子去Techday時聽這堂課時" DEV 204 使用 AngularJS 在 ASP.NET 專案上開發企業水準的應用 ” ,講師有提到使用Protractor來作前端的單元測試,但他沒介紹如何使用….=.=,為了一解心中疑惑,Survey相關教學後,將相關使用環境、方式整理如下: 什麼是Protractor   它是AngularJs專門用來作前端測試的工具,透過nodejs上的selectium,執行chrome、fiirefox、IE等瀏覽器,來模擬使用者操作行為並驗證你撰寫好的AngularJs程式是否正確。   執行環境 AngularJs: 測試的網頁一定要內含AngularJs,否則會出現沒有Angular的錯誤 ,修正:可以使用browser.driver來撰寫 Java Runtime:selectium的執行環境 http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html NodeJs:Protractor的執行環境 撰寫測試程式 index.html 此檔案會用來測試回應的title index.spec.js 單元測試 程式,如下為使用browser物件執行index.html並取回title作比對是否為預期值 ps:最外頭的describe為描述測試方法的內容 protractor.conf.js 單元測試程式的 定義檔 ,1.baseUrl:指定測試的Url,2.specs指定要測試哪些檔案,如下圖指定spec目錄下所有副檔名為.spec.js的檔案   套件安裝 執行nodejs command prompt 1.protractor安裝 npm install -g protractor 2.webdriver更新 selectium webdriver-manager update ps:for chrome v54的driver 更新 webdriver-manager update --standalone true --versions.chrome ...

[Expression Tree] LINQ動態欄位查詢-動態代理類別

圖片
  在前一篇文章" LINQ動態欄位查詢 "介紹到使用Expression來作欄位的動態查詢,但此方法有一缺點是因EntityFramework在查詢時,不能回傳與來源型別一樣的結果,所以使用上會變成查ProductEntity但回傳另一型別ProductInfo。若只是基本的單資料表查詢,那倒還好,但在實務上通常會Join到其他資料表後,再回傳一個多個資料表欄位的類別,如下程式查詢 ProductEntity 及 CategoryEntity ,回傳 ProductInfo 。 此時若要再透過前文的 動態查詢欄位方法 ,則必須建立另一個類別才能達到,例 ProductXXXInfo.........,雖然只要新增一個類別再繼承ProductInfo即可以,但之後隨著系統發展越來越大的話,這種為了動態查詢建立的代理類別會越來越多..........。心想手動建立代理類別的方式可以是動態的嗎....?   印象中EntityFramework預設就有使用代理類別來作LazyLoading機制,心想可以參考相關的作法來實作代理類別,在Google搜尋一下後,找到一篇使用ILGenerator來達到此功能。    什麼是ILGenerator? 根據MSDN的介紹,可以透過它在執行時期產生 Microsoft Intermediate Language (MSIL) 指令,建立動態組件、方法和建構函式...等等 ( 詳原文 )。

[Sql Server] 資料庫備份筆記

圖片
  今天與同事討論資料庫備份的一些特性後,與前兩天參考保哥的文章作一些整理。 完整備份 會備份 資料檔 .mdf 及 交易記錄檔 .ldf 作差異備份及交易記錄備份前,完整備份要先作 差異備份 只會備份 資料檔.mdf ,並與最近的一次完整備份作比對來備份有異動過的資料 不會備份 交易記錄檔 .ldf 交易記錄檔備份 只會備份交易記錄檔 .ldf 每次的完整或差異備份後,會 重新開始 交易記錄的起點 每次的備份會與上次的交易記錄作差異的交易記錄備份。 備份後的副檔名為.trn不是.bak

[Expression Tree] LINQ動態欄位查詢

   最近專案有一需求是讓使用者挑選所需的欄位來顯示在列表上,以往用SQL語法都是組字串去查詢,但現在用的是Entityframework,若要在LINQ的查詢上作這件事,似乎就沒那麼容易....,幸好前陣子有對Expression作一些學習,將 舊文章 再溫習一篇後將此功能實作出來。 動態查詢欄位 如下程式,相關註解已寫在每行程式上方,唯一較特別的是此方法傳入的IQueryable是 ProductModel 但回傳的是 ProductTargetModel ,這是因為在Linq To Entities的查詢預設不支援同一型別的回傳。

[Visual Studio] 使用套件SlowCheetah為App.config作轉換

圖片
    在Web專案的web.config可以分為web.config.release、web.config.debug或更多如下圖,幫助我們在發佈時,切換不同環境將組態作轉換。此功能很好用,但在桌面應用程式就沒有提供此種功能,所以app.config每次在發佈時都要手動調整一下。 前一陣子寫好的一個主控台程式今天要部署,想說來找一下有沒有相關的套件可以作這件事,發現Scott Hanselman在2011年已有對此發表了一篇文章,天丫~~~2011年就有了......。

[TFS] 擱置暫止的變更

圖片
   之前的習慣是程式開發到一半遇到插單或下班時間到了,只要是程式碼Complier會過,就會將程式碼簽入,這樣的簽出/簽入並不符合版控原則。若此時別人取得你簽入的部份,剛好程式邏輯出錯或是改到一半的方法被別人引用到..........就是一連串的杯具....    上述的問題,你可能會問,若我沒有簽入的話,而下班了剛好電腦壞掉或其他因素造成程式不見了怎麼辨?此時我們可以透過擱置暫止的變更來幫我們將程式碼保留在TFS上,而別人也不會取得你修改到一半的程式。 擱置暫止的變更 如下圖,Title=…1.0.0.4 程式改到一半,遇到插單

[TFS] 為專案目錄建立標籤

圖片
接著上篇 分支與合併 ,若我們想要保留每次合併前的版本,在Tech Day的課程也有介紹到標籤適用的情境,可以用在為每次的發佈前的版本定義標籤,以利日後比對各版本之間的差異及還原。在此之前我都把它當作變更集的一種,只是多一個分類好搜尋...=.=