Asp.net mvc Visual Studio解决方案“;“设计”;对于多个项目

Asp.net mvc Visual Studio解决方案“;“设计”;对于多个项目,asp.net-mvc,visual-studio-2010,Asp.net Mvc,Visual Studio 2010,我目前正在jquerymobile中构建一个mvc4移动站点,以补充常规桌面版本(内置mvc3) 我为移动站点的解决方案添加了一个项目(因此我有两个项目) 因为我可以重复使用大多数模型,所以我只是通过将这些模型包含在我的新移动项目中,从原始项目中获取它们 我对.NETMVC非常熟悉,所以我需要您的指导,告诉我在多个项目中的最佳实践,以及在部署时可能遇到的问题 Im计划在子域(例如mobile.domain.com)下或以domain.com/mobile的形式部署此移动站点 移动项目在部署后是否

我目前正在jquerymobile中构建一个mvc4移动站点,以补充常规桌面版本(内置mvc3)

我为移动站点的解决方案添加了一个项目(因此我有两个项目)

因为我可以重复使用大多数模型,所以我只是通过将这些模型包含在我的新移动项目中,从原始项目中获取它们

我对.NETMVC非常熟悉,所以我需要您的指导,告诉我在多个项目中的最佳实践,以及在部署时可能遇到的问题

Im计划在子域(例如mobile.domain.com)下或以domain.com/mobile的形式部署此移动站点

  • 移动项目在部署后是否仍能够访问模型

  • 您是否以某种方式部署了整个解决方案?在这种情况下,您如何决定移动项目应该驻留在特定的子域或文件夹中

  • 仅仅引用原始项目中的模型/类是一个明智的想法,还是会以某种方式降低灵活性?我想另一种方法是将模型复制到移动项目的“模型”文件夹中

  • 你会怎么做

  • 致意 米凯尔

  • 是的,但是您也可以获得整个桌面组装代码
  • 这是语义学,你可以用任何一种方法。对消费者来说,什么更容易?也许有自己的子域,所以m.yoursite.com
  • 您可以将通用模型分解为两个站点都引用的自己的项目。这将允许您做出影响两者的更改,并且您可以独立地发布它们

  • 一个web项目不应该引用另一个。可以将模型移动到两个web项目都引用的另一个库中。你不需要复制你的代码


    我假设您需要一个单独的项目,因为您不想重复使用您的操作。没有法律规定你不能根据用户使用网站的方式返回不同的视图。只需将不同的路径传递给
    View()
    方法。这样,你就不会复制所有的控制器逻辑、认证逻辑等。

    你应该考虑为你的桌面和移动站点使用一个单一的站点。您可以根据经验交换视图。您还将支持深度链接,因为从桌面站点共享的链接将转换为移动站点。这将降低很多复杂性,因为你总是同时考虑你的移动体验和桌面,因为它们共享相同的控制器,但只是有不同的视图。@Matty在结合网站方面有很好的观点。看看Hanselman在这里的介绍。我并没有真正考虑过这一点,但显然这是最好的解决方案。我会尽量关注汉斯曼的博客文章。谢谢