【发布时间】:2011-02-21 20:47:59
【问题描述】:
我正在使用 asp.net 3.5,sql server 2008 构建一个 Web 应用程序。我的客户希望它采用至少 3 层架构(层在物理上是分开的,意味着 3 层意味着 3 台单独的机器)。
用户界面层:所有页面将部署在不同的 Web 服务器上。此服务器将仅托管且仅托管 asp.net 页面或服务器组件。
应用层:此服务器将承载业务逻辑,这是所有业务逻辑将被实施和部署的层。这一层将填补数据库和用户界面(UI)之间的通信差距。
数据库层:单独的服务器将仅用于托管数据库。
到目前为止一切顺利。
实际上,我的客户愿意使用 LLBLGen 进行样板代码生成并加快开发速度。
我的问题是如何从 asp.net(用户界面层)页面调用应用层可用的组件,因为这些应用层组件假设在数据库和 UI 之间进行通信。
我使用 UI 和 BL 在同一台机器上的逻辑分离开发了应用程序。但在不同的机器上,我将第一次这样做。
所以请帮助我,如果有任何好的教程或文章,请分享。
感谢和问候 沙克斯
【问题讨论】:
-
@Shax - 客户来找你是因为你是专家,客户听到 NTier 到处乱说,认为这是他需要的,其实不是。如果客户是这样的专家,他不需要你的帮助,你应该回击客户的要求。
-
@Phill:是的,指导他们是他的工作,但认为他们也不知道自己在说什么也是不明智的。他们可能了解构建应用程序,但只需要有人实际去做。我个人认为 N 层是要走的路,因为它提供了明确的关注点分离,简化了开发(知道你只与紧接在下面的层交谈可以让许多决策更容易),并且它导致更容易维护和可扩展的解决方案。
-
@Andy - 他们可能知道或了解如何构建应用程序,但同样很可能不适合他们想要构建的应用程序。 OP 将层声明为物理层,3 个不同的服务器。但是在您对我的回复中,您已经说明了层,例如数据访问、业务、演示。如果我们谈论的是层,那么是的,我完全同意,但是 OP 声明了物理层,这就是为什么我认为客户已经听说过这个术语并认为这是他们最可能不需要的东西。 (如果有道理,对不起)
-
朋友们,问题是客户非常清楚他们使用的术语,但他们不是开发专家。他们已经有一个他们在 2001 年购买的产品,它是用 VB6.0 和经典的 asp 编写的,但是他们面临着很多问题,比如现在他们想将数据库移动到单独的机器上,但因为数据库连接字符串而不能在 vb6.0 组件中进行了硬编码,并且供应商并不容易支持它,因为它现在是一种旧的技术产品,而供应商正在推动他们为同一产品购买 .net 版本等等等等。
-
哎呀,听起来他们雇佣了一个经验不足的承包商,他决定了客户应该使用什么,现在你被它困住了:(。将数据库移到它自己的服务器上很好,但是目前我认为将业务逻辑移动到单独的层没有意义,您将不得不引入 WCF 服务或类似的服务来在 Web 服务器和应用程序层之间进行通信。您现在需要应对 DB-APP 之间的延迟和带宽, 和 App-Web。根据站点的流量,您可能需要引入网络工程师。单个网络连接将成为您系统的瓶颈。
标签: asp.net asp.net-3.5 llblgen