SlideShare a Scribd company logo
Develop Business Apps
Cross-platform development using Visual Studio
with Xamarin and Azure
Alexander Meijers| SharePoint Lead Architect
Tuesday, April 14th 2015
Agenda
• Where to start?
• Development
• Cross platform
• Programming skills
• Development environment
• Windows Azure
• Known issues
• Takeaways & Roundup
• Resources
Where to start?
• Considerations
• Type of Business Apps
Considerations
• Targeting
• Single platform
• Cross platform
• Deployment
• Development versus production
• Release management
• Hosting of the App
• App Store or not to Store
• Other
• Localization
• Design
• Interaction
• Security
• Data storage
• Local storage in App
• Storage in the cloud
• Hybrid scenarios
• Data availability
• Scalability
• Data only available to App
• Data available to multiple solutions
• Data available cross Apps / Solutions
• Data transition
• Transforming data to another format
• Move data to specific location
Ask yourself the following questions
• Which platforms do i want to support?
• Which systems does my app connect to?
• How many (active) users do i expect?
• Do i need to read and write data from a data container?
• What is the data connectivity for my users?
• Are other systems doing something with my data?
Type of Business Apps
• Office Platform
• Office Apps
• SharePoint hosted Apps, Provider-hosted Apps
• Cloud
• Office 365 Apps
• Azure Apps
• Windows
• Universal Apps
• Windows Phone Apps
• Other platforms
• Android Apps
• iOS Apps
Development
Cross-platform
• Xamarin Platform
• Xamarin.Forms
• Development
• .NET Libraries
• Models
Xamarin Platform
• A platform which allows you to share code accross all platforms with
a single shared c# codebase
• Use the same language, APIs and data structures on every platform
• Platforms
• iOS, Android, Windows Phone, Windows, Mac
• Xamarin Apps
• Standard native user interface controls
• Compiled for native performance
• Leverage hardware acceleration
Xamarin tools
• Xamarin platform
• Xamarin Studio
• iPhone and Android App development on Mac
• Android App development on Windows PC
• Visual Studio with Xamarin libraries
• Windows Phone App development
• Android App development
• Mac and iPhone development only possible in combination with a Mac
running XCode and Xamarin Studio, connected by network with the
Windows PC
Devices & Emulators
• On screen emulators
• Real Phone (connection via USB cable)
Advantages Disavantages
Device • Easier to test
complex touch
interaction
• Feel for startup
and response
time
• Unlocking your Windows Phone
• Need of a developer account
• Android needs to have
debugging enabled
Emulator • Easier to test for
a variety of sizes
and forms
• Android emulators are very
slow
• Mac desktops don’t have touch.
Therefore difficult with controls
Xamarin development
Development Tools Language Platform
iOS XCode Objective-C Mac
Android Eclipse Java Lots of platforms
Windows Phone Visual Studio C# Windows PC
• Each language incorporates same sort methods or properties
• Example toggle between to states
• iPhone its a view called UISwitch
• Android its a widget called Switch
• Windows Phone its a control called ToggleSwitchButton
• All languages are object-oriented descendants of C
Xamarin Platform .NET Libraries
Platform .NET Library Name
iOS Xamarin.iOS MonoTouch
Mac Xamarin.Mac MonoMac
Android Xamarin.Android Mono for Android
These libraries are known as the Xamarin Platform. They contain
native Mac, iOS and Android APIs.
Shared code
• The trick is the ability of sharing code among the applications
• Platform independent code is isolated by moving it to a separate project
• The project is shared and referenced accross the other platform dependent
projects
• MVVM used in Xamarin projects
• Model (underlaying data), View (user interface, visuals and input), ViewModel (manage
data between Model and View)
Shared code – can be complicated
• Different platforms use a different
subset of the .NET Base Class
Library (BCL)
• Different platforms are built to a
different .NET Core Library Profile
• When creating cross-platform
solutions, each platform can only
use class libraries that are targeted
to the same profile within that
solution
Shared code - Strategy
Approaches Overview
Shared Asset
Project (SAP)
• Organize your source
code
• Use #if compiler
directives to manage
platform specific
requirements
Portable
Class Library
(PCL)
• Class library targeting
the platforms you
want to support
• Use interfaces to
provide platform
specific functionality
Shared code - Shared Asset Project
• Benefits
• Simplest approach
• The common code lives in the Shared Asset Project
• All platform projects are sharing the same code
• Branching possible to use compiler redirectives
• Application projects can include platform specific
references that the shared code can utilize
• Disavantages
• No output assembly
• During compilation the files are treated as part of
the referencing project. Code is not shared after
compilation
• Refactorings inside code in “inactive” compiler
directives will not update the code
• Code is not intendend for distributing to other
developers
Shared code - Portable Class Library
• Benefits
• Allows you to share code across multiple
projects
• Refactoring always update all effected
references
• The output of the shared code is a class library
• Allows you to share your code with other
developers
• Disavantages
• More difficult to implement. You need to
considerate the options
• You can’t use compiler directives
• Only a subset of the .NET framework is
available to use, determined by the profile
selected
Xamarin App development model
iPhone App
Xamarin.iOS
iPhone API
Android App
Xamarin.Android
Android API
Windows Phone App
Windows Phone API
Shared Asset Project or Portable Class Library
Solution with
C# projects
Xamarin.Forms - Apps
• Xamarin.Forms
• Introduced on may 28th, 2014
• Write user-interface code for all platforms at once
• Xamarin.Forms application
• 3 platform projects
• 1 shared code project
• The shared code project contains most of the application
• The platform projects contains mostly stubs
• Xamarin.Forms Framework
• Xamarin.Forms.Core
• Xamarin.Forms.Xaml
• Xamarin.Forms is based on MVVM
Xamarin.Forms - App development model
iPhone App
Xamarin.iOS
iPhone API
Android App
Xamarin.Android
Android API
Windows Phone App
Windows Phone API
Shared Asset Project or Portable Class Library
Solution with
C# projects
Xamarin.Forms.Core / Xamarin.Forms.Xaml
Xamarin.Forms - Example
• Example displays a switch
on all three platforms with
a single XAML file
Xamarin APIs
• http://api.xamarin.com
• You will find here:
• Base Class Library
• MonoMac Framework
• Xamarin.Android Framework
• Xamarin.iOS Framework
• Xamarin.Forms
• Other APIs found here from
other Xamarin products
DEMO
FormsGallery
Demo – Run the project
Programming
skills
• Asynchronous programming
• Retrieve data from SharePoint
• Model – View - ViewModel
Programming skills – asynchronous
• Working with mobile applications that interact with network, database,
files and device hardware reading are much more slower than in normal
conditions due to communication bottlenecks
• Asynchronous allows us to run delayed tasks in the background
• The program itself can continue without holding up by some task
• Available with .NET Framework 4.5 or higher
• A new simplified approach for running asynchronous tasks
• .NET APIs contain classes supporting asynchronous methods and
properties to improve responsiveness
• The task has a state (Running, Finished or Cancelled), a result and is able
to throw exceptions
Programming skills – asynchronous
• Keywords
• async  let the compiler know that
the method needs to be handled
separately
• await  Let the compiler know the
suspension of the relative running
async task
• Return types
• Task or Task<TResult>
• Task is used when the method has no
return statement of does not return an
operand
What happens?
1. Function is called
2. Calls an async method on the
object
3. Something causes a delay. It
yields control to its caller.
4. The method continues because
its not awaited
5. The method is executed
synchronous
6. No work further. It now awaits
on the result of the
asynchronous call
7. The method completes and
returns the result.
8. It calculates the length and
returns it
Retrieve data from SharePoint
• Use WebClient with authentication
credentials using
SharePointOnlineCredentials()
• JSON as result
• Example: Jtoken listItems = GetList(new Uri(https://appztekonline-
public.sharepoint.com”), Credentials(), “B
• If called from an Azure Service you will need to configure some additional
settings
• Allowed Origins
• Other
Model – View - ViewModel
• A model which allows you to create shared code projects at ease
• Model (business logic and underlaying data)
• View (presentation, user interface, visuals and input)
• ViewModel (presentation logic, manage data between Model and View)
Development
environment
• Software installation
• Development setup
• Android specific
• Android API levels
• Android Virtual Device
Dev environment – Software installation
• Windows 8 or higher
• Hyper-V enabled
• Needed for emulators (Windows Phone, Android)
• Visual Studio 2013 with Update 4
• Contains the Windows Phone SDK
• Xamarin for Windows
• Xamarin Android Player for Windows
• Only when you want to develop for Android!!
• You will need VirtualBox (not possible with Hyper-V enabled)
• Update the Android SDK Manager
Dev environment – Development setup
• Create a blank Xamarin App based on Xamarin.Forms Shared
• Remove the iOS project
• Mac platform needed and not present (in this case)
• Use Android Virtual Device Manager
• Create or use device definitions
• Create Android virtual devices based on device definitions
• Project properties of the Android project
• Define compile level
• Define minimum target level
• Define Android version
Dev environment - Android API Levels
• API Level determines for which Android versions you can deploy
• Choose the API Level
• Install the SDK platform for that level
• Install the system images for that level
• Sources and samples of SDK are available
Dev environment - Android Virtual Device
• Create Android Virtual Device
• Choose Device
• Choose target (API Level need
to be installed)
• CPU/ABI
• In some cases you need to
restart Visual Studio to get the
device listed under the start
button
DEMO
Configuration
Demo - Configuration
Windows Azure
• Why Azure?
• Xamarin and Azure
• Azure Mobile Services
• Azure Messaging component
• Azure Active Directory authentication
Why Azure?
• Set of great tools completely integrated with Xamarin
• Azure Mobile Service
• Push notifications
• All the benefits of a great platform
• Scalability
• Uniform platform and layer in your solution
• Data synchronization
• Asynchronous
• Offline data synchronization
• Authentication with Active Directory
Xamarin and Azure
• Microsoft Azure plugs easily into Xamarin projects
• Incorporates Azure features like;
• Cloud data storage
• Cross-platform push notifications
• Xamarin has components available to integratie it!
• Azure Messaging component
Azure Mobile Services
• Add structured storage,
authentication, push
notifications and more to
your Xamarin based mobile
application using Microsoft
Azure Mobile Services.
• https://components.xamarin
.com/view/azure-mobile-
services/
Azure Messaging component
• Send push notifications to your iOS, Android
and Windows apps
• Allows you to register with Azure Notification
Hubs
• Send notifications from any backend
• Target content to specific user segments
• Use templates to tailor notifications
• Due to the notification hubs you can scale op
to millions of devices and billions of push
notifications
• http://components.xamarin.com/view/azure-
messaging
Azure Active Directory Authentication
• Use Active Directory to authenticate users in Xamarin mobile
applications
• Use the same organizational account that employees use to sign in
to their corporate environment
• Secure resources like;
• Files, links, Web APIs, Office 365 and more
Azure Active Directory Authentication
• Get it up and running in three steps
• Register with Azure Active Directory
• https://www.windowsazure.com
• Configure Service Access for Mobile
Application
• http://developer.xamarin.com/guides/cross-
platform/azure/active-directory/
• Develop mobile apps using the service access
• Examples of services you can access
include:
• Graph API, Web API and Office 365
DEMO
Todo list with data in Azure
Demo – Create mobile service
Demo – Get project
Demo – Run the project
Known issues
• Fastdev directory creation failed
Known issues
Issue  FastDev directory creation failed
Resolutions  Turn off Fast Deployment in project properties
Takeaways &
Roundup
Takeways & Roundup
• The Xamarin platform is great for developing cross-platform
business apps
• Understand the technology of Shared Code, choose wisely!
• Not everything is cross-platform. Specific functionality demands
written code per platform
• Get to know asynchronous programming with async and await
• The Azure platform is great for expanding your app with storage,
push notifications and security
• Integration between Xamarin and Azure
Resources
Sources & Resources
• Free e-book “Creating Mobile Apps with Xamarin.Forms” by Charles Petzold
http://blogs.msdn.com/b/microsoft_press/archive/2014/10/06/free-ebook-creating-mobile-
apps-with-xamarin-forms-preview-edition.aspx
• Xamarin platform
http://xamarin.com/platform
• Xamarin + Azure
http://developer.xamarin.com/guides/cross-platform/windows/microsoft-azure/
• Xamarin API documentation
http://api.xamarin.com/
• Xamarin FormsGallery demo – Great impression of the Xamarin.Forms
http://developer.xamarin.com/samples/xamarin-forms/FormsGallery/
• Xamarin early preview setup – Windows Phone 8.1 development
http://developer.xamarin.com/guides/cross-platform/xamarin-forms/windows/installation/
• Managing your Azure environment
https://manage.azure.com
Questions?

More Related Content

What's hot

Practical management of development & QA environments for SharePoint 2013
Practical management of development & QA environments for SharePoint 2013Practical management of development & QA environments for SharePoint 2013
Practical management of development & QA environments for SharePoint 2013
SharePointRadi
 
Acing application lifecycle management in SharePoint
Acing application lifecycle management in SharePointAcing application lifecycle management in SharePoint
Acing application lifecycle management in SharePointJeremy Thake
 
Sharepoint as a service platform
Sharepoint as a service platformSharepoint as a service platform
Sharepoint as a service platform
Kashif Akram
 
ECS19 - Vesa Juvonen - Getting Started With SharePoint Framework - Roadmap
ECS19 - Vesa Juvonen - Getting Started With SharePoint Framework - RoadmapECS19 - Vesa Juvonen - Getting Started With SharePoint Framework - Roadmap
ECS19 - Vesa Juvonen - Getting Started With SharePoint Framework - Roadmap
European Collaboration Summit
 
Essential Knowledge for SharePoint Add-Ins
Essential Knowledge for SharePoint Add-InsEssential Knowledge for SharePoint Add-Ins
Essential Knowledge for SharePoint Add-Ins
InnoTech
 
Gabriel Gayhart - XML Pointer File Example
Gabriel Gayhart - XML Pointer File ExampleGabriel Gayhart - XML Pointer File Example
Gabriel Gayhart - XML Pointer File Example
linkedinsys
 
Oracle Application Express
Oracle Application ExpressOracle Application Express
Oracle Application Express
HBoone
 
Getting started with microsoft office 365 share point online development
Getting started with microsoft office 365 share point online developmentGetting started with microsoft office 365 share point online development
Getting started with microsoft office 365 share point online developmentJeremy Thake
 
O365Con18 - Using ARM Templates to Deploy Solutions on Azure - Kevin Timmermann
O365Con18 - Using ARM Templates to Deploy Solutions on Azure - Kevin TimmermannO365Con18 - Using ARM Templates to Deploy Solutions on Azure - Kevin Timmermann
O365Con18 - Using ARM Templates to Deploy Solutions on Azure - Kevin Timmermann
NCCOMMS
 
SharePoint development 2017 wrap-up
SharePoint development   2017 wrap-upSharePoint development   2017 wrap-up
SharePoint development 2017 wrap-up
Joel Rodrigues
 
Learn from my Mistakes - Building Better Solutions in SPFx
Learn from my  Mistakes - Building Better Solutions in SPFxLearn from my  Mistakes - Building Better Solutions in SPFx
Learn from my Mistakes - Building Better Solutions in SPFx
Thomas Daly
 
Extending_EBS_12_1_3_with_APEX_5_0_COLLABORATE16
Extending_EBS_12_1_3_with_APEX_5_0_COLLABORATE16Extending_EBS_12_1_3_with_APEX_5_0_COLLABORATE16
Extending_EBS_12_1_3_with_APEX_5_0_COLLABORATE16Alfredo Abate
 
Asp .net folders and web.config
Asp .net folders and web.configAsp .net folders and web.config
Asp .net folders and web.config
baabtra.com - No. 1 supplier of quality freshers
 
Oracle Apex Technical Introduction
Oracle Apex   Technical IntroductionOracle Apex   Technical Introduction
Oracle Apex Technical Introductioncrokitta
 
ECS19 - Katja Jokisalo - Modernize your Intranet
ECS19 - Katja Jokisalo - Modernize your IntranetECS19 - Katja Jokisalo - Modernize your Intranet
ECS19 - Katja Jokisalo - Modernize your Intranet
European Collaboration Summit
 
Pretius Oracle Apex Primer
Pretius Oracle Apex PrimerPretius Oracle Apex Primer
Pretius Oracle Apex Primer
Pretius
 
JavaScript and jQuery for SharePoint Developers
JavaScript and jQuery for SharePoint DevelopersJavaScript and jQuery for SharePoint Developers
JavaScript and jQuery for SharePoint Developers
Rob Windsor
 
Pitfalls of Migrating to SharePoint 2010
Pitfalls of Migrating to SharePoint 2010Pitfalls of Migrating to SharePoint 2010
Pitfalls of Migrating to SharePoint 2010
Dan Usher
 
Designing SharePoint solutions – Big Decisions for Big Success
Designing SharePoint solutions – Big Decisions for Big SuccessDesigning SharePoint solutions – Big Decisions for Big Success
Designing SharePoint solutions – Big Decisions for Big Success
SPC Adriatics
 
Salesforce Developer Console ppt
Salesforce Developer Console  pptSalesforce Developer Console  ppt
Salesforce Developer Console ppt
Kuhinoor Alom
 

What's hot (20)

Practical management of development & QA environments for SharePoint 2013
Practical management of development & QA environments for SharePoint 2013Practical management of development & QA environments for SharePoint 2013
Practical management of development & QA environments for SharePoint 2013
 
Acing application lifecycle management in SharePoint
Acing application lifecycle management in SharePointAcing application lifecycle management in SharePoint
Acing application lifecycle management in SharePoint
 
Sharepoint as a service platform
Sharepoint as a service platformSharepoint as a service platform
Sharepoint as a service platform
 
ECS19 - Vesa Juvonen - Getting Started With SharePoint Framework - Roadmap
ECS19 - Vesa Juvonen - Getting Started With SharePoint Framework - RoadmapECS19 - Vesa Juvonen - Getting Started With SharePoint Framework - Roadmap
ECS19 - Vesa Juvonen - Getting Started With SharePoint Framework - Roadmap
 
Essential Knowledge for SharePoint Add-Ins
Essential Knowledge for SharePoint Add-InsEssential Knowledge for SharePoint Add-Ins
Essential Knowledge for SharePoint Add-Ins
 
Gabriel Gayhart - XML Pointer File Example
Gabriel Gayhart - XML Pointer File ExampleGabriel Gayhart - XML Pointer File Example
Gabriel Gayhart - XML Pointer File Example
 
Oracle Application Express
Oracle Application ExpressOracle Application Express
Oracle Application Express
 
Getting started with microsoft office 365 share point online development
Getting started with microsoft office 365 share point online developmentGetting started with microsoft office 365 share point online development
Getting started with microsoft office 365 share point online development
 
O365Con18 - Using ARM Templates to Deploy Solutions on Azure - Kevin Timmermann
O365Con18 - Using ARM Templates to Deploy Solutions on Azure - Kevin TimmermannO365Con18 - Using ARM Templates to Deploy Solutions on Azure - Kevin Timmermann
O365Con18 - Using ARM Templates to Deploy Solutions on Azure - Kevin Timmermann
 
SharePoint development 2017 wrap-up
SharePoint development   2017 wrap-upSharePoint development   2017 wrap-up
SharePoint development 2017 wrap-up
 
Learn from my Mistakes - Building Better Solutions in SPFx
Learn from my  Mistakes - Building Better Solutions in SPFxLearn from my  Mistakes - Building Better Solutions in SPFx
Learn from my Mistakes - Building Better Solutions in SPFx
 
Extending_EBS_12_1_3_with_APEX_5_0_COLLABORATE16
Extending_EBS_12_1_3_with_APEX_5_0_COLLABORATE16Extending_EBS_12_1_3_with_APEX_5_0_COLLABORATE16
Extending_EBS_12_1_3_with_APEX_5_0_COLLABORATE16
 
Asp .net folders and web.config
Asp .net folders and web.configAsp .net folders and web.config
Asp .net folders and web.config
 
Oracle Apex Technical Introduction
Oracle Apex   Technical IntroductionOracle Apex   Technical Introduction
Oracle Apex Technical Introduction
 
ECS19 - Katja Jokisalo - Modernize your Intranet
ECS19 - Katja Jokisalo - Modernize your IntranetECS19 - Katja Jokisalo - Modernize your Intranet
ECS19 - Katja Jokisalo - Modernize your Intranet
 
Pretius Oracle Apex Primer
Pretius Oracle Apex PrimerPretius Oracle Apex Primer
Pretius Oracle Apex Primer
 
JavaScript and jQuery for SharePoint Developers
JavaScript and jQuery for SharePoint DevelopersJavaScript and jQuery for SharePoint Developers
JavaScript and jQuery for SharePoint Developers
 
Pitfalls of Migrating to SharePoint 2010
Pitfalls of Migrating to SharePoint 2010Pitfalls of Migrating to SharePoint 2010
Pitfalls of Migrating to SharePoint 2010
 
Designing SharePoint solutions – Big Decisions for Big Success
Designing SharePoint solutions – Big Decisions for Big SuccessDesigning SharePoint solutions – Big Decisions for Big Success
Designing SharePoint solutions – Big Decisions for Big Success
 
Salesforce Developer Console ppt
Salesforce Developer Console  pptSalesforce Developer Console  ppt
Salesforce Developer Console ppt
 

Similar to Develop business apps cross-platform development using visual studio with xamarin and azure

Cross platform mobile development with xamarin and office 365
Cross platform mobile development with xamarin and office 365Cross platform mobile development with xamarin and office 365
Cross platform mobile development with xamarin and office 365
SoHo Dragon
 
Xamarin.Forms Bootcamp
Xamarin.Forms BootcampXamarin.Forms Bootcamp
Xamarin.Forms Bootcamp
Mike Melusky
 
C# everywhere: Xamarin and cross platform development
C# everywhere: Xamarin and cross platform developmentC# everywhere: Xamarin and cross platform development
C# everywhere: Xamarin and cross platform development
Gill Cleeren
 
Building Native “apps” with Visual Studio 2015
Building Native “apps” with Visual Studio 2015Building Native “apps” with Visual Studio 2015
Building Native “apps” with Visual Studio 2015
Mike Melusky
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
Christos Matskas
 
Building Cross Platform Mobile Apps with Xamarin
Building Cross Platform Mobile Apps with XamarinBuilding Cross Platform Mobile Apps with Xamarin
Building Cross Platform Mobile Apps with XamarinBrandon Cornett
 
Highlights from the Xamarin Evolve 2016 conference
Highlights from the Xamarin Evolve 2016 conferenceHighlights from the Xamarin Evolve 2016 conference
Highlights from the Xamarin Evolve 2016 conference
Christopher Miller
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
Alejandro Ruiz Varela
 
Cross-Platform Mobile Development using Visual Studio and Xamarin
Cross-Platform Mobile Development using Visual Studio and XamarinCross-Platform Mobile Development using Visual Studio and Xamarin
Cross-Platform Mobile Development using Visual Studio and Xamarin
Shravan Kumar Kasagoni
 
Post Windows Mobile: New Application Development Platforms
Post Windows Mobile: New Application Development PlatformsPost Windows Mobile: New Application Development Platforms
Post Windows Mobile: New Application Development Platforms
Barcoding, Inc.
 
Mobile App Landscape for the Non-Technical
Mobile App Landscape for the Non-TechnicalMobile App Landscape for the Non-Technical
Mobile App Landscape for the Non-Technical
James Quick
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
Daniel Fikre
 
Create Cross Platform Apps with Portable Class Libraries
Create Cross Platform Apps with Portable Class LibrariesCreate Cross Platform Apps with Portable Class Libraries
Create Cross Platform Apps with Portable Class Libraries
Karthikeyan Anbarasan (AK)
 
Native App Development for iOS, Android, and Windows with Visual Studio
Native App Development for iOS, Android, and Windows with Visual StudioNative App Development for iOS, Android, and Windows with Visual Studio
Native App Development for iOS, Android, and Windows with Visual Studio
Xamarin
 
Developing Windows Phone 8 apps using PhoneGap
Developing Windows Phone 8 apps using PhoneGapDeveloping Windows Phone 8 apps using PhoneGap
Developing Windows Phone 8 apps using PhoneGap
Amar Mesic
 
Building Enterprise Grade Front-End Applications with JavaScript Frameworks
Building Enterprise Grade Front-End Applications with JavaScript FrameworksBuilding Enterprise Grade Front-End Applications with JavaScript Frameworks
Building Enterprise Grade Front-End Applications with JavaScript Frameworks
FITC
 
Xamarin COE by Mukteswar Patnaik
Xamarin COE by Mukteswar PatnaikXamarin COE by Mukteswar Patnaik
Xamarin COE by Mukteswar Patnaik
Mukteswar Patnaik
 
Introduction to Xamarin
Introduction to XamarinIntroduction to Xamarin
Introduction to Xamarin
Guy Barrette
 
SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and M...
SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and M...SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and M...
SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and M...
Alec Tucker
 
Introduction to Windows 8 Development
Introduction to Windows 8 DevelopmentIntroduction to Windows 8 Development
Introduction to Windows 8 Development
Jeff Bramwell
 

Similar to Develop business apps cross-platform development using visual studio with xamarin and azure (20)

Cross platform mobile development with xamarin and office 365
Cross platform mobile development with xamarin and office 365Cross platform mobile development with xamarin and office 365
Cross platform mobile development with xamarin and office 365
 
Xamarin.Forms Bootcamp
Xamarin.Forms BootcampXamarin.Forms Bootcamp
Xamarin.Forms Bootcamp
 
C# everywhere: Xamarin and cross platform development
C# everywhere: Xamarin and cross platform developmentC# everywhere: Xamarin and cross platform development
C# everywhere: Xamarin and cross platform development
 
Building Native “apps” with Visual Studio 2015
Building Native “apps” with Visual Studio 2015Building Native “apps” with Visual Studio 2015
Building Native “apps” with Visual Studio 2015
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
 
Building Cross Platform Mobile Apps with Xamarin
Building Cross Platform Mobile Apps with XamarinBuilding Cross Platform Mobile Apps with Xamarin
Building Cross Platform Mobile Apps with Xamarin
 
Highlights from the Xamarin Evolve 2016 conference
Highlights from the Xamarin Evolve 2016 conferenceHighlights from the Xamarin Evolve 2016 conference
Highlights from the Xamarin Evolve 2016 conference
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
 
Cross-Platform Mobile Development using Visual Studio and Xamarin
Cross-Platform Mobile Development using Visual Studio and XamarinCross-Platform Mobile Development using Visual Studio and Xamarin
Cross-Platform Mobile Development using Visual Studio and Xamarin
 
Post Windows Mobile: New Application Development Platforms
Post Windows Mobile: New Application Development PlatformsPost Windows Mobile: New Application Development Platforms
Post Windows Mobile: New Application Development Platforms
 
Mobile App Landscape for the Non-Technical
Mobile App Landscape for the Non-TechnicalMobile App Landscape for the Non-Technical
Mobile App Landscape for the Non-Technical
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
 
Create Cross Platform Apps with Portable Class Libraries
Create Cross Platform Apps with Portable Class LibrariesCreate Cross Platform Apps with Portable Class Libraries
Create Cross Platform Apps with Portable Class Libraries
 
Native App Development for iOS, Android, and Windows with Visual Studio
Native App Development for iOS, Android, and Windows with Visual StudioNative App Development for iOS, Android, and Windows with Visual Studio
Native App Development for iOS, Android, and Windows with Visual Studio
 
Developing Windows Phone 8 apps using PhoneGap
Developing Windows Phone 8 apps using PhoneGapDeveloping Windows Phone 8 apps using PhoneGap
Developing Windows Phone 8 apps using PhoneGap
 
Building Enterprise Grade Front-End Applications with JavaScript Frameworks
Building Enterprise Grade Front-End Applications with JavaScript FrameworksBuilding Enterprise Grade Front-End Applications with JavaScript Frameworks
Building Enterprise Grade Front-End Applications with JavaScript Frameworks
 
Xamarin COE by Mukteswar Patnaik
Xamarin COE by Mukteswar PatnaikXamarin COE by Mukteswar Patnaik
Xamarin COE by Mukteswar Patnaik
 
Introduction to Xamarin
Introduction to XamarinIntroduction to Xamarin
Introduction to Xamarin
 
SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and M...
SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and M...SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and M...
SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and M...
 
Introduction to Windows 8 Development
Introduction to Windows 8 DevelopmentIntroduction to Windows 8 Development
Introduction to Windows 8 Development
 

More from Alexander Meijers

Microsoft ignite tour - Create an immersive experience with office 365 data ...
Microsoft ignite tour  - Create an immersive experience with office 365 data ...Microsoft ignite tour  - Create an immersive experience with office 365 data ...
Microsoft ignite tour - Create an immersive experience with office 365 data ...
Alexander Meijers
 
Microsoft ignite tour empower your workers using remote assist - theater se...
Microsoft ignite tour   empower your workers using remote assist - theater se...Microsoft ignite tour   empower your workers using remote assist - theater se...
Microsoft ignite tour empower your workers using remote assist - theater se...
Alexander Meijers
 
O365 and SharePoint Connect - Create an immersive experience with office 365...
O365 and SharePoint Connect  - Create an immersive experience with office 365...O365 and SharePoint Connect  - Create an immersive experience with office 365...
O365 and SharePoint Connect - Create an immersive experience with office 365...
Alexander Meijers
 
Modern workplace conference create an immersive experience with office 365 ...
Modern workplace conference   create an immersive experience with office 365 ...Modern workplace conference   create an immersive experience with office 365 ...
Modern workplace conference create an immersive experience with office 365 ...
Alexander Meijers
 
Code motion - Extend visualization of microsoft graph data to hololens applic...
Code motion - Extend visualization of microsoft graph data to hololens applic...Code motion - Extend visualization of microsoft graph data to hololens applic...
Code motion - Extend visualization of microsoft graph data to hololens applic...
Alexander Meijers
 
Code europe holobasics - develop your mixed reality hololens app with unity...
Code europe   holobasics - develop your mixed reality hololens app with unity...Code europe   holobasics - develop your mixed reality hololens app with unity...
Code europe holobasics - develop your mixed reality hololens app with unity...
Alexander Meijers
 
Code europe holoadvanced - building more advanced mixed reality apps for ho...
Code europe   holoadvanced - building more advanced mixed reality apps for ho...Code europe   holoadvanced - building more advanced mixed reality apps for ho...
Code europe holoadvanced - building more advanced mixed reality apps for ho...
Alexander Meijers
 
Azure thursday HoloLens and cognitive services a powerful combination
Azure thursday HoloLens and cognitive services a powerful combinationAzure thursday HoloLens and cognitive services a powerful combination
Azure thursday HoloLens and cognitive services a powerful combination
Alexander Meijers
 
It next summit - holobasics - develop your mixed reality hololens app with un...
It next summit - holobasics - develop your mixed reality hololens app with un...It next summit - holobasics - develop your mixed reality hololens app with un...
It next summit - holobasics - develop your mixed reality hololens app with un...
Alexander Meijers
 
SharePoint Unite - Build business applications with HoloLens and Cloud
SharePoint Unite - Build business applications with HoloLens and CloudSharePoint Unite - Build business applications with HoloLens and Cloud
SharePoint Unite - Build business applications with HoloLens and Cloud
Alexander Meijers
 
HoloLens inspiration session
HoloLens inspiration sessionHoloLens inspiration session
HoloLens inspiration session
Alexander Meijers
 
Holo basics develop your mixed reality hololens app with unity and visual s...
Holo basics   develop your mixed reality hololens app with unity and visual s...Holo basics   develop your mixed reality hololens app with unity and visual s...
Holo basics develop your mixed reality hololens app with unity and visual s...
Alexander Meijers
 
Build business applications with HoloLens and Cloud
Build business applications with HoloLens and CloudBuild business applications with HoloLens and Cloud
Build business applications with HoloLens and Cloud
Alexander Meijers
 
Achmea technight - HoloLens development
Achmea technight  - HoloLens developmentAchmea technight  - HoloLens development
Achmea technight - HoloLens development
Alexander Meijers
 
Spsbe2016 extend your office 365 environement to cross-platform apps
Spsbe2016   extend your office 365 environement to cross-platform appsSpsbe2016   extend your office 365 environement to cross-platform apps
Spsbe2016 extend your office 365 environement to cross-platform apps
Alexander Meijers
 
Implementation of azure active directory authentication with cross platform d...
Implementation of azure active directory authentication with cross platform d...Implementation of azure active directory authentication with cross platform d...
Implementation of azure active directory authentication with cross platform d...
Alexander Meijers
 
Build your own yammer app @ Collab365
Build your own yammer app @ Collab365Build your own yammer app @ Collab365
Build your own yammer app @ Collab365
Alexander Meijers
 
An introduction to DevOps
An introduction to DevOpsAn introduction to DevOps
An introduction to DevOps
Alexander Meijers
 
SharePoint 2013 for internet websites
SharePoint 2013 for internet websitesSharePoint 2013 for internet websites
SharePoint 2013 for internet websites
Alexander Meijers
 
Build you own yammer app
Build you own yammer appBuild you own yammer app
Build you own yammer app
Alexander Meijers
 

More from Alexander Meijers (20)

Microsoft ignite tour - Create an immersive experience with office 365 data ...
Microsoft ignite tour  - Create an immersive experience with office 365 data ...Microsoft ignite tour  - Create an immersive experience with office 365 data ...
Microsoft ignite tour - Create an immersive experience with office 365 data ...
 
Microsoft ignite tour empower your workers using remote assist - theater se...
Microsoft ignite tour   empower your workers using remote assist - theater se...Microsoft ignite tour   empower your workers using remote assist - theater se...
Microsoft ignite tour empower your workers using remote assist - theater se...
 
O365 and SharePoint Connect - Create an immersive experience with office 365...
O365 and SharePoint Connect  - Create an immersive experience with office 365...O365 and SharePoint Connect  - Create an immersive experience with office 365...
O365 and SharePoint Connect - Create an immersive experience with office 365...
 
Modern workplace conference create an immersive experience with office 365 ...
Modern workplace conference   create an immersive experience with office 365 ...Modern workplace conference   create an immersive experience with office 365 ...
Modern workplace conference create an immersive experience with office 365 ...
 
Code motion - Extend visualization of microsoft graph data to hololens applic...
Code motion - Extend visualization of microsoft graph data to hololens applic...Code motion - Extend visualization of microsoft graph data to hololens applic...
Code motion - Extend visualization of microsoft graph data to hololens applic...
 
Code europe holobasics - develop your mixed reality hololens app with unity...
Code europe   holobasics - develop your mixed reality hololens app with unity...Code europe   holobasics - develop your mixed reality hololens app with unity...
Code europe holobasics - develop your mixed reality hololens app with unity...
 
Code europe holoadvanced - building more advanced mixed reality apps for ho...
Code europe   holoadvanced - building more advanced mixed reality apps for ho...Code europe   holoadvanced - building more advanced mixed reality apps for ho...
Code europe holoadvanced - building more advanced mixed reality apps for ho...
 
Azure thursday HoloLens and cognitive services a powerful combination
Azure thursday HoloLens and cognitive services a powerful combinationAzure thursday HoloLens and cognitive services a powerful combination
Azure thursday HoloLens and cognitive services a powerful combination
 
It next summit - holobasics - develop your mixed reality hololens app with un...
It next summit - holobasics - develop your mixed reality hololens app with un...It next summit - holobasics - develop your mixed reality hololens app with un...
It next summit - holobasics - develop your mixed reality hololens app with un...
 
SharePoint Unite - Build business applications with HoloLens and Cloud
SharePoint Unite - Build business applications with HoloLens and CloudSharePoint Unite - Build business applications with HoloLens and Cloud
SharePoint Unite - Build business applications with HoloLens and Cloud
 
HoloLens inspiration session
HoloLens inspiration sessionHoloLens inspiration session
HoloLens inspiration session
 
Holo basics develop your mixed reality hololens app with unity and visual s...
Holo basics   develop your mixed reality hololens app with unity and visual s...Holo basics   develop your mixed reality hololens app with unity and visual s...
Holo basics develop your mixed reality hololens app with unity and visual s...
 
Build business applications with HoloLens and Cloud
Build business applications with HoloLens and CloudBuild business applications with HoloLens and Cloud
Build business applications with HoloLens and Cloud
 
Achmea technight - HoloLens development
Achmea technight  - HoloLens developmentAchmea technight  - HoloLens development
Achmea technight - HoloLens development
 
Spsbe2016 extend your office 365 environement to cross-platform apps
Spsbe2016   extend your office 365 environement to cross-platform appsSpsbe2016   extend your office 365 environement to cross-platform apps
Spsbe2016 extend your office 365 environement to cross-platform apps
 
Implementation of azure active directory authentication with cross platform d...
Implementation of azure active directory authentication with cross platform d...Implementation of azure active directory authentication with cross platform d...
Implementation of azure active directory authentication with cross platform d...
 
Build your own yammer app @ Collab365
Build your own yammer app @ Collab365Build your own yammer app @ Collab365
Build your own yammer app @ Collab365
 
An introduction to DevOps
An introduction to DevOpsAn introduction to DevOps
An introduction to DevOps
 
SharePoint 2013 for internet websites
SharePoint 2013 for internet websitesSharePoint 2013 for internet websites
SharePoint 2013 for internet websites
 
Build you own yammer app
Build you own yammer appBuild you own yammer app
Build you own yammer app
 

Recently uploaded

Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Jay Das
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 

Recently uploaded (20)

Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 

Develop business apps cross-platform development using visual studio with xamarin and azure

  • 1. Develop Business Apps Cross-platform development using Visual Studio with Xamarin and Azure Alexander Meijers| SharePoint Lead Architect Tuesday, April 14th 2015
  • 2. Agenda • Where to start? • Development • Cross platform • Programming skills • Development environment • Windows Azure • Known issues • Takeaways & Roundup • Resources
  • 3. Where to start? • Considerations • Type of Business Apps
  • 4. Considerations • Targeting • Single platform • Cross platform • Deployment • Development versus production • Release management • Hosting of the App • App Store or not to Store • Other • Localization • Design • Interaction • Security • Data storage • Local storage in App • Storage in the cloud • Hybrid scenarios • Data availability • Scalability • Data only available to App • Data available to multiple solutions • Data available cross Apps / Solutions • Data transition • Transforming data to another format • Move data to specific location
  • 5. Ask yourself the following questions • Which platforms do i want to support? • Which systems does my app connect to? • How many (active) users do i expect? • Do i need to read and write data from a data container? • What is the data connectivity for my users? • Are other systems doing something with my data?
  • 6. Type of Business Apps • Office Platform • Office Apps • SharePoint hosted Apps, Provider-hosted Apps • Cloud • Office 365 Apps • Azure Apps • Windows • Universal Apps • Windows Phone Apps • Other platforms • Android Apps • iOS Apps
  • 7. Development Cross-platform • Xamarin Platform • Xamarin.Forms • Development • .NET Libraries • Models
  • 8. Xamarin Platform • A platform which allows you to share code accross all platforms with a single shared c# codebase • Use the same language, APIs and data structures on every platform • Platforms • iOS, Android, Windows Phone, Windows, Mac • Xamarin Apps • Standard native user interface controls • Compiled for native performance • Leverage hardware acceleration
  • 9. Xamarin tools • Xamarin platform • Xamarin Studio • iPhone and Android App development on Mac • Android App development on Windows PC • Visual Studio with Xamarin libraries • Windows Phone App development • Android App development • Mac and iPhone development only possible in combination with a Mac running XCode and Xamarin Studio, connected by network with the Windows PC
  • 10. Devices & Emulators • On screen emulators • Real Phone (connection via USB cable) Advantages Disavantages Device • Easier to test complex touch interaction • Feel for startup and response time • Unlocking your Windows Phone • Need of a developer account • Android needs to have debugging enabled Emulator • Easier to test for a variety of sizes and forms • Android emulators are very slow • Mac desktops don’t have touch. Therefore difficult with controls
  • 11. Xamarin development Development Tools Language Platform iOS XCode Objective-C Mac Android Eclipse Java Lots of platforms Windows Phone Visual Studio C# Windows PC • Each language incorporates same sort methods or properties • Example toggle between to states • iPhone its a view called UISwitch • Android its a widget called Switch • Windows Phone its a control called ToggleSwitchButton • All languages are object-oriented descendants of C
  • 12. Xamarin Platform .NET Libraries Platform .NET Library Name iOS Xamarin.iOS MonoTouch Mac Xamarin.Mac MonoMac Android Xamarin.Android Mono for Android These libraries are known as the Xamarin Platform. They contain native Mac, iOS and Android APIs.
  • 13. Shared code • The trick is the ability of sharing code among the applications • Platform independent code is isolated by moving it to a separate project • The project is shared and referenced accross the other platform dependent projects • MVVM used in Xamarin projects • Model (underlaying data), View (user interface, visuals and input), ViewModel (manage data between Model and View)
  • 14. Shared code – can be complicated • Different platforms use a different subset of the .NET Base Class Library (BCL) • Different platforms are built to a different .NET Core Library Profile • When creating cross-platform solutions, each platform can only use class libraries that are targeted to the same profile within that solution
  • 15. Shared code - Strategy Approaches Overview Shared Asset Project (SAP) • Organize your source code • Use #if compiler directives to manage platform specific requirements Portable Class Library (PCL) • Class library targeting the platforms you want to support • Use interfaces to provide platform specific functionality
  • 16. Shared code - Shared Asset Project • Benefits • Simplest approach • The common code lives in the Shared Asset Project • All platform projects are sharing the same code • Branching possible to use compiler redirectives • Application projects can include platform specific references that the shared code can utilize • Disavantages • No output assembly • During compilation the files are treated as part of the referencing project. Code is not shared after compilation • Refactorings inside code in “inactive” compiler directives will not update the code • Code is not intendend for distributing to other developers
  • 17. Shared code - Portable Class Library • Benefits • Allows you to share code across multiple projects • Refactoring always update all effected references • The output of the shared code is a class library • Allows you to share your code with other developers • Disavantages • More difficult to implement. You need to considerate the options • You can’t use compiler directives • Only a subset of the .NET framework is available to use, determined by the profile selected
  • 18. Xamarin App development model iPhone App Xamarin.iOS iPhone API Android App Xamarin.Android Android API Windows Phone App Windows Phone API Shared Asset Project or Portable Class Library Solution with C# projects
  • 19. Xamarin.Forms - Apps • Xamarin.Forms • Introduced on may 28th, 2014 • Write user-interface code for all platforms at once • Xamarin.Forms application • 3 platform projects • 1 shared code project • The shared code project contains most of the application • The platform projects contains mostly stubs • Xamarin.Forms Framework • Xamarin.Forms.Core • Xamarin.Forms.Xaml • Xamarin.Forms is based on MVVM
  • 20. Xamarin.Forms - App development model iPhone App Xamarin.iOS iPhone API Android App Xamarin.Android Android API Windows Phone App Windows Phone API Shared Asset Project or Portable Class Library Solution with C# projects Xamarin.Forms.Core / Xamarin.Forms.Xaml
  • 21. Xamarin.Forms - Example • Example displays a switch on all three platforms with a single XAML file
  • 22. Xamarin APIs • http://api.xamarin.com • You will find here: • Base Class Library • MonoMac Framework • Xamarin.Android Framework • Xamarin.iOS Framework • Xamarin.Forms • Other APIs found here from other Xamarin products
  • 24. Demo – Run the project
  • 25. Programming skills • Asynchronous programming • Retrieve data from SharePoint • Model – View - ViewModel
  • 26. Programming skills – asynchronous • Working with mobile applications that interact with network, database, files and device hardware reading are much more slower than in normal conditions due to communication bottlenecks • Asynchronous allows us to run delayed tasks in the background • The program itself can continue without holding up by some task • Available with .NET Framework 4.5 or higher • A new simplified approach for running asynchronous tasks • .NET APIs contain classes supporting asynchronous methods and properties to improve responsiveness • The task has a state (Running, Finished or Cancelled), a result and is able to throw exceptions
  • 27. Programming skills – asynchronous • Keywords • async  let the compiler know that the method needs to be handled separately • await  Let the compiler know the suspension of the relative running async task • Return types • Task or Task<TResult> • Task is used when the method has no return statement of does not return an operand
  • 28. What happens? 1. Function is called 2. Calls an async method on the object 3. Something causes a delay. It yields control to its caller. 4. The method continues because its not awaited 5. The method is executed synchronous 6. No work further. It now awaits on the result of the asynchronous call 7. The method completes and returns the result. 8. It calculates the length and returns it
  • 29. Retrieve data from SharePoint • Use WebClient with authentication credentials using SharePointOnlineCredentials() • JSON as result • Example: Jtoken listItems = GetList(new Uri(https://appztekonline- public.sharepoint.com”), Credentials(), “B • If called from an Azure Service you will need to configure some additional settings • Allowed Origins • Other
  • 30. Model – View - ViewModel • A model which allows you to create shared code projects at ease • Model (business logic and underlaying data) • View (presentation, user interface, visuals and input) • ViewModel (presentation logic, manage data between Model and View)
  • 31. Development environment • Software installation • Development setup • Android specific • Android API levels • Android Virtual Device
  • 32. Dev environment – Software installation • Windows 8 or higher • Hyper-V enabled • Needed for emulators (Windows Phone, Android) • Visual Studio 2013 with Update 4 • Contains the Windows Phone SDK • Xamarin for Windows • Xamarin Android Player for Windows • Only when you want to develop for Android!! • You will need VirtualBox (not possible with Hyper-V enabled) • Update the Android SDK Manager
  • 33. Dev environment – Development setup • Create a blank Xamarin App based on Xamarin.Forms Shared • Remove the iOS project • Mac platform needed and not present (in this case) • Use Android Virtual Device Manager • Create or use device definitions • Create Android virtual devices based on device definitions • Project properties of the Android project • Define compile level • Define minimum target level • Define Android version
  • 34. Dev environment - Android API Levels • API Level determines for which Android versions you can deploy • Choose the API Level • Install the SDK platform for that level • Install the system images for that level • Sources and samples of SDK are available
  • 35. Dev environment - Android Virtual Device • Create Android Virtual Device • Choose Device • Choose target (API Level need to be installed) • CPU/ABI • In some cases you need to restart Visual Studio to get the device listed under the start button
  • 38. Windows Azure • Why Azure? • Xamarin and Azure • Azure Mobile Services • Azure Messaging component • Azure Active Directory authentication
  • 39. Why Azure? • Set of great tools completely integrated with Xamarin • Azure Mobile Service • Push notifications • All the benefits of a great platform • Scalability • Uniform platform and layer in your solution • Data synchronization • Asynchronous • Offline data synchronization • Authentication with Active Directory
  • 40. Xamarin and Azure • Microsoft Azure plugs easily into Xamarin projects • Incorporates Azure features like; • Cloud data storage • Cross-platform push notifications • Xamarin has components available to integratie it! • Azure Messaging component
  • 41. Azure Mobile Services • Add structured storage, authentication, push notifications and more to your Xamarin based mobile application using Microsoft Azure Mobile Services. • https://components.xamarin .com/view/azure-mobile- services/
  • 42. Azure Messaging component • Send push notifications to your iOS, Android and Windows apps • Allows you to register with Azure Notification Hubs • Send notifications from any backend • Target content to specific user segments • Use templates to tailor notifications • Due to the notification hubs you can scale op to millions of devices and billions of push notifications • http://components.xamarin.com/view/azure- messaging
  • 43. Azure Active Directory Authentication • Use Active Directory to authenticate users in Xamarin mobile applications • Use the same organizational account that employees use to sign in to their corporate environment • Secure resources like; • Files, links, Web APIs, Office 365 and more
  • 44. Azure Active Directory Authentication • Get it up and running in three steps • Register with Azure Active Directory • https://www.windowsazure.com • Configure Service Access for Mobile Application • http://developer.xamarin.com/guides/cross- platform/azure/active-directory/ • Develop mobile apps using the service access • Examples of services you can access include: • Graph API, Web API and Office 365
  • 45. DEMO Todo list with data in Azure
  • 46. Demo – Create mobile service
  • 47. Demo – Get project
  • 48. Demo – Run the project
  • 49. Known issues • Fastdev directory creation failed
  • 50. Known issues Issue  FastDev directory creation failed Resolutions  Turn off Fast Deployment in project properties
  • 52. Takeways & Roundup • The Xamarin platform is great for developing cross-platform business apps • Understand the technology of Shared Code, choose wisely! • Not everything is cross-platform. Specific functionality demands written code per platform • Get to know asynchronous programming with async and await • The Azure platform is great for expanding your app with storage, push notifications and security • Integration between Xamarin and Azure
  • 54. Sources & Resources • Free e-book “Creating Mobile Apps with Xamarin.Forms” by Charles Petzold http://blogs.msdn.com/b/microsoft_press/archive/2014/10/06/free-ebook-creating-mobile- apps-with-xamarin-forms-preview-edition.aspx • Xamarin platform http://xamarin.com/platform • Xamarin + Azure http://developer.xamarin.com/guides/cross-platform/windows/microsoft-azure/ • Xamarin API documentation http://api.xamarin.com/ • Xamarin FormsGallery demo – Great impression of the Xamarin.Forms http://developer.xamarin.com/samples/xamarin-forms/FormsGallery/ • Xamarin early preview setup – Windows Phone 8.1 development http://developer.xamarin.com/guides/cross-platform/xamarin-forms/windows/installation/ • Managing your Azure environment https://manage.azure.com

Editor's Notes

  1. http://blog.stephencleary.com/2012/05/framework-profiles-in-net.html
  2. The app projects can contain lots of code Code which is shared across the projects is put in the SAP or PCL
  3. The app project contains mostly stubs and not much code The SAP and PCL contains the most code for the project
  4. Demo with project ButtonXaml
  5. 1. An event handler calls and awaits the AccessTheWebAsync async method. 2. AccessTheWebAsync creates an HttpClient instance and calls the GetStringAsync asynchronous method to download the contents of a website as a string. 3. Something happens in GetStringAsync that suspends its progress. Perhaps it must wait for a website to download or some other blocking activity. To avoid blocking resources, GetStringAsync yields control to its caller, AccessTheWebAsync. GetStringAsync returns a Task<TResult> where TResult is a string, and AccessTheWebAsync assigns the task to the getStringTask variable. The task represents the ongoing process for the call to GetStringAsync, with a commitment to produce an actual string value when the work is complete. 4. Because getStringTask hasn't been awaited yet, AccessTheWebAsync can continue with other work that doesn't depend on the final result from GetStringAsync. That work is represented by a call to the synchronous method DoIndependentWork. 5. DoIndependentWork is a synchronous method that does its work and returns to its caller. 6. AccessTheWebAsync has run out of work that it can do without a result from getStringTask. AccessTheWebAsync next wants to calculate and return the length of the downloaded string, but the method can't calculate that value until the method has the string. Therefore, AccessTheWebAsync uses an await operator to suspend its progress and to yield control to the method that called AccessTheWebAsync. AccessTheWebAsync returns a Task(Of Integer) or Task<int> to the caller. The task represents a promise to produce an integer result that's the length of the downloaded string. Inside the caller (the event handler in this example), the processing pattern continues. The caller might do other work that doesn't depend on the result from AccessTheWebAsync before awaiting that result, or the caller might await immediately. The event handler is waiting for AccessTheWebAsync, and AccessTheWebAsync is waiting for GetStringAsync. 7. GetStringAsync completes and produces a string result. The string result isn't returned by the call to GetStringAsync in the way that you might expect. (Remember that the method already returned a task in step 3.) Instead, the string result is stored in the task that represents the completion of the method, getStringTask. The await operator retrieves the result from getStringTask. The assignment statement assigns the retrieved result to urlContents. 8. When AccessTheWebAsync has the string result, the method can calculate the length of the string. Then the work of AccessTheWebAsync is also complete, and the waiting event handler can resume. In the full example at the end of the topic, you can confirm that the event handler retrieves and prints the value of the length result.
  6. http://visualstudiomagazine.com/articles/2011/10/01/mvvm-in-5-minutes.aspx
  7. http://www.hanselman.com/blog/IntroducingWindowsAzureWebJobs.aspx
  8. http://www.hanselman.com/blog/IntroducingWindowsAzureWebJobs.aspx
  9. http://developer.xamarin.com/guides/cross-platform/azure/mobile-services/
  10. http://components.xamarin.com/view/azure-messaging
  11. http://developer.xamarin.com/guides/cross-platform/azure/active-directory/
  12. http://developer.xamarin.com/guides/cross-platform/azure/active-directory/getting-started/
  13. http://azure.microsoft.com/en-us/documentation/articles/partner-xamarin-mobile-services-android-get-started/