問題タブ [csla]
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.
.net - ビジネスオブジェクトをどのようにテストしますか?
ソフトウェア開発プロジェクトで、Visual Studio の Microsoft テスト フレームワークを使用して、自動テストを実装したいと考えています。いくつかのテストを作成しましたが、全体として非常に使いやすいです。
ビジネス オブジェクト、より具体的にはデータベースの読み取りと書き込みをテストするためのより良い方法は何ですか。
ユーザー インターフェイスがテストされる開発データベースとは別のテスト データベースをセットアップし、そのデータベースに対してテストするのが最善ですか? 基本的には、ジャンクデータで埋めるだけです。
AddUser メソッドをテストしている場合、ユーザーを追加し、テストを確認してから、ユーザーを削除しますか?
1 つのテスト メソッドで各 CRUD メソッドをテストしますか?
最後に、文字列が正しいサイズであること、開始日が終了日よりも前であること、CustomerId が正しい Customer であることなどの検証など、個々のビジネス ルールについてはどうでしょうか。
私はこれがかなり幅広い質問であることを認識しています... 方向性を探しているだけです... 赤ちゃんの一歩を踏み出しています。
詳しくは...
良い答えがたくさん!モック データベースを作成できるかどうかはわかりません。オブジェクトのフレームワークとして CSLA を使用しています。これをモック オブジェクトでテストできるようにするには、かなりのリファクタリングが必要です。これについて調べてみます。ただし、ある時点で、データベースの相互作用をテストしたいと思います...模擬データベースを使用する場合、データベース通信を実際にどこで/いつテストしますか?
もう 1 つの質問...各テスト メソッドを他のテストに依存しないようにするのが最善ですか?
c# - CSLA を使用して C# .NET で TextBox を無効にする
UserControls の 1 つでデータを表示する (編集しない) ことを目的とした多数のテキスト ボックスを無効にしようとしています。ただし、何らかの理由で textBoxes を適切に無効にすることができません。
"ApplyAuthorization on readWriteAuthorization" を true に設定し、textBoxes は正しいプロパティにデータバインドされています。
CanWriteProperty
また、オブジェクトの に次の行を追加しました。
ここで何が間違っているのかわかりません。私は最近、他の UserControls にほとんど同じことを問題なく実装しました...
C# .NET (Visual Studio 2008) で Windows フォームを使用しています。
編集:コード スニペットとプロパティは、顧客オブジェクトから取得されます。日付は、顧客アカウントの開設、最終変更、および閉鎖を表します。それらはまったく編集されることは想定されておらず、実際、古いソリューションでは textLabels で表されますが、テキスト ボックスを使用して、プロパティの CanWriteProperty を false にしたいと考えています。
情報が不足しているかもしれないことは承知していますが、このプロセスで忘れていた可能性があるものを探しています。
編集:私たちはCSLAも使用していますが、これは私たちがこのようにしたい理由と関係があると思います(私はこの全体が初めてです)。
編集(解決策):以下の私の回答でわかるように、問題は、私がCurrentItemChanged
すべきようにイベントを設定していなかったことです。
c# - ダイナミック LINQ & CSLA BusinessListBase
私はただ私を殺している問題を抱えています。私のCSLAオブジェクトの1つ(親としましょう)には多くの子があります(子と呼びましょう-子のリスト)。親は編集可能なルート (BusinessBase)、子は編集可能な子リスト (BusinessListBase)、子は編集可能な子です。
私がやろうとしているのは、これを行うことです: Parent x = Parent.GetParent(id); IQueryable y = Parent.MyChildren.OrderBy("Age DESC");
理論的には、y は、年齢の降順で並べ替えられた子のコレクションで満たされる必要があります ("Age" が Child オブジェクトのプロパティであると仮定します)。
しかし、私が得たのは y.Count() = 0 です。ただし、Parent.MyChildren.Count() を実行しても 0 ではありません。これは動的 LINQ または CSLA のバグですか? これ(エラー)は、読み取り専用リストでは発生しません。
ヘルプ!ジョー
csla - CSLA3.6-構成ファイルにデータベース名が見つかりません
CSLA3.6を使用しています
エラーが発生し続けます:
DataPortal.Fetchが失敗しました(データベース名が構成ファイル(AdventureWorksLT)に見つかりません)
私のDataportal_Fetchコードは次のようになります:
私のDatabase.vbファイルは次のようになります。
そして私のApp.Configファイルには次のものが含まれています(stackoverflowのために<と>の文字を(と)に置き換えます:
私は何が欠けていますか?
ありがとう!
mono - Mono で CSLA を使用した経験のある人はいますか?
私は Mono と CSLA に大きな敬意を払っています。Microsoft 以外のオペレーティング システムで CSLA を利用したいと考えています。私は、Mono が常に Microsoft の 2 歩遅れているという事実を受け入れますが、Mono は、幅広い興味深いアプリケーションを促進するのに十分な .Net フレームワークをサポートしています。また、Mono は、WPF などの 3.0 の .Net 追加機能の多くをサポートしていないことも認識しています (ただし、Moonlight が機能するには多少のサポートが必要です)。私の現在のニーズでは、WPF サポートは重要ではなく、WCF も重要ではありません。Rocky が実装し、CSLA で維持し続けているすべての面倒なデータ バインディング サポートに心から感謝します。多くのアプリケーションでは、これが CSLA が実質的な価値を追加していると私が考える場所です。CSLA が他にも多くの機能を提供していることは理解していますが、私にとってデータ バインディングは非常に重要です。Mono での CSLA との主な互換性の問題は、Mono がすべての .Net データ バインディングのニュアンス (特に DataGrid) とシリアル化形式の違いを実装していないことに集中していると思います。これらの認識された問題に対処する方法についていくつかのアイデアがありますが、すでにこの道を歩んでいる人からの連絡をお待ちしています.
編集:価値があるのは、かなり前にこの正確な質問をCSLAフォーラムに投稿したことです。CSLA コミュニティと Rocky は質問にすぐに答えます。しかし、この質問には何の回答もありませんでした。その理由は単純だと思います。ロッキーは長い間、MS 技術だけに注目してきました。私はこれについて彼を責めません。Rocky は CSLA に多額の投資を行っています。彼は慈悲深い独裁者です。彼が CSLA をオープンソースにしてくれたことに感謝しています。彼は、Microsoft の世界で数年おきに発生する主要な API チャーンについていくのに十分な問題を抱えているのではないかと思います。Linux/Mac OS はおそらく彼のレーダーには入っていません。それはおそらくそうであるべきではありません...現在とにかく。ほとんどの Linux または Mac OS のユーザーは、CSLA について聞いたことさえありません。
ソースをフォークしたり、削除したり、強化したりして、Mono で動作させることができます。これを行うと、(少なくとも今のところ) CSLA コミュニティが背後にいることはありません。このため、私はこの取り組みを断念しました。
更新: ロッキーは今、Mono に興味を持っているようです。CSLA ロードマップを確認してください。
asp.net-mvc - Asp.Net MVC + CSLA + DDD は可能ですか
先日、ASP.NET MVC + CSLA + DDD (ドメイン ドライブ設計) をベースにしたシステムのレビューを依頼されました。このシステムの最初のバージョンは、ASP.NET MVC + CSLA に基づいていました。2 番目のリリースは、それに加えて DDD が追加されたものに基づいていました。理由は……まあ、わからないからです。2 つの異なるアーキテクチャの図を見ると、2 番目のバージョンが非常に複雑であることが明らかになりました。CSLA オブジェクトは基本的に Domain オブジェクトを使用していました。このようなものを見たときは、すでに臭いがすることを知っていますが、A) すべてのトピックについて極端な知識を持っているか、B) 長期間使用していない限り、なぜ誰かがこのようにしてはいけないのかを正当化するのは困難です. このトピックについてはどちらも持っていませんが、これを最初から作成していたら、このようにはしなかったでしょうし、そうしなかったでしょう」
では、親愛なる読者の皆さん、この状況でどうしますか? 私の考えでは、CSLA と MVC と DDD を使用したい場合は、立場を明らかにして、どちらか (CSLA または DDD) を選択します。そうしないと、キッチンに料理人が多すぎます。
この件についてご意見がありましたら、ご意見をお聞かせください。
.net - CSLA.Net V3.6 / NHibernate V2.10; 生命力の必要性を克服する方法
CSLA.netでは、すべてのドメインクラスが非仮想プロパティを含むBusinessbaseから継承する必要があります。
NHibernateを使用する場合、遅延読み込み用の仮想プロパティを実装する必要があります。
CSLA/NHibernateを一緒に使用するためのいくつかのオプションは次のようです。
- NHibernateで遅延読み込みをオフに切り替え、ドメインクラスに遅延読み込みコードを実装します(ただし、これは柔軟性が低いようです)
- NHibernateで遅延読み込みをオンのままにしますが、DTOクラスを使用してデータベースにマップしてから、データをCSLAドメインクラスに転送します
他にどのようなオプションがありますか?正しい方向へのポインタは大歓迎です。
上記の質問は、NHibernateを任意のフレームワークで使用する場合に本当に当てはまると思います。
csla - Web 上で実行中の CSLA アプリについて教えてもらえますか?
CSLA.Net アプリが Web 上でライブで実行されていることを教えてもらえますか?
silverlight - Silverlight/CSLAで遅延読み込みおよびキャッシュされたコレクションを作成する方法
CSLAを使用して作成された既存のデスクトップアプリ用にSilverlightフロントエンドを作成しています。私が問題を抱えていることの1つは、次のようなクラスの変換です。
コードには「SomeCollection.GetSomeCollection()」が追加されています。これは、すべてのDataPortalアクセスが非同期であるため、Silverlight側では機能しません。したがって、次のようなものから始める必要があります。
データの準備ができると、コールバックハンドラーが呼び出されます。私は確かにこれの結果をキャッシュすることができますが、それまでの間、SomeCollection.GetSomeCollection()呼び出しは失敗します。
非同期呼び出しが完了するまでブロックを試みましたが、今のところ運がありません。これは優れたソリューションではありませんが、データが読み込まれる前にSomeCollection.GetSomeCollection()が呼び出された場合、他に何をすべきかわかりません。私が考えることができる他の唯一のオプションは、SomeCollection.GetSomeCollection()がnullを返すことを許可し、次にすべての呼び出し元をnullの戻り値を処理するように変換することです。
何かご意見は?
(私はSilverlightとCslaに非常に慣れていないので、これを完全に間違った方法で行っている可能性があります)
c# - 価値のある CSLA の代替品はありますか?
私の会社では、大規模なビジネス アプリケーションを .NET に移植することに関心があります。デスクトップ版と Silverlight 版の開発を予定しています。私は主に CSLA フレームワークを調査しました (ロッキーの本をすでに途中で入手しました) が、少し過剰に設計されていることがわかりました。データ層側もそれほど洗練されていないように見えました。
CSLA が行っていることを行うと主張する他のフレームワークはありますか? ORM ツール (L2S、EF、NHibernate など) について話しているわけではありません。ビジネス ルールをサポートするフレームワーク、簡単な n 層アーキテクチャ、オブジェクトはデータベース駆動ではなくドメイン駆動、ビジネス オブジェクトのセキュリティなどに興味があります。 ...
必要な作業の一部を実行する小さなフレームワークを見つけることができることは知っていますが (エンタープライズ アプリケーション ブロックが思い浮かびます)、すべてが含まれているフレームワークを探しています。