基于小部件的MVC应用程序的体系结构

时间:2011-11-14 10:43:12

标签: asp.net-mvc widget knockout.js

我正在寻找针对我们计划使用ASP.NET MVC提供的外联网应用程序的应用程序架构的指针。

将有大约50个实体类型,大约200个用户。主要实体将有2M +记录。

用户分为小组,一组通常为2或3人。每个组都有不同的信息要求。因此,我们计划开发一些小部件,用户可以将这些小部件组合在一起以进行个性化应用。忽略窗口/窗口小部件管理的UI问题,有几种方法可以实现这个想法:

1)为每个小部件使用Ajax,并提供一些可能与Steve Sandersons knockout.js的同步。通过一些巧妙的计划,这可以解决一次在屏幕上同一字段的多个副本的一些问题。我不喜欢这种方法的是,许多小部件需要相同的数据,但会单独请求它。即使使用服务器端缓存来减少数据库查询,这仍然会产生大量不必要的http请求。

2)通过组装所有必需的小部件来构建页面服务器端。这类似于OrchardCMS所做的。我正在详细介绍一下。

3)将其构建为带有Websockets的HTML5 / JS应用程序,以管理通信。这感觉太新了。

所以:任何想法 - 之前已经解决了 - 如果是的话,在哪里/什么/如何。

1 个答案:

答案 0 :(得分:1)

为什么不选择#1和#2的组合。 #3听起来很诱人,但你会遇到浏览器支持问题(目前)。在渲染页面时,您知道页面所需的小部件的数量和类型。您可以使用窗口小部件所需的所有数据创建统一的XML文档。

知道所有数据后开始创建文档。请求服务器上的数据并缓存它。然后,您可以将此文档下载到客户端,其中每个小部件都可以查询单独的节点。小部件将在本地呈现,然后从文档中提取数据。