**JavaScript 和交互性**
在Visual Studio 11中,JavaScript成為構造Windows和Web應用程序的第一類語言,都被Visual Studio中最好的工具所支持。除了全面的語言支持ECMAScript 5,顯著改善智能顯示(包括在大的JavaScript文件上更好的性能和得到很大改善的精確度),編輯器支持例如“跳轉到定義”的操作,而且完全支持對Visual Studio中其他支持語言的調試,Visual Studio現在也提供新的集成調試窗口,與HTML/JavaScript應用程序調試交互。
新的DOM Explorer窗口通過HTML Document Object Model (DOM)深入探索和操作元素,樣式以及更多。
[**
**](https://byfiles.storage.live.com/y1pv5KH-Gu9UahDjEYsGI-Jmk9Gq4hf7Ep8fDS_Uw4nYnlqo0fv8jUf2PLCcIGE_Pb_CqXNMCrEqn4/DOMExplorer.png?psid=1)
而且新的JavaScript控制臺窗口提供對JavaScript的讀-估計-打印循環(REPL),直接集成到Visual Studio中。這給運行的應用程序提供了實時運行的窗口,支持任何JavaScript表達式的評估。這結果也支持可視化,如下列屏幕截圖所示:
[**
**](https://byfiles.storage.live.com/y1pYw-t0Ph-er1UA0fgckJGXv6-BVVCuL01JmHY3MQ-Tpn3y7cpyjGnnMkyquiURVnfNpjrX6d8Kow/JavaScriptConsole1.png?psid=1)
當計算表達式應用到當前應用程序的上下文時,你甚至可以定義新的功能,然后從控制臺窗口直接使用這些功能:
[**
**](https://byfiles.storage.live.com/y1p6M2ruHE7yppyLEHFxUBWYLfxJmWSlmr0vVPKJj56EK4and0euCiKcZOyJVav0sajx1dqbravjXI/JavaScriptConsole2.png?psid=1)
?
**C#,Visual Basic,和異步**
通過C#和Visual Basic直接探索異步編程的集成。在Visual Studio 11開發者預覽中,這已經成為了C# 5 和Visual Basic 11的一部分。
眾所周知,異步編程是如何實現用戶界面和可伸縮應用程序的響應,但這樣的技術也很難實施。這些系統在每個操作只包含一次異步調用時仍然相對簡單,但隨著我們的世界發展為對一切都是以異步方式開放的,這樣的操作變得很稀少。相反,在復雜的回調代碼定位到最微不足道的模式之后,開發人員被迫寫回調代碼,像一個在調用時被排在另一個之后。幾年來,當異步編程時,現代語言給我們的主要是不可用的控制流結構。現在,有了這些新的C# 和Visual Basic的異步語言功能,開發人員可以將他們當同步一樣寫異步代碼,如所有使用這些語言提供的種種控制流結構,包括對循環的支持,條件,短接,和更多。
有了這些功能,我們可以為該設施提供Visual Studio的調試功能。例如,當調試時我們“跳過”(F10)一個聲明,包括一次等待:
[**
**](https://byfiles.storage.live.com/y1pbGwiqp9tvXfL6TFsA8TinfwgDD9jJlz9DOw3HAgt2S4BVlbwQ2g2dxxsViY51ZS7fapc2NIljcY/AsyncDebug1.png?psid=1)
它會表現的像你期待的那樣,移動到邏輯控制流中隨后的行,哪怕該代碼像一個重寫的繼續回調異步調度中的一部分。
[**
**](https://byfiles.storage.live.com/y1pv5KH-Gu9Uah7HQXsY9CAq4CTjZ0g04UX4Yb3ely6VFYbQqd4gtIUvmdJoHwECXjVCPd49iZr3B4/AsyncDebug2.png?psid=1)
?
**C++ 和平行**
Visual Studio對C++的支持。這不僅包括對C++11標準庫,改進IDE支持(如引用突出顯示和語義著色),和生成全部-本地Windows Metro樣式應用程序的全部支持,也包括對平行提供豐富的新語言和庫。
對Visual Studio 11中的Visual C++來說是新的,通過在他們的項目中利用大規模并行加速器(主要是GPUs),它使C++開發人員可以輕松編寫代碼。在常規的C++代碼中,開發人員可以使用parallel_for_each方法調用lambda,該lambda被批注為“restrict(direct3d)”,這將導致編譯器為lambda生成目標為DirectX加速器的代碼。在下面的例子中,parallel_for_each方法被用來循環訪問所有輸出矩陣的指數,以計算兩個輸入矩陣的乘積。
~~~
void MatrixMultiply(
std::vector<float>& vC,
const
std::vector<float>& vA,
const std::vector<float>& vB,
int M, int N, int W)
{
array_view<const float,2> a(M, W,
vA);
array_view<const float,2> b(W, N,
vB);
array_view<writeonly<float>,2> c(M, N, vC);
parallel_for_each(c.grid, [=](index<2> idx) restrict(direct3d) {
int row = idx[0]; int col = idx[1];
float sum = 0.0f;
for(int i =
0; i < W; i++)
sum += a(row, i) * b(i, col);
c[idx] =
sum;
});
}
~~~
不僅C++ AMP代碼部分直接集成進源文件并用標準C++語法表示,Visual Studio也提供對這些內核的完整調試,支持基本的功能如斷點和分步執行,而且提供對調試窗口如查看, 本地和并行棧,與新的GPU線程和并行查看窗口的完全支持。
C++ AMP不是Visual Studio 11中唯一針對并行現象的為本地代碼而作的努力。當它決定可做的操作時,C++編譯器現在也自動完成循環。例如,對下面的代碼來說,編譯器會嘗試利用SSE指令在cpu上運行多個迭代的for循環作為單操作的一部分,這將大大加快計算速度:
~~~
float a[1000], b[1000],
c[1000];
…
for(int i=0; i<1000; i++)
c[i] = a[i] + b[i];
~~~
C++編譯器現在不僅自動向量化,還具有自動并行化的功能。而且包括Visual C++的并行庫已經被極大擴展,包括更多的并行數據結構,并行算法,和一個更新的類似于在.NET Framework中被Task Parallel Library (TPL)使用的任務欄模式。
?
**F# 和數據訪問**
并非所有語言都需要同樣支持每個域和每個用例:如果他們這樣做,會有多種語言需要更少的支持,。最終往往語言的發展迎合特定的域和特定的樣式,而且我特別高興我們對某一語言的投入成為了該規則的極好示例:即F#。通過Visual Studio 2010中的F# 2.0,我們提供了一種著重于加速計算復雜問題的解決方案。通過Visual Studio 11中的F# 3.0,我們繼續保持著重于特別問題域的趨勢,通過直接集成支持解決數據復雜問題。
F#是一種靜態類型的語言,如同C#和Visual Basic,而且這種靜態類型有很多優勢。它通過支持像準確的智能提示的功能來提高開發經驗。由于更多優化可用在編譯時,它可以產生更好的性能。通過消除一些常見類型的錯誤,它也可以減少開發和測試成本。
然而,也有時候靜態類型導致比動態類型需要更多代碼。有一個極好的例子,世界上有非常豐富的信息,這在我們日常的軟件生活中正在經歷的越來越多。所有這些數據通常以非強類型方式進入我們的程序,在它公開到其他程序之前,首先需要分析和處理為強類型的對象。相比開發人員手動編程導入例程,這個問題已經被設計時代碼生成處理為歷史問題(例如,設計時工具導入一個Web服務描述然后生成必要的代理代碼)。不幸的是,這種方法有問題,它與不斷演變本質的數據源之間的交互性很差,如web上的數據。這會導致非常臃腫的客戶端代碼(為代表整個架構和元數據而生成的類型,不管客戶端程序是否使用它們)。而且它沒有順利與腳本環境集成,如Visual Studio中的F#互動窗口。
通過F# 3.0中新的類型提供者機制,對F#程序和組件來說這種數據訪問變的繁瑣。同樣,因為F#面向.NET Framework,用C# 或Visual Basic(或其他托管語言)寫的應用程序可以通過F#組件利用這種新功能。使用F#編譯器的可擴展機制,受影響的類型提供商可以給需要的庫提供數據訪問,在設計時和編譯時用支持智能提示而且可擴展的方式可使類型和方法計算空間收益,。F# 3.0的庫包括Odata,WSDL,和SQL (通過LINQ to SQL 和LINQ to Entities)的類型提供者,但是客戶類型提供者也可能被寫進目標任意數據源,如SharePoint列表和WMI提供者。
作為示例,請考慮一種想法去搜索Netflix目錄與一部分人分享我的“S.”名字對象。Netflix公開一個Odata,這樣就能被Odata類型提供商使用。
~~~
open Microsoft.FSharp.Data.TypeProviders
[<Generate>]
type
netflixCatalog = ODataService<"http://odata.netflix.com/Catalog/">
let
netflix = netflixCatalog.GetDataContext()
query {
for person in netflix.People do
where (person.Name.StartsWith
"S. ")
sortBy person.Name
take 5
} |> Seq.iter(fun result ->
printfn "%s" result.Name)
~~~
我們不僅能夠輕易導入相關元數據和快速查詢,也可以通過經驗查看智能顯示:
[**
**](https://byfiles.storage.live.com/y1pLBUCvHQeaoShFeNgMiHqGM6rLtLMmstnjsASrxC8MkKoHA-UavR3LNSg69k82kn3gQR9YrPPyHU/FSharpIntelliSense.png?psid=1)
而且這樣的代碼不僅能在F#應用程序中寫,也可以直接在F# 交互窗口中寫:
[**
**](https://byfiles.storage.live.com/y1pYw-t0Ph-er32ncbaSJQE7pknypqHvY-kZ9u0yRvDmtwwgSEG21v9vmQ7yQy00rwM-EUXJoU4ISY/FSharpInteractive.png?psid=1)
?
趕緊下載VS11體驗吧
[http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200098144](http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200098144)
?
?
- 前言
- Visual Studio 11開發指南(1) Visual Studio 11簡介與新特性
- Visual Studio 11開發指南(2) Visual Studio 11放棄宏處理
- Visual Studio 11開發指南(3)Visual Studio 11開發SharePoint 2011程序
- Visual Studio 11開發指南(4)Visual Studio 11編程語言發展
- Visual Studio 11開發指南(5)Visual Studio 11 IDE增強
- Visual Studio 11開發指南(6)Visual Studio 11平臺改進
- Visual Studio 11開發指南(7)NET 4.5的改善
- Visual Studio 11開發指南(8)Visual C++ 11新特色
- Visual Studio 11開發指南(9)Visual C++ 新功能體驗
- Visual Studio 11開發指南(10)Visual C++11 IDE 新功能體驗
- Visual Studio 11開發指南(11)Visual Studio 11調試游戲
- Visual Studio 11開發指南(12)Visual Studio 11可視化多核多線程編程的行為
- Visual Studio 11開發指南(13)C++11語言新特性
- Visual Studio 11開發指南(14)C++11---C++/ CX設計
- Visual Studio 11開發指南(15)C++11單元測試
- Visual Studio 11開發指南(16)C++11更新-多線程和異步操作管理
- Visual Studio 11開發指南(17)C++11更新- Lambda表達式
- Visual Studio 11開發指南(18)C++11更新-自動矢量器使用
- Visual Studio 11開發指南(19)C++11更新-并行模式庫和代理庫
- 在 C++ 中使用 PPL 進行異步編程
- 基于VisualStudio11開發Windows8的Metro sample講解(1)MessageBox
- Visual C++ 11 中新的并發功能
- 基于Windows8與Visual Studio2012開發內核隱藏注冊表
- 基于VC++2012在Windows8上實現文件隱藏
- 實現諾基亞 lumia Windows phone 的手機通話記錄截取
- 最短代碼實現windows8下的下載器-下載安裝執行一體化
- 用Visual studio2012在Windows8上開發內核驅動監視線程創建
- 用Visual studio2012在Windows8上開發內核驅動監視進程創建
- 基于Windows8與Visual Studio2012實現殺毒通用模塊
- 用Visual studio2012在Windows8上開發內核中隱藏進程
- 用Visual studio11在Windows8上開發內核枚舉注冊表
- 用Visual studio11在Windows8上開發內核驅動隱藏注冊表
- 用Visual studio11在Windows8上開發驅動實現注冊表監控和過濾
- 用Visual studio11在Windows8上開發驅動實現內存填0殺進程
- 【CSDN2012年度博客之星】喜歡本博客的讀者,投票贈送《visual C++2010開發權威指南》電子稿--感謝支持 ~(截至到2012年12月30日)
- 今天在清華圖書館看到我的杰作,感慨萬千,而我要歸零一切 !
- use Visual studio2012 developing kernel driver monitor thread creation on Windows8
- To kernel driver monitoring process developed in Windows8 create using Visual studio2012
- Under Windows8 kernel mode development NDIS application-NDIS Filter explain
- use Visual studio2012 development kernel to hidden process on Windows8