發表文章

關於團隊使用 VSTS/TFS 原始碼控管的 - 三兩事

圖片
前言 最近接觸一些開發團隊,發現還是有許多團隊雖然已經導入 TFS 或 VSTS (以下都簡稱為 VSTS),但是仍然只是將 VSTS 當作 Source Control 使用而已,不要說 PM 或 PO 沒有將 WBS 或是 Task(後面都簡稱為 Task) 鍵入 VSTS 中的 Work Items 外,就算有鍵入 Work Items ,也沒有強制要求團隊成員 Check-In Policy (簽入原則),將完成的程式碼簽入 VSTS 的時候,關聯相關的工作項目 Task 。 如果開發團隊連最基本的原始檔管控、Work Item 、工作管理等都沒有做的完善,而原始檔管控又算是軟體專案開發最基本功的部分,如果連基本功都無法落實的話,那麼,後續的 Agile/Scrum... 其實都不用談了。 引發的問題、隱憂 筆者先前,有許多文章在探討團隊開發、個人工作管理與共同規範的關係與問題,這也是筆者先探討 問題、隱憂的原因,因為撇開團隊所使用的開發方法、合作模式 Agile/Scrum/CMMI 等方式不談,因為流程在這邊並不是重點,但是工作若沒有被有效管理,你如何掌握每一個工作項目所花的工時、無法掌握每一個工作項目的工時,更不要說你想要掌控團隊成員中,每一個人手上有哪些工作,有那些已經完成、那些正在進行中、哪一些還未開始,以及哪一些工作由哪一位成員進行 (工作分派狀況)。 在以前,大約十多年前,2005 年左右,當時 TFS 還未盛行,當時筆者的公司、訪間的軟體開發團隊會使用 EXCEL 來控管團隊的工作進度,當時,一樣控管得很好,只是會有幾個缺點, 團隊成員要另外開啟 EXCEL 與其他成員共享 Sheet,每天Update工作 主管要引導團隊成員 Update EXCEL 內容 主管對團隊成員間,要花比較多的溝通成本 團隊成員之間,要花比較多的溝通成本,討論程式碼 (因為 EXCEL 內的說明無法直接與程式碼相關連) 使用 EXCEL 管理專案當然不是不好,以前的開發人員這樣管理專案,不也管理得很好,相信很多讀者心裡是這樣想著,沒有錯,但是 (有但書),開始有使用者回饋 (進入 UAT) 階段, 團隊成員 A 簽入的程式碼究竟是為了某個 Task 而修改、或是因為從某個原始 WBS 展開的 工作項目,User 測過後有 Bug 所...

C# Project Template 發生的異常狀況

圖片
前言 有在看小編部落格的朋友應該都知道,我有許多關於 Project Templates 相關的教學、投影片、分享部落格文章等,本次小編進行另一個客戶的的 C# Project Templates 專案時,卻發生一個詭異問題。 就是如上這個錯誤訊息,每當建立安裝好的這個新的 C# Project Template 時,專案建立過程中就會出現這個錯誤,這….. 是什麼詭異訊息?我從來就沒遇過啊?從以前建置 Visual Studio 2015 的 Project Templates 就從沒遇過這種情形,為一的差別只是目前使用的是 Visual Studio 2017,難道我踩到了 Visual Studio 2017 Extensibility SDK 的坑?  喔~ 不會吧,馬上搜尋一下 Google ,結果是,從沒有人遇過跟我相同的問題,一度還認為是專案目錄名稱太長,也許 VSIX 執行環境命令列長度限制,於是將整個專案複製到 D:\ 磁碟機下面還是一樣的狀況。 就在案情陷入膠著時,於是我將編譯完成的 VSIX 安裝檔直接解壓,查看其內容時有了驚人的發現… 這麼發現倒不是 Visual Studio Extensibility SDK 2017 有什麼 Bug,而是我發現了我驚人的失誤…. 什麼失誤呢?@@ 答案是,字打錯,什麼字打錯呢?看看下面的圖就知道了…… 在 C# Project Templates 裡,編輯 ProjectTemplate.csproj 檔案時,不管是需要編譯、不需要編譯的檔案均放置在 <ItemGroup> 節點下面,只是,在習慣上,我們會將不需要編譯的 Content 內容 (也就是<None>的項目),放在另外的 <ItemGroup> 下,只是代表包含檔案的 Include 我不小心敲成了 Incluse 以至於引發這個作業失敗的錯誤訊息。   結語 這次問題的起因在於,我們若是編輯 .csproj 或是 .vstemplate 等原本由工具產生的檔案,對於 Visual Studio 而言,因為 Visual Studio 工具自行在 Maintain ,Visual Studio 工具不會料想到有人會去修改、甚至改錯了 Visual Studio 工具不...

