【发布时间】:2011-09-10 00:16:36
【问题描述】:
我正面临一个关于我将要研究的 Web 应用程序架构的决定。 我们是一个小团队,实际上我会独自工作(每个人都在做其他事情)。
此应用程序将包含基于ExtJS library 的前端构建
它将使用模型“加载页面,构建 GUI,永不刷新”。
在网络“桌面”上会有很多数据窗口、地图视图(使用 openlayers + GeoExt)和其他东西。
GUI 应该是灵活的,并允许每个用户修改(并保留)布局以满足他/她的需要。
应该可以将应用程序划分为模块/部分/ ...然后让特定组中的用户仅使用特定模块。也就是说,每一组用户 可以在网络“桌面”上提供不同的 GUI。
问题是:
首先,这种方法好吗?
会有很多来自客户端的 AJAX 调用, 这可能是个问题。如何处理客户端的代码复杂性?
到目前为止,我决定使用 dojo.require / dojo.provide 功能并将客户端代码划分为模块 (对于生产,它们将使用 dojo 构建系统组合在一起) 我正在考虑在客户端使用一种 IoC 容器,但还不确定是哪一种。
很有可能我会自己写一个,用JavaScript这样的动态语言应该不难。如何处理服务器上的 AJAX 调用?
我应该在服务器端使用 WCF 吗?还是只是普通的 ashx 处理程序?如何处理服务器端的代码复杂性?
我想使用 Spring.NET。这种方法可能有助于解决模块化问题。数据访问 - 在这里我很确定要使用什么: 对于 DAL 类,我将使用 nHibernate。然后我使用 Spring.NET 将它们与业务类组合在一起。
我真的很感激一些关于走哪条路的建议。
我知道很多技术,但我只使用了其中的一小部分。
我没有时间去探索所有这些并接受这个决定。
【问题讨论】:
-
我不认为 JS 的 IoC 是必要的。我还推荐 ASP.NET MVC 并提到如果没有 javascript,您的网站将无法运行。
-
“每个人都在做其他事情”。这听起来不是个好主意。我建议您至少在每个主题上成对开始工作,以防止任何人成为瓶颈。
-
还看看 WCF REST 功能...它大大简化了对 Web 服务的访问(因为它包括构建正确的 url)。此外,MS 还提供了“DataServices”(以前称为 Astoria)的概念,它允许为 CRUD 操作创建 Web 服务端点(其余兼容)。至少,为什么要使用 nHibernate 而不是保持 100% MS 技术(EF Code First 很棒:))
-
@Steven:即使我同意你的观点,这也不是问题:)
-
@Steve B:这就是这个 cmets 部分的美妙之处,我不必回答这个问题 ;-)
标签: javascript asp.net ajax architecture inversion-of-control