2015年11月24日 星期二

[重點翻譯] ASP.NET 4.6的更新 -- 本文只摘錄 Web Forms的部分

日前,微軟 Build 2015大會 (2015 五月初)發佈了許多新技術與訊息
微軟 MSDN Blog也分享了許多第一手資訊。

因為我只注重在 Web Form這塊,只摘錄這方面的重點
MVC 5 / Web API 2 / EF的用戶可以參閱原文
(發表於 2015/4/30,此時的VS 2015版本為RC版。後續文章的圖片也引用自原文)
==== 文章摘錄如下: ========================================================
What is ASP.NET 4.6?
何謂 ASP.NET 4.6?
 
ASP.NET 4.6是 umbrella term給現有framework,例如:ASP.NET Web Form / MVC 5 / Web API 2等等升級使用的。
您可以在標準的、桌面上(desktop-enable)的.NET Framework Model用它來建構Web Apps。
   
Improvements in ASP.NET 4.6 for Web Forms/ MVC 5/ Web API 2.
ASP.NET 4.6在Web Form上的改進  (MVC 5 / WEb API 2的用戶,請參閱原文說明)
 ASP.NET 5(譯者註解:開放源碼)上的部分運作功能,也會再ASP.NET 4.6的改進framework上運作。
包含.NET Compiler Platform(Roslyn / 羅斯林專案)、在IIS上支援HTTP/2功能等等。
  
 
Authentication Updates
驗證的升級 
ASP.NET 4.6樣板現在採用了Open Id Connect中介軟體來作Azure AD的驗證。如下圖,最新的驗證設定畫面。
 (點選圖片可超連結到原文) 
clip_image002
 
   
Enabling the .NET Compiler Platform (“Roslyn”) in ASP.NET applications
 在VS 2015裡面的Web Forms樣板,預先安裝了軟體套件。下圖就是一個Web Forms網頁。
 (點選圖片可超連結到原文) 
clip_image004
 使用Web Forms的用戶,上圖的底部(Error List)雖然出現一些錯誤訊息,但請您放心,不會影響到專案的正常運作。
 
  
Async Model Binding for Web Forms
Web Forms的 "非同步 Model Binding"
 ASP.NET 4.5把MVC使用的Model Binding讓Web Forms也能享有相同的便利。
ASP.NET 4.6則是為Web Forms使用的 Model Binding,加入非同步(Async.)功能。 
 
程式範例如下:(引用自原文網站)
 註解:底下的Web Forms用了 GridView控制項,透過Model Binding(查詢、撈出、Select Method)學生資料
<%--
    Web Forms page calling a select method to model bind to a list of students.
    The GridView uses Model Binding to bind to Student type in your app.
    To use Async Model Binding, mark your page with Aysnc=True attribute.
    --%>
 
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" Async="true"CodeBehind="Default.aspx.cs" Inherits="WebApplication226._Default" %>
 
     runat="server" ID="studentsGrid"
        ItemType="ContosoUniversityModelBinding.Models.Student" DataKeyNames="StudentID"
        SelectMethod="studentsGrid_GetData"
        UpdateMethod="studentsGrid_UpdateItem"
        DeleteMethod="studentsGrid_DeleteItem"
        AutoGenerateEditButton="true"
        AutoGenerateDeleteButton="true"
        AllowSorting="true" AllowPaging="true" PageSize="4"
        AutoGenerateColumns="false">
       
           
           
           
           
           
               
                    <%# Item.Enrollments.Sum(en => en.Course.Credits) %>
"
                        runat="server" />
               
           
       
   
   
   
 
 
//Async method for Select
public async Task studentsGrid_GetData(int startRowIndex, int maximumRows)
{
    SchoolContext db = new SchoolContext();
    var query = db.Students.Include(s => s.Enrollments.Select(e => e.Course));
 
    SelectResult result = new SelectResult(query.Count(),
        await query
        .SortBy("StudentID")
        .Skip(startRowIndex)
        .Take(maximumRows)
        .ToListAsync());
 
    return result;
}
 
譯者註解:您也可以參考這篇文章,使用 VB語法的 "非同步" Model Binding,範例如下。
 
別忘了 @Page指示詞裡面要加上   <%@ Page Language="VB" Async="true"
 
     SelectMethod="vsTweetList_GetData" ItemType="LinqToTwitter.Status"> 
     
                     <%#: $"At: {Item.CreatedAt.ToString("T")} on {Item.CreatedAt.ToString("d")}" %> 
         
           <%#: Item.Text %>          
 
   
 
     
 
 
 
 
Public Function vsTweetList_GetData() As IEnumerable(Of Status)
      Return GetTweetsFor("VisualStudio") 
End Function 
 
 
Public Async Function vsTweetList_GetDataAsync() As Threading.Tasks.Task(Of IEnumerable(Of Status))
      Return Await GetTweetsForAsync("VisualStudio") 
End Function
 
 .NET 4.6(VS 2015)推出後,Web Form的Model Binding也支援非同步的作法(透過 async與 await來傳遞 Task物件)
 
  
 
Add support for HTTP/2
支援HTTP/2
 在Windows 10與.NET Framework 4.6,增加了HTTP/2的支援。
HTTP/2的主要目標是讓瀏覽器到網站的單一連結,能夠改善效能、減少延遲、增加網路使用率。
 這一段影片有更多介紹
 
  
Updated Ajax Control Toolkit
Ajax Control Toolkit的更新 
Web Form開發者愛用的AJAX Toolkit也有更新。
=========================================================================

關於 Build 2015大會的新宣示,其他新的功能與說明
上面文章裡面提到的幾個專有名詞,您可以查閱以前發表過的文章:

[中文翻譯] Visual Studio的 羅斯林專案(Roslyn Project)

[中文翻譯] ASP.NET 5 概觀 (ASP.NET 5 Overview,原作 Tom FitzMacken 2014/11/12)

[中文翻譯] ASP.NET 5 簡介(Introducing ASP.NET 5,原作ScottGu 2015/2/23)

關於 Model Binding在本網站的文章與範例,請看 http://www.dotblogs.com.tw/mis2000lab/Tags/Model%2...
 
 
我將思想傳授他人, 他人之所得,亦無損於我之所有;
猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson
......... 寫信給我,mis2000lab (at) yahoo.com.台灣 .....................................................................................
................   facebook社團   https://www.facebook.com/mis2000lab   ............................
................   Google+   https://plus.google.com/100202398389206570368/posts ..............
................  YouTube (ASP.NET) 線上教學影片  http://goo.gl/rGLocQ

沒有留言: