.Net Framework 4.5 新特性

最近面试时又看到有问.Net Framework 新特性的问题,一时被问到了。平时也是拿起来就用,新版本出来了,新特性也就是瞄一眼,也没去仔细查看。这次干脆花点时间总(翻)结(译)一下各个版本相比上一版本带来的新特性。主要参考来源是MSDN,一下是原文链接:

Reference: https://msdn.microsoft.com/en-us/library/ms171868(v=vs.110).aspx#core

嗯,我们就从4.5开始。

目录 Table Of Content

1. 核心新特性和改进 《本文》

2. 托管扩展框架

3. 异步文件操作

4. 工具

5. 并行计算

6.网站

7. 网络编程

8.WPF

9.WCF

10. WF

11.可移植类库

1. 核心特性和改进

1) . 在安装Framework 4.5的时候减少了系统重启的需要。应为4.5 安装时需要替换4.0的部分文件,所以要求这些文件在安装时可被替换(可写)。4.5引入了一个重启管理器(Restart Manager),它可以检测到正在运行的4.0的程序,并尝试关闭这些程序(会有提示框让用户确认要关闭的程序),以此来避免重启系统。但是有是一些程序不能或不应该关闭的,那就还是需要重启系统。

如果你要发布自己的程序并自带Framework 安装包(Chained Instaler),也可以通过设置命令行选项的方式,让用户在安装你的程序包是出现.Framework自带的关闭程序提示框。

参考: https://msdn.microsoft.com/en-us/library/hh527997(v=vs.110).aspx

PS: 这个新特性似乎用处不大,在开发环境重不重启系统无关紧要,重启的时候还可以趁机看看头条。生产环境的话,又不是100%不需重启,似乎并没有起到什么大作用。

2).  在64位系统上支持超过2GB的大数组。但是要是有此特性需要在配置文件中设置  gcAllowVeryLargeObjects 配置项:

<configuration>
<runtime>
<gcAllowVeryLargeObjects enabled="true" />
</runtime>
</configuration>

PS:没用过这么大的数组,什么场景会用到这么大的数组呢?

3). 开始支持服务器的后台垃圾回收。从4.0开始有后台垃圾回收,但是只支持工作台(WorkStation)环境。4.5开始支持服务器。 垃圾回收会自我调节一适应不同的场景。我们可以根据工作量的特点。通过修改配置文件的设置来设定垃圾回收的类型。目前CLR提供了两种垃圾回收的类型:工作台和服务器。

工作台垃圾回收适用于各种客户端工作台以及独立PC.它是 配置文件中<runtime>/ <gcserver> 的默认设置。它可以以并发或非并发模式运行。并发模式下垃圾回收和托管主线程同时运行。从4.0开始,后台垃圾回收替代了并发垃圾回收。

服务器垃圾回收适用于高吞吐和扩展的服务器应用程序。服务器垃圾回收可以是非并发或后台。

对于后台垃圾回收,它会在一个单独的线程中执行,而且只在2代堆上执行垃圾回收。

在0和1代(ephemeral generations)的对象是使用前台垃圾回收(Foreground Garbage colletion), 前台垃圾回收启动时,后台垃圾回收线程和程序主线程都会挂起直到回收结束再恢复。

Reference: https://msdn.microsoft.com/en-us/library/ee787088(v=vs.110).aspx#background_garbage_collection

4).在多核处理器系统上,可以支持后台JIT 编译,以提升程序启动速度。

Reference: https://msdn.microsoft.com/en-us/library/system.runtime.profileoptimization(v=vs.110).aspx

5).可以设置正则表达式引擎的超时时间。以前版本中是没有超时时间的。这个时间可以单独在创建是设置在Regex对象上或设置在AppDomain 中应用于所有的Regex对象。默认值是Regex.InfiniteMatchTimeout, 无超时。

using System;
using System.Text.RegularExpressions; public class Example
{
public static void Main()
{
AppDomain domain = AppDomain.CurrentDomain;
// Set a timeout interval of 2 seconds.
domain.SetData("REGEX_DEFAULT_MATCH_TIMEOUT", TimeSpan.FromSeconds());
Object timeout = domain.GetData("REGEX_DEFAULT_MATCH_TIMEOUT");
Console.WriteLine("Default regex match timeout: {0}",
timeout == null ? "<null>" : timeout); Regex rgx = new Regex("[aeiouy]");
Console.WriteLine("Regular expression pattern: {0}", rgx.ToString());
Console.WriteLine("Timeout interval for this regex: {0} seconds",
rgx.MatchTimeout.TotalSeconds);
}
}
// The example displays the following output:
// Default regex match timeout: 00:00:02
// Regular expression pattern: [aeiouy]
// Timeout interval for this regex: 2 seconds

Reference:https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex.matchtimeout(v=vs.110).aspx

6).可以为AppDomain 设置默认Culture.

Reference: https://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo(v=vs.110).aspx

7).控制台Console 支持UTF-16 编码。

8).在字符串的排序和比较是支持不同文化版本的编码.

9).读取资源时有更好的性能。

10).改进Zip压缩,减少了压缩后文件的大小。

11).可自定义一个反射上下文,覆盖默认的反射行为。反射上下文的作用就是在提供一种在运行时修改被反射类型的成员或方法的属性(Attribute).比如加一个源代码中没有属性,或者去掉一个源代码中有的属性。这样利用反射获取类型成员或方法的属性时就获取的是自定义的属性。

Reference:https://msdn.microsoft.com/en-us/library/system.reflection.context.customreflectioncontext(v=vs.110).aspx

12).当类System.Globalization.IdnMapping 在Win8上使用是,支持2008版本的IDNA(Internationalized Domain Names in Applications).类System.Globalization.IdnMapping  是支持非ASCII编码的因特网域名。