關於團隊使用的 Project Templates

圖片
關於規範這件事 還記得筆者先前曾經說過一句話: 軟體開發的問題一直都不在於『技術』、『工具』的不斷推陳出新。 而在於,你的做事方法有沒有想要推陳出新、有沒有想要『改變』而進步? 因為世界永遠只會更進步、永遠都是自己在原地踏步! RAD 無罪論 這讓我想起了很久以前,網路上曾紅極一時的一個討論,「RAD 無罪論」,當時因為 RAD (Rapid Application Development)工具,如:Borland Delphi、C++ Builder 開始盛行,網路上出現兩派人馬爭論著,究竟 RAD 的出現是好是壞 好的一方認為: 透過 RAD 工具,開發可省下不少的時間,也是 IDE 開發工具的趨勢,且使用 RAD 工具不代表就不需要瞭解底層運作細節。 壞的一方認為: RAD 工具使的一些初學者不需要瞭解底層運作細節,甚至不需要瞭解太多的OOP 物件導向概念、 Object Pascal 語法,就可以拼湊出一個應用程式,因此 RAD 工具會產生對於軟體開發一堆一知半解的工程師。 還記得當時一位 Delphi 書籍的作者:陳寬達先生,他在他的著作「Delphi 深度歷險」裡面記載了當時在 TANet 論壇上比較經典的討論,陳寬達先生將比較中肯的回覆記載在他的著作裡面,如下: 所以,這也就是說,不管是任何工具、技術,其實都跟你個人或團隊 進步 其實一點關係都沒有。 好比使用 RAD、IDE 工具、好用的精靈,不代表就不需要去瞭解底層的運作細節。 也就是說,其實重點都在「人」的身上。工具終究只是工具,就看你怎麼使用而已。 套句流行語: 這不是南北拳的問題,是你的問題。 另外,小編之前所開的課程「 架構設計好簡單系列 - 如何設計符合團隊的範本精靈 (Project Template) 」中,也不是只是教導各位如何建立 C# Project Templates 然後包進 VSIX Project 裡面這麼簡單而已,所教導的是, 如何制訂團隊共同規範 , 注意 , 是團隊共同規範 ,是的,我不斷的在課程中強調, 這是「團隊共同規範」的設計,不是只是設計「Project Templates」 , 而且,我也再三的強調,這個 Project Templates 是在團隊共同規範成形後,也就是在團隊已經擬聚共識、具備共同開發規範...

MyORM Framework 的 C# Project Templates 已經上市集

圖片
警語: 在使用 MyORMWizardExtensions 請斟酌使用,這是在團隊有共識的情況下、已有共同規範下減輕重複性工作使用 (這個重複性工作在於你的團隊已經有這些重複性工作的 Skill),所以在使用前,請先參考小編先前撰寫、也有 PO 在軟體開發之路的文章「 導入團隊 Project Templates 樣版設計 - (首部曲) 」。 另外,如果您初學者,不代表您直接拿來使用,而可以不去了解它到底幫你產生什麼樣的程式碼,也就是說,對於你個人能力的提升,還是要能夠自行撰寫出該程式碼,甚至建立你們團隊的規範、程式碼的範本精靈,而不是只是使用別人建立的範本精靈。 先前筆者的課程「 架構設計好簡單系列 - 如何設計符合團隊的範本精靈 (Project Template) 」的重點 7. 一致性的團隊的開發規範 - Coding Standard (Programming Rule),也是教您如何建立你自己團隊的規範,只是透過範本精靈來簡化工作。 為避免有人誤解,所以在此聲明。   前言 先前筆者在 Visual Studio Everywhere 台北場分享的「 團隊開發永遠的痛-談導入團隊開發的共同規範 」課程,與先前所開立課程「 [第二梯][台北 5/28 (星期六)] 架構設計好簡單系列 - 如何設計符合團隊的範本精靈 (Project Template) 」與的內容中所使用的 C# Project Templates 樣版,本文將介紹筆者自行開發的 Project Templates (以下簡稱為樣版),這個樣版現在已經被我包裝為Visual Studio 的擴充套件,也發佈到 Visual Studio Gallery 市集上,您可以在 Visual Studio Gallery 上下載、並安裝這個套件。 也可以直接從 Visual Studio 的擴充套件管理員下載安裝。   MyORMWizardExtensions 擴充套件說明 這個擴充套件目前發佈的版本只支援 Visual Studio 2017 ,下方筆者說明這個套件的功能、用途、以及使用方式。 在安裝了 MyORMWizardExtensions 擴充套件之後,您可以在你的 Visual Studio 2017 新增專案的是窗看到「MyORM ...

