VS 2015中的类库 – 构建跨平台库

我可以在安装了Xamarin的VS 2015中创建不同的类库:

  1. class级图书馆
  2. 类库(Android)
  3. class级图书馆(包)
  4. 类库(适用于通用应用程序)
  5. 类库(便携式)
  6. 类库(Xamarin.Forms)

我很想知道每个之间的区别 – 只是一个简短的会做:)

情景

我们的团队目前正在开发一个新项目,我们主要针对多个平台 – 网络和移动(Xamarin)。 虽然我们决定首先关注MVC Web应用程序,但我们希望创建一个包含所有模型和业务类(逻辑)的项目,以便以后可以在我们的项目中使用它。 哪个类库最合适?

这个问题有很大的范围,我会尽力回答:

class级图书馆

输出DLL的标准.NET类库。 此项目类型只能在桌面平台(Mac,Windows)上使用。 Android和IOS项目无法引用这些项目类型。

类库(Android)

与特定Android库类似的Android特定类库 。 此项目旨在共享特定于Android的资源,例如活动,片段,视图,绘图,字符串等。此项目只能由Android App项目或其他Android库项目引用。

我们通常将我们的主要Android应用程序放入一个库,然后只完成一个启动画面链接库项目的Android应用程序。 这样我们就可以将每个屏幕隔离成一个单独的“Testbed”应用程序来独立测试每个屏幕,而无需通过整个应用程序来测试它们。

class级图书馆(包)

这种类型不在我的VS安装中,所以我不能评论它是什么。

类库(适用于通用应用程序)

面向.NET 4.5的可移植类库,包括对Windows 8,Xamarin.Android,Xamarin.iOS和Xamarin.iOS(经典)的支持。 这是TargetFrameworkProfile Profile7

类库(便携式)

面向.NET 4.5的可移植类库,支持Windows 8,Windows Phone 8.1,Windows Phone Silverlight 8,Xamarin.Android,Xamarin.iOS和Xamarin.iOS(经典)。 这是TargetFrameworkProfile Profile259

类库(Xamarin.Forms)

面向.NET 4.5的可移植类库,支持Windows 8,Windows Phone 8.1,Windows Phone Silverlight 8,Xamarin.Android,Xamarin.iOS(经典),Xamarin.iOS Unified和Xamarin.Mac Unified。 这是TargetFrameworkProfile Profile78

请注意, Portable for Universal AppsXamarin.FormsPortable是相同的项目类型(PCL库),除了Xamarin.Forms包括对最大数量的平台的支持。


在项目结构方面,我们为每个平台(Android,iOs,Windows)提供了一个项目,它引用了PCL(定义了我们的接口和数据库实体)和一个实现大多数应用程序逻辑的共享项目。

我建议阅读以下链接并使用Tasky源代码作为您的应用程序的基础:

  • 构建跨平台应用程序
  • 共享项目