We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Ngeo: OpenLayers meets Angular

00:00

Formale Metadaten

Titel
Ngeo: OpenLayers meets Angular
Serientitel
Anzahl der Teile
68
Autor
Lizenz
CC-Namensnennung 3.0 Deutschland:
Sie dürfen das Werk bzw. den Inhalt zu jedem legalen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen.
Identifikatoren
Herausgeber
Erscheinungsjahr
Sprache

Inhaltliche Metadaten

Fachgebiet
Genre
Abstract
OpenLayers 3 ist eine ausgereifte und stabile JavaScript Kartenbibliothek, die auch anspruchsvolle Applikationen ermöglicht. AngularJS ist eines der beliebtesten Frameworks im Bereich der Single-Page-Webanwendungen, und wird allgemein für die Entwicklung von modularem Frontend-Code eingesetzt. Dieser Vortrag gibt einen Einblick in Ngeo, einer Open-Source-JavaScript-Bibliothek, die eine Kombination der Funktionalität von OpenLayers und der Modularität von AngularJS ermöglicht. Ngeo stellt AngularJS Services und Komponenten zur Verfügung, die als Bausteine für GIS-Webanwendungen benutzt werden können. Anhand von konkreten Codebeispielen wird aufgezeigt, wie Ngeo die Softwareentwicklung vereinfacht. Wir erklären die Guidelines, die wir aufgestellt haben, um AngularJS produktiv zu nutzen. Wir haben die Erfahrung gemacht, dass es äußerst wichtig ist, sich den Best-Practice-Vorgaben von AngularJS laufend anzupassen und zu dokumentieren, wie sie sich auf unsere Bibliothek auswirken. Damit erreichen wir, dass die Bibliothek für Applikationsentwickler eine einheitliche Schnittstelle zur Verfügung stellt. In Anbetracht der raschen Entwicklungen im JavaScript-Ökosystem, namentlich ECMAScript 2015 und 2016, TypeScript und der kürzlichen Veröffentlichung von Angular 2, werden wir auch kurz darauf eingehen, wie wir den Herausforderungen einer Umgebung begegnen, die sich ständig verändert.
Schlagwörter
1
Vorschaubild
13:04
24
39
58
59
Vorschaubild
36:34
GeodateninfrastrukturDivergente ReiheVorlesung/Konferenz
Open SourceBrowserHTTPSkript <Programm>MAPDatenmodellVersion <Informatik>HTMLMagnetbandlaufwerkZoomSystemplattformDateiformatJavaScriptFRAMEWORK <Programm>ChipkarteVerschlingungSoftwareentwicklerVersion <Informatik>InternetZusammenhang <Mathematik>CodeBindung <Stochastik>ProgramminspektionHaar-MaßComputeranimation
Demoszene <Programmierung>HTTPZeichenketteEin-AusgabeRichtungVariableDisplayBindung <Stochastik>Attributierte GrammatikGRADEKomponente <Software>AnwendungssoftwareChipkarteVerschlingungVervollständigung <Mathematik>QuellcodeReiheJavaScriptCodeViewerAutomat <Automatentheorie>Computeranimation
ZeichenketteDemoszene <Programmierung>HTMLHTTPCodeGoogleCompilerKomponente <Software>CodePolygonCompilerBrowserVersion <Informatik>AnwendungssoftwareVerschlingungInformationJavaScriptWeb-SeiteVerfügbarkeitGeometrieWeb SiteXMLComputeranimation
AnwendungssoftwareVersion <Informatik>Komponente <Software>Zusammenhang <Mathematik>CodeElementargeometrieSchätzfunktionBimodulPotenzialfunktionParallelenTemplateJSONXMLUMLVorlesung/Konferenz
Transkript: Deutsch(automatisch erzeugt)
Ja, einen schönen guten Morgen allerseits. Ich darf heute grüßen zum 2. Arbeitpostis. Mein Name ist Andreas Neumann. Ich komme mit Arbeit, mit dem Kampenzug, mit den Fakten. Und ich bin heute Morgen der 2. Chair des 1. Serien.
Und wir haben 3 Vorträge. Der erste und der dritte ist zum Thema Webis. Und der mittlere ist über GDI. Und ich darf euch zuerst vorstellen, Omar Troller. Er ist Diplomatiker.
Er arbeitet für die Firma Camp2Camp, die ja in Boskis und Welt bekannt ist, in Lausanne. Und er wird über die Kombination OpenLayers mit AngularJS, über das NTU framework reden. Bitte.
Dankeschön und guten Morgen auch von meiner Seite. Das ist mein erster Vortrag an einer Konferenz. Das finde ich ein bisschen markös. Ich mache jetzt gleich zuerst eine Doktorungsübung mit euch an. Und zwar ist es eine Umfrage. Also die erste Frage ist zur Kalibration. Wer ist alles anwesend? Das müssen dann alle sein.
Und dann die weiteren Fragen sind, wer hat schon mal mit OpenLayers eine Umgebung? Wer ist Angular? Das sind OpenLayers deutlich mehr als Angular. Hat jemand dann davon auch schon mal mit Engeo entwickelt?
Jemand ein bisschen. Okay, dann macht das auf jeden Fall schön das vorzustellen. Also ich habe jetzt hier die erste Frage, die vielleicht schon mal ein paar Fragen aufwirft. Und zwar ist der Titel Engeo OpenLayers mit Angular. Und die Frage ist jetzt, was ist Engeo?
Das ist ein JavaScript UVP. OpenLayers und Angular sind ebenfalls JavaScript UVP, die ich kurz einführen werde. Dann ist da Roman Zoller, das ist mein Name. Und schlussendlich Camp2Camp, das ist die Firma, wo ich arbeite. Camp2Camp ist eine Software-Filma, eine Open Source-Firma, aktiv in der Reiche von der anderen.
Wo ich springe, auch zusammen in der Schweiz. Wir haben auch ein Büro in Schongberg im Frankreich und seit kurzem auch in Wolken in der Holzstraße. Ich werde jetzt zuerst kurz OpenLayers und Angular einführen, um dann natürlich zu Engeo zu kommen.
OpenLayers wurde ja gestern auch schon vorgestellt und ist wahrscheinlich weitgehend bekannt. Hier ist dann noch ein kurzen Überblick. OpenLayers ist eine JavaScript-Bibliothek, die es auf einfache Weise ermöglicht, Karten im Internet anzuzeigen.
Normalerweise sind das Wasp-Daten, die in Karten geladen werden. Und man kann nicht nur die Karte selber anzeigen, sondern OpenLayers und auch mit diversen Features. OpenLayers funktioniert auf allen möglichen Plattformen.
Aber auch on the mobile-Telefone, auch mit Touch-Interfaces. Es ist genau Vector, der in diversen Formaten laden kann. Es kann auch, je nach Plattform, auch in den Rendering-Engines benutzen. Ob das alles noch nicht genug ist, lief es dann auch in diversen Fragments.
Die Grundidee ist, dass man damit mit wenigen ganz wenigen Zeilen html und JavaScript-Code eine Karte einbinden kann. Ich werde das jetzt auch kurz zeigen, um Ihnen das zu beweisen. Und zwar ist das, html und JavaScript-Code, meine Karte einzubinden.
Ich werde das jetzt kurz von oben nach unten erklären. Also zuerst kommt da... zuerst da ist da oben der Container-Karte. Also das wichtigste ist, dass da IE gleich match steht.
Und dann kommt hier der Cloud-Recto. Und was macht der? Der sagt, ich möchte eine neue Karte erstellen, die die Karte hat. Layers, und zwar nur eins. Das ist eine Karte-Layer. Und als Datenquelle möchte ich hohe Streamer nutzen. Dann muss man den New definieren.
Das ist die Anzeige. Dann kann man jetzt hier zentrieren auf die Karten 0,0. Und Zoom 2 heißt, ich möchte die ganze Welt sehen. Und dann hier am Ende, ganz wichtig, dieses Target-Map. Das ist die IE.
Das heißt, ich möchte die Karte instanzieren in diesem Event, das ich hier oben debiliert habe. Wenn man das laufen lässt, sieht das dann so aus. Da kommt also eine Karte, die schon diverse Videos hat. Die kann man auch mit Zoom machen. Und kann auch aus Collins und Zoom. Und man kann damit die ganze Welt sehen in diesen wenigen Zeiten.
Weil das ein bisschen beeinfacht ist, muss man da natürlich noch die... die Open-Layers-Bibliothek und das CSS, das dazu gehört, einwenden. Aber grundsätzlich ist das eigentlich die ganze Anlehnung.
Dann kommen wir auch schon zur Angular-PS. Angular-PS ist ein geliebtes Framework für Single-Page-Neuanwendungen. Daran sind vielleicht Leute geliebt, wenn man sieht, was das genau heißt. Also im Unterschied zu einfachen Websites, wo man klickt und dann lädt sich die ganze Seite neu.
Wenn man einen Link anklickt, ist eine Single-Page-Anwendung, was man klickt. Und dann wird halt nur ein Teil der Seite neu geladen. Also das hat man mehr... Das fühlt sich mehr auch wie eine Desktop-Anwendung an, dass man wirklich klickt. Zum Beispiel ein Tab oder ein Menü. Und es ändert sich nur was Kleines.
Angular folgt dem Model-View-View-Model-Paradigma. Das ist eine Variante von MVC. Das steht für Model-View-Controller. Und da gibt es dann viele Diskussionen darüber, was jetzt genau da der Unterschied ist. Aber das Wichtige ist eigentlich mit Model-View irgendwas,
ist, dass man die Geschäftslogik von der Anzeige trennen kann. Also das Ziel ist, dass man einen Teil vom Code hat, der die ganze Logik enthält und einen anderen Teil, der dann eigentlich nur die Daten erhält und diese für den Benutzer anzeigt. Bei AngularJS gibt es auch einen Hinweis auf die Version.
Da gibt es die Version 1, die heißt wirklich AngularJS. Die ist immer noch sehr verbreitet. Und dann gibt es inzwischen auch die Version 2, wobei die jetzt auch Semantic Versioning haben. Also das geht dann weiter mit der Version 4, 5, 6 und so weiter. Und die heißt jetzt nur noch Angular. In diesem Vortrag im Zusammenhang mit NGO geht es jetzt vorerst mal um Version 1.
Und ich werde ja dann am Schluss noch mal kurz zurückkommen auf weitere Entwicklungen für eine neuere Version. Ich werde jetzt dazu auch kurz ein Beispiel zeigen, um Angular einzuführen.
Und zwar ist eines der Grundkonzepte, vielleicht das wichtigste Konzept von Angular, diese Zwei-Wege-Datenbindung. Weil mit diesem Model-View-Paradigma stellt sich dann immer die Frage, jetzt habe ich zwar am einen Ort quasi berechnet oder die Daten erhalten,
die ich anzeigen möchte und am anderen Ort möchte ich sie dann anzeigen. Aber wie mache ich die Verknüpfung zwischen den zwei Teilen? Und bei Angular gibt es diese Zwei-Wege-Datenbindung, die in Angular eingebaut ist und die dann eigentlich automatisch die Daten zwischen diesen zwei Teilen hin und her transferiert.
Jetzt habe ich hier ein kurzes Beispiel. Ich werde das auch von oben nach unten erklären. Also eine Art, um eine Angular-Anwendung zu definieren, ist, dass man hier dieses ng-app-Attribut definiert. Was dann dazu führt, wenn man zusammen damit auch die Angular-Bibliothek einbindet,
wird dann Angular alles, den ganzen Quellcode hier analysieren und quasi kompilieren, damit dann diese Automatik mit der Zwei-Wege-Datenbindung funktionieren kann. Wenn man das einmal gemacht hat, dieses Bootstrapping,
dann gibt es dann diese Angular-spezifischen Attribute und Tags, die man da benutzen kann. Wenn ich zum Beispiel da ein Text-Input-Feld habe, kann ich sagen, ng-model search und damit sage ich, dass der Inhalt dieses Text-Inputs automatisch in eine Variable transferiert wird,
die den Namen search hat. Und dann hier, das funktioniert auch in die andere Richtung, dann kann ich diese Variable hier auch benutzen, um diesen Inhalt wieder anzuzeigen. Für Leute, die jetzt nicht Angular kennen und vielleicht schon vorher im JavaScript entwickelt haben,
wissen, dass das ohne Angular ziemlich viel mehr Code wäre. Also da müsste man dann hier beim Input, müsste man da irgendwie einen Callback registrieren und sagen, wenn dieser Input ändert, dann rufe ich diese JavaScript-Funktion auf, die dann wiederum auch hier dieses Element suchen wird und dann das auch irgendwie ersetzen wird.
Also ich kann das jetzt auch kurz zeigen, wie das dann aussieht. Da ist dann dieses Text-Input-Feld und was man auch immer da dann eingibt, das erscheint dann gleich da unten.
So, jetzt hoffe ich, da habe ich ein bisschen einen Überblick verschafft, weshalb diese zwei Bibliotheken separat nützlich sein können. Und die Frage ist jetzt, weshalb möchte man die zusammenbringen oder was gibt es da für Potenzial? Und bei Camp2Camp wurde festgestellt, dass es diverse Projekte gibt,
wo bereits diese zwei Bibliotheken verwendet werden. Und das Ziel von NGO war dann eigentlich, die wichtigsten Open-Layer-Features so zu integrieren, dass sie mit wenig Aufwand in einer Angular-App verwendet werden können. Also da gibt es einerseits mal eben die Einbindung der Grundfunktionen, wie zum Beispiel die Anzeige der Karte.
Und andererseits hat NGO dann aber auch Zusatzfunktionen, die ebenfalls nützlich sein können als Bausteine in G-Swap-Anwendungen. Also da ist zum Beispiel ein Layertree, das sind diverse Interaktionen,
Messen, Zeichnen, Höhenprofil und so weiter. Und dann gibt es auch eine Einbindung der Twitter-Typerhead-Bibliothek für die Autovervollständigung, wo dann auch Resultate direkt auf der Karte angezeigt werden können.
Das Ziel von NGO ist wirklich eigentlich, diese Bausteine bereitzustellen. Und das ist wirklich eine Bibliothek für Entwickler von Angular- und Open-Layers-Applikationen. Also NGO ist keine eigene Anwendung, die man so benutzen kann, sondern das sind wirklich kleine Komponenten, die man in eine Anwendung einbinden kann.
Das bringt auch mit sich, dass NGO kein vorgegebenes Layout enthält. Also NGO kann zwar HTML-Tags generieren oder Inhalt generieren, aber der sieht da nicht besonders gut aus. Also das Ziel ist, dass man so oder so in einer Anwendung ein Layout oder einen Stil definieren muss
und dass man dann NGO einfach anpassen kann an den Stil, der die Anwendung bereits sowieso schon hat. Ich bringe jetzt ja auch ein kurzes Beispiel, um das einzuführen, wie das aussieht, quasi als das einfachste Beispiel.
Das sieht jetzt sehr ähnlich aus wie das Open-Layers-Beispiel von vorhin. Und ich werde das jetzt auch kurz von oben nach unten erklären. Also wir haben jetzt hier dieses NGO-spezifische Attribut.
Also alle NGO-Komponenten haben immer dieses NGO-Prefix, damit es keine Konflikte mit anderen Bibliotheken gibt. Und hier, anstatt zu sagen, dass dieses DIV-Tag, das hat jetzt eine ID, sage ich einfach hier, das ist NGO-Map, sage ich, hier kommt meine Karte hin.
Und in meinem Angular-Controller muss ich dann nur noch diese Karte initialisieren. Das ist wieder eigentlich das genau Gleiche, was ich vorhin gezeigt habe. Der Unterschied ist einfach hier, dass ich zwar auch hier die Layers und den View habe, aber dieses Target-Attribut, das fällt jetzt weg, weil ich hier direkt im View sagen kann,
das ist hier, wo ich meine Karte einbinde, und ich muss da nicht mehr diesen Link mit dem ID-Attribut herstellen. Das sieht dann auch so aus, das ist auch jetzt ein Beispiel, was direkt von der NGO-Website kommt. Das ist quasi das einfachste Einführungsbeispiel.
Ich werde jetzt noch ein paar weiterführende Komponenten von NGO zeigen. Um auch so ein bisschen Überblick zu verschaffen, wie das funktioniert,
wie das auch dokumentiert ist und wie diese Komponenten auch eingebunden werden können. Also da haben wir jetzt ein Beispiel für den Layertree. Das ist jetzt schon ein bisschen komplizierter. Das sind jetzt drei benutzerdefinierte Attribute, also auch wieder alle mit dem NGO-Prefix.
Dann alle mit Layertree, weil die gehören alle zusammen für diesen Layertree-Komponent. Da ist jetzt auch wieder die Referenz auf das Kartenobjekt. Dann ist hier die Grundfunktion, ist die Übergabe des Layertrees.
Also das ist eine Baumstruktur mit Knoten, die jeweils einen Namen haben und dann eine Reihe mit den Knoten, die darin enthalten sind. Und dann schlussendlich hier noch eine Funktion, welche aufgerufen wird,
um für einen bestimmten Knoten das Layer zu erhalten, das dann auch auf der Karte angezeigt wird. Vielleicht macht das mehr Sinn, wenn ich das jetzt auch zeigen kann. Und zwar, wie gesagt, das ist jetzt nicht besonders schön. Das ist halt einfach so eine HTML-Baumstruktur, die da angezeigt wird.
Und die enthält dann alle diese Knoten, die hier in diesem Tree-Objekt übergeben wurden. Und sobald ich dann da einen dieser Knoten anwähle, dann wird der automatisch auf der Karte angezeigt.
Also wenn ich jetzt hier den hier nehme, dann ändert sich auch die Verknüpfung mit der Karte, die wird damit hergestellt, dass ich hier auch dieses Kartenobjekt übergebe,
was ich vorher für diesen Teil der Seite hier initialisiert habe. So, dann haben wir noch zwei weitere Beispiele.
Das ist ein Beispiel für Interaktion. Da gibt es also diverse Komponenten, die es ermöglichen, auf der Karte Punkte, Linien und Polygons zu zeigen. Und die man dann auch wieder im Controller darauf zugreifen kann.
Das ist leider nicht besonders spannend. Ich werde das vielleicht nachher noch interaktiv zeigen. Und dann haben wir ja auch diesen Suchkomponenten, den ich erwähnt habe. Also das ist jetzt hier eine Suche mit Autovervollständigung,
wo dann auch die Karte entsprechend aktualisiert werden kann, sobald man ein Suchresultat auswählt. So, das war jetzt nur ein kurzer Überblick. Was ich auch noch erwähnen möchte,
ist, dass, also erstens war natürlich, die Library ist open source, ist hier unter diesem Link der GitHub verfügbar. Ich glaube, Google-Suche nach NGO funktioniert auch. Also einfach NGO suchen und da kommt man da hin. Und von da sind dann auch verlinkt die Dokumentation und die Beispiele.
Also die Dokumentation sieht so ähnlich aus, wie das, was ich vorhin gezeigt habe für den Leertree. Und die Beispiele sind auch wirklich immer mit der aktuellen Version von NGO kompiliert. Das heißt, es gibt auch eine gewisse Garantie, dass die immer funktionieren. Das wird auch getestet. Und wir freuen uns natürlich auch über Feedback oder über Beiträge dazu.
Jetzt möchte ich noch kurz zeigen, wie NGO dann in größeren Projekten eingebunden werden kann. Also bis jetzt, das war mehr so eine Übersicht der Bausteine. Und wir haben aber natürlich auch größere Projekte, wo wir dann NGO benutzt haben
oder die vielleicht auch der Grund waren, diese Bibliothek überhaupt zu erstellen. Zuerst werde ich kurz zeigen das Geoportal Luxemburg. Und dann möchte ich auch noch erwähnen das Geo Mapfish Projekt. Das ist dann wirklich eine WebGIS-Anwendung, die in der Version 2 auch NGO benutzt.
Da möchte ich nicht allzu viel dazu sagen, weil da gibt es dann auch heute um 17 Uhr hier noch einen Vortrag von meinen Kollegen. Also falls Sie das interessiert, gerne um 17 Uhr hier wieder vorbeikommen. Was ich hier einfach kurz zeigen möchte mit dem Geoportal Luxemburg,
ist, dass hier also wirklich diese Komponenten verwendet werden. Und da Sie sich erinnern von vorhin, dieser Layertree-Komponent, der da ein bisschen roh ausgesehen hat. Das ist also halt da in der Produktion in einem richtigen Projekt, gibt es dann halt CSS-Stil dazu.
Und das ist also auch dieser NGO Layertree-Komponent von vorher, der halt einfach da dann ein bisschen besser aussieht und auch richtigen Inhalt hat. Dann Geo Mapfish, wie gesagt, das ist glaube ich zwar ein Screenshot von der Version 1, aber da eben auf dieser Webseite gibt es dann auch diverse Informationen zur Version 2
und eben heute Nachmittag gibt es da auch noch einen Vortrag dazu. Jetzt nur noch ganz kurzen Ausblick. Das ist jetzt wieder mehr orientiert für Entwickler, für JavaScript-Entwickler,
wie das weitergehen könnte mit NGO. Wir haben jetzt schon die JavaScript-Version ES6 eingeführt. Das funktioniert via Google Closure Compiler, weil die ja von den Browsern noch nicht wirklich unterstützt wird.
Das heißt, der Code wird jetzt schrittweise daran herangeführt und mehr und mehr solcher Features werden darin auch benutzt. Und längerfristig gibt es auch das Ziel, ES6-Module anzubieten. Das hätte dann eben den Vorteil, wie gestern auch schon von OpenLayers erwähnt,
dass man dann auch nur kleine Teile von NGO einbinden kann und dann automatisch eigentlich nur der verwendete Code reingepackt wird, was dann den Vorteil hat, dass man, obwohl man eine große Bibliothek benutzt, vielleicht nur zwei, drei Komponenten daraus zieht
und dann nicht eine Unmenge von JavaScript-Code laden muss auf der Website. Jetzt, wie eben schon am Anfang erwähnt, Angular 2. Ich glaube, das ist wahrscheinlich dieses Jahr noch gerade nicht aktuell, weil Angular 1 immer noch sehr weit verbreitet ist. Und weil halt auch alle Anwendungen, die NGO benutzen,
dann wahrscheinlich auch die Angular-Version updaten müssten. Also das ist wahrscheinlich dann eher ein längerfristiges Projekt, wenn man sagt, jetzt ist Angular 2 wirklich aufgereift und alle Anwendungen können sich auch darauf basieren. Dann werden wir vielleicht nächstes Jahr dann auch langsam anfangen, eine Angular-2-Version von NGO zu erstellen.
Das war es auch schon. Vielen Dank. Vielen Dank für die interessante Präsentation. Gibt es Fragen? Wir haben ein paar Minuten Zeit.
Ich gebe das Mikrofon um, dass man das auch im Video hört. Ja, vielen Dank erstmal für den Vortrag. Ich habe mal eine Frage und zwar zu den Directives. Ist das auch geplant, also jetzt vor allen Dingen vom Ausblick, ich hatte das jetzt im Vortrag noch nicht gesehen, dass es einzelne Directives für die einzelnen Komponenten,
also sowas wie ein Teil-Layer oder WMS-Layer oder für die einzelnen Geometrien gibt oder verarbeite ich das dann doch wirklich immer nur im Code, also in dem jeweiligen JavaScript-Code über den Controller? Soweit ich weiß, ist das bis jetzt nicht geplant.
Was ich schätze oder was ich vermute, ist, dass wahrscheinlich, wenn man anfängt, sowas zu machen, dann muss man irgendwann dann Directiven für alle möglichen Features von Openlayers erstellen und wahrscheinlich wäre das eine riesengroße Arbeit, da irgendwie Dutzende oder Hunderte Directiven dazu zu erstellen.
Und ich glaube, so wie ich das verstanden habe, war das auch der Grund, warum das ursprünglich nicht gemacht wurde. Also das Problem ist halt auch, dass möglicherweise dann diese ganze Arbeit es nicht wert ist, wahrscheinlich.
Ja, ich wollte nachfragen nochmal zur Angular X-Geschichte, weil es ja schon so ist, dass wir sozusagen zwei exzellente Bibliotheken haben,
aber diese Verknüpfung einfach dazwischen, dass dafür eben jetzt keine Anwendung da ist, wie es jetzt eben für NGO, für AngularJS da ist. Ich hatte damals vor kurzem auch eben diese Frage mir gestellt, hatte mir auch NGO angeguckt, hatte jetzt aber dann doch die Entscheidung getroffen, gleich auf Angular 2-Base mich einzuarbeiten,
weil es für mich jetzt dann einfach nicht effizient war, dann sozusagen die Einarbeitungsphase zu machen. Deswegen meine Nachfrage, gibt es irgendwie von Kundenseite schon Wünsche, dass Kunden an euch herantreten, sagen, wir hätten aber gerne irgendwie dann doch, dass irgendwann langfristig auf die neueren Angular-Versionen umgestellt wird, und vielleicht nochmal ein, zwei Sätze,
wo du da Potenziale oder auch Probleme sehen würdest bei der Integration? Also soweit ich weiß, gibt es diese Nachfrage von Kunden bis jetzt nicht.
Zusammen mit Kunden ist es wahrscheinlich eher so, dass wenn die schon eine Lösung haben mit Angular 1, die auch funktioniert, ist es wahrscheinlich auch schwierig, die dann zu überzeugen jetzt irgendwie zu bezahlen, um zum Beispiel da etwas weiterzuentwickeln. In Bezug auf die Integration, ich glaube, es ist nicht unbedingt besonders schwierig,
jetzt diese Library zu nehmen und sie an Angular 2 anzupassen. Also ich glaube auch das Ziel ist erst mal, alle Best Practices von, sagen wir, Angular 1.6 auszuführen und den Code auf Angular 1.6-Standard zu bringen. Und von da ist es dann eigentlich nicht mehr so weit zu Angular 2.
Das Problem ist dann einfach, dass man dann eigentlich zwei parallele Libraries hat. Also man müsste dann entweder entscheiden, dass es wirklich wert ist, die zwei Parallelen weiterzuentwickeln, oder man müsste sagen, jetzt brauchen wir Angular 1 definitiv nicht mehr und wir arbeiten jetzt nur noch mit Angular 2. Und ich glaube, das ist auch das Problem, dass wir dafür bis jetzt noch nicht bereit sind,
dass es halt nicht gemacht wurde. Gibt es noch weitere Fragen?
Ja, vielleicht noch eine Frage auch bezüglich der Angular-Versionen. Das ist ja ein Spannungsfeld, eben man hat es mal im Betrieb, eher konservativ. Die Entwicklung geht sehr schnell weiter. Wo seht ihr die konkreten Vorteile der neuen Versionen
und wie geht ihr damit um, dass die Tag-Frequenzen auch bei der neuen Version meiner Meinung nach recht hoch ist? Also da kamen ja mal zwei, dann, weiß nicht, vier und so weiter. Ja, also ich hätte jetzt auch die Hoffnung, dass zwischen eins und zwei zwar ein relativ großer Unterschied ist,
aber dass mit diesem Semantic Version, obwohl dann die Version ändert, dass dann das wahrscheinlich keine allzu krassen Änderungen mehr sein sollten. Ich glaube, der Vorteil, ich habe bis jetzt auch nur so ein bisschen mich eingelesen in Angular 2 und nicht selber damit entwickelt. Soweit ich das verstehe, ist der Vorteil,
dass man zum Beispiel die Templates schon vorher kompilieren kann und das ziemliche Performance-Vorteile bringt. Und dass man auch mit TypeScript diverse Möglichkeiten hat, zum Beispiel das Type-Checking zu machen. Und ich glaube, auch mit diesen Tools, die es da umgibt, gibt es dann auch diverse Möglichkeiten, eben mit zum Beispiel
den ES6-Modulen auch den Code zu kompilieren, dass dann wirklich nur das Nötige darin ist. Gut, dann möchte ich mich bedanken für den Vortrag und die Fragen.