[fxcop] Stylecop 대 FXcop

Stylecop이 FXcop을 대체 했습니까? Visual Studio 2008과 함께 사용해야하는 제품은 무엇입니까?



답변

Stylecop은 소스 코드 수준에서 작동하는 스타일 분석 도구입니다. 주로 관리되는 프로젝트가 더 큰 관리 소프트웨어 세계에서 일관성을 유지하는 데 사용할 수있는 단일 공통 스타일을 제공하기 위해 존재합니다. 주로 성스러운 전쟁을 피하기 위해 스타일에 관한 결정을 내립니다 (결국 스타일은 거의 항상 본질적으로 주관적인 것입니다). StyleCop의 모든 규칙을 좋아하는 사람을 만난 적이 없다고 생각하지만 괜찮습니다 . 이는 StyleCop이 존재하는 방대한 스타일 가이드 라인 중에서 일반적으로 좋은 타협점이라는 것을 의미합니다. (stylecop의 규칙이 단순히 활성화 / 비활성화하는 것 이상으로 고도로 사용자 정의 할 수 있다면 도구의 전체 목적을 무너 뜨릴 것입니다.)

반면에 FxCop은 관리되는 어셈블리 수준에서 작동하는 정적 분석 도구입니다. 예를 들어 코드 요소의 속성을 볼 수 있기 때문에 속성을 통해 방향을 지정할 수 있습니다. 구문 수준이 아닌 “이진”수준 (그대로)에서 볼 수있는 문제를 감지합니다.

귀하의 질문에 답하기 위해 StyleCop은 FxCop을 대체하지 않으며 FxCop은 stylecop을 대체하지 않습니다. 두 가지 목적을 가진 두 가지 도구로 코드에 실질적인 이점을 제공 할 수 있습니다.

(일명, 나는 둘 다 실행합니다. :))


한 사람이 감지 할 수있는 것과 다른 사람이 감지 할 수있는 것의 몇 가지 예 :

StyleCop 위반에는 다음과 관련된 경고가 포함될 수 있습니다. 공백, 서식, xml-comments를 통한 공용 메서드 문서, 클래스 내 메서드 정의 순서.

FxCop 위반에는 다음과 관련된 경고가 포함될 수 있습니다. 세계화, 긴밀한 결합, 순환 복잡도, 잠재적 널 역 참조.


답변

stylecop은 C # 소스 코드에서 작동합니다. fxcop은 모든 .net 언어에서 컴파일 된 코드를 확인합니다.


답변

FxCop / StyleCop에 대한 대안 또는 좋은 보완 은 상용 도구 인 NDepend 를 사용하는 것 입니다. 이 도구를 사용하면 LINQ 쿼리 (즉, CQLinq)를 통해 코드 규칙을 작성할 수 있습니다 . 면책 조항 : 저는이 도구의 개발자 중 한 명입니다.

200이상의 코드 규칙 이 기본적으로 제안되며 여기에는 설계 , 아키텍처 , 코드 품질 , 코드 진화 , 명명 규칙 , 데드 코드 , .NET Fx 사용

CQLinq는 Visual Studio에서 라이브확인할 수 있거나 빌드 프로세스 중에 확인하고 HTML / javascript 보고서로보고 할 수있는 코드 규칙을 작성하는 데 전념합니다 .

FxCop 또는 StyleCop에 비해 CQLinq의 강점은 코드 규칙을 작성하고 즉시 결과를 얻는 것이 간단 하다는 것입니다 . 일치하는 코드 요소를 찾아 볼 수있는 시설이 제안됩니다. 구체적으로는 다음과 같습니다.

CQLinq 코드 규칙


답변

FXCop은 관리 코드 어셈블리의 정적 코드 분석을 수행합니다. 런타임에 문제를 유발하거나 개발자가 코드가 실행될 것이라고 생각하는 방식에 영향을 미치는 문제 (연결할 수없는 코드)를 찾는 것으로 생각하십시오.

StyleCop은 텍스트 관점에서 코드 구조를 분석합니다. 이를 개발 및 디자인 경험에 영향을 미치는 문제로 생각하십시오 (형식 지정, 명명 규칙, 문서).

둘 다 매우 귀중한 도구이며 둘 다 사용해야하지만 다른 문제에 초점을 맞 춥니 다.


답변

StyleCop은 소스 코드 분석을 수행하는 것은 그다지 구성 할 수 없습니다. 컴파일 된 코드를 분석하는 FxCop과 실제로는 같은 일을하지 않습니다.

이에 대한 위키 백과 기사는 차이점에 대한 좋은 요약을 제공합니다.

http://en.wikipedia.org/wiki/StyleCop

http://en.wikipedia.org/wiki/FxCop


답변