︿
Top

2016年12月11日 星期日

[VSTS/TFS] Branch and Merge with VSTS (Visual Studio Team Services) (如何在 VSTS 進行分支與合併)

前言

一直很想實作如何在 Visual Studio Team Servcies (VSTS, 舊名為 Visual Studio Online) 進行程式的分支與合併, 畢竟切版本, 在軟體開發過程, 是無法避免的.

整個過程大致如下:
.   Visual Studio Team Services 建立 Team 專案
.   Visual Studio 2015 建立空白方案
.   Visual Studio 2015 加入 ASP.NET MVC 新專案
. 加入至原始檔控制
. 建立 主分支 (Main Branch)
. 建立 工作分支 (Working Branch)
. 工作分支 (Working Branch) 開始作開發及程式修訂
. 確定沒問題了, 該併回主分支(Main Branch)


2016年11月25日 星期五

[Entity Framework] 如何讓 Stored Procedure 與原來 Entity Framework 的運作在同一個 Transaction 裡


一. 前言


日前在撰寫 C# + Database First Entity Framework 6.x 程式時, 先呼叫 SP (該 SP 會異動資料庫), 再利用 EF 寫入其它的異動資料; 但在 SaveChanges() 時, 發生例外, 卻發現原來以 SP 異動的資料並未還原 (rollback). 覺得很怪, 於是寫了一支主控台程式, 以探究原因.
註: 為避免文章過於冗長, 本文以 SP 代表 Stored Procedure, EF 代表 Entity Framework. Tx 代表 Transacton
程式邏輯大致如下, 建議下載 github 上分享的原始程式, 實際執行看看.

using (xxEntities ctx = new xxEntities())
{
 //1.. 呼叫 SP, 並取回值
 ObjectParameter orderno = new ObjectParameter("po_order_no", typeof(String));
 ctx.usp_get_order_no(orderno);

 //2.. 新增資料, 以 EF 寫入
 //...
 ctx.SaveChanges();
}



[Git] 如何將本機目前已存在的 git 版控 C# 主控台專案, 發行到 github


一. 前言


因為本機有一個啟用 git 版控的 Entity Framework 主控台專案, 在告一段落時, 想要撰寫 blog, 同時將相關的程式碼, 上傳至 github 分享; 故有需要將儲存在本機的 git 版控, 轉換為儲存至 github.


2016年10月20日 星期四

SQL Server: 如何建立 Partition Table

一. 前言

因為客戶有一個上幾百萬筆資料的 Table, 需評估 Partition Table 的可行性, 在評估的過程中, 順便將建立 Partition Table 的過程, 記錄下來.
本文主要係以參考文件 1.. 及 2.. 作為主要的實作依據, 也謝謝參考文件所列各篇文章的作者.

整個實作過程, 包含以下幾個步驟:

1.. 建立 資料庫 及 FileGroup, 並切換至新建的資料庫
2.. 建立非分割的資料表, 以供對照之用
3.. 建立輔助函式 Function (from 參考文件 2.. 及 8..)
4.. 建立分割函式 ( Partition Function )
5.. 建立分割配置 ( Partition Scheme )
6.. 建立分割資料表/索引 及建立測試資料 (Partition Table)
7.. 驗證測試資料
8.. 新年度怎麼辦?
9.. 驗證測試資料




註: Partition Table 的功能只有 Enterprise / Developer / Evaluation 版本才有提供. 

2016年10月10日 星期一

Excel 的一些功能: (1) IF ... AND, (2) Conditional Formatting


一. 前言:


最近在準備一個證券公司專案的整測文件, 該專案主要係將 COBOL FILE 的資料, 轉到 DB. 在此狀況下, 需比對 2 個不同性質的資料來源 (一個是 COBOL FILE, 一個是 DB), 確定轉檔的資枓內容無誤, 但資料量又不少, 只能設計一些統計指標, 至少這些指標要能符合; 在這些指標符合的狀況下, 再隨機抽幾筆資料出來作比對.

因為找不到比較好的自動化比對方式, 只好用最笨的方式, 將執行結果的重要統計值, 輸入到 Excel 檔作比對. 但既然用了 Excel, 總不能還要人工去比對結果吧? 眼睛會花掉 ...
故製作了一些 Excel 檔案, 作為測試報告的文件之用.
範例文件, 請由此下載.


2016年9月13日 星期二

SQL Server: Data Compare using SSDT and Visual Studio 2015

一. 前言:

因為最近工作的需求, 有不同 DB 上 Tables 的內容比對. 故以一個簡單的環境實作, 並整理如下:

二. 環境:

(一) Visual Studio 2015: 必須安裝 SQL Server Data Tools (SSDT), 由此下載.
(二) SQL Server 2014 現有資料: 相關的 SQL Script 可參考 六. 附錄


2016年5月25日 星期三

