熱門文章 (Popular Post)

顯示具有 ASP .Net 標籤的文章。 顯示所有文章

By :

前言

前兩天 Stack Overflow 閒晃時,無意間發現這個問題:在 ASP.NET Core 程式內,如何回傳 Controller / Action 上的 DisplayName 內容,突然好奇在 .NET Framework 與 ASP.NET Core 之間會有什麼樣的差異,於是簡單撰寫程式進行測試。發現兩個版本差異在於取得方法不同,但程式流程其實很相似。本篇文章簡單記錄一下兩者差異,若有任何錯誤或建議,請各位先進不吝指教。

Examples are based on .NET Framework / ASP.NET Core WebAPI Project

By :

前言

這兩個月的工作是不斷地對系統進行壓力/效能測試與調校,漸漸開始有自動化壓力測試的需求。由於我們採取方式 Remote Testing,每一次進行測試前需要啟動每一台 JMeter Sever,才能開始執行測試腳本。為了能執行遠端伺服器 JMeter Sever ,我們在服務內撰寫執行 remote powershell 的方法,藉此達到目的。本篇文章簡單介紹:

1. C# 執行 Powershell Scripts
2. 執行遠端 Powersehll Command
3. 背景執行 Powershell Scripts
4. 如何背景執行 Powershell Scripts 時取得 output 與 status

若有任何錯誤或建議,請各位先進不吝指教。

本篇執行環境:
Visual Studio 2017
.Net Core with .Net Framework

範例下載:
https://github.com/matsurigoto/powershell_with_csharp_example



介紹

 C# 執行 powershell Scripts

當您想要使用 C# 撰寫 Powersehll 指令,必須將 System.Management.Automation.dll 加入參考,而這個 dll 位置是在:
C:\Program Files (x86)\Reference Assemblies\Microsoft\WindowsPowerShell\3.0

By :

前言

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

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

本系列文章大概內容如下(暫定,會修改):
使用 Gulp 實作 Asp .Net Web Application 持續整合
Using gulp to implement .Net web application continuous integration
1.Gulp 基礎教學
2.流程簡介、代入參數與修改AssemblyInfo
3.透過 Gulp:nuget-runner 進行 NuGet Package Restore
4.透過 Gulp:gulp-msbuild 進行 Build project
5.透過 Gulp:gulp-nunit-runner 進行 Unit Test
6.Gulp CI Deploy (1) - 透過Gulp:robocopy 進行 Deploy
7.Gulp CI Deploy (2) - 使用 MSDeploy (WebDeploy) 進行 Deploy
8.Gulp CI IIS Management - 使用 PowerShell 變更實體路徑
9.最終篇: Team City 設定 與 Build Scripts 撰寫
   9-1 Team City Agent 相關說明
   9-2 Team City Server 簡易設定說明
   9-3 Build Scripts 撰寫
   9-4 測試結果

本系列文章使用的環境如下:
1.Visual Studio 2015 Community Update 3
2.Visual Studio Core
3.TeamCity
4.Nunit 3.2.1.0
5.NuGet 3.4.4.1321


介紹

Team City Agent 相關說明
Step 1. 開發者於 Team City 操作介面選擇 Agent 與 Branch 後,點擊 Run。
Step 2. Teamcity 觸發 Agent,執行持續整合動作。
Step 3. Team City Agent 從 Git Server 取的該 Branch 程式碼。
Step 4. 開始執行 Build Scripts,依序進行 Restroe、Build 與 Test。
Step 5. 執行 Deploy 至 Web Server 工作; Deploy 後,變更 Web Server 該網站實體路徑。

By :

前言

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

本系列文章大概內容如下(暫定,會修改):

使用 Gulp 實作 Asp .Net Web Application 持續整合
Using gulp to implement .Net web application continuous integration
1.Gulp 基礎教學
2.流程簡介、代入參數與修改AssemblyInfo
3.透過 Gulp:nuget-runner 進行 NuGet Package Restore
4.透過 Gulp:gulp-msbuild 進行 Build project
   4.1 Build project
5.透過 Gulp:gulp-nunit-runner 進行 Unit Test
6.Gulp CI Deploy (1) - 透過Gulp : Robocopy 進行 Deploy
7.Gulp CI Deploy (2) - 使用 MSDeploy (WebDeploy) 進行 Deploy
8.Gulp CI IIS Management - 使用 PowerShell 變更實體路徑
9.最終篇: Team City 設定 與 Build Scripts 撰寫

本系列文章使用的環境如下:
1.Visual Studio 2015 Community Update 3
2.Visual Studio Core
3.TeamCity
4.Nunit 3.2.1.0
5.NuGet 3.4.4.1321


介紹

Build project
Step.1 輸入以下指令安裝 gulp-msbuild 套件
npm install --save-dev gulp-msbuild

By :

前言

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

本系列文章大概內容如下(暫定,會修改):

