︿
Top

2017年12月3日 星期日

[SQL Server] T-SQL 測試輔助工具或方案 (1) : tSQLt


前言


最近工作上, 可能會需要寫 stored procedure, 想說找一下有沒有測試輔助工具或方案, 以提昇 stored procedure 的品質, 避免後續維護時, 出現改東壞西的狀況. 
筆者以免費的工具或解決方案為優先, 找到的第1個方案是 tSQLt. 至於要付費的, 如參考文件 5.., 筆者還沒有時間去試用.
tSQLt 是一套 Open Source 的 Unit Test Framework; 可以協助 SQL Server 開發人員, 直接在 SQL Server 上進行測試.

所謂測試, 是指實際執行值, 與預期值是否相符的驗證. 基本上分為功能性 (單元測試, 整合測試, 使用者測試) 與非功能 (效能測試, 壓力測試). 
以下僅就單元測試與整合測試, 用易於瞭解的描述作說明. 至於嚴謹的定義, 可以參考 91哥的系列文章: [30天快速上手TDD]目錄與附錄. 筆者在測試的部份, 深受 91哥 "自動測試與 TDD 實務開發(使用C#)" 課程的影響.


2017年11月20日 星期一

[SQL SERVER 70-762] 考試經驗紀實

因公司工作需求, 最近參加了 SQL Server 70-762 的考試, 這是筆者第1次考 SQL Server 方面的認證, 想說把整個過程, 記錄下來, 供有需要的人作參考.


2017年2月24日 星期五

How to debug to .NET Framework Source in Visual Studio 2015

前言

最近因為想要進入 .NET Framework 的原始碼進行 Debug, 以了解程式碼實際運作的過程;  查了 微軟官網 / StackOverflow / SymbolSource 的文章, 都無法運作, 最後找到參考文件5..的作法, 才算完成. 茲整理如下, 以供留存參考.


2017年1月18日 星期三

SQL Server: Data Compare Performance Issue for EXCEPT and SSDT


一. 前言:

延續前一篇 : SQL Server: Data Compare using SSDT and Visual Studio 2015 採用了 Visual Studio 2015 + SSDT 進行不同資料庫的內容比對.
該篇的資料筆數少, 看不太出來效能的問題, 故本篇將以 360 萬筆的資料進行測試.

二. 環境:

(一) Visual Studio 2015: 必須安裝 SQL Server Data Tools (SSDT), 由此下載.
(二) SQL Server 2014 測試資料: 相關的 SQL Script 可 由此下載


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.