0

我有一个项目需要我使用 ntier 方法设置一个 Web 应用程序。但是,由于我所做的大多数项目都是使用 1 层的网站,因此我对这种架构不熟悉。

我决定建立一个 3 层架构,即表示层、业务和数据访问层,最后是数据层。

我想知道,由于这些层位于不同的服务器机器中,它们应该如何通信?使用 Web 服务会帮助解决这个问题吗?

是否有任何简单的教程或课程可以完全教授这一点?从构建应用程序到部署在单独的服务器机器上。

4

3 回答 3

0

我认为是一个很好的教程。我建议您为您的项目使用 MVC 4 并遵循以下逻辑

http://www.codeproject.com/Articles/439688/Creating-ASP-NET-application-with-n-tier-architect

于 2013-04-24T11:22:08.930 回答
0

使用以下内容:表示层 --> 通过创建 Asp.Net 项目
业务逻辑和数据访问层 --> 通过创建 Web 服务项目。
SQL 数据库 --> 通过在安装 SQL 的机器上创建一个新数据库。

完成后:

  1. 在 SQL Studio 中设计数据库表。

  2. 在 BL & DAL 项目中,使用 Entity Framework 连接到您的 SQL DB,这将创建一个现成的方案,实际上将自动生成一个包含您需要的所有业务对象的 DAL。

  3. 在 BL 中为所有应该实现的方法创建方法签名(定义)。

  4. 在您的表示层中添加对您的 BL 和 DAL Web 服务的服务引用。

这需要时间,您需要阅读大量有关实体框架和 Web 服务以及如何利用它们来满足您的需求的内容。

于 2013-04-24T11:35:30.200 回答
0

如果它们位于不同的机器上,那么使用 Microsoft 技术的常见场景将是:

  1. User Interface(UI) 由ASP.NET
  2. Business Layer(BLL) 由 DLL 实现C#VB .NET 作为一堆 DLL实现
  3. Data Access Layer(DAL)作为关系数据库,即SQL 带有表的数据库,存储过程......加上类(一些DLL)来访问数据库。最佳实践是使用ORMsieEntity Framework处理Data Access LayerData Layer.

您在常见场景中的图层将以这种方式相互通信:

  • UI将与BLL常用的通信Web Services
  • BLL将与DAL常用的通信Web Services
  • DAL将与Database常用的通信TCP/IP

尽管n-Tier设计是最佳实践,但这并不意味着每一层都应该托管在不同的机器上(认为它更像是逻辑分离而不是物理分离)。例如,如果您将所有 3 层都保留在同一台机器上,并且只是将数据库托管在不同的服务器上,那么您不需要实现 Web 服务BLLDAL这会降低复杂性和实现时间以及其他好处,即更高的通信速度和安全性。

于 2013-04-24T12:00:03.870 回答