SlideShare a Scribd company logo
1 of 64
.NET on macOS
use C# everywhere
Todays content will be available on - https://mikecodes.net
Mike JamesMAD Technical Solutions Professional
Who is this guy?
Global Black Belt Team
Why macOS?
Enter my world
Amiga 500
Gateway 2000
why macOS?
iPhone 3g 4 5 6 Plus 7
iPod
iMac G3 iMac G4 iMac G5 Macbook MacBook Pro
iPad 2 iPad Pro
AirPods Apple Watch
Apple TV
.NET is open source
The .NET Foundation is a non-profit organisation set up to support an innovative,
commercially-friendly, open source ecosystem around an open source .NET platform.
An Independent Non-Profit Organisation
The .NET Foundation Directors
Miguel de Icaza Scott Hunter Rachel Reese
Mono is a free and open-source project led by Xamarin, a subsidiary of Microsoft (formerly by Novell and
originally by Ximian), and the .NET Foundation, to create an Ecma standard-compliant, .NET Framework-
compatible set of tools including, among others, a C# compiler and a Common Language Runtime. 
Mono
Innovations
C# Compiler as a Service (User the C# compiler as a library)
C# Interactive Shell
Full static compilation of .NET code (use by Xamarin.iOS & PlayStation 3)
Mono coroutines (used to implement micro-threading code and continuations, mostly used for games)
Assembly injection to live processes
Use of LLVM as JIT backend
Supported Architectures & Platforms
x86
x86-64
ARM
MIPS
PowerPC
SPARC
S390,
IA-64
Android
Linux
BSD
macOS, iOS, watchOS, tvOS
Windows
Solaris,
Playstation 3
Wii
Xbox 360
Bait Newsa cloud connected app built on Mac
The madness of the ‘news’
This weeks madness
- Meet the Swiss CEO
Who Made a Watch Out
of Cheese
- Arizona man selling
ranch for $5M due to
constant ‘alien attacks’
- Runaway garbage truck
hits store named A
Beautiful Mess
- Arizona man selling
ranch for $5M due to
constant ‘alien attacks’
- Meet the Swiss CEO
Who Made a Watch Out
of Cheese
Breaking it down
Planet scale
infrastructure Client Apps
Part 1 Part 2
Breaking it down
Planet scale
infrastructure
Client Apps
Part 1 Part 2
Scaling Out v1
iOS App
Global
App Services
Amsterdam
Azure SQL DB
Amsterdam
Scaling Out v2
Traffic Manager
Global
iOS App
Global
Browsers
Global
www.
Cosmos DB - Mongo
Amsterdam
App Services
Amsterdam
Azure Search
Amsterdam
Azure Backup
Amsterdam
Azure Storage - Blob
Amsterdam
iOS App
Global
App Services
Amsterdam
Azure SQL DB
Amsterdam
Scaling Out v2
Traffic Manager
Global
iOS App
Global
Browsers
Global
www.
Cosmos DB - Mongo
Amsterdam
App Services
Amsterdam
Azure Search
Amsterdam
Azure Backup
Amsterdam
Azure Storage - Blob
Amsterdam
v2 backendv1 backend
Scaling Out v2
Traffic Manager
Global
iOS App
Global
Browsers
Global
www.
Cosmos DB - Mongo
East US
App Services
East US
Azure Search
East US
Azure Backup
East US
Azure Storage - Blob
East US
Cosmos DB - Mongo
Amsterdam
App Services
Amsterdam
Azure Search
Amsterdam
Azure Backup
Amsterdam
Azure Storage - Blob
Amsterdam
Scaling Out
Traffic Manager
Global
iOS App
Global
Browsers
Global
www.
Cosmos DB - Mongo
East US
App Services
East US
Azure Search
East US
Azure Backup
East US
Azure Storage - Blob
East US
Cosmos DB - Mongo
Amsterdam
App Services
Amsterdam
Azure Search
Amsterdam
Azure Backup
Amsterdam
Azure Storage - Blob
Amsterdam
Cosmos DB - Mongo
UK South
App Services
UK South
Azure Search
UK South
Azure Backup
UK South
Azure Storage - Blob
UK South
Planet Scale Infrastructure
Cosmos DB - DocDB
Region
App Services
Region
Azure Search
Region
Traffic Manager
Region
- Globally distributed
- Geo-redundancy / High availability
- Low-latency
- Scalable
Azure App ServicesApp Services
Region
App Services
Region
Azure App Services
Quickly create powerful cloud apps using a fully-managed platform
Supports .NET, .NET Core, Java, Ruby, Node.js, PHP, and Python
Run and scale your applications effortlessly on Windows or Linux
Built in load balancing options, and easy CDN integration
Easily add custom domains, SSL certificates, single sign-on 
App Services
Region
Azure App Services - Hosting Options
From on premise to the cloud
App Service Multi-Tenant App Service Environment Azure Stack
Get your Web, API, or
Mobile App created in
seconds in the cloud. We
provide the infrastructure,
you provide your
application code.
Run your apps in virtual
network at high scale.
Manage all of the resources
behind your public endpoint
creating an isolated
environment specifically 