使用 Gulp 實作 Asp .Net Web Application 持續整合
Using gulp to implement .Net web application continuous integration
1.Gulp 基礎教學
2.流程簡介、代入參數與修改AssemblyInfo
3.透過 Gulp:nuget-runner 進行 NuGet Package Restore
   3.1  方案架構
   3.2  Package Restore
   3.3 下載與設置 NuGet.exe
   3.4 進行 NuGet Package Restore
4.透過 Gulp:gulp-msbuild 進行 Build Project
5.透過 Gulp:gulp-nunit-runner 進行 Unit Test
6.Gulp CI Deploy (1) - 透過Gulp : Robocopy 進行 Deploy
7.Gulp CI Deploy (2) - 使用 MSDeploy (WebDeploy) 進行 Deploy
8.Gulp CI IIS Management - 使用 PowerShell 變更實體路徑
9.最終篇: Team City 設定 與 Build Scripts 撰寫

本系列文章使用的環境如下:
1.Visual Studio 2015 Community Update 3
2.Visual Studio Core
3.TeamCity
4.Nunit 3.2.1.0
5.NuGet 3.4.4.1321


介紹

方案結構
這次系列文章的方案結構如下圖所示:主要為 1 個 WebAPI Project、 1 個 MVC Project 與 2 個
Test Projects,測試專案命名規則結尾為UnitTests,方便我們後續進行測試作業。
方案結構

By :

前言

本篇介紹 實作流程 與 如何安裝與使用套件 :
  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 實作 Asp .Net Web Application 持續整合
Using gulp to implement .Net web application continuous integration
1.Gulp 基礎教學
2.流程簡介、代入參數與修改AssemblyInfo
   2.1 介紹
       2.1.1 工作流程
       2.1.2 Gulp 取得參數
       2.1.3 修改 AssemblyInfo
   2.2 參考資料
3.透過 Gulp:nuget-runner 進行 NuGet Package Restore
4.透過 Gulp:gulp-msbuild 進行 Build Project
5.透過 Gulp:gulp-nunit-runner 進行 Unit Test
6.Gulp CI Deploy (1) - 透過Gulp : Robocopy 進行 Deploy
7.Gulp CI Deploy (2) - 使用 MSDeploy (WebDeploy) 進行 Deploy
8.Gulp CI IIS Management - 使用 PowerShell 變更實體路徑
9.最終篇: Team City 設定 與 Build Scripts 撰寫

本系列文章使用的環境如下:
1.Visual Studio 2015 Community Update 3
2.Visual Studio Core
3.TeamCity
4.Nunit 3.2.1.0
5.NuGet 3.4.4.1321


介紹

工作流程
整體架構為3個伺服器:Git Server、TeamCity Server 與 Web Server。
首先從 TeamCity 選擇欲佈署的 branch,Agent 會從 Git Server 擷取欲佈署 branch,接著執行指令,依序進行 restore, build, test 與 deploy 等動作,完成整個 CI 流程,如下圖所示:
workflow

By :

前言

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

本系列文章大概內容如下(暫定,會修改):

使用 Gulp 實作 Asp .Net Web Application 持續整合
Using gulp to implement .Net web application continuous integration
1.Gulp 基礎教學
   1.1.介紹
   1.2 安裝與使用
       1.2.1 安裝與設定環境 
       1.2.2 開始使用 Gulp (Getting start with gulp)
       1.2.3 Gulp 範例程式碼
   1.3 Visual studio 2015 內使用 Gulp
   1.4 感想
   1.5 參考資料
2.流程簡介、代入參數與修改AssemblyInfo
3.透過 Gulp:nuget-runner 進行 NuGet Package Restore
4.透過 Gulp:gulp-msbuild 進行 Build Project
5.透過 Gulp:gulp-nunit-runner 進行 Unit Test
6.Gulp CI Deploy (1) - 透過Gulp : Robocopy 進行 Deploy
7.Gulp CI Deploy (2) - 使用 MSDeploy (WebDeploy) 進行 Deploy
8.Gulp CI IIS Management - 使用 PowerShell 變更實體路徑
9.最終篇: Team City 設定 與 Build Scripts 撰寫

本篇使用的環境如下:
1.Visual Studio 2015 Update 3
2.TeamCity
3.Nunit 3.2.1.0
4.NuGet 3.4.4.1321



介紹

前端任務管理工具,將前端檔案做自動化程序,程式修改後不需要重啟,gulp會自動佈署與重載瀏覽器。 Gulp 運用已經寫好的套件,加速、簡化與混淆前端開發流程。
常用的的套件如下:

gulp-watch:即時監控指定目錄下的檔案是否異動
gulp-minify-css:CSS檔案壓縮
gulp-concat:合併多個檔案
gulp-jshint:JavaScript語法檢查
gulp-uglify:JavaScript檔案壓縮

我們只簡單使用gulp-minify-css套件作為範例,以後有機會再補齊相關套件使用方法。



安裝與使用

安裝與設定環境 

Step 1.再使用 Gulp 之前,必須要先安裝nodejs,可以在https://nodejs.org/en/進行下載,安裝過程就不再贅述。

