[重点翻译] 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。后续文章的图片也引用自原文)

Updates for ASP.NET 4.6 – Web Forms/ MVC 5/ Web API 2

http://blogs.msdn.com/b/webdev/archive/2015/04/30/updates-for-asp-net-4-6-web-forms-mvc-5-web-api-2.aspx

==== 文章摘录如下: ========================================================

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.6Web 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的验证。如下图,最新的验证设定画面。

(点选图片可超链接到原文)

[重点翻译] ASP.NET 4.6的更新 -- 本文只摘录 Web Forms的部分

Enabling the .NET Compiler Platform (“Roslyn”) in ASP.NET applications

在VS 2015里面的Web Forms样板,预安装了软件套件。下图就是一个Web Forms网页。

(点选图片可超链接到原文)

[重点翻译] ASP.NET 4.6的更新 -- 本文只摘录 Web Forms的部分

使用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,范例如下。

http://blogs.msdn.com/b/webdev/archive/2015/04/24/making-it-better-asp-net-with-visual-basic-14.aspx

别忘了 @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的主要目标是让浏览器到网站的单一连结,能够改善效能、减少延迟、增加网络使用率。

这一段影片有更多介绍

http://channel9.msdn.com/Events/Visual-Studio/Connect-event-2014/812

Updated Ajax Control Toolkit

Ajax Control Toolkit的更新

Web Form开发者爱用的AJAX Toolkit也有更新。

详见 http://devexpress.com/ms-act

=========================================================================

关于 Build 2015大会的新宣示,其他新的功能与说明

可以参阅 .NET Announcements at Build 2015

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

上面文章里面提到的几个专有名词,您可以查阅以前发表过的文章:

关于 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

http://www.dotblogs.com.tw/mis2000lab/archive/2015/05/04/asp.net_46_web_form_updating_from_msdn_blog.aspx    这是我自己的文章备份

上一篇:python – 如何使用sympy定义条件函数?


下一篇:python – 有没有一种很好的方法可以为scipy.optimize.root或scipy.optimize.fsolve动态创建非线性方程式?