問題タブ [thick-client]
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.
windows - Windows セッションをリモート Web サイトに記録する
サードパーティのシステムでいくつかのソリューションを実行していますが、顧客固有のエラーが頻繁に発生します。残念ながら、顧客のカスタマイズの量とアクセスの問題の両方が原因で、これらの (かなり些細な) エラーを実際に再現することはできません. 無料または有料のアプリケーションで、Windows サーバー上で簡単に実行でき、すべてのアクティビティを記録し、ビデオをサーバーに送り返すことはできますか?
.net - MVC - 複数のビューで ViewModel インスタンスを共有する
1 つのビュー モデル インスタンスを複数のビューで共有することについて、人々はどのような考えを持っているのでしょうか?
これはアンチパターンですか、それとも受け入れられている慣行ですか? 長所と短所は何ですか?
dependency-injection - Windowsクライアント(WPF)アプリケーションで依存性注入を行う適切な方法
私はWebアプリケーションのIoC/DIに慣れています-主にMVC3でNinjectします。私のコントローラーは私のために作成され、すべての依存関係、サブ依存関係などが入力されています。
ただし、シッククライアントアプリケーションでは状況が異なります。独自のオブジェクトを作成するか、サービスロケータースタイルのアプローチに戻して、依存関係のあるオブジェクトを提供するようにカーネルに依頼する必要があります(おそらく、テスト容易性を考慮して、何らかのインターフェイスを介して)。
ただし、ServiceLocatorがアンチパターンとして説明されている場所をいくつか見ました。
だから私の質問は-シッククライアントアプリでNinjectの恩恵を受けたいのなら、これをすべて手に入れるためのより良い/より適切な方法はありますか?
- 妥当性
- 適切なDI/IoC
- 可能な限り最小のカップリング
ここではMVVMについて話しているだけでなく、ビューモデルをビューに取り込むことに注意してください。これは特に、カーネルからリポジトリタイプのオブジェクトを提供し、そのリポジトリからフェッチされたエンティティに機能を注入する必要があることによってトリガーされます(データはもちろんデータベースから取得されますが、状態に応じてパラメータとしていくつかのオブジェクトも必要です世界の、そしてNinjectはそれを提供する方法を知っています)。リポジトリとエンティティの両方をテスト不可能な混乱として残さずに、どういうわけかこれを行うことができますか?
不明な点がありましたらお知らせください。ありがとう!
7月14日編集
提供された2つの答えはおそらく正しいと確信しています。しかし、私の体のすべての繊維はこの変化と戦っています。知識不足が原因の可能性もありますが、このようなやり方の優雅さを理解するのに苦労している具体的な理由も1つあります。
元の質問ではこれについて十分に説明していませんでしたが、いくつかの(最初は4〜5、おそらくもっと後で)WPFクライアントアプリケーションで使用されるライブラリを作成しているということです。これらのアプリケーションはすべて同じドメインモデルなどで動作するため、すべてを1つのライブラリに保持することがDRYを維持する唯一の方法です。ただし、このシステムの顧客が独自のクライアントを作成する可能性もあります。そして、私は彼らに、話しかけるためのシンプルでクリーンなライブラリを用意してもらいたいと思っています。私は彼らにコンポジションルートでDIを使用するように強制したくありません(彼の本でMark Seemanのような用語を使用しています)-それはMyCrazySystemAdapter()を新しくしてそれを使用するだけの場合と比較して非常に複雑になるためです。
ここで、MyCrazySystemAdapter(ここで人々が私に同意しないことを知っているために選択された名前)は、サブコンポーネントで構成され、DIを使用してまとめられる必要があります。MyCrazySystemAdapter自体を注入する必要はありません。これは、クライアントがシステムと通信するために使用する必要がある唯一のインターフェースです。したがって、クライアントは喜んでそれらの1つを取得する必要があり、DIは舞台裏で魔法のように発生し、オブジェクトはベストプラクティスと原則を使用して多くの異なるオブジェクトで構成されます。
これは物事をやりたいという物議を醸す方法になるだろうと私は理解しています。ただし、このAPIのクライアントになる人も知っています。DIシステムを学習して接続し、アプリケーションのエントリポイント(構成ルート)でオブジェクト構造全体を事前に作成する必要があることがわかった場合、単一のオブジェクトを作成する代わりに、中指とデータベースを直接いじって、想像もできないような方法で物事を台無しにしてください。
TL; DR:適切に構造化されたAPIを提供することは、クライアントにとって非常に面倒です。私のAPIは、DIと適切なプラクティスを使用して舞台裏で構築された単一のオブジェクトを提供する必要があります。現実の世界では、パターンや慣習に忠実であり続けるために、すべてを逆方向に構築したいという願望に勝る場合があります。
java - 非常に大規模なオブジェクト コレクションのクライアント ビュー。最適化する方法は?
私は 3 層 EJB アプリケーションを使用しており、オブジェクトの非常に大きなコレクション (5000 以上の注文) を表示するシック クライアント (デスクトップ Java アプリケーション) でビューを作成する必要があります。各オブジェクトには、複雑なオブジェクトでもある子プロパティがあります。次に例を示します。
ビューは注文のテーブルです。
番号 | 最初のアドレス | LastAddress | ...
私の最初の試みは、注文の完全なリスト (子プロパティなし) をロードし、表示が必要なときに子オブジェクトを動的にダウンロードすることでした。しかし、10000 件の注文があり、高速スクロールを開始すると、UI が応答しなくなります。
次に、テーブルに表示する必要があるすべての注文とすべての子をロードしようとしましたが、おそらくメモリ コストが原因で、UI が非常に重く遅くなります)。そして、ほとんどすべてのデータをdbからダウンロードするため、シッククライアントではありません。
このタスクを解決するためのベスト プラクティスは何ですか?
java - 既存の Web アプリをデスクトップ アプリケーションに変換する
ここでこのトピックに関する他の同様の質問を見ましたが、あまり役に立たなかったので、この質問を投げかけました。
妥当なサイズの単純な Web アプリを、PC および Mac を対象とした Java デスクトップ ベースのクライアントに変換する最速の方法は何ですか? 残念ながら、さまざまな理由により、ここでアプリに関する多くの詳細を共有することはできません. ただし、アプリで最も複雑な UI は、マルチレベルのスレッド化されたディスカッションを含むページです (私が話している内容の実例については、こちらを参照してください)。現在の Web アプリは Python に基づいているため、何も再利用できませんサーバー側のコード (これが問題だとは思わないでください)
私は、swing や awt などの Java ベースのシック クライアント GUI の作業を行ったことがありません。私の考えは、多かれ少なかれ Web ベースのアプリケーションによって定義されます。Java または Python を使用して、エンド ツー エンドの Web アプリ開発 (HTML、CSS、および JS を使用したバックエンドおよび適切な UI を含む) を行うことができます。回答については、Java ソリューションのみに注目してください。
ここに私の質問があります。使用すべき最適なフレームワークまたはツールは何ですか? 調査の一環として、次のツールのいくつかを Web で見つけました。
- Awt - これは良い選択ではないようです。
- Swing は通常の Java SDK/JRE にバンドルされていると思います。- これが最善の策かもしれません。
- ある意味で Swing を補完するように見えるSWT 。
- ここの記事に基づいたグリフォン。このフレームワークは、Groovy を使用します (Groovy についてはまったくわかりません) Adobe Air flex です。オープンソースのフレームワークはありますか?
留意する必要があるその他の問題にはどのようなものがありますか? コメントをお願いしたいのは次のとおりです。
- クライアントに展開する必要があるという事実は、物事をどのように複雑にしますか? Java を使用しているため、これは問題ではないと思います。Web ベースのアプリとデスクトップ アプリの間の通常のトレードオフを認識しています (例: 展開とアップグレードの容易さなど)。
- ワンクリックインストーラーを作成し、アプリと必要な環境をバンドルするのはどれほど簡単ですか? JREなど?
- 製品は Mac および Windows で動作する必要があります。それは何らかの形で物事を複雑にしますか?
- スキルセットとして履歴書に記載するとよいフレームワークまたはテクノロジーは何ですか?
私の締め切りは最大 2 か月です。これらのテクノロジをすべて学習する必要があることを考えると、合理的に単純な Web アプリにはそれで十分でしょうか? 私はここで意味を理解しようとしています - 正確な答えを出すことはおそらく不可能であることを知っています.
ありがとうございました!
java - シン クライアント (Web ブラウザー) から、インストール済みで実行中のアプリケーションへのフロー
だから私は大規模なアプリケーションに取り組んでいます。インストール済みの Java アプリケーションから Web ベースのアプリケーションに移行中です。移行リリース中に、ローカルにインストールされた (および実行されていると想定される) アプリケーションで特定の画面を表示する機能が必要です。これを行う簡単な方法はありますか?
カスタム URL ハンドラーとある種のメッセージング システムを見てきましたが、どちらも大量の動的な数のクライアントに適しているようには見えませんでした。
architecture - シック クライアントまたはスタンドアロン アプリケーションですか。
シック クライアントとスタンドアロン アプリケーションの正確な違いは何だろうと考えていました。
ウィキペディアによると、シック クライアントにはまだアプリケーション サーバーが必要です。
アプリケーション サーバーに接続せず、データベース サーバーを使用する .Net Windows Forms アプリケーションを使用しています。このアプリケーションは、db サーバーの SQL プロバイダーのみであり、適切な方法でデータを処理しません。
このアプリケーションはスタンドアロンアプリまたはシッククライアントと見なされますか?
編集: たとえば、Microsoft SQL Server Management Studio はスタンドアロン アプリケーションですか、それともシック クライアントですか?
gwt - ファット/シック クライアントとシン クライアント
質問があります。サーブレットと JSP を使用して、Java で REST API に基づくデスクトップ Web アプリケーションを開発していましたが、上司は、サーブレットと JSP はファット/シックとして動作するため、Web アプリケーションを作成する最良の方法ではないと言いました。クライアント(サーバーへのリクエストにより、GWTのようにデータの一部ではなくすべてのコンテンツをダウンロードするようにアプリケーションが作成されます)、GWTはシンクライアントとして機能するため、GWTを使用することを提案しました。
インターネットで調べたところ、サーブレットがファット クライアントとして機能していることはわかりませんでした。私の質問は、サーブレットよりも GWT の方が優れている理由です。
winforms - Windows フォームのシック クライアント アプリケーション - 同じマシンに複数のバージョンがインストールされている
古い Windows フォーム シック クライアント アプリケーションがあります。これは内部ツールです。Windows アプリケーションとして全員のデスクトップにインストールされます。同じ内部ツールのクライアント固有のバージョン用に別のインストーラーを作成する必要性が急に急上昇しています。一部の人々は、まったく同じアプリケーションの両方のバージョンにアクセスする必要があります。私の質問は、同じアプリケーションの 2 つのインストーラーを作成し、デスクトップのアイコンと同様に起動時に表示する方法です。セットアップ プロパティで製品コードを変更すると、両方のバージョンが同時にインストールされることがわかっています。これに関するヘルプは大歓迎です。
ありがとう、SDD
delphi - Delphi シック クライアントから Web アプリケーションへ
私は現在 Delphi 5 を使用しており、アプリケーションを最新バージョン (XE3) または他のテクノロジに移行することを計画しています。移行の主な目的は、シック クライアントが必要ないことです。現在のシナリオでは、アプリケーション (exe) がユーザーのローカル フォルダーにダウンロードされ、ローカルで実行されます。主な目的は、アプリケーションをユーザーのマシンにダウンロードしたくないことです。.
ダウンロードの制限が解消されれば、Delphi を使い続けたいと思っていました。ウェブソリューションはありますか?または、ユーザーのマシンにダウンロードせずに共通ポイントからアプリケーションにアクセスする方法。
助けと提案をありがとう。
注: これらのアプリケーションを使用するユーザーは多数います。