次の方法で共有


重大な変更

ソリューションを拡張可能にすると、後で拡張ポイントを壊さずに済むことにもなります。 分割変更は、コードのユーザーを分割できる任意の変更です。

この記事では、コードを分割できる変更のタイプを一覧表示します。

重要

このリストは、包括的ではありません。 ここに登録されていない他のタイプの変更が分割変更となることもあります。

データ モデルの変更

一般

データ モデルの変更で、データ アップグレード スクリプトを実行する必要がある場合は、ユーザーがデータ モデルを同期できなくなったり、データにアクセスできなくなる可能性があります。

データ型

  • 拡張から非列挙型に変更する ( : 消費者は、拡張機能に列挙型。
  • 拡張以外列挙型から拡張 に変更 : 消費者が列挙を比較に使用している可能性があります。 詳細については、拡張可能な列挙の記述を参照してください。
  • 実数型の拡張データ型 (EDT) の小数点以下の精度を小 : 消費者は、その精度を使用するデータの入力機能に依存している可能性があります。
  • 文字列型のEDTのサイズを小 : 消費者は、文字列のサイズに依存している可能性があります。
  • EDTを別のEDTに拡張 : 消費者は、EDTに文字列の長さまたは小数点以下の精度拡張子を持つ場合があります。
  • 列挙型拡張の場合に 列挙型 列挙型 タイプのEDTのタイプを変更 : 消費者は、に対して拡張機能を持つ列挙型。

データ モデル

  • テーブルを古くして、テーブルに情報が入力されるのを停止する : 消費者は、入力した情報がテーブルに依存している可能性があります。
  • テーブル フィールドを古い形式にし、フィールドに情報が入力されるのを停止する : 消費者は、入力する情報のフィールドに依存している可能性があります。
  • フィールド グループの名前を変更 : ユーザーがフィールド グループ、コード、またはメタデータの依存関係を拡張できる場合があります。
  • 制約またはインデックスの変更
  • テーブル マップの使用の中止とテーブル マップの使用の停止
  • テーブル マップ フィールドの使用を無効にする
  • テーブル マップ フィールドの追加
  • テーブル マップ フィールドの削除 マッピング
  • データ エンティティの古い形式化
  • データ エンティティ フィールドの古い形式化

コードの変更

クラス メンバー

  • パブリック クラス レベルのメンバまたは保護されたクラス レベルのメンバの削除または名前の変更 : 消費者が拡張クラスでこれらのメンバを使用している可能性があります。
  • クラス メンバーをパブリックから変更したり、保護されたクラスメンバや保護された : 消費者が、このフィールドに値をクエリしたり割り当てたりした可能性があります。

クラスおよびインターフェイス

  • クラスに抽象メソッドを追加 : ユーザーが派生タイプを作成した可能性があります。
  • クラスに最終的な追加 : 派生タイプが作成されている可能性があります。
  • インターフェイスにメソッドを追加する : ユーザーが独自のタイプでインターフェイスを実装した可能性があります。
  • パブリック クラスを無効にし、クラスのインスタンス化を停止する : 消費者が、インスタンス メソッドを上書き、ラップ、または購読した可能性があります。

メソッド

  • "保護された" または "パブリック" から "アクセスのモディファイアー" : 消費者が、メソッドを呼び出したり、上書きしたり、ラップしたりした可能性があります。
  • パブリックメソッドまたは保護されたメソッドを抽象化する : 消費者はクラスに対してプログラムを実行している可能性があります。また、そのメソッドが実装されていない場合や、スーパー を呼び出す場合があります。
  • メソッド パラメータの名前の変更 : 消費者は、名前によるパラメータ (引数経由やC# 外部からのパラメータなど) に依存している場合があります。
  • 保護されたメソッドまたはパブリック メソッドでメソッド パラメータのタイプを追加、削除、または変更する : 消費者が、メソッドを呼び出したり、上書きしたり、ラップしたりした可能性があります。
  • 保護されたメソッドまたはパブリック メソッドの既定のメソッド パラメータを追加または削除する : 消費者がメソッドをラップまたは購読した可能性があります。
  • メソッドの返品タイプの変更 : 消費者が、メソッドを呼び出したり、上書きしたり、ラップしたり、サブスクライブしたりした可能性があります。
  • 保護されたメソッドまたはパブリックメソッドに (false) を追加する : 消費者がメソッドをラップまたは購読した可能性があります。
  • 保護されたメソッドまたはパブリックメソッドにラップ可能 (false) を追加 : 消費者がメソッドをラップした可能性があります。
  • プライベートな方法または保護された方法からの : 消費者がメソッドを購読した可能性があります。
  • プライベートメソッドからWrappable (true) を削除する : 消費者が、このメソッドをラップした可能性があります。
  • メソッドからReplaceable (true) を削除する : 消費者がメソッドを条件付きラップした可能性があります。
  • 保護されたメソッドまたはパブリックメソッドに : 消費者がメソッドを上書き、ラップ、または購読した可能性があります。
  • メソッドをインスタンスから静的メソッドまたは静的メソッドからインスタンスに変更する : 消費者が、メソッドを呼び出したり、上書きしたり、ラップしたりした可能性があります。
  • 古い方法を使用し、メソッドの無効を停止する : 消費者が、メソッドを呼び出したり、上書きしたり、ラップしたりした可能性があります。
  • メソッドの役割の変更 : 消費者がメソッドを呼び出したり、上書きしたり、ラップしたり、購読したりした可能性があります。
  • メソッドへの参照の削除 : 消費者は、メソッドを上書き、ラップ、またはサブスクライブした可能性があります。また、ロジックが実行される可能性があります。

委任

  • 署名に変更を行う : 消費者は動的に購読している可能性があります。
  • 委任への参照を削除する : 消費者が購読している可能性があります。また、自分のロジックが実行される可能性があります。

ラベルの変更

  • ラベルの変更または削除 : 消費者が、ラベル テキストや渡されたパラメータの現在のコンテキストで、ラベルを使用している可能性があります。 今後は、ラベルの変更が発生した場合は新しいラベルを追加することをお勧めします。

アプリケーション要素の変更

  • 要素を削除 : 消費者は、要素の存在にコンパイル時間の依存関係がある場合があります。

メタデータの拡張

  • メタデータ クラスまたは拡張クラスの名前付けガイドラインに従う必要はありません : 消費者は、同じ名前の要素を持つ場合があります。