Visual Studio IconVisual Studio 2015 版本資訊


授權條款 | Visual Studio 部落格 | 開發人員社群

注意

這不是 Visual Studio 的最新版本。 若要下載最新版本,請參閱 Visual Studio 2019 的最新版本資訊


Visual Studio 2015 版本

您可以檢視 Visual Studio 2015 所有版本的版本資訊:

下載 Visual Studio 2015

您可以從 My.VisualStudio.com下載 Visual Studio 2015。 My.VisualStudio.com 需要免費的 Dev Essentials 訂用帳戶,或 Visual Studio 訂閱


Release Notes IconVisual Studio 2015

2015 年 7 月 20 日發行

此版本新功能的摘要

其他變更:

此版本新功能的詳細資料

適用於跨平台行動裝置應用程式開發的 Visual C++

您現在可以輕鬆地跨多個應用程式平台共用、重複使用、建置、部署和偵錯除了最特定平台程式碼以外的所有程式碼,通通可在 Visual Studio 中的單一解決方案中完成。 以下是您可以執行的一些事項:

  • 從適用於 Android Native Activity 應用程式的範本,或從適用於您可以在多個平台和 Xamarin 原生 Android 應用程式中使用之共用程式碼庫的範本,建立專案。

  • 使用平台特定的 IntelliSense 來探索 API,並產生以 Android 或 Windows 為目標的正確程式碼。

  • 針對 x86 或 ARM 原生平台設定您的組建。

  • 將您的程式碼部署至連接的 Android 裝置,或使用 Microsoft 具效能的 Android 模擬器進行測試。

  • 在 Visual Studio 偵錯工具中設定中斷點、監看變數、檢視堆疊及逐步執行程式碼。

  • 使用 LogCat 檢視器以從 Android 裝置檢視訊息記錄。 (Logcat 是診斷工具,對於良好的編輯->建置->偵錯體驗至關重要。)
    請使用 Logcat 來進行下列作業:

    • 使用搜尋列搜尋特定的記錄訊息。
    • 使用 [切換自動捲動] 輕鬆檢視即將推出的記錄訊息。
    • 清除先前的記錄輸出訊息。
    • 選擇各種記錄等級。
  • 撰寫以 iOS 平台為目標的 C++ 程式碼,並利用我們的進階程式碼編寫功能,例如但不限於程式碼共用、跨平台 IntelliSense、重構和瞄核定義。 iOS 支援仍在進行中,因此請留意即將推出的此功能。 您可以使用針對錯誤 (bug) 的 [連絡] 傳送意見反應給我們。 此外,您也可以在 Visual Studio IDE 中使用 Send-a-Smile 向我們傳送您的快速想法。

我們也新增了或更新了如下項目:

  • 支援 Android API 等級 21 (Lollipop)。
  • 以 Android 檔案支援為基礎的新範本,允許您使用外部建置系統 (包括 NDK- BUILD)。
  • 所有範本中的先行編譯標頭檔 (包括動態共用程式庫、靜態程式庫和跨平台行動範本)。

Visual Studio Tools for Apache Cordova

Visual Studio Tools for Apache Cordova 先前稱為適用於 Visual Studio 的多裝置混合式應用程式,可讓您輕鬆地從一個簡單的 Visual Studio 專案來建置、偵錯並測試以 Android、iOS、Windows 和 Windows Phone 為目標的跨平台應用程式。

之前在 CTP 中可用的所有功能現在都在 Visual Studio 2015 RC 中提供,還包含了下列改進功能:

  • 儲存 Ripple 的更新 – 不需要重建!
  • 將應用程式部署到 iOS 模擬器或 Mac 上的連線裝置時,從 Visual Studio 偵錯應用程式的 iOS 版本
  • 改善內含遠端 iOS 組建代理程式的安全性和簡易的設定
  • 改善的外掛程式管理體驗,其中包含從 Git 或檔案系統為專案新增自訂外掛程式的支援
  • 從改進的 config.xml 設計工具中選取平台特定的設定選項
  • Apache Cordova 4.0.0 的支援。

我們聽取了您的意見反應,擴大了您可以偵錯的裝置數目,如下所示:

  • 使用 jsHybugger 的 Android 4.4、Android 4.3 和更早版本
  • iOS 6、7 和 8
  • Windows 市集 8.1

然後我們進一步擴大了偵錯支援範圍。 您現在可以偵錯以 Windows Phone 8.1 為目標的 Apache Cordova 應用程式。

可以在 Windows Phone 8.1 模擬器或連結裝置上設定中斷點、檢查變數、使用控制台,以及執行其他偵錯工作。

Debugging with Visual Studio Tools for Apache Cordova

我們為 RC 版本新增了 CLI 互通性。 Visual Studio 中的 Cordova 專案現在會與在您磁碟上專案資料夾所做的變更同步。 無論您是使用協力廠商工具或在其他作業系統上工作,變更都可以進出 Visual Studio。 (Cordova 專案的預設檔案結構是以 Apache Cordova 命令行工具預期的結構為基礎,這可讓您更輕鬆地直接使用 Apache Cordova CLI 或其他需要該資料夾結構的工具。)

Visual Studio 的 Android 模擬器

您可以在 Visual Studio (Xamarin 或 C++) 的跨平台專案中,或在 Visual Studio Tools for Apache Cordova 中使用 Visual Studio 的 Android 模擬器。 模擬器可讓您在不同的平台模擬器之間切換,而不會發生 Hyper-V 衝突。 它支援各種不同的感應器和模擬,包括 GPS/位置、加速計、螢幕旋轉、縮放、SD 記憶卡、相機、多觸控和網路存取。 它也支援 Android 版本 4.4 (KitKat、API 等級 19) 和 5.0 (Lollipop、API 等級 21)。

Visual Studio 的 Android 模擬器同時支援 WiFi 模擬,以及從數個不同的裝置硬體設定中選擇的能力。

我們為 RTM 新增了下列新功能:

  • 新平台。 Jellybean (API 17) 與 Lollipop 5.1 (API 22) 映像可供使用。
  • 命令列介面。 在命令提示字元中瀏覽至 %programfiles(x86)%\Microsoft Emulator Manager\1.0\emulatorcmd.exe,可讓您與模擬器管理員互動 (列表、安裝、啟動設定檔等等),而不需 UI。
  • 拖放 zip 程式庫。 將可快閃的 ZIP 拖放到模擬器中現在會將其自動解壓縮並進行安裝。
  • SD 記憶卡索引標籤。[其他工具] 視窗中的這個新索引標籤可讓您從 SD 記憶卡來回推送和提取資料。
  • 自行取得。 模擬器可以安裝在機器上,而不需要安裝 Visual Studio。 模擬器管理員的捷徑會出現在 [開始] 功能表 中,讓您可以從任何開發工具鏈加以啟動並使用。

如需詳細資訊,請參閱 Visual Studio 的 Android 模擬器

適用於通用 Windows 應用程式開發的 Visual Studio Tools

適用於通用 Windows 應用程式開發的 Visual Studio Tools 會與 Visual Studio 設定整合。 這些工具可讓您建置跨所有 Windows 10 裝置執行的 Windows 應用程式 – 您口袋中的手機、袋子裡的平板電腦或膝上型電腦、桌上的電腦、IoT 裝置,以及很快地還會包含您家中的 Xbox 主機、Surface Hub 等等。 此外,您也可以使用這些工具來建置利用 Windows 10 API 的 Windows 傳統型應用程式。 如需詳細資訊,請參閱適用於通用 Windows 應用程式的 Visual Studio Tools 新功能 (英文)。

如需 Windows 應用程式開發的詳細資訊,請參閱通用 Windows 應用程式指南Windows 開發人員中心。 如需最新 Windows 組建和 SDK 的相關資訊,請參閱 Windows 測試人員入口網站。

Visual C++

在此版本中,C++ 編譯器和標準程式庫已隨 C++11 的增強支援和特定 C ++14 功能的初始支援而更新。 其中也包括 C++17 標準預期會有的特定功能之初步支援。

此外,還修正了逾 500 個編譯器錯誤 (bug),包括許多客戶透過 Microsoft 開發人員社群提交的問題 — 感謝您!

語言功能

我們新增了下列新功能,以讓編譯器更接近標準 C++:

  • 可繼續函式 (resume/await) resume 和 await 關鍵字提供非同步程式設計的語言等級支援,並啟用可繼續函式。 目前,這項功能只適用於 x64 的目標。 針對 C++17 提議 [N3858]
  • 泛型 (多型) Lambda 運算式 現在可以使用 auto 指定 Lambda 函式參數型別;編譯器會在此內容中解譯 auto,將 Closure 函式呼叫運算子解釋為成員函式範本,而且每次在 Lambda 運算式中使用的 auto 都會對應至不同的範本型別參數。 C++14
  • 通用 Lambda 擷取運算式,也稱為 init-capture。 現在可以將任意一個運算式的結果指派給 Lambda 擷取子句中的變數。 這可用傳值方式擷取 move-only 類型,並讓 Lambda 運算式定義其 Closure 物件中的任意資料成員。 C++14
  • 現在支援二進位常值。 這類常值前面會加上 0B 或 0b,而且只能由數字 0 和 1 組成。 C++14
  • 傳回型別推斷 現在可以推算一般函式的傳回型別,包括具有多個傳回陳述式的函式和遞迴函式。 這類函式定義前面有 auto 關鍵字,如同有尾端傳回型別的函式定義,但會省略尾端傳回型別。 C++14
  • decltype(auto) 型別推斷使用 auto 關鍵字,以從運算式中初始化刪除運算式的 ref 限定詞和最上層的 cv 限定詞。 decltype(auto) 保留 ref 和 cv 限定詞,除了要引進有推斷的或尾端傳回類型的函式以外,可立即在能用 auto 的任何地方使用。 C++14
  • 移動特殊成員函式的隱含產生 若條件允許時,移動建構函式和移動指派運算子現在會以隱含方式產生,因此讓編譯器能完全符合 C++11 右值參考。 C++11
  • 繼承建構函式 藉由將使用 Base::Base 的陳述式列入其定義中,衍生的類別現在可指定其會繼承其基底類別 (Base) 的建構函式。 衍生的類別只可以繼承其基底類別的所有建構函式,而沒有辦法繼承只有特定基底的建構函式。 如果衍生的類別具有相同簽章的建構函式,會無法從多個基底類別繼承;衍生的類別也無法定義具有任何它所繼承的建構函式相同簽章的建構函式。 C++11
  • 對齊方式查詢和控制項 可以使用 alignof() 運算子查詢變數的對齊方式,並使用 alignas() 指定名稱來控制。 alignof() 會傳回在必須配置之型別執行個體上的位元組界限;參考會傳回參考型別的對齊方式,而陣列則會傳回元素型別的對齊方式。 alignas() 控制變數的對齊方式,會採用常數或型別,其中的型別是 alignas(alignof(type)) 的縮寫。 C++11
  • 擴充 sizeof 現在可使用 sizeof() 來判斷類別或結構的成員變數大小,而不需該類別或結構的執行個體。 C++11
  • constexpr C++11 constexpr 的部分支援。 C++11 (部份)
  • 使用者定義常值 (UDL) 現在可以附加有意義的後置詞至數字和字串常值,為其提供特定語意。 編譯器會將尾碼常值解譯為適當的 UDL 運算子呼叫。 C++11
  • 安全執行緒的 "Magic" 靜態變數 現在會以執行緒安全的方式初始化靜態區域變數,而不必手動同步處理。 只有初始化是安全執行緒,以多個執行緒使用靜態區域變數仍必須以手動方式同步處理。 若要避免採用 CRT 相依性,使用 /Zc:threadSafeInit- 旗標可停用安全執行緒的靜態變數功能。 C++11
  • 執行緒區域儲存體 使用 thread_local 關鍵字來宣告應該為每個執行緒建立獨立的物件。 C++11
  • 現在可用 noexcept 運算子來檢查運算式是否可能會擲回例外狀況。 現在可用 noexcept 規範指定讓函式不擲回例外狀況。 C++11
  • 內嵌命名空間 現在可指定命名空間為內嵌,將內容放進封入的命名空間。 根據預設,內嵌命名空間可用來建立會公開其最新版本的版本化程式庫,同時仍讓舊版應用程式開發介面的版本明確。 C++11
  • 無限制的等位 現在等位型別包含具有非一般建構函式的型別。 這類等位的建構函式必須加以定義。 C++11
  • 新字元型別和 Unicode 常值 現在支援 UTF-8、UTF-16 和 UTF-32 的字元和字串常值,並引進新的字元型別 char16_t 和 char32_t。 字元常值前面可加上如 U'a' 中的 u8 (UTF-8),u (UTF-16) 或 U (UTF-32),而字串常值前面可另外加上原始字串對等項目 u8R (UTF-8 原始字串),uR (UTF-16 原始字串) 或 UR (UTF-32 原始字串)。 通用字元名稱可以自由地用於 Unicode 常值,如同 u'\u00EF'、u8"\u00EF is i" 及 u"\U000000ef is I" 所示。 C++11
  • func 預先定義的識別碼 func 以隱含方式定義為字串,其中包含封入函式不合格及未修飾的名稱。 C++11
  • __restrict 現在可套用 __restrict 至參考。
  • Typename 關鍵詞。 使用者現在可以在範本範本範本參數中寫入 typename,而非類別。 C++14
  • 現在可以多載 globals void operator delete(void *, std::size_t) noexceptvoid operator delete[](void *, std::size_t) noexcept。 C++14
  • 數字分隔符號 現在您可以使用單引號來散置數字常值,使其更容易讀取。 例如 int x = 1'000'000;。 C++14
  • 常值中的通用字元名稱 您現在可以將基本字元 (例如 'A' 和換行字元) 寫入為常值中的字碼指標。 例如 const char *s = "\u0041\u000A";。 C++11
  • 非靜態資料成員初始設定式現在可與初始設定式清單正確地搭配使用。 C++11
  • 屬性 您現在可以將函式指定為 [[noreturn]] 以告知編譯器函式不會傳回 (雖然它可以擲回例外狀況)。 現在也可以將各種建構指定為 [[deprecated]]。 命名空間和列舉程式現在允許屬性。 C++11、C++14 與 C++17
  • 使用者定義常值 (UDLs) 數值和字串常值現在可以具備有意義的後置詞,其可在常值資料上執行自訂的計算。 C++11
  • 資料相依性排序屬性 您現在可以將函式參數、Lambda 參數或函式宣告指定為 [[carries_dependency]],以改善經常讀取但很少修改之並行資料結構的最佳化。 C++11
  • 附有 braced-init-lists 的新自動化規則 copy-list-initializations 的自動化推算現在會推算 std::initializer_list 或為不正確格式。 C++17