for your organisation.
Leverage cloud innovations 

in on-premises infrastructure. 

App Service on Azure Stack 

brings the power of Azure
App Service to your own data
centers.
DemoApp Services
Cosmos DB
Cosmos DB - DocDB
Region
Find the information you needPut your data where your users are
Global Distribution
Multi-model + multi API
Elastic scale-out
Choice of consistency
Guaranteed single-digit latency
Enterprise-level SLAs
Find the information you needMulti-model + multi API
Key-Value
Document
Graph
Column-Family
Find the information you needDocumentDB & Mongo API Support
MongoDB wire protocol
Cosmos DB - DocDB
Region
Cosmos DB API
for Mongo
.NET SDK
Find the information you needBenefits of Graph Computing
// What are the names of Johns friends?
g.V().has("name","John").
out("knows").values("name")
Relationships first
Expressive data modeling
Schema-less
DemoCosmos
Azure Search
Azure Search
Region
Find the information you need
Azure Search
Region
Azure Search
- Cloud search service for web and mobile
- Built on top of Elastic Search
- Supports geospatial search
- Scalable
- Great .NET support
- Code-less option available
Azure Search
Region
Azure Search
- Code-less deployments
Indexers
An indexer in Azure Search is a crawler that extracts searchable
data and metadata from an external data source and populates an
index based on field-to-field mappings between the index and
your data source.
Indexers are based on data source types or platforms, with
individual indexers for SQL Server on Azure, Cosmos DB, Azure
Table Storage and Blob Storage, and so forth.
Azure Search
Region
Azure Search
- https://mikecodes.net
- Xamarin tutorial on my blog
DemoAzure Search
Traffic Manager
Region
Traffic Manager
- Route incoming traffic for better performance and availability
- Improve app availability with multiple automatic failover options
- Increase your app’s responsiveness
- Distribute your app traffic equally or with weighted values
- A/B test new deployments
- Force routing to maintain data sovereignty
Traffic Manager
Region
Azure Traffic Manager
DemoTraffic Manager
Breaking it down
Client Apps
Part 1
Part 2
Planet scale
infrastructure
Traditional Xamarin
iOS C# UI Windows C# UIAndroid C# UI
Shared C# Back End
Business Logic
Data Layer
Networking
Reusable components
Shared C# codebase • 100% native API access
Traditional Xamarin
iOS C# UI Windows C# UIAndroid C# UI
Shared C# Back End
Business Logic
Data Layer
Networking
Reusable components
Shared C# codebase • 100% native API access
DemoXamarin.iOS
Traditional Xamarin
iOS C# UI Windows C# UIAndroid C# UI
Shared C# Back End
Business Logic
Data Layer
Networking
Reusable components
Shared C# codebase • 100% native API access
iOS C# UI Windows C# UIAndroid C# UI
Shared C# Back End
Business Logic
Data Layer
Networking
Reusable components
Shared C# codebase • 100% native API access & Forms
Xamarin.Forms Shared UI
Key Features
Key Features
• 100% Code Reuse*
• XAML & MVVM
• 4,000+ APIs standardised across platforms
• Reuse .NET, WPF and UWP experience.
Xamarin FormsVS
• 75% Code Reuse*
• MVC
• 33,000+ iOS APIs, 40,000+ Android APIs & Loads for Windows
• Reuse existing mobile experience
Stack Absolute Relative Grid ContentView ScrollView Frame
Content MasterDetail Navigation Tabbed Carousel
Pages
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
UI Controls
Beautiful UIs with 3rd party vendors
Beautiful UIs with GrialKit
• 70 editable pre-built screens built with XAML
• Supports Airbnb Design’s Lottie Animation SDK
• Full MVVM support
“I am blown away by how good looking and easy to
use GrialKit is. Do yourself a favor and check it out”
- Miguel de Icaza
New Platforms
Xamarin.Forms
Supported Platforms
Samsung Tizen
In PreviewStable & Supported
Supported Platforms
WPF
Windows 7
Windows 8.1
UWP
Windows 10
Xbox One
Windows Phone
Hololens
RaspberryPi
4.0.3 (Api 15)
4.0.3 (Api 16)
4.0.3 (Api 17)
4.0.3 (Api 18)
4.0.3 (Api 19)
4.0.3 (Api 21)
4.0.3 (Api 22)
4.0.3 (Api 23)
4.0.3 (Api 24)
4.0.3 (Api 25)
4.0.3 (Api 26)
iOS 8
iOS 9
iOS 10
iOS 11
macOS 10.12
macOS 10.13
GTK#
macOS
Samsung Tizen
Demo
Xamarin.Forms
Useful Links
• My blog: mikecodes.net
• Xamarin: xamarin.com
• Azure azure.microsoft.com
Useful Xamarin Nuget Packages
• Akavache
• Lottie
• Xamarin.Plugins
• FreshMvvm
Questions?
Thank you.
@MikeCodesDotNET
© 2014 Microsoft Corporation. All rights reserved.

