Modern software development isn't limited to one single platform anymore. With recent technologies like Xamarin, Cordova, Electron, Unity or Unreal Engine it is easily possible to design, develop and deploy an application to multiple platforms in shortest time.
2. नमस्ते – I’m “JoKi”
Jochen Kirstätter
4x Microsoft MVP
Founder of an IT community in Mauritius
Get Blogged by JoKi – http://jochen.kirstaetter.name
Family guy, geek, entrepreneur, software craftsman:
Visual FoxPro, C#, SQL Server, MySQL/MariaDB,
Linux consultant, Conference speaker
3. Brief Agenda
Current situation: Isolated platforms
Desktop
Mobile
Web Browser
Gaming Console
Internet of Things
Ideal situation: One platform
Let’s do a reality check what’s possible now…
4. “Silo”-Approach
Different programming languages: C#, Objective-C, Swift, Java, C++, etc.
Individual teams and increased time overhead
Repetition Violation of DRY principle
iOSWindows macOS LinuxAndroid
5. Code Sharing aka Portable Class Library
OS 1
Abstraction Layer Technology / SDK
Line of Business / Software Application
OS 2 OS 3
7. Xamarin & Xamarin.Forms
C# as common programming language
Target Platforms:
Windows
iOS
Android
macOS
Linux?
8. .NET Core
.NET rewritten from scratch; New not just an upgrade
Target Platforms:
Windows
macOS
Linux
UI: Eto.Forms, Xwt
Still young development platform, parts missing
Huge potential, Open Source (GitHub), Linux Foundation
9. Code Hosting
Web Browser Desktop HostMobile Host
Line of Business
Software App
Line of Business
Software App
Line of Business
Software App
11. Apache Cordova
Hosting Shell for mobile platforms: Android, iOS
Application Layer to provide generic access to native APIs
Hardware access via plugins/extensions
Camera
Gyroscope
Accelerometer
Location
Local Storage (File system)
Peripherals
12. Electron
Hosting Shell for desktop platforms: Windows, macOS, Linux
Chrome v8 Engine and Web view
Single-Page Application (SPA)
Commercial Store Publication possible
Samples: Atom, GitKraken, Nylas N1, Slack, Visual Studio Code, etc…
Check out: http://electron.atom.io
14. Server-Side of Cross-Platform
Choose One Technology:
.NET Core, node.js, Java, Python, Ruby, etc…
Design REST APIs
JSON is first choice
XML is still strong
Furthermore:
Security Token Service (STS) for Authentication & Authorisation
ODATA for data shaping and data separation
15. Resumé
Do we have a winner?
No ;-)
Do we have a recommendation?
It depends ;-)
Multiple solutions available
Advice: Build a Client MVP / prototype (max. 24 hours each)
16. बहुत बहुत धन्यवाद
Stay in touch: @JKirstaetter – jochen@kirstaetter.name
C# Corner, LinkedIn, Facebook, Google+, GitHub, Blog, etc…