What this book covers
Chapter 1, Getting Started with .NET 5.0, gives you a brief introduction to .NET Core while explaining the different tiers of the .NET infrastructure. Languages, runtimes, and extensions that can be used together with .NET will be discussed and analyzed.
Chapter 2, Defining Xamarin, Mono, and .NET Standard, explains the relationship between .NET Core and Xamarin. You will learn about how the Xamarin source code is executed with MonoTouch on iOS and the Mono runtime on Android.
Chapter 3, Developing with Universal Windows Platform, discusses the components that allow UWP apps to be portable within the Windows 10 ecosystem and how they are associated with .NET Core.
Chapter 4, Developing Mobile Applications with Xamarin, explains Xamarin and Xamarin.Forms development strategies, and we will create a Xamarin.Forms application that we will develop throughout the remainder of the book. We will also discuss the architectural models that might help us along the way.
Chapter 5, UI Development with Xamarin, takes a look at certain UI patterns that allow developers and user experience designers to come to a compromise between the user expectations and product demands in order to create a platform and product with a consistent user experience across platforms.
Chapter 6, Customizing Xamarin.Forms, goes through the steps and procedures of customizing Xamarin.Forms without compromising on the performance or user experience. Some of the features that will be analyzed include effects, behaviors, extensions, and custom renderers.
Chapter 7, Azure Services for Mobile Applications, discusses the fact that there are a number of services that are offered as services (SaaS), platform (PaaS), or infrastructure (IaaS), such as Notification Hubs, Cognitive Services, and Azure Functions, that can change the impressions of users regarding your application with little or no additional development hours. This chapter will give you a quick overview of using some of these services when developing .NET Core applications.
Chapter 8, Creating a Datastore with Cosmos DB, explains how Cosmos DB offers a multi-model and multi-API paradigm that allows applications to use multiple data models while storing application data with the most suitable API for the application, such as SQL, JavaScript, Gremlin, and MongoDB. In this chapter, we will create the datastore for our application and implement the data access modules.
Chapter 9, Creating Microservices Azure App Services, goes through the basics of Azure App Service, and we will create a simple, data-oriented backend for our application using ASP.NET Core with authentication provided by Azure Active Directory. Additional implementation will include offline sync and push notifications.
Chapter 10, Using .NET Core for Azure Serverless, shows how to incorporate Azure Functions into our infrastructure to process data on different triggers, and how to integrate Azure Functions with a logic app that will be used as a processing unit in our setup.
Chapter 11, Fluid Applications with Asynchronous Patterns, explains that when developing Xamarin applications and ASP.NET Core applications, both the task's framework and the reactive modules can help distribute the execution threads and create a smooth and uninterrupted execution flow. This chapter will go over some of the patterns associated with these modules and apply them to various sections of the application.
Chapter 12, Managing Application Data, explains that in order to avoid data conflicts and synchronization issues, developers must be diligent regarding the procedures implemented according to the type of data at hand. This chapter will discuss the possible data synchronization and offline storage scenarios using products such as SQLite and Entity Framework Core, as well as the out-of-the-box offline support provided by Azure App Service.
Chapter 13, Engaging Users with Notifications and the Graph API, briefly explains how notifications and the graph API can be used to improve user engagement by taking advantage of push notifications and the graph API. We will create a notification implementation for cross-platform applications using Azure Notification Hubs. We will also create so-called activity entries for our application sessions so that we can create a timeline that is accessible on multiple platforms.
Chapter 14, Azure DevOps and Visual Studio App Center, shows how to use Visual Studio Team Services and App Center to set up a complete, automated pipeline for Xamarin applications that will connect the source repository to the final store submission.
Chapter 15, Application Telemetry with Application Insights, explains how Application Insights is a great candidate for collecting telemetry from Xamarin applications that use an Azure-hosted web service infrastructure because of its intrinsic integration with Azure modules, as well as the continuous export functionality for App Center telemetry.
Chapter 16, Automated Testing, discusses how to create unit and coded UI tests, and the architectural patterns that revolve around them. Data-driven unit tests, mocks, and Xamarin UI tests are some of the concepts that will be discussed.
Chapter 17, Deploying Azure Modules, demonstrates how to configure the ARM template for the Azure web service implementation, as well as other services (such as Cosmos DB and Notification Hubs) that we used previously so that we can create deployments using the Visual Studio Team Services build and release pipeline. Introducing configuration values into the template and preparing it to create staging environments are our primary focuses in this chapter.
Chapter 18, CI/CD with Azure DevOps, explains how developers can create fully automated templates for builds, testing, and deployments using the toolset provided with Visual Studio Team Services. In this chapter, we will set up the build and release pipeline for Xamarin in line with the Azure deployment pipeline.