Visual C++ 程式庫功能

  • 標準程式庫型別的使用者定義常值 (UDL) 現在 <chrono>、<string> 和 <complex> 標頭會提供 UDL 運算子,方便您使用。 例如,123ms 表示 std::chrono::milliseconds(123)、"hello"s 表示 std::string("hello") 和 3.14i 表示 std::complex(0.0, 3.14)。
  • Null 正向迭代器 現在標準程式庫可建立不參考容器執行個體的正向迭代器。 已將這類迭代器初始化為值,並比較是否與特定容器類型相等。 將已初始化為值的迭代器和未初始化為值的另一個相比較尚未定義。 C++14
  • quoted() 標準程式庫現在支援 quoted() 函式,以方便使用引號括住的字串值和 I/O。 在使用 quoted() 的情況下,會把整個加引號的字串視為單一實體 (如同非空格字元的字串是 I/O 資料流);此外透過 I/O 作業,逸出序列會保留下來。 C++14
  • 異質關聯查閱 標準程式庫現在支援關聯容器的異質查閱函式。 只要類型與 key_type 相當,這類函式可讓 key_type 以外的類型查閱。 C++14
  • 編譯時間整數序列 標準程式庫現在支援表示整數值序列的 integer_sequence 型別,可以在編譯時間評估以讓使用參數封裝更為方便,並簡化特定範本的程式設計模式。 C++14
  • exchange() 標準程式庫現在支援 std::exchange() 公用程式函式,以指派新值給物件並傳回其舊值。 對於複雜型別,使用移動建構函式時,exchange() 可避免複製舊值,如果它是暫存的或已移動,則可避免複製新值,以及在利用任何轉換指派運算子的新值時接受任何型別。 C++14
  • 雙重範圍 equal()、is_permutation()、mismatch() 標準程式庫現在支援接受兩個範圍的 std::equal()、std::is_permutation(),及 std::mismatch() 的多載。 這些多載會處理不同長度的序列。 C++14
  • get<T>() 標準程式庫現在支援 get<T>() 範本函式,以允許依其型別處理元組元素。 如果元組包含 2 個或多個相同型別的 get<T>() 元素,則該型別無法由此元組處理,但仍可處理型別是唯一的其他元素。 C++14
  • tuple_element_t 標準程式庫現在支援 tuple_element_t<I、T> 型別的別名,這是 typename tuple_element<I、T>::type 的別名。 這會提供範本程式設計人員一些便利,類似於 <type_traits> 中的其他 metafunction 型別別名。 C++14
  • 檔案系統 "V3" 技術規格 檔案系統技術規格包含的實作已更新為此最終版本。
  • 最小配置器 標準程式庫現在全面支援最小配置器介面;值得注意的修正包含 std:: function、shared_ptr、allocate_shared() 和 basic_string。 C++11
  • <chrono> 已修正 high_resolution_clock 和 steady_clock 的 chrono 型別。 C++11
  • constexpr 已在整個 C++ 標準程式庫中實作。 C++11、C++14 與 C++17
  • quick_exit() 您現在可以呼叫 quick_exit() 並在 at_quick_exit() 中執行清除程式碼,以更徹底地終止多執行緒流程。 C++11
  • void_t 支援進階範本中繼程式。 C++17
  • 現在允許 unique_ptr<T[]> 的轉換,現在已知其為安全。 C++17
  • invoke() 允許使用統一語法呼叫函式物件、成員函式指標,以及資料成員指標。 C++17
  • noexcept 標準程式庫已清除其在特定函式上 noexcept 的使用。 C++17
  • uncaught_exceptions() 回報發行小眾測試版報告 (可能超過 1 項) 中的例外狀況數目。 C++17
  • reference_wrapper 現在可一般地複製。 C++17
  • map/unordered_map 現在支援 insert_or_assign()/try_emplace()。 C++17
  • 現已提供 size()empty()data() 非成員函式。 C++17
  • auto_ptrrandom_shuffle()舊<函式>機制已於 C++11/14 中淘汰,並在 C++17 中移除。 Visual Studio 2015 預設會提供它們,但在專案範圍中將 _HAS_AUTO_PTR_ETC 定義為 0 會移除其定義。
  • unique_ptr 指派現在受到精確限制。 C++17
  • 現在支援 bool_constant 作為 integral_constant<bool> 的別名。 C++17

Visual C++ 更快速建置

  • 累加連結時間程式碼產生 (LTCG) 現在您可以告知 LTCG 只重建受編輯影響的專案部分。 這可大幅減少使用 LTCG 應用程式的連結時間。 使用 /LTCG:incremental 連結器切換來啟用此功能。
  • 靜態程式庫的累加連結 現在由其他程式碼模組所參考之靜態程式庫的變更會以累加方式連結。
  • /Debug:FastLink 可藉由使用新的 PDB 建立技巧大幅減少連結時間。
  • 連結器的演算法已改良,以減少連結時間。
  • 已有更快建置範本大量程式碼的改良。
  • 快速特性指引最佳化 (PGO) 檢測 PGO 中已導入新的輕量型檢測模式來打造遊戲和即時的系統。 搭配其他在 /GENPROFILE 和 /FASTGETPROFILE 連結器參數中的新功能,當您使用 PGO 時,現在您可以在程式碼品質和建置速度之間取得平衡。
  • 減少目的檔大小 編譯器和 C++ 標準程式庫增強功能會使目的檔和靜態程式庫大幅變小。 這些增強功能不會影響動態連結程式庫 (DLL) 或可執行檔 (EXE) 的大小,因為在過去已由連結器移除多餘的程式碼。

Visual C++ 效能和程式碼品質

  • 自動向量化的改進。 我們已改進控制流程 (if-then-else) 的向量化、在 /O1 (最小大小) 編譯時的向量化,並改進整體向量程式碼品質,包括支援平行 STL、向量化更大範圍架構下的 for loop,以及支援 #pragma loop(ivdep)。
  • 純量最佳化的改進。 我們已新增較佳的位元測試作業程式碼產生、控制流程合併和最佳化 (loop-if 切換),及其他純量的最佳化 (例如,較佳的 std::min 和 std::max 程式碼產生)。
  • 特性指引最佳化 (PGO)。 我們已對 PGO 進行眾多的增強功能,包括改良的參考集,較佳的資料配置功能,以及可重複使用先前所做之内嵌、速度與大小相比,以及配置決策的能力。
  • 控制流程成立條件 (CFG)。 我們新增了新的安全性功能;只要將新選項新增至專案,Visual C++ 編譯器現在會將額外的安全性檢查插入您的二進位檔,以協助偵測對您程式碼劫持的嘗試。 當檢查觸發時,它會在劫持者損壞您的資料或電腦之前先停止執行您的程式碼。

注意

我們已更新命令選項。 您現在應該使用 /guard:cf,而不是如在先前版本中一樣使用 /d2guard4 切換。

Visual C++ 生產力、偵錯和診斷

藉由下列功能,我們已加入 C++ 的重構支援:

  • 重新命名符號 將某符號的所有發生事件變更為新名稱。
  • 函式擷取 將選取的程式碼移入至它自己的函式。 這項重構功能可做為 Visual Studio Gallery 上的 Visual Studio 擴充。
  • 實作純虛擬函式 產生類別或結構繼承之純虛擬函式的函式定義。 支援多個與遞迴的繼承。 從繼承的類別定義啟用這項重構功能,以實作所有繼承的純虛擬函式,或只從基底類別規範實作該基底類別的純虛擬函式。
  • 建立宣告或定義 從現有的定義或現有宣告中的預設定義中產生宣告。 從現有的宣告或定義,或從燈泡指示器存取這項重構。
  • 移動函式定義在原始程式碼和標頭檔之間移動函式的主體。 從該函式的簽章啟用這項重構。
  • 轉換成原始字串常值 將包含逸出序列的字串轉換成原始字串常值。 支援的逸出序列為 \n (新行)、\t (定位字元)、' (單引號)、" (雙引號) 和 ? (問號)。 在字串內的任何位置按一下滑鼠右鍵,啟用這項功能。

Visual C++ 中的 Program Database (PDB) 增強功能包含如下:

  • 方案掃描速度已改進,特別是針對大型方案。
  • 除了在第一次開啟新方案時的初始方案掃描期間以外,在方案掃描期間,像是移至定義等的作業不會再受到封鎖。

IntelliSense 可讀性改進:參數說明及 QuickInfo 中的複雜範本具現化和 typedef 已簡化,使其更容易閱讀。

