我有一个项目需要我使用 ntier 方法设置一个 Web 应用程序。但是,由于我所做的大多数项目都是使用 1 层的网站,因此我对这种架构不熟悉。
我决定建立一个 3 层架构,即表示层、业务和数据访问层,最后是数据层。
我想知道,由于这些层位于不同的服务器机器中,它们应该如何通信?使用 Web 服务会帮助解决这个问题吗?
是否有任何简单的教程或课程可以完全教授这一点?从构建应用程序到部署在单独的服务器机器上。
我有一个项目需要我使用 ntier 方法设置一个 Web 应用程序。但是,由于我所做的大多数项目都是使用 1 层的网站,因此我对这种架构不熟悉。
我决定建立一个 3 层架构,即表示层、业务和数据访问层,最后是数据层。
我想知道,由于这些层位于不同的服务器机器中,它们应该如何通信?使用 Web 服务会帮助解决这个问题吗?
是否有任何简单的教程或课程可以完全教授这一点?从构建应用程序到部署在单独的服务器机器上。
我认为是一个很好的教程。我建议您为您的项目使用 MVC 4 并遵循以下逻辑
http://www.codeproject.com/Articles/439688/Creating-ASP-NET-application-with-n-tier-architect
使用以下内容:表示层 --> 通过创建 Asp.Net 项目
业务逻辑和数据访问层 --> 通过创建 Web 服务项目。
SQL 数据库 --> 通过在安装 SQL 的机器上创建一个新数据库。
完成后:
在 SQL Studio 中设计数据库表。
在 BL & DAL 项目中,使用 Entity Framework 连接到您的 SQL DB,这将创建一个现成的方案,实际上将自动生成一个包含您需要的所有业务对象的 DAL。
在 BL 中为所有应该实现的方法创建方法签名(定义)。
在您的表示层中添加对您的 BL 和 DAL Web 服务的服务引用。
这需要时间,您需要阅读大量有关实体框架和 Web 服务以及如何利用它们来满足您的需求的内容。
如果它们位于不同的机器上,那么使用 Microsoft 技术的常见场景将是:
User Interface
(UI) 由ASP.NET
Business Layer
(BLL) 由 DLL 实现C#
或VB
.NET
作为一堆 DLL实现Data Access Layer
(DAL)作为关系数据库,即SQL
带有表的数据库,存储过程......加上类(一些DLL)来访问数据库。最佳实践是使用ORMs
ieEntity
Framework
处理Data Access Layer
和Data Layer
.您在常见场景中的图层将以这种方式相互通信:
UI
将与BLL
常用的通信Web Services
。BLL
将与DAL
常用的通信Web Services
。DAL
将与Database
常用的通信TCP/IP
。尽管n-Tier
设计是最佳实践,但这并不意味着每一层都应该托管在不同的机器上(认为它更像是逻辑分离而不是物理分离)。例如,如果您将所有 3 层都保留在同一台机器上,并且只是将数据库托管在不同的服务器上,那么您不需要实现 Web 服务BLL
,DAL
这会降低复杂性和实现时间以及其他好处,即更高的通信速度和安全性。