我面临着有关我将要工作的Web应用程序体系结构的决定。
我们是一个小团队,实际上我将独自工作(每个人都在做其他事情)。

该应用程序将由ExtJS library上的前端构建组成
它将使用“加载页面,构建GUI且永不刷新”模型。
在网络“桌面”上,将有很多数据窗口, map View (使用openlayers + GeoExt)和其他内容。
GUI应该是灵活的,并允许每个用户修改(并保留)布局以适合其需求。

应该可以将应用程序划分为模块/部件/...,然后允许特定组中的用户仅使用特定模块。换句话说,每组用户
可以在网络“桌面”上使用不同的GUI。

问题是:

  • 首先,这种方法好吗?
    客户会收到很多AJAX调用,
    可能这可能是个问题。
  • 如何在客户端处理代码复杂性?
    到目前为止,我已经决定使用dojo.require/dojo.provide功能并将客户端代码分为模块
    (用于生产时,将使用dojo构建系统将它们放在一起)
    我正在考虑在客户端使用一种IoC容器,但不确定哪一个。
    我很可能会为自己写一个,在像JavaScript这样的动态语言中应该不难。
  • 如何处理服务器上的AJAX调用?
    我应该在服务器端使用WCF吗?还是只是普通的ashx处理程序?
  • 如何在服务器端处理代码复杂性?
    我想使用Spring.NET。也许这种方法可以解决模块化问题。
  • 数据访问-我很确定要使用什么:
    对于DAL类,我将使用nHibernate。然后,我使用Spring.NET将它们与业务类组合在一起。

  • 我真的很感谢关于走哪条路的一些建议。
    我知道很多技术,但是我只使用了很少的一部分。
    我没有时间去探索所有这些,并且对这个决定感到满意。

    最佳答案

    我们执行这种类型的单页界面,在此我为客户大规模地工作。 (我们的网站不是互联网站点)

  • 这似乎对我们来说很好。您拥有的js越多,维护起来就越困难,因此,请尽可能多地进行自动js测试,并尝试以mvc方式分解js逻辑。 4.0应该可以简化这一过程。
  • 如果您想限制删除的代码,
  • Ext 4.0内置了此功能。如果您日复一日拥有相同的用户,那么我认为最好只是降低所有源(压缩和缩小)并对其进行缓存。
  • 我们发现asmx可以很好地工作。我对wcf没有什么反对,但是最后我看起来这似乎比它值得的麻烦更多。我知道他们最近做了很多改进。不过,asmx仍然可以工作(只需更改一些请求 header 并在客户端管理“d。”)。
  • 我们的服务器端数据访问层非常复杂,但是ajax调用的接口(interface)非常简单。您尚未真正给出足够的信息来回答这一部分。我将尽可能简单地开始,并经常进行重构。
  • 我们也在使用nHibernate。对我们来说很好。我们围绕它建立了一个DDD模型。但是,要使此功能正确,可能需要大量的工作(不确定经过几个月的工作是否可以正确实现)。

  • 如果您是我,那么我将从extjs,您的Web服务技术和nHibernte开始。

    10-01 03:52