我目前正在开发一个大型实时OLAP应用程序。所有数据都保存在RAM(几千兆字节)中,常见任务涉及对大量数据进行粗暴扫描(这很好)。处理结果通过Web服务(单例/多线程)公开,并使用基于Silverlight的客户端显示。
问题是各种客户需要不同的功能/算法,我不知道如何在服务器端提供可扩展性。对于客户端(Silverlight),我可以使用MEF / Prism,但我不确定在服务器上解决此问题的好方法。
请注意,理想情况下,其他网络服务应该对拥有大数据模型的主/当前服务的数据进行直接访问(即不进行编组)。
有没有:
a)框架/库
b)模式
c)良好的实践这有助于我模块化应用程序并选择所需的模块及其部署相对容易吗?
答案 0 :(得分:1)
听起来像是依赖倒置是必需的:通过定义接口来隔离系统的逻辑部分(算法等),然后使用DI / IoC框架在运行时(或应用程序启动等)加载所需的实现。
我没有使用Ninject,但很多人都喜欢它,所以你可以尝试一下;还有Spring.Net。
良好做法:
您还可以使用属性方法构建一个UI,让用户选择他们想要的UI;我将它用于我构建的开源Web应用程序框架:http://www.morphological.geek.nz/Morphfolia/Capabilities/AttributeDriven.aspx