1. 程式人生 > >Building Modern Web Apps-構建現代的 Web 應用程式(一些感想)

Building Modern Web Apps-構建現代的 Web 應用程式(一些感想)

  • 視訊長度:1 小時左右
  • 視訊作者:Scott Hunter 和 Scott Hanselman
  • 視訊背景:Visual Studio 2013 最新版本釋出
  • 視訊來源:MSDN - Channel 9

一些感想

這段視訊雖然標題設定為 Visual Studio 2013 最新版本釋出,但其實並沒有對 Visual Studio 2013 進行過多的介紹,而更多的是講述微軟對 ASP.NET 的發展規劃,特別是對 Web 的重視,我覺得非常好,下面談一下我的一些感想,當然只是個人觀點,勿喜請噴。

其實說到 Web,就不得不提喬布斯在《遺失的訪談(1995)》中對未來十年技術發展的預言,沒錯,喬布斯就預言了 Web,而十年後,二十年後,確實如預言的那樣,不得不說他是“神”一樣的存在。但二十年的今年,現在的 Apple 並沒有多重視 Web,反而把大把的精力放在 App 上,這就有點不應該,反觀 Apple 的對手微軟,彷彿是看了喬布斯訪談一樣,越來越重視 Web 了,當然我個人覺得,一部分原因是 Windows Phone 的不給力。

視訊中首先談到的是 ASP.NET 不再那麼神祕了,確實如此,現在我們可以在 CodePlex 上獲取 ASP.NET MVC 、EntityFramework 等原始碼,甚至可以進行修改提交,Scott Hunter 提到現在 ASP.NET MVC 中兩個重要功能(屬性路由和 Web API 的跨源支援),就是來自於社群程式碼的提交,這是開放的一種表現,對開發者,對微軟都有好處。

ASP.NET 我們都很熟悉,Web Tools 是什麼?簡單的說,就是我們用的 Visual Studio,但其實只是 Visual Studio 中的應用之一,我們現在所開發的 ASP.NET 是離不開 Web Tools 的,為什麼?因為從專案新建-前段設計-後端程式碼編寫-程式除錯-程式釋出等等,這些操作都是使用 Web Tools 完成的,也就是說 ASP.NET 和 Web Tools 就像是一對連體嬰兒,誰也離不開誰。但這種“緊密的關係”往往就失去了一些開發所獨有的“創造性”,試想一下,如果 ASP.NET 和 Web Tools 可以獨立運作,這又是一種怎樣的場景?用 Text 編寫 ASP.NET 應用程式?這個已經不是夢想了。

One ASP.NET,請注意在圖中間部分的兩邊有兩個“YOU”,這是什麼意思呢?我們知道 ASP.NET 的執行必須建立在 .NET Framework 支援的基礎上,也就是說必須是 Windows 環境,但是現在,我們可以在 ASP.NET 中融入任何我們想要的東西,比如自己喜歡的外掛、框架、專案等,因為第三方的支援,我們可以想做任何我們想做的事,這不是爽一點的問題,而是爽到了極點。昨天在 YouTuBe 上看了一個哥們在 MAC OS 上開發執行 ASP.NET VNext 的視訊(只需要一個編輯器和一個命令工具),很是激動啊,過幾天我也嘗試下。

在這段講述中,Scott Hunter 除了強調 ASP.NET Identity 的改進之外,還說到了他最喜歡到 ASP.NET MVC 屬性路由,來自社群程式碼的提交,可能是一些開發者厭煩了之前 URL 繁瑣的配置,所以在 ASP.NET MVC 中增加了屬性路由。關於 EntityFramework,他講到了這樣一個問題:

在一個 ASP.NET 應用程式中有兩個頁面,一個是靜態頁面,一個是需要資料庫讀取頁面,如果我同時頻繁訪問這兩個頁面,你認為會發生什麼?

Scott Hanselman:我猜靜態頁面與資料庫無關。

Scott Hunter:不是的,鑑於這個原因,每次執行資料庫操作和網路操作時,都應該使用非同步支援,我們有一個基準測試表明,實際會發生的是,每次執行進行資料庫呼叫的頁面時,在等待該操作發生的整個期間,系統將在 ASP.NET 執行緒池中存留一個執行緒,因此如果你多次訪問該頁面,就會消耗掉執行緒池中的所有執行緒,就沒有執行緒為靜態頁面提供服務了,因此一個數據庫頁面可能會在你不知情的情況下影響整個應用程式的效能,讓執行緒池“捱餓”,通過使用權重,任何時候,當你使用 EntityFramework 時,都不會再讓執行緒池“捱餓”,靜態頁面永遠不會損失效能,因為另一個頁面在執行並進行資料庫呼叫。

後面提到 EntityFramework 的資料庫遷移(主要時針對)、Code First。。。

視訊的最後就是講述 Visual Studio 2013 的具體更新了,關於這一部分我不是很感興趣,只是大概的看了下,主要將了亮點內容:

  1. 精簡 ASP.NET 模組:新建 ASP.NET App 的模版,由原來的 20 個減為 6 個,另外 Web Forms、MVC、Web API 之間更好的“混搭”。
  2. 雲的支援(Windows Azure):關於 Visual Studio 2013 中使用 Windows Azure,Scott Hunter 進行了詳細的演示,一個新建,一個勾選,一個 Windows Azure 下的 ASP.NET 就這樣建立好了,如此簡單。我比較感興趣的是 Windows Azure 執行下,Visual Studio 2013 中除錯 ASP.NET,有機會可以嘗試下。

最後

看完這段視訊(昨天晚上),我個人覺得 MSDN 應該是 .NET 程式設計師常去的社群,為什麼?當你還在糾結 ASP.NET Web Forms 和 ASP.NET MVC 時,你所不知道的是,人家已經在 MAC OS 中使用 ASP.NET VNext 了。