適用於 Visual Studio 2013 的 ASP.NET 和 Web 工具 2013.2 版本資訊
由 Microsoft 提供
安裝注意事項
適用於 Visual Studio 2013.2 的 ASP.NET 和 Web 工具全組裝在主要安裝程式中,可隨 Visual Studio 2013 Update 2 下載。
文件集
您可以從 ASP.NET 網站取得適用於 Visual Studio 2013.2 的 ASP.NET 和 Web 工具相關的教學課程和其他資訊。
軟體需求
適用於 Visual Studio 2013.2 的 ASP.NET 和 Web 工具,需要 Visual Studio 2013。
適用於 Visual Studio 2013.2 的 ASP.NET 和 Web 工具中的新增功能
下列各節描述發行版本中引進的功能。
- One ASP.NET 專案範本
- 在 IIS Express 上啟動 Web 應用程式時支援 SSL
- Visual Studio Web 編輯器增強功能
- 瀏覽器連結
- 支援 Visual Studio 中的 Azure App Service Web Apps
- 建立新 Web 專案時建立遠端 Azure 資源
- Web 發行增強功能
- ASP.NET Scaffolding
- NuGet 2.8.1
- ASP.NET Web Forms \(英文\)
- ASP.NET MVC 5.1.2
- ASP.NET Web API 2.1.2
- ASP.NET Web Pages 3.1.2
- Entity Framework 6.1
- ASP.NET Identity 2.0.0
- Microsoft OWIN 元件
- ASP.NET SignalR 2.0.2
One ASP.NET 專案範本
- 更新 ASP.NET 專案範本以支援帳戶確認和密碼重設。
- 更新 ASP.NET Web API 範本,支援使用內部部署組織帳戶進行驗證。
- ASP.NET SPA 範本目前包含以 MVC 和伺服器端檢視為主的驗證。 範本的 WebAPI 控制器,只能由已驗證的使用者存取。
在 IIS Express 上啟動 Web 應用程式時支援 SSL
為了在 localhost 上瀏覽和偵錯 HTTPS 時清除安全性警告,我們新增了一個對話方塊,允許 Internet Explorer 和 Chrome 信任自我簽署的 IIS Express SSL 憑證。
例如,Web 專案屬性可以設定為使用 SSL。 按 F4 以帶出屬性對話方塊。 將 [已啟用 SSL] 變更為 true。 複製 SSL URL。
將 Web 專案屬性頁網頁索引標籤設定為使用 HTTPS 型 URL (除非先前已建立 SSL 網站,否則 SSL URL 將為 https://localhost:44300/
。
按 CTRL+F5 執行應用程式。 遵循指示信任 IIS Express 所產生的自我簽署憑證。
閱讀 [安全性警告] 對話方塊,如果您想要安裝代表 localhost 的憑證,請按一下 [是]。
網站會顯示在 IE 或 Chrome 中,瀏覽器中不會顯示憑證警告。
Firefox 會使用自己的憑證存放區,所以會顯示警告。
Visual Studio Web 編輯器增強功能
新的 JSON 專案項目和編輯器:我們已將 JSON 專案項目和編輯器新增至 Visual Studio。 目前的 JSON 編輯器功能包含著色、語法驗證、大括號完成、大綱、工具選項設定及其他。
IntelliSense 現在支援 JSON 結構描述 v3 和 v4。 有一個結構描述下拉式方塊可以選擇現有的結構描述、編輯本機結構描述路徑,或直接將專案 JSON 檔案拖曳到其中以取得相對路徑。
新 Sass (SCSS) 編輯器:我們在 VS2013 RTM 中新增 LESS,我們現在有 Sass 專案項目和編輯器。 Sass 編輯器功能與 LESS 編輯器相當,包括著色、變數和 Mixins IntelliSense、註解/取消註解、快速資訊、格式化、語法驗證、大綱、goto 定義、色彩選擇器、工具選項設定等。
HTML、Razor、CSS、LESS 和 Sass 文件中的新 URL 選擇器:VS 2013 隨附於 Web Form 頁面之外沒有 URL 選擇器。 HTML、Razor、CSS、LESS 和 Sass 編輯器的新 URL 選擇器是理解 '.' 的無對話方塊、流暢的輸入選擇器, 並適當篩選 img 標籤和連結的檔案清單。
新增更多功能以更新 LESS 編輯器
淘汰 Intellisense 升級:我們新增 VS intelliSense 的非標準 KnockOut 語法,"ko-vs-editor viewModel:" 語法。 它可用來使用表單中的註解,繫結至頁面上的多個檢視模型:
我們也新增了巢狀 ViewModel IntelliSense 的支援,如此也許可以鑽研 ViewModel 上的深層巢狀物件。
<div data-bind="text: foo.bar.baz.etc" />
顯示的 IntelliSense 是完整的 JavaScript 物件的 IntelliSense。
HTML、Razor、CSS、LESS 和 Sass 文件中的新 URL 選擇器:VS 2013 隨附於 Web Form 頁面之外沒有 URL 選擇器。 HTML、Razor、CSS、LESS 和 Sass 編輯器的新 URL 選擇器是理解 '.' 的無對話方塊、流暢的輸入選擇器, 並適當篩選 img 標籤和連結的檔案清單。
瀏覽器連結
- 瀏覽器連結現在支援 HTTPS 連線,只要憑證是瀏覽器信任的,就會在 [儀表板] 中列出該連線。
- 靜態 HTML 來源對應
- 對應資料的 SPA 支援
- 自動更新對應資料
支援 Visual Studio 中的 Azure App Service Web Apps
- 支援 Azure 登入。
- Web 應用程式的遠端偵錯和遠端檢視:我們現在支援在 Azure App Service 中遠端偵錯 Web 應用程式,以及在伺服器總管中遠端檢視 Web 應用程式內容檔案。
建立新 Web 專案時建立遠端 Azure 資源
我們在新的 Web 應用程式對話方塊中新增 Azure [建立遠端資源] 核取方塊。 藉由選擇該方塊,您能將建立新 Web 應用程式、設定 Azure 發佈測試網站,以及以幾個簡單步驟建立發行設定檔的經驗整合起來。
Web 發行增強功能
- 改善使用者發行體驗。
ASP.NET Scaffolding
- 列舉支援:如果您的模型使用 Enum,則 MVC Scaffolder 會產生 Enum 的下拉式清單。 這會使用 MVC 中的列舉協助程式。
- Bootstrap 支援:先在 MVC Scaffolding 中更新 EditorFor 範本,才能使用 Bootstrap 類別。
- 套件支援:MVC 和 Web API Scaffolders 會為 MVC 和 Web API 新增 5.1 個套件
下列螢幕擷取畫面示範 Scaffolding 模型。
模型程式碼:
編譯模型程式碼,按一下滑鼠右鍵選取 [新增]、[新的 Scaffold 項目]。
選擇 [使用 Entity Framework 執行檢視的 MVC 5 控制器]。
使用模型新增控制器:
檢查產生的程式碼,例如 Views/WeekdayModels/Edit.cshtml 包含
@Html.EnumDropDownListFor
:執行頁面以查看產生的列舉下拉式方塊,請注意,如果值可以是 Null,則可以針對下拉式方塊選擇空字串。 例如,[建立] 頁面顯示如下:
NuGet 2.8.1
NuGet 2.8.1 RTM 於 2014 年 4 月發行。 以下是版本資訊的重點,如需這些變更的詳細資訊,請查看完整的版本資訊。
目標 Windows Phone 8.1 應用程式:NuGet 2.8.1 現在支援使用目標 Framework Moniker 'WindowsPhoneApp'、'WPA'、'WindowsPhoneApp81' 和 'WPA81' 的目標 Windows Phone 8.1 應用程式。
相依性的修補檔解析:解析套件相依性時,NuGet 過去曾經實作一種選取符合套件相依性的最低主要和次要套件版本的策略。 但不同於主要和次要版本,修補檔版本一律解析為最高版本。 雖然此行為立意良好,卻缺乏安裝具有相依性之套件的決定性。
DependencyVersion 參數:雖然 NuGet 2.8 變更解析相依性的預設行為,卻也透過套件管理員控制台的 -DependencyVersion 參數,新增對相依性解析程序更精確的控制。 參數可讓您將相依性解析為最低可能版本 (預設行為)、最高可能版本,或最高次要版本或修補檔版本。 此參數僅適用於 powershell 命令中的 install-package。
DependencyVersion 屬性:如果在 install-package 叫用中未指定 -DependencyVersion 參數,則除了以上詳述的 -DependencyVersion 參數之外,NuGet 也允許在 nuget.config 檔案中設定定義預設值的新屬性。 任何安裝套件作業的 NuGet 套件管理員對話方塊也會考慮此值。 若要設定此值,請將下方屬性新增至 nuget.config 檔案:
<config> <add key="dependencyversion" value="Highest" /> </config>
使用 -WhatIf 預覽 NuGet 作業:有些 NuGet 套件可以具有深層相依性圖表,因此,在安裝、解除安裝或更新作業期間,先查看會發生什麼事是比較有用的做法。 NuGet 2.8 新增標準 standard PowerShell -what if 參數至 install-package、uninstall-package 和 update-package 命令,如此才能看見將套用命令的整個套件封閉。
套件降級:安裝套件的發行前版本並不罕見,如此才能調查新功能,之後再決定回復到最新的穩定版本。 在 NuGet 2.8 之前,這是解除安裝發行前版本套件及其相依性,然後安裝舊版的多重步驟程序。 不過,使用 NuGet 2.8 時,更新套件現在會將整個套件封閉 (例如套件的相依性樹狀結構) 回復至舊版。
開發相依性:許多不同類型的功能都可以藉由 NuGet 套件形式來提供,包括用來最佳化開發程式的工具。 這些元件雖然有助於開發新套件,但在之後發行時,不應視為新套件的相依性。 NuGet 2.8 可讓套件在 .nuspec 檔案中將其本身識別為 developmentDependency。 安裝時,此中繼資料也會新增至安裝套件之專案的 packages.config 檔。 當該 packages.config 檔之後在 nuget.exe pack 期間分析 NuGet 相依性時,會排除標示為開發相依性的相依性。
適用於不同平台的個別 packages.config 檔:針對多個目標平台開發應用程式時,每個各自建置環境通常會有不同的專案檔。 在不同的專案檔中,也常會取用不同的 NuGet 套件,因為套件對不同平台有不同的支援層級。 NuGet 2.8 為不同的平台特有專案檔建立不同的 packages.config 檔,為此案例提供更好的支援。
後援至本機快取:雖然 NuGet 套件通常會從遠端資源庫取用,例如使用網路連線的 NuGet 資源庫 ,但有很多情況是用戶端並未連線。 如果沒有網路連線,NuGet 用戶端就無法成功安裝套件,即使這些套件已在本機 NuGet 快取的用戶端機器上也一樣。 NuGet 2.8 會將自動快取後援新增至套件管理員主控台。
快取後援功能不需要任何特定的命令引數。 此外,快取後援目前只能在套件管理員主控台運作 - 此行為目前無法在套件管理員對話方塊中運作。
錯誤修正:其中一個主要錯誤修正是在 update-package -reinstall 命令下進行效能改善。
除了這些功能和上述效能修正外,此 NuGet 版本也包含許多其他錯誤修正。 發行版本總共解決了 181 個問題。 如需 NuGet 2.8 中修正的工作項目完整清單,請檢視此發行版本的 NuGet Issue Tracker。
ASP.NET Web Forms
- Web Form 範本現在顯示如何針對 ASP.NET Identity 執行帳戶確認和密碼重設。
- Entity Framework 6 的 Entity Data Source 控制項和動態資料提供者。 如需詳細資訊,請參閱下列 MSDN 部落格:Entity Framework 6 的動態資料提供者和 EntityDataSource 控制項 。
ASP.NET MVC 5.1.2
ASP.NET Web API 2.1.2
ASP.NET Web Pages 3.1.2
Entity Framework 6.1
Entity Framework 已針對執行階段和工具更新為 6.1 版。 Entity Framework (EF) 6.1 是 Entity Framework 6 的次要更新,並包含許多錯誤修正和新功能。 如需 EF6.1 (包括新功能文件連結) 的詳細資訊,請參閱 Entity Framework 版本歷程記錄。 此版本包括新功能︰
- 工具彙總提供一致的方法來建立新 EF 模型。 這項功能擴充 ADO.NET 實體資料模型精靈來支援建立 Code First 模型,包括從現有的資料庫進行反向工程。 先前 EF Power Tools 的 Beta 品質中有提供這些功能。
- 交易認可失敗處理提供新的 System.Data.Entity.Infrastructure.CommitFailureHandler,其利用新引進的功能來攔截交易作業。 CommitFailureHandler 允許在認可交易時從連線失敗中自動復原。
- IndexAttribute 允許藉由將屬性放在 Code First 模型中的屬性上來指定索引。 Code First 會在資料庫中建立對應的索引。
- 公用對應 API 提供 EF 對屬性和類型如何對應至資料庫中資料行和資料表的資訊存取權。 在過去版本中,此 API 只是內部版本。
- 能夠透過 App/Web.config 檔設定攔截器(允許新增攔截器,而不需要重新編譯應用程式)。
- DatabaseLogger 是新的攔截器,可讓您輕鬆將所有資料庫作業記錄至檔案中。 結合先前的功能後,即可讓您輕鬆開啟已部署應用程式的資料庫作業記錄,而不需要重新編譯。
- 移轉模型變更偵測已改善,可讓 Scaffold 移轉更精確,變更偵測程序的效能也大幅增強。
- 效能增強,包括初始化期間減少資料庫作業、LINQ 查詢中 Null 相等比較的最佳化、在更多案例中更快產生檢視 (模型建立),以及更有效率地具體化具有多個關聯的追蹤實體。
ASP.NET Identity 2.0.0
雙因素驗證:ASP.NET Identity 現在支援雙因素驗證。 雙因素驗證會在密碼遭到入侵的情況下,為使用者帳戶提供額外的安全層。 也有針對兩個因素碼的暴力攻擊的防護。
帳戶鎖定:如果使用者輸入密碼或雙因素碼不正確,則提供鎖定使用者的方式。 可以設定使用者無效的嘗試次數鎖定時間範圍。 開發人員可以視需要選擇關閉特定使用者帳戶的帳戶鎖定功能。
帳戶確認:ASP.NET Identity 系統現在支持帳戶確認。 這在現今大部分的網站中是相當常見的案例,當您在網站上註冊新帳戶時必須先確認電子郵件,然後才能在網站中執行任何動作。 電子郵件確認可防止建立假帳戶,相當有用。 如果您使用電子郵件做為與網站使用者通訊的方法 (例如論壇網站、銀行、電子商務或社交網站),這非常有用。
密碼重設:密碼重設是讓使用者在忘記密碼時重設密碼的功能。
安全性戳記 (隨處登出):提供一種方法,讓使用者在變更密碼或其他任何安全相關資訊時能重新產生使用者安全性權杖,例如移除相關聯的登入 (例如 Facebook、Google、Microsoft 帳戶等)。 這是必需的,以確保用舊密碼產生的任何權杖都無效。 在範例專案中,如果變更使用者的密碼,則會為使用者產生新的權杖,而且任何先前的權杖都會失效。 這項功能為您的應用程式提供額外的安全層,因為當您變更密碼時,會從您登入此應用程式的任何地方 (所有其他瀏覽器) 登出。
讓主索引鍵類型針對 Users 和 Roles 延伸:在 ASP.NET Identity 1.0 中,資料表 Users 和 Roles 的主索引鍵類型為字元串。 這表示當使用 Entity Framework 在 SQL Server 中保存 ASP.NET Identity 系統時,我們在使用 nvarchar。 Stack Overflow 上的這個預設實作,以及根據傳入的意見反應,有許多討論。 我們提供了擴充性勾點,您可以在其中指定 Users and Roles 資料表的主索引鍵。 如果您正在移轉應用程式,且在儲存 UserId 的應用程式是 GUID 或 ints,則此擴充性勾點特別有用。
在 Users 和 Roles 上支援 IQueryable:在 UsersStore 和 RolesStore 上新增 IQueryable 的支援,您便可以輕鬆取得 Users 和 Roles 的清單。
透過 UserManager 支援刪除作業
在 UserName 上編製索引:在 ASP.NET Identity Entity Framework 實作中,我們已使用 EF 6.1.0 中的新 IndexAttribute,在 Username 上新增唯一索引。 如此可確保使用者名稱始終是唯一的,而且沒有競爭情況,您最終可能會有重複的使用者名稱。
增強型密碼驗證程式:ASP.NET Identity 1.0 隨附的密碼驗證程式是一個相當基本的密碼驗證程式,它只驗證最小長度。 新的密碼驗證程式可讓您更充分掌控密碼的複雜度。 請注意,即使您開啟此密碼的所有設定,仍建議您啟用使用者帳戶的雙因素驗證。
IdentityFactory 中介軟體/CreatePerOwinContext:
- 使用者管理員:您可以使用 Factory 實作,從 OWIN 內容取得 UserManager 的執行個體。 此模式類似於從 OWIN 內容取得 SignIn 和 SignOut 的 AuthenticationManager。 這是針對應用程式的每個要求取得 UserManager 執行個體的建議方式。
- DbContextFactory:ASP.NET Identity 會使用 Entity Framework 在 SQL Server 中保存身分識別系統。 為此,身分識別系統具有 ApplicationDbContext 的參考。 DbContextFactory 中介軟體會針對您可以在應用程式中使用的每個要求,傳回 ApplicationDbContext 的執行個體。
ASP.NET Identity 範例 NuGet 套件:範例 NuGet 套件可更輕鬆安裝和執行 ASP.NET Identity 的範例,並遵循最佳做法。 這是範例 ASP.NET MVC 應用程式。 在生產環境中部署此程式之前,請先修改程式碼以符合您的應用程式。 該範例應安裝在空的 ASP.NET 應用程式中。 如需套件的詳細資訊,請移至下列部落格文章:宣告 ASP.NET Identity 2.0.0 的 RTM
Microsoft OWIN 元件
此版本已修正許多錯誤。
ASP.NET SignalR 2.0.2
此版本已修正許多錯誤。 如需詳細資訊,請參閱 2.0.2 版的版本資訊。