Upgrade to Pro — share decks privately, control downloads, hide ads and more …

"Any Device, Any Server” – in Action: Echtes Cross-Plattform mit AngularJS und ASP.NET (vNext)

"Any Device, Any Server” – in Action: Echtes Cross-Plattform mit AngularJS und ASP.NET (vNext)

Geht das wirklich? Sehen ist glauben! In dieser Session zeigen Ihnen die Referenten, wie man mit einem gereiften JavaScript-SPA-Framework wie AngularJS echte Anwendungen für den Webbrowser, für den Desktop und nahezu beliebige mobile Plattformen effizient realisieren kann. Mit einer Codebasis alle Clients zufriedenstellen? Das soll das Ziel sein. Dazu eine passende Zielarchitektur mit Web-/REST-APIs sowie Push Services für die bidirektionale Kommunikation. Umgesetzt wird diese im Backend mit ASP.NET vNext – einem modernen und leichtgewichtigen Open-Source-Server-Framework. Get ready to rumble.

Christian Weyer

March 25, 2015
Tweet

More Decks by Christian Weyer

Other Decks in Programming

Transcript

  1. Thomas Hilzendegen, Christian Weyer | Thinktecture AG "Any Device, Any

    Server” – in Action: Echtes Cross-Plattform mit AngularJS und ASP.NET (vNext)
  2. Client Apps bauen •  Native Anwendung (echt oder cross-kompiliert) – 

    ObjectiveC/Swift, Java, C# –  Wissen über jede einzelne Plattform notwendig –  Voller Zugriff auf alles, beste Performance •  Web-Anwendung –  HTML5 & JavaScript –  Eine Code-Basis –  Web Browser als “Operating Systems” •  Hybride Anwendung –  HTML5 / JavaScript & Co. in native Rahmen-App gepackt –  Nutzung der nativen Plattformen via Plugins
  3. „Any Server“ ? •  Windows als erprobtes Server-Betriebssystem •  Linux

    sehr stark im Server-Umfeld –  Lizenz-Thematik –  Geringerer System-Footprint –  Microsoft Azure bietet Linux out-of-the-box an •  Virtualisierungs-Umgebungen übernehmen das Regiment –  VMs –  Docker •  Entwicklung unter Windows, Linux oder MacOSX
  4. Server Code bauen •  JVM: Java, Scala etc. •  Full

    Stack: JavaScript im Browser, node.js etc. •  .NET –  Stabil und immer weiter entwickelt auf dem Server –  Keine Zersplitterung wie auf dem Client •  .NET & ASP.NET vNext läuten nächsten Schritt ein
  5. Ziel-Architektur •  Voraussetzung für eine moderne Anwendungslandschaft ist eine Service-basierte

    Architektur –  Services != SOA J •  Im Betrieb üblicherweise verteilte Anwendungsarchitektur –  Online vs. Offline –  Leichtgewichtige Kommunikation
  6. Cross-Client mit HTML5 •  „Mobility-First“, statt reinem „Mobile-First“ •  HTML5

    & JavaScript sind tatsächlich ernst zu nehmende Technologien für Cross-Plattform Anwendungen –  Längst aus den Kinderschuhen entwachsen –  Viele große Hersteller investieren in die H5- Plattform •  Browser, Desktop, Tablet, Phone – alles (?)
  7. AngularJS •  Anwendungs-Framework für SPA –  Modularer Aufbau (Module, Dependency

    Injection) –  Data Binding –  Testbar (Unit, End-to-End) •  Silverlight-ähnliche Denkweise & Patterns –  MVVM –  Services •  Aktuell beliebtestes SPA Framework
  8. Cordova •  Open Source Projekt von ASF •  Tool zum

    Erstellen von nativen Anwendungen basierend auf HTML5 & JavaScript Code –  CLI-getrieben •  Framework zur Anbindung von JavaScript Code an native Plattform-Features –  Plugin-System –  1 JavaScript API –  Gezielte native Implementierungen
  9. Cordova Performance •  Auf aktuellen iOS-Geräten richtig schnelle Ausführung • 

    Ab iOS8 neue native Web View (WKWebView) –  JavaScript JIT-ing –  Integration ab Cordova iOS 4.0 –  Buggy •  Chromium-basierte Web View in Android –  CrossWalk Projekt –  Cordova Integration
  10. nw.js •  AKA node-webkit –  Open Source Projekt von Intel

    •  Tool zum Erstellen von nativen Desktop- Anwendungen basierend auf HTML5 & JavaScript Code –  Windows –  Linux –  MacOSX •  Framework zur Anbindung von node.js Code für native Plattform-Features
  11. ASP.NET Web API & SignalR – mit Mono •  Web

    API 2 & SignalR 2 laufen auch unter Mono (3.12) –  Windows, MacOSX und Linux •  Self-Hosted –  Web-Hosted hat Bugs •  Einschränkungen –  OWIN & IPrincipal- Verhalten –  CORS geht nicht –  Keine Web Sockets
  12. ASP.NET 5 (aka vNext) •  Nächste Version von ASP.NET trägt

    Version 5 •  Lauffähig mit .NET 4.6, Mono oder CoreCLR •  MVCs nächste Ausprägung heißt 6 •  Web API gibt es nicht mehr (als eigenständiges Framework) –  Integriert in MVC: Routing, Controller & Co. •  SignalR weiterhin als eigener Baustein
  13. ASP.NET Web API in MVC 6 •  Neue OWIN-Implementierung • 

    Komplette Integration in MVC-Services- Welt •  Ableitung von Basis-Controller nicht mehr notwendig – Hilfreiche Properties und Methoden jedoch auf Basisklasse •  „One ASP.NET“
  14. Cross-Plattform Datenbank •  SQL für klassische Relationen-getriebene Daten, schema-basiert • 

    SQL Server läuft aber nicht unter MacOS und Linux •  NoSQL für schema-freie Daten –  Unterschiedliche Ausprägungen: bspw. Dokumente, Name-Value-Paare, Graphen •  SQL Server kann aber kein NoSQL
  15. PostgreSql •  Open Source, etabliert seit 1996 •  Läuft unter

    Windows und Linux •  Stärken im klassischen SQL-Umfeld •  Unterstützt seit Version 9.3 auch Dokumenten-basiertes NoSQL mit JSON & JSONB •  npgsql Treiber für .NET –  mit ADO.NET API –  unterstützt Entity Framework
  16. Ressourcen •  Demos aus Session & Workshop –  https://github.com/thinktecture/mtc-spring-2015-workshop • 

    AngularJS –  https://angularjs.org/ •  Cordova –  http://cordova.apache.org/ •  CrossWalk for Cordova –  https://crosswalk-project.org/documentation/cordova.html •  nw.js (aka node-webkit) –  http://nwjs.io/
  17. Ressourcen •  ASP.NET Web API –  http://www.asp.net/web-api •  ASP.NET SignalR

    –  http://www.asp.net/signalr •  Mono –  http://www.mono-project.com/ •  Npgsql - .Net Data Provider for Postgresql –  http://npgsql.projects.pgfoundry.org/