.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(2));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 类之间的拆分。

转载于:https://www.cnblogs.com/Edwinzq/p/DotNetFramework45_CoreNewFeatures.html

.Net Framework 各个版本新特性总结 (一)相关推荐

  1. Atitit..jdk java 各版本新特性 1.0 1.1 1.2 1.3 1.4 1.5(5.0) 1.6(6.0) 7.0 8.0 9.0 attilax 大总结...

    Atitit..jdk java 各版本新特性 1.0 1.1 1.2 1.3 1.4 1.5(5.0) 1.6(6.0) 7.0 8.0 9.0 attilax 大总结 1.1. Java的编年史2 ...

  2. iOS基础:新浪微博授权机制、 版本新特性

    文章目录 前言 1. 版本新特性 II. 新浪微博授权机制 2. 1.http://open.weibo.com/wiki/微博API 前言 新浪微博分享SDK 1. 版本新特性 HWNewFeatu ...

  3. React16、17、18版本新特性

    react-16版本新特性 一.hooks import { useState } from 'react'function App() {// 参数:状态初始值比如,传入 0 表示该状态的初始值为 ...

  4. Spark 3.2.0 版本新特性 push-based shuffle 论文详解(一)概要和介绍

    前言 本文隶属于专栏<大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见大数据技术体系 目录 Spark 3.2.0 ...

  5. Go 1.18 版本新特性详解!

    导语 | 本文推选自腾讯云开发者社区-[技思广益 · 腾讯技术人原创集]专栏.该专栏是腾讯云开发者社区为腾讯技术人与广泛开发者打造的分享交流窗口.栏目邀约腾讯技术人分享原创的技术积淀,与广泛开发者互启 ...

  6. Android Q(10.0 API29)版本新特性和兼容性适配

    摘要 1.本文档基于谷歌AndroidQ官方文档和一加Q版本应用兼容性整改指导 2.本文档主要对影响比较大的部分进行简单总结,内容并不全面: 3.版本号对应关系: Android-Q = Androi ...

  7. Spark 3.2.0 版本新特性 push-based shuffle 论文详解(二)背景和动机

    前言 本文隶属于专栏<大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见大数据技术体系 目录 Spark 3.2.0 ...

  8. ANSYS Mechanical 2020 R1 版本新特性-CABLE 280单元分析索结构

    导读:3D 缆索单元,可用的产品:Pro | Premium | Enterprise | PrepPost | Solver | AS add-on 一.CABLE 280 单元概述 CABLE28 ...

  9. Android Q(10.0)版本新特性和兼容性适配

    北京时间2019年3月14日Google正式对外发布Android Q Beta 1及预览版SDK,这意味着安卓开发者们又即将迎来一年一度的新版本适配工作了.Android Q 为开发者们带来了许多新 ...

最新文章

  1. appJSON[tabBar][0][pagePath] pages/basics/basics 需在 pages 数组中
  2. 通过关闭swap来提高win7运行速度
  3. 【错误记录】PyCharm 运行 Python 程序报错 ( PEP 8: E402 module level import not at top of file )
  4. sizeof运算求结构体大小
  5. 一个udp用户数据报的数据字段为8192_基于FPGA的千兆网UDP通信分析
  6. 面向对象之类的内建函数
  7. 卖完砖头的Supreme要卖手机了 这种手机就不要讨论配置了吧...
  8. 新闻网页制作源代码_Python爬虫百度新闻标题,并且做简单的数据分析!挺简单的
  9. 【论文翻译】CenterNet: Objects as Points
  10. cocos2dx 插件Babelua的配置和使用
  11. 决策树后剪枝算法(二)错误率降低剪枝REP
  12. vyos配置src-nat
  13. Redis 配置文件重要属性介绍
  14. 外观检验人员一致性(Kappa)分析
  15. vue+js练手前端项目->游戏平台(贪吃蛇、俄罗斯方块、飞机大战、飞翔的小鸟、2048、五子棋)
  16. prometheus 阿里云短信告警
  17. 安全扫描工具-appscan
  18. 计算机网络实验——交换机的基本配置与管理
  19. Android GestureOverlayView详解
  20. 英语八年级上册计算机的事实,人教版英语|八年级上册各单元必考知识点汇总,收藏!...

热门文章

  1. 支付宝支付 第三集:搭建项目及测试(含代码)
  2. R语言 赋值符号 的区别
  3. 华为云交付项目服务器配置表,云端服务器配置表
  4. 电脑登陆不了网页的服务器地址,电脑能登qq不能打开网页的解决方法
  5. 华硕笔记本如何锁定计算机,我的华硕电脑开机密码被锁定了怎么办
  6. java web里实现 mvc_MVC模式在Java Web应用程序中的实现
  7. q3c 更换q3x 需要重置硬盘吗_轻松拓展你的游戏库 西部数据WD_BLACK D10 游戏专用硬盘评测...
  8. s时钟画布 android,Android UI编程进阶——使用SurfaceViewt和Canvas实现动态时钟
  9. vscode安装本地服务器_如何用本地的VSCode连接极链AI的GPU服务器
  10. bind函数作用、应用场景以及模拟实现