[我的团队已被赋予任务,以创建遵循task-based UI的应用程序(不一定使用CQRS)。我真的很喜欢一个可以帮助用户轻松完成常见任务的UI,但是这个应用程序的很多部分(对我来说)确实“感觉”到像典型CRUD界面的工作(例如:目录中产品的所有详细信息) )。
此时,我们需要基于任务的良好UI的示例,以帮助我们了解可能的方法。您在互连网上看到了什么?
我认为这符合基于任务的用户界面。
生成基于任务的UI的最简单方法是保护模型的所有属性。即删除所有的二传手。
来自此(伪代码):
public class TodoTask
{
public Date getDateAssigned();
public void setDateAssigned(Date);
public string getAssignedTo();
public void setAssignedTo(string);
}
对此:
public class TodoTask
{
public Date getDateAssigned();
public string getAssignedTo();
public void AssignTo(string userId);
}
您无法再创建基本的CRUD应用。您必须执行任务(Assign()
)才能更新模型。
首先删除所有设置器,然后分析每种模型应该执行的操作(任务)。>>
然后您都准备好了。
我已经在博客上发表了它:http://blog.gauffin.org/2012/06/protect-your-data/(滚动至底部以查看CRUD与基于任务的模型)
Microsoft Money 2000是Microsoft的一个示例(尽管他们将其称为归纳用户界面
我想我真的不认为UI看起来是基于任务或基于CRUD的(尽管Dmitry的示例确实演示了基于任务的示例-许多命令)。在基于任务的UI与基础域和数据模型的交互方式方面,我会看到更多。如果您的交互只不过是一个典型的现成的MVC应用程序,该应用程序具有用于Get / List / Insert / Update / Delete的操作方法,那么您正在构建一个基本的CRUD应用程序。但是,如果您放弃了那些默认的操作方法并创建了对应用程序有意义的操作/命令(例如,将商品添加到购物车,取消激活类等),那么这将更多地带入基于任务的UI世界。