Reference: https://msdn.microsoft.com/en-us/library/system.globalization.idnmapping(v=vs.110).aspx

13).当.Net Framework 运行在Win8上时,字符串的比较会代理给实现了Unicode 6.0的操作系统。如果在其他平台上运行,.Net Framework 使用它自己的字符串比较,是基于Unicode5.X 。

14).可基于应用程序域计算字符串的哈希码。

15).类型反射支持Type 和 TypeInfo 类之间的拆分。

.Net Framework 各个版本新特性总结 (一)的更多相关文章

  1. framework各版本新特性(为面试准备)

    菜鸟D估计描述这些新特性的文章都是烂大街的货色,之所以拿出来分(e)享(xin)一下,有两个原因:1.当年面试的时候有人问到,我不知道该怎么回答:2.项目需要发布了,但是考虑到framework的版本 ...

  2. 精进不休 .NET 4.5 (12) - ADO.NET Entity Framework 6.0 新特性, WCF Data Services 5.6 新特性

    [索引页][源码下载] 精进不休 .NET 4.5 (12) - ADO.NET Entity Framework 6.0 新特性, WCF Data Services 5.6 新特性 作者:weba ...

  3. Atitit.c# .net 3.5 4.0 4.5 5.0 6.0各个版本新特性战略规划总结

    Atitit.c# .net 3.5 4.0 各个版本新特性战略规划总结 1. --------------.Net Framework版本同CLR版本的关系1 2. paip.----------- ...

  4. c# .net 3.5 4.0 4.5 5.0 6.0各个版本新特性战略规划总结【转载】

    引用:http://blog.csdn.net/attilax/article/details/42014327 c# .net 3.5 4.0 各个版本新特性战略规划总结 1. ---------- ...

  5. C# 语言历史版本特性(C# 1.0到C# 7.1汇总更新) C#各版本新特性 C#版本和.NET版本以及VS版本的对应关系

    C# 语言历史版本特性(C# 1.0到C# 7.1汇总更新) 2017年08月06日 11:53:13 阅读数:6705 历史版本 C#作为微软2000年以后.NET平台开发的当家语言,发展至今具有1 ...

  6. Atitit opencv版本新特性attilax总结

    Atitit opencv版本新特性attilax总结 1.1. :OpenCV 3.0 发布,史上功能最全,速度最快的版1 1.2. 应用领域2 1.3. OPENCV2.4.3改进 2.4.2就有 ...

  7. Atitit mac os 版本 新特性 attilax大总结

    Atitit mac os 版本 新特性 attilax大总结 1. Macos概述1 2. 早期2 2.1. Macintosh OS (系统 1.0)  1984年2 2.2. Mac OS 7. ...

  8. IOS第三天-新浪微博 - 版本新特性,OAuth授权认证

    *********版本新特性 #import "HWNewfeatureViewController.h" #import "HWTabBarViewController ...

  9. 【开源】OSharp3.3框架解说系列:重新开源及3.3版本新特性

    OSharp是什么? OSharp是个快速开发框架,但不是一个大而全的包罗万象的框架,严格的说,OSharp中什么都没有实现.与其他大而全的框架最大的不同点,就是OSharp只做抽象封装,不做实现.依 ...

随机推荐

  1. 【转】增加eclipse的运行内存 -- 不错!!

    原文网址:http://blog.csdn.net/qa962839575/article/details/43605241 今天在eclipse 中测试把文档转换为图片的时候,报出了下面的错误: J ...

  2. 2016值得关注的语言平台、JS框架

    语言和平台 Python 3.5 在今年发布了,带来了很多新特性 比如 Asyncio,,为你带来了类似 node.js 的事件机制,还有type hints. 鉴于Python 3 终于真正地火起来 ...

  3. HTML特殊字符大全

    特殊符号 命名实体 十进制编码 特殊符号 命名实体 十进制编码     !   ! " " " #   # $   $ %   % & & & ' ...

  4. vs2010 和 svn的结合运用,svn的安装

    转自:http://www.cnblogs.com/joeylee/archive/2012/10/08/2715142.html 1:svn的安装,如何在vs2010里面添加 svn的插件呢? 在这 ...

  5. feed4junit 实现junit4框架体系下数据驱动

    junit 是一款很好用的测试框架,但是该框架在并行和数据驱动方面没有提供支持,往往我们队这2个需求是很迫切的,不过有需求就会有人去做,有心思的人出现了,feed4junit 出现了,弥补了junit ...

  6. ImageMagick使用小节

    ImageMagick是一个强大的开源图形处理软件,国内应该很少人用,至今仍在更新,放出全版本下载链接 http://ftp.icm.edu.pl/packages/ImageMagick/binar ...

  7. HTML5 SSE自动推送

    前端页面: <!doctype html> <html> <head> <meta charset="UTF-8"> <tit ...

  8. 股票中的数学:EMA的推导01

    说明:本人并不炒股,原因很简单:没钱.当然了,作为一名IT工作者,因为工作需要和个人兴趣,就有了本系列文章.阅读本系列文章不需要任何高深的知识,哪怕是一个像我这样从未真正炒过股的人也没关系.但本文还是 ...

  9. 关于iTerm和Zsh

    关于iTerm和Zsh 终于我还是踏入了Zsh的行列,时间有点紧张,要开始做毕设了,关于Zsh和iTerm的好处我就不多说了哈,以后有时间再聊哈 Installation install Zsh 使用 ...

  10. How to Kill All Processes That Have Open Connection in a SQL Server Database[关闭数据库链接 最佳方法] -摘自网络

    SQL Server database administrators may frequently need in especially development and test environmen ...