發表文章

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

[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的課程也有介紹到標籤適用的情境,可以用在為每次的發佈前的版本定義標籤,以利日後比對各版本之間的差異及還原。在此之前我都把它當作變更集的一種,只是多一個分類好搜尋...=.=


[TFS] 分支與合併

圖片
在很早以前就知道TFS有分支與合併的功能,只是一直都不太知道要怎麼用,這次去Tech Day 2014聽完課"從版本管控到持續整合 (Continuous Integration, CI) 的實踐"後......感覺自己需要被鞭子抽幾下,有那麼好用的功能卻一直放著不用.....=.=,以下為根據實務上會用到功能的練習一下

分支流程設計至少要兩條線:主要、開發(本篇針對此作測試)
最多不超過4條
插單或Bug單分支合併

[Visual Studio] 自訂Snippet擴充套件

圖片
隨著開發共用的方法越來越多,要如何讓團隊快速上手使用,除了寫一些範例程式給成員,最近開始著手寫一些Code Snippet(程式碼片段),讓成員在撰寫時能更得心應手,不用每次要寫時都要再查一下範例............ps:我自己也是三不五時要查一下XD。
關於Code Snippet的撰寫,可以參考保哥的文章,這裡不多介紹,本篇著重在若寫好了程式碼片段要如何分享給其他成員。在開始介紹前,先寫一下幾種選擇:
1.放在公用目錄,請成員取回放到VisualStudio程式碼片段目錄 C:\Users\user\Documents\Visual Studio 2013\Code Snippets。
2.自己寫一個安裝檔,安裝後壓縮至目錄.......聽起來的工程就很大....算了。
建立Snippet擴充套件  上述幾點還得考慮日後如何更新.....針對這些安裝及更新問題,在VisualStudio早有提供相關的作法可以解決,透過擴充套件的專案範本,我們可以將相關的程式碼片段,封裝成一個套件上傳至Visual Studio Gallery,讓成員下載安裝,若日後更新的話在VisualStudio也會提醒。
Step-1 建立VXIS Project

[Azure] 使用SendGrid發信

圖片
系統本來是使用GMail的SMTP來發信,但在使用上有其他限制,例:1天只能發1000封、在Azure上的安全性問題等等。前兩天剛好同事提到Azure上有第三方的提供的SMTP服務"SendGrid",參考了相關文章後覺得還不錯,決定將發信功能改為SendGrid。

什麼是SendGrid它是Cloud-base email service,提供高信賴、可擴展性、及時性的分析記錄及查詢報表等等。 提供彈性的API跟你的系統整合。 Free版本,一個月可以發25000封 更多請參考官網

申請方式 在最下方功能列—>New—>Store