SlideShare a Scribd company logo
Xamarin.Forms or
Write Once, Run
Anywhere
• Microsoft & Xamarin MVP
• @Tinytoot | www.tomwalker.codes
• Tom Walker
Meet Tom Walker | @Tinytoot
• Founder @LdnOntNetDevs | LondonNetDevelopers.ca
• Windows Platform Development MVP
• Xamarin MVP
• Developer for 15+ years now focusing on mobile and web frontend
– Worked with large enterprises, startups and software companies
– Design & build internal enterprise and consumer facing software
• Define the Problem
• What is Xamarin.Forms
• Explaining the parts
• Demo – BBQ Receipes
• Why I use Xamarin.Forms
Silo Approach
Define the Problem
Xamarin’s Unique Approach
• Native User Interface
• Native Performance
• Shared code across
platforms
• C# & .NET Framework
• Full API Coverage
With Xamarin.Forms:
more code-sharing, native controls
Shared UI Code
Explaining the parts
Content MasterDetail Navigation Tabbed Carousel
Pages
Stack Absolute Relative Grid ContentView ScrollView Frame
Layouts
ActivityIndicator BoxView Button DatePicker Editor
Entry Image Label ListView Map
OpenGLView Picker ProgressBar SearchBar Slider
Stepper TableView TimePicker WebView EntryCell
ImageCell SwitchCell TextCell ViewCell
Controls
Xamarin’s Xaml
The equivalent Xamarin XAML is:Consider this simple Microsoft
XAML example:
Databinding Basics
Platform Specific XAML
Global Styles
<Application xmlns=http://xamarin.com/schemas/2014/forms
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="WorkingWithAppResources.App">
<Application.Resources>
<ResourceDictionary>
<Style x:Key="labelStyle" TargetType="Label">
<Setter Property="TextColor" Value="Green" />
</Style>
</ResourceDictionary>
</Application.Resources>
</Application>
App.xaml
Let’s talk about Style
• Global Styles
• Built in Styles
• Behaviors
• Triggers
Built in Styles
There are built-in styles available in the Device.Styles class:
• BodyStyle
• CaptionStyle
• ListItemDetailTextStyle
• ListItemTextStyle
• SubtitleStyle
• TitleStyle
Built in Styles in C#
var mylabel = new Label {
Text = "This uses TitleStyle",
Style = Device.Styles.TitleStyle };
Built in Styles in XAML
<Label Text="This uses TitleStyle in XAML"
Style="{DynamicResource TitleStyle}"/>
<Label Text="This uses SubtitleStyle in XAML"
Style="{DynamicResource SubtitleStyle}"/>
Behaviors
<Entry Placeholder="Sample">
<Entry.Behaviors>
<local:SampleBehavior />
</Entry.Behaviors>
</Entry>
1. XAML 2. inherit from Behavior<T>
and override two methods
OnAttachedTo(Tview)
OnDetachingFrom(T view).
3. Write class behavior
public class SampleBehavior : Behavior
{
...
}
Triggers
<Entry Placeholder="enter name">
<Entry.Triggers>
<Trigger TargetType="Entry" Property="IsFocused" Value="True">
<Setter Property="BackgroundColor" Value="Yellow" />
</Trigger>
</Entry.Triggers>
</Entry>
Dependency Services
1. Interface 2. Implementation on platform
3. Calling in shared code
public interface ITextToSpeech
{
void Speak (string text);
}
[assembly: Xamarin.Forms.Dependency (typeof
(TextToSpeech_iOS))]
public class TextToSpeech_iOS : ITextToSpeech
{
public TextToSpeech_iOS () {}
public void Speak (string text)
{
speak.Clicked += (sender, e) => {
DependencyService.Get<ITextToSpeech>().Speak("Hello from Xamarin Forms");
};
Demo – BBQ time!
• C#
• XAML
• Rapid Prototyping
• Speed to Market
Why I use Xamarin.Forms
• Define the Problem
• What is Xamarin.Forms
• Explaining the parts
• Demo – BBQ Receipes
• Why I use Xamarin.Forms
Recap
Thanks you
Questions?
• Microsoft & Xamarin MVP
• @Tinytoot | www.tomwalker.codes
• Tom Walker

More Related Content

What's hot

Introduction to PowerShell for Office 365 Global Tenant Admins
Introduction to PowerShell for Office 365 Global Tenant AdminsIntroduction to PowerShell for Office 365 Global Tenant Admins
Introduction to PowerShell for Office 365 Global Tenant Admins
Michael Blumenthal (Microsoft MVP)
 
Namespace less engine
Namespace less engineNamespace less engine
Namespace less engine
shaokun
 
ASP.NET - Ivan Marković
ASP.NET - Ivan MarkovićASP.NET - Ivan Marković
ASP.NET - Ivan Marković
Software StartUp Academy Osijek
 
Test automation with Cucumber-JVM
Test automation with Cucumber-JVMTest automation with Cucumber-JVM
Test automation with Cucumber-JVM
Alan Parkinson
 
Jumpstarting Testing In Your Organization with Selenium, Cucumber, & WebdriverIO
Jumpstarting Testing In Your Organization with Selenium, Cucumber, & WebdriverIOJumpstarting Testing In Your Organization with Selenium, Cucumber, & WebdriverIO
Jumpstarting Testing In Your Organization with Selenium, Cucumber, & WebdriverIO
Josh Cypher
 
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
Gáspár Nagy
 
Invoke component
Invoke componentInvoke component
Invoke component
Srilatha Kante
 
Creating A User‑Defined Function In Excel Using Vba
Creating A User‑Defined Function In Excel Using VbaCreating A User‑Defined Function In Excel Using Vba
Creating A User‑Defined Function In Excel Using Vba
Chester Tugwell
 
Cucumber, Cuke4Duke, and Groovy
Cucumber, Cuke4Duke, and GroovyCucumber, Cuke4Duke, and Groovy
Cucumber, Cuke4Duke, and Groovy
Christopher Bartling
 
Java component
Java componentJava component
Java component
Srilatha Kante
 
Creational builder design_pattern
Creational builder design_patternCreational builder design_pattern
Creational builder design_pattern
bhaskara k
 
Laravel - The PHP Framework for Web Artisans
Laravel - The PHP Framework for Web ArtisansLaravel - The PHP Framework for Web Artisans
Laravel - The PHP Framework for Web Artisans
Windzoon Technologies
 
Ruby onrails cucumber-rspec-capybara
Ruby onrails cucumber-rspec-capybaraRuby onrails cucumber-rspec-capybara
Ruby onrails cucumber-rspec-capybaraBindesh Vijayan
 
Oracle Forms Creation-List of Values (LOV)
Oracle Forms Creation-List of Values (LOV)Oracle Forms Creation-List of Values (LOV)
Oracle Forms Creation-List of Values (LOV)
Sekhar Byna
 
Aem best practices
Aem best practicesAem best practices
Aem best practices
Jitendra Tomar
 
Outside-in Development with Cucumber and Rspec
Outside-in Development with Cucumber and RspecOutside-in Development with Cucumber and Rspec
Outside-in Development with Cucumber and Rspec
Joseph Wilk
 

What's hot (16)

Introduction to PowerShell for Office 365 Global Tenant Admins
Introduction to PowerShell for Office 365 Global Tenant AdminsIntroduction to PowerShell for Office 365 Global Tenant Admins
Introduction to PowerShell for Office 365 Global Tenant Admins
 
Namespace less engine
Namespace less engineNamespace less engine
Namespace less engine
 
ASP.NET - Ivan Marković
ASP.NET - Ivan MarkovićASP.NET - Ivan Marković
ASP.NET - Ivan Marković
 
Test automation with Cucumber-JVM
Test automation with Cucumber-JVMTest automation with Cucumber-JVM
Test automation with Cucumber-JVM
 
Jumpstarting Testing In Your Organization with Selenium, Cucumber, & WebdriverIO
Jumpstarting Testing In Your Organization with Selenium, Cucumber, & WebdriverIOJumpstarting Testing In Your Organization with Selenium, Cucumber, & WebdriverIO
Jumpstarting Testing In Your Organization with Selenium, Cucumber, & WebdriverIO
 
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
Behavior Driven Web UI Automation with Selenium and Cucumber/SpecFlow (BDDx L...
 
Invoke component
Invoke componentInvoke component
Invoke component
 
Creating A User‑Defined Function In Excel Using Vba
Creating A User‑Defined Function In Excel Using VbaCreating A User‑Defined Function In Excel Using Vba
Creating A User‑Defined Function In Excel Using Vba
 
Cucumber, Cuke4Duke, and Groovy
Cucumber, Cuke4Duke, and GroovyCucumber, Cuke4Duke, and Groovy
Cucumber, Cuke4Duke, and Groovy
 
Java component
Java componentJava component
Java component
 
Creational builder design_pattern
Creational builder design_patternCreational builder design_pattern
Creational builder design_pattern
 
Laravel - The PHP Framework for Web Artisans
Laravel - The PHP Framework for Web ArtisansLaravel - The PHP Framework for Web Artisans
Laravel - The PHP Framework for Web Artisans
 
Ruby onrails cucumber-rspec-capybara
Ruby onrails cucumber-rspec-capybaraRuby onrails cucumber-rspec-capybara
Ruby onrails cucumber-rspec-capybara
 
Oracle Forms Creation-List of Values (LOV)
Oracle Forms Creation-List of Values (LOV)Oracle Forms Creation-List of Values (LOV)
Oracle Forms Creation-List of Values (LOV)
 
Aem best practices
Aem best practicesAem best practices
Aem best practices
 
Outside-in Development with Cucumber and Rspec
Outside-in Development with Cucumber and RspecOutside-in Development with Cucumber and Rspec
Outside-in Development with Cucumber and Rspec
 

Similar to Xamarin.Forms or Write Once, Run Anywhere

Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....
Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....
Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....
Javier Suárez Ruiz
 
Attributes, reflection, and dynamic programming
Attributes, reflection, and dynamic programmingAttributes, reflection, and dynamic programming
Attributes, reflection, and dynamic programming
LearnNowOnline
 
Building strong foundations apex enterprise patterns
Building strong foundations apex enterprise patternsBuilding strong foundations apex enterprise patterns
Building strong foundations apex enterprise patterns
andyinthecloud
 
JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...
JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...
JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...
Speedment, Inc.
 
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
Malin Weiss
 
walkmod - JUG talk
walkmod - JUG talkwalkmod - JUG talk
walkmod - JUG talk
walkmod
 
GDG Addis - An Introduction to Django and App Engine
GDG Addis - An Introduction to Django and App EngineGDG Addis - An Introduction to Django and App Engine
GDG Addis - An Introduction to Django and App EngineYared Ayalew
 
ASP.NET MVC 3
ASP.NET MVC 3ASP.NET MVC 3
ASP.NET MVC 3
Buu Nguyen
 
JavaScript - Chapter 12 - Document Object Model
  JavaScript - Chapter 12 - Document Object Model  JavaScript - Chapter 12 - Document Object Model
JavaScript - Chapter 12 - Document Object Model
WebStackAcademy
 
td_mxc_rubyrails_shin
td_mxc_rubyrails_shintd_mxc_rubyrails_shin
td_mxc_rubyrails_shintutorialsruby
 
td_mxc_rubyrails_shin
td_mxc_rubyrails_shintd_mxc_rubyrails_shin
td_mxc_rubyrails_shintutorialsruby
 
How to generate customized java 8 code from your database
How to generate customized java 8 code from your databaseHow to generate customized java 8 code from your database
How to generate customized java 8 code from your database
Speedment, Inc.
 
Silicon Valley JUG - How to generate customized java 8 code from your database
Silicon Valley JUG - How to generate customized java 8 code from your databaseSilicon Valley JUG - How to generate customized java 8 code from your database
Silicon Valley JUG - How to generate customized java 8 code from your database
Speedment, Inc.
 
extending-and-optimizing-xamarin-forms-apps
extending-and-optimizing-xamarin-forms-appsextending-and-optimizing-xamarin-forms-apps
extending-and-optimizing-xamarin-forms-apps
Matthew Soucoup
 
Getting started with titanium
Getting started with titaniumGetting started with titanium
Getting started with titanium
Naga Harish M
 
Intro to .NET for Government Developers
Intro to .NET for Government DevelopersIntro to .NET for Government Developers
Intro to .NET for Government Developers
Frank La Vigne
 
Xamarin 9/10 San Diego Meetup
Xamarin 9/10 San Diego MeetupXamarin 9/10 San Diego Meetup
Xamarin 9/10 San Diego Meetup
Seamgen
 
Developing Lightning Components for Communities.pptx
Developing Lightning Components for Communities.pptxDeveloping Lightning Components for Communities.pptx
Developing Lightning Components for Communities.pptx
Dmitry Vinnik
 
Volunteer.rb
Volunteer.rbVolunteer.rb
Volunteer.rb
Korab Hoxha
 
Diving Into Xamarin.Forms
Diving Into Xamarin.Forms Diving Into Xamarin.Forms
Diving Into Xamarin.Forms
Catapult New Business
 

Similar to Xamarin.Forms or Write Once, Run Anywhere (20)

Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....
Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....
Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....
 
Attributes, reflection, and dynamic programming
Attributes, reflection, and dynamic programmingAttributes, reflection, and dynamic programming
Attributes, reflection, and dynamic programming
 
Building strong foundations apex enterprise patterns
Building strong foundations apex enterprise patternsBuilding strong foundations apex enterprise patterns
Building strong foundations apex enterprise patterns
 
JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...
JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...
JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...
 
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
 
walkmod - JUG talk
walkmod - JUG talkwalkmod - JUG talk
walkmod - JUG talk
 
GDG Addis - An Introduction to Django and App Engine
GDG Addis - An Introduction to Django and App EngineGDG Addis - An Introduction to Django and App Engine
GDG Addis - An Introduction to Django and App Engine
 
ASP.NET MVC 3
ASP.NET MVC 3ASP.NET MVC 3
ASP.NET MVC 3
 
JavaScript - Chapter 12 - Document Object Model
  JavaScript - Chapter 12 - Document Object Model  JavaScript - Chapter 12 - Document Object Model
JavaScript - Chapter 12 - Document Object Model
 
td_mxc_rubyrails_shin
td_mxc_rubyrails_shintd_mxc_rubyrails_shin
td_mxc_rubyrails_shin
 
td_mxc_rubyrails_shin
td_mxc_rubyrails_shintd_mxc_rubyrails_shin
td_mxc_rubyrails_shin
 
How to generate customized java 8 code from your database
How to generate customized java 8 code from your databaseHow to generate customized java 8 code from your database
How to generate customized java 8 code from your database
 
Silicon Valley JUG - How to generate customized java 8 code from your database
Silicon Valley JUG - How to generate customized java 8 code from your databaseSilicon Valley JUG - How to generate customized java 8 code from your database
Silicon Valley JUG - How to generate customized java 8 code from your database
 
extending-and-optimizing-xamarin-forms-apps
extending-and-optimizing-xamarin-forms-appsextending-and-optimizing-xamarin-forms-apps
extending-and-optimizing-xamarin-forms-apps
 
Getting started with titanium
Getting started with titaniumGetting started with titanium
Getting started with titanium
 
Intro to .NET for Government Developers
Intro to .NET for Government DevelopersIntro to .NET for Government Developers
Intro to .NET for Government Developers
 
Xamarin 9/10 San Diego Meetup
Xamarin 9/10 San Diego MeetupXamarin 9/10 San Diego Meetup
Xamarin 9/10 San Diego Meetup
 
Developing Lightning Components for Communities.pptx
Developing Lightning Components for Communities.pptxDeveloping Lightning Components for Communities.pptx
Developing Lightning Components for Communities.pptx
 
Volunteer.rb
Volunteer.rbVolunteer.rb
Volunteer.rb
 
Diving Into Xamarin.Forms
Diving Into Xamarin.Forms Diving Into Xamarin.Forms
Diving Into Xamarin.Forms
 

More from Tom Walker

Visual studio 2017 mobile dev
Visual studio 2017 mobile devVisual studio 2017 mobile dev
Visual studio 2017 mobile dev
Tom Walker
 
Supercharge xamarin forms with custom renderers and animations
Supercharge xamarin forms with custom renderers and animationsSupercharge xamarin forms with custom renderers and animations
Supercharge xamarin forms with custom renderers and animations
Tom Walker
 
Redeeming azure monetary credit handout
Redeeming azure monetary credit handoutRedeeming azure monetary credit handout
Redeeming azure monetary credit handout
Tom Walker
 
London .NET Developers Upcoming May 2016 events
London .NET Developers Upcoming May 2016 eventsLondon .NET Developers Upcoming May 2016 events
London .NET Developers Upcoming May 2016 events
Tom Walker
 
Windows 10 uwp hands on workshop
Windows 10 uwp hands on workshopWindows 10 uwp hands on workshop
Windows 10 uwp hands on workshop
Tom Walker
 
Developing windows 10 universal apps
Developing windows 10 universal appsDeveloping windows 10 universal apps
Developing windows 10 universal apps
Tom Walker
 
Building iOS applications with Xamarin and C#
Building iOS applications with Xamarin and C#Building iOS applications with Xamarin and C#
Building iOS applications with Xamarin and C#
Tom Walker
 
London .NET Developers September event slide
London .NET Developers September event slide London .NET Developers September event slide
London .NET Developers September event slide
Tom Walker
 
Build 2015 Highlights
Build 2015 HighlightsBuild 2015 Highlights
Build 2015 Highlights
Tom Walker
 
London net developers june 2015 events for London ontario
London net developers june 2015 events for London ontarioLondon net developers june 2015 events for London ontario
London net developers june 2015 events for London ontario
Tom Walker
 
London .Net Developers May 2015 events for London Ontario
London .Net Developers May 2015 events for London OntarioLondon .Net Developers May 2015 events for London Ontario
London .Net Developers May 2015 events for London Ontario
Tom Walker
 
London .NET Developers April 2015 Events
London .NET Developers April 2015 EventsLondon .NET Developers April 2015 Events
London .NET Developers April 2015 Events
Tom Walker
 
London Net Developers March 2015 events for London Ontario
London Net Developers March 2015 events for London OntarioLondon Net Developers March 2015 events for London Ontario
London Net Developers March 2015 events for London Ontario
Tom Walker
 
London .NET Developers Azure Websites
London .NET Developers Azure WebsitesLondon .NET Developers Azure Websites
London .NET Developers Azure Websites
Tom Walker
 
London .NET Developers Azure Camp Keynote
London .NET Developers Azure Camp KeynoteLondon .NET Developers Azure Camp Keynote
London .NET Developers Azure Camp Keynote
Tom Walker
 
London .Net Developers Azure & local events
London .Net Developers Azure & local eventsLondon .Net Developers Azure & local events
London .Net Developers Azure & local events
Tom Walker
 
Mortal Kombat! ASP.NET MVC vs ASP.NET Webforms – ASP.NET MVC is amazing
Mortal Kombat! ASP.NET MVC vs ASP.NET Webforms – ASP.NET MVC is amazingMortal Kombat! ASP.NET MVC vs ASP.NET Webforms – ASP.NET MVC is amazing
Mortal Kombat! ASP.NET MVC vs ASP.NET Webforms – ASP.NET MVC is amazing
Tom Walker
 

More from Tom Walker (17)

Visual studio 2017 mobile dev
Visual studio 2017 mobile devVisual studio 2017 mobile dev
Visual studio 2017 mobile dev
 
Supercharge xamarin forms with custom renderers and animations
Supercharge xamarin forms with custom renderers and animationsSupercharge xamarin forms with custom renderers and animations
Supercharge xamarin forms with custom renderers and animations
 
Redeeming azure monetary credit handout
Redeeming azure monetary credit handoutRedeeming azure monetary credit handout
Redeeming azure monetary credit handout
 
London .NET Developers Upcoming May 2016 events
London .NET Developers Upcoming May 2016 eventsLondon .NET Developers Upcoming May 2016 events
London .NET Developers Upcoming May 2016 events
 
Windows 10 uwp hands on workshop
Windows 10 uwp hands on workshopWindows 10 uwp hands on workshop
Windows 10 uwp hands on workshop
 
Developing windows 10 universal apps
Developing windows 10 universal appsDeveloping windows 10 universal apps
Developing windows 10 universal apps
 
Building iOS applications with Xamarin and C#
Building iOS applications with Xamarin and C#Building iOS applications with Xamarin and C#
Building iOS applications with Xamarin and C#
 
London .NET Developers September event slide
London .NET Developers September event slide London .NET Developers September event slide
London .NET Developers September event slide
 
Build 2015 Highlights
Build 2015 HighlightsBuild 2015 Highlights
Build 2015 Highlights
 
London net developers june 2015 events for London ontario
London net developers june 2015 events for London ontarioLondon net developers june 2015 events for London ontario
London net developers june 2015 events for London ontario
 
London .Net Developers May 2015 events for London Ontario
London .Net Developers May 2015 events for London OntarioLondon .Net Developers May 2015 events for London Ontario
London .Net Developers May 2015 events for London Ontario
 
London .NET Developers April 2015 Events
London .NET Developers April 2015 EventsLondon .NET Developers April 2015 Events
London .NET Developers April 2015 Events
 
London Net Developers March 2015 events for London Ontario
London Net Developers March 2015 events for London OntarioLondon Net Developers March 2015 events for London Ontario
London Net Developers March 2015 events for London Ontario
 
London .NET Developers Azure Websites
London .NET Developers Azure WebsitesLondon .NET Developers Azure Websites
London .NET Developers Azure Websites
 
London .NET Developers Azure Camp Keynote
London .NET Developers Azure Camp KeynoteLondon .NET Developers Azure Camp Keynote
London .NET Developers Azure Camp Keynote
 
London .Net Developers Azure & local events
London .Net Developers Azure & local eventsLondon .Net Developers Azure & local events
London .Net Developers Azure & local events
 
Mortal Kombat! ASP.NET MVC vs ASP.NET Webforms – ASP.NET MVC is amazing
Mortal Kombat! ASP.NET MVC vs ASP.NET Webforms – ASP.NET MVC is amazingMortal Kombat! ASP.NET MVC vs ASP.NET Webforms – ASP.NET MVC is amazing
Mortal Kombat! ASP.NET MVC vs ASP.NET Webforms – ASP.NET MVC is amazing
 

Xamarin.Forms or Write Once, Run Anywhere

Editor's Notes

  1. Xamarin Introduction!
  2. UI build natively per platform, leveraging C# C# + XAML C# + XML C# + XIB One shared app logic code base, iOS, Android, Mac, Windows Phone, Windows Store, Windows
  3. First you have a set of pages for each screen of your application There are things like Content, and MasterDetail which gives you a nice flyout With a tabbed view you get the correct look on each platform iOS on bottom, Android on top, and on WP you have a Pivot control
  4. Inside of a page are layouts A lot of options from something simple like a stack panel to complex and powerful grids
  5. You have more than 40 controls, layouts, and pages to mix and match from. These are all of the controls you have out of the box, you can of course create your own. What is unique is you get the native control and have access to it. Consider an Entry Field On iOS it is mapped to UITextField Android it is EditText Windows Phoneit is a TextBox
  6. Xamarin Introduction!