用于Web开发和可能移动的MVC4 Web API

时间:2012-03-21 16:13:31

标签: asp.net-mvc-4 asp.net-web-api

我非常喜欢新功能,即随MVC4发布的Web API。

我目前正在开发一个Web应用程序,我希望将其扩展到移动应用程序。

使用此功能的最佳方式是什么?

  1. 编程就像没有Web API一样,当我准备开发移动应用程序时,请使用此功能(复制并粘贴控制器功能,然后编辑返回和错误处理值?

  2. 或者我应该从Web开发的开始使用Web API。使用javascript调用函数和处理错误?这个apporach的问题是我对JS不太熟悉,代码看起来不太干净(视图)

  3. 有什么意见吗?

    由于

2 个答案:

答案 0 :(得分:2)

恕我直言,Web API不应被视为特定于移动应用程序开发的功能。它是一个允许您通过HTTP轻松公开RESTful API的工具。这些API可以从桌面应用程序,Web应用程序,移动应用程序等中使用......每种类型的应用程序的接口当然都将使用特定的框架和工具来开发(WPF,ASP.NET / MVC,WP7) / iOS / Android,...)。

Web API只允许您以可互操作的方式公开业务数据和服务,以便不同的客户端可以使用它们。

答案 1 :(得分:0)

我更喜欢使用第二种方法。

一开始,我还认为.ajax调用可能搞乱视图。 (没有人喜欢在View中添加一个很长的<script>部分。)但是在向Stackoverflow询问我的问题后,我很高兴在这里找到一些专家为这些javascript使用“代码隐藏”。

实践是:

创建一个单独的JS文件夹来存储所有“代码隐藏”的js文件。 (默认的Scripts文件夹仅包含第三方软件包,如knockout.jsjquery.js等)

对于每个视图,生成.js文件,例如home.index.jsform.add.js等。只需遵循一致的规则即可。将创建大量js个文件。最棒的是在MVC4中,我们可以将所有.js文件合并到此文件夹下,并生成一个缩小的,组合的单个文件,并在_Layout视图中仅加载一次。

这样做的方法是:

在_Layout视图中,<head>部分:

<script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/JavaScripts/js")" type="text/javascript"></script>

Global.asaxApplication_Start中,注册捆绑包:

var bundle = new Bundle("~/JavaScripts/js", new JsMinify());
        bundle.AddDirectory("~/JavaScripts", "*.js", true);
        BundleTable.Bundles.Add(bundle);
        BundleTable.Bundles.EnableDefaultBundles();
        //BundleTable.Bundles.RegisterTemplateBundles();

然后你很高兴。意见仍然很干净。所有.js文件都是有条理的。并且无需在每个单独的视图上导入不同的.js文件。

倾斜JS不是问题。由于它可能是唯一的客户端编程语言,现在我们有必要学习新的东西。我觉得现在有jQuery更容易了。是时候升级我们的知识了。我对使用这些新工具可以实现的目标感到高兴和兴奋。