More Related Content

Similar to End to End .NET Development on Mac

Cloudy with a Chance of Cross Platform (for Bay.NET)
Cloudy with a Chance of Cross Platform (for Bay.NET)Cloudy with a Chance of Cross Platform (for Bay.NET)
Cloudy with a Chance of Cross Platform (for Bay.NET)Craig Dunn
 
The Great Mobile Debate: Native vs. Hybrid App Development
The Great Mobile Debate: Native vs. Hybrid App DevelopmentThe Great Mobile Debate: Native vs. Hybrid App Development
The Great Mobile Debate: Native vs. Hybrid App DevelopmentNick Landry
 
Ibm_interconnect_restapi_workshop
Ibm_interconnect_restapi_workshopIbm_interconnect_restapi_workshop
Ibm_interconnect_restapi_workshopShubhra Kar
 
01 introduction to entity framework
01   introduction to entity framework01   introduction to entity framework
01 introduction to entity frameworkMaxim Shaptala
 
Sviluppo x platform con xamarin
Sviluppo x platform con xamarin Sviluppo x platform con xamarin
Sviluppo x platform con xamarin Dan Ardelean
 
Xamarin Platform
Xamarin PlatformXamarin Platform
Xamarin PlatformRui Marinho
 
بالعربي التطور في البرمجة باستخدام ال .Net
بالعربي التطور في البرمجة باستخدام ال .Netبالعربي التطور في البرمجة باستخدام ال .Net
بالعربي التطور في البرمجة باستخدام ال .NetMohamed Galal
 
Cross Platform Development with Xamarin
Cross Platform Development with XamarinCross Platform Development with Xamarin
Cross Platform Development with Xamarinbryan costanich
 
