Vorteile und Nachteile von AngularJS
AngularJS (im Beitrag auch Angular genannt) ist eines der beliebtesten JavaScript Frameworks. Hier gehen wir auf einige Vorteile und Nachteile ein.
Was ist dieses Framework?
Das Framework wurde von Misko Hevery im Jahr 2009 begründet. Die anfängliche Idee war es, Webdesigner dabei zu unterstützen, ein wenig mehr HTML in deren Code unterzubringen, so dass auch kleine statische Seiten, mehr Funktionalitäten bedienen können. Zum Beispiel eine kleine Pizzaladen-Website, welches ein Pizza-Bestellsystem über einfache HTML Tags einfügen kann.
Misko wechselte dann zu Google als Arbeitgeber, wo er in seiner freien Zeit weiter an AngularJS arbeitete. Zu diesem Zeitpunkt war jedoch der Gedanke, dieses Framework auch für grössere Seiten zu nutzen. Auch Google übezeugte die Idee mit der Zeit und baute dann ein Angular Team auf.
Kurzgesagt: Das Framework macht Webbrowser zu Webapplikationen.
Vorteile:
- Teil des MEAN Stack: Angular ist Teil des MEAN Technologie Stacks. MEAN steht für (M) MongoDB, (E) EmberJS, (A) AngularJS an noSQL. Mit dem MEAN Stack lassen sich Web Applikationen schreiben, unter der Nutzung einer Sprache, nämlich JavaScript. Der Vorteil hierbei ist, dass alles was entwickelt wird, auf jeder Stufe (Frontend, Backend, Datenbank) auf dieser einen Sprache basiert. Zudem ist die komplette Technologie Open Source und damit Lizenzfrei.
- MVC: MVC steht für Model Viewer Controller und ist ein Ansatz, um die Programmierlogik (Backend) und die Designlogik (Frontend) voneinander zu trennen. Es ist hiermit einfacher, Programmierungen im Backend vorzunehmen, ohne unbedingt das Design der Applikation zu ändern.
Angular folgt diesem MVC Ansatz.
Üblicherweise muss man im MVC Ansatz, die Anwendung in die verschiedenen Komponenten (Model/ Viewer/ Controller) aufteilen und danach Code schreiben, um diese wieder zusammenzufügen. Das macht eine Menge Arbeit. In Angular kann man sich zumindest den Teil des Zusammenfügens sparen, da das Framework dies bereits automatisch ausführt.
- Single Page Applikation: Mit dem Framework lassen sich Single Page Applikationen schreiben. Hierbei wird die Seite nur einmal geladen und weitere Komponenten werden in die gleiche Seite geladen, sobald dies vom Nutzer aufgerufen werden. Hierdurch bekommt die Webanwendung das “Look and Feel” einer Desktopanwendung.
- Grosse Teams können daran arbeiten: Im herkömmlichen JavaScript Framework ist es fast unmöglich in grossen Teams zusammenzuarbeiten. Angular hat dieses Problem behoben und macht es möglich, dass viele Entwickler gleichzeitig daran Coden und Testen können, ohne sich dabei gegenseitig auf die Füsse zu treten.
- Das Framework ist im Trend: Google Trends hilft, unterschiedliche Begriffe in ihrer Popularität zu vergleichen. Stellt man Angular, KnockoutJS, EmberJS und reactJS in den direkten Vergleich auf Google Trends, dann sieht man den enormen Unterschied in der Popularität. Besonders ab 2013 geht die Kurve steil aufwärts.
- Einfacheres Testing möglich: Man kann das Framework von Anfang nutzen, um ein einfaches Testing durchführen. Man kann das sogenannte Unit Testing durchführen oder auch ein End-to-end Testing. Dabei können wenige Entwickler, als auch ein grosses Team involviert sein.
- Stark im Zusammenhang mit Ruby on Rails oder ASP.NET: Ruby on Rails oder ASP.NET Framework mit der C# Programmiersprache im Backend und Angular im Frontend ergänzen sich gut.
Nachteile:
- Wird nicht in alten Browsern unterstützt: Besonders die neue Version AngularJS 2.0 wird ältere Versionen von Browsern nicht mehr unterstützen. Das ist eine Herausforderungen, besonders auch weil in vielen Grossunternehmen noch alte Versionen von Browsern genutzt werden.
- Für kleinere Projekte gibt es alternative Frameworks: Nicht alle Websiten benötigen robuste Frameworks wie Angular. In vielen Fällen reichen einfachere leichtgewichtigere Frameworks wie Backbone.js.
- Es ist gross und kompliziert: Das Framework sollte eher von Profis, als von Anfängern bedient werden (oder zumindest braucht man einiges an Zeit sich darin einzuarbeiten). Zudem haben unterschiedliche Programmierer unterschiedliche Ansätze eine bestimmte Komponente umzusetzen. Dies macht es dann schlussendlich schwieriger unterschiedliche Komponenten von unterschiedlichen Entwicklern zu einer kompletten Lösung zusammenzufügen.
- Schlechte Skalierbarkeit: Wenn das Projekt mit der Zeit grösser wird, dann wird es in vielen Notwendig, die Programmierung auf Grundlage der neuen Anforderung zu erstellen, da der frühere Ansatz für die neuen Anforderungen höchstwahrscheinlich nicht genügen werden.
- Viele Probleme werden erst mit Angular 2.0 gelöst: Viele der Nachteile werden erst mit der neuen Version dieses interessanten Frameworks behoben.
Fazit
Sehr viele ASP.NET Projekte nutzen derzeit dieses Framework, um Single Page Applikationen zu schreiben.
Viele Apps und Webseiten werden basierend auf Angular erstellt. Hier ein paar Beispiele:
- Die Youtube App auf der Play Station 3 auf dieser Technologie aufgebaut.
- VEVO, ein Music Streaming Service mit mehr als 10 Milliarden Anzeigen pro Monat, läuft mit der Technologie im Frontend.
- Weitere Beispiele sind iStock Photo und PayPal.
Was ist Ihre Erfahrung? Wo und wann lässt sich diese Technologie am besten einsetzen?
Interessante Links:
Ein Erfahrungsbericht
Mehr Informationen zu Angular
Bilder: Flickr.com/ HasGeek/ Google Trends
Der Autor: Sascha Thattil arbeitet bei YUHIRO und hilft Unternehmern und Unternehmen beim einfachen Aufbau von Programmier-Teams in Indien. YUHIRO ist ein deutsch-indisches Unternehmen welches IT Firmen, Agenturen und IT Abteilungen Softwareentwickler bereitstellt.
Schreibe einen Kommentar