面向3层Web应用程序的体系结构澄清

时间:2014-04-14 06:26:33

标签: asp.net architecture

我们计划将EXTJS框架用于表示层,该框架将调用基于WCF的Rest服务或WebAPI服务(Http服务)。我的要求是拥有3层架构(物理隔离),所以我的理解是我们需要将服务层放在另一台服务器上,并在IIS上托管服务,由不同IIS服务器上托管的表示层使用。 我对这种架构几乎没有怀疑。

  1. 我们是否应该使用Webform方法来托管EXTS库,因为在这种情况下,考虑到所有渲染逻辑都是由EXTJS完成的,ASP.Net MVC将无关紧要。

  2. 如果我们在另一台应该使用服务认证的服务器上托管服务。在这种情况下,我认为我们不能使用表单身份验证,因为Web和服务是单独托管的。

  3. 考虑到第三层是数据库服务器,是否真的需要在另一台服务器上托管服务层以使其成为三层。考虑到EXTJS库直接在浏览器上呈现,浏览器不是一个层。

1 个答案:

答案 0 :(得分:0)

由于没有人回答我会根据我从另一个论坛得到的研究和回答来回答自己。

  1. 我们也可以使用MVC方法,可以使用Controller方法返回要使用的EXTJS API的JSON结果。但缺点是这种方法我们不能在视图中使用强类型模型以及其他功能,如使用Html帮助程序和基于模型的自动验证。 使用这种方法,我们仍然可以使用MVC路由,或者可以完全使用单视图和ExtJs路由。

  2. 将您的Ext.js所需的服务放在Web层上,同时运行Webforms / MVC应用程序。如果需要,可以通过另一台服务器上的其他服务分离业务逻辑/数据逻辑(第二层)。不要直接从你的Ext.js调用这些。将表示保留在第一个/ Web层。我们可以使用表单身份验证在Web层和Windows身份验证中调用服务,以将服务从Webtier调用到第二层。

  3. 从服务器端的角度来看,浏览器并不是真正的层级。但是,采用现代方法,它是值得商榷的。