C# 最佳工具集合: IDE 、分析、自動化工具等
C#是企業中廣泛使用的程式語言,特別是那些依賴微軟的程式語言。如果您使用C#構建應用程式,則最有可能使用Visual Studio,並且已經尋找了一些擴充套件來對您的開發進行管理。但是,這個工具列表可能會改變您編寫C#程式碼的方式。
C#程式設計的最佳工具有以下幾類:
使用上面的連結直接跳轉到特定工具,或繼續閱讀以瀏覽完整列表。
IDE
Visual Studio Code是C#開發人員最受歡迎的程式碼編輯器。您可以使用Visual Studio Code與C#擴充套件功能實現強大的編輯功能,並完全支援C# IntelliSense和除錯。
主要特徵:
- 優秀的自動完成與上下文感知提示
- 內建Git整合,實現更好的版本控制
- 大量的擴充套件進一步增強平臺
由Xamarin開發,MonoDevelop具有許多與VS Code相似的功能,也是跨平臺的。使用MonoDevelop,您可以在Windows,Linux和Mac OS X上快速編寫桌面和Web應用程式。
主要特徵:
- 標準功能,如程式碼提示和除錯
- 還配有Unity,一個遊戲引擎,可以為視訊遊戲等應用程式實現高階C#程式設計
- 支援C#程式碼提示
- 程式碼模板和程式碼摺疊
- 多語言支援
一個用於C#、VB.net和Boo專案的免費開源IDE,#develop(SharpDevelop)是VS Code的輕量級替代品。
主要特徵:
- Visual Studio提供的通常功能,包括程式碼編輯,編譯和除錯
- 一些高階功能包括上下文操作和後臺語法檢查
4. Rider
Jet Brains產品套件中一個成員,Rider是基於IntelliJ平臺和ReSharper的跨平臺.NET IDE。
主要特徵:
- 與其他JetBrains產品無縫整合
- 2000多種程式碼檢查
- 上下文操作
- 支援Unity遊戲引擎
- 支援.NET Framework和.NET Core
Visual Studio 擴充套件
由Microsoft提供,這是一個很好的擴充套件,以加快Visual Studio的開發。
主要特徵:
- 中間點選滾動
- 快速查詢
- 解決方案錯誤視覺化
- 直觀的介面
- 其它版本可用於舊版Visual Studio版本
簡化jQuery框架編碼,jQuery Code Snippets為Visual Studio 2012,2013,2015和2017提供了超過130個程式碼段。
主要特徵:
- 130多種jQuery程式碼片段
- 支援所有版本的Visual Studio
- 對於那些剛入門jQuery開發人員來說非常棒,可以使用這個擴充套件來學習jQuery的門道
CodeMaid是一個開源的VS擴充套件,可以幫助您清理和簡化除C#之外各種支援語言的程式碼。
主要特徵:
- 從程式碼中刪除不必要的字元,如空格
- 程式碼整理
- 使用樹型結構檢視輕鬆瀏覽程式碼
- 支援多種語言
- 註釋格式
使用Refactoring Essentials,一個具有內建的C#和VB程式碼轉換器的VS擴充套件,使您的C#程式碼更容易閱讀和修復常見錯誤。
主要特徵:
- 修復常見的錯字和編碼錯誤
- 在程式碼庫中找到每種不匹配的樣式
- 開原始碼,您可以擴充套件或改進它
編譯器、編輯器和序列化
SlickEdit是一個程式碼編輯工具,可以提高生產力並提高程式碼質量。它是一個跨平臺的程式碼編輯器,可在九個平臺上支援超過60種語言(包括C#)。
主要特徵:
- 編譯並除錯您的程式碼,顯示所有錯誤以便行快速訪問
- 可以處理非常大的程式碼檔案,大到2TB
- 語法擴充套件和縮排
- 按鍵模擬
- 備份歷史記錄
- 多個游標和選擇
- 標準和專業版可用於滿足您的需求
Rextester(代表正則表示式測試器)是C#的簡單線上編譯器。
主要特徵:
- 每段程式碼執行CPU時間最多為5秒
- 每段程式碼最多可以佔用150MB記憶體
- 程式碼在應用程式域中執行,具有基本的執行、反射、執行緒控制和web許可權
11. C# Pad
C# Pad是C#的一個方便的REPL工具。使用起來很簡單:輸入程式碼,點選“Go”執行。
主要特徵:
- 線上快速測試C#程式碼
- 包括程式碼自動完成
- 可嵌入其它網站
另一個輕量級程式碼編譯器,Jdoodle支援63種語言(包括C#),並允許您儲存程式並與其他人共享URL。您可以將Jdoodle中建立的程式碼嵌入到您的網站,用於協作,線上訪問等。
主要特徵:
- 線上快速測試一小段程式碼,而無需開啟IDE
- 輕鬆地與他人分享您的程式碼
- API即將推出
C#的一個流行的除錯工具,.NET Fiddle的靈感來自於JSFiddle.net,旨在快速,簡單的程式碼測試,而無需開啟Visual Studio並建立一個新的專案。
主要特徵:
- 讓您編寫,儲存和協作C#程式碼
- 支援4種專案型別:控制檯,Script,MVC,Nancy
- 還支援VB.NET和F#
Telerik Fiddler允許您線上執行程式碼。它提供了一系列功能,包括Web除錯、Web會話操作、效能測試、安全測試等。
主要特徵:
- 執行一系列測試,如效能測試、Web除錯和安全測試
- FiddlerCore可讓您將Fiddler應用程式嵌入到您自己的應用程式中,以便您可以避免整個Fiddler UI,還可以獲得Fiddler的所有功能
Json.NET是一個流行的JSON框架。使用它,您可以在任何地方(Windows,Windows Store,Windows Phone,Mono和Xamarin)執行它時,建立、解析、查詢和修改JSON,在XML和JSON之間進行轉換。
主要特徵:
- 對.NET物件進行序列化和反序列化
- 查詢JSON資料庫
- 使用JObject,JArray和JValue物件建立、解析、查詢和修改JSON
- 開源
一個簡單的線上編輯器,編寫和執行C#程式碼,Scriptcs被設計為非常簡單,以避免使用過於複雜的工具和解決方案阻礙您的工作效率。
主要特徵:
- 避免完整IDE的臃腫
- 為您提供簡單的C#編碼任務的靈活性和速度
- 管理與NuGet的依賴關係
- 優雅的C#指令碼語法
反編譯和程式碼轉換工具
dotPeek允許您將.NET程式集反編譯為C#。dotBeek是JetBrains提供的免費獨立工具,基於ReSharper捆綁的反編譯器。
主要特徵:
- 強大的搜尋和導航功能
- 將任何.NET程式集解碼為等效的C#或IL程式碼
- 支援多種格式(.dll、.exe、.winmd)
- 將反編譯的程式集儲存為Visual Studio專案
18. ILspy
基於Red Gate的.NET Reflector開源反編譯器,在2011年停止維護,ILspy需要.NET Framework 4.0。
主要特徵:
- 瀏覽程式集並將其反編譯為C#
- 將程式集儲存為C#專案
- 直觀的搜尋和導航功能
- 導航歷史
- 支援C#5.0 “async”
- 反編譯為VB和C#
一個來自Telerik的反編譯器,JustDecompile是一個免費的開源反編譯引擎。
主要特徵:
- 可擴充套件的開放API
- 快速程式碼導航
- 輕鬆地在標籤頁中切換方法和程式集
- 在載入程式集中使用書籤
- 從反編譯的程式集建立一個Visual Studio專案
- Visual Studio擴充套件在VS專案中進行反編譯
Telerik程式碼轉換器將VB程式碼轉換為C#,反之亦然。一個簡單而強大的工具,Telerik程式碼轉換器易於使用,具有直觀的介面。
主要特徵:
- 基於雲的轉換,快速和輕鬆的
- 使用NRefactory庫進行復雜的程式碼轉換
- 使用ASP.NET AJAX的Telerik UI
構建自動化和合並工具
Cake(C#Make)是C#版的開源Make Build自動化工具。一個跨平臺構建自動化系統,Cake使用C# DSL來編寫程式碼,執行單元測試,複製檔案和資料夾,壓縮檔案和構建NuGet軟體包等任務。
主要特徵:
- 在Windows,Linux和OS X上可用
- 建立與其他CI系統相同的方式
- 支援構建工具,包括MSBuild,MSTest,xUnit,NUnit,NuGet,ILMerge,WiX和SignTool
- 高可擴充套件
MSBuild是由Microsoft於2008年推出的。它不是Visual Studio平臺的一部分,但它是您的C#開發工具包的一個很好的資源,例如在您構建程式碼專案時,除了解決方案之外。
主要特徵:
- 來自微軟,它被許多MS商店廣泛使用
- 微軟把它放到了Visual Studio中確保它不會成單獨存
- 構建多個專案
- 構建Win32,x86,x64或任何cpu平臺
- 為多個平臺構建多個配置
FinalBuilder是構建自動化工具的一個很好的商業選擇。使用FinalBuilder,您不需要編輯XML或編寫指令碼來自動完成構建過程。
主要特徵:
- 通過包括視覺化除錯,使構建變得容易
- 可視地定義和除錯構建指令碼
- 使用Windows排程程式安排指令碼
- 與Continua CI,Jenkins或任何其它CI伺服器整合
SemanticMerge分析您的程式碼,旨在處理已被移動或修改的程式碼,使其成為團隊協作的強大工具。
主要特徵:
- 實現協作和分散式開發
- 從結構合併開始,然後在發生衝突時移動到更具體的基於文字的合併
- 基於結構而不是位置合併
- 處理特定於語言的衝突
- 避免錯誤地識別自動合併
- 保持清潔的程式碼並分析更改
版本控制
25. Git
Git就不需要介紹了。這是一個免費的開源版本控制系統,也是當今最流行的版本控制系統。
主要特徵:
- 現代版本控制工具,適用於當今地理位置分佈的團隊
- 包括強大的預設值,用於解決衝突,自動恢復等
- 便宜的本地分支
- 方便的暫存區
- 多個工作流程
TFS版本控制是Microsoft替代Git的一種,它整合到Visual Studio中。它是企業準備的,所以對於使用VS專案的任何規模的團隊來說,這是一個不錯的選擇。
主要特徵:
- 利用Visual Studio功能提供本地體驗
- 跟蹤分支機構的程式碼更改
- 在程式碼簽入之前提供反饋
- 整合最流行的CI和自動化構建工具
BitBucket是Jira的Git替代品,也是一個有能力的版本控制工具——“唯一一個大規模的協作的Git解決方案。”
主要特徵:
- 使用內聯註釋選項更快地協作
- 由於程式碼是開源的,還是讓Jira為您管理程式碼
- 拉請求允許更有效的程式碼審查批准
- 使用BitBucket資料中心進行不間斷的訪問
- 無限私有儲存庫
SourceTree是另一個Jira產品,一個用於Windows和Mac的免費Git客戶端,具有簡單的Git GUI來管理您的倉庫。
主要特徵:
- 支援Windows和Mac
- 與您的儲存庫進行視覺互動
- 簡化分散式版本控制
- 對初學者來說足夠簡單 足夠強大的專家
測試工具和VS擴充套件
一個用於即時測試C#,F#和VB中的程式碼片段的工具,LINQPad可以讓您以互動方式查詢資料庫。
主要特徵:
- 有自己的查詢語言 – LINQ,這是一個強大的查詢資料庫的方法
- 非常適合學習C#,因為它為您提供了IDE的許多功能,而不臃腫
- 在LINQ(或SQL) – SQL/CE/Azure、Oracle、SQLite和MySQL中查詢資料庫
- 豐富的輸出格式
- 指令碼並以您首選的.NET語言自動化
Selenium是目前最流行的測試工具之一。它可以自動化Web瀏覽器,以便您可以在規模和精度上執行測試。
主要特徵:
- 自動化的基於Web的管理任務
- 建立強大的迴歸自動化套件和測試
- 跨環境和指令碼分發
- 構建您自己的Selenium伺服器或使用供應商提供的託管選項
由JetBrains建立的,ReSharper是.NET開發人員的Visual Studio擴充套件。使用它來即時分析程式碼質量,消除錯誤,安全地更改程式碼庫等。
主要特徵:
- 提供即時程式碼分析
- 快速修復錯誤
- 幫助複雜重構
- 多個程式碼編輯助手
OzCode是C#的Visual Studio擴充套件,提供強大的除錯工具,因此您可以花更多的時間開發和更少的時間除錯。
主要特徵:
- 使Visual Studio中更容易找到並修復錯誤
- 與ReSharper合作
- 用Magic Glance來繪製出複雜的表示式
- 強大的搜尋,顯示和比較功能
CodeRush可以幫助您輕鬆找到並修復問題,像本節中的其它測試工具一樣,是一個VS擴充套件。
主要特徵:
- 視覺突出顯示程式碼庫中的問題,並幫助您快速發現問題
- 快速建立新的測試和測試套件與快捷方式
- 容易重構
效能分析
一個用於.NET和Java的輕量級開發工具,Prefix會實時顯示日誌、錯誤、查詢等。它可以在您現有的工作站內使用 – 它是免費的。
主要特徵:
- 提供每個Web請求的詳細跟蹤
- 沒有凌亂的配置或程式碼更改
- 立即下載; 立即獲得程式碼分析結果
- 按要求檢視日誌
- 查詢隱藏的異常
- 檢視SQL查詢
- 快速找出可疑行為
來自JetBrains,dotTrace是一個分析器,可幫助排除效能問題並加快應用程式的速度。
主要特徵:
- 瞭解SQL查詢和HTTP請求如何影響應用程式效能
- 檢視逐行剖析資料並獲取特定的績效指標
- 獲取呼叫執行時間的資料
- 配置檔案SQL查詢和HTTP請求
- 簡介靜態方法和單元測試
- 在Visual Studio中配置和視覺化結果
ANTS效能分析器是.NET程式碼的分析工具,包括提供逐行分析統計資訊。
主要特徵:
- 檢視SQL查詢和HTTP請求的效能資料
- 提供逐行結果
- 顯示歷史性的表現
- 深入瞭解長期分析結果
一個分析工具聲稱比任何其培訓分析器更快,N Profiler提供豐富的.NET效能資料,可以節省90%的優化時間。
主要特徵:
- 瞭解效能問題的真實原因 – 資料庫查詢或I/O時間
- 效能指標組織在呼叫樹中,可以在概述或細節級別檢視
APM
Retrace是唯一將APM、日誌、錯誤、指標和監控結合在一個平臺上的開發者工具,可幫助您更好地構建。它專為生產和預生產伺服器而設計,每月只需10美元。
主要特徵:
- 在程式碼級收集效能資料
- 應用程式和伺服器記錄
- 各種來源的應用指標
- 錯誤跟蹤和監控
- 與現有堆疊一起工作
- 免費試用
部署自動化
C#主要部署自動化工具,這使得自動化複雜的應用程式部署成為可能。
主要特徵:
- 提供和配置新機器來部署您的應用程式
- 與CI伺服器整合,將構建自動化和CI程序擴充套件到部署中
- 精簡各環境之間的版本
- 可重複,可靠的部署
一個CI構建伺服器,不僅可以處理構建,而且還可以進行部署,Appveyor非常強大,安全,並且無需設定即可開始使用。
主要特徵:
- 用於構建,測試和部署端到端解決方案
- 易於使用,無需設定
- 隔離構建環境
- 使用UI或YAML的開發人員友好的構建配置
- 內建部署和NuGet伺服器
- 多分支構建
AppHarbor不僅僅是部署:它是一個完全託管的.NET 平臺服務。它用於託管從個人部落格到高流量網路應用程式的所有內容。
主要特徵:
- 從原始碼儲存庫獲取程式碼,並將其部署在自己的託管平臺上
- 使用您最喜歡的版本控制工具即時部署和擴充套件.NET應用程式
- 不用擔心擴充套件您的基礎架構來跟上負載,AppHarbor會為您處理這一切
Jenkins不僅僅是部署自動化工具,也是最受歡迎的CI伺服器,它將其覆蓋面擴充套件到部署和交付階段。
主要特徵:
- 豐富的收集擴充套件,以適應每個堆疊
- 從構建到部署的端到端解決方案
- 數以百計的外掛來支援構建,部署和自動化
容器
Docker.DotNet是Docker API的C#客戶端庫。通過它,您可以通過程式設計方式與Docker Remote API進行互動。
主要特徵:
- 可以通過Visual Studio的NuGet庫管理器進行安裝
- 在.NET中啟用完全非同步,非阻塞,面向物件的程式碼
一個強大的工具來集中化C#應用程式,Distelli幫助您從頭到尾自動化您的容器工作流程。有關如何使用Distelli構建和部署C#應用程式,請參閱此有用的教程 。本教程提供了構建和部署Docker C#應用程式的分步說明。
主要特徵:
- 使用Distelli自動化您的容器工作流端到端
- 部署到Kubernetes,用於最先進的容器編排
C#和.NET Core 將在2018年及以後的得到巨大的發展,磨練C#技能將在未來幾年內為您服務。我們希望您已經找到了一兩種可以使用的工具,並提高了C#開發的質量和生產力。如果有什麼工具我們遺漏了,請告訴我們,這個工具應該在這個工具包中有一席之地。