本節書摘來自異步社群出版社《visual c++ 2012 開發權威指南》一書中的第1章,第1.4節,作者: 尹成 , 朱景堯 , 孫明龍 , 胡耀文,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。
(1)vs2012和visual studio 2010(vs2010)相比,最大的新特性莫過于對windows 8 metro開發的支援。metro天生為雲端而生,簡潔、數字化、内容優于形式、強調互動的設計已經成為未來的趨勢。不過對于開發者而言,要想使用這項新功能,必須要安裝windows 8 rp版。該版本中包含了新的metro應用程式模闆,增加了javascript功能、一個新的動畫庫,并提升了使用xaml的metro應用程式的性能。
(2)vs 2012 rc在界面上,比beta版更容易使用,彩色的圖示和按照開發、運作、調試等環境區分的顔色方案讓人愛不釋手。
(3)vs 2012內建了asp.net mvc 4,全面支援移動和html5,wf 4.5相比wf 4,更加成熟,期待已久的狀态及工作流回來了,更棒的是,現在它的設計器已經支援c#表達式(之前隻能用vb.net)。
(4)vs 2012支援.net 4.5,和.net 4.0相比,.net 4.5更多的是完善和改進,.net 4.5也是windows rt被提出來的首個架構庫,.net獲得了和windows api同等的待遇。
(5)vs 2012+tfs 2012實作了更好的生命周期管理,可以這麼說,vs 2012不僅是開發工具,也是團隊的管理資訊系統。
(6)vs 2012對系統資源的消耗并不大,不過需要windows 7、windows 8的支援。
項目相容(project compatibility)
高效的ide(ide productivity improvements)
随處搜尋(search everywhere)
工具欄更新(toolbar improvements)
附加工具(additional tooling)
多顯示器支援(multiple-monitor support)
性能提升(performance enhancements)
新的項目類型(new project types)
可擴充性(extensibility)
1.項目相容(project compatibility)
visual studio 2012的向下相容性讓不再猶豫更新的visual studio 2011。過去每次更新visual studio總會修改打開的項目檔案,有時候甚至隻是修改一下版本号,就讓的項目不再被相容,雖然在個人使用時并沒有什麼大問題,但在團隊工作時卻會造成大麻煩,隻能讓整個團隊同時更新到相同版本。而現在,當把visual studio 2011 sp1更新到visual studio 2012時,不再會對團隊造成影響,因為visual studio 2012使用的.net4.5架構不會修改舊的項目檔案。雖然僅僅支援visual studio 2011 sp1互通,卻仍非常實用。
2.更高效的ide(ide productivity improvements)
不管是使用哪種程式設計語言程式設計,相信都會很快注意到這些高效的功能,也許會感到很熟悉,因為很多功能在內建了productivity power tools擴充的visual studio 2012中已經看到。或者沒有試過power tools,但是使用過eclipse,相信對此也會非常熟悉。首先,解決方案管理器有了很大的修改,它不再隻是檔案的索引,它可以直接在解決方案管理器中檢視對象的結構。例如,可以展開一個cs類來直接檢視它的成員并且直接打開檔案相應位置。在類成員上右鍵就會出來這個成員的call hierarchy菜單,一般來說,這個菜單會包括它的基類、衍生類以及在項目中被引用情況,通過單擊菜單中不同的選項來檢視或編輯檔案相應的位置。正如所想的那樣,輕按兩下要檢視的結點就會打開結點所對應的檔案位置。強大的新的解決方案管理器還提供了預覽功能。單擊解決方案管理器的結點就會打開一個文檔的預覽。這樣,當隻是想預覽一些檔案時就隻會在一個公共tab(标簽頁)中進行預覽而不會打開過多的無用tab。當然也可以單擊預覽tab的promote按鈕或者對它進行手動編輯進而将它變成普通tab,如圖1-32所示。

