微軟正式的.NET Framework 3.0發表

看了大大們的說法,我的看法如下,如有錯誤請指正.

不認同 "Net FrameWork 3.0 都是可以向下相容的 ......."
認同 ".NET 有一個非常重要的觀念,叫做版本並存"

我的電腦上有 .NET 1.0/1.1/2.0
裝的 .NET CLR 會產生如下目錄
X:\WINDOWS\Microsoft.NET\Framework\v1.0.3705
X:\WINDOWS\Microsoft.NET\Framework\v1.1.4322
X:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
所以 .NET CLR 是把各版本各自畫分開來,各版本的 .NET 程式執行自己版本的 .NET CLR.

另外我於
X:\WINDOWS\Microsoft.NET\Framework\v1.1.4322> csc test1.cs
X:\WINDOWS\Microsoft.NET\Framework\v2.0.50727> csc test2.cs
用 V1.1 和 V2.0 的 C# Compiler 同一個 C# 程式

用 UltraEdit 比較兩個 test1.exe test2.exe 的不同,發現
test1.exe 內容會有 v1.1.4322 的文字
test1.exe 內容會有 v2.0.50727 的文字

用 ildasm 發現 test1.exe
.assembly extern mscorlib
{
.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
.ver 1:0:5000:0
}
用 ildasm 發現 test2.exe
.assembly extern mscorlib
{
.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
.ver 2:0:0:0
}

所以"猜測"當 test1.exe 執行時,它應該會去執行 V1.1 相關的 Base Class Library.
所以"猜測"當 test2.exe 執行時,它應該會去執行 V2.0 相關的 Base Class Library.

認同 ".NET Framework 3.0 只是 2.0 的豪華版"

若電腦已裝 .NET V2.0,則 .NET V3.0 則"只安裝"新的 Windows Vista 元件,所以 .NET V3.0 確實是以 .NET V2.0 為基礎沒錯.
It combines the power of the .NET Framework version 2.0 with new technologies .......
For customers that already have the .NET Framework 2.0 installed, this .NET Framework 3.0 redistributable package installs only the new Windows Vista components.
參考來源:
http://www.microsoft.com/downloads/details.aspx?FamilyId=10CC340B-F857-4A14-83F5-25634C3BF043&displaylang=en

疑問,若是以這樣的邏輯,那麼若哪天 .NET Framework V100,那電腦上不就有近百個 .NET CLR 的版本.
不過 M$ 會耍賤招,就是太舊的 OS 不給裝新版本的 .NET Framework.
例如 .NET V3.0 只支援 WinXP 以上,所以像 Win2000 以前的 OS 頂多只裝了 V1.0/V1.1/V2.0 三個版本而已.

不過我不急著裝 .NET V3 啦,我倒比較期待 M$ PowerShell V1.0 正式版. (IT 人的瑞士刀)
(PS:以前叫 M$ Monad(微軟摸奶),現在改名叫 M$ PowerShell(微軟暴薛),已經到 RC2 囉 快出來囉.)
plusv wrote:
不認同 "Net FrameWork 3.0 都是可以向下相容的


沒錯!

.NET 並沒有處理所謂的相容問題(至少目前為止是),他採用的模式稱為 Side-by-side(版本並存),至於應用程式要使用那的版本的 .NET Framework ,在 Compile 的時候已經決定了。如果您是用 1.1 compile 的,就只能在 1.1 上執行,即使您的電腦已經裝了 .NET 2.0 ,同樣必需在下載 .NET 1.1 。(小弟之前建議過,以後新的平台,直接將不同版本的 Framework裝上去就好了,不知道聽進去了沒)

至於 3.0 向下相容 2.0 ,前面已經說過了,3.0 就是 2.0 ,只是加了一些東西,原本的通通沒變,連元件的版本編號都沒變。

