Sunday, December 31, 2017

Main frameworks and SDKs for C#/Xamarin/.NET

MVVM built-in in Xamarin.Forms
 Appropriate when using Xamarin.Forms and you want to implement a clean and simplified MVVM architecture for your client apps targeting iOS, Android, and Windows UWP.
 You can use an MVVM framework that comes out-of-the-box with Xamarin.Forms.

MvvmCross
 Appropriate when using traditional Xamarin and .NET for Windows UWP and you want to implement a MVVM architecture for your client apps targeting iOS, Android, and Windows UWP.
 MvvmCross is a popular and open source MVVM framework that has been crossplatform since its creation and has been tested in many cross-platform apps.

MVVM light toolkit
 Appropriate when using traditional Xamarin and .NET for Windows UWP and you want to implement a MVVM architecture for your client apps targeting iOS, Android, and Windows UWP.
 MVVM light toolkit is a popular and open source MVVM framework that was widely used for WPF, Silverlight, Windows Store, and for Windows Phone. It added support for Xamarin.Android and Xamarin.iOS as a cross-platform framework in v5 in 2014.

Prism for Xamarin.Forms
 Appropriate when using Xamarin.Forms and you want to implement
 composite apps with MVVM architecture for your client apps targeting iOS, Android, and Windows UWP.
 Prism is not just an open source MVVM framework—it also offers additional capabilities, like dependency injection, commands, EventAggregator, and other capabilities.
 Prism was originally created by the Microsoft Patterns & Practices team, was open sourced in 2015, and has been driven by an independent team ever since.

Azure Mobile Apps .NET Client SDK
 Appropriate when consuming Azure Mobile App services from Xamarin or .NET apps.
 It allows you to add a scalable back end to your connected client applications and to have structured storage, authentication, push notifications, and offline scenarios (automatic data-sync between local SQLite in the device and Azure SQL Database in the cloud) to your Xamarin- or .NET-based mobile apps using Microsoft Azure Mobile Apps.

Akavache Cache and local store
 Appropriate when implementing client cache/store for native apps, like Xamarin apps (iOS and Android) and .NET apps (Windows and UWP apps).
 Akavache is an asynchronous, persistent (that is, writes to disk) key-value store created for writing apps in C#, based on SQLite.
 Akavache is great for both storing important data (like user settings), as well as cached local data that expires.

SQLite.NET
 Appropriate when storing relational SQL data locally in the mobile device into a SQLite database.
 SQLite.NET is an open source, minimal library to allow .NET and Xamarin apps to store data in SQLite databases.
 It is a thin, fast, and efficient library, not a full SQLite driver. If you need that, use Mono.Data.SQLite or csharp-sqlite.

SQLCipher
 Appropriate for Xamarin and .NET apps when you need to secure/encrypt SQLite database in the device.
 It allows for transparent and secure 256-bit AES encryption of SQLite database files.
 SQLCipher has a small footprint and great performance. As such, it's ideal for protecting embedded application databases and is well-suited for mobile development.

FileDb NoSQL .NET database
 Appropriate when storing NoSQL data locally in the mobile device into local files.
 FileDb is a simple database solution for .NET and Xamarin apps.
 FileDb is a NoSQL database meant for use as a local data store for applications.
 Take advantage of LINQ to join tables, and get all the relational and grouping power that LINQ offers.

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

No comments: