超好用的C#控制台应用模板
默認模板之缺
在工作學習中,我們經常需要創建一些簡單的控制臺應用(Console App)去驗證某個想法,或者作為小工具交付給其他同事。
通常我們的選擇是 Visual Studio 自帶的 Console App 模板,這個經典模板只有預設好的 csproj 文件和空蕩蕩的?Main?方法,偶爾還會附送一行?Console.WriteLine("Hello World!");,除此之外沒有任何附加功能。
代碼看起來大概是這樣——
using System;namespace ConsoleApp1{??? class Program?? {??????? static void Main(string[] args)?????? {??????????? Console.WriteLine("Hello World!");?????? }?? }}面對這如同白紙一樣的模板,如果我們需要捕捉一下異常、調用一下異步方法、記錄一下log呢?勤奮的你一定存有一些常用的經典代碼片段和配置文件吧,那就一一復制進來唄……折騰了十來分鐘后,終于可以開始寫代碼了……
N天之后,又需要新寫個控制臺應用了,我們再次重復一遍上述過程。
安裝模板插件
受到?HTML5 Boilerplate?的啟發,Visual Studio Marketplace 上也出現了一款叫做?C# Console App Boilerplate?的插件,顧名思義,就是在默認 Console App 模板基礎上添加常用特性以解決癢點。
可以從 Visual Studio Marketplace 上直接下載 vsix 文件安裝:https://marketplace.visualstudio.com/items?itemName=vej.20181111
也可以在 Visual Studio 2017 的 Extensions and Updates 中輸入?C# Console App Boilerplate?搜索并安裝:
安裝完成后,通過 Visual Studio 再次新建 Project 時,就可以在 Visual C# 分類下找到 Console App Boilerplate 的兩個新模板。
模板便利特性
通過 Console App Boilerplate 模板新建 Project 后,我們可以看到編輯器窗口中默認打開的 Main.cs 文件——
我們可以直接運行樣例代碼,也可以將?Work?方法中樣例代碼替換成我們的業務邏輯。樣例代碼直接運行的效果如下——
同樣是控制臺應用,那么它和經典的 Console App 模板究竟有何不同呢?我們打開 Program.cs 文件便可知曉——
使用了 C# 7.1 中新引入的異步?Main?方法,用來放置業務邏輯的?Work?方法同樣是異步的。調用異步方法時,可以直接使用?await?關鍵字,省去了我們之前在同步?Main?方法中做同樣操作時附加的?.Wait()?甚至是?.ConfigureAwait(false).GetAwaiter().GetResult()的繁瑣。
預設的?log4net?配置了?RollingFileAppender?和?ColoredConsoleAppender?兩個 Appender,前者可以在日志文件中額外記錄下機器名稱、進程的名稱和 ID,后者確保在跨平臺環境下日志依然“出彩”。
整體的異常處理,針對?AggregateException?和?Exception?分別進行了捕捉和記錄,并依此設置了 Exit Code。
Stopwatch?測量整體的運行時間并在最后一行日志中輸出。
修改代碼頁以支持 UTF-8 字符正常顯示,如果需要顯示漢字,在非中文的 Windows 中還需要額外地將 cmd.exe 的默認字體設置為?MingLiU?/?新細明體?或其他CJK字體。
此外,無論是 .NET Core 還是 .NET Framework 版本的 csproj 文件都采用了 MSBuild 15.0 新引入的 project SDK 格式。新的格式不僅更簡單清爽,也帶來了很多方便的特性,這里不再贅述。
相關需求解法
在模板的基礎上,如果需要解析復雜的命令行參數,可以考慮引入 NuGet 包?CommandLine.Net?進行解析。它的使用方法非常簡單,GitHub 項目的一頁?README?便已闡述清楚,亦支持跨平臺。
反之,如果僅僅想運行幾行代碼,又不愿等 Visual Studio 啟動呢?可以用瀏覽器打開?.NET Fiddle?直接嘗試,它不僅支持最新的 .NET Framework 4.7.2 版本,還可以選擇 Roslyn 2.0,而且在 C# 之外支持 F# 和 VB.NET。
.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結
以上是生活随笔為你收集整理的超好用的C#控制台应用模板的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 打造自己的.NET Core项目模板
- 下一篇: .NET Core 2.2 新增部分功能