這次的命名方式真是鬼扯蛋,由於搞個 3.0 ,把 .NET Framework 由技術名詞轉成產品名辭。.NET Framework 3.0 的 CLR 版本為 2.0,使用的語言為 C# 2.0 ,網頁技術為 ASP.NET 2.0 ,使用的函式庫為 Base Class Library 2.0 ,除了 .NET Framework 用 3.0 命名以外,其他全部是 2.0 。 或許過一陣子,研發團隊就被逼著弄出一個 C# 3.0, ASP.NET 3.0 出來了...

本生物已配置全天候戰鬥系統~ 手機不通、Skype 離線時,請託夢,或留言!
Ricado wrote:
應用程式要使用那的版本的 .NET Framework ,在 Compile 的時候已經決定了

果然我的推理沒錯,所以我用 UltraEdit 和 ildasm 觀察 C# Compiler 出的 EXE 檔發現線索.

Ricado wrote:
除了 .NET Framework 用 3.0 命名以外,其他全部是 2.0

這讓我想起
Windows NT V4.0 的 CMD.EXE 打入 "VER" 顯示 4.0 (印像中)
Windows 2000 的 CMD.EXE 打入 "VER" 顯示 5.0 (印像中)
Windows XP 的 CMD.EXE 打入 "VER" 顯示 5.1 (印像中)
Windows 2003 的 CMD.EXE 打入 "VER" 顯示 5.2 (印像中)

Windows NT4 到 Windows 2000 進步幅度大,由 4.0 到 5.0 合理
但我覺的 Windows 2000/XP/2003 進步幅度普通,加個 0.1 也合理

同理 .NET V1 到 V2 進步幅度大,加個 1 合理
但我覺的 V2 到 V3 進步幅度普通,加個 1 不合理,應該取 .NET V2.1 比較合理.

Ricado wrote:
或許過一陣子,研發團隊就被逼著弄出一個 C# 3.0, ASP.NET 3.0 出來了...

我覺的 M$ 會像 Windwos 98 和 Windows 2003 一樣取名
Windows 98 變成 Windows 98 Second Edition
Windows 2003 Server 變成 Windwos 2003 Server R2.
同理 .NET V2 變成 .NET V2 R2 或 .NET V2 Second Edition.

Ricado wrote:
.NET Framework 3.0 的 CLR 版本為 2.0,使用的語言為 C# 2.0 ......

我還沒裝 .NET V3 ,所以想"推理"一下
1.) .NET V3 會產生 X:\WINDOWS\Microsoft.NET\Framework\v3.x.xxxx 的目錄嗎 ??

2.)
X:\WINDOWS\Microsoft.NET\Framework\v1.1.4322>csc
Microsoft (R) Visual C# .NET Compiler version 7.10.6310.4
for Microsoft (R) .NET Framework version 1.1.4322
Copyright (C) Microsoft Corporation 2001-2002. All rights reserved.

X:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>csc
Microsoft (R) Visual C# 2005 Compiler version 8.00.50727.42
for Microsoft (R) Windows (R) 2005 Framework version 2.0.50727
Copyright (C) Microsoft Corporation 2001-2005. All rights reserved.

那 .NET V3 可 Post 一下上述的畫面嗎 ??

唉...有點軟.

我每次用 .net 寫出來的程式, 都會被人嫌. 因為使用者還用去裝 .net.
而且 .net 又一堆版本. 出機時也沒裝上....真是越來越軟了.
瞧瞧聖殿祭司是如何看待 .NET Framework 3.0

http://blog.sina.com.tw/dotnet/article.php?pbgid=4907&entryid=222229
寫web form才真的會被氣死
除了開發工具明顯不打算向下相容外
還讓我每一個sub domain下的web都無法同時執行多種版本
對於架構稍微大一點的舊1.1版本網站,還是只能強迫自己繼續用1.1寫下去
不管你出到3.0還是10.0...除非我整個網站改寫,不然還不是不能用
然後還得保佑不要不小心用到2.0或是3.0的東西...

狠悶...
https://jin.tw
裝個Nokia手機附的軟體Disk2Phone,就一定要你先裝NET Framework 1.1,不然不給安裝。
我電腦裡面就是已經有了NET Framework 2.0加上兩個修正。
最後還是乖乖的把NET Framework 1.1給裝上去。
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!