Alat analisis statis apa yang tersedia untuk C #? [Tutup]

174

Alat apa yang tersedia untuk analisis statis terhadap kode C #? Saya tahu tentang FxCop dan StyleCop. Apakah ada yang lain? Saya pernah bertemu NStatic sebelumnya tetapi sudah dalam pengembangan untuk apa yang tampak seperti selamanya - itu tampak sangat apik dari sedikit yang saya lihat, jadi akan lebih baik jika akan melihat cahaya hari.

Sejalan dengan hal yang sama (ini terutama minat saya untuk analisis statis), alat untuk menguji kode untuk masalah multithreading (kebuntuan, kondisi balapan, dll.) Juga tampak agak langka. Pembalap Typemock baru saja muncul jadi saya akan melihat itu. Ada yang lebih dari ini?

Pendapat kehidupan nyata tentang alat yang Anda gunakan dihargai.

Paul Mrozowski
sumber
@IraBaxter Saya sudah memulai diskusi tentang pertanyaan ini di Meta , dan saya mengundang Anda untuk menyuarakan argumen Anda mengapa pertanyaan ini tidak boleh dihapus, jika Anda mau.

Jawaban:

341

Alat deteksi pelanggaran kode:

  • Fxcop , alat luar biasa dari Microsoft. Periksa kepatuhan terhadap pedoman kerangka kerja .net.

    Edit Oktober 2010: Tidak lagi tersedia sebagai unduhan mandiri. Sekarang termasuk dalam Windows SDK dan setelah instalasi dapat ditemukan di Program Files \ Microsoft SDKs Windows \ [v7.1] \ Bin \ FXCop \ FxCopSetup.exe

    Edit Februari 2018 : Fungsi ini sekarang telah diintegrasikan ke dalam Visual Studio 2012 dan kemudian sebagai Analisis Kode

  • Clocksharp , berdasarkan analisis sumber kode (ke C # 2.0)

  • Mono.Gendarme , mirip dengan Fxcop tetapi dengan lisensi opensource (berdasarkan Mono.Cecil )

  • Smokey , mirip dengan Fxcop dan Gendarme, berdasarkan Mono.Cecil . Tidak lagi dalam pengembangan, pengembang utama bekerja dengan tim Gendarme sekarang.

  • Coverity Prevent ™ untuk C # , produk komersial

  • PRQA QA · C # , produk komersial

  • PVS-Studio , produk komersial

  • CAT.NET , visual studio addin yang membantu mengidentifikasi kelemahan keamanan Edit November 2019: Tautan sudah mati.

  • CodeIt.Right

  • Spesifikasi #

  • Pex

  • Opsi SonarQube , FOSS & Komersial untuk mendukung penulisan kode yang lebih bersih dan aman.

Alat Metrik Kualitas:

  • NDepend , alat visual yang hebat. Berguna untuk metrik kode, aturan, perbedaan, kopling, dan studi dependensi.
  • Nitriq , gratis, dapat dengan mudah menulis metrik / batasan Anda sendiri, visualisasi yang bagus. Sunting Februari 2018: tautan unduhan sekarang mati. Sunting 17 Juni 2019: Tautan tidak mati.
  • RSM Squared , berdasarkan analisis sumber kode
  • C # Metrik , menggunakan parse penuh C #
  • SourceMonitor , alat lama yang sesekali mendapat pembaruan
  • Kode Metrik , sebuah Reflector add-in
  • Vil , alat lama yang tidak mendukung .NET 2.0. Edit Januari 2018: Tautan sekarang mati

Memeriksa Alat Gaya:

  • StyleCop , alat Microsoft (dijalankan dari dalam Visual Studio atau diintegrasikan ke dalam proyek MSBuild). Juga tersedia sebagai ekstensi untuk Visual Studio 2015 dan C # 6.0
  • Agen Smith , plugin validasi gaya kode untuk ReSharper

Deteksi Duplikasi:

  • Simian , berdasarkan kode sumber. Bekerja dengan banyak bahasa.
  • CloneDR , mendeteksi klon parameter hanya pada batas bahasa (juga menangani banyak bahasa selain C #)
  • Clone Detective a Visual Studio plugin. (Menggunakan ConQAT secara internal)
  • Atomiq , berdasarkan kode sumber, banyak bahasa, visualisasi "roda" keren

Alat Refactoring umum

  • ReSharper - Analisis kode C # dan fitur refactoring yang sangat keren
Julien Hoarau
sumber
4
Lihat halaman MSDN tentang FxCop: msdn.microsoft.com/en-us/library/bb429476%28VS.80%29.aspx "FxCop adalah aplikasi yang menganalisis kumpulan kode yang dikelola (kode yang menargetkan runtime bahasa umum .NET Framework) dan melaporkan informasi tentang majelis, seperti kemungkinan desain, pelokalan, kinerja, dan peningkatan keamanan. "
Sarah Vessels
Tautan FxCop telah dihapus dari situs Microsoft. Berikut ini adalah "unduh" FxCop 10.0: microsoft.com/downloads/…
ulrichb
Apakah ini Simian: harukizaemon.com/simian/index.html ? (Anda mendapat tautan rusak). Juga tampaknya hanya. NET 1.1.
Theraot
@Theraot Terima kasih, saya mengubah url. Mengenai versi .NET, Simian dapat berjalan di .NET 1.1 di Java 5 tetapi itu tidak berarti mendeteksi duplikasi dalam versi lain dari .NET
Julien Hoarau
Nitriq tampaknya tidak tersedia lagi. Tautan unduhan (sekarang dialihkan ke NimblePros, bagian dari Telerik) mengatakan, "Maaf, kami tidak lagi menawarkan Nitriq"
Narayana
7

Alat NDepend dikutip sebagai Alat Metrik Kualitas tetapi cukup banyak juga alat deteksi pelanggaran Kode . Penafian: Saya adalah salah satu pengembang alat ini

Dengan NDepend, seseorang dapat menulis Code Rule over LINQ Queries (apa yang kita sebut CQLinq) . Lebih dari 200 aturan kode CQLinq diusulkan secara default. Kekuatan CQLinq adalah mudah untuk menulis aturan kode , dan langsung mendapatkan hasil. Fasilitas diusulkan untuk menelusuri elemen kode yang cocok. Sebagai contoh:

Aturan kode CQLinq

Selain itu, NDepend dilengkapi dengan banyak fitur analisis statis seperti lainnya. Ini termasuk:

Patrick dari tim NDepend
sumber
Saya memiliki kesempatan untuk mengadili NDepend selama beberapa minggu terakhir - penggemar, akan mendapatkan lisensi dev ketika saya bisa. :) Terima kasih atas pekerjaan Anda!
Michael Armes
1
  • Polisi adalah penganalisa statis berbasis aturan open source (mirip dengan FXCop, tetapi menemukan banyak masalah yang berbeda).
  • Clone Detective adalah plug-in yang bagus untuk Visual Studio yang menemukan kode duplikat.
  • Juga berbicara tentang Mono, saya menemukan tindakan mengkompilasi dengan kompiler Mono (jika kode Anda platform cukup independen untuk melakukan itu, tujuan yang mungkin ingin Anda perjuangkan) menemukan banyak variabel yang tidak direferensikan dan Peringatan lainnya yang benar-benar dilewatkan oleh Visual Studio. (bahkan dengan tingkat peringatan diatur ke 4).
Kris Erickson
sumber
1

Pernahkah Anda melihat CAT.NET ?

Dari uraian -

CAT.NET adalah alat analisis kode biner yang membantu mengidentifikasi varian umum dari kerentanan tertentu yang dapat memunculkan vektor serangan umum seperti Cross-Site Scripting (XSS), SQL Injection, dan XPath Injection.

Saya menggunakan beta awal dan tampaknya muncul beberapa hal yang pantas untuk dilihat.

markdevilliers
sumber
-1

Klocwork memiliki alat analisis statis untuk C #: http://www.klocwork.com

Alen
sumber
Perusahaan kami membelinya. Dalam kisaran $ 30K untuk kita
Dan dot net
-1

Software Optimyth baru saja meluncurkan layanan analisis statis di cloud www.checkinginthecloud.com . Cukup unggah kode Anda dengan aman, jalankan analisis dan dapatkan hasilnya. Tidak ada kerepotan.

Ini mendukung beberapa bahasa termasuk C # info lebih lanjut dapat ditemukan di wwww.optimyth.com

Javier Salado
sumber
-1

Axivion Bauhaus Suite adalah alat analisis statis yang bekerja dengan C # (serta C, C ++ dan Java).

Ini memberikan kemampuan berikut:

  • Visualisasi Arsitektur Perangkat Lunak (termasuk dependensi)
  • Penegakan aturan arsitektur misalnya layering, subsistem, aturan panggilan
  • Deteksi Klon - menyoroti copy dan paste (dan kode yang dimodifikasi)
  • Deteksi Kode Mati
  • Deteksi Siklus
  • Metrik Perangkat Lunak
  • Pemeriksaan Gaya Kode

Fitur-fitur ini dapat dijalankan secara satu kali atau sebagai bagian dari proses Integrasi Berkelanjutan. Masalah dapat disorot pada basis per proyek atau per basis pengembang ketika sistem terintegrasi dengan sistem kontrol kode sumber.

Mark Dalgarno
sumber