36

私はかなり若い開発者であり、まだ私のキャリアのエミュレーション段階にあります。並行性や、作業単位を使用してビジネス層が永続性トランザクションを制御できるようにするなど、いくつかのトピックについて多くのことを読みました。これらのトピックを実装する、面倒ですが機能的なコードも実装しました。しかし、私は本当にエレガントな実装の実例を見たことがありません。私の周りには良いTDD、パターンに焦点を合わせた役割モデルがあまりないので、私はガイダンスのために外の世界を見ることを余儀なくされています。

だから、私はオープンソースのエンタープライズアプリドメインモデルのいくつかの素晴らしい例を探しています。できればc#で記述しますが、クリーンでエレガントなドメインモデルソリューションの良い例である限り、他の言語でも問題ありません。

私が本当に見たいもののいくつかは、並行性、ビジネスルールとオブジェクト検証、トランザクション/作業単位、および半透過的なロギングメカニズムのためのエレガントなソリューションです。また、ドメインモデルコードでの例外処理に関する実際のベストプラクティスのいくつかを知りたいと思います。

いくつかのオープンソースプロジェクトをランダムに引き裂き始めて、良いものと悪いものを解読しようとすることができることは知っていますが、ここの専門家コミュニティが、作業を合理化するために検討すべきプロジェクトのいくつかの良いアイデアを持っていることを望んでいました。

御時間ありがとうございます。

編集

設計と構築を容易にするフレームワークにはあまり興味がありません。フレームワークの選択、またはフレームワークを使用するかどうかは必要な考慮事項ですが、ここでの私の質問とはまったく別のものです。それらのフレームワーク自体がオープンソースであり、掘り下げるための非常に良い例でない限り。

私が探しているのは、「正しく理解した」プロジェクトであり、柔軟性があり、保守が容易なコードで現実世界の問題を解決し、自分の目で見て、その方法の例を理解できるようにすることです。これは、簡単な50行のチュートリアルの例ではありません。

4

12 に答える 12

11

http://www.codeplex.com/oxiteにある oxite cms のアーキテクチャがとても気に入りました。私はそのプロジェクトから多くのことを学びました。データ アクセスには linq2sql の代わりに nhibernate を使用していますが、うまく機能しています。もちろん、大規模なプロジェクトではありませんが、完璧なスタートです。CSLA は DDD パラダイムに従っていません。

上記の本「C# を使用した .NET Domain-Driven Design」Tim McCarthy 著 (Wrox Press) は非常に優れたものです。

DDD を理解するのに最適な本は、Eric Evans によるDomain-Driven Design: Tackling Complexity in the Heart of Softwareです。この本は、優れた DDD 設計の「バイブル」です。

さらに多くのリソースがhttp://dddcommunity.org/にあります。そこでは、Eric Evans を含む DDD の専門家によるビデオや記事をさらに見つけることができます。優れた DDD 設計のサンプル アプリケーションがありますが、残念ながら Java です :(

于 2009-08-19T18:54:34.397 に答える
4

Martin Fowler の本、Analysis Patterns をご覧ください。古い本なので、クラス図は UML ではなく、古いものです (幸いなことに、表と裏の表紙に図記号の説明が含まれています)。

また、C# コードはありません。実際、これはコードに関する本ではなく、ドメイン モデルに関する本であるため、コードはまったくありません。しかし、それには死ぬべきドメインモデルがあります!

于 2009-08-25T06:23:19.083 に答える
2

それはあなたが求めていたものとは正確には異なりますが、iDesignのJuval Lowyは、上記の多くの状況に対処するいくつかの素晴らしいWCFサンプルをコーディングしました。

Tim McCarthy(Wrox Press)による本「.NETDomain-Driven Design withC#」も興味深いかもしれません。

于 2009-06-30T16:13:57.970 に答える
1

CSLAとそのサンプル アプリケーションである ProjectTracker を見てみましょう。ここでは、CSLA を使用していくつかのプロジェクトを行ってきましたが、実際に BO をより強力で便利なものにするのに役立ちます。

ProjectTracker は実際のドメイン モデルではありませんが、実際のドメイン モデルが必要とする多くの状況をカバーしています。そのため、CSLA を利用する BO レイヤーが提供する機能を見れば、優れたドメイン モデルがどのようなものであるべきかがよくわかります。

于 2009-08-19T15:19:23.013 に答える
1

コンセンサスホームランの選択でこの質問に答えてもらいたいので、私はあなたに素晴らしい推薦をしたと言えたらいいのにと思います. しかし、objektivs が観察したように、

... 最良の例はおそらく IP に結び付けられており、OS として利用できる可能性は低いです。

ただし、オープンソース コードが豊富にある分野が 1 つあります。それは、ソフトウェア開発ツールです。

これは解決策です (私も調査を行っていません) が、この質問で確固たる選択ができず、自分でこれを追求したい場合は、私たちの多くが使用しているより成熟したツールから始めることをお勧めします。NUnitDotNetNukeScrewTurnWikiNAntなどを既に使用しています。それらにはいくつかの明確な利点がありますが、少なくともそのドメイン モデルに (比較的) アクセスできるようになっていることは重要です。

于 2009-08-24T20:00:55.943 に答える
1

Rob Connery (MVC Storefront および Weke Road ブログ) http://blog.wekeroad.com/は、最近 DDD に取り掛かっています。MVC Storefront アプリは、彼の学んだことを反映するように変更される可能性があります。いずれにせよ、彼はこのトピックに関する優れた資料をいくつか持っています。

Web サイトhttp://www.domaindrivendesign.orgには C# サンプル アプリがあります。

DDD について 1 つ。それは、それが書かれているビジネスと(肯定的な意味で)密接に結びついている傾向があります。その結果、最良の例はおそらく IP に縛られており、OS として利用できる可能性はほとんどありません。

私がよく目にするデザインは貧血ドメイン モデルです。

于 2009-08-24T05:29:10.323 に答える
1

私は最近、MVC、nHibernate、AutoMapper を使用したフォーラム アプリケーションの構築に関するチュートリアルに出くわしました。ソース コードは、Web アプリ、ドメイン モデル、およびリポジトリ/サービスでの NH/FluentNH の使用に関する優れた例とともに、非常に適切に記述され構造化されていることがわかりました: http:// mattias-jakobsson.net/Item/45/Building%20a%20forum%20application,%20Part%209

于 2009-08-26T11:29:33.973 に答える
0

dofactory GoF サイトを見てみましょう。 非常に低価格で購入できる例がたくさんあります。次のようなものが
あり
ます 。パターン」と「Head First Design パターン」

于 2009-08-20T17:31:02.633 に答える
0

私は現在、StuctureMapFluent NHibernateAsp.net MVCAutoMapperCastle、およびxValフレームワークを使用するプロジェクトに取り組んでいます。サンプル プロジェクトの Nerd Dinner と Code Camp Server から助けを得ています。これらのフレームワークについて質問がある場合はお知らせください。

http://code.google.com/p/codecampserver/

http://nerddinner.codeplex.com/

于 2009-08-26T14:05:38.247 に答える
0

キャッスル プロジェクトの見直しを検討しましたか?

Castle プロジェクトより 「Castle は、エンタープライズおよび Web アプリケーションの開発を簡素化することを目指す .net 用のオープン ソース プロジェクトです。Castle は、一連のツール (連携または独立して動作) と他のオープン ソース プロジェクトとの統合を提供することで、より多くのことを実現するのに役立ちます。より少ないコードで、より短い時間で実行できます。」

于 2009-08-20T09:42:44.580 に答える