Friday, December 29, 2017

Development platforms and technologies for C# cross-platform mobile (iOS, Android, Windows)

PCL (Portable Class Library)
 Take advantage of your .NET/C# skills, and share code across platforms.
 Share key artifacts for C# cross-platform across Windows, iOS, and Android.
 Appropriate when developing with traditional Xamarin, Xamarin.Forms, Windows 10 UWP, and .NET.
 You can share most of the C# logic across platforms, like Model-View-ViewModel (MVVM), and even the views/XAML, if using Xamarin.Forms.

Xamarin
 Take advantage of your .NET/C# skills while building native apps.
 Traditional Xamarin
o You can create apps for iOS, Android, and Mac, with specially tailored UI per platform (it is possible to have a different UI/views per platform), while sharing the same C# logic.
o Should be used in conjunction to PCL to share approximately 80 percent of the code (C# logic) between Xamarin and UWP/.NET apps.
o Appropriate when building mobile apps with the best possible UI and performance, like B2C apps.

Xamarin.Forms
 Xamarin.Forms
o You can share most of the implementation (approximately 95 percent, including C# and XAML views) in a PCL, when creating apps for iOS, Android, and Windows 10 UWP.
o Appropriate when building apps for iOS, Android, and Windows, which will have the same UI/views with almost no differences in layout across platforms.
o Can be used in a mixed approach (Xamarin + Xamarin.Forms) so you can get the best of both worlds—using Xamarin.Forms for simpler views and traditional Xamarin with native views and UWP views, depending on the platform.

UWP with .NET
 Take advantage of your .NET/C# skills.
 With Universal Windows Platform (UWP), you can create the same app running on Windows 10 (desktop/tablet) and Windows 10 Mobile.
 Should be used in conjunction with PCL, to share approximately 80 percent of the code (C# logic) between Xamarin and UWP/.NET apps.
 Appropriate when building mobile apps with the best possible UI and performance, like B2C apps.

Source Of Information : Microsoft Platform and Tools for Mobile App Development

No comments: