メインコンテンツまでスキップ

スクリプトとDLL

概要

エクステンションの実装方法には、大きく次の2種類の方法があります。

  • スクリプト方式(C# スクリプト / Python スクリプト)

    スクリプトファイルによる実装方法

  • .NET DLL 方式

    C# から .NET DLL にコンパイルする実装方法

実装方法による違い

  • エクステンションの実装方法による違いは次の通りです。

    項目スクリプト方式.NET DLL 方式
    Next Design オブジェクトモデルの操作
    ユーザー操作をトリガとするイベント処理
    エクステンションの有効化・無効化時の処理
    (onActivate / onDeactivate)
    Python のみ可
    高度な機能拡張
    ・ダイアグラムビューでの条件付き書式変更
    モデル編集操作時の動的制約の追加
    ユーザー独自 UI の組み込み
    不可
    スクリプトエディタでの即時実行不可
    配布されたエクステンションの改変不可
    インテリセンスによるコード補完不可可(Visual Studio)
    デバッグ実行不可可(Visual Studio)
    初回の処理呼び出し時のコンパイル待ち時間C#: あり / Python: なしなし
    処理性能
  • 推奨するのは C# から .NET DLL にコンパイルする実装方法です。 Visual Studio が持っているインテリセンスやデバッガなど、強力な開発支援機能を利用できるため、高い生産性が期待できます。 豊富な .NET ライブラリを利用して様々な独自機能を実現でき、小規模から大規模なエクステンションまで開発できます。

  • C# スクリプトによる実装方法では、その処理内容をオープンにできます。エクステンションの利用者もその処理内容を確認してから利用でき、変更が必要であればスクリプトを直接変更して実行できます。

  • Python スクリプトによる実装方法では、C# スクリプトと同様にコマンドやイベントのハンドラを実装できます。

  • スクリプト方式の C# スクリプトや Python スクリプトは、Next Design のスクリプトエディタで即時実行することもできます。

  • .NET DLL 方式の C# とスクリプト方式の C# スクリプトでは、ハンドラの実装コードそのものは共通です。 そのため、.NET DLL 方式で Visual Studio を利用してデバッグを行ってから、実装した C# ソースコードに小修正を加えて C# スクリプトとして提供することも可能です。

注記

Python スクリプトはスクリプト言語のため、DLL 形式のエクステンションとしては開発できません。
また、一部の API は Python から利用できない場合があります。詳細は Python スクリプトの制約 を参照してください。