By :

前言:

回想約三年前的第一份工作,在 Java Application 或 Android App 專案開發過程中,與其他開
發者溝通與確認WebAPI格式是必須且非常繁瑣的。雖然工作內容不難,但常常因為一些細節
耗費相當多的時間。
在開發過程中,必須要了解WebAPI使用方式、解析或回傳不同格式資料(XML、JSON)、需
要保持資料一致性...等。所以我們必須以文件紀錄這些資訊,並作為開發者之間溝通的方式。

早期紀錄的方式,以簡單的Google document或Word方式紀錄與說明 WebAPI,記錄範例如
下:

方法:GET
參數格式:String
參數名稱:Id
回傳資料格式:JSON
回傳資料內容:{ "name" : "duran" }

這種紀錄方式有些缺點:
1.人工撰寫文件:非常花費時間。
2.文字記錄錯誤:因為人工輸入,運氣不好可能因為錯字花費很多時間。
3.無法即時測試:Get可能方便測試,輸入網址即可測試,如果是Post呢? 如果有10個參數呢?
                               如果超長JSON呢?
4.難以紀錄歷程:問題比較小,使用版本控管軟體可以解決這個問題。
5.文件不夠詳細:可能又要找WebAPI開發者討論,花費時間。


換了新環境,當然也要入境隨俗的偷學新東西!! 而不能像過去一樣花費時間在鎖碎的
問題上!!
今天這篇主要簡單介紹swashbuckle,一個整合ApiExplorer and Swagger/swagger-ui,容易安裝、容易維護WebAPI與可以進行測試的好用套件。

這篇文章將同時發佈在點部落與個人blogger



Install Package:

Step.1 開啟Visual Studio,點選New Project...
           Open Visual Studio,  Click New Project...

By :

前言:

在正式學習Asp Web程式開發的時候,剛好是從MVC開始學起,對於前一版的Asp, Asp .Net(C#, vb)不甚熟悉。雖然常常在除錯、修改些維護專案Asp, Asp .Net程式,但也僅限於網路上查詢語法,直接撰寫使用,有許多原理或方法不是很懂。

維護這些專案一陣子後,偶然在維護案發現Request.QueryString and Request.Form兩個在Asp傳遞參數的方法。且這兩個方法可以在Controller中使用,相當方便(雖然在MVC中可能不是很正式的用法),但在這邊簡單說明使用方法。
如果您對於httpget與httppost相當了解與熟練,這篇只需要看範例及可。
(此篇文章同步放上個人點部落)


說明:

QueryString:

當我們在網頁系統傳遞參數的過程中,最簡單也最快的方法是使用http get方式進行傳輸:
簡單的說,將需要的變數放置在網址(URL)後面,一併傳遞至下一個網頁,進行處理。而
QueryString就是接收在網址上的變數之其中一種方式。

舉例來說:
我們有兩個string,分別為account與nickname
account: admin
nickname: duran

我們只需要將變數用下面的方法,接在網址後面即可。
原網址 http://your_web_site/index
新網址 http://your_web_site/index?account=admin&nickname=duran

若再增加一個變數name=DuranHsieh,則使用&接下一個變數(依此類推)
新網址 http://your_web_site/index?account=admin&nickname=duran&name=DuranHsieh
在controll中加入Request.QueryString["name"]; ,就可以取得網址列,名稱為name的內容值。

範例:
我們使用Asp .Net MVC的範例程式:
Step 1.在HomeController中的Index,使用Request.QueryString方法將內容放入ViewBag:
public ActionResult Index()
{
    ViewBag.name = Request.QueryString["name"];
    ViewBag.account = Request.QueryString["account"];
    ViewBag.nickname = Request.QueryString["nickname"];
    return View();
}

Step 2.在Index.cshtml加上
@ViewBag.name
@ViewBag.account
@ViewBag.nickname

Step 3.執行程式後,在網址最後方加上?account=admin&nickname=duran&name=DuranHsieh
可以看到取得內容顯示在網頁上。

By :

前言:

這個問題是把很早期的ASP .NET專案建置後所發生的問題,原因是少安裝AJAX相關組件。
根據參考網站System.Web.Extensions幾乎都是AJAX套件未安裝導致。

錯誤訊息(error message):
無法載入檔案或組件 'System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 或其相依性的其中之一。 系統找不到指定的檔案。

如下圖:



Tag : ,

By :
環境:IIS 7

於系統根目錄下,存在 web.conifg:


    <configuration>
        ...
        <system.web>
            ...
        </system.web>
        ...
    </configurationg>


在<system.web>與</system.web>外層加上

    <configuration>
        ...
        
            <system.web>
                ...
            </system.web>
        
        ...
    </configurationg>


可避免虛擬目錄繼承根目錄web.config其況發生
Tag : , ,

- Copyright © Duran Hsieh @ Duran 的技術冶煉廠 - Date A Live - Powered by Blogger - Designed by Johanes Djogan -