原文出處:

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

http://www.dotblogs.com.tw/mis2000lab/archive/2015/05/04/asp.net_46_web_form_updating_from_msdn_blog.aspx

 

日前,微軟 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
 
 
 
 
 
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

 

 

......... 寫信給我,mis2000lab (at) yahoo.com.台灣 .....................................................................................

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

................   Google+   https://plus.google.com/100202398389206570368/posts ..............

................  YouTube (ASP.NET) 線上教學影片  http://goo.gl/rGLocQ

 

 

原文出處:

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

http://www.dotblogs.com.tw/mis2000lab/archive/2015/05/04/asp.net_46_web_form_updating_from_msdn_blog.aspx
arrow
arrow
    全站熱搜

    MIS2000 Lab 發表在 痞客邦 留言(0) 人氣()