圖1-32 更有效的ide
3.随處搜尋(search everywhere)
在visual studio2011中雖然已經內建了簡單的搜尋功能,作為前三受歡迎的功能,在visual studio12中必然會着重優化。
目前已知提供搜尋功能的部分有:解決方案管理器、擴充管理器、快速查找功能、新的測試管理器、錯誤清單、并行監控、工具箱、tfs(team foundation server)團隊項目、快速執行visual studio指令,如圖1-33所示。
4.工具欄的改進(toolbar improvements)
最顯眼的莫過于增加了快速啟動搜尋框,可以直接輸入快速指令。隻要鍵入關鍵字就會在下拉清單中提示可用指令。甚至可以在其中找到工具菜單,如圖1-34所示。
圖1-33 強大的搜尋功能
圖1-34 工具欄的改進
5.附加工具(additional tooling)
visual studio 2012新增了幾項新工具都非常引人注目。visual studio 2012 ide內建了expression blend,極大友善了xaml相關應用的開發。此外visual studio 2012提供了一個嶄新的代碼克隆分析工具,相信vss的老使用者會非常熟悉,但是這個新版本不僅內建在visual studio 2012中,而且功能相當完備,如圖1-35所示。
6.多顯示器支援(multiple-monitor support)
visual studio 2011雖然已經開始支援顯示器處理,但仍有不少問題。visual studio 2012提供了強有力的顯示器支援。和新的ie一樣,當把一個tab拖到另一個顯示器上時,它會自動建立一個ide視窗。如果關閉再打開一個視窗,它還能很好地恢複原來的狀态。
圖1-35 附加工具
7.性能優化(performance enhancements)
visual studio 2011中有一個沒怎麼引起注意過的多項目并行build功能,但隻局限于c++,現在在visual studio 2012中,已經不用再受程式設計語言限制了,不論是用什麼語言(visual studio 2012支援的)開發的,都可以暢快地體驗并行build的效率。從此可以在“最大并行數”中來管理最大并行項目數。visual studio 2012中msbuild.exe不複存在,而且由于visual studio 2012中build過程也不再在devenv.exe程序中進行,是以visual studio 2012編譯時還将會獲得更好的ui反應和更低的記憶體占用。visual studio 2012中,最大同時進行的build數預設是等于cpu核心數的,不建議手動修改這個值,因為可能會造成不必要的沖突的編譯結果。
8.新的項目類型(new project types)
從專業的角度來看是否應該從一款visual studio轉向另一版本的visual studio,很重要的一點就是比較項目類型。新的metro風格的項目毫無疑問是visual studio 2012的主推功能。包括application, grid application, split application, class library和unit test library。另外一個visual studio 2012就是javascript,包括blank application, fixed layout application, grid application, navigation application和split application。當然,這些新功能隻能在windows 8環境下使用。值得注意的是,這一版本還是支援視窗程式的,silver light也依然存在,仍然是visual studio所支援的平台之一。還應該注意到是,visual studio 2012甚至包含了便攜庫,這允許跨平台的silver light和标準.net的跨平台開發。另一個很具代表性的特色就是,是以的新功能都支援c++開發,使用c++來開發metro界面。但是,visual studio 2012将不再支援.net2.0以下平台,較早的程式需要重新編譯。其他具體的項目類型的支援差别請檢視文章所附的大圖。
9.可擴充性(extensibility )
visual studio 2012提供了相當多的插件來幫助更簡單地操作。
visual studio package: 提供舊版本visual studio視圖的插件
c#/visual basic item and project templates: 定制的文檔和項目模闆
editor classifier: 自定義文本高亮支援
editor margin: 支援自定義編輯器"margins" ui
editor text adornment: 支援編輯器自定義圖檔裝飾
editor viewport adornment: 支援畫闆的自定義圖檔美化
vsix project: visual studio 2012的可擴充性在visual studio gallery中的展現
windows presentation foundation/windows forms toolbox control: 用戶端ui的 自定義控制
visual studio 2012還提供了新的api接口用來開發插件。和之前透露的一樣,包括可以使用第三方單元測試工具(xunit and nunit)和定制的代碼分析工具。這是微軟開放ide擴充的一個信号,特别是面向開源工具。
微軟在做了衆多改進後卻删減了一個相當重要的特性—宏!根據微軟的報告,因為隻有很少的的使用者使用過宏,是以visual studio 2012中并不會預設引入宏,但visual studio 2012将可以通過擴充包引入自定義功能。
從開發者的角度來看,我們希望visual studio能夠很好地改善開發效率,在這方面,visual studio 2012并沒有明顯的改進。但在其他地方,visual studio 2012做了很多改進,例如:searcheverywhere、真正的多核支援、先進的代碼克隆分析工具,以及解決方案管理器。明确地把重構過的測試功能也內建了進來,并且把測試視窗全都統一到同一個單元測試資料總管中。