我有一个使用共享代码的Xamarin Forms应用程序。它有三个项目,共享的,iOS和Android。这些与我从Xamarin新项目菜单创建示例应用程序时创建的应用程序非常相似。
我希望由有经验的公司来更新和发布该应用程序,但是我不确定我是否了解一些建议给我的工作项目:
有人可以向我解释这些工作项可能意味着什么吗?
答案 0 :(得分:1)
.Net标准是一组API的规范。事情就是这样。有了它,您可以使用更高级别的.Net SDK API,并且大多数第三方Nuget软件包都将支持它。它们可以支持更广泛的平台。通过定位.Net标准。因此,您将可以访问大量的nuget程序包。参见https://docs.microsoft.com/en-us/dotnet/standard/net-standard
我将Forms Apps放入.Net Standard库,因为它更易于进行单元测试。有一个Xamarin Forms nuget包可用于测试,这意味着很多UI路径都可以在代码中进行验证,以前您必须在设备上进行此操作,也许需要使用自动化测试。 https://github.com/jonathanpeppers/Xamarin.Forms.Mocks
将现有的PCL项目升级到.net标准是一件很痛苦的事情。再有,我只是创建一个具有相同名称/根名称空间的新Xamarin Forms解决方案,并将应用程序作为.Net Standard,然后将文件复制过来。
答案 1 :(得分:1)
是的,它将在某些时候过时。 .NET Standard是PCL库的发展。
使用PCL库,您可以定位许多平台,只有所有目标平台支持的功能才可用。与平台的每种组合相关联的是配置文件。配置文件由两位或三位数字标识。 Xamarin值得注意的是111或259。有关PCL的更多信息,请点击此处:https://docs.microsoft.com/en-us/xamarin/cross-platform/app-fundamentals/pcl
.NET Standard是与其关联的API的规范。如果平台支持某个版本的.NET Standard,则可以保证所有API均可用。这样,您只需定位特定的.NET Standard版本,支持它的每个平台都将支持您的应用程序。 .NET标准规范吸引了很多人的注意,并且已经比PCL跨平台更多。 NuGet软件包的大多数创建者已经支持它,而且Xamarin / Microsoft在其模板中将PCL替换为.NET Standard库。在这里阅读有关.NET Standard作为概念的更多信息:https://docs.microsoft.com/en-us/dotnet/standard/net-standard
因此,如果有可能,开始迁移到.NET Standard库是明智的。就是说,如果您想继续支持您的应用程序并需要新的库。如果您的应用程序运行良好,则可以暂时使用PCL。转换基本上是:将csproj结构更改为新结构。将库重新定位为netstandard并重新安装所有已安装的库,这一次下载.NET Standard兼容版本。最后一步可能会有些痛苦。
亚当·佩德利(Adam Pedley)可能提供了一个很好的转换资源:https://xamarinhelp.com/upgrade-pcl-net-standard-class-library/