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

摘要:[重點翻譯] ASP.NET 4.6的更新 -- Web Forms
ASP.NET 4.6在Web Form上的改進
驗證的升級
獻給Web Forms的 "非同步 Model Binding"
HTTP/2
Ajax Control Toolkit的更新

 

日前,微軟 Build 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" %>
 
<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
    <asp:GridView 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">
        <Columns>
            <asp:DynamicField DataField="StudentID" />
            <asp:DynamicField DataField="LastName" />
            <asp:DynamicField DataField="FirstName" />
            <asp:DynamicField DataField="Year" />
            <asp:TemplateField HeaderText="Total Credits">
                <ItemTemplate>
                    <asp:Label Text="<%# Item.Enrollments.Sum(en => en.Course.Credits) %>"
                        runat="server" />
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
    <br />
    <br />
 
</asp:Content>
 
//Async method for Select
public async Task<SelectResult> 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"
 
<asp:ListView runat="server" ID="vsTweetList"
     SelectMethod="vsTweetList_GetData" ItemType="LinqToTwitter.Status">
 
    <ItemTemplate> 
          <p> 
          <%#: $"At: {Item.CreatedAt.ToString("T")} on {Item.CreatedAt.ToString("d")}" %> 
          <br /> 
          <%#: Item.Text %> 
          </p> 
    </ItemTemplate>
 
    <ItemSeparatorTemplate>  <hr />  </ItemSeparatorTemplate> 
</asp:ListView>
 
 
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大會的新宣示,其他新的功能與說明

可以參閱 .NET Announcements at Build 2015

http://blogs.msdn.com/b/dotnet/archive/2015/04/29/net-announcements-at-build-2015.aspx#dotnetlang

 

 

上面文章裡面提到的幾個專有名詞,您可以查閱以前發表過的文章:

[中文翻譯] 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%20Binding/default.aspx

 

關於 非同步(Async / Await)在本網站的文章與範例,請看 http://www.dotblogs.com.tw/mis2000lab/Tags/%E9%9D%9E%E5%90%8C%E6%AD%A5/default.aspx

 

 

我將思想傳授他人, 他人之所得,亦無損於我之所有;

猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson

線上課程,遠距教學 (Web Form 49hr)  https://dotblogs.com.tw/mis2000lab/2016/02/01/aspnet_online_learning_distance_education_VS2015

線上課程,遠距教學 (ASP.NET MVC 75hr)  https://dotblogs.com.tw/mis2000lab/2018/08/14/ASPnet_MVC_Online_Learning_MIS2000Lab

ASP.NET MVC線上課程 第一天 免費看 (5.5小時) 

寫信給我,不要私訊 --  mis2000lab (at) yahoo.com.台灣  或  school (at) mis2000lab.net


ASP.NET遠距教學、線上課程(Web Form + MVC)。 第一天課程, "完整" 試聽。 

................   facebook社團   https://www.facebook.com/mis2000lab   ......................

................  YouTube (ASP.NET) 線上教學影片  https://www.youtube.com/channel/UC6IPPf6tvsNG8zX3u1LddvA/

 

Blog文章 "附的範例" 無法下載,請看 這裡 ...... https://dotblogs.com.tw/mis2000lab/2016/03/14/2008_2015_mis2000lab_sample_download

請看我們的「售後服務」範圍(嚴格認定)

......................................................................................................................................................

...................................................................................................................................................... 

[遠距教學、教學影片] ASP.NET (Web Form) 課程 上線了!MIS2000Lab.主講

事先錄製好的影片,並非上課時側錄!   觀看影片時,有如我「一對一」跟您面對面講課

 

ASP.NET MVC 5 線上教學

累積時數約 75小時...... 第一天(5.5小時)完整內容,"免費"讓您評估