我们有一个基于 ASP.Net MVC3 的网络应用程序,用于索赔条目和管理。为简化起见,将索赔视为订单。声明可以有子对象,其子对象之一可以有子子对象。喜欢 ...
(即声明->项目->文件)
我们需要一个类似事务的机制。也就是说,在声明条目期间,用户可以添加/编辑/删除子对象或子对象。最后,他可以“接受”(提交)所有更改(对数据库)或“取消”(回滚/拒绝)所有更改。
我有哪些选项可以在技术上实现这个支持接受/取消机制的“事务性”功能解释。以下是我的一些想法——
获取整个 Claim 对象并通过序列化将其保存在会话中。所有更改都将在“内存中”对此声明对象进行,最终用户可以决定接受/取消。
为每个 entity(xxxx) 添加一个“xxxx_transit”表。所有操作都将在这个临时传输表上完成,当提交时,我们最终将更改应用到实际的 xxxx 表。
Knockout 方法- 将 Claim 模型存储在客户端,对其应用更改。UI 绑定将立即反映更改。最后在提交时 - 将更改应用于数据库。
我的评价
- 我们已经完成了,我们使用了 ASP.Net 会话状态服务,但是对象序列化会影响性能!
- 额外的复杂性值得吗?尤其是与#1 的性能提升相比。
- 我相信这会增加 GUI 层的复杂性和操作处理。安全吗?
你会推荐哪一个?如果误导,忘记我的想法,请分享你认为最好的?
谢谢你。