我是MVC的新手。我想将我的数据对象放在与主MVC项目不同的项目中。我是否只需将所有类和文件从我的'models'文件夹移动到我的新项目,然后在我的MVC项目中添加对新数据项目的引用?那么我如何在我的控制器(仍然在MVC项目中)以及我的视图中使用模型?
答案 0 :(得分:2)
你正朝着正确的方向前进。事实上,对于除了最琐碎的项目之外的所有项目,我喜欢将我的模型放在一个单独的类库中。然后,正如您所提到的,您可以从MVC项目中引用类库并使用您的模型类。好处是,一旦您在类库中准备好您的模型,您就可以“暴露”到任何类型的表示层,例如您的MVC项目或Windows Phone 7,或通过WCF公开。
请记住,虽然存储库不是您模型的一部分。它们是一个持久性问题,它们应该只进行CRUD操作,简单明了。任何类型的操作都应该放在模型层中。
答案 1 :(得分:0)
您可以使用适合您的实施技术的工具创建库。例如,使用Java,您将创建包含模型的jar。您可以将罐子放在使用它们的任何项目的类路径上;一旦你这样做,你就可以访问图书馆了。
如果您想重用他们在多个地方实施的模型对象和业务需求,这是一个很好的(好的)想法。也许您希望客户使用您的模型API来实现他们自己的各种客户端,例如。
您可以将模型层维护为自己的项目,或将其保留在“主”项目中,并构建流程以生成所需的工件。您没有给我们足够的信息来给出最佳方法的答案。
我可以这样说:大多数项目都从一个项目中的所有层开始。如果项目的一部分变得非常复杂,您可以重构单独的项目 - 在我看到的一些项目中,Web客户端非常复杂,无法成为自己的项目,拥有自己的开发团队(以及自己的MVC层)。在其他项目中,整个MVC堆栈都在一个项目中。请注意,您不需要MVC中的M位于单独的项目中以遵循范例。您只需处理正确图层中的所有问题。