[第八屆IT邦幫忙鐵人賽] ASP.Net Core web application continuous integration - 序

前言

個人覺得運氣不錯,從早期單純的程式撰寫、版本控管、單元測試、專案管理工具到目前持續整合,透過工作學習越來越多的知識與技術,而這些知識技術也逐漸優化工作效能與成果,在此感謝一路走來曾經共事過的強者們,感謝你們不吝嗇地分享自身經驗與技術。透過目前工作,第一次實際接觸到的持續整合,也親身感受到程式自動化所帶來的好處。因應公司專案需求,個人有機會實作ASP.Net Web Application持續整合流程,雖然流程不算盡善盡美,但也補足長久以來對於理論的疑問,學習了不少經驗。這次透過鐵人賽,將對於ASP.Net core 部分製作持續整合的的相關經驗做一次彙整紀錄,有別於先前撰寫 ASP.Net Framework 持續整合文章,ASP.Net Core 在持續整合製作過程中有些許的不同,將會在後面的文章一一描述。  序篇將簡單說明目錄、操作環境、基本流程與持續整合的好處,若有錯誤或任何建議,請各位先進不吝提出,謝謝。

 

...繼續閱讀 »

[Gulp][.Net Web Application][CI] 最終篇: Team City 設定 與 Build Scripts 撰寫

前言

個人實作 .Net Framework 、.Net Core 持續整合流程,並整合前端佈署至CDN整體流程後,深感製作自動化流程隨著技術創新,變得越來越簡便。尤其是 .Net Core 部分,Restore, Build, Test部分都可以以自身指令執行,不需要額外引入套件與撰寫指令,只需要實作 Deploy 部份,這讓我非常的驚訝(但這部分就不在此系列贅述,而會在.Net Core系列文進行說明),也感嘆科技進步神速。

此外,這篇文章是這系列最後一篇,個人覺得後面幾篇文章表達方式比較不好,近期內會逐步修正部分內容,讓有興趣的人更容易理解,請多包涵。在此也感謝花費時間觀看此系列文章的所有人,若有觀念錯誤或建議請各位先進不吝指教。

...繼續閱讀 »

[Gulp][.Net Web Application][CI] Gulp CI Deploy (2) - 使用 MSDeploy (WebDeploy) 進行 Deploy

前言

在上一篇,我們透過 Gulp Robocopy 套件進行網站佈署,而本篇我們將使用微軟的Web Deploy 進行網站佈署。不同於 Robocopy ,網頁伺服器目標資料夾需要開放編輯權限(若開放所有使用者讀寫權限,可能有些安全性的疑慮),Web Deploy 則是使用Windows Service (透過 port 8172) 協助進行佈署。理所當然,因為是第一次使用CI流程,過程中遇到許多IT問題,這此也一併記錄下來,提供各位與未來自己設置的時候參考使用,若有觀念錯誤或者建議請各位先進不吝指教。

...繼續閱讀 »

[Gulp][.Net Web Application][CI] Gulp CI Deploy (1) - 透過Gulp : Robocopy 進行 Deploy

前言

執行完 Restore, Build, 與 Test 後,接下來進行的工作是 Deploy。Deploy 實作的方法有許多種,並沒有哪一種方法是最正確的。在這系列文章中我們使用robocopy 與web deploy 兩個套件完成這項工作。無論使用哪一個套件,都有些限制與前置作業需要進行。Robocopy 使用上相當簡便,但 Team City Agent 必須"找得到"要佈署的伺服器,透過分享資料夾與設定權限的方式,將程式複製過去後完成佈署。如同第一篇我們所顧慮的,複製期間若沒有實行關機,進行操作的使用者可能會收到錯誤訊息,故我們將不直接將資料傳輸到目前運作版本的資料夾內,而是使用建立新版本資料夾後,更改實體路徑的方式,降低系統運作中發生錯誤的機會。

若有觀念錯誤或者建議請各位先進不吝指教。

...繼續閱讀 »

[Gulp][.Net Web Application][CI] 透過 Gulp:gulp-nunit-runner 進行 Unit Test

前言

陸陸續續從 Net Framework Fake CI,轉到了 Gulp CI,繼續轉往 .Net Core + Gulp CI 的,最後仍需要整合 Front end CI 部分,一路走來有挺身的感觸。 做持續整合就像是造橋舖鐵軌蓋捷運,工人需要處理許多基礎建設與技術,才能讓乘客舒適又快速地到達目的地,提供遊客更好的服務品質(自動測試、自動佈署、前端避免cache處理與自動刪除舊版程式...等),讓開發人員專注於程式開發。
當然,不免要碎碎念一下.... 
建構 CI 的過程中碰了不少壁,維護需要應付許多雜事,當 CI 掛掉的時候,所有人等著維修好的感覺真的很歡樂 ,所以請善待處理 CI 的工程師(笑)。

...繼續閱讀 »

[Gulp][.Net Web Application][CI] 透過 Gulp:gulp-msbuild 進行 Build Project

前言

