問題タブ [composite-application]

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 に答える
476 参照

domain-driven-design - 複合アプリケーションでドメイン モデルを再利用するためのベスト プラクティスは何ですか?

Composite UI Application Block (CAB)/Smart Client Software Factory (SCSF) を使用して構築された複合アプリケーションがあります。これまで、複合アプリの各モジュールは独自の DTO セットを使用しており、ビジネス ロジックは UI レイヤーとサービス レイヤーの両方でモジュール全体に複製されています。UI層とサービス層、そして(理想的には)モジュール全体に分散できるドメイン層にビジネスロジックをカプセル化するために、よりドメイン駆動型のアプローチを追求したいと考えています。

開発中の複合アプリケーションには一度に複数のモジュールがあり、それらを任意の順序でデプロイできる必要があります。理想的には、私たちのモジュールが共通のドメイン モデルを共有することを望んでいますが、ドメイン モデルの新しいバージョンをモジュールと共にデプロイする場合、ドメイン モデルに対して他のモジュールを回帰テストする必要があるのではないかと心配しています。 .

別の方法は、各モジュールでドメイン モデルを複製することのようですが、そのコードの複製すべてが私にはおかしいにおいがします。業界は、この種の状況に対するベスト プラクティスを開発しましたか?

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

wpf - WPF フレームが履歴をスタックに保存しないようにする

これは簡単な解決策のように思えますが、これを理解しようとすると時間がかかりすぎます。おそらく、アプリケーションの設計が間違っている可能性があります (そうである可能性があります)。より良い解決策があれば、助けてください。

Ribbonツールバーの代わりに Outlook によく似たエンタープライズ レベルの WPF アプリケーションを設計しています。ユーザーがRibbonButton. 彼のリボンはすべてのモジュールで共有されていることに注意してください。

リボンとフレームが付いたシェルがあります。ユーザーがリボン ボタンをクリックすると、適切なモジュール (ユーザー コントロール) がフレームに読み込まれます。すべてが良いです。ただし、別のモジュールに移動して (別の RibbonButton をクリックして)、元のモジュールをクリックするとRibbonButton、同じモジュールの 2 つのインスタンスが開いています... しかし、フレームには 1 つしか表示されません... もう 1 つのモジュールフレームのスタックにあります。

だから私の質問は、別のモジュールに移動したときにユーザーコントロールを閉じるようにフレームに指示する方法ですか? を設定してみましたJournalEntry.KeepAlive="False"が、それでもうまくいきませんでした。何かご意見は?投稿するコードはあまりありませんが、お役に立てれば投稿できます。

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

silverlight - Silverlight ソリューションでのフレーム/ページおよび複合アプリケーション ガイダンス (Prism) の利用

Silverlight 複合アプリケーションでページ/フレームを使用する方法はありますか?

以前、System.Windows.Controls.Navigation.Frame と System.Windows.Controls.Pages を利用する Silverlight アプリケーションを作成しました。コードの重要な部分は次のとおりです。

プロジェクトを複合アプリケーション ガイダンス ソリューションに統合しようとしています。フレームソースを読み込もうとするまでは、すべてうまくいっているようです。それから私は得る:

未処理の例外 (「Silverlight アプリケーション
コードの未処理のエラー: 4004
カテゴリ: ManagedRuntimeError
メッセージ: System.InvalidOperationException: 場所 '/Pages/StartPage.xaml' に XAML が見つかりませんでした。

XAML から「ソース」属性を削除すると、リージョンは正常に読み込まれます (ただし、コンテンツはありません)。

複合アプリ、Silverlight、および XAML は初めてです。しかし、アプリケーションがその特定の場所でページを探していることは理解できますが、これはメイン アプリケーションには存在しません (特定のプロジェクトにのみ存在します)。

プログラムでフレームをロードできる方法はありますか? または、それらのページをロードするための別の解決策はありますか?

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

pylons - 複数の Pylons アプリケーションを単一の複合アプリケーションに移動するにはどうすればよいですか?

単一の Pylon Web サイトをいくつか実行していますが、これらをより簡単に再利用できるようにしたいと考えています。

pylons 内には「複合アプリケーション」の概念がありますが、これを実現する方法についての説明は限られているようです。

誰かがこれを行ったことがありますか、または「複数の pylons アプリを複合アプリに変換する方法」に関する優れたチュートリアルを知っていますか? ?

既存のアプリを別のアプリに単純にコピーし、development.ini ファイルをいじることを試みましたが、これはうまくいかないようです。(その場合、「pkg_resources.DistributionNotFound: wiki」というエラーが表示されます)

ありがとう

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

.net - Composite Application Block のコマンドとイベントの違い

アプリで複合アプリケーション ブロックを使用しています。私には非常に似ている EventHandlers と CommandHandlers の 2 つの概念があります...どちらも、UI のある部分の機能を別の部分から呼び出すことができます。それらの違いは何ですか?

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

asp.net-mvc - Microsoft 複合アプリケーション ブロック (CAB) の読み込みの問題

私は Microsoft CAB フレームワークにかなり慣れていませんが、アプリケーションの読み込み中にリボン バーが設定されているため、アプリケーションのリボン バーを「再表示」できないという問題に直面しています。次のように、WorkItem コントローラーのイベントで後で再表示/表示できます。

起動時に読み込まれるビューから上記のイベントを発行できると思っていましたが、残念ながら、アプリケーションの起動後もリボン バーは非表示のままです。

私の会社の誰かが、「ShellCreated」イベントから F1 キーをアプリケーションに送信する次のハックを使用しています (コードのどこにでもイベントの発行を見つけることができるので、予約語イベントだと思います)。 Word、Outlook などの間違ったアプリケーションに F1 キーを送信することがあります。

上記の OnShellCreated 関数に mShellUIExtensionService.ShowRibbon(True) を追加しようとしましたが、リボン バーは非表示のままです。

問題は CAB アーキテクチャがロードされる順序にある​​と思われるので、アプリケーションがロードされた後に CAB によってロードされたプロパティを設定する方法を知っている人はいますか? または、少なくともこの問題を回避する方法を知っていますか?

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

java - Lotus Expeditor を Eclipse Keplar にインストールする方法

Lotus Expeditor Toolkit を使用して、IBM Lotus Notes 用の複合アプリケーションを開発しようとしています。私は Eclipse Keplar SR2 を使用しており、Lotus Expeditor 6.2.3 (さらには 6.2.2 & 6.2.1) をインストールしようとしています。Expeditor Toolkit の更新サイトをダウンロードしました。

http://www14.software.ibm.com/webapp/download/nochargesearch.jsp?q=Lotus+Expeditor+Toolkit+6.2

Eclipse は site.xml ファイルを認識でき、Expeditor をインストールしようとしますが、org.eclipse.equinox.common [3.4.0,3.5.0] が見つからないというエラー メッセージが表示されます。

KeplarSR2 用の Equinox をダウンロードしました。

http://download.eclipse.org/equinox/drops/R-KeplerSR2-201402211700/index.php

バイナリ、機能、およびプラグイン用のフォルダーを含む zip ファイルをダウンロードできますが、site.xml ドキュメントがないため、Eclipse はこの方法でインストールできません。ただし、artifacts.xml ファイルと content.xml ファイルがあります。

Equinox を Eclipse にインストールするにはどうすればよいですか? (Lotus Expeditor のインストールを目的として)

おそらく、Lotus Expeditor も必要でしょうか? たとえば、ユーザーのメール ファイルがフォーカスされていない場合に非表示またはグレーアウトできるメニュー項目を追加できる Java UI クラスは他にありますか?

ありがとう。

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

c# - Windows フォーム アプリケーションはまだ良い選択肢ですか?

2005 年以降、Windows フォーム アプリケーション (C# と .NET を使用) を作成していないので、リッチ クライアント アプリケーションにまだ適しているかどうかはわかりません。また、Composite Application Block 以外に Windows アプリを構築するための (比較的) 新しいフレームワークがあるかどうかもわかりません。

私たちの会社には、コンテンツ (音楽、モバイル ゲームなど) を管理する小さなチーム (3 人) がいて、彼らのためのツールを構築したいと考えています。このツールを使用する人は少ないので、リッチな Web UI (ajax、jquery などを使用) の作成に時間と労力を費やすのではなく、ビジネス ロジックに集中できるように、Windows アプリを作成することを考えています。

WPF が別のオプションであることは理解していますが、私の知る限り、WPF を使用してアプリを構築するのは少し複雑で時間がかかります。

Windows フォームが最良の選択肢である場合、Windows アプリを構築するためのかなり新しいフレームワークはありますか? 10 年前、私は Microsoft のコンポジット アプリケーション ブロックを使用していましたが、それは過去のことのように思えます。

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

c# - Prism と MEF を使用して複数回初期化された静的変数

環境

Windowsの作成を担当するInteractionWindowPresenterクラスがあります。それらのいくつかはモーダルである可能性があり、アプリケーションの他の部分に通知するために、開いているモーダル ウィンドウの数のカウンターを保持したいと考えています。

したがって_modalsCount、モーダルウィンドウが開いたり閉じたりするたびに更新される変数をクラスに追加しました。

初期化時に、各Prism モジュール- つまり。各クラスの実装IModule- InteractionWindowPresenterウィンドウに表示する必要があるビューごとにインスタンス化し、それへの参照を保持します。例えば:

クラスは、InteractionWindowPresenterすべてのモジュールおよび他のインフラストラクチャ アセンブリによって直接参照されるインフラストラクチャ アセンブリで定義されます。ランチャー アプリケーションからは参照されませんMefBootstrapper。したがって、合成にはMEFが使用されます。

問題

初期化行にブレークポイントを設定すると、インスタンスの作成_modalsCount時に実行されないことがわかります。InteractionWindowPresenter代わりに、変数が各モジュールで最初に使用されたときに (そのときだけ) 実行されます。Showメソッドが各モジュールから初めて呼び出されたとき。したがって、各モジュールには独自の値があり、その特定のモジュールのすべてのインスタンスで共有されます。

遅延評価がの好奇心beforefieldinitによるものであることは理解しています。ただし、モジュールごとではなく、アプリケーション全体に対して 1 回だけ評価が行われることを期待していました。

また、静的コンストラクターで初期化を実行しようとしました。

この場合、静的コンストラクターはインスタンス コンストラクターの実行前に呼び出されますが、インスタンスが作成されるたびに呼び出されます。したがって、変数はもはや静的ではないようです。

私の理解では、static変数は ごとに 1 回初期化されますAppDomain。したがって、すべてのアセンブリ (モジュールとインフラストラクチャ) が同じ にあるためAppDomain、これは発生しないはずです。これら2つの仮定のいずれかで間違っていますか?

これまでに採用された回避策

カウンターを保持する単純なクラスを作成すると、この問題を回避できます。

したがって、呼び出しを次のように置き換えます_modalsCount

と:


それで、私はここで何が欠けていますか?静的変数のライフサイクルとスコープを何らかの形で誤解したのでしょうか、それとも Prism モジュールや MEF が私をいじっているのでしょうか?