.NET 3.5的版本问题

从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已经看到类似的术语了:

image

既然是ASP.NET 3.5,那么想当然的,在IIS的设置里面肯定可以选择不同的.NET版本用以绑定,所以我兴冲冲的来到IIS 7的.NET绑定环节中(在应用程序池当中选择),准备将我新开发的Web项目绑定到ASP.NET 3.5当中。可是,意想不到的情况出现了,竟然没有.NET Framework 3.5的选项:

image

咦,这到底是怎么回事呢?突然想到,是不是我没有使用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.5的版本问题”的27个回复

  1. 其实这个表还是不够准确,应该把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

  2. 我个人觉得.NET 3.0确实不应该称为3.0,顶多叫.Net 2.0 extension package。.Net 3.5才可以叫.Net 3.0,因为它的类库对比2.0已经改变了很多,将WCF,WPF,WF都整合进来了。

  3. 比较关心的是2.0的单独sp1会什么时候出来,虽然现在3.5中带了2.0的sp1.不过也要考虑在win2k上运行2.0的兄弟啊

  4. 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。保留所有权利。

  5. 以后如果面试开发人员,可以用以下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

  6. @开心就好

    我这里得到的消息,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的完全兼容。

    其实这样也有好处,利于过渡。

  7. .NET 3.0=.NET 2.0 Service Pack 1 with WCF, WPF, WF and WCS

    请问能不能单独安装WCF

    全部安装文件太大了,客户端下载时间太长,安装也很费时!

  8. 怎么可能还有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

  9. 说得好!

    .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

发表评论

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

11 + 11 =