問題タブ [presentation-layer]

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

vb.net - List(Of T) をバインドする WinForm コントロールは?

私は自分のプロジェクトで物事をオブジェクト指向に保つことに取り組んできました。現在、アプリケーションのすべてのクラスをプレゼンテーション層として機能する WinForms プロジェクトに提供する .DLL を使用しています。

たとえば、私の .DLL は、フォーム内のコードに SortableBindingList(Of T) を返します。SortableBindingList(Of T) はhereから取得されます。SortableBindingList(Of Product) を想定しましょう。.DLL の関数Services.Products.GetList()が SortableBindingList(Of Product) を返すと仮定すると、これは簡単に実行できます。

これで、DataGridView に製品のリストが適切に取り込まれました。罰金。ただし、DataGridView で選択されたオブジェクトを返す .SelectedItem プロパティはありません。

ただし、ComboBox または ListBox は、実際には Product オブジェクトをそのまま格納して返します。

しかし別の... ComboBox と ListBox は、Product オブジェクトのすべてのフィールドを表示するわけではなく、DisplayMember プロパティの値のみを表示します。

VB.NET 2008 には、オブジェクトのフィールド全体を実際に表示し、ユーザーが選択したときにそのオブジェクトを返す、必要なオブジェクト指向機能を提供する、欠けている素敵なコントロールがありますか? なぜ無いのか不思議です。

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

frameworks - フレームワークの推奨リクエスト: Spring、Struts、Java EE?

前回 Web アプリケーションを見たとき、コンセンサスは Struts/Java EE のようでした。現在、Spring MVC/Java EE または Struts/Java EE はどちらも実行可能なソリューションのようです。

これは一般的に正しいですか?それとも、Spring MVC は現在、Struts よりもコンセンサスの選択肢になっていますか? 以前に Struts を使用したことがあり、それを使用したいと考えている人が少なくとも 1 人います。過去にレビューしたことがあるので、Struts にも精通しています。

また、Java EE は依然としてリモート コンポーネントを処理するための実行可能なソリューションと見なされていますか? または、代替手段はありますか?

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

asp.net - 従来の WebForms アプリをリファクタリングして、懸念事項をより適切に分離する

つまり、MVC が選択肢にない場合でも、MVP は次善の選択肢でしょうか?

私のように、グリーン フィールド プロジェクトに参加する余裕がなく、Web フォーム UI をリファクタリングしてプレゼンテーションをビジネス オブジェクトからより適切に分離したいと考えている人がいると確信しているので、ここで質問したいと思います。 .

私は、比較的小さな要件、機能強化、およびバグ修正を追加するタスクを負ったレガシー アプリケーションに取り組んでいます。

ここで取り上げるアプリケーションの部分は、リレーショナル データベースに永続化されるビジネス オブジェクトに対する一連の CRUD 操作の UI として特徴付けられる場合があります。

既存の UI は、MultiView コントロールを使用して、関連付けられたビジネス オブジェクト (1 対 1 の関連付けまたは 1 対多 / 親子) の編集間を移動します。はい、そうです - すべてが 1 ページにあります。残念ながら、UserControls の使用は非常に控えめであるため、マークアップとコード ビハインドは数百行の長さになります。

各ビューで、FormView はさまざまな ObjectDataSources を介してビジネス オブジェクトの CRUD を管理します。各 FormView の ItemTemplate 内で、さまざまなサーバー コントロールが ObjectDataSource のフィールドまたはメソッドにデータバインドします。

関心の分離をさらに導入し、ページのコード ビハインドから大量のコードを取り出したいと思います。

これまでの私の調査では、次のことを検討できることが示唆されています。

  1. Model View Presenter のフレーバーを使用します。より具体的には、Web Client Software Factory の ObjectContainerDataSource を使用して、現在の UI と一連の新しい Presenter クラスの間のブリッジを容易にします。

  2. MVC フレームワーク (オプションではありません) を使用してゼロから再構築します。

  3. よく放っておきます。MVP パターンは、異なる UI シナリオでプレゼンテーションを再利用する必要がある場合にのみ正当化されますか?

(3) で解決したとしても、プレゼンテーションをより適切に分離するためにリファクタリングを開始する方法を知りたいと思います。

