我非常喜欢新功能,即随MVC4发布的Web API。
我目前正在开发一个Web应用程序,我希望将其扩展到移动应用程序。
使用此功能的最佳方式是什么?
编程就像没有Web API一样,当我准备开发移动应用程序时,请使用此功能(复制并粘贴控制器功能,然后编辑返回和错误处理值?
或者我应该从Web开发的开始使用Web API。使用javascript调用函数和处理错误?这个apporach的问题是我对JS不太熟悉,代码看起来不太干净(视图)
有什么意见吗?
由于
答案 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.js
,jquery.js
等)
对于每个视图,生成.js
文件,例如home.index.js
,form.add.js
等。只需遵循一致的规则即可。将创建大量js
个文件。最棒的是在MVC4中,我们可以将所有.js
文件合并到此文件夹下,并生成一个缩小的,组合的单个文件,并在_Layout视图中仅加载一次。
这样做的方法是:
在_Layout视图中,<head>
部分:
<script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/JavaScripts/js")" type="text/javascript"></script>
在Global.asax
,Application_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
更容易了。是时候升级我们的知识了。我对使用这些新工具可以实现的目标感到高兴和兴奋。