Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 3.5 NTier体系结构_Asp.net_Asp.net 3.5_Llblgen - Fatal编程技术网

Asp.net 3.5 NTier体系结构

Asp.net 3.5 NTier体系结构,asp.net,asp.net-3.5,llblgen,Asp.net,Asp.net 3.5,Llblgen,我正在使用asp.NET3.5和SQLServer2008构建一个web应用程序。我的客户希望它至少采用3层架构(物理层是分开的,意味着3层意味着3台独立的机器) 用户界面层:所有页面将部署在不同的web服务器上。此服务器将仅承载且仅承载asp.net页面或服务器组件 应用层:此服务器将承载业务逻辑,这是实现和部署所有业务逻辑的层。这一层将填补数据库和用户界面(UI)之间的通信空白 数据库层:单独的服务器将仅用于托管数据库 到目前为止还不错 实际上,我的客户愿意使用LLBLGen生成锅炉板代码,

我正在使用asp.NET3.5和SQLServer2008构建一个web应用程序。我的客户希望它至少采用3层架构(物理层是分开的,意味着3层意味着3台独立的机器)

用户界面层:所有页面将部署在不同的web服务器上。此服务器将仅承载且仅承载asp.net页面或服务器组件

应用层:此服务器将承载业务逻辑,这是实现和部署所有业务逻辑的层。这一层将填补数据库和用户界面(UI)之间的通信空白

数据库层:单独的服务器将仅用于托管数据库

到目前为止还不错

实际上,我的客户愿意使用LLBLGen生成锅炉板代码,并加快开发速度

我的问题是如何从asp.net(用户界面层)页面调用应用层可用的组件,因为这些应用层组件假定在数据库和UI之间进行通信

我已经使用逻辑分离开发了应用程序,其中UI和BL在同一台机器上。但是在不同的机器上,我将第一次这样做

因此,请帮助我,如果有任何好的教程或文章可用,请分享它

谢谢和问候
Shax

因为您没有提到应用程序的类型和使用场景(您可能需要多层体系结构的安全性),所以我不想评论客户端是否需要这样的东西。您可能会向他们建议,如果他们认为这是它的好处,那么这种配置将降低性能


我建议您使用该框架,这样您就不必担心部署场景了。我已经在许多不同的项目中成功地使用了多年,它将减轻您对架构的担忧,让您担心是否提供真正的功能。

@Shax-客户会来找您,因为您是专家,客户听到NTier到处乱扔,认为这正是他需要的,而事实并非如此。如果客户是这样一位专家,他不需要你的帮助,你应该放弃客户的要求。@Phill:是的,指导他们是他的工作,但认为他们也不知道自己在说什么也是不明智的。他们可能对构建应用程序有所了解,但只需要有人真正去做。我个人认为N-tier是一个不错的选择,因为它提供了一个清晰的关注点分离,简化了开发(知道您只与下面的层交谈会使许多决策变得更容易),并带来一个更易于维护和可扩展的解决方案。@Andy-他们可能知道或理解如何构建应用程序,但是,它很可能不适合他们想要构建的应用程序。OP将层表示为物理层中的3个不同服务器。但在您对我的回复中,您已经说明了各个层次,例如数据访问、业务、演示。如果我们谈论的是层,那么是的,我完全同意,但是OP陈述了物理层,这就是为什么我认为客户已经听到了这个术语,并且认为这是他们需要的,而很可能不是。(如果这有道理,对不起)朋友们,问题是客户非常清楚他们使用的术语,但他们不是开发专家。他们已经有了2001年在某处购买的产品,该产品是用VB6.0和经典asp编写的,但他们面临着很多问题,比如现在他们想将数据库移动到单独的机器上,但却不能,因为数据库连接字符串是在VB6.0组件中硬编码的,而且供应商不容易支持它因为它现在是一个老技术产品,而不是供应商正在推动他们为相同的产品购买.net版本等等。哎哟,听起来像是他们雇佣了一个经验很少的承包商,他决定了客户应该使用什么,现在你被它卡住了:(.将数据库移到自己的服务器上是可以的,但目前我认为将业务逻辑移到单独的层没有任何意义,您将不得不引入WCF服务或类似服务来在web服务器和应用层之间进行通信。您现在要处理DB-APP和APP web之间的延迟和带宽。这取决于流量您可能需要介绍一名网络工程师。单一网络连接将使您的系统陷入瓶颈。我支持使用Csla的建议。您希望n-tier 1)明确区分责任,Csla有助于引导您进入这一思维,2)您希望此配置具有可扩展性,这通常会降低性能,但总体而言,这会使系统更加可靠。朋友,这其中肯定涉及到安全部分。根据用户配置文件,需要显示特定屏幕或隐藏某些数据。我目前正在浏览LLBLGen在线文档,它似乎提供了许多我需要实现的东西,但再次强调。如何在层之间进行通信。我是否需要为此构建WCF服务。。。不能去CSLA,因为我已经说过,他们已经投资了LLBLGen和Telerik,他们希望我使用他们,而不是介绍新事物。请帮忙。抱歉,如果我又漏掉了一些东西。@Shax:Telerik用于您的UI控件和LLBLGen作为OR映射器的使用并不妨碍您使用CSLA。他们合作得很好。你的意思是我可以一起使用CSLA和LLBLGEN吗?你能为我提供一些指导吗?谢谢你可以查看Rocky的网站(lhotka.net),查询那里的CSLA论坛,购买他的书/电子书/视频。