本篇主要說明如何使用gulp-msbuild套件進行專案建置,除了在建置需注意是否安裝了
.NET Tools、 .NET Framework與相關套件,也需注意msbuild指令中的設定。個人過去
對於msbuild指令中的屬性設定較不熟悉,過程中查了資料才漸漸了解相關設定(如更
新web.config內容、產生publish資料...等),若有觀念錯誤或者建議請各位先進不吝指教。

...繼續閱讀 »

[ASP.NET Core][IIS] set stdoutLogFile and stdoutLog permission

  • 987
  • 0
  • 2016-08-09

前言

本篇文章是學習與嘗試建 ASP .Net Core Web Application 持續整合遇到,比較基礎的問題
。主要是 deploy to IIS 後, stdoutLogFile 無法產生的問題 (permission issue),在這邊做一個
紀錄避免以後重蹈覆轍,也提供給有需要的開發者參考。若有說明錯誤或相關建議,請各
位先進不吝指教。

測試環境:
Windows 10
Visual Studio 2015 Update 3
Visual Studio Core
IIS Version 10.0.10586.0
ASP .Net Core 1.0

...繼續閱讀 »

[Gulp][.Net Web Application][CI] 方案結構與透過 Gulp 進行 NuGet Package Restore

前言

在幾乎完成 Gulp 實作 .Net Web Application 持續整合時,正巧遇上 Visual Studio 2015
Update 3 release,開發團隊成員也陸續進行升級。因為這次是新的專案,開發初期套件
更動較頻繁,很快發現專案進行 package restore 的過程中,出現部分套件相依錯誤或者
找不到某些套件的錯誤 (猜測是 Nuget 升級的關係),個人將進行Visual Studio升級後解
決了這個問題。而CI部分下載並更換最新的 Nuget.exe 即可正常運作。
本篇文章將簡單介紹如何透過 gulp套件執行 Nuget.exe ,替專案進行 package restore。

...繼續閱讀 »

[Gulp][.Net Web Application][CI] 流程簡介、代入參數與修改AssemblyInfo

前言

本篇介紹 實作流程 與 如何安裝與使用套件 :

  1. yrags: 取得指令中的參數,包含:
               1.佈署版本號碼 (1.0.0.1)
               2.佈署的方式 (dev, qa, staging, prd... etc.)
               3.專案名稱 (WebAPI, BO... etc)
  2. gulp-dotnet-assembly-info: 更改每個專案中的 AssemblyInfo.cs 內容
...繼續閱讀 »

[Gulp][.Net Web Application][CI] Gulp 基礎介紹

前言

雖然目前已經有數個持續整合的流程,且運做得相當穩定。在新的專案,Team leader 希望嘗試使用 Gulp 來進行.Net MVC Web Applicatioon 持續整合,讓我這次機會從頭到尾的撰寫持續整合流程。本系列文章使用 Gulp + Teamcity配合製作持續整合流程,中間也會詳細描述遭遇的問題與解決的方法,因為第一次嘗試,有觀念錯誤或者建議請不吝提出。。

...繼續閱讀 »

[Asp .Net MVC] 範例:一個新增、修改、刪除、查詢與檢視的應用程式

前言

重要:在閱讀本篇前建議,實作前面的文章內容,本篇只提供範例程式與簡易程式說明。

本篇是結合Razor, HtmlHelper, ViewModel, Entity Framework(code first), and local db 等前述的
內容所撰寫一篇簡易的應用程式。利用這個簡單範例,可以讓您透過一個CRUD的專案,進
而由此範例進行延伸,能繼續更深入的學習與延伸發展新功能(一種先求有,再求好的觀念)。

這個範例程式並不完美,希望透過修改這個應用程式,了解基本的使用方法。
若有觀念錯誤與修改建議,也請各位先進不吝指教。

Github位址: https://github.com/superpucy/FcuMvcWebDemo2

...繼續閱讀 »

[Asp .Net MVC] ViewModel (Attribute and model binding)

前言

為了這一篇,前面需要鋪了許多的梗,寫了許多可能不是很重要但很基礎的觀念,包含

  1. Html 基礎 (請參考 網頁系統 與 Html基礎簡介)
  2. Controller, Action 與 View 的關係(請參考 Controller and View 1-3)。
  3. Razor, html Helper, 與model binder  (請參考 Razor and Htmlhelper)

當對於前面幾篇文章稍微有概念後,看到這篇才不會有太多的疑問。若有觀念錯誤與修改建議,也請各位先進不吝指教。

...繼續閱讀 »

[Asp .Net MVC] 網頁系統 與 Html基礎簡介

這一系列文章是過去學習Asp .Net MVC,自己整理的筆記,過去曾用於回學校指導學弟
妹專題課程。因學校不同學程與個人程式學習經驗不同,其實進行教學的時候,非專攻
網頁程式的學弟妹,對於基礎的html仍舊很陌生。
這系列的文章從 網頁系統操作流程與html 開始說明,到最後發佈專案到IIS或Azure Web
 APP做一個簡單流程介紹,讓初學網頁程式的學生有個概念。


 

...繼續閱讀 »