簡體   English   中英

.NET 框架? 還是 .NET 核心? 還是 .NET 標准? 或者以上都沒有?

[英].NET Framework? Or .NET Core? Or .NET Standard? Or none of the above?

我有一些使用 .NET Framework 4.7.2 用 .NET 編寫的私有庫和程序,其中大部分是 WinForms,但有一些已經用 WPF 編寫。

我有一些所有程序都使用的基礎庫,然后我通常每個程序有一個庫,使用基礎庫並為該程序提供業務邏輯,最后我擁有使用基礎庫和一個用於該程序構建 UI 的業務邏輯庫。

現在我想移植其中一兩個程序以在 Android 上運行,並且我想為此使用 Xamarin。

谷歌搜索后,我明白我不能再使用 .NET Framework 作為它的基礎,因為 .NET Framework 僅適用於 Windows。 但是我沒有得到其他可以使用的東西?


.NET Core 似乎是一個候選,但如果我理解正確的話,.NET Core 只會在不同平台上重用相同的源代碼,而不是編譯文件本身。 微軟在談論跨平台功能時總是只提到 Windows、Linux 和 OS X。 安卓呢? 在這種情況下,“Linux”是否涵蓋了這一點?

比方說,我必須移植我的三個基本庫、業務邏輯庫和程序。

我現在在 Android 和 Windows 桌面上運行程序,使用相同的基本庫和業務邏輯庫源代碼。

我所有的其他程序(未移植)也使用這三個移植的基礎庫。

現在我想更改我移植的基礎庫之一中的代碼。 我現在必須使用更改后的基礎庫重新編譯任何程序,我不能只更改文件並完成?


.NET Standard 似乎是另一種選擇。 據我所知,我可以使用 .NET Standard 創建一個基礎庫並從 .NET Core 或 .NET Framework 引用該文件,對嗎? 但是我也可以從 Android 引用這個庫嗎(使用 Xamarin)?


把一個長問題說短......我必須做什么,創建一個基本庫文件(例如一個用於訪問 SQLite 數據庫的文件),並能夠在 Xamarin(適用於 Android)和 Windows 中引用這個基本庫文件從使用 .NET Framework 的其他組件。

這甚至可能嗎?

有幾種不同的 .NET 實現,它們各自用於不同的目的。 .NET 框架是最初的實現,只能在 Windows 上運行。 然后,Xamarin Inc. 創建了Mono 它被構建為 .NET 框架的開源版本。 Xamarin 適用於 Android 和 iOS,使用 Mono 作為 .NET 運行時,因為它具有最小的尺寸和最輕的占用空間。

接下來,開源運動來了,微軟創建了 .NET core,它作為一個類似於 Mono 的開源跨平台實現。 順便說一下,.NET 核心二進制文件可以在任何 .NET 核心運行時跨平台運行。 沒有實現整個框架,Microsoft 創建了 .NET Standard。 它不是一個實現,它是任何 .NET 實現必須具有的二進制格式和 API 的規范。 (注意:我不完全確定它們實際創建和標准化的順序)。

幾乎所有 .NET 庫都應該按照 .NET Standard 進行編程,因此您可以在這三種實現中的任何一種上使用它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM