問題タブ [extensibility]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
351 参照

c# - 拡張性の高いプロジェクトの設計に関する質問 - ベスト プラクティスを念頭に置いて

開発環境は、SQL Server 2008 データベースと Entity Framework を備えた C# 3.5 です。

ソフトウェアが制御する必要があるサードパーティによって作成された物理的な電子サインを表す Sign という名前のクラスとテーブルがあるとします。標識との実際の通信を処理する SignDriver というクラスもあります。サインのプロパティ/列は、サイン ドライバーがサインと適切に対話するために必要な構成可能な情報を表します。

すべてが素晴らしく、あなたは背中を徹底的に叩きました。次に、別のサインと話す必要が生じます。ただし、この記号は前のものとは動作が異なり、Sign クラスとテーブルに追加情報を格納する必要があります。5 つの新しいもの (列/プロパティ) を保存する必要があるとしますが、残念ながら、最初のタイプの標識はこれら 5 つのものを必要としません。次に、各タイプの記号を 10 個制御したい場合、テーブルに多くの NULL 値があることがわかります。

ドメイン モデルは、Sign のようなクラスが増えるまで成長します。各クラスは、問題ドメインの異なる部分を表し、それぞれがデータベース内の対応するテーブルを持ちます。各クラスは、そのタイプの共通情報を適切に収集するという同じ問題を抱えていますが、各タイプの特殊化にはまったく対応していません。

問題の性質上、制御すべき兆候の種類が増え、対応すべき他のエンティティの種類が増えることを意味します。より拡張可能なモデルが必要です。

このようなシステムの最善の方法は何でしょうか??

私はこれについて同僚と長々と話し合いましたが、このような問題に取り組む最善の方法は何かを知りたいと思っています. 特に、多くの人が過去に直面したであろう問題のように思えるからです。

以下は、私たちが思いついたオプションと、それぞれについてのいくつかのポイントです。

  • 1 対 1 の関係を共有するエンティティごとに n個の「タイプ」クラスとテーブルを作成します。
    • 非常に継承的です。
    • 伸ばすときに一番時間がかかります。
    • 多くのテーブル。
  • キーと値のペアを保持するために、エンティティごとに 1 つの「拡張プロパティ」テーブルを作成します。
    • 参照整合性。
    • 拡張可能。
  • Create one global ‘extended properties’ table to store properties for ANY entity. (schema: entityType, entityId, key, value, dataType)
    • Super extensible.
    • Cannot have referential integrity with existing tables.
    • Doesn’t look like Entity Framework will be able to handle this well.

What would you do and why??

Any help greatly appreciated. Cheers.

0 投票する
2 に答える
283 参照

c# - ビジュアル スタジオの拡張

Visual Studio (2010) 用のアドインを作成したいと考えています。私の目標は、ソリューション エクスプローラーのすべての .cs ファイルのコンテキスト メニューに menuitem を追加することです。または、コード ウィンドウのコンテキスト メニューだけかもしれませんが、私は最初のほうが好きです。Visual Studio Extensibilityの Web サイトをブラウズしてきましたが、目的を達成する方法に関するチュートリアルを見つけるのに苦労していることを認めなければなりません。正直なところ、VS拡張モデルをよく理解していないと思います。

ですから、ここにいる賢い人たちの何人かは以前に試したことがあるにちがいないと思いました.暗闇で手探りするのではなく、ここで質問することで時間を節約したいと思っています.

助けてくれてありがとう。

0 投票する
3 に答える
327 参照

asp.net-mvc - ASP.NETMVCURL生成の拡張ポイント

ASP.NET MVCでのURL生成の拡張ポイントは何ですか?

  1. ルート-仮想パスはそれに依存します
  2. ???

補遺1
特に、URLのパス部分だけでなく、ホストも制御する必要があります。そして、生成ロジックをMVC Frameworkに埋め込んで、標準Html.ActionLinkメソッドの呼び出しにロジックが含まれるようにしたいと思います。それは完璧でしょう。ただし、MVCソースを調査することで、簡単な方法で目標を達成することができます。

0 投票する
1 に答える
137 参照

visual-studio-2010 - T4テンプレートでIStereotypeリファレンスを取得するにはどうすればよいですか?

t4テンプレートでMicrosoft.VisualStudio.Uml.Profiles.IStereotypeインターフェイスへの参照を取得する方法はありますか?つまり、実際の値を保持するIStereotypeInstanceではなく、UMLステレオタイプの定義を格納するIStereotypeを意味します。このようなことを試しましたが、ApplicableStereotypesの列挙は空です。

ModelStoreからIStereotypeを取得しようとしました。ただし、ProfileManagerプロパティは常にnullを返し、コードは壊れます。

私は立ち往生しています。助けてください!

0 投票する
1 に答える
29 参照

java - appserver に拡張メカニズムを実装する方法は?

24 時間年中無休で動作するサーブレットを開発しています。そして、いくつかの拡張メカニズムを作成したいと思います。クラスパスに新しいjarを配置することは、メインサーブレットによって検出され、一部のクラスがロードされる必要があります(アプリケーションサーバーの再起動なし)。

目的: メイン サーブレットはイベントを受信し、ロードされたクラス (拡張機能) に処理するためにデータをリダイレクトします。拡張機能は、いくつかのインターフェースを実装します (例: IMyExtension)。

特定のインターフェースを実装するすべてのクラスを見つける方法はあるのでしょうか? またはあなたは何を提案しますか?

0 投票する
1 に答える
301 参照

visual-studio-2008 - カスタム出力=>VS2008IDEでのエラー解釈のリスト

VS2008に「データベースソリューション」プロジェクトがあります。これは、ある種のテンプレートから複数のDBベンダーのSQLを生成します。時間を節約するために、VS2008に構成されたツール(Pythonスクリプト)もあります。このツールは、個々のストアドプロシージャをコンパイルできます。これで、Pythonスクリプトを使用して、出力を自由に処理し、任意の形式にすることができます。私は、これらのエラーと警告を何らかの形で認識し、クリック可能なエラー/警告リストに入力するというアイデアをいじっています。これは、典型的なOracleエラーのように見えます。

これは長い道のりかもしれませんが、私にとっては価値があります。私はこれをたくさんします。ありがとうございました!

0 投票する
2 に答える
591 参照

ruby-on-rails - Rails アプリの拡張フレームワークの構築

Rails アプリ用のユーザーレベルのプラグイン システム (Wordpress プラグインなど) を構築するために必要なものについて調査を開始しているので、一般的な指針やアドバイスをいただければ幸いです。ユーザーレベルのプラグインとは、ユーザーがフォルダーに抽出して管理インターフェイスに表示できるパッケージを意味し、追加の構成を追加してアクティブ化できるようにします。

これを行う最善の方法は何ですか?これを既に行っている他のオープンソース プロジェクトはありますか? Rails自体は、活用できるプログラマーレベルのプラグインに対してすでに何を提供していますか? これに役立つRailsプラグインはありますか?

プラグインは次のことができる必要があります。

  • 独自の移行を実行しますこれで?文書化されていません)
  • 自分のモデルにアクセスできる(プラグインは既にアクセス可能)
  • ビューにコンテンツを追加するためのエントリ ポイントがあります ( content_for と yieldで実行できます) 。
  • ビュー全体または部分を置き換える(どのように?)
  • 独自の管理者向けビューとユーザー向けビューを提供する(どのように?)
  • 独自のルートを作成します(または、プラグインがお互いの足を踏むのを避けるために、その存在を発表してルートを作成させてください)

私が見逃しているものは他にありますか?

また、移行とモデルに関してプラグインがアクセスできるテーブル/アクションを制限し、ルートへのアクセスを制限する方法はありますか (ルートを含めても削除しないようにすることもできます)?

PS: 他の人のための一種のガイドとなるように、私が把握したものと関連する回答をコンパイルして、この更新を維持しようとします。

0 投票する
3 に答える
602 参照

ruby - Ruby のスクリプト エンジン?

私は Ruby On Rails Web サイトを作成していますが、(ある程度) 信頼できるユーザーが Web サイトの一部を異なる方法で動作させることができるように、一部を動的にする必要があります。このためには、スクリプト言語が必要です。ASP.Net の同様のプロジェクトで、私は独自のスクリプト言語/DSL を作成しました。私はそのソース コード (仕事で書かれたもの) を使用することはできません。また、必要がなければ、別のスクリプト言語を作成したくありません。

それで、私にはどのような選択肢がありますか?スクリプトはロックダウンされている必要があり、サーバーなどをクラッシュさせることはできません。スクリプト言語として Ruby を使用できればよいのですが、厳密には必須ではありません。また、このスクリプト部分は、Web サイトに対するほぼすべての要求で、場合によっては複数回呼び出されます。したがって、速度は重要な要素です。

RubyLuaBridge を見てみましたが、アルファ ステータスであり、死んでいるようです。

Ruby プロジェクトのスクリプト言語にはどのような選択肢がありますか?

また、このプロジェクトが展開される場所 (ルート アクセス) を完全に制御できるため、実際の制限はありません..

0 投票する
2 に答える
740 参照

linq-to-sql - LINQクラスを異なる名前空間の自分の部分クラスに拡張しますか?

もちろん、テーブルに基づいて自動生成されたクラスを含む.dbmlファイルがあります。

ただし、自分のクラスに拡張したいと思います。通常、各テーブルが、関連するすべてのdaoクラスとサービスクラスを含む独自のフォルダーに独自の名前空間を取得するように設計します。したがって、たとえば「customers」のみに関係するページを扱っている場合、customerNSのみを含めることができます。

しかし、LINQを使用すると、これを実行できないようです。プロジェクトからデフォルトの名前空間を削除しようとしました。カスタム名前空間を使用して.dbmlファイルを独自のフォルダーに配置し、「using」ステートメントを追加しようとしましたが、何も機能しません。

また、.dbmlファイルに関連付けられたエンティティ名前空間、コンテキスト名前空間、およびカスタムツール名前空間のプロパティを確認し、これらすべてを名前xに設定し、他のクラスで「xを使用」して部分的なクラスを拡張できるようにしましたが、動作しません。

これは可能ですか、それともすべての拡張部分クラスを.dbmlファイルと同じ名前空間に保持する必要がありますか?

0 投票する
3 に答える
218 参照

android - Androidモバイル開発のパフォーマンスと拡張性

私はAndroidでゲームを開発していて、ゲームの要素の多く(ゲームオブジェクトなど)を別々のクラスとサブクラスに細分化することを考えていました。しかし、これらのオブジェクトへのメソッド呼び出しによってオーバーヘッドが発生することはわかっています。パフォーマンスを改善するか、拡張性を改善する方がよいでしょうか?