Closed. This question is opinion-based。它当前不接受答案。
想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
去年关闭。
我正在尝试使用LinqToSql和MVP模式,并且在设置良好的设计时遇到了麻烦。我正在使用Asp.net 3.5(不是MVC)
这是一个例子
我在想
视图和控制器非常薄,我猜这很好。
“模型”可以访问视图,这不好吗?
我应该引入DTO对象还是应该使用LinqToSql生成的实体。
请提供对设计的反馈。
想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
去年关闭。
我正在尝试使用LinqToSql和MVP模式,并且在设置良好的设计时遇到了麻烦。我正在使用Asp.net 3.5(不是MVC)
这是一个例子
public interface IMyBusinessCardView
{
string Field1 { get; set; }
string Field2 { get; set; }
string Field15 { get; set; }
}
public class MyBusinessCardPresenter
{
private IMyBusinessCardView _view;
private MyBusinessCard _myCard;
public void ViewClickedSave()
{
_myCard.SaveNewBusinessCard(_view);
}
public void LoadView()
{
_myCard.LoadMyBusinessCardToView(_view);
}
}
public class MyBusinessCard
{
public void SaveNewBusinessCard(IMyBusinessCardView view)
{
using (var context = new DataContext())
{
var card = new BusinessCard()
{
Field1 = view.Field1
};
context.BusinessCards.InsertOnSubmit(card);
context.SubmitChanges();
}
}
public void LoadMyBusinessCardToView(IMyBusinessCardView view)
{
// Query using Linq to Sql and set in view
view.Field1 = card.Fields1;
}
}
我在想
视图和控制器非常薄,我猜这很好。
“模型”可以访问视图,这不好吗?
我应该引入DTO对象还是应该使用LinqToSql生成的实体。
请提供对设计的反馈。
最佳答案
在MVP中,大部分工作应在演示者中完成;对演示者的了解越少,那就越好。我还没有看到模型在视图中起作用的任何内容。我已经看到主持人在哪里进行所有协调。在一个页面中,可能会有多个演示者分布在逻辑周围。
签出其中的图像以获得两种类型的MVP模式(被动视图和监督控制器):http://www.yeejie.com/blog/post/2009/01/19/MVP-Passive-View-Supervising-Controller-Presentation-Model.aspx
在此示例中,即使视图在监督控制器中访问模型,它实际上也不会在视图上运行。
编辑:刚刚遇到了这个框架:http://webformsmvp.codeplex.com/作为一个实现。
HTH。
关于c# - Linq to Sql设计和MVP,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2287563/
10-12 01:08