1

我想创建一个简单的应用程序,用户可以在其中注册自己的凭据,如名字、姓氏等。单击注册按钮后,它会将他带到邮件中以进行用户身份验证,在那里他将有一个链接和单击该链接,它将重定向到登录页面。我想实现它,但在 MVC3 中使用 3 层架构。我通过选择 MVC 模板创建项目并将其命名为演示文稿并获取 BLL 和 DAL 我应该做什么做?我已经创建了我的模型:

public class Register
    {
        public int Id { get; set; }
        public string  First_Name { get; set; }
        public string Last_Name { get; set; }
        public string Email_Address { get; set; }
        public bool Accept_Term { get; set; }
        public bool Male { get; set; }
        public bool Female { get; set;}
        public string Current_Location { get; set; }
    }
4

2 回答 2

4

创建一个Class Libraryfor yourBLL和一个Class Libraryfor your DAL,然后BLL在你的MVC项目中引用你的并DAL在你的项目中引用你的BLL。现在您的MVC项目将调用BLL,而后者又将调用DAL来实际进行数据存储/检索。在某些情况下,您BLL可以只是一个传递,而在其他情况下执行业务规则或其他操作。

您也应该考虑将您的Model类移动到一个单独的类Class Library中,这样您的所有层(MVCBLLDAL都可以“看到”并使用您的Model对象;这当然意味着所有层都需要对Model项目的引用。传递对象比为对象的每个值都带有参数的方法要容易得多。

于 2013-06-29T13:02:56.573 回答
0

我认为了解为什么需要 n 层架构很重要。如果您最重要的要求是简单,那么实际上不需要将您的应用程序拆分为 n 层。

但是,如果您需要灵活性,此选择将​​导致不利影响。另一方面,多层提供了灵活性,成本是构建它们所需的工作量。

作为一个为什么你想要一个 n 层架构的例子,想象一下这个场景。您使用 Entity Framework 4.x 构建应用程序。在您的数据访问层中。然后 EF 5.0 启动并且您想要升级。如果您的其他层完全不了解您正在使用的数据访问技术(应该如此),那么在将 DAL 升级到不同版本或数据库类型时应该很少有问题。我强调无知的部分。应用程序中的每一层都应该忽略其他层中的依赖关系,这将允许您构建一个解耦的可插拔架构。

这是一个很大的话题,如果您有兴趣了解更多信息,我建议您查看领域驱动设计技术。不要仅仅为了它而拥有 n 层。数据传输对象 (DTO) 是在这些自包含层之间传输数据的对象。这是必要的,因为 DAL 中的“Person”对象与业务层中的“Person”对象不同。DTO 在两个对象之间的映射。

看看http://www.dofactory.com/。您将看到一个简单的 n 层 MVC 应用程序,它具有多个 UI(winforms、MVC 等)与一个自包含的业务层对话。这也应该让您更好地了解将项目放在哪里以及为什么需要它们。

于 2013-06-29T17:24:35.017 回答