Dot-Net

.NET 會隨時接管 C/C++ 嗎?

  • February 23, 2010

這是一個主觀問題。

在進入 .NET 領域之前,我曾在 Visual Basic 6.0 中工作。

一件事我看到有很多事情需要處理 Win32 API。作為 Visual Basic 6.0 開發人員,有很多限制。.NET 修復了一些老問題,但是依賴 Win32 的需求並未得到解決。

是否有任何時候不需要依賴Win32?(我猜只有當 .NET 支持作業系統級別時。)

我知道.NET(編寫LOB應用程序/網站)和 C/C++ 的域到目前為止是不同的。

.NET 或任何其他基礎設施真的可以讓 C/C++ 變得不那麼重要嗎?我期待太多了嗎?

編輯:它看起來不像是在另一個包裝器上建構包裝器(並隨之帶來一組新的複雜性)?

它不會很快消失,但至少在 Windows 中,使用 C/C++ 的新項目越來越少。你甚至可以看到微軟開始吃自己的狗糧的例子。

C# 編譯器就是一個很好的例子。目前,它是用 C/C++ 編寫的。C# 團隊目前正致力於純粹在託管程式碼中重寫它。造成這種情況的一個重要原因與 .NET 中的 CAS 策略有關。呼叫非託管程式碼需要 FullTrust,因此編譯程式碼也需要 FullTrust。當他們轉向託管程式碼時,這種限制就會消失。

隨著越來越多的開發人員將 .NET 作為他們的開發平台,我們看到微軟也在效仿。

另一個很好的例子是 Visual Studio 2010。他們正在使用 WPF 和 MEF 重寫大部分 IDE,以便它易於擴展。

接下來,查看 Silverlight 執行時。它根本不(特別)依賴於 Win32。它在 Mac 上執行與在 Windows 上執行一樣。隨著 Silverlight 變得更加強大,我們可能會發現許多目前依賴 Win32 的 .NET 呼叫不再這樣做。

我想我的觀點是,我們至少 開始看到Windows 世界發生了一些變化。

當然,一旦你需要更加跨平台,C/C++ 又變得更有吸引力了……

引用自:https://stackoverflow.com/questions/345936