0

いくつかのベストプラクティスを実践するためだけに mvc アプリケーションを開発しています (すべてを「正しい」方法で実行しようとしています)。より正確に言うと、チャット サービス用のいくつかの ajax エンドポイントを使用して MVC アプリケーションを構築することを考えました。

もう少し柔軟にしたかったのでinterfaces、使用するオブジェクトの構造を定義するために を使用することを考えました。これらのインターフェイスは、DataLayer プロジェクトによって実装する必要があります。

ここで、Mvc-Project でこれらのインターフェイスを定義し、データレイヤーのものを別のプロジェクトに配置したいと考えました。ただし、これは循環参照につながりますが、これは悪い習慣だと思いました。

この問題を解決する「正しい」方法は何ですか? 私のアプローチは合理的ですか?

アーカイブしたいものを示すコード:

Mvc プロジェクト:

public interface IChatUser
{
    Guid    UserID  { get; }
    string  Name    { get; }
}

Datalayer プロジェクト (クラスの一部):

public class User : IChatUser
{
    private Guid _userID;
    public  Guid UserID
    {
        get
        {
            return _userID;
        }
    }
    public string Name
    {
        get
        {
            return this.LastName + " ," + this.FirstName;
        }
    }
}
4

1 に答える 1

1

NHibernateを使用しているだけではない理由はありますか?その場合、コントローラーは、実行する基本的なクエリのSessionオブジェクトにアクセスできます。

複雑なものは、個別のクエリオブジェクトまたはコマンドオブジェクトに分割されます。

ここで説明したものを使用して完全なMVCアプリを構築しました:http://ayende.com/blog/154081/limit-your-abstractions-you-only-get-six-to-a-dozen-in-the-entire-アプリと結果に非常に満足しました。

于 2012-07-04T12:55:57.660 に答える