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



我非常喜欢MVC4发布的Web API这一新功能。

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

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

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

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

有什么意见吗?

感谢

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

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

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

一开始,我还认为.ajax调用可能会扰乱视图。(没有人喜欢在视图中添加一个长的<script>部分。)但在询问了我关于Stackoverflow的问题后,我很高兴在这里发现一些专家在为这些javascript使用一些"代码隐藏"。

做法是:

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

对于每个视图,生成一个.js文件,如home.index.jsform.add.js等。只需遵循一致的规则。将会创建许多js文件。最棒的是,在MVC4中,我们可以将该文件夹下的所有.js文件组合在一起,生成一个缩小的、组合的单个文件,并在_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就更容易了。是时候提升我们的知识了。我很高兴也很兴奋我们能用这些新工具完成什么。

最新更新