あなたならどうしますか?感謝して受け取った他のアイデア...


興味のある人のための背景を次に示します。

ドメインは製薬研究にありますが、それはかなり無関係であり、非常に典型的な基幹業務 (アプリケーションの別の部分の動作条件を形成する一連の設定のユーザー構成) と考えることができます。

ビジネス オブジェクト層は、非常に一貫した方法で既に構築されています。気に入らないかもしれませんが、必ずしも変更を正当化することはできません。各オブジェクトは、「ID による取得」および「条件によるリストの取得」のための静的メソッドがあるという点で、独自のリポジトリ/データ アクセス オブジェクトです。可能な場合、一般的な操作は抽象基本クラスで実装されます。各ビジネス オブジェクトは、ADO.NET 2.0 プロバイダー ファクトリ メカニズムを使用して具体的なプロバイダーから比較的抽象化された状態を維持するデータ アクセス層にデータ アクセス作業を委任します。この点で、Microsoft Enterprise Library の Data Access Application Block を使用するすべてのアプリと多くの共通点があります。

NUnit で記述されたかなり徹底的な統合テストがあり、テスト データベースをゼロからセットアップするため、実行に時間がかかりますが、少なくとも、それらが正常に機能することを確認します (とにかく過去のある時点で ;-)。真の単体テストは (まだ) ほとんど行われていません。

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

java - 複数のデバイス向けのプレゼンテーション技術

私たちのアプリケーションは、シンプルなものからスマートフォン、iPhone、タッチスクリーン、通常のブラウザまで、複数のデバイスに対応することになっています。

アプリケーションは階層化されているため、ビジネス レイヤーと永続化レイヤーを再利用できます。ただし、単一のプレゼンテーション層もプログラムしたいと考えています。たとえば、ASP .NET はブラウザーの種類に基づいて異なる html 出力を生成することを知っています。 http://msdn.microsoft.com/en-us/library/ms178620.aspx

サイトをモバイルに変えることを約束するサイトもあります: http://instantmobilizer.com

デバイスの種類ごとに異なるプレゼンテーション レイヤーをプログラムする必要がないように、クライアント ブラウザーとデバイスに適応するプレゼンテーションを作成できる Java フレームワークはありますか? Web アプリケーションで複数のデバイスのサポート要件を管理する標準的な方法は何ですか?

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

service - サービス層からプレゼンテーション層へのビジネス検証エラーの受け渡し

プレゼンテーション レイヤー (PL) と WCF ベースのサービス レイヤー (SL) で MVP パターンを使用しています。PL は SL の操作コントラクトを呼び出し、内部でいくつかのビジネス検証を行います。検証に合格すると、(データ コントラクトとして公開された) オブジェクトを PL に返します。

しかし、検証が失敗した場合、PL に通知するベスト プラクティスは何ですか。

1 つの方法は、すべての操作コントラクトに共通の汎用応答クラスを作成することです。こんな感じになります。

ExceptionType: これは、businessValidation が失敗したか、SecurityValidation または不明な例外が発生したかを示す列挙型です。

ExceptionInfo: これは、errorCode などのように発生した検証/例外の特定の詳細を伝える列挙型です。

コレクション: サービス レイヤーは、単一のエンティティまたはエンティティのコレクションを返すことができます。このプロパティを使用して、要件に従ってエンティティを返します。検証の失敗があった場合、またはメソッドがサービス層からの戻りエンティティを想定していない場合にも、null になる可能性があります。

これは、検証の失敗を PL に渡すための適切なアプローチですか。

これの欠点は、PL が exceptionInfo で定義されたすべてのケースを処理する必要があることです。おそらく、スイッチ ケースを使用し、必要なことを行います。

これを行う他の方法は、ビジネス検証またはセキュリティ検証が失敗した場合に PL に例外をスローすることです。ビジネスロジックを処理するために例外を使用したくないので、このアプローチにはあまり熱心ではありません。

このシナリオを処理するためのアイデアはありますか?

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

asp.net-mvc - Web アプリケーション用の新しいプレゼンテーション層

マジックで書かれた既存の Web アプリケーションがあります。しかし、最終的には、既存の Web プレゼンテーション レイヤー (おそらくリッチ クライアントも) をサーバー側のプレゼンテーション レイヤーに交換したいと考えています。最初に何を見るべきだと思いますか (ASP.Net MVC、Silverlight、PHP の何か)。

