2012-03-21 65 views
1

我非常喜歡MVC4發佈的新功能Web API。用於Web開發和可能的移動的MVC4 Web API

我目前正在研究一個Web應用程序,我希望將其擴展到移動應用程序。

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

  1. 計劃它像有沒有Web API,並且當我準備開發移動應用程序,然後使用此功能(複製和粘貼控制器功能然後編輯返回值和錯誤處理價值?

  2. 或者我應該從Web開發的開始使用Web API使用JavaScript調用函數和處理errros這個apporach的問題是我對JS不太熟悉,並且代碼看起來不太乾淨Views)

An Ÿ意見?

謝謝

回答

2

恕我直言,Web API不應被視爲特定於移動應用程序開發的功能。它是一個工具,可讓您輕鬆地通過HTTP公開RESTful API。這些API可以從桌面應用程序,Web應用程序,移動應用程序等中使用......每種類型的應用程序的接口當然都是使用特定的框架和工具開發的(WPF,ASP.NET/MVC,WP7/iOS/Android,...)。

Web API只允許您以可互操作的方式公開您的業務數據和服務,以便不同的客戶端可以使用它們。

+0

這是非常有意義的,...是的...知道了。但展望未來,WebAPIController如何爲移動設備,rss提供什麼 - 控制器如何影響傳統MVC View控制器的存在(或不存在)? MVC Views應該被視爲WebAPI提供的另一種可能的格式嗎?很多 – justSteve 2012-03-22 18:10:02

0

我寧願使用第二種方法。

在一開始,我也認爲.ajax調用可能會混淆視圖。 (沒有人喜歡在視圖中添加很長的<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文件。

Leaning JS不是問題。由於它可能是唯一的客戶端編程語言,現在我們有必要學習新的東西。我覺得現在更容易,因爲我們有jQuery。現在是升級我們的知識的時候了。我對使用這些新工具可以完成的事情感到高興和興奮。