Tuesday, January 2, 2018

Azure App Service / Azure Stack App Service–related technologies

The Azure App Service technologies can be used from the Azure public cloud (in Azure App Service) and from the on-premises implementation of Azure, called Azure Stack (in PREVIEW, as of H1 2016).

Azure Web Apps
 A web or service deployed into Azure App Service. You can deploy ASP.NET MVC apps, plain HTML web apps, Node.js, Java, PHP, Python web/services, and more.
 Appropriate when you just need to deploy a web/service into the cloud.
 You can easily manage your web app configuration from Azure portal and to deploy directly from Visual Studio when you are developing.

Azure Mobile Apps
 An Azure App Service Mobile App is internally similar to an Azure Web App, but it is specially made to be consumed by mobile apps.
 You can deploy services (based on ASP.NET Web API or Node.js) but Azure Mobile Apps provide additional capabilities, like offline scenario (sync local device database with database in the cloud), simplified push notification implementation based on Azure Push Notification hub, and an easy implementation of Internet authentication (Facebook, Google, Twitter, Microsoft) or enterprise Azure Active Directory authentication.
 Appropriate when the services you want to deploy will be consumed by any mobile app (including native, cross-platform, or hybrid).

Azure API Apps
 The API Apps support within Azure App Service enables you to easily create, consume, and call APIs. Azure API Apps provide metadata describing your services (based on Swagger) so other apps can easily discover what your services are offering.
 You can easily expose and integrate APIs across a wide variety of languages.
 Discoverability and integration features integrate API Apps with Logic Apps.
 Appropriate when consuming services (API Apps) from apps like Logic Apps or PowerApps.

Azure Logic Apps
 Logic Apps enable you to automate workflows and business processes.
 You can configure workflows that integrate and transform data between LoB systems (like Microsoft Dynamics or Oracle) with SaaS systems (like Office 365, Salesforce, or Twitter) or your custom applications/services.
 Take advantage of already available SaaS/LoB connectors or custom API Apps so you can easily build integration systems.

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

Monday, January 1, 2018

Rapid Mobile App Development (RMAD) with Microsoft PowerApps

PowerApps-related technologies

PowerApps
 PowerApps is an enterprise service for LoB and IT analysts and developers to connect, create, and share business apps across an organization on any device in minutes.
 The PowerApps tool allows you to create mobile apps that can run on iOS, Android, and Windows.

Swagger
 To consume HTTP services from PowerApps (like services in Azure App Service), those services need to expose Swagger metadata so that PowerApps can discover what can be consumed.
 Swagger is a very popular RESTful API description metadata so services can be discoverable from the outside. It is basically what Azure API Apps, Azure Logic Apps, and PowerApps use to understand how to use services/APIs and to connect to them.
 Azure API Apps already provide Swagger metadata by default, but if you want to consume Azure Mobile App services (or any other HTTP service, like a regular ASP.NET Web API service) from PowerApps, you need to add functionality so they provide Swagger metadata.

Swashbuckle
 Swashbuckle is a convenient way to rapidly and automatically generate Swagger metadata from a Web API .NET project, like any ASP.NET Web API service or an Azure Mobile App service.
 Swashbuckle is basically a NuGet component that you can add to your Web API service so that it automatically generates the Swagger metadata related to your methods (no need to manually generate it).

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

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

Saturday, December 30, 2017

Development tools for Xamarin (iOS, Android, Windows)

Microsoft Visual Studio with Xamarin Extension
 Appropriate when you want to take advantage of a full IDE, like Visual Studio.
 You can visually design views with the iOS and Android, edit code with IntelliSense, and debug C# code in apps running in emulators or real devices.
 Take advantage of advanced Visual Studio features and your C# skills.

Xamarin Studio
 Appropriate when you want to use an IDE that works cross-platform on Mac OS X and Windows.
 You can visually design views with the iOS and Android, edit code with IntelliSense, and debug C# code in apps running in emulators or real devices.
 Take advantage of your C# skills.

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

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

Thursday, December 28, 2017

Hybrid and cross-platform: Visual Studio Tools for Apache Cordova

Development platforms and technologies for hybrid/Cordova mobile apps (iOS, Android, Windows)

Apache Cordova
 Use your HTML/JavaScript skills.
 Appropriate when building mobile apps, like B2E or B2B apps.
 You can create mobile apps that are fully installed in the device so that you can also have offline scenarios.

Cordova plug-ins
 It is part of the Apache Cordova platform.
 A plug-in is a bit of add-on code that provides a JavaScript interface to native components.
 Using plug-ins, your app can use native device capabilities beyond what is available to pure web apps.


Microsoft development tools for hybrid/Cordova
Visual Studio Tools for Apache Cordova
 Appropriate when you want to take advantage of a full IDE like Visual Studio.
 You can edit code with IntelliSense and debug JavaScript/TypeScript.in apps running in emulators or real devices, configure Cordova projects and plugins easily in project settings.
 Take advantage of your Visual Studio skills and insights.

Visual Studio Code + Cordova Tools Extension + Cordova CLI (Command Line Interface)
 Appropriate when you want to use a light editor like Visual Studio Code, which is also cross-platform (Visual Studio Code runs on Windows, Mac, and Linux).
 You can debug your code, find commands in the Command Palette, and use IntelliSense.


Languages for hybrid mobile apps (iOS, Android, Windows)
JavaScript
 Appropriate when building typical Cordova apps which are not very complex in the JavaScript layer.
 Take advantage of your web development and JavaScript skills.

TypeScript
 TypeScript is a programming language created by Microsoft that is a superset of JavaScript. You can develop a Cordova app with TypeScript that will compile into simple JavaScript to be deployed as part of your app.
 Appropriate when building complex business applications with a heavy volume of client code.
 With TypeScript, you can have a better structured code, thanks to certain object orientation, based on classes, modules, and interfaces.


Main web frameworks for Apache Cordova
AngularJS
 AngularJS is a very popular JavaScript framework created by Google. It is a library written in JavaScript (although Angular 2 is written in TypeScript).
 You can have dynamic views in your app. AngularJS lets you extend HTML vocabulary for your application.
 Appropriate when creating Cordova apps, either with JavaScript or TypeScript.
 Take advantage of a resulting environment that is expressive, readable, and quick to develop.

Ionic
 Ionic is a front-end SDK for developing hybrid mobile apps. It offers a library of mobile-optimized HTML, CSS, and JavaScript CSS components, gestures, and tools for building highly interactive apps.
 Built with Sass and optimized for AngularJS.
 Most popular choice when developing Cordova apps with AngularJS and/or jQuery.
 You can take advantage of your web development skills.

Onsen UI
 Onsen UI framework is designed and implemented to deliver a positive user experience for your hybrid apps.
 Appropriate when developing Cordova apps with AngularJS and/or jQuery.

Backbone
 Backbone.js gives structure to web applications by providing models with key-value binding and custom events, collections with a rich API of enumerable functions, and views with declarative event handling.
 Appropriate when creating rich client-side applications.
 You can create a structured code, decoupling views from models.

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