如何評估並將現有的 ASP.NET 網站上至雲端 - [Azure Web App]

圖片
前言 先前有一個客戶想要將現有的公司內部的 ASP.NET 網站佈上 Azure 的 Web App ,他們希望我能夠提供諮詢與協助,本篇文章是將這個網站轉換並放置到 Azure Web App 的經驗分享。   現有環境 Windows Server 2008 R2 ==> 顧名思義 執行在 IIS 7.5 ASP.NET WebForm 網站 .NET Framework 4.0 MS SQL Server 2008 R2   評估現有網站是否可以上雲端 看到上方的「現有環境」,相信讀者應該也注意到了這是一個 ASP.NET WebForm 所開發的網頁應用程式,但事實上移植到 Azure 並沒有差別,因為 Azure WebApp 也是提供 IIS 包含一個 AppPool 的執行個體,好比你在地端的 IIS 上開一個 IIS AppPool 來執行應用程式一樣沒什麼差別!   但是在 PaaS 上執行還是有一些限制存在,一般來說,要評估一個現有的網站是否可以上至雲端,我們會透過以下幾點來評估: Web Apps 僅支援連接埠 80 (適用於 HTTP) 和連接埠 443 (適用於 HTTPS 流量)的繫結,系統將會忽略不同的連接埠組態,並將流量路由傳送至 80 或 443 Web Apps 預設支援匿名驗證以及應用程式所指定的表單驗證 只有與 Azure Active Directory 和 ADFS 整合,才能使用 Windows 驗證,目前不支援所有其他形式的驗證 (例如基本驗證) Web Apps 不支援全域組件快取GAC,如果您的應用程式會參考部署至 GAC 的組件,就必須部署至 Web Apps 上的應用程式 bin 資料夾 Web Apps 不支援 IIS5 以前的相容性模式 應用程式集區 - 在 Web Apps 中,每個網站及其子應用程式都在相同的應用程式集區中執行 如果您的網站上有多個利用多個應用程式集區(AppPool)的子應用程式,請將它們彙總到具有通用設定的單一應用程式集區,或將每個應用程式移轉至個別的 Web 應用程式 Web Apps 不允許在平台上註冊 COM 元件,如果您的網站或應用程式使用任何 COM 元件,您必須以 Managed 程式碼予以重新撰寫,並與網站或應用程式...

導入團隊 Project Templates 樣版設計 – (首部曲)

