我正面临着我将要开展的Web应用程序架构的决定。 我们是一个小团队,实际上我将独自工作(每个人都在做其他事情)。
此应用程序将包含ExtJS library上的前端构建
它将使用模型“加载页面,构建GUI,永不刷新”
在网络“桌面”上会有很多数据窗口,地图视图(使用openlayers + GeoExt)和其他内容。
GUI应该是灵活的,并允许每个用户修改(和持久)布局以满足他/她的需要。
应该可以将应用程序划分为modules / parts / ...然后让特定组中的用户仅使用特定模块。换句话说,每组用户 可以在网络“桌面”上使用不同的GUI。
问题是:
首先,这种方法有用吗? 客户端会有很多AJAX调用, 可能这可能是个问题。
如何在客户端处理代码复杂性?
到目前为止,我已决定使用dojo.require / dojo.provide功能并将客户端代码划分为模块
(用于生产,他们将使用dojo构建系统放在一起)
我正在考虑在客户端使用一种IoC容器,但还不确定是哪一种。
我很可能会为自己编写一个,在JavaScript这样的动态语言中应该不难。
如何处理服务器上的AJAX调用? 我应该在服务器端使用WCF吗?或者只是普通的ashx处理程序?
如何处理服务器端的代码复杂性?
我想使用Spring.NET。可能这种方法可能有助于解决模块化问题。
数据访问 - 在这里我很确定要使用的内容: 对于DAL类,我将使用nHibernate。然后我使用Spring.NET将它们与业务类组合在一起。
我真的很感激有关哪条路的建议 我知道很多技术,但我只使用了很少的一部分 我没有时间去探索所有这些并且做出决定。
答案 0 :(得分:2)
我们使用这种类型的单页面界面,为我们的客户进行大规模的工作。 (我们的网站不是互联网网站)
如果我是你,我会从extjs,你的网络服务技术和nHibernte开始。
答案 1 :(得分:1)
我建议使用Razor的ASP.NET MVC 3而不是很多Javascript并调用Service,你可以在Controller中对Action执行ajax调用,这样可以让你拥有更多可维护的代码并使用像Ninject这样的IoC。 EF代替NHibernate。 但这是你的决定。
答案 2 :(得分:0)
我会考虑使用像Google Closure Compiler这样的工具,特别是如果你正在处理一个非常大的项目。我没有太多使用ExtJS的经验,但是JavaScript中的大型项目 hard ,像Closure Compiler这样的东西往往会让它变得更容易。