Below you will find pages that utilize the taxonomy term “Roslyn”
Posts
Code Cracker
Code Cracker 是 Roslyn analyzer 的 Library,有點類似 FxCop 的 Rule,依不同的範疇實做了很多相關的檢查,可以看到有 Design、Globalization、Maintainability、Naming、Performance、Portabili、Security …等。雖然還未完全實作完畢,但目前已經相當多的檢查 Rule 了。
{% img /images/posts/CodeCracker/1.png %}
安裝上一樣是提供 VSIX 或是 NuGet Package 兩種,若是要套到所有專案,可直接透過 Extension and Updates 安裝。
{% img /images/posts/CodeCracker/2.png %}
若是只要套用到單一專案,可直接透過 NuGet 安裝。不論是要用 NuGet 的 GUI 介面。
{% img /images/posts/CodeCracker/3.png %}
或是直接透過 NuGet 命令都可以。
Install-Package CodeCracker.CSharp -IncludePrerelease Install-Package CodeCracker.VisualBasic -IncludePrerelease 用 NuGet 安裝的話,Analyzer 會出現在方案總管的 References\Analyzers 節點下。
{% img /images/posts/CodeCracker/4.png %}
展開 Analyzer 節點可進一步看到支援的 Rule。
{% img /images/posts/CodeCracker/5.png %}
read morePosts
Roslyn - Introduce diagnostic analyzer
Diagnostic Analyzer 功能是用來診斷分析程式碼的,開發人員可自行撰寫 Diagnostic Analyzer 去擴充 Roslyn 的編譯器,實作自己的程式碼診斷邏輯。
他有兩種不同的使用方式,一種是包裝成 VSIX 檔,需要安裝使用。安裝後 Diagnostic Analyzer 的診斷會針對 Visual Studio 開啟的所有專案,就好像是內建的診斷一般。
另一種則是建置成一般的 Dll 檔,需要依需求在個別專案中引用使用。使用上需搭配 Visual Studio 14 以後的版本,在方案總管中找到 Analyzers 節點,按右鍵加入 Analyzer。或是直接透過 NuGet 加入引用也可以。
最後這邊可以看一下 Channel9 的介紹,這段影片會介紹他自己寫的 Diagnostic Analyzer是如何對 C# 6.0 的 Feature 做出診斷與建議,並帶到一些實作上的細節,看完相信對於 Diagnostic Analyzer 會更加的了解。
read morePosts
Clr C# Heap Allocation Analyzer
Clr C# Heap Allocation Analyzer 是 Diagnostic Analyzers 的套件,功能上有點類似 ReSharper - Heap Allocation Viewer Extension,能對 Heap 的操作部分做些 Highlight。
這邊可先參閱一下影片的介紹:
該套件提供兩種安裝方式,一種是選擇安裝 VSIX,用 Extension Manager 搜尋安裝或是自 NuGet Gallery | Clr C# Heap Allocation Analyzer 1.0.0.5 下載安裝,好處是可以將效果套用至所有專案。
{% img /images/posts/HeapAllocationAnalyzer/1.png %}
一種則是用 NuGet By 專案安裝,好處是可以只套用至特定的專案。
{% img /images/posts/HeapAllocationAnalyzer/2.png %}
安裝完後,在程式編輯時即會呈現進行對應的分析,像是筆者這邊的程式即被偵測出有 Boxing 的動作。
{% img /images/posts/HeapAllocationAnalyzer/3.png %}
Link NuGet Gallery | Clr C# Heap Allocation Analyzer 1.0.0.5 Clr Heap Allocation Analyzer extension
read morePosts
Microsoft.CodeAnalysis.CSharp.FxCopAnalyzers
Microsoft.CodeAnalysis.CSharp.FxCopAnalyzers 是一個 Diagnostic Analyzer 套件,是 FxCop 部分檢查規則的 Analyzer 實作。
{% img /images/posts/FxCopAnalyzers/1.png %}
因為目前仍是 Preview 版本,所以這邊在使用時需先叫出 Package Manager Console,然後叫用命令安裝:
Install-Package Microsoft.CodeAnalysis.CSharp.FxCopAnalyzers -Pre {% img /images/posts/FxCopAnalyzers/2.png %}
安裝完後,我們可以看到方案總管的 Analyzers 節點下多了兩個 Analyzer。
{% img /images/posts/FxCopAnalyzers/3.png %}
展開節點可以看到該 Analyzer 所 Support 的分析。
{% img /images/posts/FxCopAnalyzers/4.png %}
回到程式編輯這邊,可以看到當我們程式撰寫不符合 Analyzer 的規定時,編譯器就會提出對應的警告,像這邊就告知我們要實作 IDisposible 介面,也提供了對應的修正。
{% img /images/posts/FxCopAnalyzers/5.png %}
read morePosts
Roslyn Syntax Visualizers
在使用 Roslyn 做開發時,常免不了會要去處理語法的解析,這時我們會需要輔助工具將語法解析轉換為語法樹,以視覺的方式呈現,讓 Roslyn 的開發上更為便利。
所以開發前我們要到 .NET Compiler Platform Syntax Visualizer extension 這邊下載 Roslyn Syntax Visualizer。
{% img /images/posts/RoslynSyntaxVisualizer/1.png %}
下載完後進行安裝。
{% img /images/posts/RoslynSyntaxVisualizer/2.png %}
{% img /images/posts/RoslynSyntaxVisualizer/3.png %}
安裝完我們可以透過 Visual Studio 的主選單選項(View\Other Windows\Roslyn Syntax Visualizer)將 Roslyn Syntax Visualizer Tool Window 叫出。
{% img /images/posts/RoslynSyntaxVisualizer/4.png %}
叫出後 Roslyn Syntax Visualizer 後,它會偵測目前所編輯的程式碼,將之解析成語法樹。且會偵測編輯區的選取,反映在語法樹上。
{% img /images/posts/RoslynSyntaxVisualizer/5.png %}
反之亦然。
{% img /images/posts/RoslynSyntaxVisualizer/6.png %}
語法樹上的節點有做顏色的區分,可以透過上方的 Legend 按鈕查閱各顏色所代表的意義。
{% img /images/posts/RoslynSyntaxVisualizer/7.png %}
語法樹上節點的滑鼠右鍵快顯選單也有提供一些功能,像是可以用更直覺的圖形方式呈現。
{% img /images/posts/RoslynSyntaxVisualizer/8.
read more