-
1 # 天丫海腳
-
2 # peak9751
要講清楚在什麼系統中用的.net程式語言,如果是後臺系統用java .net都差不多,如果是汽車裡用於控制部分的不可能用.net,這部分的系統才是特斯拉的精髓。
-
3 # IT人張飛洪
我要說一句,netcore優勢還是挺明顯的,特斯拉作為國外的公司,語言這塊並不像國內某些大廠一樣,還停留在net只能部署windows上的層面上。
先看看netcore有哪些特性
l 跨平臺: 可以在 Windows、macOS 和 Linux 作業系統上執行。
l 跨體系結構保持一致: 在多個體繫結構(包括 x64、x86 和 ARM)上以相同的行為執行程式碼。
l 命令列工具: 包括可用於本地開發和持續整合方案中的易於使用的命令列工具。
l 部署靈活: 可以包含在應用或已安裝的並行(使用者或系統範圍安裝)中。 可搭配 Docker 容器使用。
l 相容性: .NET Core 透過 .NET Standard與 .NET Framework、Xamarin 和 Mono 相容。
l 開放原始碼: .NET Core 平臺是開放原始碼,使用 MIT 和 Apache 2 許可證。 .NET Core 是一個 .NET Foundation 專案。
l 由 Microsoft 支援: .NET Core 由 Microsoft 依據 .NET Core 支援提供支援。
最近已經發布了net6,集成了很多優勢,以下摘自於網路
1. Minimal API
Minimal API 是構建 HTTP 服務的另一種方法。 在.NET 6 透過 web 模板建立的專案都會使用Minimal API 。這裡我得說明一點Minimal API 不會取代大家熟悉的MVC框架。 如果你的應用是希望構建API,建議使用web模板的方式去構建。 但如果你需要更多與http://ASP.NET頁面相關的東西建議還是使用MVC模板。dotnet new web -o webapidemo
看看預設Program.cs程式結構
你可以快速用四行程式碼,完成一個API功能。當然你可以基於你的需要去新增MVC模組,驗證模組等,這就看你專案的需要了。
2.熱更新
在之前釋出封版前,熱更新成為了熱門話題,微軟作為一個商業公司能夠針對社群的要求,為.NET 6 保留社群所需是非常讚的。這對於微軟和開源社群接觸也是一件好事。
我們先來認識下熱更新,最早期熱更新主要是面向移動應用,特別iOS應用更新的一種最常見的方式。不少開發者透過動態下發程式碼,它可以在不釋出新版本的情況下,修復 BUG 和釋出功能,讓開發者得以繞開蘋果的稽核機制,避免因長時間稽核等待以及多次被拒造成的成本。我記得.NET應用熱更新場景也是在Xamarin下,慢慢地大家就希望如果程式碼編寫能實現熱更新,就可以減少編譯的時間,即所見即所得。
在.NET 6 你可以透過Windows下的Visual Studio 2022 實現,也可以透過CLI方式實現。
透過命令列執行相關的HotReload 非常簡單,你只需要在對應專案中執行一下命令就可以為你的Web應用實現HotReload了dotnet watch run
當然你也可以透過一下命令停止HotReload的功能dotnet watch run --no-hot-reload
3. MAUI
關於MAUI,我對它的感情是非常深,從早期的monotouch到Xamarin,再到現在的MAUI。有人會覺得微軟放棄了Xamarin,但是我覺得完全併入到.NET 6正是微軟重視Xamarin的表現,我記得在7月Reactor的.NET Day上討論過MAUI的架構,你會發現它是.NET 6最重要的⼀環。
你直接可以透過命令列構建你的MAUI專案dotnet new maui -o mauidemo
從不少資料上你可以瞭解到MAUI對Xamarin的控制元件做了重新的封裝,實現更高效能。但我想和大家回顧下當時MAUI釋出就有一個令我喜歡的功能,那就是在Visual Studio Code上Debug MAUI,這得益於新的專案結構,但更重要是它終於讓MAUI的開發更加極客了。但現在 MAUI的正式版還沒有release,我在Github上找到一個類似的專案可以給大家先體驗一把(https://github.com/Clancey/vscode-comet)
4.關於 workload
隨著.NET應用場景的增加,不同的使用者需要的支援不盡相同,例如我專注於 MAUI的應用,這個時候我就需要iOS、macOS、Android的支援,但預設情況下是沒有做相關的SDK新增的。因為如果全部場景的功能都合併到SDK,就變成一個巨物了,從編譯到部署都是非常麻煩的。.NET團隊致力於維護SDK的小而精,針對不同場景在.NET 6中增加了workload去為不同場景做量身定製。
當我透過 dotnet new maui 的時候,在預設情況下是沒有 new maui 的template 的,而且也不會含有相關的一些SDK,這個時候系統會教你透過查詢的方式去確認是否有官方或者地方的template。
透過命令列執行一下操作dotnet workload install maui
可以把MAUI所需要的SDK安裝起來,並新增好基於dotnet new maui的模板,真的非常方便和人性化,這樣可以較少.NET SDK一些不必要的安裝,太棒了。
你可以透過執行以下語句檢視相關的workload有哪些dotnet workload search
現在的場景有針對MAUI和Blazor的場景希望日後會新增更多的場景,滿足更多的需要。
5.關於機器學習
我這幾年投入到機器學習的時間非常多,我也致力去為.NET開發人員部署帶來很多機器學習的知識.提到.NET 下的機器學習,我相信很多人都已經認識http://ML.NET了。但我一直在推薦的是開源http://TensorFlow.NET(https://github.com/SciSharp/TensorFlow.NET)
這個專案經過幾年發展現在已經為.NET在深度學習領域提供了很好的解決方案。這次透過.NET 6,微軟帶來了更多的一個場景TorchSharp。(https://github.com/dotnet/TorchSharp)
這是在dotnet開源下的一個專案,它參照的就是http://TensorFlow.NET的方式,透過繫結PyTorch底層C++ API實現了.NET原生的PyTorch框架。 我相信以後大家可以在http://ML.NET下在深度學習的場景可以像Keras一樣呼叫不同深度學習框架。
-
4 # 狂野大菠蘿
從生態角度講,.net在國外一直都很吃得開,只是國內過得不好罷了。
從技術角度講,.net從最開始就設計的比Java優秀,尤其是進入core時代後,跟容器的整合開發非常平滑。
-
5 # 玩味大帝
.net跟著微軟,基本不會淘汰,使用範圍廣,開發快,工具齊全,特斯拉講究效率成本。java/go遲早淘汰,毋庸置疑
回覆列表
Java執行效率差很多,Go還是孩子,沒有足夠的影響力和大範圍的使用。.Net Core 是開源的面向Windows、Linux和Mac的跨平臺框架,C#、C++/CLI等具有Java的一切優勢,同時具有Java沒有的執行效率。