Hybrid Cloud Service on the ThinkFree Mobile Android Platform
Hybrid Cloud Service on the ThinkFree Mobile Android PlatformHybrid Cloud Service on the ThinkFree Mobile Android Platform
Hybrid Cloud Service on the ThinkFree Mobile Android PlatformBenedict Ji
 
Native iOS, Android apps using Xamarin.Forms dotnetConf2016 Hyderabad
Native iOS, Android apps using Xamarin.Forms   dotnetConf2016 HyderabadNative iOS, Android apps using Xamarin.Forms   dotnetConf2016 Hyderabad
Native iOS, Android apps using Xamarin.Forms dotnetConf2016 HyderabadPranav Ainavolu
 
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 XamarinShravan Kumar Kasagoni
 
Course Notes-Unit 5.ppt
Course Notes-Unit 5.pptCourse Notes-Unit 5.ppt
Course Notes-Unit 5.pptSafaM3
 
Cosmos DB - Database for Serverless era
Cosmos DB - Database for Serverless eraCosmos DB - Database for Serverless era
Cosmos DB - Database for Serverless eraMichał Jankowski
 
Seattle StrongLoop Node.js Workshop
Seattle StrongLoop Node.js WorkshopSeattle StrongLoop Node.js Workshop
Seattle StrongLoop Node.js WorkshopJimmy Guerrero
 
Introduction to Mobile Development with Xamarin -DotNet Westide
Introduction to Mobile Development with Xamarin -DotNet WestideIntroduction to Mobile Development with Xamarin -DotNet Westide
Introduction to Mobile Development with Xamarin -DotNet WestideJames Montemagno
 
A Linux Enthusiast's Perspective on Microsoft OSS & Azure
A Linux Enthusiast's Perspective on Microsoft OSS & AzureA Linux Enthusiast's Perspective on Microsoft OSS & Azure
A Linux Enthusiast's Perspective on Microsoft OSS & AzureMicheal Colhoun
 
Cloud development technology sharing (BlueMix premier)
Cloud development technology sharing (BlueMix premier)Cloud development technology sharing (BlueMix premier)
Cloud development technology sharing (BlueMix premier)湯米吳 Tommy Wu
 
StrongLoop Overview
StrongLoop OverviewStrongLoop Overview
StrongLoop OverviewShubhra Kar
 

Similar to End to End .NET Development on Mac (20)

Cloudy with a Chance of Cross Platform (for Bay.NET)
Cloudy with a Chance of Cross Platform (for Bay.NET)Cloudy with a Chance of Cross Platform (for Bay.NET)
Cloudy with a Chance of Cross Platform (for Bay.NET)
 
The Great Mobile Debate: Native vs. Hybrid App Development
The Great Mobile Debate: Native vs. Hybrid App DevelopmentThe Great Mobile Debate: Native vs. Hybrid App Development
The Great Mobile Debate: Native vs. Hybrid App Development
 
Ibm_interconnect_restapi_workshop
Ibm_interconnect_restapi_workshopIbm_interconnect_restapi_workshop
Ibm_interconnect_restapi_workshop
 
01 introduction to entity framework
01   introduction to entity framework01   introduction to entity framework
01 introduction to entity framework
 
01 introduction to entity framework
01   introduction to entity framework01   introduction to entity framework
01 introduction to entity framework
 
Sviluppo x platform con xamarin
Sviluppo x platform con xamarin Sviluppo x platform con xamarin
Sviluppo x platform con xamarin
 
Xamarin Platform
Xamarin PlatformXamarin Platform
Xamarin Platform
 
بالعربي التطور في البرمجة باستخدام ال .Net
بالعربي التطور في البرمجة باستخدام ال .Netبالعربي التطور في البرمجة باستخدام ال .Net
بالعربي التطور في البرمجة باستخدام ال .Net
 
Cross Platform Development with Xamarin
Cross Platform Development with XamarinCross Platform Development with Xamarin
Cross Platform Development with Xamarin
 
Hybrid Cloud Service on the ThinkFree Mobile Android Platform
Hybrid Cloud Service on the ThinkFree Mobile Android PlatformHybrid Cloud Service on the ThinkFree Mobile Android Platform
Hybrid Cloud Service on the ThinkFree Mobile Android Platform
 
Native iOS, Android apps using Xamarin.Forms dotnetConf2016 Hyderabad
Native iOS, Android apps using Xamarin.Forms   dotnetConf2016 HyderabadNative iOS, Android apps using Xamarin.Forms   dotnetConf2016 Hyderabad
Native iOS, Android apps using Xamarin.Forms dotnetConf2016 Hyderabad
 
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
 
Course Notes-Unit 5.ppt
Course Notes-Unit 5.pptCourse Notes-Unit 5.ppt
Course Notes-Unit 5.ppt
 
Cosmos DB - Database for Serverless era
Cosmos DB - Database for Serverless eraCosmos DB - Database for Serverless era
Cosmos DB - Database for Serverless era
 
Seattle StrongLoop Node.js Workshop
Seattle StrongLoop Node.js WorkshopSeattle StrongLoop Node.js Workshop
Seattle StrongLoop Node.js Workshop
 
Introduction to Mobile Development with Xamarin -DotNet Westide
Introduction to Mobile Development with Xamarin -DotNet WestideIntroduction to Mobile Development with Xamarin -DotNet Westide
Introduction to Mobile Development with Xamarin -DotNet Westide
 
A Linux Enthusiast's Perspective on Microsoft OSS & Azure
A Linux Enthusiast's Perspective on Microsoft OSS & AzureA Linux Enthusiast's Perspective on Microsoft OSS & Azure
A Linux Enthusiast's Perspective on Microsoft OSS & Azure
 
Electron
ElectronElectron
Electron
 
Cloud development technology sharing (BlueMix premier)
Cloud development technology sharing (BlueMix premier)Cloud development technology sharing (BlueMix premier)
Cloud development technology sharing (BlueMix premier)
 
StrongLoop Overview
StrongLoop OverviewStrongLoop Overview
StrongLoop Overview
 

Recently uploaded

Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxnada99848
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 

Recently uploaded (20)

Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptx
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 

