Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 4.0 NETFramework4中每一个程序员都应该知道的东西_.net 4.0 - Fatal编程技术网

.net 4.0 NETFramework4中每一个程序员都应该知道的东西

.net 4.0 NETFramework4中每一个程序员都应该知道的东西,.net-4.0,.net 4.0,我最近搬到了VisualStudio2010,并将我的网站升级为使用.NETFramework4。从VS 2008-框架3.5 为了提高网站速度、可读性或内存使用,我需要知道哪些事情 类的其余部分提供了一些其他重要功能,如Parallel.Invoke。。。和平行。ForEach 此外,如果您使用Linq执行任何操作,您可以使用转换Linq查询以并行运行 它都是建立在的基础上的,它提供了一套非常好的API,用于以抽象的方式处理任务,可以根据您的机器拥有的任何资源进行扩展,而不必过多地考虑您正在

我最近搬到了VisualStudio2010,并将我的网站升级为使用.NETFramework4。从VS 2008-框架3.5

为了提高网站速度、可读性或内存使用,我需要知道哪些事情

类的其余部分提供了一些其他重要功能,如Parallel.Invoke。。。和平行。ForEach

此外,如果您使用Linq执行任何操作,您可以使用转换Linq查询以并行运行

它都是建立在的基础上的,它提供了一套非常好的API,用于以抽象的方式处理任务,可以根据您的机器拥有的任何资源进行扩展,而不必过多地考虑您正在创建的线程的确切数量。

C实现事件字段的方式是全新的。默认情况下,它不再在内部执行非常糟糕的锁定。但是,事件仍然是线程安全的,因为一个联锁的.CompareExchange。。。现在使用的是机械装置

这会导致一些更改,在某些边缘情况下可能会中断。更多信息:


可选参数是我的最爱之一。动态类型似乎很有前途

为了可读性,我将添加我的发现,如问题it self中所述


使用AJAX时,您可以为scriptManager指定EnableCdn属性,以便从CDN(如Microsoft CDN)加载值。我相信WCF还有一些增强功能,可以消除以前的烦恼,例如无法为.Net 3.5中的每个端点配置不同的WebGet/WebInvoke。我相信它在4.0中是完全可配置的。

面向ASP.NET程序员白皮书全面概述了ASP.NET 4中的新功能。对于一系列关于最显著和最有趣的变化的文章,我推荐Scott Gutherie的。

我只是喜欢web.config文件小而有意义,而不是长而充满未知语句的事实…

string.Join现在有了一个签名,它采用IEnumerable而不是string[]-一个小的改进,允许您删除.Select和.ToArray代码。

代码契约从创建更正确代码的角度来看,也从生成更完整文档的角度来看,都非常有希望。可悲的是,它们还没有全部出现在VS2010中-您必须安装一个附加组件,即使这样,它既不完整也没有完成,似乎仍在进行中。

非常棒的事情,客户端ID可以被操纵:


不再使用CTL0001$\u DIV0003\u TextBox1001$或其他任何东西。

在这种情况下,我还将参考原始文档MSDN,以获取全面的改进和添加列表:

从那篇文章中,您可以很容易地找到可以改进现有代码库的东西。

除了GetDirectories和GetFiles方法之外,DirectoryInfo类现在还有它们的惰性版本EnumerateDirectory和EnumerateFiles,这避免了我们使用大型数组同时容纳所有对象


ASP.net缓存现在位于其自己的程序集中

System.runtime.caching.dll

这意味着您可以在WPF和WinForms等其他应用程序中使用,而无需拉入整个system.web程序集


我只希望他们能增强CacheItem,使其包含缓存项的内置信息,如添加时…缓存项将过期时,etc

使用内存映射文件的方式与本机Windows函数访问内存映射文件的方式相同,可以编辑非常大的文件并为进程间通信创建共享内存。 有关详细说明,请参见:

-表示任意大的有符号整数


-表示复数。

太棒了!正是我的意思!!我一定会用的!嗯,我也不知道。可以节省大量无用的编码…相关的问题,您可以添加到这个答案中:只需小心公共/虚拟方法上的可选参数:-但它们在内部/私有类上是安全的。@Michael-欢迎您的评论和博客条目。我不需要将键入的内容保存得如此糟糕,以至于我会冒险将参数值编译到我的调用站点。@Jeff,不客气。如前所述,您完全可以使用内部/私有方法,因为所有调用站点都是重新编译的。就在公共场合,这不是一个好主意:另外,它现在显示了一个用于调试/发布的XML转换示例。是的!我真的很想让事情尽可能简单。实际上,ASP.NET缓存仍然像以前一样在System.Web程序集中。我真的不知道为什么。顺便说一句,新的缓存看起来很有前途。我相信它是为了向后兼容。据我所知,system.web.caching.cache将不会在未来的版本中得到增强。非常酷[来自MSDN]=>BigInteger类型是一种不可变类型,表示一个任意大的整数,其值在理论上没有上限或下限。由于BigInteger类型是不可变的,并且没有上限或下限,因此可以引发OutOfMemoryException
对于任何导致BigInteger值增长过大的操作。这是一件好事。有总比没有好。
Parallel.For(0,10,(i)=>
{
    // Do stuff in parallel.
});