跟我一起學習ASP.NET 4.5 MVC4.0(一)

來源:互聯網
上載者:User

由於上面一個項目使用的是ASP.NET4.0 MVC3.0,在招人的時候發現很多人有聽說過MVC,但是卻是沒用過,對MVC也只是一知半解,最近想給團隊成員做一個系統的解說,讓大家都可以學習一下ASP.NET MVC3.0。但是由於前兩天安裝了Windows8和VS11,所以寫些關於ASP.NET 4.5和MVC4.0的一些東東,順便複習一下MVC3.0。這裡涉及的有些東西都是MVC3.0的,有些會和MVC4.0進行對照,由於我也是剛剛接觸ASP.NET MVC4.0對於它的改進也不甚瞭解,如果錯誤歡迎批評指正。同時也希望大家共同進步,最主要的是我的團隊成員能夠更多的理解ASP.NET MVC3.0或MVC4.0的開發。

 

首先聲明有關本系列(暫時計劃寫系列,希望是比較完整性的文章,但世事難料,不敢保證,(*^__^*))可能有些內容翻譯或摘自網路,如有侵犯你的著作權,請聯絡我,我會最快時間內進行改寫或糾正。閑話不多說,我們來看一下正題,首先當然是建立一個MVC項目。開啟VS11,可以從Win8開始頁面的Metro程式格中開啟,也可以到你的檔案夾中尋找,不過我的已經把他固定在了工作列裡了。

 

這個沒有什麼區別,和VS2010一樣,選擇一下MVC Application就可以了。 和ASP.NET MVC3.0相比,多了幾個項目,一個是WebAPI,Mobile Application,以及Single Page Application。其他的項目我們先不管,選擇Internet Application,由於他使用的是NuGet發布的所以第一次可能建立項目會有點慢,不過沒關係,以後就不會了,第一次耐心點。

 

 在VS11中,預設的調試伺服器使用的時IIS Express,這個比那個虛擬好用多了,因為速度快多了,只是個人感覺,不知道各位達人是否有同感呢?我們首先來看一下允許情況,用調試按鈕,可以看到調試按鈕下面多了好多個選項?包括你機子所裝的所有瀏覽器和Page Inspector(相當好用的調試工具)。

 

這裡我們選擇使用頁面調試工具,初次使用我們需要啟用一下,其實也就是設定一下Web.config的配置節點,如所示,具體修改就是啟用一下設計時,可以開啟web.config看看就知道了。

 

 運行結果如所示,圖中也指出了各個視窗相關的內容,讓我們可以瞭解一下頁面調試機制和相關功能,可以瞭解到,螢幕大是有好處的,如果有條件,可以使用兩個螢幕,在win8中很容易設定,右邊中的“裝置”就有第二個螢幕的選項。

 

 相比ASP.NET MVC3.0在4.0中有很多的改變,首先JQuery以及其他的一些指令碼版本進行了升級,當然也移除了微軟自己的AJAX庫。估計是用的人太少了吧,在頁面上多了個“聯絡我們”,其他沒什麼改變。但是在代碼中有很多的變化,值得我們研究研究,首先讓我們來開啟Global.asax的代碼,可以看到改變了不少。 1 using System;

 2 using System.Collections.Generic;
 3 using System.Configuration;
 4 using System.Data.Entity;
 5 using System.Data.Entity.Infrastructure;
 6 using System.Linq;
 7 using System.Web;
 8 using System.Web.Http;
 9 using System.Web.Mvc;
10 using System.Web.Optimization;
11 using System.Web.Routing;
12 
13 namespace MVC4.WebSite
14 {
15     // Note: For instructions on enabling IIS6 or IIS7 classic mode, 
16     // visit http://go.microsoft.com/?LinkId=9394801
17 
18     public class MvcApplication : System.Web.HttpApplication
19     {
20         public static void RegisterGlobalFilters(GlobalFilterCollection filters)
21         {
22             filters.Add(new HandleErrorAttribute());
23         }
24 
25         public static void RegisterRoutes(RouteCollection routes)
26         {
27             routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
28 
29             routes.MapHttpRoute(
30                 name: "DefaultApi",
31                 routeTemplate: "api/{controller}/{id}",
32                 defaults: new { id = RouteParameter.Optional }
33             );
34 
35             routes.MapRoute(
36                 name: "Default",
37                 url: "{controller}/{action}/{id}",
38                 defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
39             );
40         }
41 
42         protected void Application_Start()
43         {
44             AreaRegistration.RegisterAllAreas();
45 
46             // Use LocalDB for Entity Framework by default
47             Database.DefaultConnectionFactory = new SqlConnectionFactory("Data Source=(localdb)\v11.0; Integrated Security=True; MultipleActiveResultSets=True");
48 
49             RegisterGlobalFilters(GlobalFilters.Filters);
50             RegisterRoutes(RouteTable.Routes);
51 
52             BundleTable.Bundles.RegisterTemplateBundles();
53         }
54     }
55 }

 其中多了WebAPI節點的路由配置,這是給WebAPI使用的,其中一個可選項的枚舉也不同,後面的章節我們會單獨來學習WebAPI相關內容,這裡就不多說了。在應用程式啟動的方法中,預設的配置了Entity Framework資料庫配置執行個體,這個架構在我們的項目中沒有使用到,因為之前我聽說效能不能很好。而且他的編程習慣也不適合我,所以就沒用他,如果有人用過他來開發企業網站或軟體可以交流交流,傳授一下經驗。最後一個不同的就是BundleTable的代碼,根據我的瞭解這個主要是用於WebAPI的最佳化,也應該屬於MVC4.0的新特性,主要是WebAPI在HTTP傳輸JavaScript和CSS的時候移除一些不必要的空白和字元和一些最佳最佳化的效能提升。從他所在的程式集名稱也可以看出是屬於效能最佳化方面的,而且是MVC4.0的時候才有的。

 

開啟布局頁面我們會發現,URL路徑轉換也改變了使用的是System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl方法,而不是使用Url.Content了,當然也可以使用,可能那個效能會比較最佳化,這個需要等待進一步的證實。如果我們修改了Page Inspector所涉及的頁面內容,他就會有提示是否需要重新整理流量頁面,點擊有就可以對其直接顯示,如。

 

 還有一大改進就是已經使用HTML5來進行布局了,一般使用FireFox和Chrome的人都會與時俱進,可是IE6的使用者量也是相當龐大的一個資料量,所以我們希望"Modernizr"能夠協助我們使用HTML5的威力。這一篇文章主要是對ASP.NET MVC4.0一個認識,以及對VS11的一個認識,雖然VS11得介面很醜,但是功能確實很先進。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.