如何在 Github 上針對各次簽入(commit) 的 code, 進行 comments 的訊息交流


前言

最近參加了 skilltree 的 ASP.NET MVC 5 實戰訓練營 的課程 (2016.-04-09 .. 2016-05-07), 講師 demo 在每週六的課程結束, 都會出作業, 請學員實作, 上傳至 Github. 講師會在 下次上課前, 在 Github 上作 Code Review, 並留下建議 (Comments).

但由於小弟對於如何在 Github 上回應講師的 Comments, 並不是很了解, 查了 Google, 也沒有找到合適的說明, 只好自己試試看. 
假設小弟的主帳號為 jasper-lai (扮演學員的角色), 另外申請了一個 polarbear-ms (扮演講師的角色) 的帳號作練習.


2016年3月8日 星期二

2016年3月2日 星期三

Entity Framework Code First: Entity Association and DB Migration

前言


最近在研讀 ASP.NET MVC 5 : 網站開發美學 4.6.3 / 4.6.4 / 4.8 時, 將書中範例作了一次演練整合, 包含以下內容;

  • 定義或變更欄位的資料庫型態
  • 加入欄位
  • 1 to 1 關聯
  • 1 to many 關聯
  • many to many 關聯
  • 資料庫移轉 (Database Migration)

在閱讀本文的同時, 可以參考 ASP.NET MVC 5 : 網站開發美學 書中的章節作對照.

2016年2月19日 星期五

C# LINQ: SelectMany() 擴充方法

緣起

最近在研讀 ASP.NET MVC 5 : 網站開發美學 Ch.03 時, 發現對於 SelectMany() 這個函式仍然不是很瞭解, 於是查了 MSDN 上的範例, 再加上配合 .NET Framework 源碼 一併進行 debug, 終於有了一些概念; 故撰寫本文, 以進行整理.

完整範例, 請由此下載.

2016年1月21日 星期四

KanbanFlow 操作說明


接續前一篇, 以下茲就 KanbanFlow 的操作進行說明.

大綱:
一. 建立帳號: 說明如何建立一個免費的試用帳號
二. Tutorial: 此為 KanbanFlow 官網的截圖, 包括如何建立工作項目, 搬移工作項目, 加入子工作項目, 蕃茄鐘 ... 等
三. 基本操作: 此為筆者的實際操作截圖.
建立看板 (Board)
設定頭像: 這樣在看板上面比較容易看出是誰負責該工作項目.
加入欄位 (Columns): 其實就是建立流程 (例如: ToDo / In Progress / Done
加入工作項目 (Tasks): 例如: '券商設定: 總分公司基本資料維護'
其它: 說明一些有用的功能, 例如: 免費版的 colors, labels, subtasks, 蕃茄鐘; 進階版的 calendars, swimlanes. dashboard 


研讀心得: 精實開發與看板方法


最近有空把 Ruddy Lee (李智樺) 老師所著的 "精實開發與看板方法" 研讀了一遍. 以下是個人一段小小的心得.

"精實" (Lean) 係源自於製迼業, 稱之為 "精實生產" (Lean Production); 因此, 書中有提到不少管理方面的理論或方法, 例如: TOC (Theory Of Constraints), GTD (Getting Things Done), 蕃茄鐘, Little's Law, Multitasking Is Evil, PDAC (Plan, Do, Check, Action), 啤酒遊戲  ... 等; 將精實生產的精神, 用在軟體開發上, 就稱之為 "精實開發" (Lean Development), 例如: 消除浪費.

"看板" (Kanban) 方法, 並不是一套軟體開發的方法論, 而是一種改善工作流程及效能的工具, 其主要著眼在於改善工作流程. 其主要的好處是 透明化工作流程 及 專注在現行工作項目


2016年1月8日 星期五

SQL Server 資料庫版本控管 (Part 2) : Schema Compare


延續前一篇的內容, 本篇將就 SSDT 提供的 SQL Server 資料庫專案 進行說明.


SQL Server 資料庫版本控管 (Part 1) : Schema Compare


因為專案需求, 前一陣子在進行 SQL Server 的 Tables 設計, 及 Functions, Stored Procedures 的撰寫; 發現版本控管是一件很重要的事情, 萬一沒有作好, 就可能發生以下狀況, 例如:
(1) AP 與 DB 的版本無法相符, 導致程式掛掉.
(2) 個人開發境 DB, 整合測試環境 DB, 正式環境 DB 的資料庫物件, 或多或少存在一些差異, 要如何作同步?

本系列文章, 主要係參考 Will 保哥在 Slide Share 及 Channel 9 分享的 Slides影片; 再加上筆者以往的開發經驗彙整而成.

另外, 相關的方案/專案, 均是採用 Visual Studio Online 的 TFS 作為版控服務, 而不是採用 Git.