[英].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.