問題タブ [domainservices]
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.
asp.net-mvc - Webアプリケーションまたはドメインレイヤー内のAsp.netmvcアプリにログイン中にエラーが発生しましたか?
ベストプラクティス/広く使用されているものを知りたいだけです。現在、ドメインサービスレイヤーでログを記録していますが、Webアプリケーションレイヤー内で発生したことはすべてログに記録されません。
1つの集中化されたシンプルな場所で、すべての作成/削除/更新のログ記録を実行したいと思います...
Elmahのことを聞いたことがありますが、ドメインサービスレイヤーのロギングにのみ役立つかどうかはわかりません...
現在、ログ記録にフレームワークをまったく使用していません。ログメッセージを文字列ビルダーで表示するか、例外を取得してデータベースにフラッシュします...これが最善の方法ですか?
重要な場合...ILoggingServiceに注入するにはNinjectを使用する必要があります
注:ユーザーアクティビティのログ記録については話していません...ドメインサービスレイヤー内にのみ存在することは間違いありません...
c# - 特定のユーザーに対してサービスを制限する最善の方法は何ですか?
編集:簡潔にするために言い直され、単純化された質問...
私のサービス層には次のようなものがあります
システムには、クライアント/サプライヤーなど、さまざまなタイプのユーザーがいる可能性があります...
このサービスはすべてのタイプのユーザーのみが利用できますが、選択したユーザーのみが利用できるサービスを実装する最善の方法は何ですか?
通常、これらのメソッドはMessagesServiceという 1 つのクラスにあります。
注:明確にするために、ユーザーはログオンして認証されていますが、メソッドを次のように記述する必要があるかどうか疑問に思っています。
基本的に、すべてのアクションのユーザーの詳細を取得し、より厳密に型指定された方法でメソッドを呼び出します...
編集2:
私のドメイン層は私の Web アプリとは別のクラス ライブラリにあることに注意してください。「クライアント ユーザー」は「クライアント」の一部になり、同様に「サプライヤー ユーザー」は「サプライヤー」の一部になります。サービスレイヤーを呼び出して正しいコードを呼び出します (つまり、正しい詳細を取得します) - ユーザー ID またはユーザーの厳密に型指定されたクラスを渡す必要があります。サービスにアクセスできるユーザーを表す DTO オブジェクトに制約があることを理解できません。間違っていますか?
そうでなければ、次のようなものがあります。
ユーザーはasp.netによって処理されるため、ユーザーがこのアクションにアクセスできることはわかっていますが、複数のクライアントがある場合はどうなるでしょうか? 確かに、クライアントIDの一部を渡す必要があります/ユーザーIDを渡す場合、そこからクライアントIDを取得できます...
むしろ、上記の署名のようなものを見て、ドメイン層が間違っていると思います...
EDIT 3: 私が考えることができる他の唯一の代替手段は、ユーザーが認証するときに、使用をasp.net mvcアプリケーション内のUserSessionというクラスにグローバル状態として保存し、DI(ninject)を使用してこれをドメインサービスに注入することですレイヤー、したがって、私の署名ができるとき
このインターフェイスを実装するドメイン サービス クラスは次のようになります。
c# - 複数の WCF RIA Entity 型を ViewModel で使用する単一の型に変換する方法
詳細が多すぎる/不十分である場合、またはその一部が無関係である場合はお詫びします。これがこのボードでの最初の投稿です。
バックグラウンド
現在、VS2010 を使用して C# で Silverlight 4 および WCF RIA (SP1) ベースのアプリケーションを開発しています。スタックは次のとおりです: SQL Server -> nHibernate -> Domain Service -> Service Agent -> Silverlight 4 Client (MVVM)
データベースには同じフィールドを持つ 4 つのテーブルがあり、各テーブルには同じデータの異なる「タイプ」が保持されています。
データは実際にはタイプ列を持つ1つのテーブルにあるはずですが、変更できないレガシーデータベースです。
テーブルごとに POCO を作成し、4 つの異なるエンティティ セットへのアクセスと更新を処理する単一のドメイン サービスを作成しました。これらの型は Silverlight クライアントに投影され、すべての CRUD は期待どおりに機能します。
問題
T が 4 つのエンティティ タイプの 1 つである ObservableCollection を含むビューモデルがありますが、異なるエンティティ タイプを保持するために 4 つのコレクションを使用したくありません。UI を使用すると、ユーザーは型を選択できます。同じコレクションと UI バインディングを使用してそのデータを編集したいと考えています。
私が試してみました
汎用ドメイン サービスを作成しますが、サポートされていません。
サーバー側のエンティティ型を抽象クラスから継承するか、インターフェイスを実装しますが、ドメイン サービスは抽象クラスまたはインターフェイスを投影しません。
クライアント側インターフェースを実装する 4 つの投影されたエンティティのクライアント側部分クラスを作成します。ただし、を割り当てようと
ObservableCollection<MyEntity>
するとObservableCollection<MyEntityInterface>
、次のエラーが発生します。
Cannot implicitly convert type 'System.Collections.ObjectModel.ObservableCollection<BusinessDomain.StandardInterestRate>' to 'System.Collections.ObjectModel.ObservableCollection<BusinessDomain.IInterestRate>'
その理由は、StandardInterestRate が RIA Entity クラスを継承しているためだと思います。どんな考えでも大歓迎です。
silverlight - DomainCollectionViewおよびカスタムDomainServiceでページアイテムが正しく表示されない
開発中のRIAサービスアプリケーションがあり、サーバー側のページングとDataGridでのページングされたアイテムの表示に問題があります。PageIndexとPageSizeがいくつかのフィルターパラメーターとともにクエリを介して渡されるカスタムDomainServiceを使用しています。
問題は、結果の最初のページが正しく表示されることですが、次の結果セットにページングすると、サーバーから返された新しい結果を表示するだけでなく、アイテムがリストの最後に追加されます。つまり、私のDataGridは、返された結果の最新ページを表示するだけでなく、サーバーから返されたすべての累積オブジェクトを表示しています。
まず、DomainCollectionViewとDomainCollectionViewLoaderを使用しています。
次に、かなり標準的なLoad()メソッドとLoadComplete()メソッドがあります。
PortalCountAllメソッドが戻るときにTotalItemCountを割り当てることに注意してください。
完全を期すために、DomainServiceQueryメソッドのシグネチャは次のとおりです。
問題は、_entityListの設定方法と、LoadComplete()メソッドでの結果の割り当てにあると思います。
すべてのLINQベースの例では、この割り当てにより、現在の結果のみをDataGridに表示できるようになっているようです。何らかの理由で、カスタムクエリメソッドを使用する場合、これは当てはまらないようです。
ページを変更したときにDataGridをクリアするための好ましい方法は何ですか?クエリを実行する前に_context.PortalStudies.Clear()を呼び出して結果をクリアできることはわかっていますが、これによりページがフラッシュされ、アイテムがクリアされ、クエリがサーバーから返されるまで再度入力されません。カスタムDomainServiceを使用するときに、結果の現在のページだけを表示する適切な方法は何ですか?
silverlight - エンティティ タイプは複数のドメイン サービス タイプによって公開されていますか?
古い Silverlight アプリケーションを実行してみましたが、同じデータベースとの新しい接続で ADO.NET 接続を再作成しました。
私が直面している問題は、一定のエラーが発生し、修正できないことです。多分コミュニティは知ることができるでしょうか?
これは、デバッグ時のエラー リストのスクリーンショットです。アプリケーションでドメインサービスを変更していません。
c# - テーブルに 200 万行の Silverlight RIA DomainService
Oracle データベースから読み取るプロジェクトを行っています。私は Silverlight RIA を使用し、DomainService を自動生成しました。これは、データを表示することだけを考えているため、構造化についてはあまり気にしていないためです。
私の質問は、XAML から domaindatasource を使用し、WCF サービスとその呼び出しをデバッグするためにフィドラーを使用すると、useraccounts のテーブルの最初のデータ セットに 200 万行が含まれ、DomainService がタイムアウトすることです。
サービスのタイムアウトを 20 分に増やしてみましたが、まだ役に立ちません。次のエラーが表示されます。
クエリ "GETUA_USERACCOUNTS" の読み込み操作が失敗しました。への http 要求が割り当てられたタイムアウトを超えました
また、私が使用している合計 9 つのテーブルのうち、3 つのテーブルには約 200 万行ありますが、この問題に取り組むための最良の方法は何でしょうか?
silverlight - 既存の Ria サービスを削除せずに新しいテーブル関連のコードを生成する方法
既存の Ria サービスを削除せずに新しいテーブル関連のコードを生成する方法。ベストプラクティスを提案してください。私は 1 つのドメイン サービスを持っています。多くの自動生成コードとメタ データを変更しました。ここで、テーブルを削除せずに自動生成されたコードをさらにいくつか含めたいと思います。
wcf - 呼び出し操作に必要な署名に準拠していません
OK、メソッドが 2 つしかないドメイン サービス クラスがあります。
CT1 と CT2 は両方とも、複数の int フィールドと string フィールドを持つ複合型です。
GetActiveCT1 と GetCT2 はどちらも、ストアド プロシージャに基づく関数のインポートです。
問題は、方法 2 の GetCT2 が常に「必要な署名に準拠していません」というエラーを返すことです。[Invoke] を [Query] に変更すると機能しますが、方法 1 には同じ問題はありません。
2つの複合型がなぜそれほど異なる動作をすることができるのか、私は非常に困惑していますか?
wcf - WCF RIA サービスとドメイン サービスのどちらが優れたパフォーマンスを提供しますか?
インターネットから使用する新しい SV アプリケーションを構築しています。一度に数人のユーザーがいると予想される
ため、優れたパフォーマンスが必要になります。
どちらを使用するのが良いですか:
- 0 WCF RIA サービスからビルドするか、
- ドメイン サービスを使用しますか?
WCF RIA では、ConcurrencyMode のサービス動作を設定できますが、ドメイン サービスについては、それに関する情報が見つかりませんでした。
また、私はこれに少し慣れていないので、優しくしてください:)。
ria - パラメータ LightSwitch を使用した RIA DomainService クエリ
LightSwitch で RIA サービスを使用しようとしていますが、クエリが LightSwitch にインポートされていないため、DomainService のクエリにパラメーターがあるとエラーが発生します。
他のすべてのクエリは問題ありません。
ウィザード ウィンドウでデータ ソースをアタッチするときに表示されるエラーは、次のとおりです。
クエリ 'AllRecordsbyId' のパラメーター 'ID' は、null 許容型ではありません。このクエリはインポートされません。