从2002年的.NET Framework1.0,经过五年的发展,.NET已经越来越成熟,现在已经是.NET Framework 3.5了。相信很多朋友已经开始通过各种渠道了解了Visual Studio 2008以及.NET Framework 3.5,并且已经进入到实践了。
开心在VS 2008 beta 2的时候,就将手头的一些动手项目(为了保持功力持久不衰,开心也会经常写写代码的)切换到了.NET Framework 3.5。可是在切换过程当中,还是遇到了很多问题,在这儿想与大家商榷一下。
可能所有研究.NET的朋友在内心里面都会模糊得有这样一个蓝图:
.NET Framework | 1.0 | 1.1 | 2.0 | 3.0 | 3.5 |
C# | C# 1.0 | C# 1.1 | C# 2.0 | C# 3.0 | C# 3.5 |
ASP.NET | ASP.NET 1.0 | ASP.NET 1.1 | ASP.NET 2.0 | ASP.NET 3.0 | ASP.NET 3.5 |
俺个人对于这个蓝图,一直以来也是坚信不疑的,当然,3.0是一个例外,毕竟3.0是一个对于2.0的补充,要想使用3.0,你必须先安装2.0,3.0仅仅是扩充了四个模块,即WPF(Windows Presentation Foundation)、WCF(Windows Communcation Foundataion)、WF(Windows Workflow Foundation)以及WCS(Windows Card Space),所以那时候我在拜访客户的时候,讲解.NET 3.0都会提到.NET 3.0其实可以看作是.NET 2.0 SP1。只不过基于种种原因,所以目前改名叫做.NET 3.0。而.NET 3.5才会是真正的.NET 3.0,才会提供C# 3.0以及ASP.NET 3.0这些概念。
我一直很坚信自己的这些看法的,也坚信随着.NET 3.5的出现,会出现ASP.NET 3.5或者C# 3.5这样的称呼。而且我在http://www.asp.net已经看到类似的术语了:
既然是ASP.NET 3.5,那么想当然的,在IIS的设置里面肯定可以选择不同的.NET版本用以绑定,所以我兴冲冲的来到IIS 7的.NET绑定环节中(在应用程序池当中选择),准备将我新开发的Web项目绑定到ASP.NET 3.5当中。可是,意想不到的情况出现了,竟然没有.NET Framework 3.5的选项:
咦,这到底是怎么回事呢?突然想到,是不是我没有使用ASPNET_RegIIS.exe进行注册呀,于是进入到[SystemDriver]:\Windows\Microsoft.NET\Framework\v3.5当中寻找aspnet_regiis.exe这个文件,可是发现没有这个文件。这下我是彻底晕菜了。到底是怎么回事呢?
于是发邮件询问一些总部的同事,结果得到的答案是:ASP.NET 3.5不是Offical的术语,真正的术语应该是ASP.NET Running on Framework 3.5。
原来如此,ASP.NET 3.5只是我们想当然的一个术语,其实ASP.NET 3.5根本不存在,所以您要做的只是编写ASP.NET 2.0的应用程序,然后在VS 2008中将其Target Framework指向为.NET Framework 3.5。ASP.NET Running on Framework 3.5在ASP.NET层次也没有带来新的革命性的改变,只是集成了AJAX,并且增加了一两个控件。
所以我认为:
.NET 3.0=.NET 2.0 Service Pack 1 with WCF, WPF, WF and WCS
.NET 3.5=.NET 2.0 Service Pack 2 with LINQ, C# 3.0, WCF 2.0, WPF 2.0, WF 2.0 and ASP.NET Ajax
打赏作者
这下澄清了 🙂
正解
正解!
正解
.NET 3.0应该理解为2.1,3.5算个2.2最多2.5
不过出于市场策略考虑微软就直接改主版本号了
Java那边也有一样的问题..
没有C# 3.5哇。
其实这个表还是不够准确,应该把CLR的版本列出来才对:
.NET打包版本 1.0 1.1 2.0 3.0 3.5
C#编译器版本 1.0 1.1 2.0 2.0 3.0
VB编译器版本 7.0 7.1 8.0 8.0 9.0
CLR版本 1.0 1.1 2.0 2.0 2.0
所谓.NET Framework,其实就是一个打包,版本不同就是打包内容不同,现在只能这样理解
其实我觉得3.0并不是2.0 SP1+4个F
3.5才是2.0 sp1+3.0 sp1+ajxa+c#3.0,VB9等等
我个人觉得.NET 3.0确实不应该称为3.0,顶多叫.Net 2.0 extension package。.Net 3.5才可以叫.Net 3.0,因为它的类库对比2.0已经改变了很多,将WCF,WPF,WF都整合进来了。
比较关心的是2.0的单独sp1会什么时候出来,虽然现在3.5中带了2.0的sp1.不过也要考虑在win2k上运行2.0的兄弟啊
csc.exe 的版本号还是 beta 2?
Microsoft (R) Visual C# 2008 Compiler Beta 2 version 3.5.21022.8
for Microsoft (R) .NET Framework version 3.5
版权所有 (C) Microsoft Corporation。保留所有权利。
@ Microshaoft:
你用的是内部的中文版本,该版本还未RTM。正式的RTM版本号应该是3.5.21022.7,而不是.8
以后如果面试开发人员,可以用以下BT的面试题,呵呵
1) Using Visual Studio 2008,we can develop which web applications?
A) ASP.NET 1.1; B) ASP.NET 3.0; C) ASP.NET 3.5; D)ASP.NET 2.0 Running on Framework 3.5;
2) In .NET Framework 3.5, which version C# is?
A) 1.0; B) 2.0; C) 3.0; D) 3.5
IIS的人把CLR的版本和.Net的版本搞混了
@开心就好
我这里得到的消息,1022.8确实是sign off的RTM版本,包括现在在MSDN和那个90天试用版,都是.8的。
有关Framework 3.5的,严格来说,其中的ASP.NET依然是2.0,所以在IIS7中也只有2.0的选项。包括LINQ等其实都是编译器层次上的新的feature,用3.5的csc编译的包含linq的ASP.NET c#项目,依然可以在只有2.0framework上运行。
所有C#3.0的new features 都是编译器层次上的,编译之后其实MSIL和2.0的完全兼容。
其实这样也有好处,利于过渡。
.NET 3.0=.NET 2.0 Service Pack 1 with WCF, WPF, WF and WCS
请问能不能单独安装WCF
全部安装文件太大了,客户端下载时间太长,安装也很费时!
呵呵,版本定的确实有些让人迷惑。其实核心还是clr还是2.0
Ajax都改成3.5了,C#还是3.0容易混淆…
C#3.0 和 LINQ 是亮点.
目前新出的.Net Framework都只是在原有的基础上进行了扩充. 微软也从关注.Net Core到了关注.Net的扩展上了.
微软就是这样爱把人搞定晕乎乎的,呵呵
:)
怎么可能还有Beta2字样哪?21022.8是RTM,.7不是。
Microsoft (R) Visual C# 2008 Compiler version 3.5.21022.8
for Microsoft (R) .NET Framework version 3.5
Copyright (C) Microsoft Corporation. All rights reserved.
fatal error CS2008: No inputs specified
http://www.microsoft.com/expression/
不可访问,都干吗去了?
.Net Framework 2/3 有单独的 SP1 了,包含在 3.5 里。
很不错。赞同“装配脑袋”对 CLR 版本的看法,也就是说,CLR 版本到现在还是 2.0 版。
我收集了 .NET Framework 的各个版本的情况,请参见我在博客园中的文章:
《Microsoft .NET Framework 的版本》
http://www.cnblogs.com/skyivben/archive/2007/10/13/923267.html
说得好!
.NET 3.0=.NET 2.0 Service Pack 1 with WCF, WPF, WF and WCS
.NET 3.5=.NET 2.0 Service Pack 2 with LINQ, C# 3.0, WCF 2.0, WPF 2.0, WF 2.0 and ASP.NET Ajax
生命不息,前进不止啊。
哈哈~原来你也写过这个问题!
我在我的blog也写过这个问题啊!
不过还是你强!
http://www.tobrush.com/?p=574251