狠狠撸

狠狠撸Share a Scribd company logo
1
保哥線上講堂 (1)
多奇數位創意有限公司
技術總監 黃保翕 ( Will 保哥 )
部落格:http://blog.miniasp.com/
利用 StyleCop 撰寫一致的 C# 程式碼風格
All services from your imperative.
2
什麼是 STYLECOP
What is StyleCop
All services from your imperative.
3
什麼是 StyleCop?
? 主要用途
? 檢查 C# 程式碼撰寫風格符合標準規範
? StyleCop 本身建議的撰寫風格
? Microsoft's .NET Framework Design Guidelines
? 注意事項
? 不支援 VB.NET 或其他語言
? 早期由微軟開發,April 2010 已開放原始碼
? 官方網站
? http://www.stylecop.com/
? https://twitter.com/stylecopdev
All services from your imperative.
4
StyleCop 相容性
? 支援 Visual Studio 版本
? Visual Studio 2008
? Visual Studio 2010
? 支援 JetBrains ReSharper (R#)
? R# 5.1.3 ( 5.1.3000.12)
? R# 6.0 (6.0.2202.688)
? R# 6.1 (6.1.37.86)
? R# 6.1.1 (6.1.1000.82)
? Visual Studio 2012
? Visual Studio 2013
? R# 7.0.1 (7.0.1098.2760)
? R# 7.1.3 (7.1.3000.2254)
? R# 8.2 (8.2.0.2160)
All services from your imperative.
5
StyleCop 主要分析規則
? 區分七大類,共 165 條規則
? Documentation (SA1600-) 有 51 條規則
? Layout (SA1500-) 有 19 條規則
? Maintainability (SA1400-) 有 13 條規則
? Naming (SA1300-) 有 12 條規則
? Ordering (SA1200-) 有 16 條規則
? Readability (SA1100-) 有 26 條規則
? Spacing (SA1000-) 有 28 條規則
All services from your imperative.
6
DEMO
示範 StyleCop 基本安裝與操作
All services from your imperative.
7
了解 STYLECOP 的規則如何定義
Settings.StyleCop
All services from your imperative.
8
幾種定義套用規則的方法
? 手動編輯 *.StyleCop 檔案
? 滑鼠雙擊 *.StyleCop 檔案
? 透過內建的 StyleCopSettingsEditor.exe 工具
? StyleCopSettingsEditor.exe Settings.StyleCop
? 在特定類別、方法或參數跳過規則檢查
? http://www.stylecop.com/docs/Suppressions.html
All services from your imperative.
9
DEMO
示範 StyleCop 如何定義要套用的規則
All services from your imperative.
10
如何跟 MSBUILD 組建流程整合
PM> Install-Package StyleCop.MSBuild
All services from your imperative.
11
安裝 NuGet 套件:StyleCop.MSBuild
? NuGet Package
? http://www.nuget.org/packages/StyleCop.MSBuild
? PM> Install-Package StyleCop.MSBuild
? stylecop-msbuild (Bitbucket)
? https://bitbucket.org/adamralph/stylecop-msbuild
? 將 StyleCop 檢查失敗視為「錯誤」
? 用 Notepad 開啟專案檔 ( *.csproj )
? 在 <PropertyGroup> 加上以下 MSBuild 屬性設定
<StyleCopTreatErrorsAsWarnings>false</StyleCopTreatErrorsAsWarnings>
All services from your imperative.
12
DEMO
示範 StyleCop 如何跟 MSBuild 組建流程整合
All services from your imperative.
13
了解 STYLECOP 在實務上如何應用
StyleCop in Action
All services from your imperative.
14
StyleCop 使用經驗分享
? 找尋一個可靠的 Settings.StyleCop 定義檔
? https://aspnetwebstack.codeplex.com/SourceControl/latest
? 透過一個既有的專案調校定義檔
? 選擇哪些是你不要的規則定義!
? 放置 Settings.StyleCop 在適當的地方
? 方案根目錄
? 專案根目錄
? 中文化 StyleCop 規則
? 翻譯的過程中了解每條規則的意義
? 整合 CI 建置流程 ( TFS / MSBuild )
All services from your imperative.
15
總結
Summary
All services from your imperative.
16
總結
? StyleCop 是個必備工具
? 每個開發團隊都應該要有一份自己的規則集
? 適當的套用在開發流程與版控流程上 ( CI )
? 在公司內部分享 StyleCop 使用經驗
All services from your imperative.
17
StyleCop 相關資源
? StyleCop 官網
? http://www.stylecop.com/
? StyleCop 4.7 線上文件
http://www.stylecop.com/docs/
? StyleCop - Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/StyleCop
? StyleCop CLI
http://sourceforge.net/projects/stylecopcli/
? StyleCop 的命令列工具版本
? StyleCopCLI.exe -?
All services from your imperative.
18
聯絡資訊
? The Will Will Web
記載著 Will 在網路世界的學習心得與技術分享
? http://blog.miniasp.com/
? Will 保哥的技術交流中心 (臉書粉絲專頁)
? http://www.facebook.com/will.fans
? ★ ★ ★ Will 保哥的噗浪 ★ ★ ★
? http://www.plurk.com/willh/invite
All services from your imperative.
19
感謝各位

More Related Content

Viewers also liked (16)

PDF
Yang_Li_PreferencesAndMaps
Yang Li
?
DOCX
grafico para la asistencia
Janeth Hoyos
?
PDF
Estadistica
yajapaguay1996
?
PPTX
TIC APLICADA AL TRABAJO UNIVERSITARIO.
yorlyncito
?
PPT
Automating C# Coding Standards using StyleCop and FxCop
BlackRabbitCoder
?
PPTX
White Collar Crimes
Mishika Sood
?
PPTX
使用 ASP.NET 5 實戰開發雲端應用程式
Will Huang
?
PPTX
《多奇線上講堂》如何用 Outlook 和 OWA 整理聯絡人資訊
Will Huang
?
PPTX
DEV208 - ASP.NET MVC 5 新功能探索
Will Huang
?
PPTX
JavaScript 物件導向觀念入門 v.s. TypeScript 開發實戰 (微軟實戰課程日)
Will Huang
?
PPTX
簡介 Git hub 平台 ( 1.5 hrs )
Will Huang
?
PPTX
DEV305 - ASP.NET 5 開發攻略
Will Huang
?
PPTX
ASP.NET MVC 6 新功能探索
Will Huang
?
PPTX
git merge 與 rebase 的觀念與實務應用
Will Huang
?
PPTX
TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式
Will Huang
?
PPTX
ASP.NET MVC 5 新功能探索
Will Huang
?
Yang_Li_PreferencesAndMaps
Yang Li
?
grafico para la asistencia
Janeth Hoyos
?
Estadistica
yajapaguay1996
?
TIC APLICADA AL TRABAJO UNIVERSITARIO.
yorlyncito
?
Automating C# Coding Standards using StyleCop and FxCop
BlackRabbitCoder
?
White Collar Crimes
Mishika Sood
?
使用 ASP.NET 5 實戰開發雲端應用程式
Will Huang
?
《多奇線上講堂》如何用 Outlook 和 OWA 整理聯絡人資訊
Will Huang
?
DEV208 - ASP.NET MVC 5 新功能探索
Will Huang
?
JavaScript 物件導向觀念入門 v.s. TypeScript 開發實戰 (微軟實戰課程日)
Will Huang
?
簡介 Git hub 平台 ( 1.5 hrs )
Will Huang
?
DEV305 - ASP.NET 5 開發攻略
Will Huang
?
ASP.NET MVC 6 新功能探索
Will Huang
?
git merge 與 rebase 的觀念與實務應用
Will Huang
?
TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式
Will Huang
?
ASP.NET MVC 5 新功能探索
Will Huang
?

Similar to 保哥線上講堂:利用 StyleCop 撰寫一致的 C# 程式碼風格 (20)

PPTX
极速 Angular 开发:效能调校技巧 (ngChina 2019)
Will Huang
?
PPTX
從頭打造 C#、.NET 與 ASP.NET Core 開發環境
Will Huang
?
PPTX
ASP.NET MVC 5線上課程(入門前三天)
MIS2000 Lab.
?
PPTX
twMVC#01 | ASP.NET MVC 的第一次親密接觸
twMVC
?
PDF
twMVC#02 | ASP.NET MVC 從無到有
twMVC
?
PDF
Asp.net mvc 從無到有 -twMVC#2
twMVC
?
PPTX
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
Will Huang
?
PDF
與 Asp.net mvc 的第一次親密接觸 - twMVC#1
twMVC
?
PDF
颁蝉丑补谤辫基础程式设计课程...........................
Rico Chen
?
PDF
rebar erlang 2
致远 郑
?
PDF
CICD Workshop 20180922
Earou Huang
?
PDF
twMVC#28 | visual studio 2017 新功能介紹
twMVC
?
PDF
Continuous Delivery Workshop with Ansible x GitLab CI (3rd)
Chu-Siang Lai
?
PDF
Laradebut #5 - 關於 CRUD 外的一點小事
Szuping Wang
?
PPTX
Angular.js & ASP.NET in Study4
Kyle Shen
?
PPTX
2021 ee大会-旷视ai产物背后的研发效能工具建设
Tianwei Liu
?
PDF
Asp.net mvc網站的從無到有
Wade Huang
?
PDF
Flutter 踩雷心得
Weizhong Yang
?
PDF
用 C# 與 .NET 也能打造機器學習模型:你所不知道的 ML.NET 初體驗
Ko Ko
?
ODP
GNU Autoconf / Automake #4
imacat .
?
极速 Angular 开发:效能调校技巧 (ngChina 2019)
Will Huang
?
從頭打造 C#、.NET 與 ASP.NET Core 開發環境
Will Huang
?
ASP.NET MVC 5線上課程(入門前三天)
MIS2000 Lab.
?
twMVC#01 | ASP.NET MVC 的第一次親密接觸
twMVC
?
twMVC#02 | ASP.NET MVC 從無到有
twMVC
?
Asp.net mvc 從無到有 -twMVC#2
twMVC
?
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
Will Huang
?
與 Asp.net mvc 的第一次親密接觸 - twMVC#1
twMVC
?
颁蝉丑补谤辫基础程式设计课程...........................
Rico Chen
?
rebar erlang 2
致远 郑
?
CICD Workshop 20180922
Earou Huang
?
twMVC#28 | visual studio 2017 新功能介紹
twMVC
?
Continuous Delivery Workshop with Ansible x GitLab CI (3rd)
Chu-Siang Lai
?
Laradebut #5 - 關於 CRUD 外的一點小事
Szuping Wang
?
Angular.js & ASP.NET in Study4
Kyle Shen
?
2021 ee大会-旷视ai产物背后的研发效能工具建设
Tianwei Liu
?
Asp.net mvc網站的從無到有
Wade Huang
?
Flutter 踩雷心得
Weizhong Yang
?
用 C# 與 .NET 也能打造機器學習模型:你所不知道的 ML.NET 初體驗
Ko Ko
?
GNU Autoconf / Automake #4
imacat .
?
Ad

More from Will Huang (20)

PPTX
深入理解 CVE-2022-24765 漏洞的攻擊與防護策略 (Git v2.35.2)
Will Huang
?
PPTX
ASP.NET Core 6.0 全新功能探索
Will Huang
?
PPTX
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!
Will Huang
?
PPTX
你一定不能不知道的 Markdown 寫作技巧
Will Huang
?
PPTX
使用 .NET 5 實現美股期貨的量化交易策略 (.NET Conf 2020)
Will Huang
?
PPTX
實現 Angular, Docker 與 Kubernetes 持續部署 (NG+2020)
Will Huang
?
PPTX
Micro-frontends with Angular 10 (Modern Web 2020)
Will Huang
?
PPTX
從實戰經驗看到的 K8S 導入痛點
Will Huang
?
PPTX
RxJS 6 新手入門
Will Huang
?
PPTX
你不可不知的 ASP.NET Core 3 全新功能探索 (.NET Conf 2019)
Will Huang
?
PPTX
Protractor: The Hacker way (NG-MY 2019)
Will Huang
?
PPTX
邁向 Windows Server 應用程式現代化 (Windows Server Application Modernization)
Will Huang
?
PPTX
Angular 开发技巧 (2018 ngChina 开发者大会)
Will Huang
?
PPTX
Angular 7 全新功能探索 (Angular Taiwan 2018)
Will Huang
?
PPTX
利用.NET Core 與 Azure Kubernetes Service (AKS) 建立高彈性 Microservices (Azure TechDay)
Will Huang
?
PPTX
AKS 與開發人員體驗 (Kubernetes 大講堂)
Will Huang
?
PPTX
使用 ASP.NET Blazor 開發 SPA 網頁應用程式 (.NET Conf 2018)
Will Huang
?
PPTX
全新 Windows Server 2019 容器技術 及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
Will Huang
?
PPTX
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
Will Huang
?
PPTX
以敏捷架构打造美国软体外包专案的经验谈
Will Huang
?
深入理解 CVE-2022-24765 漏洞的攻擊與防護策略 (Git v2.35.2)
Will Huang
?
ASP.NET Core 6.0 全新功能探索
Will Huang
?
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!
Will Huang
?
你一定不能不知道的 Markdown 寫作技巧
Will Huang
?
使用 .NET 5 實現美股期貨的量化交易策略 (.NET Conf 2020)
Will Huang
?
實現 Angular, Docker 與 Kubernetes 持續部署 (NG+2020)
Will Huang
?
Micro-frontends with Angular 10 (Modern Web 2020)
Will Huang
?
從實戰經驗看到的 K8S 導入痛點
Will Huang
?
RxJS 6 新手入門
Will Huang
?
你不可不知的 ASP.NET Core 3 全新功能探索 (.NET Conf 2019)
Will Huang
?
Protractor: The Hacker way (NG-MY 2019)
Will Huang
?
邁向 Windows Server 應用程式現代化 (Windows Server Application Modernization)
Will Huang
?
Angular 开发技巧 (2018 ngChina 开发者大会)
Will Huang
?
Angular 7 全新功能探索 (Angular Taiwan 2018)
Will Huang
?
利用.NET Core 與 Azure Kubernetes Service (AKS) 建立高彈性 Microservices (Azure TechDay)
Will Huang
?
AKS 與開發人員體驗 (Kubernetes 大講堂)
Will Huang
?
使用 ASP.NET Blazor 開發 SPA 網頁應用程式 (.NET Conf 2018)
Will Huang
?
全新 Windows Server 2019 容器技術 及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
Will Huang
?
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
Will Huang
?
以敏捷架构打造美国软体外包专案的经验谈
Will Huang
?
Ad

保哥線上講堂:利用 StyleCop 撰寫一致的 C# 程式碼風格

  • 1. 1 保哥線上講堂 (1) 多奇數位創意有限公司 技術總監 黃保翕 ( Will 保哥 ) 部落格:http://blog.miniasp.com/ 利用 StyleCop 撰寫一致的 C# 程式碼風格
  • 2. All services from your imperative. 2 什麼是 STYLECOP What is StyleCop
  • 3. All services from your imperative. 3 什麼是 StyleCop? ? 主要用途 ? 檢查 C# 程式碼撰寫風格符合標準規範 ? StyleCop 本身建議的撰寫風格 ? Microsoft's .NET Framework Design Guidelines ? 注意事項 ? 不支援 VB.NET 或其他語言 ? 早期由微軟開發,April 2010 已開放原始碼 ? 官方網站 ? http://www.stylecop.com/ ? https://twitter.com/stylecopdev
  • 4. All services from your imperative. 4 StyleCop 相容性 ? 支援 Visual Studio 版本 ? Visual Studio 2008 ? Visual Studio 2010 ? 支援 JetBrains ReSharper (R#) ? R# 5.1.3 ( 5.1.3000.12) ? R# 6.0 (6.0.2202.688) ? R# 6.1 (6.1.37.86) ? R# 6.1.1 (6.1.1000.82) ? Visual Studio 2012 ? Visual Studio 2013 ? R# 7.0.1 (7.0.1098.2760) ? R# 7.1.3 (7.1.3000.2254) ? R# 8.2 (8.2.0.2160)
  • 5. All services from your imperative. 5 StyleCop 主要分析規則 ? 區分七大類,共 165 條規則 ? Documentation (SA1600-) 有 51 條規則 ? Layout (SA1500-) 有 19 條規則 ? Maintainability (SA1400-) 有 13 條規則 ? Naming (SA1300-) 有 12 條規則 ? Ordering (SA1200-) 有 16 條規則 ? Readability (SA1100-) 有 26 條規則 ? Spacing (SA1000-) 有 28 條規則
  • 6. All services from your imperative. 6 DEMO 示範 StyleCop 基本安裝與操作
  • 7. All services from your imperative. 7 了解 STYLECOP 的規則如何定義 Settings.StyleCop
  • 8. All services from your imperative. 8 幾種定義套用規則的方法 ? 手動編輯 *.StyleCop 檔案 ? 滑鼠雙擊 *.StyleCop 檔案 ? 透過內建的 StyleCopSettingsEditor.exe 工具 ? StyleCopSettingsEditor.exe Settings.StyleCop ? 在特定類別、方法或參數跳過規則檢查 ? http://www.stylecop.com/docs/Suppressions.html
  • 9. All services from your imperative. 9 DEMO 示範 StyleCop 如何定義要套用的規則
  • 10. All services from your imperative. 10 如何跟 MSBUILD 組建流程整合 PM> Install-Package StyleCop.MSBuild
  • 11. All services from your imperative. 11 安裝 NuGet 套件:StyleCop.MSBuild ? NuGet Package ? http://www.nuget.org/packages/StyleCop.MSBuild ? PM> Install-Package StyleCop.MSBuild ? stylecop-msbuild (Bitbucket) ? https://bitbucket.org/adamralph/stylecop-msbuild ? 將 StyleCop 檢查失敗視為「錯誤」 ? 用 Notepad 開啟專案檔 ( *.csproj ) ? 在 <PropertyGroup> 加上以下 MSBuild 屬性設定 <StyleCopTreatErrorsAsWarnings>false</StyleCopTreatErrorsAsWarnings>
  • 12. All services from your imperative. 12 DEMO 示範 StyleCop 如何跟 MSBuild 組建流程整合
  • 13. All services from your imperative. 13 了解 STYLECOP 在實務上如何應用 StyleCop in Action
  • 14. All services from your imperative. 14 StyleCop 使用經驗分享 ? 找尋一個可靠的 Settings.StyleCop 定義檔 ? https://aspnetwebstack.codeplex.com/SourceControl/latest ? 透過一個既有的專案調校定義檔 ? 選擇哪些是你不要的規則定義! ? 放置 Settings.StyleCop 在適當的地方 ? 方案根目錄 ? 專案根目錄 ? 中文化 StyleCop 規則 ? 翻譯的過程中了解每條規則的意義 ? 整合 CI 建置流程 ( TFS / MSBuild )
  • 15. All services from your imperative. 15 總結 Summary
  • 16. All services from your imperative. 16 總結 ? StyleCop 是個必備工具 ? 每個開發團隊都應該要有一份自己的規則集 ? 適當的套用在開發流程與版控流程上 ( CI ) ? 在公司內部分享 StyleCop 使用經驗
  • 17. All services from your imperative. 17 StyleCop 相關資源 ? StyleCop 官網 ? http://www.stylecop.com/ ? StyleCop 4.7 線上文件 http://www.stylecop.com/docs/ ? StyleCop - Wikipedia, the free encyclopedia http://en.wikipedia.org/wiki/StyleCop ? StyleCop CLI http://sourceforge.net/projects/stylecopcli/ ? StyleCop 的命令列工具版本 ? StyleCopCLI.exe -?
  • 18. All services from your imperative. 18 聯絡資訊 ? The Will Will Web 記載著 Will 在網路世界的學習心得與技術分享 ? http://blog.miniasp.com/ ? Will 保哥的技術交流中心 (臉書粉絲專頁) ? http://www.facebook.com/will.fans ? ★ ★ ★ Will 保哥的噗浪 ★ ★ ★ ? http://www.plurk.com/willh/invite
  • 19. All services from your imperative. 19 感謝各位