[重点翻译] ASP.NET 4.6的更新 -- 本文只摘录 Web Forms的部分
日前,微软 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
==== 文章摘录如下: ========================================================
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的验证。如下图,最新的验证设定画面。
(点选图片可超链接到原文)
![]()
Enabling the .NET Compiler Platform (“Roslyn”) in ASP.NET applications
在VS 2015里面的Web Forms样板,预安装了软件套件。下图就是一个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
上面文章里面提到的几个专有名词,您可以查阅以前发表过的文章:
[中文翻译] 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
[重点翻译] ASP.NET 4.6的更新 -- 本文只摘录 Web Forms的部分的更多相关文章
- Asp.Net学习进度备忘(第一步:ASP.NET Web Forms)
书签:“Web Pages”和“MVC”跳过:另外跳过的内容有待跟进 __________________ 学习资源:W3School. _________________ 跳过的内容: 1.ASP. ...
- [渣译文] 使用 MVC 5 的 EF6 Code First 入门 系列:为ASP.NET MVC应用程序更新相关数据
这是微软官方教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻译,这里是第八篇:为ASP.NET MVC应用程序 ...
- ASP.NET MVC应用程序更新相关数据
为ASP.NET MVC应用程序更新相关数据 这是微软官方教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻译, ...
- [翻译] ASP.NET Core 2.2 正式版发布
本文为翻译,原文地址:https://blogs.msdn.microsoft.com/webdev/2018/12/04/asp-net-core-2-2-available-today/ 我(文章 ...
- [中文翻译] ASP.NET 5 简介(Introducing ASP.NET 5,原作ScottGu 2015/2/23)
本文出处 [中文翻译] ASP.NET 5 简介(Introducing ASP.NET 5,原作ScottGu 2015/2/23) 这是我的文章备份 http://www.dotblogs.co ...
- [翻译] ASP.NET Core 简介
ASP.NET Core 简介 原文地址:Introduction to ASP.NET Core 译文地址:asp.net core 简介 翻译:ganqiyin ...
- asp.net core 3.0 更新简记
asp.net core 3.0 更新简记 asp.net core 3.0 更新简记 Intro 最近把活动室预约项目从 asp.net core 2.2 更新到了 asp.net core 3.0 ...
- ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室 实战系列(不断更新中)
项目简介 利用ASP.NET SignalR技术与Layim前端im框架实现的一个简单的web聊天室,包括单聊,群聊,加好友,加群,好友搜索,管理,群组管理,好友权限设置等功能.涉及技术: Elast ...
- 【翻译】使用Knockout, Web API 和 ASP.Net Web Forms 进行简单数据绑定
原文地址:http://www.dotnetjalps.com/2013/05/Simple-data-binding-with-Knockout-Web-API-and-ASP-Net-Web-Fo ...
随机推荐
- 导出api文档
Export,选中项目或者需要导出api的类,右键 java-->javadoc configure,选择C:\Program Files\Java\jdk1.6.0_29\bin\javado ...
- SQL server 2016 安装步骤
1.进入安装中心:可以参考硬件和软件要求.可以看到一些说明文档 2.选择全新安装模式继续安装 3.输入产品秘钥:这里使用演示秘钥进行 4.在协议中,点击同意,并点击下一步按钮,继续安装 5.进入全局规 ...
- 无法定位程序输入点ucrtbase.
转:http://tieba.baidu.com/p/3848709732 后的解决方法是需要安装VC 2015 Redistributable,请自己选择相应的版本.百度云盘共享地址:http:// ...
- js时间冒泡,阻止事件冒泡
首先解释一下事件冒泡神什么, 在js中,假如在div中嵌套一个div 如 <style type="text/css"> #box1{width:500px;heigh ...
- NOIP2003 加分二叉树
http://www.luogu.org/problem/show?pid=1040 题目描述 设一个n个节点的二叉树tree的中序遍历为(1,2,3,…,n),其中数字1,2,3,…,n为节点编号. ...
- No.006 ZigZag Conversion
6. ZigZag Conversion Total Accepted: 98584 Total Submissions: 398018 Difficulty: Easy The string &qu ...
- Push failed: Failed with error: fatal: Could not read from remote repository.
GitLab push远端,出现错误提示:Push failed: Failed with error: fatal: Could not read from remote repository. 原 ...
- MongoDB 3: 使用中的问题,及其应用场景
导读:用MongoDB去存储非关系型的数据,是一个比较正确的选择.但是,如果只是用MongoDB,那么也会出现一些问题.MongoDB,尤其使用的最佳场景,更多的时候,需要结合关系型数据库共同解决问题 ...
- C++ 学习基础一
1.预处理器指示符如果文件名用尖括号“<”和”>”括起来的,则表示该文件是工程或标准头文件,查找过程会检查预定义的目录.如果文件名用双引号括起来,则表示该文件是用户自定义的头文件,查找该文 ...
- leetcode 101
101. Symmetric Tree Given a binary tree, check whether it is a mirror of itself (ie, symmetric aroun ...