Learn your way! Get started

Xamarin Cross Platform, Part 1 of 2: PCL and Razor

with expert Wallace McClure


Watch trailer


Course at a glance

Included in these subscriptions:

  • Dev & IT Pro Video
  • Dev & IT Pro Power Pack

Release date 4/28/2014
Level Intermediate
Runtime 1h 38m
Closed captioning Included
Transcript Included
eBooks / courseware Included
Hands-on labs N/A
Sample code Included
Exams Included


Enterprise Solutions

Need reporting, custom learning tracks, or SCORM? Learn More



Course description

In this course we’ll cover cross platform mobile development using Xamarin. First we’ll cover Portable class libraries (PCLs). PCLs are tools provide .NET developers a way to share code between platforms with one library. PCLs help developers reduce the time and costs of development and testing code. With a PCL project, one library can be used by multiple platforms. Then we’ll move onto Mobile web apps. Mobile web apps are a very popular mechanism to target mobile devices. Unfortunately, there are times that a mobile web app cannot access device specific features. Xamarin provides a mechanism to host an ASP.NET MVC Razor Web Template/Page within a native application. This provides the cross platform capabilities of the web while still allowing applications to access native features of device.

Prerequisites

This course assumes that students have some programming background and experience using Visual Studio 2013. In addition, the course assumes knowledge of Visual C#, Xamarin.iOS, and Xamarin.Android in the Windows and MAC environment. An understanding of XML is also required. It would be helpful to have viewed these other LearnNowOnline courses; Xamarin Tool with Various Mobile Platforms, Xamarin Mobile and Web Services, and Xamarin Cross Platform and File Linking, before viewing this course.

Learning Paths

This course is part of the following LearnNowOnline SuccessPaths™:
Mobile Development Using Xamarin

Meet the expert

Wallace McClure specializes in building applications that have large numbers of users and large amounts of data as well as user interface specific technologies such as AJAX, iPhone, and Android. He is a Microsoft MVP, ASPInsider, and a partner in Scalable Development, Inc. Wally has authored books on iPhone Programming with Mono/MonoTouch, Android Programming with Mono for Android, application architecture, ADO.NET and SQL Server, and finally AJAX.

Course outline



Portable Class Libraries

Compilation (42:37)
  • Introduction (00:18)
  • .Net Compilation (01:33)
  • iOS Compilation (02:32)
  • Android Compilation (03:10)
  • API Support - Two Platforms (02:09)
  • API Support - Three Platforms (01:04)
  • Solution (02:04)
  • Benefits (01:40)
  • Disadvantages (01:09)
  • Platforms Supported (01:59)
  • Feature Support (00:38)
  • Nuget (02:08)
  • Supported Platforms (00:47)
  • IDE Support (01:39)
  • Demo: Create PCLs - Create (03:58)
  • Demo: Create PCLs - Nuget (04:04)
  • Demo: Creating PCLs - Detail (04:27)
  • Demo: Create PCLs - Android (06:42)
  • Summary (00:27)
VB and Info (13:50)
  • Introduction (00:25)
  • Visual Basic Support (01:20)
  • Demo: VB PCL Project (04:40)
  • Compared to File Linking (02:12)
  • Issues (02:32)
  • Licensing (01:06)
  • Urls of Interest (00:33)
  • Previous Courses (00:30)
  • Summary (00:26)

Razor Templating

Web in the UI (14:44)
  • Introduction (00:26)
  • Agenda (01:06)
  • Mobile Web (02:30)
  • Problem (01:45)
  • Solution (01:02)
  • Initial Setup (02:20)
  • Demo: Mobile Web - iOS (02:21)
  • Demo: Mobile Web - Android (02:48)
  • Summary (00:23)
Razor Templating (27:08)
  • Introduction (00:24)
  • ASP.NET Razor Template (01:03)
  • Initial Concept (01:17)
  • General Concept (00:50)
  • Pass Data In (00:38)
  • Add Files - iPhone (01:11)
  • Add Files - Android (00:51)
  • Pull Data Out (01:40)
  • Android - Call C# from JS (01:20)
  • Demo: Razor Template – iOS (04:48)
  • Demo: Data Pullback (04:24)
  • Demo: Loading Local Content (01:18)
  • Demo: Razor Template – Android (03:21)
  • Demo: Load Data (03:26)
  • Summary (00:28)