End to End .NET Development on Mac

  • 1. .NET on macOS use C# everywhere Todays content will be available on - https://mikecodes.net
  • 2.
  • 3. Mike JamesMAD Technical Solutions Professional Who is this guy? Global Black Belt Team
  • 7. why macOS? iPhone 3g 4 5 6 Plus 7 iPod iMac G3 iMac G4 iMac G5 Macbook MacBook Pro iPad 2 iPad Pro AirPods Apple Watch Apple TV
  • 8. .NET is open source
  • 9. The .NET Foundation is a non-profit organisation set up to support an innovative, commercially-friendly, open source ecosystem around an open source .NET platform. An Independent Non-Profit Organisation
  • 10. The .NET Foundation Directors Miguel de Icaza Scott Hunter Rachel Reese
  • 11. Mono is a free and open-source project led by Xamarin, a subsidiary of Microsoft (formerly by Novell and originally by Ximian), and the .NET Foundation, to create an Ecma standard-compliant, .NET Framework- compatible set of tools including, among others, a C# compiler and a Common Language Runtime.  Mono
  • 12. Innovations C# Compiler as a Service (User the C# compiler as a library) C# Interactive Shell Full static compilation of .NET code (use by Xamarin.iOS & PlayStation 3) Mono coroutines (used to implement micro-threading code and continuations, mostly used for games) Assembly injection to live processes Use of LLVM as JIT backend
  • 13. Supported Architectures & Platforms x86 x86-64 ARM MIPS PowerPC SPARC S390, IA-64 Android Linux BSD macOS, iOS, watchOS, tvOS Windows Solaris, Playstation 3 Wii Xbox 360
  • 14. Bait Newsa cloud connected app built on Mac
  • 15. The madness of the ‘news’
  • 16. This weeks madness - Meet the Swiss CEO Who Made a Watch Out of Cheese - Arizona man selling ranch for $5M due to constant ‘alien attacks’ - Runaway garbage truck hits store named A Beautiful Mess
  • 17. - Arizona man selling ranch for $5M due to constant ‘alien attacks’ - Meet the Swiss CEO Who Made a Watch Out of Cheese
  • 18.
  • 19. Breaking it down Planet scale infrastructure Client Apps Part 1 Part 2
  • 20. Breaking it down Planet scale infrastructure Client Apps Part 1 Part 2
  • 21. Scaling Out v1 iOS App Global App Services Amsterdam Azure SQL DB Amsterdam
  • 22. Scaling Out v2 Traffic Manager Global iOS App Global Browsers Global www. Cosmos DB - Mongo Amsterdam App Services Amsterdam Azure Search Amsterdam Azure Backup Amsterdam Azure Storage - Blob Amsterdam
  • 23. iOS App Global App Services Amsterdam Azure SQL DB Amsterdam Scaling Out v2 Traffic Manager Global iOS App Global Browsers Global www. Cosmos DB - Mongo Amsterdam App Services Amsterdam Azure Search Amsterdam Azure Backup Amsterdam Azure Storage - Blob Amsterdam v2 backendv1 backend
  • 24. Scaling Out v2 Traffic Manager Global iOS App Global Browsers Global www. Cosmos DB - Mongo East US App Services East US Azure Search East US Azure Backup East US Azure Storage - Blob East US Cosmos DB - Mongo Amsterdam App Services Amsterdam Azure Search Amsterdam Azure Backup Amsterdam Azure Storage - Blob Amsterdam
  • 25. Scaling Out Traffic Manager Global iOS App Global Browsers Global www. Cosmos DB - Mongo East US App Services East US Azure Search East US Azure Backup East US Azure Storage - Blob East US Cosmos DB - Mongo Amsterdam App Services Amsterdam Azure Search Amsterdam Azure Backup Amsterdam Azure Storage - Blob Amsterdam Cosmos DB - Mongo UK South App Services UK South Azure Search UK South Azure Backup UK South Azure Storage - Blob UK South
  • 26. Planet Scale Infrastructure Cosmos DB - DocDB Region App Services Region Azure Search Region Traffic Manager Region - Globally distributed - Geo-redundancy / High availability - Low-latency - Scalable
  • 27. Azure App ServicesApp Services Region
  • 28. App Services Region Azure App Services Quickly create powerful cloud apps using a fully-managed platform Supports .NET, .NET Core, Java, Ruby, Node.js, PHP, and Python Run and scale your applications effortlessly on Windows or Linux Built in load balancing options, and easy CDN integration Easily add custom domains, SSL certificates, single sign-on 
  • 29. App Services Region Azure App Services - Hosting Options From on premise to the cloud App Service Multi-Tenant App Service Environment Azure Stack Get your Web, API, or Mobile App created in seconds in the cloud. We provide the infrastructure, you provide your application code. Run your apps in virtual network at high scale. Manage all of the resources behind your public endpoint creating an isolated environment specifically 
 for your organisation. Leverage cloud innovations 
 in on-premises infrastructure. 
 App Service on Azure Stack 
 brings the power of Azure App Service to your own data centers.
  • 31. Cosmos DB Cosmos DB - DocDB Region
  • 32. Find the information you needPut your data where your users are Global Distribution Multi-model + multi API Elastic scale-out Choice of consistency Guaranteed single-digit latency Enterprise-level SLAs
  • 33. Find the information you needMulti-model + multi API Key-Value Document Graph Column-Family
  • 34. Find the information you needDocumentDB & Mongo API Support MongoDB wire protocol Cosmos DB - DocDB Region Cosmos DB API for Mongo .NET SDK
  • 35. Find the information you needBenefits of Graph Computing // What are the names of Johns friends? g.V().has("name","John"). out("knows").values("name") Relationships first Expressive data modeling Schema-less
  • 39. Azure Search Region Azure Search - Cloud search service for web and mobile - Built on top of Elastic Search - Supports geospatial search - Scalable - Great .NET support - Code-less option available
  • 40. Azure Search Region Azure Search - Code-less deployments Indexers An indexer in Azure Search is a crawler that extracts searchable data and metadata from an external data source and populates an index based on field-to-field mappings between the index and your data source. Indexers are based on data source types or platforms, with individual indexers for SQL Server on Azure, Cosmos DB, Azure Table Storage and Blob Storage, and so forth.
  • 41. Azure Search Region Azure Search - https://mikecodes.net - Xamarin tutorial on my blog
  • 44. - Route incoming traffic for better performance and availability - Improve app availability with multiple automatic failover options - Increase your app’s responsiveness - Distribute your app traffic equally or with weighted values - A/B test new deployments - Force routing to maintain data sovereignty Traffic Manager Region Azure Traffic Manager
  • 46. Breaking it down Client Apps Part 1 Part 2 Planet scale infrastructure
  • 47. Traditional Xamarin iOS C# UI Windows C# UIAndroid C# UI Shared C# Back End Business Logic Data Layer Networking Reusable components Shared C# codebase • 100% native API access
  • 48. Traditional Xamarin iOS C# UI Windows C# UIAndroid C# UI Shared C# Back End Business Logic Data Layer Networking Reusable components Shared C# codebase • 100% native API access
  • 50. Traditional Xamarin iOS C# UI Windows C# UIAndroid C# UI Shared C# Back End Business Logic Data Layer Networking Reusable components Shared C# codebase • 100% native API access iOS C# UI Windows C# UIAndroid C# UI Shared C# Back End Business Logic Data Layer Networking Reusable components Shared C# codebase • 100% native API access & Forms Xamarin.Forms Shared UI Key Features Key Features • 100% Code Reuse* • XAML & MVVM • 4,000+ APIs standardised across platforms • Reuse .NET, WPF and UWP experience. Xamarin FormsVS • 75% Code Reuse* • MVC • 33,000+ iOS APIs, 40,000+ Android APIs & Loads for Windows • Reuse existing mobile experience
  • 51. Stack Absolute Relative Grid ContentView ScrollView Frame Content MasterDetail Navigation Tabbed Carousel Pages Layouts
  • 52. ActivityIndicator BoxView Button DatePicker Editor Entry Image Label ListView Map OpenGLView Picker ProgressBar SearchBar Slider Stepper TableView TimePicker WebView EntryCell ImageCell SwitchCell TextCell ViewCell UI Controls
  • 53. Beautiful UIs with 3rd party vendors
  • 54. Beautiful UIs with GrialKit • 70 editable pre-built screens built with XAML • Supports Airbnb Design’s Lottie Animation SDK • Full MVVM support “I am blown away by how good looking and easy to use GrialKit is. Do yourself a favor and check it out” - Miguel de Icaza
  • 56. Supported Platforms Samsung Tizen In PreviewStable & Supported
  • 57. Supported Platforms WPF Windows 7 Windows 8.1 UWP Windows 10 Xbox One Windows Phone Hololens RaspberryPi 4.0.3 (Api 15) 4.0.3 (Api 16) 4.0.3 (Api 17) 4.0.3 (Api 18) 4.0.3 (Api 19) 4.0.3 (Api 21) 4.0.3 (Api 22) 4.0.3 (Api 23) 4.0.3 (Api 24) 4.0.3 (Api 25) 4.0.3 (Api 26) iOS 8 iOS 9 iOS 10 iOS 11 macOS 10.12 macOS 10.13
  • 58. GTK#
  • 59. macOS
  • 62. Useful Links • My blog: mikecodes.net • Xamarin: xamarin.com • Azure azure.microsoft.com Useful Xamarin Nuget Packages • Akavache • Lottie • Xamarin.Plugins • FreshMvvm
  • 64. © 2014 Microsoft Corporation. All rights reserved.