3层建筑?

时间:2009-10-21 06:55:55

标签: vb.net

使用VB.NET 2008

我想知道Windows应用程序的3层架构是什么?

任何人都可以举例说明如何使用3层架构在数据库中创建插入,删除,更新代码。

注意我不是要求真正的代码。请举个例子。

6 个答案:

答案 0 :(得分:1)

来自Multitier architecture

  

三层'[2]是客户端 - 服务器   用户的架构   界面,功能过程逻辑   (“业务规则”),计算机数据   开发存储和数据访问   并作为独立模块维护,   通常在不同的平台上。

答案 1 :(得分:1)

目前,正常的3层应用程序包括用浏览器运行的Javascript,CSS和HTML编写的用户界面,在Web服务器中运行的业务规则层,并且确实可以用VB.NET构建,以及在SQL和存储过程中编写的数据库服务器上运行的存储层。

现在可以在VB.NET中将用户界面层用作Windows应用程序,然后使用Web服务界面调用Web服务器上的业务规则层。这将为您提供比浏览器更大的灵活性,并且不需要学习尽可能多的API,但这并不常见。它实际上只能在企业情况下完成。

This article有一个简单的VB.NET应用程序,它是一个Windows GUI应用程序,它调用Google的Web服务API来进行搜索和检查拼写。这是用户界面层的一个很好的例子。然后检查this article以及在VB.NET中开发的Web服务的示例。这对应于业务规则层,在真正的3层应用程序中,它将基于SQL Server等数据库。如果您使用Access,那么它将不是真正的3层应用程序。数据库需要在自己的服务器上运行,并通过网络访问,以便被视为一个层。

3层应用程序的优点是您可以单独缩放每个图层,并且因为每个图层都更简单,所以缩放也更简单。 DBA可以扩展到数据库集群,业务规则层可以通过负载均衡器和多个服务器进行扩展,并且用户界面可以根据需要在尽可能多的客户端中进行复制。

答案 2 :(得分:1)

我不知道它是否是使用它的正确方法,但我经常以下列方式使用3层int:

  • 一个大型解决方案,项目名称
  • 一个dll项目,它与DB有连接,使用LINQ或者什么。仅验证DB
  • 的必填字段
  • 另一个DLL项目,它引用了与数据库相关的项目,并使用商务规则验证所有数据。有时您可能需要一个可以从GUI层使用的方法的repositorium类
  • 最后,GUI层可以是HTML或WINForms,它引用bussines层并调用所有appropiates方法,透明地传递数据并等待对bussines规则的验证。

您可以使用bool方法与每个图层进行通信,如果一切正常则返回true,并为每个可能的错误返回个性化异常,并在上层捕获它们。

答案 3 :(得分:0)

我发现理解它的最好方法是看一个例子。如果你去这里: http://www.codeproject.com/KB/vb/N-Tier_Application_VB.aspx

您可以下载一个示例并阅读演示文稿,以便在VB.Net中创建一个非常基本的3层应用程序。它有点旧,因为它是一个Visual Studio 2003项目,但它应该很容易跟随升级向导并启动并运行以检查它。

答案 4 :(得分:0)

我会告诉你它的要点。真正的速成课程。

你有三个层次:

  1. DAL - 数据访问层
  2. BRL - 业务规则层
  3. 演示文稿 - 表格等。
  4. 在DAL中,您可以配置应用程序连接数据库的方式,收集数据集的方式等。与数据访问有关的所有内容。

    在BRL中,您放置 程序将如何处理从DAL收到的数据。方法和其他事情都在这里。

    在演示区域,您只需简单地制作事物并从BRL中实例化。演示区域永远不必触及 DAL,这就是3tier布局的美感。你可以在不同的领域工作,而不是踩到其他人的脚趾。

答案 5 :(得分:0)

我想简要介绍一下这种编程风格,下次我会详细解释一下。

首先,3-Tire概念将您正在设计的程序或应用程序划分为3层,第一层用于在称为CRUD的操作中操作数据库,该操作代表{Create,Read,Update,Delete}来自数据库的数据,使用任何类型的数据库:例如Oracle,SQLserver,MySql等。这意味着您可以将应用程序与任何类型的数据库连接,而无需指定连接字符串到只有一个数据库,我们将获得有关此的更多详细信息下次。

第二层是业务层,包括用户数据验证和其他类似操作,您可以在其中处理业务规则和程序核心, 第三层和最后一层是表示层,它与用户输入和UI用户界面相关{输入的不同形式}

坦率地说,您可以将解决方案{程序,应用程序,网站}划分到子程序,以避免数据丢失,组织您的工作,并将您的应用程序的开发划分给团队成员。

在我的观点中,这应该是在开发中学到的,并且正如葡萄藤告诉我的那样,如果你想丰富你的知识和经验,那么你应该对这个重要的主题表示认可。