C#的变迁史 – C# 5.0 之其他增强篇

日子过得快捷啊,2016也将在过去了,近些日子间接都很忙,想改版,却腾不出时间来管理此网址。旧版的网址已经运营1年岁月了,平时会出BUG,好蛋疼,决心改版oo

1. 内置zip压缩与解压
  Zip是无比常用的文本压缩格式之一,也被差非常的少具有操作系统帮衬。在前面,使用程序去开展zip压缩和平解决压要靠第三方组件去扶持,那一点在.NET4.第55中学已持有改造,Zip压缩和平解决压功效已经停放于框架本人。那么些效应选取起来很简短,三步就能够:

谈起改版,真的很煎熬,此番可以说根本的改了,包蕴从程序后台到前台,累得够呛,能够回看下旧版:

率先步:在这里时此刻工程中增多多少个Reference:

旧版的是后台是ASP,且是响应式的,可是质量不太好且平时中病毒,被人植入广告代码,ASP太不安全鸟。

System.IO.Compression.FileSystem
System.IO.Compression

新本子选用PHP后台管理种类,尤其安全强盛了。效果如图:

其次步:援用命名空间:

比起旧版越发典型,内容愈发助长,页面框架可扩大性更加强,质量越来越好,运营速度越来越快啊。运用各样HTML5和CSS3的效果。

using System.IO.Compression;

由于时日关系,还未做成响应式,非常多别的职能有待开辟,包涵广大映射的法力,敬请期望吧~!

其三步:使用ZipFile提供的静态方法达成裁减和解压:

大家有见到BUG大概好的意见,都足以给本身留言哦。

// 如果你想要从文件夹压缩文件你可以调用如下所示的CreateFromDirectory函数。
ZipFile.CreateFromDirectory(@"D:\data",@"D:\data.zip"); 
// 如果你想要解压,你可以调用如下代码所示的ExtractToDirectory函数。
ZipFile.ExtractToDirectory(@"D:\data.zip", @"D:\data\unzip");

2. 正则表明式相配可安装超时

  以前的正则表达式相配是一直临时间范围的,那样对网址以来就只怕存在漏洞。要是二个骇客要攻击八个暗含正则表明式验证的网址(大致种种网址应当都利用了State of Qatar的时候,他得以设置三个细长的字符串去让服务器相称,那样就能够恒久的让服务器不可能响应其他须要,那就是平时所说的DOS(谢绝服务卡塔尔(قطر‎攻击。在.NET
4.5中,大家能够给正则表明式设置超时时间,使用起来很简短:

try 
{ 
  var regEx = new Regex(@”^(\d+)+$”, RegexOptions.Singleline, TimeSpan.FromSeconds(2)); 
  var match = regEx.Match(“123453109839109283090492309480329489812093809x”); 
} 
catch (RegexMatchTimeoutException ex) 
{ 
  Console.WriteLine(“Regex Timeout”); 
} 

3. 方可设置app domain的culture info
  在前边版本中,假如想设置culture
info,是内需在各种线程中装置的。上面包车型客车亲自过问程序演示了在线程等第设置culture
info的惨重,极其是当我们有雅量二十四线程的时候:

CultureInfo cul = new CultureInfo(strCulture); 
Thread.CurrentThread.CurrentCulture = cul; 
Thread.CurrentThread.CurrentUICulture = cul;

  在.NET
4.第55中学大家得以在接受程序域品级设置culture
info,何况有所在这里个利用程序域个中的线程都会一连那些culture
info。看三个简便的例证:

CultureInfo culture = CultureInfo.CreateSpecificCulture("fr-FR");
CultureInfo.DefaultThreadCurrentCulture = culture;

4. 后台垃圾回笼

  垃圾回笼在.NET应用中是一项辛勤的天职,特别是在ASP.NET应用中,它更是劳顿。ASP.NET应用在劳务器端运营,当众多客商端向服务器发送央求时就能够时有产生多量的零时对象,那使得垃圾回笼需求不停的启用回笼作用。
在从前的版本中,当废品回笼运转清理的时候,全数的应用程序线程要中断等待垃圾回笼完结,因为回笼废未来,相关的引用类型对象会有新的地点音讯。那对于服务器来讲,正是当时服务器不响应客商端的乞求。

  为了克制上述难点,服务器垃圾回笼机制被参加到.NET
4.5中。在服务器垃圾回笼机制中,CLGL450多创立了一个运作在后台的线程。那一个线程在后台运转并连发清理2代指标,从而减少主垃圾回笼线程的支付。由于双垃圾回笼线程的实施,主应用程序线程比超级少被中止,进而扩大了应用程序吞吐量。使用服务器垃圾回笼也很简单,正是在config文件中安排一下:

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

5. 多核微电脑下程序运营品质修改

  大家都知道.NET代码编写翻译后是以IL代码的方式存在。在前后相继第三遍运行时,JIT(Just-in-提姆e)编写翻译器才会将IL代码编写翻译为机器码。对JIT最大的抱怨之一正是当.NET程序第二回运转的时候,它运转得相当慢。

  为了减弱这几个运营时间,微软在.NET4.5中投入了“优化布置文件”本性。配置文件是贰个记录了程序在起步运作中必要的秘技列表的简便文件。当程序最早运营后,后台的JIT实行何况早先更改那么些格局的IL代码为机器码。

  那一个后台JIT在四个Computer上能够相互的编写翻译运行方法所以能够减低运维时间。请用心,因为此处是并行实行的,所以是应用了多核微处理器来完毕优化的。假设您的机械未有多核微型机(这种机械应该空中楼阁了卡塔尔(قطر‎,那么这几个设定会被忽视。

  为了创设“配置文件”这几个文件,首先你须要引入System.Runtime命名空间。然后你能够调用静态类ProfileOptimization的SetProfileRoot和StartProfile方法。未来当使用运行后台JIT,它将会读取配置文件同有时候在后台编写翻译运转方法进而减少运维时间。

using System.Runtime; 

ProfileOptimization.SetProfileRoot(@"D:\ProfileFile"); 
ProfileOptimization.StartProfile("ProfileFile"); 

  供给当心:ASP.NET 4.5和Silverlight
5应用暗中认可帮衬了Profileoptimization。所以编写那三种程序没有必要编写任何Code。

6. 应用程序等第的增高
  那些是二个相当大的课题,包涵ASP.NET程序中HTML5技能的支撑,WPF,WCF,WF类库的抓牢,那么些就相当的少说了。需求的同班参见MSDN上的详尽列表:。

发表评论

电子邮件地址不会被公开。 必填项已用*标注