我一直致力于拆分Web应用程序的应用层和Web层.在应用层中,我设法将业务逻辑分离为使用WCF代理公开的一堆服务.问题是这些服务与另一个使用大型CLR对象作为其主要通信方式的遗留应用程序进行通信.为了保持快速,我在第一次创建对象后,一直在会话中保留此对象的副本.现在我知道WCF可以进行会话,但是会话存储是按服务进行的,而我的业务逻辑现在被分成多个服务(应该是这样).
现在的问题是:
这可能不是第一次有人在服务器上拥有大型业务对象.不幸的是,我确实需要为每个用户缓存此对象(因此会话).
答案很明显,我只是没有看到它.请帮忙!
如果您希望能够将应用程序分散到整个农场中,那么将事物分解为子服务似乎是一个好主意。然而,重要的是要记住,每当一个对象至少跨越应用程序域边界时,它就必须被复制到内存中。
这完全取决于对象有多大以及它保存的数据类型。
如果您不想传递该对象,因为它太大,您可能需要为接收该对象的服务创建一个查询 API。通过这种方式,您可以操作该对象,而无需进行昂贵的序列化或远程处理。
| 归档时间: |
|
| 查看次数: |
10017 次 |
| 最近记录: |