您好
我一直在构建我的应用程序的后端(使用nHibernate进行数据访问)
到目前为止,我已经有一些简单的Web服务来操作我的数据,但现在我需要为我的应用程序开发一个Web UI(使用Web表单)。
我一直在寻找一些不同的Web框架(webformsMVP,spring.net web),以及一些客户端JS框架(knockout,angular),我可以我真正决定什么对我最好,以及如何将它全部整合
我希望得到你们的一些见解。
我想我的一般工作流程是这样的:
:一种。如何在视图模型和模型实体之间进行映射
我想我应该使用该权限的ID从DAO中检索未更改的实体(实际上将其存储在nHibernate的二级缓存中),并对其进行更改。
(另一种选择是将我正在编辑的实体存储在用户的会话中。但我担心这种缓存会与nHibernate的缓存产生双重性。)
的 B中。如何将视图模型上的更改转换为模型实体的更改
我想在改变模型实体的属性时有一些逻辑
例如,为了将员工从一个部门转移到另一个部门,我不想允许这个 -
department1.Employees.Remove(employee);
department2.Employees.Add(employee);
而是这个:
employee.MoveToDepartment(department2);
从视图模型转换为模型时,我担心这会变得复杂
对上述两个问题以及任何客户端/服务器端框架的任何想法都会受到关注
的 P.S。我的应用程序的一些快速背景:
- Web应用程序的一个页面将公司的结构(部门,部门等)显示为树,并允许用户单击和编辑不同的节点,以及拖放节点以更改其位置。 />
- 另一页显示当前库存状态(每个仓库 - 它有多少产品,当前在该仓库中有多少台机器等)
- (更多页面基本上显示数据并允许编辑......)
感谢
的Jhonny
答案 0 :(得分:0)
您可以查看Automapper您的实体映射。或者,您可以编写自己的实体映射器和实体更新器。然后,您可以在实体类中封装业务逻辑,例如Move To Department。
您的方法听起来不错,我可以推荐Webforms.MVP,因为这是一个很好的框架,用于编写可测试的WebForms应用程序,而无需滚动您自己的实现。