【问题标题】:Separate solution into different projects将解决方案分成不同的项目
【发布时间】:2012-10-08 09:08:05
【问题描述】:

我目前正在学习 ASP.Net MVC;我正在使用带有 MVC4(这是最后一个版本)的 Visual Studio Express 2012,我对这些东西完全陌生。我的目标是将一个巨大的 Web 应用程序重写为 MVC,所以我被告知使用代码优先的方法将我的主要解决方案分成 3 个项目:

  • 核心(我猜是模型和控制器)
  • 用户界面(视图、脚本和内容)
  • 以及数据库(将使用 Entity Framework 5.0)

我对 MVC 非常熟悉,但不会将内容分成不同的项目。现在我有点迷路了,我不知道该怎么做,应该参考谁,在哪里,如何等。

【问题讨论】:

  • 我不确定这里的编辑是怎么回事。我已经恢复了原来的问题。将MVC之类的词标记为代码是不对的,原题对+的使用已经正确显示为项目列表。
  • @David Scoresby,我可以向您发送此要求的 pdf。所以您可以给我您的电子邮件 ID 吗?

标签: asp.net-mvc


【解决方案1】:

您的解决方案可以这样构建:

  1. UI - ASP.NET MVC 应用程序项目,包含控制器、视图、视图模型、域模型和视图模型之间的映射逻辑、脚本、样式……

  2. DAL(EF 5.0、EF 自动生成的域模型、数据上下文等)特定于数据检索的所有内容

UI 层随后将引用 DAL 层。

有些人可能还会选择将控制器、视图模型和映射逻辑外部化到第三层,而第三层又将引用 DAL 层。在这种情况下,UI 层将引用其他两个层。

【讨论】:

  • 我现在的问题是如何做到这一点,我的意思是要移动/不移动哪些文件夹(全局,例如 app_start),什么项目应该引用另一个,等等...
  • 您从一个空的 ASP.NET MVC 项目模板开始。这样你就不需要搬出任何东西,因为什么都不存在。您将类型类库的第二个项目添加到您的解决方案中,您可以在其中放置所有 EF 特定的东西。然后让 ASP.NET MVC 应用程序项目引用包含 DAL 逻辑的类库。然后你就可以开始在你的主项目中添加控制器了。
  • 您不应移动 Views、Content 和 Script 文件夹。它们必须是 ASP.NET MVC 项目的一部分。如果需要,您可以将控制器和视图模型移动到第三个项目中。然后 ASP.NET MVC 项目将引用 DAL 和 Core 项目。 Core 项目将仅引用 DAL 项目。
  • 你不需要告诉它任何事情。默认情况下,ASP.NET MVC 控制器工厂将在所有引用的项目中查找派生自 Controller 的公共类。因此,例如假设您保留了默认路由,当用户尝试导航到/home/index 时,ASP.NET MVC 将查找公共类名称HomeController。如果你在 ASP.NET MVC 项目中引用了 Core 项目,它会找到它,实例化它并使用它。就视图模型而言,由于它们由您的控制器使用,您仍然不需要显式配置任何特定的内容。
  • 为了保留一些典型的 VS Web Project 功能,您可以从 empty ASP.NET MVC 模板开始创建您的 child 项目(而不是类库之一),然后删除一些不需要的文件。见this blog post
【解决方案2】:

这里有教程:http://www.asp.net/mvc 它确实帮助我了解了 MVC 的基础知识,但请注意 - 有时视频中缺少某些部分,但您可以找到其他地方不容易提供的代码。

祝你好运:)

教程用于先展示代码。

【讨论】:

  • 这些教程的问题在于它们使用了Visual Studio提供的基本MVC结构,我不会使用。
【解决方案3】:

使用 Visual Studio 空白解决方案模板创建一个空解决方案

添加解决方案文件夹(文件夹名称将是您的项目名称)

然后右键单击该文件夹并选择添加项目,然后选择“类库”(用于 c# 类域逻辑)

再次右键单击文件夹并选择添加项目,然后选择 asp.net mvc3 模板

然后以同样的方式将测试模板创建为新项目。

更多信息可以关注本书http://www.apress.com/9781430234043

【讨论】:

  • 谢天谢地,该链接似乎不再有效,未经授权下载商业书籍。如果合法,请澄清。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多