Leon 的錦囊妙計 HRISPD 莊子遷 (Leon Chuang) 2006.6.19
大綱 整合建置流程 程式介紹 經驗分享 結語
整合建置流程 CruiseControl.NET
What is CruiseControl.NET? Daily Build or Auto Build Tool Continuous Integration S.C.M (Software Configuration Management) a part of CM Integration with a variety of Source Control systems (vss, cvs…) Integration with other external tools (NAnt, Visual Studio)
CruiseControl.NET Integration Process
Suite Application CruiseControl Server CruiseControl Service Web DashBoard CCTray CruiseControl.NET
CruiseControl Server
CruiseControl Service
Web DashBoard
Web DashBoard
CCTray
NAnt 功能強大的批次命令執行工具 經由設定檔 (xml format) 進行命令集設定 設定檔內可使用變數 可使用的功能如 FileSystem Control 、 Code Repository Access 、 Code Compile 、 Compress Files 及 MailSend 等等… NUnit 、 NDoc 的支援
Demo CCNet with NAnt (MiniToolSolution)
程式介紹 Rubik_VB ChessGUI CarAccountsMaintain GssLogExplorer
Rubik_VB( 魔術方塊 ) 在指定的方塊模式當中來求最佳解法 ( 回復六面 ) 使用展開圖形 ( 平面 ) 方塊空間幾何邏輯處理 2D View    3D View 向量投影 OpenGL :立體模型的建構
矩陣運算
OpenGL API
Demo Rubik_VB
ChessGUI( 象棋 ) 人機對奕 控制邏輯及演算邏輯 畫面 UI 的處理 Alpha-Beta Search (MiniMax Search)
Board
Computer’s Move Scan all possible Move (Depth Limitation) Legal Move Calculate Point Choose a Best Move ( Best Point )
Move Base Offset Grid90 Grid182 LegalPosition Mask 0: 兵 ( 卒 ) 1: 仕 ( 士 ) 2: 相 ( 象 ) 3: 傌 ( 馬 ) 4: 炮 ( 包 ) 5: 俥 ( 車 ) 6: 帥 ( 將 )
PointTable 兵 ( 卒 ) 仕 ( 士 ) 俥 ( 車 ) 帥 ( 將 )
Demo ChessGUI
CarAccountsMaintain( 收支維護 ) 出車收支維護系統 簡易報表處理
Demo CarAccountsMaintain
GssLogExplorer Log 檢視工具
Demo GssLogExplorer
經驗分享 NETSH 的應用 Vmware expand disk
NetSh 的應用 匯出設定 netsh –c interface dump > config.txt 匯入設定 netsh –f config.txt 自訂設定 netsh interface ip set address  “ 區域連線”   static 10.168.0.88 255.255.255.0 10.168.0.1 netsh interface ip set dns  “ 區域連線”   10.168.0.1 netsh interface ip set address  “ 區域連線”   dhcp netsh interface ip set dns  “ 區域連線”   dhcp
Vmware Expand Disk Vmware-vdiskmanager.exe -x  8Gb MyDisk.vmdk Modify Partition Capacity Partition Magic Arconis Partition
結語 抽象化 What vs How ( 關心概念而非細節 ) 責任區隔 讓變動區域縮小 可讀性 讓人容易讀懂
Q & A
參考資料 CruiseControl.NET Home NAnt Home NUnit Home NDoc Home Alpha-beta pruning OpenGL API Code and Tutorial Listings

部門會議 950619 Leon的錦囊妙計

Editor's Notes

  • #5 簡單來說它是一個自動建置工具可進行 Daily Build or Auto Build 利用到持續整合的概念 , 確保程式碼修改過之後在一定的短時間之內 馬上得回一個可靠的版本的一套流程串連軟體 屬於軟體建構管理的範圍 ( 屬於建構管理的一個分支 ) 與多種 Source Control 系統整合 與許多外部工具整合
  • #6 Cruise Control 其實是一種汽車恆速行駛操緃裝置 CruiseControl.NET 是一套持續整合的伺服端軟體 本頁是整合流程的示意圖 上方的電腦圖示表示 Remote Client Step 1. Code Changed 造成 CCNet Server 被 Invoked( 觸發 ), 起動了整合流程 Step 2, 3. 藉由自動建置工具 NAnt 由 Code Repository 取得最新程式碼 Step 4,5,6. 進行 Visual Studio( 建置方案專案 ), NUnit( 批次測試 ), FxCop( 程式碼格式驗證 ) 等工作 Step 7. 將 4,5,6 產出匯集並產生建置報告及狀態修改 Step 8.CCNet 以 Mail 匯報結果 Step 9. Remote Client 可經由 CCNet Server 檢視專案建置狀態 Step 10. 可經由 DashBoard 網站了解建置狀況
  • #7 CruiseControl Server 是命令列操作 CruiseControl Service 則是註冊為 NT Service Web DashBoard 是監控專案狀態的 Report 網站 CCTray 是針對 Client 的常駐通知工具
  • #14 重點為開啟 Web DashBoard 來檢測專案狀態 並開啟 Server 設定檔把檢查週期改短為 1 分鐘 然後簽出修改後簽入並觀察 Server Console 的動作或者直接看完成的 Log 以及輸出目錄結果 zip 檔 可能可以稍待講一下 NAnt 的設定檔 VSS : Leon-Chuang Build Server : HRISPD-RD01
  • #17 利用三角函數來運算空間座標轉換
  • #18 Open Graphic Library
  • #19 操作一下畫面顯示
  • #20 VSCCP
  • #25 操作一下畫面顯示
  • #27 操作一下畫面顯示
  • #29 操作一下畫面顯示