如何将Mvc电影应用程序转换为3层(项目:数据,商业和网络)



我已经从http://www.asp.net/mvc在此示例应用程序中包含单层。但我想让三层应用程序是DataLayer、BusinessLayer和WebLayer。

有人对此有想法吗?

任何答案或建议都将不胜感激!

谢谢,Imdadhusen

您可以在Visual Studio中使用任何新的MVC向导来创建MVC应用程序。这将成为UI层。您可以将此项目命名为Movie.UI。完成此操作后,您可以转到"文件"|"添加"|"新建项目…"。。。并为您的数据访问层添加类库项目。您可以将此项目命名为Movie.Data。然后重复此步骤,并将另一个类库项目添加到您的解决方案中,该项目将用于您的业务逻辑层(即Movie.business)。

一旦解决方案中包含了所有三个项目,就可以在它们之间添加必要的引用。通常,您的UI项目将引用您的业务层项目,而业务层项目将依次引用您的数据访问项目。

更新

你所指的这种沟通正是你通过引用一个项目所实现的。当您将引用从项目a添加到项目B时,您为项目a建立了一种从项目B访问公共类型的方法。

我已经设置了最简单的示例来展示如何在项目之间进行通信:

在Movie.Data项目中,您添加了一个MovieRepository类:

MovieRepository.cs

namespace Movie.Data
{
    public class MovieRepository
    {
        public string[] GetMovies()
        {
            return new[] 
            { 
                "Gone with the Wind", 
                "Back to the Future", 
                "The Godfather", 
            };
        }
    }
}

然后在你的Movie.UI项目中,你首先需要添加一个对你的电影的引用。数据项目:

  1. 右键单击"引用"
  2. 单击"添加引用…"
  3. 在"项目引用"下,选择"Movie.Data"

最后,你的Movie.UI项目(为了简单起见,我把它做成了一个控制台应用程序):

程序.cs

using System;
using Movie.Data;
namespace Movie.UI
{
    class Program
    {
        private static MovieRepository _repo = new MovieRepository();
        static void Main(string[] args)
        {
            foreach (var movie in _repo.GetMovies())
            {
                Console.WriteLine(movie);
            }
        }
    }
}

希望这能有所帮助。

最新更新