编译为.NET Framework 3.5与2.0相比有什么优势吗?
例如,内存消耗更少,启动更快,性能更好等等...
个人认为没有,但可能我漏掉了某些东西。
编辑
当然,3.5框架中有更多的功能,但这不是本问题的重点。
似乎没有优势。
是的,我的意思是针对框架进行编译。我已安装最新的3.5 SP1和VS 2008,那么使用特定的框架版本进行编译有什么区别?我可以在项目选项中选择目标框架,但如何“使用”特定的框架版本进行编译?我不知道有什么区别。
因此,现在我们一致认为没有优势。
编译为.NET Framework 3.5与2.0相比有什么优势吗?
例如,内存消耗更少,启动更快,性能更好等等...
个人认为没有,但可能我漏掉了某些东西。
当然,3.5框架中有更多的功能,但这不是本问题的重点。
似乎没有优势。
是的,我的意思是针对框架进行编译。我已安装最新的3.5 SP1和VS 2008,那么使用特定的框架版本进行编译有什么区别?我可以在项目选项中选择目标框架,但如何“使用”特定的框架版本进行编译?我不知道有什么区别。
因此,现在我们一致认为没有优势。
编译和目标有所不同。
使用(例如)C#3.0编译器编译代码可能会提高性能(不过稍微有点),因为一些生成的IL代码优化可能已经包含在内。它还允许您使用一些新功能,如自动属性或lambda表达式。
针对特定框架进行目标设置将确保您的程序集适用于该框架(以及之后的版本),如果您将目标设置为2.0并使用3.5库,则会失败。除非您用另一个“更快”的类替换一个框架中的类,否则不会直接与其相关的任何性能改进。例如,针对.NET 1.1无法使用泛型,因此必须使用ArrayList,这比List慢得多(由于装箱和拆箱)。
我还没有找到任何东西。如果您不需要3.5特定功能,一个明显的缺点是,3.5代码库较年轻,因此可能(虽然不太可能)存在一些潜在的错误。
如果您没有使用该框架版本中的任何类,则编译到3.5框架没有任何好处。
我猜你的意思是针对.NET 3.5框架进行编译?如果是这样,那么像其他人所说的,我认为你不会看到太大的差异。
然而,如果你在谈论使用更新的编译器,那么以下链接中描述了C#和VB的各种更改和断裂变化:
我相信每个版本的Visual Studio都会附带不同的编译器。例如,在C#的情况下,2.0编译器随Visual Studio 2005一起发布,而C# 3.0则随Visual Studio 2008一起发布。根据您使用的Visual Studio版本,您最终会得到不同的编译器。
针对框架的目标是指在编译过程中具体要针对哪个版本的框架;针对框架是Visual Studio 2008的一个新功能。例如,我可以在Visual Studio 2008中打开一个解决方案并针对.Net的v2.0进行目标设置。结果是,在编译期间,我将无法使用任何3.0或3.5 .Net功能,例如WPF。
如果你的.NET程序集针对.NET 3.5,生成的应用程序将查找并需要.NET 3.5库,就是这样。这些库带有许多在.NET 2.0框架中找不到的附加类,因此将其定位为目标库将是一个优势。
但是,如果您使用适用于.NET 3.5的C# 3.0编译器(例如Visual Studio 2008)编译C#代码,但是将您的程序集目标设置为.NET 2.0,则仍然只需要常规的.NET 2.0库,并且实际上使用某些.NET 3.5编译器功能,因为其中一些功能最终仅使用.NET 2.0代码。在此处阅读更多信息:http://weblogs.asp.net/shahar/archive/2008/01/23/use-c-3-features-from-c-2-and-net-2-0-code.aspx