我的公司有一个第三方网络服务,我们正在设计一个前端。此web服务使用的“对象”非常大(并且根据创建的子实体的数量而变化)。web服务不公开提交/加载子实体的方法,只公开完整的对象层次结构。
UI本身被分成许多子屏幕和主/详细视图,以便能够高效/轻松地编辑大量数据。
问题是在哪里存储您当前未查看的所有数据。
对于大型记录,执行web服务提交最多需要30秒,因此使用web服务进行间歇性数据存储是不可行的。
发布于 2013-05-22 14:34:52
您可以考虑使用开箱即用的.Net的SessionState和SQL persistence mode来缓存web服务数据,尽管您确实需要确保您有一个从数据库中清除过期数据的策略。所有存储在SessionState中的对象都需要是Serializable的。
此外,除了使用外部web服务的实体结构(例如,由.Net添加的服务引用生成的可序列化的代理实体)之外,您还应该考虑为您的屏幕构建自己的自定义类层次结构(即自定义视图模型),然后构建桥接,以便在从web服务初始获取之后将web服务图形映射/投影到您的视图模型,然后在用户完成图形更新后再次映射/投影到web服务实体。LINQ非常适合这个目的,如果您还没有偏离web服务类和属性命名标准的话,也可以使用AutoMapper。
https://stackoverflow.com/questions/16684726
复制相似问题