[英]C#: Is 64bit operating system cross platform (windows, unix, mac) Net 2.0
[英]Cross platform class library for Mac and Windows using C#
我要创建一个应用程序,它应该在 Mac 上运行,也应该在 Windows 上运行,并且应该部署到相应的商店。 GUI 将是在 WebView 控件中本地托管的基于 HTML 的 GUI。 GUI 将主要使用简单的 Json 消息与系统的其余部分进行通信。
两个平台的主要逻辑是相同的,我想分享尽可能多的代码。 这个想法是在 Mac 上使用 Xamarin,在 Windows 上使用 .NET 并构建一个可以共享的公共类库。
这个共享程序集的目标应该是什么(PCL、netstandard 或者有不同的 Mac 和 Windows 项目文件并且只共享源文件?)
我会在所有新项目中使用 .NET 标准,因为它会长期取代 PCL。 见段落As a library author, what should I do now?
在https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introducing-net-standard/
作为库作者,您应该考虑切换到 .NET Standard,因为它将取代面向多个 .NET 平台的可移植类库。
对于 .NET Standard 1.x,可用 API 集与 PCL 非常相似。 但是 .NET Standard 2.x 将拥有更大的 API 集,并且还允许您依赖面向 .NET Framework 的库。
PCL 和 .NET Standard 之间的主要区别是:
- 平台对接。
- 平台可用性。
- 图书馆的可用性。
仅当我必须拥有特定于平台的小块时,我才会使用共享库(代码文件共享)。 但通常您应该只创建一个接口并在实现该接口的类中实现平台细节。 然后使用依赖注入来获取跨平台库中的实际实现。
我建议你使用PCL 。 我有适用于 Windows 10(Net Core)、Android 和 iOS(Xamarin Forms)的应用程序。 这些应用程序使用 PCL 库。 这是最好的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.