Asp.net mvc 我应该如何构建MVC4+;WebApi+;Linq到Sql解决方案?

Asp.net mvc 我应该如何构建MVC4+;WebApi+;Linq到Sql解决方案?,asp.net-mvc,linq-to-sql,asp.net-web-api,Asp.net Mvc,Linq To Sql,Asp.net Web Api,我知道stackoverflow使用Linq到SQL。我决定,由于stackoverflow使用LINQtoSQL(在我看来,它在高流量站点中运行良好),因此我将继续在我的MVC4应用程序中使用它 到目前为止,我的解决方案中有一个MVC4 internet项目,一个web api项目,一个模型类库,用于覆盖linq到sql中的一些映射,然后是我的linq到sql库项目 我注意到,当我向解决方案中添加一个web api项目时,api项目与常规mvc 4项目一样,也有视图、控制器等 WebAPI项目

我知道stackoverflow使用Linq到SQL。我决定,由于stackoverflow使用LINQtoSQL(在我看来,它在高流量站点中运行良好),因此我将继续在我的MVC4应用程序中使用它

到目前为止,我的解决方案中有一个MVC4 internet项目,一个web api项目,一个模型类库,用于覆盖linq到sql中的一些映射,然后是我的linq到sql库项目

我注意到,当我向解决方案中添加一个web api项目时,api项目与常规mvc 4项目一样,也有视图、控制器等

WebAPI项目是否提供与MVC4Web项目相同的视图等功能? 对于项目设置,您有什么建议

  • 取消MVC4 internet项目,只使用WebAPI
  • 消除web api并使用存储库
  • 是否同时使用MVC4 internet项目和web api? 或为什么
  • 我正在将asp.net web表单应用程序移到mvc。由于stackoverflow使用LINQtoSQL,我决定重新使用LINQtoSQL库,而不是创建LINQtoEntities

    所有的数据访问和操作都是使用LINQtoSQL完成的,所以我只需将查询移到WebAPI就可以轻松得多

    我想重复使用尽可能多的代码,并将使用Telerik的剑道UI进行MVC

    该应用程序将需要在线和离线工作,所以我认为api会很好

    但是在注意到api包含与mvc internet项目相同的对象类型之后,我不明白为什么我会同时使用internet和api mvc项目



    谢谢你,你可以走两条路。如果您创建一个WebAPI项目,它将附带所有MVC4特性。在控制器文件夹项目中,如果右键单击并说“新建”,则可以选择创建Web API控制器或MVC控制器。由于两者都有不同的url(默认情况下,Web APi在url中有/APi/),因此您可以决定是调用MVC4控制器还是Web APi控制器

    你可以走两条路。如果您创建一个WebAPI项目,它将附带所有MVC4特性。在控制器文件夹项目中,如果右键单击并说“新建”,则可以选择创建Web API控制器或MVC控制器。由于两者都有不同的url(默认情况下,Web APi在url中有/APi/),因此您可以决定是调用MVC4控制器还是Web APi控制器

    你想达到什么目标?你能用你面临的目标/麻烦更新你的问题吗?
    WWSOD
    问题应该发布在meta.stackoverflow.com上实际上,Stack Overflow已经用原始sql run-through取代了大多数linq-to-sql查询。。。但是他们在很长一段时间里都是linq to sql的,并且能够用它处理相当多的流量。。。有趣。随着时间的推移,我可能会遵循同样的路径。@SheriTrager Microsoft停止支持linq to sql,使用实体框架您试图实现什么?你能用你面临的目标/麻烦更新你的问题吗?
    WWSOD
    问题应该发布在meta.stackoverflow.com上实际上,Stack Overflow已经用原始sql run-through取代了大多数linq-to-sql查询。。。但是他们在很长一段时间里都是linq to sql的,并且能够用它处理相当多的流量。。。有趣。随着时间的推移,我可能会遵循相同的路径。@SheriTrager Microsoft停止支持linq to sql,使用实体框架视图有什么不同吗?我将使用Telerik Kendo UI进行MVC。?谢天谢地。您在Web API项目中看到的视图是MVC4视图。webapi是服务层。它没有视图的概念!我仍然不明白为什么微软决定在我们创建一个新的Web API项目时提供所有MVC4的东西!非常感谢你的回答。我现在知道我可以删除internet项目,只需使用api即可。两个都用似乎是额外的工作。再次感谢!视图可用的原因是,服务仍然可以将视图(部分或全部)作为数据返回给请求者。我认为这是一个不错的选择,因为如果没有包含MVC内容,那么移除MVC内容要比随后将其捆绑起来更容易。它不增加API的重量,并自动为您提供一种方式,将配置/管理界面捆绑到API中。我从来没有删除过MVC的东西,总是通过为我的服务添加一个漂亮的管理界面来利用它。与视图有什么不同吗?我将使用Telerik Kendo UI进行MVC。?谢天谢地。您在Web API项目中看到的视图是MVC4视图。webapi是服务层。它没有视图的概念!我仍然不明白为什么微软决定在我们创建一个新的Web API项目时提供所有MVC4的东西!非常感谢你的回答。我现在知道我可以删除internet项目,只需使用api即可。两个都用似乎是额外的工作。再次感谢!视图可用的原因是,服务仍然可以将视图(部分或全部)作为数据返回给请求者。我认为这是一个不错的选择,因为如果没有包含MVC内容,那么移除MVC内容要比随后将其捆绑起来更容易。它不增加API的重量,并自动为您提供一种方式,将配置/管理界面捆绑到API中。我从来没有删除过MVC,总是通过为我的服务添加一个漂亮的管理界面来利用它。