我最近搬到Visual Studio 2010并升级了我的网站以使用.NET Framework 4.(来自VS 2008 - Framework 3.5)
为了提高网站速度,可读性或内存使用,我需要了解哪些事项?
答案 0 :(得分:66)
Parallel.For(0,10,(i)=>
{
// Do stuff in parallel.
});
Parallel课程的其余部分提供了其他一些很棒的内容,例如Parallel.Invoke(...)
和Parallel.ForEach(...)
。
此外,如果您对Linq执行任何操作,则可以使用ParallelEnumerable.AsParallel() Method 将Linq查询转换为并行运行。
这一切都建立在Task Parallel Library之上,它提供了一套很好的API,用于以抽象的方式处理任务,可以扩展您的机器所拥有的任何资源,而无需过多考虑您创建的线程数量
答案 1 :(得分:21)
除了DirectoryInfo
和GetDirectories
方法之外,GetFiles
类现在还有懒惰版本EnumerateDirectories
和EnumerateFiles
,这样我们就无法拥有大型数组一次抓住所有物品。
答案 2 :(得分:18)
string.Join()
现在有一个签名,只需IEnumerable<T>
而非string[]
- 这是一项小改进,可让您删除.Select()
和.ToArray()
代码
答案 3 :(得分:15)
很棒的是,可以操纵客户端ID:
不再有CTL0001 $ _DIV0003_TextBox1001 $或其他......
答案 4 :(得分:13)
我只是喜欢web.config文件小而有意义,而不是冗长且充满未知语句的事实......
答案 5 :(得分:12)
可选参数是我的最爱之一。 dynamic
类似乎很有希望
答案 6 :(得分:9)
C#实现event
字段的方式是新的。默认情况下,它不再在内部执行非常糟糕的lock (this)
。事件仍然是线程安全的,但是因为现在使用了Interlocked.CompareExchange(...)
机制。
这导致一些可能在某些边缘情况下破裂的变化。更多信息:
答案 7 :(得分:9)
答案 8 :(得分:5)
System.Numerics.BigInteger - 表示任意大的有符号整数。
System.Numerics.Complex - 代表一个复数。
答案 9 :(得分:4)
从创建更正确的代码的角度以及从生成更完整的文档的角度来看,代码合同看起来非常有前途。可悲的是,它们并不是VS2010中的全部 - 你必须安装一个附加组件,即使它既不完整也不完整,似乎仍在进行中。
答案 10 :(得分:4)
您可以使用内存映射文件(与本机Windows函数访问内存映射文件的方式相同)来编辑非常大的文件并为进程间通信创建共享内存。 有关详细说明,请参阅: http://msdn.microsoft.com/en-us/library/dd997372.aspx
答案 11 :(得分:3)
对于ASP.NET程序员the ASP.NET 4 and Visual Studio 2010 Web Development Overview,白皮书全面概述了ASP.NET 4中的新功能。有关最突出和最有趣的更改的一系列文章,我建议使用Scott Gutherie {{3 }}
答案 12 :(得分:3)
ASP.net缓存现在是自己的程序集!
<强> System.runtime.caching.dll 强>
这意味着您可以在WPF和WinForms等其他应用程序中使用,而无需拉入整个system.web程序集
我只是希望他们能够加强CacheItem以包含有关缓存项的内置信息,例如添加时...等待它何时到期等等
答案 13 :(得分:2)
我还会参考原始文档(在本例中为MSDN),以获得完整的改进和补充列表:
http://msdn.microsoft.com/en-us/library/ms171868.aspx
通过该文章,您可以轻松找到可以改善现有代码库的内容。
答案 14 :(得分:1)
为了便于阅读,我将在我自己的问题中添加我的发现。
使用AJAX时,您可以为scriptManager指定EnableCdn属性以从CDN(例如Microsoft CDN)加载值
答案 15 :(得分:0)
我相信WCF还有一些增强功能可以消除之前的烦恼,例如无法为.Net 3.5中的每个端点配置WebGet
/ WebInvoke
。我相信它在4.0中完全可配置。