ASP.NET三层

时间:2009-09-30 05:34:12

标签: asp.net oracle three-tier

我想使用三层架构开发基于ASP.net和Oracle的应用程序,其中数据访问层将保存在完全不同的服务器(Linux)上。我之前发过一个问题,有人建议我使用General asp和NHibernate。在我启动Web应用程序之前,我想确定一下。请详细分享您的想法。

谢谢

2 个答案:

答案 0 :(得分:1)

我看到两个问题:使用什么分层和分层,以及使用什么技术。

分层:我有两个定义问题:

  • 当你说“等级”时,你的意思是物理层吗?对我来说,层是物理的东西,即服务器(或服务器集),但有时其他人对逻辑层使用相同的术语。
  • 数据访问层是您在.NET中编写的软件层,而不是实际的数据库(您将在Oracle / Linux上运行)。

通常,您具有在层上分发的逻辑层。 在层上分配图层的方式(如果我正确地阅读您的问题,则为您拍摄的图层):

  1. 浏览器:运行您的用户界面
  2. 网络服务器:运行演示文稿,业务和数据访问层
  3. 数据库服务器:运行存储“layer”
  4. 通讯:1<> 2:HTTP,2< 2> 3:本机数据库格式。

    技术:NHibernate是一个好主意,但如果你是O / RM世界的新手,可能会有点挑战。如果你去NH,请查看Fluent NHibernate的工作;这使您可以在C#中指定实体和数据库表之间的映射,而不是使用XML。如果您发现NHibernate有点令人生畏,请查看标准的Microsoft解决方案,例如Entity Framework。当前版本存在一些问题,但对于简单的系统而言,这些问题可能并不大。

    您是否考虑过使用ASP.NET MVC?如果是这样,S#arp架构是一个很好的起点(无论是MVC还是NHibernate)。另一个建议是看CSLA,也是一个开源架构。 CSLA在设计时没有考虑可测试性或关注点分离,但可能更容易grok

答案 1 :(得分:0)

您可以将ASP.NET Webforms或ASP.NET MVC用于UI以及用于业务逻辑和数据访问的其他层。以下是我的团队项目的分层/分层方式:

第1层:Windows Server 2003(IIS)

  • ASP.NET WebForms UI& WCF服务
  • 业务逻辑的C#库
  • 用于数据访问的C#库(使用Oracle Data Provider为.NET构建)

第2层:

  • 在Linux服务器上运行的Oracle数据库

我希望有所帮助。