我正在开发一个mvc应用程序,只是为了练习一些最佳实践(试图以'正确'的方式做所有事情)。更确切地说,我想到了为聊天服务构建一个带有一些ajax端点的MVC应用程序。
我想让那个更灵活一点,所以我想用interfaces
来定义用过的对象的结构。然后,这些接口应由DataLayer项目实现。
现在我想在Mvc-Project中定义这些接口,并将数据层内容放在一个单独的项目中。这会导致循环引用,我认为这是不好的做法。
解决此问题的“正确”方法是什么?我的方法合理吗?
一些代码显示我想要存档的内容:
Mvc Project:
public interface IChatUser
{
Guid UserID { get; }
string Name { get; }
}
Datalayer Project(类的一部分):
public class User : IChatUser
{
private Guid _userID;
public Guid UserID
{
get
{
return _userID;
}
}
public string Name
{
get
{
return this.LastName + " ," + this.FirstName;
}
}
}
答案 0 :(得分:1)
你是不是只使用NHibernate?如果您是控制器,则可以访问要运行的任何基本查询的Session对象。
复杂的东西被分解成单独的查询或命令对象。
我们使用这里讨论的内容构建了一个完整的MVC应用程序:http://ayende.com/blog/154081/limit-your-abstractions-you-only-get-six-to-a-dozen-in-the-entire-app并对结果非常满意。