Posts

Showing posts from March, 2010

Visual Studio 2010 コード分析新機能 (2) 新ルール

Visual Studio 2010 のコード分析には、次のルールが新たに追加されるそうだ。従来のコードアクセスセキュリティがデフォルト off になり、セキュリティ透過性モデルレベル 2 が導入されたので、セキュリティ関係のルールがかなりたくさん追加されている。   CA1062 public メソッドに渡された引数の null チェックを行う CA1303 ローカライズ可能にすべき引数には文字列リテラルを指定しない CA2000 Dispose 可能なオブジェクトはスコープを失う前に破棄する CA2100 セキュリティ上の脆弱性の観点から SQL クエリを再確認する CA2130 定数に SecurityCritical 属性を付加しない CA2131 型の同値 (type equivalence) に参加する型や、そのメンバーに SecurityCritical 属性を付加しない CA2132 デフォルトコンストラクタには、少なくとも基底クラスのデフォルトコンストラクタと同じセキュリティ透過属性を付加する CA2133 デリゲートとバインド対象のメソッドのセキュリティ透過レベル (という言い方でいいのだろうか...) を一致させる CA2134 オーバーライドメソッドのセキュリティ透過レベルは、基底クラスのものと一致させる CA2135 セキュリティ透過レベル 2 のアセンブリにはリンク確認要求を含めない CA2136 従来のコードアクセスセキュリティモデルとセキュリティ透過モデルとで、矛盾した属性をメンバーに付加しない CA2137 セキュリティ透過なメソッドには検証可能な IL だけを含める CA2138 セキュリティ透過なメソッドから SuppressUnmanagedCodeSecurity 属性が付加されたメソッドを呼び出さない CA2139 セキュリティ透過なメソッドに HandleProcessCorruptingExceptions 属性を付加しない CA2140 セキュリティ透過なコードからセキュリティクリティカルな型やメソッドなどを使わない CA2141 セキュリティ等価なメソッドから、リンク確認要求で保護され

Visual Studio 2010 コード分析新機能 (1) ルールセット

Visual Studio 2010 では、ルールセットというものが追加される。これは、「このルールは有効、このルールは無効...」という設定をひとまとめにしたもの。以下のような定義済みルールセットの他、独自実装も可能らしい。 Microsoft All Rules : 全ルールを含む Microsoft Basic Correctness Rules : ロジックの間違いや .NET Framework の API の使い方の間違いに関するルールを含む Microsoft Basic Design Guideline Rules : コードの理解や使い方を容易にするためのベストプラクティスを強制するためのルールを含む Microsoft Extended Correctness Rules : Microsoft Basic Correctness Rules の拡張 + COM 相互運用やモビリティに関するルールを含む Microsoft Extended Design Guideline Rules : Microsoft Basic Design Guideline Rules の拡張 + ネーミングルールを含む Microsoft Globalization Rules : グローバリゼーション関係の前ルールを含む Microsoft Minimum Recommended Rules : セキュリテ上の脆弱性やアプリケーションのクラッシュなどにつながる可能性がある、もっともクリティカルな問題を検出するためのルールを含む Microsoft Security Rules : セキュリティ関係の全ルールを含む   Visual Studio 2010 にはルールセットをいじくるための、ルールセットエディタというのもくっついている (独立したアプリではなく Visual Studio 2010 の機能の一部)。 Configuring and Using a Custom Rule Set   全プロジェクトで同じルールセットを使うようにもできる模様。 Specify Managed Code Rule Sets for Multiple