先睹爲快:Visual Studio 11測試版已於2.29在微軟官方網站正式發佈

 

在2011的下半年,Visual Studio 11就已經呼之欲出,在2012年的2月29日,微軟官方網站正式發佈了VS11的測試版。
VS11中使用了Framework4.5,與Framework4.0相比,沒有發生太大的改變,只是對功能進行了優化。

下載地址:http://www.microsoft.com/visualstudio/11/zh-cn/downloads

單單一個安裝包就需要1.7G左右,安裝旗艦版大約需要3.6G的空間,安裝時間可能比較長,需要耐心地等待喔。


一、支持觸屏管理與Metro

VS11明顯是面向Windows 8開發的,與Windows 8相同,它支持觸屏管理與Metro 風格的應用開發,並支持本地或者遠程調試。

二、ASP.NET

在ASP.NET方面,在數據綁定上增加了新ItemType屬性來定義綁定類型, 以SelectMethod來綁定獲取數據源的方法。
在顯示類型屬性的時候,只需要使用<%#:Item.Id%>即可代替原來的<%#Eval("Id")%>,使用起來會更加簡單。

1 <asp:Repeater ID="repeater1" runat="server" SelectMethod="GetPersonList" ItemType="Person">
2 <ItemTemplate>
3 ID <%#:Item.ID%>
4 Age <%#:Item.Age%>
5 Name <%#:Item.Name%>
6 </ItemTemplate>
7 </asp:Repeater>

綁定數據源

1 public IList<Person> GetPersonList()
2 {
3 var personList = new List<Person>();
4 var person1 = new Person();
5 person1.ID = 1;
6 person1.Name = "Leslie";
7 person1.Age = 29;
8 personList.Add(person1);
9 return personList;
10 }

在編寫ASP.NET頁面代碼的時候,開發人員編輯控件件會出現Smart Tasks提示,使開發更加簡單:

在頁面也能看到屬性設置工具,非常地方便

三、支持HTML 5和CSS 3

從 VS10起,系統就開始支持 HTML 5 與 CSS 3 , 而在VS11,更是增強了這方面的功能。
在視覺方面,它支持了開張(Expand)、閉合功能(Collapse),使用起來更加方便。

CSS有父子關係的設定,只要啓用這功能,CSS就可以有伸縮的效果,閱讀CSS與閱讀代碼一樣井井有條。
如圖,在菜單選擇Tools -&gt; Options -&gt; Text Editor -&gt; CSS -&gt; Formatting,選擇 Indentation 中的 Hierarchical Indentation

以往無論是頁面開發人員還是程序員,都不太喜歡用VS來開發CSS,因爲使用不太方便。
有見及此,VS11爲CSS代碼添加了感知能力,無論在普通屬性或者是色彩設置方面,使用都非常地方便。

對audio這些HTML 5中的控件,VS 11無不支持

1 <audio controls="controls">
2 <source src="mylove.mp3"/>
3 </audio>

四、Javascript

在VS2010中,已經增加了對Javascript的支持,使用也比較方便,但唯一欠缺的就是對JSON的支持。
特別是在使用數組型的JSON數據時候,往往需要使用第三方插件纔會比較方便,本人更多的是使用Newtonsoft.Json工具包。
在VS11中,明顯是正視了這個問題,它支持了ECMAScript 5,而且爲JSON提供了更方便的轉換方式。

使用 parse 方法,可以將JSON數組轉換爲對象集,使用alert可以顯示數組中Leslie的Age。

1 window.onload = function () {
2 var obj = JSON.parse('[{"ID":"1","Age":"23","Name":"Rose"},{"ID":"2","Age":"29","Name":"Leslie"}]');
3 alert(obj[1].Age);
4 }

反過來,使用 stringify 方法可以把對象轉換爲JSON

1 obj.ID = "1";
2 obj.Name = "Leslie";
3 obj.Age="29";
4 alert(JSON.stringify(obj));

五、異步操作

在異步操作方面,VS11也作出了一點調整,比如在異步獲取上,它在原基礎上增加一個await操作。
功能與PLINQ相似,系統能自動判斷操作是否能提高系統的性能,如果通過判定,將在在後臺線程中運行,不會影響主線程的運作。

1 try
2 {
3 var response = await new HttpClient().GetAsync("http://msdn.microsoft.com");
4 string result = response.EnsureSuccessStatusCode().Content.ReadAsString();
5
6 this.textBox1.Text = result;
7 .......
8 }

若要使用異步頁面,注意把頁面的異步屬性設置爲true

1 <%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true"
2 CodeBehind="ProductDetails.aspx.cs" Inherits="WebFormsLab.ProductDetails"
3 Async="true" %>
4
5 <asp:Label ID="threadsMessageLabel" runat="server" />

同樣地與原本的異步頁面比較一下,只需要在異步調用時加上 await 的執行方式

1 private void UpdateProductImage(Product product)
2 {
3 string imageUrl = product.ImagePath;
4
5 if (!string.IsNullOrEmpty(imageUrl) && !VirtualPathUtility.IsAbsolute(imageUrl))
6 {
7 product.ImagePath = string.Format("/Images/{0}{1}", product.ProductId, Path.GetExtension(imageUrl));
8
9 RegisterAsyncTask(new PageAsyncTask(async(o,a,ct) =&gt;
10 {
11 var startThread = Thread.CurrentThread.ManagedThreadId;
12
13 using (var wc = new WebClient())
14 {
15 await wc.DownloadFileTaskAsync(imageUrl, Server.MapPath(product.ImagePath));
16 }
17
18 var endThread = Thread.CurrentThread.ManagedThreadId;
19
20 threadsMessageLabel.Text = string.Format("Started on thread: {0}<br /> Finished on thread: {1}", startThread, endThread);
21 }));
22 }
23 }

六、代碼測試

VS11新增了一個重複代碼分析功能,使代碼的修改更加簡單快節。
它還有一個調試工具,叫做 “Page Inspector”,專門爲ASP.NET開發而設,能加強調試的功能。
還有帶有一個 Metro 風格模擬器,允許開發者模擬測試 Metro 應用的觸摸和旋轉事件。


結束語
據說在WF與F#上,VS11也進行了不少的優化,這需要更多時間進行更深入的瞭解。
相信VS11能更有效地幫助代碼的編寫,減少開發時間。
Visual Studio 11視頻介紹:http://v.youku.com/v_show/id_XMzU2NzU3NzU2.html
對.NET開發有興趣的朋友請加入博客園討論小組“.NET高級編程” 一起探討!

作者:風塵浪子
http://www.cnblogs.com/leslies2/archive/2012/03/01/2375462.html

原創作品,轉載時請註明作者及出處

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章