Cross-Plattform Apps für Windows

advertisement
Cross-Plattform Apps für Windows,
Web & Mobile mit AngularJS und Cordova
christian.weyer@thinktecture.com
@christianweyer
Talking Points
Modern applications
Target architecture
Web-based application technologies
Web going native
End-to-end process automation
2
Modern Applications
Cross platform != Mobile
Mobile != Phones & Tablets
3
The ‚Continuous Screen‘
Today: focus on mobile devices & apps
But what is mobile, anyway?
From a small phone to a large phone to a small tablet to a
large tablet to a small desktop – you get it… 
We need UX & technologies to realize the Continuous Screen
Adaptive user interfaces with optimized user experience
With one code base & target architecture
4
„Write once, run anywhere – v2“ ???
5
Target Architecture
Groundhog day: „Hey babe, I got you babe…“
6
7
8
Technology stack
Request/response: Lightweight Web/HTTP APIs
ASP.NET Web API
Bi-directional: Push Services
ASP.NET SignalR
Token-based security
Token & authorization servers
Ubiquituous clients
Web-based application technologies
9
Web-based Application
Technologies
„I didn‘t know I can do that!“
10
HTML5 as a Platform
HTML5 ~= Semantic markup + CSS3 + JavaScript
An application development platform
11
JavaScript + Markup + CSS3
JavaScript as application language
Optionally TypeScript
AngularJS as application framework: MVVM
Alternatives like EmberJS, KnockoutJS
Templating frameworks for building views
AngularJS has built-in templating
Bootstrap as common-base layout system
More app-like UX frameworks like WinJS or Materials
12
„I didn‘t know that!“
We can build large-scale applications with JavaScript
We can have IntelliSense with JavaScript
We can debug & profile JavaScript
We can use JavaScript for real-time 3D
JavaScript slowly gets near-native in performance
We can have a fresh look at JavaScript
Upcoming ECMAScript6 is a big leap forward
13
MVVM with AngularJS
AngularJS is a client-side JavaScript SPA framework
Tries to take away complexities
Tries to prepare the way for ECMAScript6
Tries to prepare the way for Web Components
Focus on separation of concerns with patterns
14
Dependency injection
Models
Views
ViewModels
Web going native
Use the best from both worlds.
15
Native Web-based Mobile Apps: Cordova
Framework & tools to create native apps from HTML5/JS
codebase
Wrapping your HTML5 code into native app shell
Hook into platform features & events with APIs
Extend app functionality with plugins
CLI tools for project creation
Still needs native SDKs
16
Platform support
17
http://cordova.apache.org/docs/en/edge/guide_support_index.md.html#Platform%20Support
Native Plugins
Plugins are composed of
Single JavaScript interface used across all platforms
Native implementations with platform-specific plugin interfaces
Core Cordova APIs are implemented using this architecture
Installation via CLI
Configuration via config.xml
AngularJS integration via ng-cordova
18
Visual Studio Multi-Device Hybrid Apps
Visual Studio 2013 extension for building Cordova applications
(in preview)
Easy to setup
Takes care of all necessary dependenices in one installer
Offers project template to integrate with Cordova
Debug Windows Store, Windows Phone, Android straight from
VS
19
End-to-end Process
Automating the goodness.
20
Automation with Cordova CLI Tools
Develop, test & debug in browser (primarily)
Build native apps with script using Corova CLI commands
PowerShell or Bash
One code base results in various platform binaries
Mix that with node-webkit, optionally
21
Summary
Building cross-platform applications
beyond mobile devices
22
Cross-Platform Security
AAD
ADFS
Thinktecture
IdentityServer
Customer Accounts
23
https://github.com/thinktecture/Thinktecture.IdentityServer.v3
Cross-Plattform Apps für Windows,
Web & Mobile mit AngularJS und Cordova
Cross platform != Mobile, and Mobile != Phones/Tablets
HTML/JavaScript-based frameworks like
AngularJS enable real applications
Cordova offers platform & tools for native integration &
deployment
Secure target architecture with Web APIs, Push services and
authorization servers
24
Vielen Dank!
Christian Weyer, Thinktecture AG
@christianweyer
© 2014 Microsoft Corporation. All rights reserved. Because
Microsoft must respond to changing market conditions, it should
not be interpreted to be a commitment on the part of Microsoft,
and Microsoft cannot guarantee the accuracy of any information
provided after the date of this presentation. MICROSOFT MAKES
NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE
INFORMATION IN THIS PRESENTATION.
25
Resources
Visual Studio Multi-Device Hybrid Apps (Preview)
http://www.visualstudio.com/en-us/explore/cordova-vs.aspx
Cordova
http://cordova.apache.org/
AngularJS
https://angularjs.org/
ng-cordova
http://ngcordova.com/
26
Resources
node-webkit
https://github.com/rogerwang/node-webkit
CEFSharp
https://github.com/cefsharp/CefSharp
Christian Weyer
christian.weyer@thinktecture.com
@christianweyer
Thinktecture AG
http://www.thinktecture.com
27
Samples
Simple AngularJS (with ASP.NET Web API) demo
https://github.com/ChristianWeyer/UG-ngDemo
myProducts end-to-end demo application
https://github.com/ChristianWeyer/myProducts-End-to-End
28
Interview (deutsch)
Echtes Cross-Plattform statt einfache Apps
http://windowsdeveloper.de/videos/
echtes-crossplattform-statt-einfache-apps-176440
29
Addendum
Going Desktop with node-webkit & CEF
node-webkit allows for same approach as Cordova but
aiming desktop applications
Windows, Linux, MacOS X
CEFSharp can be used to integrate web-based technologies
into existing Windows applications
For migration paths
30
Download