モデルしかない場合、どのテクノロジーを使用すると、プレゼンテーション層を交換するのに比較的小さな労力で済みますか。

また、新しいページを簡単に作成できるように、一般的なプレゼンテーション レイヤーを使用することは可能でしょうか。

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

extjs - Webアプリケーションで複数のデバイスのサポートを実装するのに最適な方法

私のクライアントは、「可能なすべてのデバイス」をサポートするビジネスアプリケーションを望んでいます。問題のアプリケーションは本質的にWebアプリケーションであり、「すべての可能なデバイス」であり、携帯電話、ネットブック、iPad、その他のブラウザをサポートするデバイスなどが含まれると思います。アプリケーションは、キャプチャするデータや実行するその他の機能(レポート)。

アプリケーションの複雑さが増していることを尊重し続けると、他のデバイスで機能しない可能性が高くなると思います。Webアプリケーションが従来どのように複数のデバイスをサポートしているか知りたいですか?プレゼンテーション層には複数のバージョンがありますか(モバイルデバイス専用のm.website.comを何度も見つけるように)?さらに、私のアプリケーションがJava Script、RIA(Flash、SilverLight)を利用する場合、結果と回避策は何ですか?

Mineは.Netベースのアプリケーションであり、スタックにはExtJSJavaスクリプトライブラリも含まれています。確かに使いたいのですが、HTMLではなくJava Scriptで多くの作業を行うことを考えると、これは問題になる可能性があります。

上記の答えは説明的かもしれません。すでに処方されているものがある場合は、リンクを共有してください。ありがとう。

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

reference - プレゼンテーション層からビジネスオブジェクトを参照するための最良の方法..?

I want to develop an enterprise app that includes a WindowsForms presentation layer, middle-tier components for business logic and data access, and a MsSQL Server database. Middle-tier components should contain some business objects and will be called from presentation layer using .NET Remoting. Whitch is the best way (and why) to reference these business objects from presentation layer?

  • A) Create class library project, implementing business objects. Reference this project from presentation layer and middle-tier layer.
  • B) Create interface library project defining business objects. Create class library project implementing interfaces. Reference class library project from middle-tier layer. Reference interface library project from presentation layer.
  • C)中間層とプレゼンテーション層用に別々のクラスライブラリプロジェクトを作成します。プレゼンテーション層から対応するプロジェクトを参照します。
0 投票する
1 に答える
1368 参照

ipad - presentationLayer の位置プロパティは iPad では不適切な値を生成しますが、iPhone では問題ありません

CAKeyframeAnimation を使用していくつかの小さなオブジェクトをアニメーション化したゲームがあります。オブジェクトは、iPhone と iPad の両方で完全にアニメーション化されます。ただし、アニメーション化された CALayers の presentationLayers の position プロパティの値は、iPhone では妥当な値しか得られません。ヒット テストには、アニメーション オブジェクトの現在の位置を使用します。iPad と iPhone/iPod Touch のこの分野の違いについて何かアイデアはありますか?

iPhone の位置ポイントは、オブジェクトがアニメーション化するにつれて予想される段階的な変化を示します。iPad では、次のシーケンスのような固有の値が表示されます。

presentationLayer の他のプロパティは正しいです (ただし、これらはアニメーション中に値が変化しないプロパティです)。

アニメーションが終了した後、presentationLayer の位置の値は正確です。

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

exception-handling - Business Layerで生成された例外メッセージをUIに表示するための推奨される方法は何ですか?

ビジネスレイヤーからスローされた例外を使用して、プレゼンテーションレイヤーでユーザーフレンドリーなメッセージを作成するためのパターンまたは「ベストプラクティス」はありますか?

実際、多くの場合、私はアプリケーション例外をスローすることを好みます。これにより、UI(aspx.csページ)で例外をキャッチする必要があります。また、プロセスが複雑で、さまざまな種類の例外が発生する可能性がある場合は、特定のエラーメッセージを生成するために多くのキャッチブロックが必要です。

あなたの頭に浮かぶより良い方法はありますか?おそらく同様のケースのパターンですか?

ありがとう