C++ 中的偵錯工具視覺效果

將 Natvis 偵錯工具視覺效果新增到您的 Visual Studio 專案中,使管理和原始檔控制整合更輕鬆。 加入至專案的 Natvis 檔案之評估優先順序高於在專案外部的 Natvis 視覺化檢視。 如需詳細資訊,請參閱在偵錯工具中建立原生物件的自訂檢視

且自 RC 起,您可以在 Android 上偵錯 C++ 時使用 Natvis 檔案。 偵錯工具包含許多常見範本的視覺效果,並支援載入新增至 C++ 專案的自訂檔案。

原生記憶體診斷

  • 記憶體診斷工作階段 (Alt + F2) 讓您監視原生應用程式的即時記憶體使用。
  • 記憶體快照擷取應用程式堆積內容的瞬間影像。 藉由比較兩個記憶體快照,可檢查堆積狀態中的差異。 在停止應用程式之後,檢視物件類型、 執行個體值和每個執行個體的呼叫堆疊配置。

已改善從 [監看式] 和 [立即] 視窗中呼叫 C++ 函式時的死結偵錯與復原。

改善的編譯器診斷 - 編譯器會提供有關可疑程式碼的增強型警告。 已加入新的警告 (例如已遮蔽的變數和不相符的 printf 格式字串)。 現有的警告訊息已更加清楚。

/Wv 旗標 - 在特定的編譯器版本 XX.YY.ZZZZ 之後導入的警告可藉由使用 /Wv:XX.YY.ZZZZ 旗標停用。 除了透過 /Wv 旗標指定的警告以外,亦可特別停用其他警告。

改善的偵錯最佳化程式碼支援 - /Zi、/Zo 或 /Z7 旗標偵錯程式碼已啟用。

Visual C++ 圖形診斷

已藉由下列功能改善圖形診斷:

  • 連續擷取 在一次擷取中,擷取最多 30 個連續的畫面格。
  • 程式設計擷取 以程式設計方式起始畫面格擷取。 程式設計擷取特別適用於偵錯絕不呼叫存在的程式之計算著色器,或適用於當呈現問題很難手動擷取,但可透過程式設計方式從執行階段的應用程式狀態進行預測時。
  • 增強型圖形事件清單 新增新的繪製呼叫檢視,可顯示由繪製呼叫所整理之階層中的擷取事件和其狀態。 您可以展開繪製呼叫,以顯示繪製呼叫時的目前裝置狀態,而且可以進一步展開每種狀態類型,以顯示設定其值的事件。
  • 適用於 Windows Phone 8.1 的支援 現在圖形診斷完全支援在 Phone 模擬器中或在行動網路共享之電話中 Windows 應用程式的偵錯。
  • 圖形畫面格分析 這項工具在擷取的畫面格上收集效能測量資料;它另外會執行一組預先定義的實驗,可深入了解在套用各種不同的紋理技術時,效能會如何受影響。 畫面格分析也會從硬體收集效能計數器。
  • 圖形分析的專用 UI 新的 Visual Studio 圖形分析器視窗是分析圖形畫面格專用的工作區。
  • 編輯及套用著色器 不需重新執行應用程式,即可檢視在擷取記錄中之著色器程式碼變更的影響。
  • 在 [工具] -> >[選項] -> >[圖形診斷] 中設定擷取選項
  • 擷取和重播畫面格的命令列工具
  • DirectX12 的圖形診斷支援。 Visual Studio 圖形診斷工具現在支援偵錯 DirectX 12 應用程式中的轉譯問題。

新的 GPU 使用量工具

Visual Studio 2015 中的 GPU 使用量工具可用來了解 DirectX 應用程式的 GPU 使用量。 即時執行應用程式時,可使用畫面格時間、 畫面播放速率和 GPU 使用率圖表。 此外,藉由收集和分析詳細的 GPU 使用量資料,此工具可深入了解個別 DirectX 事件的 CPU 和 GPU 執行時間,因此可用來判斷 CPU 或 GPU 是否達到效能瓶頸。

啟用 Visual C++ 受控測試專案的偵錯

此版本中的新功能:若要啟用 Visual C++ 受控測試專案的偵錯,請移至 [工具] | [選 項] | [偵錯] | [一般] 窗格,並核取 [模組載入時隱藏 JIT 最佳化 (僅限 Managed)] 選項。

C# 和 Visual Basic

語言功能

