首頁>Club>
4
回覆列表
  • 1 # 智慧大石頭

    C#是.Net平臺上的主要開發語言,除此之外還有VB.Net和F#等。此處說的C#跨平臺暫且理解為.Net跨平臺。

    1,微軟設計.Net之初,只支援Windows平臺,跨多個版本的Windows系統平臺,但是不能跨Linux等。

    2,.Net剛出來就公開了語言標準,因此有個團隊基於該標準設計了Mono,除了Windows還支援Linux,並且一直維護更新,此時算得上是支援跨平臺了。

    3,2004年,牛逼遊戲公司搞了個遊戲引擎Unity,現在只支援C#,非常熱門

    4,2011年,另一個團隊基於Mono開發了Xamarin,支援蘋果、Android、WP三個平臺的移動開發,這個時候的.Net跨平臺更有價值了。

    5,2016年,微軟正式推出.Net Core,天生跨平臺,支援Windows、Linux、iOS等。

    6,再後來,微軟收購了Mono、Xamarin,免費開放。

    至此,.Net Core跨平臺一統天下!

  • 2 # 玩雙截棍的熊貓

    Mono 一個第三方的.net framework實現 (現被官方收編)

    幾乎實現了

    .net

    framework的所有功能,包括winfrm,wcf,aspnet webfrm 等等

    大名鼎鼎的unity3d就是使用mono實現了使用C#進行指令碼編寫

    Xamarin

    基於mono開發的,移動端跨平臺框架,支援 Android,iOS,WP(W10M)

    .NET

    Core

    我猜這個我不用說了。

  • 3 # 痴者工良

    石頭哥已經給你回答了。

    為了攢點粉絲,我也答一下。

    C#是.NET中的一個語言,F#、VB等也是。一般我們不說C#,而是說.NET。

    目前.NET有.net framework、.net core、xamarin、mono等框架。未來將以.NET 5開始,統一框架。

    .net可以跨平臺、跨CPU架構。

    支援Windows、linux、mac系統,基於linux開發的debain、ubuntu、centos等系統都支援。

    除了英特爾CPU,amd的CPU、arm架構的cpu都支援。

    除了我們平常電腦、伺服器用的Windows系統、linux系統,還支援樹莓派等各種linux嵌入式開發板。

    c語言是非託管語言,要對各種平臺分別生成。而.net可以只生成一次,即可把軟體放到各種平臺下執行。一次生成,各個平臺均可執行,不限cpu、不限系統。

    對於docker、k8s等技術。.net能十分優秀地契合,透過容器、叢集技術,建立大型系統,開發分散式應用。

    國外有十分豐富的大型應用經驗,國內對.NET的敏感度不高,主要以java為首的程式設計進行開發。要參考.net的情況,應當到谷g查詢資料。國內對.net的”熱情”並不高。

    .net支援windows、mac、linux等系統,支援電腦、手機(安卓和ios)、伺服器、開發板/物聯網裝置。

    軟體只需生成一次,即可在各個平臺佈署。

    .net core的效能已經跟C++十分接近了。

    .net 不僅能跨平臺,而且跨得很優秀。

  • 4 # 樂百川

    .NET

    和C#剛出來的時候就被設計為可以跨平臺的,不過由於微軟的戰略考慮,所以當時只是跨Windows平臺,只能算半個跨平臺。

    之後有了Mono,也就是開源的

    .NET

    實現,這時候C#就可以看成完全跨平臺的了。不過Mono畢竟是社群實現,沒有大公司的資金支援,雖然算是穩步發展,但是一直不溫不火。

    這種情況知道最近幾年改善了。因為微軟終於出手了,這就是大名鼎鼎的

    .NET

    Core,官方的跨平臺

    .NET

    實現。作為

    .NET

    的親兒子語言,C#自然理所應當的跨平臺了。

    .NET

    Core的程式碼完全是重新編寫的,並且是模組化的。作為對比,Java的模組化直到Java 9才實現。

    之後微軟的工作重心就放到了.NET CORE上,ASP.NET

    以及EF等框架也開發了新版來適應

    .NET

    CORE。

    現在

    .NET

    CORE的版本是2.2,最近的主要新特性是用Span重寫了很多底層,大幅提高了執行速度。而今年底將要到來的3.0則會帶來CORE上的WPF等GUI庫。可以期待。

    PS.現在主流Linux已經將

    .NET

    CORE納入到官方倉庫中,用一條命令即可安裝。之後就可以享受到C#語言帶來的便利。

  • 5 # EmacserVimer

    C#當然已經是一門徹底的跨平臺程式語言,最厲害的是C#是目前除了C++之外唯一一門可以開發移動端和PC端的程式語言,C#除了Windows平臺的開發,還搞定了iOS/Android的開發,他還不用像C++一樣每個平臺都要單獨開發一次。

    從Mono說起、C#似乎不是真正的跨平臺

    C#並不是一開始就跨平臺的,不像Java/Python/JavaScript/PHP這些程式語言一開始就是跨平臺,C#並不是這樣,C#設計之初並不是跨平臺的。

    C#之父也是Delphi之父、安德斯海爾斯伯格從設計C#開始,就把它作為了Windows平臺專屬的程式設計工具,因此微軟官方並沒有像Java一樣跨平臺。

    Xamarin公司主持了一個叫做Mono的開源專案,這個專案的目的就是建立一個開源的

    .NET

    工具,包括C#編譯器以及通用語言架構,與微軟官方的

    .NET

    Framework不同的是,Mono專案不僅僅可以在Windows平臺上執行,還可以在Linux、Unix、macOS、FreeBSD、Solaris等,甚至在Playstation 3,Wii以及XBox 360等遊戲平臺Mono也都能夠執行。

    後來微軟收購了Xamarin這家公司,微軟正式推進了C#和

    .NET

    開源,並且微軟官方推出了macOS版本的visual studio,其實就是基於xamarin做的,這可以說是微軟正式官方支援了整個微軟最核心開發體系的跨平臺和開源。

    C#能夠用在下面這些框架當中

    .NET

    Core(全平臺、完全跨平臺支援Linux、Windows、macOS),主要用在伺服器端開發,Web應用開發,以及企業系統開發,這方面功能是C++/Java/PHP/Python等程式語言最擅長的事情;

    Windows桌面程式開發,主要技術是WPF框架,這個層面的技術是C++最擅長的;

    Unity遊戲引擎的主要指令碼語言,可用來開發PC、Sony、Xbox等遊戲平臺上的各種遊戲,Unity是最為成熟的遊戲引擎之一,目前除了Unity最強的是Unreal虛幻引擎,虛幻引擎的主要程式語言則是C++,相對來說C#更低的學習門檻,也讓Unity迅速發展成為最火的遊戲引擎之一;

    開發原生移動應用,除了曾經的Windows phone平臺,透過Xamarin的技術,微軟實現了iOS/Android原生應用開發,並且與此同時還支援了macOS應用開發;

    .NET

    標準在上述所有應用程式中使用.net標準建立庫。

    最後總結一下跨平臺程式語言的特點:Java是一次編寫到處執行,C++是一次編寫針對特定的平臺進行編譯,C#則本質上僅僅是一門程式語言,想要實現跨平臺你需要選擇不同的技術棧、不同的框架。

  • 6 # 周林ZhouLin

    C#包括其他的

    .NET系語言,從技術實現上都是跨平臺的,因為它們在編譯之後都是符合.NET公共執行時標準的位元組碼,透過.NET虛擬機器執行時翻譯成最終的二進位制執行。

    微軟之前將C#等侷限在微軟作業系統上,只是一種商業競爭的考慮,希望廣大的開發者仍然圍繞在微軟的作業系統生態上開發。

  • 中秋節和大豐收的關聯?
  • 有簡單好看小清新的包推薦嗎?