圖片
前情提要 先前,小編在 Visual Studio Everywhere 台北場分享了「團隊開發永遠的痛-談導入團隊開發的共同規範」 有些人可能會誤解這只是探討導入 Project Templates 的問題而已,但事實上,在導入 Project Templates 時,並不是為了有 Project Templates 而導入,因為重點不在於 Project Templates 而是在於如何導入團隊共同規範,這不只是可以從基本的 (Coding Standard / Coding Rule) 、與團隊的合作模式來探討如何導入,而且,這還會跟你個人的工作管理有關。 這一篇,會探討為什麼說會跟你個人的工作管理有關?以及這個從個人到團隊的導入要如何來進行,進而建立團隊的 Project Templates 。 為什麼會有這篇文章?筆者打算寫一個長篇,來記錄、順便說明在導入 Project Templates 時,可能會有的一些困難點,怎麼一步步克服,以及該怎麼來進行,技術障礙、問題該怎麼來解決等。 要導入 Project Templates 首先我們得要先了解團隊的狀況,這包含: 團隊的 Skills 現有團隊有無規範 (Coding Standard/Coding Rule/Coding Style) 等等… 使用協同合作工具 (Microsoft Teams/Skype/Slack 等…) 團隊的文化 團隊的 Skills 首先,我們先探討團隊的 Skills,一般來說,我們會認為專案的團隊所需要的 Skills 不需要太高,專案大多是 Team Work 模式,除非你是一人專案 (一人專案暫且不是這篇的討論範圍) ,否則大多有一定的合作模式。這樣聽起來好像說 Skills 不重要?確實,在團隊開發下,個人的 Skills 重要性遠低於團隊的共同守則,所以這也是筆者為什麼會這麼重視團隊要有共同的規範這件事,稍後筆者會探討團隊的文化,這是重要,因為會支撐整個團隊的合作模式。 團隊有無規範 (Coding Standard/Coding Rule/Coding Style) 前面我提到,規範這件事情的重要性遠高於個人的 Skills,為什麼呢?這邊筆者再更詳細加以說明,個人的 Skills 不足,可以藉由標準開發(模板/SP...

2017 軟體開發之路 - 新春網聚 (3/4 星期六)

圖片
我們是一群喜愛寫程式的熱血人士,我們喜歡寫程式、喜歡聊技術。 感謝大家對於 軟體開發之路 社群 的支持,社群人數也已經突破千人,為了回饋社群朋友,小弟將於今年 2017/03/04 舉辦網聚活動,這是軟體開發之路第一次舉辦網聚活動。 活動因為剛好卡到過年,所以日期訂為 2017/3/4 星期六 下午 02:00 ~ 05:00,且為了答謝支持本社群的朋友們,本次活動不收費。 活動時間大約三個鐘頭左右,像粉絲見面會一樣,活動目的讓各路軟體開發人才交流、分享軟體開發經驗。 首先會由小弟我開場: 主題 2017 軟體開發之路 - 新春網聚 [見面會] 一、軟體開發甘苦談 二、軟體開發之路該怎麼走?技術怎麼選擇? 三、各路高手交流軟體開發經驗 與 分享 另外,同場加映,由 高榮章 (Johnson Gau) 主講 主題:客服系統的軟體架構分享 一、 軟體架構要關注的事 二、幾種架構介紹 三、設計架構的步驟 四、一個實例 不管您是在學的學生、軟體新鮮人、資深軟體人、或是熱血人士都歡迎參加! 參加方式,請在本臉書活動上點選 [參加],以方便統計人數。謝謝 地點:台北科大育成中心 地址:106臺北市大安區新生南路一段1號(光華館3樓305室) 地圖如下: 感謝 台北科大育成中心 與 聖森股份有限公司 提供會議室場地

.NET Standard Library 在哪裡? 怎麼編譯出 .NET Standard Library 呢?

昨天筆者撰寫了篇文章,介紹了 .NET 的未來與發展,但有些讀者會問:.NET Standard Library 在哪裡?我用 Visual Studio 2015 要如何編譯出 .NET Standard Library 的DLL呢? from gelis 技術隨筆- 點部落 http://ift.tt/2cCB6py

.NET 的未來與發展

在今年 2016 微軟 Build 大會中有一場 Session 「.NET Overview」中,說明了 .NET Framework、.NET Core、Xamarin 這三項平台技術的未來趨勢與發展 from gelis 技術隨筆- 點部落 http://ift.tt/2doNN3Z

Visual Studio 2015 無法起始 IIS Express 進行偵錯的問題

最近撰寫程式時,使用 Visual Studio 2015 起始偵錯時,居然會失敗,點選執行後,約過了幾秒鐘後,Visual Studio 2015 又退回到原來的畫面,查看右下角,IIS Express也沒有啟動,奇怪,昨天可以正常執行的專案,今天卻完全無法執行?到底怎麼回事? from gelis 技術隨筆- 點部落 http://ift.tt/2cua8fA