在此版本中,數個新 C# 和 Visual Basic 語言功能可協助減少每日程式碼中的重複使用和雜亂,進而鼓勵更具宣告式的程式設計風格,並可將這兩種語言更緊密地結合在一起。 例如對型別和成員宣告以及對 Null 檢查都有語法改善。 此外,可以在運算式內宣告區域變數,並且可在 catch 和 finally 區塊中使用 await。 許多這些功能只會針對舊版的兩種語言之一實作,但在最終版本中會在兩種語言中同時提供。

  • Nameof 提供取得名稱 (例如參數、成員或型別做為字串) 的安全重構方式。
  • 使用 Null 條件運算子,您可以在存取和叫用成員與索引子時取得內建 Null 檢查。
  • 字串內插補點:字串內插補點提供了可將運算式插入格式字串之描述字串範本的簡潔方式 (C# 僅為預覽版,VB 和 C# 皆為 RTM)。
  • 方法getter-only 屬性等等現在可以將單一運算式做為其主體,就像 Lambda 一樣。
  • 自動屬性可以有初始設定式,而且不再需要 setter。
  • 索引初始設定 :您現在可在物件初始設定式內初始化新物件的特定索引。 僅限 C#
  • 例外狀況篩選 可讓您查看例外狀況,並決定是否要使用指定的 catch 區塊來攔截它。
  • 使用靜態類別的子句可將其靜態成員直接帶入範圍內,因此您可以呼叫 WriteLine() 或 Sqrt(),而不需具備此類別名稱的前置詞。
  • Await 現在可在 catch 和 finally 區塊中運作,避免了一些非常棘手的因應措施。

程式代碼編輯器 UI 與編輯

C# 和 Visual Basic 的程式碼編輯器 UI 與編輯體驗已經由以 .NET Compiler Platform ("Roslyn") 為基礎而建置的新體驗所取代。 您現在喜歡的許多功能都已經過改善或改造。

  • 燈泡是您在 Visual Studio 編輯器中採取之所有快速動作的新地點,包括常見程式碼問題的修正程式和重構程式碼。 當您的程式代碼中有問題時,燈泡會顯示針對這些問題的建議修正程式。 所有重構作業都已移至燈泡中。 您可以隨時輸入 Ctrl + <點>來存取燈泡。

Light bulb shows suggestions

  • 有兩種新的核心重構作業:內嵌暫存變數引進本機。 以下是新引進本機功能的範例:

Introduce local light bulb

以及內嵌暫存變數的範例:

Inline temporary light bulb

  • 首次新增了 Visual Basic 的重構支援,並且也已移至燈泡中。
  • 重新命名也已經改善;現在它會醒目提示您想要重新命名之識別碼的所有執行個體,讓您直接在編輯器中輸入所有執行個體的新名稱。

Improvements to inline renaming

  • 您可以在輸入的同時取得即時程式碼分析和自動修正程式,並針對您要設定目標的 Microsoft 平台和 NuGet 套件提供特定的程式碼意識指引。 在預覽版中,您需要透過您從 NuGet 資源庫取得的 NuGet 套件中新增即時 FxCop 分析器,就如同對任何其他套件一樣。 當您引入任何指定的即時規則時,它會取代同等的建置後 FxCop 規則,因此您不會收到重複的點閱。 以下是適用於 Azure 的 Code Analysis 封裝範例。

An example from the Code Analysis for Azure package

  • 已重寫 C# 和 Visual Basic 的運算式評估工具。 改善包括 [監看式] 和 [立即] 視窗 中 LINQ 和 Lambda 運算式的支援。

F#

語言和執行階段功能

F# 4.0 包含許多新語言和執行階段的新增項目,可填補空缺、讓更多事項「專注工作」,並提升關鍵領域的效能。 編譯器以及執行階段也實作了許多錯誤 (bug)和小型效能最佳化。

  • 建構函式即第一類別函式 - 類別名稱現在可以做為第一類函式值使用,代表了該類別的建構函式。
  • 'mutable' 和 'ref' 的統一 - 'mutable'語法現在可以隨處使用,而擷取的值會在需要時由編譯器自動轉換成堆積型 'ref' 值。 新增了新的選擇性警告,以便開發人員希望在發生這種情況時收到通知。
  • 可提供方法的靜態參數 - 型別提供者所提供的個別方法現在可以指定靜態參數。
  • 不可為 Null 提供的型別 - 現在可以透過標準 [<AllowNullLiteral(false)>] 將提供的型別指定為不可為 Null。
  • 方法引數的隱含引號 - 型別 Expr<'t> 的方法引數現在可以透明地自動加上引號,從而傳遞引數值和產生其的運算式 AST。。
  • 延伸的前置處理器文法 - 布林值運算子 ||、&& 與 ! 現在可以與 ( ) 分組在 #if 前置處理器指示詞中使用。
  • 測量單位中的理性指數 - 測量單位現在支援理性指數,這些指數有時用於物理科學,例如電機工程學
  • 使用 'printf'樣式函式簡化測量單位值的使用 - 統一的數值現在可與數值 printf 格式指定名稱順暢地地合作,無需移除單位。
  • 支援高維度 .NET 陣列 - .F# 程式碼現在可以取用排名前 5 或更好的 .NET 陣列。
  • 物件初始設定式中的擴充屬性 - 現在可以在物件初始設定式運算式中指派可設定的擴充屬性。
  • 從多個泛型介面具現化繼承 - 現在允許 F# 編寫的類別從實作多個泛型介面具現化的類別繼承。
  • 'StructuredFormatDisplayAttribute' 中的多屬性 - 透過 [<StructuredFormatDisplay>] 指定的%A 格式設定現在可以包含多屬性。
  • 前置 'Microsoft' 命名空間可選用 - 從 FSharp.Core 取用或開啟模組和命名空間時,前置的 “Microsoft” 現在可選用。

F# 執行階段

  • 陣列、清單和 Seq 模組的正規化 - 集合處理函式集現在在陣列、清單和 Seq 模組之間保持一致 (除了不適用於特定型別的 API 以外),且每個型別都有專用且最佳化的實作。
  • 最佳化結構雜湊 - 已進行重大最佳化來改善基本型別之泛型雜湊比較的效能,進而達成由 API (例如 'distinct' 和 'groupBy') 的效能提升。
  • 最佳化的非結構比較運算子 - FSharp.Core.Operators.NonStructuralComparison 模組現在可以開啟,以更有效的非結構運算子取代預設的 F# 結構比較運算子。 這在處理具有自定義運算子實作的型別時 (特別是值型別時),可提供顯著的效能提升。
  • F# 清單上的 Slicing 語法 - F# 清單現在支援配量語法以取得子清單。
  • System.Net.WebClient 的非同步擴充 - WebClient 擴充 AsyncDownloadFile 和 AsyncDownloadData 現已可供使用。
  • 更好的非同步堆疊追蹤 - F# 非同步計算中發生的例外狀況現在會帶有更方便使用的堆疊追蹤,讓您更容易診斷問題。
  • Interop APIs for Option - 已將各種新的 API 新增至 Option 模組,以在 Null 物件和 System.Nullable 值之間進行轉換。
  • System.Decimal 值的引號現用模式 - 現在內建了現用模式,以比對引號中的常值 System.Decimal 值。

F# IDE 功能

Visual F# 工具中有新的體驗和功能,以及數個錯誤 (bug) 修正。

  • 指令碼偵錯 - F# 指令碼現在可以直接在 Visual Studio 偵錯工具中進行偵錯。
  • 專案範本中的組件中繼資料 - 所有 F# 專案範本現在都包含內含常用元件等級中繼資料屬性的 AssemblyInfo.fs 檔案。
  • 整合式最新檢查 - F# 專案現在會在 Visual Studio 中建置時正確回報其「最新」狀態。
  • 物件初始設定式中的 IntelliSense 完成 - 物件初始設定式運算式現在支援使用ctrl+Space 進行可設定屬性的 IntelliSense 完成。
  • 具名參數的 IntelliSense 完成 - 方法與建構函式呼叫現在支援使用ctrl+Space 進行具名參數的 IntelliSense 自動完成。
  • 針對資料夾的錯誤 (bug) 修正支援 - Visual F# 工具並不直接支援專案中的資料夾,但數項已修正的專案系統錯誤 (bug) 可改善由 Visual F# Power Tools 擴充新增的資料夾支援。

.NET Framework 4.6

.NET Framework 的最新版本為 4.6。 它在應用程式開發技術中具有許多增強功能,例如 ASP.NET、Windows Communication Foundation 和 Windows Presentation Foundation。 在網路、.NET Framework 基底類別庫,以及通用語言執行平台 (包括新的 64 位元 JIT 編譯器、通用 Windows 平台應用程式的原生程式碼編譯、組件載入器改進) 方面也有變更。

變更的幾項範例如下:

  • ASP.NET 模型繫結方法現在會傳回工作。
  • ADO.NET 現在支援 SQL Server 2016 Community Technology Preview 2 (CTP2) 提供的 Always Encrypted 功能。
  • Windows Presentation Foundation (WPF) 為觸控提供更好的支援並提供改進的 HDPI 配置。
  • Windows Communication Foundation (WCF) 現在除了 SSL 3.0 和 TLS 1.0 之外,還支援 SSL 版本 TLS 1.1 與 TLS 1.2。
  • .NET Framework 基底類別庫包含記憶體回收、以工作為基礎的非同步模式和加密的增強功能。 它還新增了已啟用 SIMD 的向量類型以及支援相容性切換,讓開發人員為其新程式庫版本支援的功能提供統一的選擇退出機制。

如需新增至 .NET Framework 之新功能的其他詳細資料和完整清單,請參閱 .NET Framework 的新功能 (部分機器翻譯)。

Entity Framework

此版本包含 Entity Framework 7 的預覽版本,以及 Entity Framework 6 更新 (主要包含錯誤 (bug) 修正和社群貢獻)。

Entity Framework 7

新版的 Entity Framework 會啟用新平台和新的資料存放區。 Windows Phone、Windows Store、ASP.NET 5 和傳統桌面應用程式現在可以使用 Entity Framework。 此版本的架構支援相關聯資料庫和非相關聯的資料存放區,例如 Azure 表格儲存體和 Redis。 它包含 EF7 執行階段的早期預覽,會安裝在新的 ASP.NET 5 專案中。 如需 EF7 的詳細資訊,請參閱什麼是 EF7

Entity Framework 6.x

此版本包含 Entity Framework 6.1.3 版本的執行階段和製造工具。 Entity Framework 6.1.3 包含錯誤 (bug) 修正和社群貢獻;您可以看到包含在 Entity Framework 6.1.3 中的變更清單。

本版本中的許多位置都包含 Entity Framework 6.1.1 執行階段。

  • 如果您在尚未安裝 EF 執行階段的專案中使用 Entity Framework Tools 建立新模型,則會安裝執行階段。
  • 執行階段會根據您選取的專案範本,在新的 ASP.NET 專案中預先安裝。

Visual Studio IDE

共用帳戶

此版本中的新功能,您可以與其他應用程式 (例如 Blend for Visual Studio 或 Microsoft Test Manager (反之亦然)) 共用您在 Visual Studio 中新增的使用者帳戶,。

共用的專案

在此版本中,提供了可建立 Visual Basic、C# 和 JavaScript 之空白共用專案的新範本。 這些共用專案現在可以由數個專案類型加以參考:

  • 任何無變體的 VB/C# 專案 (例如主控台應用程式、類別庫、Win 表格應用程式)
  • Windows Store 8.1 和 Windows Phone 8.1 (VB/C#/JavaScript)
  • Windows Phone Silverlight 8.0/8.1 (VB/C#)
  • WPF 和 PCL

您可以在 [共用專案] 索引標籤上,透過 [參考管理員] 新增/移除對共用專案的參考。共用專案參考會顯示在 [方案總管] 的 [參考] 節點下方,但會將共用專案中的程式碼和資產視為連結至主要專案的檔案。

程式碼編輯器 (所有語言)

檔案中尋找已藉由讓後續的結果附加至先前的結果而加以改善;可刪除累積的結果。

觸控支援現在可在 Visual Studio 編輯器中取得下列手勢:

  • 捲動 (在一般和增強式捲軸上的編輯器介面上點選和拖曳)
  • 捏合縮放
  • 點選編輯器邊界來選取整行,點兩下單字來對其加以選取
  • 長按以叫用編輯器捷徑功能表

我們知道觸控在較低的縮放等級時,點兩下手勢有不太可靠的問題。 我們想要聽取有關新觸控支援的意見反應,特別是您可能發現的任何問題。

XAML 設計工具

Visual Studio 客戶現在可以針對其使用的內容編輯儲存在外部資源字典中的範本和樣式。 此體驗已更完加完善,可使用 [瞄核] 在 XAML 設計工具中啟用真正的就地資源編輯。

自訂視窗配置

您現在可以按一下 [視窗] 功能表中的 [儲存視窗配置] 來儲存自訂視窗配置,並按一下 [視窗] 功能表中的 [套用視窗配置] 來套用自訂配置。 您也可以使用預先指派的鍵盤快速鍵來套用配置。 前九個配置也有從 Ctrl + Alt + 1 到 Ctrl+Alt+9.的鍵盤快速鍵。 您可以執行的其他工作包括按一下 [視窗] 功能表的 [管理視窗配置],以刪除、重新命名和重新排序配置。

高解析度圖示

當裝置以大於 100% DPI 縮放比例執行時,Visual Studio 會支援命令列、工具視窗工具列(標準)、主要功能表、錯誤清單、狀態列,以及某些 [方案總管] 專案類型中的高解析度圖示。

UI 改善

  • 功能表現在會以 [字首大寫] 樣式顯示,而非 [全部大寫] 樣式。
  • [Visual C++ 屬性頁] 對話方塊的 [設定] 和 [平台] 下拉式清單值已變更,以記住屬性頁關閉並重新開啟時最後一個使用者的選取項目。

Visual Studio 意見反應

我們已使用更好的工具來增強 [傳送苦臉] 體驗,以回報緩慢、停止回應和損毀。 您現在可以附加檔案或標記您的意見反應,以更清楚地描述問題。 此外,我們已更新 [意見反應] 圖示和功能表項目,以改善可探索性。

Visual Studio 擴充性

  • 您現在可以在 Visual Studio 擴充中使用高解析度圖示。
  • 此版本不再支援增益集。 我們已移除 Visual Studio 增益集專案範本和增益集管理員。 建議您將增益集轉換為 VSPackage 延伸模組。 如需詳細資訊,請參閱常見問題:將增益集轉換為 VSPackage 延伸模組 (英文)。
  • 您現在可以開啟延伸模組專案,即使未安裝 Visual Studio SDK。
  • 此外,您可以使用 Visual Studio 設定來安裝 Visual Studio SDK;不再需要前往網站。 若要這樣做:在 [新增移除程式] 功能表上,以滑鼠右鍵按一下 Visual Studio 2015,然後選取 [修改]。 從 [Visual Studio 設定] 對話方塊查看 [通用工具] 下的 [Visual Studio 擴充性工具]。
  • 若要提高擴充專案的可移動性和共用性,您可以使用 Visual Studio SDK 參考組件的 NuGet 版本。 如需詳細資訊,請參閱 Visual Studio 擴充性所發佈的組件。

深入了解 Visual Studio 擴充性

Blend

我們已重新設計 Blend for Visual Studio 2015,為您提供改善的使用者介面開發體驗,讓您建立更完善的 XAML 應用程式。 Blend 的時尚新風貌與 Visual Studio 一致、支援方案總管與 Team Explorer,以及擴充的檔案重新載入體驗,皆可輔助 Blend 和 Visual Studio 之間進行更佳的工作流程。 我們還提供了 Blend 最受歡迎的功能,幫助您更具生產力:

  • 您現在可以使用 XAML IntelliSense 更有效率地撰寫 XAML,以提供陳述式完成與來源的瀏覽。
  • 您也可以在搭配 XAML 瞄核定義使用的位置中檢視和編輯 XAML 控制項和資源。
  • 使用 XAML 偵錯的 UI 工具可以更輕鬆地尋找和修正您執行中應用程式內的 UI 問題,這些工具可讓您檢查樹狀結構中任何元素的即時視覺化樹狀結構與屬性。
  • 新增了 NuGet 支援後,您可以在 Blend 中管理 NuGet 套件。
  • 我們也將動畫工作區功能取代為功能更強大的已同步版面配置功能,可讓您用來建立許多不同的視窗配置,並在各機器間交換使用。
  • 對於寧願使用鍵盤而非滑鼠的進階使用者,我們讓 Blend 設計工具窗格可透過鍵盤完整存取。
  • 最後,Microsoft 長期以建立通用可存取的軟體為目標,Blend 現在是全螢幕助讀程式且高對比可存取。

若要深入了解新增至 Blend 的新功能,請瀏覽我們的預覽部落格文章。

偵錯和診斷

連結時進行受控編輯並繼續

自 RC 起,您可以在連結至 .NET 應用程式和環境變數時進行編輯並繼續

complus_forceenc 在目標流程中設為 1。

中斷點設定

新的 [中斷點設定] 視窗可讓您指定中斷點的條件和動作。 視窗包含改善中斷點條件和動作的 IntelliSense 支援。 您可以使用復原 (CTRL+Z) 來還原已刪除的中斷點。

偵錯工具視窗中的 Lambda 運算式

您現在可以在 C# 和 Visual Basic 的 [監看式]、[立即] 和其他偵錯工具視窗中使用 Lambda 運算式。

效能提示

您可以使用 PerfTips 功能來查看當使用偵錯工具設定中斷點與步驟時,程式碼直接在編輯器中執行所花費的時間長度。

GPU 使用量

您可以使用 GPU 使用量工具來了解 DirectX 應用程式的 GPU 使用量。 即時執行應用程式時,可使用畫面格時間、畫面播放速率和 GPU 使用率圖表。 此外,藉由收集和分析詳細的 GPU 使用量資料,此工具可深入了解每項獨立 DirectX 事件的 CPU 和 GPU 執行時間,因此可用來判斷 CPU 或 GPU 是否達到效能瓶頸。

C++ 偵錯工具的改進

當 C++ 偵錯工具在中斷點停止時,它可以執行程式碼以計算結果,例如在 [監看式] 和 [立即] 視窗中顯示資料。 如果偵錯工具偵測到呼叫函式已為死結,則會嘗試解決問題。

當 C++ 偵錯工具啟動流程時,Windows 現在會使用一般堆積來配置記憶體,而不是偵錯一般堆積。 這會導致更快開始進行偵錯。

XAML 的 UI 偵錯工具

我們新增了兩項新工具 [即時視覺化樹狀結構] 與 [即時屬性總管],它們可檢查正在執行之 WPF 應用程式的視覺化樹狀結構,以及樹狀結構中任何元素的屬性。 這些工具可讓您選取執行中應用程式內的任何元素,並顯示最終、計算和轉譯屬性。 這些工具還包括:

  • 即時視覺化樹狀結構。 現在您可以在偵錯執行階段期間檢視執行中應用程式的完整視覺化樹狀結構。 當您在 Visual Studio 中按 F5 或連結至執行中的應用程式時,可以使用即時視覺化樹狀結構。 您可以使用即時視覺化樹狀結構來選取執行中應用程式內的元素,以在即時屬性總管中進行檢查。 子系計數會隨即顯示,而且如果有提供來源資訊,您可以立即找到元素定義的檔案和位置。
  • 即時屬性總管。 使用此新工具來檢查在執行中應用程式內任何元素上設定的屬性,並依所設定的範圍分組。 您可以在偵錯工作階段期間修改這些屬性,並在正在執行中應用程式內立即查看其變更。

在設計時,區分屬性彼此覆寫的方式以及找出致勝行為可能會非常困難。 現在藉由使用適用於 XAML 的新 UI 偵錯工具,您可以在執行階段執行這些檢查。

(未來更新中會發行對 Windows Store 應用程式的支援)。

UI Debugging Tools for XAML, full screen

例外狀況設定

您可以使用 [例外狀況設定] 工具視窗來設定偵錯工具例外狀況設定。 新視窗為非強制回應,且包含改進的效能、搜尋和篩選功能。

Exceptions Settings - Break when Thrown window

時間表工具

我們的新時間表工具為您提供了以情節為中心之應用程式取用的資源檢視,您可以使用它來檢查、診斷和提高 WPF 和 Windows Store 8.1 應用程式的效能。

[效能和診斷] 中樞中的時間表工具會顯示應用程式在準備 UI 畫面格及維護網路和磁碟要求方面所花費的時間。 此工具會在例如應用程式載入和頁面載入等情節下執行這項動作。

The new Timeline tool

診斷工具

我們新增了新的 [診斷工具] 視窗,會在您開始偵錯時隨即出現 (按 F5 鍵)。 [診斷工具] 視窗包含下列功能:

  • 事件 (使用 IntelliTrace)
    事件 (使用 IntelliTrace) 可讓您存取偵錯工作階段期間收集的所有偵錯工具中斷、輸出和 IntelliTrace 事件。 資料會同時顯示為時間表和表格式檢視。 這兩項檢視會同步處理,而且可以彼此互動。
  • 記憶體使用量
    記憶體使用量工具可讓您在偵錯時監視應用程式的記憶體使用量。 您也可以擷取並比較原生和受控記憶體的詳細快照集,以分析記憶體成長和記憶體流失的原因。
  • CPU 使用量
    CPU 使用量工具可讓您在偵錯時監視應用程式的 CPU 使用量。
    (此工具會取代在 Visual Studio 2015 預覽版本中提供的 CPU 時間 PerfTip。)

在舊版中,[診斷工具] 視窗支援下列專案類型和偵錯設定:

  • 受控 WPF、WinForms 和主控台專案
  • 原生 Win32、主控台和 MFC 專案
  • 僅限使用 IIS Express 的 ASP.NET 4
  • 在本機執行的受控或原生 Windows Store 專案
    (不支援使用 JavaScript 或在手機上執行的 Windows Store 專案)

RC 版本中的 [診斷工具] 視窗有下列功能改進:

  • 它可以移至 Visual Studio 內的任何視窗位置,並記住其偵錯工作階段之間的位置和大小
  • 它會在使用 [偵錯] -> [連結至流程] 來連結至流程時,出現並顯示單一流程的資料
  • 會在偵錯執行於 IIS 上的 ASP.NET 專案時出現
  • 會在偵錯 ASP.NET 5 專案時出現
  • 會在偵錯執行於遠端 Windows 桌面裝置上的應用程式時出現
  • 停止偵錯之後,即可檢視記憶體快照集
  • 偵錯原生專案時,會提供偵錯工具事件 (僅限中斷事件)

我們還為此 RC 版本新增下列新功能:

Just My Code。 當您按 F5 來啟動偵錯工具時,它只會顯示您的程式碼,讓您可以理解效能問題和例外狀況,而不會受到架構和其他程式碼的干擾。 由於 IntelliTrace 中的這項新程式碼篩選功能會抑制系統程式碼並只公開使用者程式碼,因此可讓您更輕鬆地偵錯「只屬於我的程式碼」。

網路診斷工具。 這項新的網路診斷工具可協助您診斷在建置 Windows Store 應用程式以及於所有 Windows 10 裝置上執行之通用應用程式 (包含 Windows Phone 到 Xbox 與 Windows Store) 時的網路相關問題。

網路診斷工具會記錄應用程式的 HTTP 網路作業相關資訊,包括 HTTP 要求與回應標頭、要求與回應承載、Cookie 和詳細的計時資訊等等。 網路診斷工具也可以協助回答有關常見情節的問題,例如:

  • 驗證相關問題 (例如,為什麼您無法存取資源)
  • 快取相關問題 (例如,為什麼您未取得最新版的資源)
  • 執行應用程式的一般工作時會下載的位元組數目
  • 存取和下載資源時的瓶頸在何處

若要存取網路工具,請在 Visual Studio 2015 中開啟 [診斷工具] 視窗。 在 [偵錯] 功能表上選取 [啟動診斷工具但不偵錯]。 或只要按 Alt+F2 即可。

我們對 [偵錯] 時隨即出現的 [診斷工具] 視窗進行了下列改進:

  • 來自應用程式的事件現在會出現在單一 IntelliTrace 事件追蹤中,而不會在 IntelliTrace 事件和輸出事件追蹤之間分割出現。
  • 來自應用程式的事件現在會在您的程式執行時出現;現在不再需要按 [全部中斷] 來查看事件。
  • 您現在可以為已在程式碼中設定的追蹤點啟用 [歷程偵錯],讓您可以查看原始程式碼並呼叫堆疊。
  • 您現在可以在 [記憶體使用量] 圖表上查看記憶體回收與快照集事件,以便查看發生受控記憶體回收的時間,以及您使用記憶體使用量工具擷取快照集的時間。

ASP.NET

ASP.NET 4.6

ASP.NET 模型繫結支援工作傳回方法

不支援先前工作傳回的 ASP.NET 模型繫結方法,且會在執行階段時擲出例外狀況 (若設定)。 如果使用這類方法部署應用程式,這些方法現在會正確執行。 這項變更僅適用於特別設定 .NET 4.6 或更新版本為目標的應用程式。

正在啟用 ASP.NET 應用程式中的 .NET Compiler Platform ("Roslyn")

您可以在任何 ASP.NET 4.6 專案中使用 C# 和 VB 的新語言功能。 VS 2015 中的 Web Form 範本已預先安裝 Microsoft.CodeDom.Providers.DotNetCompilerPlatform 套件。

新增 HTTP/2 的支援

在 Windows 10 和 .NET Framework 4.6 中,我們新增了 HTTP/2 的支援。 HTTP/2 的主要目標是使用從瀏覽器到網站的單一連線來改進效能、延遲和網路使用量。

更新的架構和控件項,以支援 Entity Framework 6

我們已更新動態資料架構、實體資料來源控制項和通用提供者,以便它們與 Entity Framework 6 搭配使用。

驗證更新

ASP.NET 4.6 範本現在使用 Open Id Connect 中介軟體向 Azure AD 進行驗證。 這可讓程式設計模型更容易向 Azure AD 進行驗證。

如果您選取 [個別使用者帳戶] 選項,則 ASP.NET 4.6 範本會顯示如何透過 ASP.NET Identity 使用雙因素驗證和社交登入。

ASP.NET MVC 5.2.3、Web Pages 3.2.3 和 Web API 5.2.3

我們已更新範本套件,以使用 MVC 5.2、Web Pages 3.2 和 Web API 2.2 的最新執行階段套件。 如需這些套件更新的詳細資訊,請參閱 ASP.NET MVC 5.2.3、Web Pages 3.2.3 和 Web API 5.2.3 版本 (英文) 的部落格文章。

ASP.NET Web API OData 5.3.1

我們已更新 Web API OData 編程程式,以使用 ASP.NET Web OData 5.3.1。 如需詳細資訊,請參閱 ASP.NET Web API OData 5.3 的新功能 (部分機器翻譯)。

Azure SignalR Service 2.1.2

我們已更新範本套件以使用 Azure SignalR Service 2.1.2。 請參閱 GitHub 上的 Azure SignalR Service 版本資訊 (英文)。

Microsoft Owin 3.0 套件

我們已更新範本套件以使用 Microsoft Owin 3.0 NuGet 套件。 請參閱 Katana 專案

ASP.NET Identity 2.2.1

ASP.NET Identity 2.2.1 相較於 2.1 有許多錯誤 (bug) 修正和效能改善。 如需詳細資訊,請閱讀此 ASP.NET Identity 2.2.1 (英文) 部落格文章。

ASP.NET Tooling 更新

JSON 編輯器的改進

我們已對 JSON 編輯器做了一些改善,包括效能改進 (例如非同步載入 JSON 結構描述、子結構描述快取,以及對 IntelliSense 更完善的支援)。 此外,還有下列新功能:

  • JSON 結構描述驗證。 根據結構描述下拉式清單中所定義的結構描述來新增 JSON 結構描述驗證功能。
  • 解除縮製捷徑功能表。 您可以以滑鼠右鍵按一下 JSON 編輯器,然後選取 [解除縮製捷徑功能表]按鈕以解除縮製 JSON 檔案中的任何長陣列。
  • [重新載入結構描述] 捷徑功能表。 Visual Studio 會快取從網際網路下載的結構描述,即使您重新啟動 Visual Studio 也會使用快取。 如果您知道結構描述已變更,可以使用捷徑功能表 [重新載入結構描述 Ctrl+Shift+J] 於作用中的 JSON 文件重新下載中目前使用的結構描述,然後在目前的文件上立即使用它。
  • package.json/bower.json 的 IntelliSense。 除了同時為 package.json 和 bower.json 檔案證明 IntelliSense 和驗證,Visual Studio 也直接在 JSON 編輯器內為 Bower 和 npm 套件提供即時 IntelliSense。
  • 重複的屬性驗證。 JSON 編輯器現在會為任何重複屬性提供驗證。 這可協助攔截 JSON 檔案撰寫的常見問題。
  • 已藉由完全支援 JSON 結構描述草稿 v4 規格,大幅改善 IntelliSense 和 JSON 檔案驗證的支援。 現在識別所需的屬性變得更加容易,而編輯器可讓您輕鬆地依字母順序來排序屬性。 格式化縮製的 JSON 檔案現在會自動將其解除縮製。
  • 我們新增了對 SchemaStore.org 的支援,這是有用的 JSON 結構描述檔案開放原始碼集合。 這表示任何在 Visual Studio 中開啟之與 SchemaStore.org 有相關聯的結構描述都會自動取得 IntelliSense 和驗證。
  • JSON 結構描述作者的支援也藉由更好的結構描述架構 Sanity 驗證額外加以增強。

HTML 編輯器的改進

HTML 編輯器已針對 Web 標準更新 IntelliSense,並引進下列新功能:

  • 更好的用戶端範本格式設定。 HTML 編輯器不再剖析或格式化雙花括弧語法 {{…}}。 這是為了確保該語法的內容不會被視為 HTML 而變無效,也不會嘗試格式化內容,該行為無法透過使用 HTML 格式器正確處理。 這非常適合 Angular、Handlebars、Mustache 和其他雙花括弧範本語法。
  • 支援自訂元素、聚合元素和屬性。 HTML 編輯器不再驗證自訂元素的未知屬性,因為不同的架構有許多自訂標籤。 未知元素下不再有波形曲線。
  • 適用於 Web 元件的基本 IntelliSense。 HTML 編輯器具有 <link rel="import" /> 的 IntelliSense for,這是 Web 元件標準的一部分。
  • HTML 元素工具提示。 編輯器中會提供 HTML 元素的工具提示。
  • #區域支援。 HTML 編輯器現在支援區域摺疊。 您也可以使用周圍程式碼片段來包圍目前的選取範圍。
  • 工作清單中的 Todo/Hack 註解支援。
  • Angular 圖示。 Angular 指示詞 (例如 <<ng-view>) 和屬性 (例如 ng-controller) 現在在 IntelliSense 中皆會包含 Angular 標誌一起顯示,以便於輕鬆識別。
  • 啟動程序圖示。 HTML 類別屬性中提供的 IntelliSense 現在會包含啟動程序標誌一起顯示 (如果類別名稱是由 Bootstrap CSS 檔案所定義)。

CSS/LESS/Sass 編輯器的改進

  • 工作清單中的 Todo/Hack 註解支援。
  • LESS 編輯器的 @viewport 修正。 在 LESS 編輯器中,@viewport 不再顯示驗證警告。
  • 提供更多程式碼片段。 CSS/LESS/Sass 編輯器現在提供更多程式碼片段,以讓您的開發體驗更輕鬆。
  • Visual Studio 2015 中現在提供可編譯 LESS、Scss 和 CoffeeScirpt 的擴充。 在這裡下載。

JSX 編輯器 (React.js)

Visual Studio 現在支援任何具有 .jsx 副檔名之檔案的 JSX 語法。 在您輸入的同時即可在編輯器中取得 IntelliSense、格式設定與驗證。 此編輯器是與負責 React.js 程式庫的 Facebook 小組共同合作建置。

瀏覽器連結

CSS 會自動同步處理。 儲存 CSS 檔案或從外部進行變更 (例如透過使用 LESS/SASS 編譯器) 會導致整個 CSS 檔案在瀏覽器中重新載入。 如果檔案無法自動同步處理,則 Ctrl + S 會造成自動重新載入,且應會將其回復到良好的狀態,而不需要重新整理連結的瀏覽器 (Ctrl + Alt + Enter)。 功能可以在工具列中加以停用。

深入了解 ASP.NET

ASP.NET 5

ASP.NET 5 是一個精簡且可組合的 .NET 堆疊,可用於建置雲端和內部部署伺服器的新式 Web 應用程式。 其中包含下列功能:

  • 新輕量要求管線
  • 在 IIS 上執行,或在您自己的流程中自行裝載
  • 基於新 .NET 執行環境 (DNX) 所建置且可在完整 .NET Framework 或 .NET Core 上執行,為支援真實並存版本設定的新雲端最佳化執行階段
  • 在 Windows、Mac 和 Linux 上跨平台執行
  • NuGet 所有事項,甚至是自己的執行階段
  • 支援 ASP.NET MVC 6 - 適用於 Web UI 和 Web API 的統一 Web 架構
  • 環境型設定,可順暢地轉換至雲端
  • 現用相依性插入
  • 新的 Visual Studio 專案系統和高效能製造工具體驗
  • 透過 .NET Foundation 在 GitHub 上的所有開放原始碼

Visual Studio 2015 包含 ASP.NET 5 Beta5 執行階段套件。 這些套件仍處於預覽狀態,不建議用於生產環境。 您可以在 GitHub 上已發佈的版本資訊中找到已新增之特定增強功能與已修正問題的所有詳細資料。

Visual Studio 2015 隨附新的專案系統和整合式製造工具體驗,可用於建置 ASP.NET 5 應用程式以及搭配 DNX 專案使用。 一些新的工具功能包括:

  • 新的專案系統,用於建立可在 Windows、Mac 和 Linux 上建置和執行之跨平台的 DNX 型專案。
  • 使用 MVC 6、Identity 3 和 Entity Framework 7 建立 ASP.NET 5 網站和 Web API 的範本。
  • 建立 DNX 型類別庫和主控台應用程式的範本
  • 透過 NuGet 建立及散發跨平台命令列工具。
  • 使用開發人員命令提示字元中的 .NET 版本管理員 (DNVM) 來安裝及管理不同的 DNX 版本。
  • 尋找、安裝及還原 NuGet 套件的整合式體驗。
  • 使用 CTRL + 。 以在 C# 程式碼中尋找並安裝未解析符號的 NuGet 套件。
  • 使用 NPM、Grunt/Gulp 和 Bower 進行用戶端 Web 開發的整合式製造工具,包括套件管理整合和新的工作執行器總管。
  • 使用 [執行] 按鈕下拉式功能表,直接從 Visual Studio 內執行專案等級 DNX 命令。
  • 建立可啟動 IIS Express 的自訂啟動設定檔,包括自訂環境變數的設定。
  • 從以多個架構 (包括 .NET Core) 為目標的單一專案來建置 NuGet 套件。
  • 從單一專案建置多個目標架構時結合的 IntelliSense。
  • ASP.NET 5 引進的新 Razor 功能,例如現在會在 IntelliSense 和語法醒目提示中亮起的標籤協助程式。

本版本中的新功能

  • 當您開啟專案但其中缺少必要的 DNX 版本時,Visual Studio 會出現提示以安裝所需的 DNX 版本。
  • 您現在可以使用 [新增參考] 對話方塊來對遺漏組件新增參考。
  • ASP.NET 5 Web 應用程式範本現在支援對公司和學校帳戶的選項進行驗證。
  • [新增 ASP.NET 專案] 對話方塊中的 [雲端中主機] 選項現在可供 ASP.NET 5 專案使用。
  • 使用 [伺服器總管] 對 Azure 上裝載之 ASP.NET 5 專案 approot 下的檔案進行遠端編輯。

如需其他詳細資料,請參閱 GitHub 上的製造工具版本資訊,以及我們的 .NET Web 開發和工具部落格

Azure Tooling

帳戶選擇器整合

帳戶選擇器會在整個 [Web 發佈] 和 [Web 應用程式建立/選取] 對話方塊中使用,以啟用對多個帳戶的單鍵存取。 您可以一次登入多個帳戶,並在發佈資源的同時快速且輕鬆地存取來選取個別帳戶。

API Apps

API Apps 預覽範本、發佈支援和伺服器總管可見度都已移轉至 Visual Studio 2015。 現在您可以使用最新版本的 Visual Studio 來建立及部署 Azure API Apps。 此外,我們還改進了 Swagger 輸出功能,以便 API 應用程式開發人員能夠為從 ASP.NET Web API 動態產生的 Swagger 提供更佳的現用支援。

WebJobs Tooling

您現在可以透過下列方式控制 Azure 網站內 [伺服器總管 WebJob] 節點上的 Web 作業:

  • 伺服器總管中網站節點下方的 WebJobs 節點。
  • 從伺服器總管啟動/停止連續 WebJobs。
  • 從 [伺服器總管] 執行隨選或排程的作業。
  • 從 [伺服器總管] 檢視 WebJob 儀表板。
  • [檢視儀表板] 捷徑功能表;使用它來移至 Azure 網站的 WebJob 儀表板。

WebJobs SDK

Azure WebJob 專案範本會預先安裝 WebJobs SDK。

NuGet

NuGet 2.8.3

我們新增了 DevExtreme 專案和 BizTalkProject 2.8.3 的支援。 如需詳細資訊,請參閱 NuGet 2.8.3 版本資訊 (英文)。

NuGet 套件管理員

我們已更新 NuGet 封裝管理員使用者介面,以便更輕鬆管理 Visual Studio 2015 中整個解決方案的套件。 透過專案中所安裝之全部套件的單一檢視,您可以從 NuGet 資源庫、已安裝的套件,以及具有可用更新的套件來篩選可用套件清單。

NuGet 資源庫

我們透過新的 Web 服務和整合式用戶端提升了 NuGet 資源庫的效能。 如需 NuGet 更新的詳細資料,請移至 http://docs.nuget.org

JavaScript

JavaScript 編輯器支援

我們已更新 JavaScript 編輯器,以使其更為實用。

  • AngularJS 的製作工具支援。 現在,當您使用 AngularJS 撰寫應用程式時,IntelliSense 會提供 Angular 控制器、服務、處理站、指示詞和動畫的建議。
  • 新增 JavaScript 語言功能 (從 ES6 版 JavaScript) 的支援,包括類別、箭號函式和範本字串。
  • 導覽列共用專案支援。 您現在可以在共用專案中為 Windows 通用應用程式使用導覽列。
  • 新增導覽列。 新導覽列讓您可更輕鬆地以 JavaScript 原始程式碼在主要項目之間進行導覽。
  • JSDoc 註解。 使用 IntelliSense 時,現在會隨即顯示以 JSDoc 格式撰寫的文件註解。 (如需有關 JSDoc 註解的詳細資訊,請參閱 https://jsdoc.app/。)
  • 物件常值 IntelliSense。 當將物件常值傳遞至使用 JSDoc 記錄的函式時,JavaScript 編輯器會向您提供 IntelliSense 建議。
  • 展開/摺疊。 您可以展開和摺疊 JavaScript 程式碼的更多區段,包括多行註解、多行陣列,以及所有多行區塊。
  • 工作清單支援。 您可以使用 [工作清單] 功能以您的 JavaScript 程式碼檢閱工作註解 (例如 // TODO)。

TypeScript

Visual Studio 2015 包含 TypeScript 工具的 1.5 版本。 此版本新增了適用於 ECMAScript 6 的豐富支援,包括模組、解構、for..of、擴張、符號、計算屬性、ES3/ES5 的 let/const,以及 ES3/ES5 的標記字串範本。 除了對 ES6 的支援之外,TypeScript 1.5 還新增了實驗性 ES7 裝飾項目提案、UMD 和 System.js 模組輸出,以及稱為 “tsconfig.json” 之新輕量可攜式專案檔的支援。

IntelliTest

在 Visual Studio 2015,我們新增了會探索您 .NET 程式碼的 IntelliTest,以產生測試資料及單元測試套件。 其會為程式碼中的每一個陳述式產生一個用以執行該陳述式的測試輸入。 程式碼的每個條件分支都會執行大小寫分析。 例如,

可能擲回例外狀況的所有作業 (例如 if 陳述式和判斷提示) 都會加以分析。 這項分析會用於為每個方法的參數型單元測試產生測試資料,從而建立盡可能能夠涵括所有程式碼的單元測試。 您可以發揮您的專業知識來改良這些單元測試。

我們也將下列功能新增至 IntelliTest:

  • 參數化單元測試。 IntelliTest 支援 API,您可以使用該 API 來指導測試資料產生、指定受測試程式碼的正確性屬性以及指示受測試程式碼進行探索。 此 API 可在 Microsoft.Pex.Framework 命名空間中使用,並可用於 IntelliTest 所產生的測試方法 (參數化單元測試、Factory 方法)。 因此,「IntelliTest」捷徑功能表命令現在也可從產生的測試方法取得。
  • 測試虛設常式建立。 捷徑功能表上現在提供「建立單元測試」作為命令,可讓您建立及設定測試專案、測試類別和測試虛設常式。

如需 IntelliTest (先前稱為「智慧單元測試」) 的詳細資訊,請參閱使用 IntelliTest 產生程式碼的單元測試

Application Insights

除了各種效能增強功能和錯誤 (bug) 修正之外,Application Insights 現在還包含下列更新:

  • Visual Studio 中的 Application Insights 工具現在是 Visual Studio 已連線的服務的一部分。 (若要新增 Application Insights,請開啟 [已連線的服務] 對話方塊,然後從服務清單中選擇 Application Insights。)
  • 此更新與在 Visual Studio 2013 Update 3 或 Visual Studio 2013 Update 4 中新增之 Application Insights 的專案完全相容。
  • ASP.NET 5 開發人員、Windows 10 通用應用程式開發人員和 Windows 8.1 通用應用程式開發人員可以直接從 Visual Studio 將 Application Insights 新增至其專案中。
  • Windows 10 通用應用程式開發人員不需要登入 Azure 來新增 Application Insights SDK;他們可以只使用 Visual Studio 中的 Application Insights 工具來加以新增。
  • 由於 Application Insights 使用 Visual Studio 中的全域帳戶選擇器,因此您可以在整個 Visual Studio 中使用相同的帳戶。
  • 現在您可以直接從專案的 [服務參考] 資料夾中檢視 Application Insights 的「使用者入門」資訊;只要按一下 [使用者入門] 資料夾即可。

View Getting Started information for Application Insights from a Project's Service Reference folder.

版本管理

有了這項功能,您可以改善管理應用程式發行的流程、將應用程式部署到每項單獨階段的特定環境,以及透過每個步驟的核准來管理流程中的步驟。 您可以使用 Visual Studio Online 的發行管理服務,設定從簽入到部署的發行管線,而不需要安裝和維護內部部署 Release Management 伺服器。

Visual Studio 2015 提供 Release Management 的更新版本。 這與現有的 Visual Studio 2013 Release Management 非常類似,但在下列領域中提供了效能的提升:

  • 顯示發行流程和通知概觀的發行管理用戶端啟動頁面。
  • 透過額外的快取在其他發行管理用戶端頁面中轉譯與互動。
  • Active Directory 與 TFS 安全性群組的同步處理。
  • 建立新發行。

您現在可以為 Team Foundation Server 2015 中包含的新組建系統之組建定義來定義元件和發行定義。 定義元件時,您也可以使用與組建定義中已發佈成品名稱相同+(或包含)+的元件名稱來指定元件的成品。

Git 版本控制

更容易使用分支並查看歷程記錄中變更的方式。

分支

您可以指定前置詞,以階層方式來整理分支:

本機分支和遠端分支 (包括您尚未在本機建立的分支) 會分別顯示在樹狀檢視中。

Git branches

我們自 RC 起我們已修改分支頁面:

  • 您現在可以從遠端分支以及本機分支進行合併。
  • 您正要合併入分支現在已修正為目前正遭簽出的分支。
  • 您現在可以從目前分支重訂基底至任何本機或遠端分支上。
  • 您可以按兩下遠端分支,或以滑鼠右鍵按一下遠端分支然後選取 [簽出],以將遠端分支簽出。

遠端管理

您現在可以在 Team Explorer 中設定 Git 遠端。 在 [存放庫設定] 中有個顯示目前設定之遠端的新 [遠端] 區段,您可以在其中新增、編輯或移除遠端。 例如,如果您需要變更原點遠端的 URL,可以按一下 [編輯] 並變更擷取和/或推送 URL。

詳細歷程記錄

您現在可以查看認可在歷程記錄中如何分歧。

Detailed view of history

在圖表中,合併認可是灰色,而非合併認可是較亮的色彩。 您可以在簡單檢視與詳細檢視之間來回切換。 如果圖表被截斷,您可以調整其大小。

我們在 RC 版本中對歷程記錄圖表進行了數項更新:

  • 我們新增了工具列,可讓您用來控制要在圖表中看到的詳細資料程度。
  • 我們現在會醒目提示歷程記錄行,以指出可從目前選取的認可中連線到哪幾項認可。
  • 現在如果本機和遠端分支不同,則會顯示這兩行歷程記錄。 在重訂基底本機分支之後,這尤其有用。

在 Team Explorer 中重訂基底

我們現在支援在 Team Explorer 中重訂基底。 若要起始重訂基底,請按一下分支頁面上的重訂基底飛出視窗,或以滑鼠右鍵按一下分支並選取 [重訂基底到...]

VSO 存放庫

我們已改善建立 VSO 存放庫時的「使用者入門」體驗,還有更多可簡化新存放庫建立的變更即將推出。 針對 RC,我們做了小變更以讓您更輕鬆地將新程式碼新增至現有的存放庫:如果您使用 Team Explorer 連線到任何存放庫,接下來選取 [檔案] > [新增專案],則對話方塊現在會從該已連線存放庫的根目錄中隨即啟動。

發佈至 Visual Studio Online

[發佈至 Visual Studio Online] 功能可大幅簡化將本機存放庫移至 Visual Studio Online 的流程。 過去需要 12 個步驟的動作現在僅需要 2 個。 在 Team Explorer 同步處理頁面上,新的 [發佈至 Visual Studio Online] 區段可讓您選取 Visual Studio 帳戶管理員中的任何使用者帳戶。 您的 Visual Studio Online 帳戶會自動在清單中提供;不需要記住 URL。 當您準備好要共用程式碼時,只要挑選新的或現有的小組專案來裝載您的存放庫,按一下 [發佈],即可完成。

Publish to Visual Studio Online dialog box

單一登入

您跟當今許多其他開發人員一樣,在開發應用程式時會利用多個雲端服務。 例如,您可能已將雲端後端新增至您的應用程式中來儲存資料、已將原始程式碼儲存在雲端中,或將應用程式發佈至存放區中。

在過去,這些服務個別都需要單獨的的登入流程,而每個服務會個別管理登入的使用者狀態。

在此版本中,我們會減少存取 Visual Studio 中許多整合式雲端服務所需的驗證提示。 現在當您向 Visual Studio 中的第一個雲端服務進行驗證時,我們會自動將您登入,或減少其他整合式雲端服務的驗證提示。

CodeLens

專注於您編輯器中工作的同時深入了解您的程式碼。 尋找程式碼參考、您程式碼的變更、相關 Team Foundation Server 項目和單元測試;一切都跟程式碼相關。

在此版本中,我們已將 CodeLens 「建立者」指標取代為新的「小組活動時間表」和「建立者與變更」歷程記錄指標。

  • 小組活動時間表指標會顯示最後一位建立者,以及上次變更的時間。 選擇此指標會開啟 [小組活動檢視],您可以在其中尋找程式碼變更的模式。 這可協助您評估長時間變更的影響。
  • [建立者與變更] 指標會顯示已變更檔案的建立者作者數目,以及變更的次數。 選擇此指標會隨即開啟所有變更、變更詳細資料和連結的清單,以取得更多資訊並查看舊版本。

當您的程式碼裝載於 Team Foundation 版本控制 (在 Team Foundation Server 和 Visual Studio Online 中) 和 Git 存放庫中時,指標的所有資訊都會提供。 當您使用 Team Foundation Server 或 Visual Studio Online 時,也可以取得工作項目相關的資訊。

這些指標以及舊版本中提供的指標都會顯示在 C# 和 Visual Basic 檔案的程式碼項目 (方法、欄位或類別) 層級。 以下是 C# 檔案的 [小組活動時間表] 指標範例:

The Team Activity Timeline indicator for a C# file

以下是 C# 檔案的 [建立者與變更] 指標範例:

The Authors and Changes indicator for a C# file

不過,對於所有其他檔案類型 (例如 C++、SQL、JavaScript 和其他類型的檔案),指標現在會於檔案層級顯示。 以下是非 C# 或 Visual Basic 程式碼檔案之檔案的 [小組活動時間表] 指標範例:

The Team Activity Timeline indicator for a file that is not a C# or Visual Basic code file

結構、設計和模型

Code Map 和相依性圖形

當您想要了解程式碼間的相依性時,請建立 Code Map 來將其視覺化。 然後,您可以使用出現在您程式碼旁邊的對應,來劉巡覽這些關聯性。 Code Map 也可以在您工作或偵錯程式碼時,協助追蹤您在程式碼中的位置,如此一來,當您進一步了解程式碼設計時,便可以少看一些程式碼。

在最終 RTM 發行版本中,我們將命令分組成與選取、編輯和管理群組相關的區段,並變更群組內容的配置,以更容易使用程式碼項目和連結的捷徑功能表。 另請注意,測試專案的顯示樣式會與其他專案不同,並且我們已將對應上的項目圖示更新為更適當的版本。

New groupings in code maps

我們也變更了顯示程式碼項目內容的方式,因此您現在可以選取多個群組,並將想要的配置樣式套用至全部的群組上。 現在當您在 Code Map 上展開組件、命名空間或類型時,一律可以取得有用的相依性圖表。

Select multiple groups and apply one layout in a Code Map

我們在舊版的 Visual Studio 2015 預覽和發行候選版中進行了變更,可讓您:

  • 取得改進之由上而下的圖表。 針對中大型 Visual Studio 方案,您現在可以使用簡化的 [架構] 功能表,取得對方案更實用的 Code Map。 解決方案的組件會依解決方案資料夾分組,因此您可以在內容中查看,並且利用之前建構該解決方案投入之努力的成果。 您會立即看到專案和組件參考,並接著顯示連結類型。 此外,方案的外部組件也會以更精簡的方式分組。
  • 更快取得反應靈敏的 Code Map。 拖放作業會產生立即結果,並且可更快速地建立節點之間的連結,而不會影響後續使用者啟動的作業 (例如展開節點或要求更多節點)。 [略過重建解決方案] 選項尤其可讓您在建立和編輯圖表時獲得更好的效能。 現在當您在不建置解決方案的情況下建立 Code Map 時,則會處理所有極端案例 (例如未建置組件)。
  • 篩選程式碼項目節點和群組。 您可以根據程式碼項目的類別來顯示或隱藏程式碼項目,也可以依照方案資料夾、組件、命名空間、專案資料夾和類型分組程式碼項目,以快速地整理對應。
  • 篩選關聯性以更容易閱讀圖表。 這也包含跨群組連結,因此讓使用篩選視窗的干擾比舊版還低。
  • 「向內切入相依性連結」會將篩選納入考量。 當您展開以了解相依性連結的比重時,可以獲得一目暸然的實用圖表。 這個圖表較整齊,也會將您所選取的連結篩選選項列入考量。
  • 從類別檢視和物件瀏覽器建立圖表。 將檔案和組件從類別檢視和物件瀏覽器拖放到新的或現有的對應中。

整體而言,我們對 Code Map 所做之改進的綜合清單包括:

  • 測試專案已有不同的樣式並可篩選。 您現在可以更快速地在對應上識別這些專案,因為它們具有不同的樣式。 您也可以將它們篩選掉,以專注於應用程式的作用程式碼。
  • 程式碼項目會連同其內容加入新增。 由於圖表現在會連同其內容一起顯示 (在視需要篩選出的組件和方案資料夾上方),因此當您從方案總管、類別檢視和物件瀏覽器拖放程式碼項目時,或者在方案總管中選取項目並選擇 [在 Code Map 上顯示] 時,您會獲得更實用的圖表。
  • 簡化外部相依性連結。 相依性連結不再繼承自 System.Object、System.ValueType、System.Enum 和 System.Delegate,因此您可以在 Code Map 中更輕鬆地查看外部相依性。

本版中的其他設計和模型變更:

  • 分層圖。 使用 [類別檢視] 和 [物件瀏覽器] 來更新這些圖表。 為了達到軟體設計需求,請使用分層圖來描述軟體所需的相依性。 透過尋找不符合這些限制式的程式碼,並使用這個基準來驗證未來的程式碼,讓程式碼與這個設計保持一致。
  • UML 圖表。 您已無法再從程式碼建立 UML 類別圖和循序圖。 不過您還是可以使用新的 UML 元素來建立這些圖表。
  • 架構總管。 您已無法再使用架構總管來建立圖表。 但您還是可以使用方案總管。

XAML 語言服務

我們在 .NET Compiler Platform ("Roslyn") 的基礎上重建了 XAML 語言服務,以便為您提供快速、更可靠且現代化的 XAML 編輯體驗 (包括 IntelliSense)。

這可讓 XAML 撰寫體驗與 Visual Studio 中的其他一流語言匹配。 我們還會以更快速的節奏向您提供跨語言重構相關的強大功能集。

其他

Agents for Visual Studio 2015 不再需要測試控制器

您在 Agents for Visual Studio 2015 中不需要個別的測試控制器,因為代理程式可以透過與 TFS 2015 或 Visual Studio Online 進行通訊來處理協調流程。

在所有新的 Visual Studio 2015 和 TFS 2015 案例中,建議您使用 Agents for Visual Studio 2015。

不過如果您需要測試代理程式或測試控制器以使用 TFS 2013,建議您使用 Agents for Visual Studio 2013 Update 5 並設定測試控制器。

測試控制器與 TFS 2015 和 TFS 2013 相容。 不過,Visual Studio 2015 中的負載測試支援不是代理程式的一部分,因此建議您安裝 Agents for Visual Studio 2013 Update 5 並設定控制器。

已連線的服務

Visual Studio 2015 中新的 [新增已連線的服務] 對話方塊可讓您輕鬆地將應用程式連線到 Azure Application InsightsAzure 儲存體,Azure Mobile Services、Office 365 和 Salesforce。 若要新增 [已連線的服務],請以滑鼠右鍵按一下 [參考] 節點,然後選取 [新增已連線的服務...]

Add a Connected Service

[新增已連線的服務] 對話方塊包含目前安裝所有 [已連線的服務] 提供者,並提供取得提供者、其使用的技術,以及在目前專案中是否支援的相關詳細資訊。 其他提供者可以使用 [尋找更多服務...] 連結,在擴充和更新資源庫中找到。 [新增連線服務] 對話方塊也是可延伸。 如果您是服務開發人員,可以使用我們已連線的服務 SDK 來建置提供者,以改善服務的可探索性和促進使用量。

企業單一登入

商務應用程式的常見工作是使用 Azure Active Directory 來設定企業單一登入的應用程式。 您現在可以在建構應用程式的期間隨時以滑鼠右鍵按一下您的應用程式並選取[設定 Azure AD 驗證...],即可輕鬆地執行此動作。這會啟動類似新增連線服務體驗的精靈,來引導您完成設定與 Active Directory 搭配使用之應用程式的過程。 在精靈中指定 Active Directory 網域會向該 Active Directory 註冊您的應用程式,並將您的應用程式設定為提示登入。

Specify an Active Directory Domain in the wizard

適用於 Visual Studio 2015 RC 的 IIS 10 Express

RC 版本包含新版的 IIS 10 Express;其新功能包含 HTTP 2.0 的支援,以及與 Windows 10 的位元組同步處理。

其他變更:錯誤 (bug) 修正和已知問題

如需這個版本的技術改善、Bug 修正及已知問題的完整描述,請參閱下列知識庫 (KB) 文章。

Azure SDK 2.7 for .NET

Azure SDK 2.7 是第一個支援 Visual Studio 2015 最終版本的 Azure SDK。 以下是一些可協助您改善 Azure 開發體驗的新功能和更新:

  • Visual Studio 2015 的登入改進: Azure SDK 2.7 for Visual Studio 2015 現在包含帳戶透過角色型存取控制、雲端解決方案提供者、DreamSpark 和其他帳戶與訂用帳戶類型來存取 Azure 的支援。
  • Cloud Explorer for Visual Studio 2015:Azure SDK 2.7 包含 Cloud Explorer for Visual Studio 2015,其提供了高效能、可調整的工具以供您在 Visual Studio 內搜尋及檢視 Azure 資源、檢查其屬性,以及執行重要的開發人員和診斷動作。
  • Visual Studio 2015 中虛擬機器的遠端偵錯:在使用 Azure Resource Manager 堆疊建立之虛擬機器上執行的遠端偵錯流程。
  • Azure Resource Manager 工具:我們已更新 Azure Resource Manager 工具,讓使用新的 Visual Studio Online 建置工作變得更容易。 此外,我們還新增了使用角色型存取控制 (RBAC) 和新訂用帳戶類型的改進。
  • Azure App Service 工具:App Service 工具現在也可以在 Visual Studio 2015 中使用。 此更新提供 Web Apps 的遠端分析支援、API Apps 的 Swagger 產生改進,以及多個帳戶登入支援。 App Service 工具現在會針對所有功能使用 Azure 資源管理 API,並對 DreamSpark 和雲端服務提供者提供支援。 我們也在此更新中新增了 Visual Studio 2015 開發人員的 Azure API Apps 預覽版支援。
  • HDInsight 工具:在此版本中,我們已新增在 Tez 上執行之 Hive 作業執行圖表的檢視、擴充了 Hive DML IntelliSense 支援、新增了 NuGet for SCP.Net、升級了 Storm 範本,以及新增了 Pig 的新範本。
  • Azure Data Factory 工具:現在包含在 Azure SDK 中是 Azure Data Factory 工具。 我們的目標是簡化 Azure Data Factory 撰寫體驗,並移除上線和部署挑戰。 我們在 Azure Data Factory 工具中量身打造的體驗和豐富的製作工具可提升新使用者和進階使用者的生產力與效率。 在此版本中,客戶可以使用 Visual Studio 介面,以互動方式撰寫及部署資料管線。 如需這些工具的詳細資訊,請參閱 Azure Data Factory 部落格 (英文) 文章。

Windows 10 SDK

此工具版本會更新 Visual Studio 2015,為任何執行通用 Windows 平台的 Windows 裝置提供建置、偵錯及提交應用程式所需的一切。 重點包括:

  • 以您選擇的語言 (C#、VB、C++ 或 JS) 建立通用 Windows 應用程式,並部署至 Windows 10 裝置。
  • 新的偵錯和診斷工具,包括 XAML 應用程式和網路分析工具的 UI 偵錯工具。
  • 建立要提交至統一 Microsoft Store 的應用程式套件。
  • Windows 10 行動裝置版模擬器現在會利用您電腦的圖形硬體 (GPU) 來讓螢幕轉譯得更快。 它使用 Microsoft RemoteFx 提供更快速且回應更靈敏的偵錯環境。
  • 您現在可以使用 Windows 10 行動裝置版模擬器中的 NFC 模擬功能,來建置及測試已啟用 NFC/近接的通用應用程式。
  • 豐富的 XAML 設計工具為裝置建立量身打造的使用者體驗。
  • 雲端中 .NET 應用程式的 .NET 原生編譯。

如需 Windows 10 開發人員工具的詳細資訊,請參閱升級您的世界和應用程式的時刻到了

適用於 Visual Studio 的 Python 工具 2.2

Visual Studio 內完全免費的 Python 支援。

  • CPython、PyPy、IronPython 還有其他更多
  • 詳細的 IntelliSense
  • 互動式偵錯
  • 與 Visual Studio 功能整合
  • 免費的開放原始碼

如需詳細資訊,請參閱適用於 Visual Studio 的 Python 工具 (英文)。

Visual Studio Tools for Unity 2.0

將 Visual Studio 轉變為強大的 Unity 開發環境。

  • 建置多平台遊戲
  • 從 Visual Studio 偵錯
  • 在 Visual Studio 中建立 Unity 指令碼
  • 使用 Visual Studio 來體驗增強的生產力

如需 Visual Studio Tools for Unity 的詳細資訊,請參閱使用 Visual Studio 開發遊戲

適用於 Visual Studio 的 Node.js 工具 1.1 (RC)

2021 年 10 月已更新:

安全地更新 Node.js Visual Studio Apache Cordova 工具

將 Visual Studio 轉變為強大的 Node.js 開發環境。

  • 免費的開放原始碼
  • 智慧型程式碼完成
  • 進階偵錯和分析
  • 與其他 Visual Studio 功能和合作夥伴工具整合
  • Node.js、io.js、JavaScript、TypeScript、HTML、CSS 和 JSON 支援

深入了解適用於 Visual Studio 的 Node.js 工具

Office Developer Tools for Visual Studio 2015

使用 Office 365 API 進行開發

  • Office 365 API 工具使用 Visual Studio 2015 中新的 [已連線的服務],為開發人員提供引導式體驗以將 Office 365 API 整合到專案中。
  • 現在只要在已連線的服務精靈中選取 [使用 Azure AD 設定單一登入],即可讓 Office 365 API 工具在 ASP.NET MVC Web 應用程式中自動設定單一登入。
  • 當您將 Office 365 API 整合到專案中時,Office 365 API 工具現在會從 NuGet.org 下載並安裝最新版的 Office 365 API 用戶端程式庫 NuGet 套件。

SharePoint 增益集開發

  • 建立 SharePoint 增益集時,工具會將目標 SharePoint 版本設為您在專案建立精靈中指定的偵錯 SharePoint 網站版本。 精靈會顯示選取的 SharePoint 版本,並可讓您覆寫該預設值。 您可以使用 [專案設計工具] 中的 [SharePoint] 索引標籤,在建立專案之後變更目標版本。
  • 當目標版本為 SharePoint Online 時,這些工具現在會將包含 SharePoint Online 用戶端物件模型 (SPO-CSOM) 的 NuGet 套件安裝到您的專案中。 工具會將 SharePoint Online CSOM 組件的參考新增至專案中。 這些工具不再依賴於 Microsoft 下載中心發行的 SharePoint Online 用戶端元件 SDK。 這可讓您更輕鬆地在未來使用 Visual Studio 中的 NuGet 套件管理員來升級 CSOM 組件。
  • 您現在可以使用 Microsoft Azure 服務匯流排的 SAS 或 ACS 連接字串,以偵錯和疑難排解 SharePoint 增益集中的遠端事件接收器

Office 增益集開發

  • 在此版本中,工具一律使用 v1.1 資訊清單 (而非 v1.0) 來建立 Office 的新應用程式,以便應用程式支援 Office Web 應用程式和 Office 2013 用戶端中的新功能。 對於使用 v1.0 資訊清單的現有 Office 應用程式,當使用任何需要 v1.1 資訊清單的新功能時,工具會將資訊清單升級為 v1.1。

進一步了解 Office Developer Tools for Visual Studio

適用於 Visual Studio 2015 的 GitHub 延伸模組

在 Visual Studio 中連線到 GitHub 存放庫的最簡單方式。

  • 安裝容易
  • 在 Visual Studio 中連線 至 GitHub
  • 建立存放庫
  • 按一下即可複製存放庫
  • 將您的本機工作發佈至 GitHub

深入了解適用於 Visual Studio 的 GitHub 延伸模組

雲端式負載測試

從全球 Azure 資料中心進行雲端式負載測試

設定執行負載測試所需的基礎結構變得更為容易︰現在,您可以從全球任何受支援的 Azure 資料中心執行雲端式負載測試。

雲端式負載測試現在支援進階代理程式診斷

在此版本中,我們新增了針對雲端式負載測試執行測試代理程式診斷的功能。

在雲端中進行偵錯很困難,因為機器無法存取,所以從測試代理程式收集記錄或任何其他資訊並非一定作得到。 儘管如此,您可以使用進階代理程式診斷來從測試代理程式收集記錄,並將它們附加至雲端負載測試結果中。