Archiv für den Monat August 2015

Bootstrap 4 Alpha – Released


Das es eine neue Bootstrap Version geben wird, war nur eine Frage der Zeit. Vor allem wurde die Alpha Bereits vor einer ganzen Weile angekündigt und nun ist es endlich soweit. Eine erste Alpha Version von Bootstrap 4 wurde veröffentlicht und kann ausprobiert werden.

Sollte es noch Webentwickler geben, die nicht wissen was Bootstrap ist, dann kann ich diesen nur empfehlen, sich spätestens ab Version 4 einmal damit zu beschäftigen. Ich für meine Zwecke setze Bootstrap sehr gerne in kleinen Privaten Projekten ein oder für interne Webseiten. Denn mit Bootstrap kann man sich auf das wesentliche als Entwickler konzentrieren und dabei handelt es sich nun einmal um das Entwickeln und nicht das Stylen. Aber mit Bootstrap sieht das ganze dann trotzdem sehr elegant aus, egal wie klein das Webprojekt auch ist.

Mit Bootstrap Version 4 hat sich einiges geändert, aber zum Glück nicht komplett alles. Leider entfallen die Panels komplett und werden durch so genannte Cards ersetzt. Da ich aber ein Exzessiver Nutzer von Panels bin, muss ich hier mal genau untersuchen wie gut sich die Panels zu Cards Migrieren lassen. Sonst scheint es aber keine großen Überraschungen zu geben, was neue Controls oder Styles angeht, hier scheint beim ersten durchgehen der neuen Dokumentation vieles beim alten zu bleiben, bis auf ein paar kleine Namensanpassungen. Außerdem setzt Bootstrap 4 jetzt in der neuen Version auf Sass statt auf Less, außerdem setzt man jetzt vermehrt auf “rem” und “em” als Maßeinheit statt auf Pixel.

Daher bin ich mal gespannt wie lange der Finale Release jetzt noch auf sich warten lässt und freue mich schon meine Webseiten mit Bootstrap 4 zu erstellen.

Zwei Monate mit TypeScript und AngularJs – meine Erfahrungen


Nachdem ich nun seit gut zwei Monaten TypeScript in Verbindung mit AngularJs 1.x  einsetze, frage ich mich immer wieder “wie konnte ich bisher nur ohne TypeScript auskommen”. Denn bis vor zwei Monaten habe ich AngularJs mit plain JavaScript programmiert.

Aber was ist eigentlich das coole was das ganze so einzigartig für mich macht?

Dazu muss gesagt werden ich erstelle meine Projekte in Visual Studio 2013 mit Resharper 9.x mit ASP.NET MVC und setze dabei weiterhin die MVC Views ein und die Standard Controller für die AJAX Requests, denn aktuell bietet mir die Web API in meinen Projekten keinen Mehrwert. Dazu verwende ich dann TypeLite  um mir aus meinen .NET Klassen die passenden TypeScript Interfaces für z.B.: meine AngularJs ViewModels zu erstellen. Durch TypeLite wird das ganze Zusammenspiel von .NET und TypeScript zu einer wahren Freude, denn meine AngularJS Services geben jetzt bestimmte Typen zurück oder nehmen nur bestimmte POST Models entgegen und dadurch habe mich mir bereits unzählige kleine Bugs erspart und vor allem das ständige Wechseln zwischen AngularJs Controller und .NET Klassen um zu prüfen wie das Property heißt auf welches man gerade zugreifen möchte erspart man sich damit komplett. Dadurch ist man an dieser Stelle bereits um ein vielfaches produktiver als mit purem JavaScript. Auch das Einarbeiten neuer Mitarbeiter in bestehende Projekte mit TypeScript ist entspannter/einfacher als, wenn sich dieser in den JavaScript Code einarbeiten müsste, denn durch die IntelliSense weiß dieser zu jedem Zeitpunkt um welches .NET oder TypeScript Objekt es sich handelt auf das er zugreifen möchte und muss dies nicht erst umständlich suchen um zu wissen welche Properties es gibt.

Das war aber noch nicht alles, denn auch die reine Clientseitige Programmierung hat sich dadurch bei mir noch einmal stark verbessert, denn auch hier kann man jetzt wunderbar Klassen und Interfaces erstellen und die richtigen Typen übergeben und durch IntelliSense weiß man immer welche Properties oder Funktionen eine Klasse bereitstellt. Außerdem kann man jetzt wunderbar auch mal einzelne Properties umbenennen ohne Angst zu haben das man etwas vergessen hat, denn das übernimmt jetzt Visual Studio/Resharper.

Auch die Migration von bereits bestehenden Projekten auf TypeScript war bei mir bisher kein Problem, bzw. hat sich als viel einfacher herausgestellt als erwartet. Dabei handelte es sich immer um bestehende AngularJS JavaScript Projekte in ASP.NET MVC. Denn schon alleine die Umstellung der Services auf Typisierte Services macht bestehende Projekte gleich wieder viel wartbarer. Als ersten Schritt bei einer Umstellung habe ich primär erst einmal alle *.js Dateien in *.ts umbenannt, die Services typisiert  und mit TypeLite einfach die passenden TypeScript Interfaces generieren lassen. Wenn ich dann an bestehenden Programmteilen Veränderungen vornehmen musste, habe ich hier die passenden Interfaces übergeben bzw. auf den Typisierten Service zugegriffen.

Wie jede Technologie hat aber auch TypeScript seine “Schattenseiten”, denn man muss sich auch hier in eine neue Technologie einarbeiten und man schafft eine weitere Ebene in seiner Architektur die auch andere verstehen müssen bzw. die gewartet und gepflegt werden muss. Außerdem gibt es auch hier und da noch ein paar kleinere Fallstrike in die man sich entsprechend einlesen muss, diese waren aber bisher immer lösbar und solche Probleme hat man mit jeder neuen Technologie.

Den größten Aufwand habe ich aber betrieben um bei der Umstellung von JavaScript auf TypeScript auch in meinen AngularJs Projekten meine Controller und Direktiven in Klassen zu verpacken, damit man auch alle Vorteile von TypeScript nutzen kann.

Wie zu Beginn meinen Eintrags bereits erwähnt, frage ich mich heute wie ich bisher ohne TypeScript auskommen konnte. Daher kann ich nur jedem JavaScript Entwickler empfehlen sich einmal TypeScript anzuschauen und nicht nur für AngularJS Projekte, sondern für jede Art von JavaScript Projekt. Die Einarbeitung in TypeScript lohnt sich und hier braucht man auch nicht sehr viel Zeit investieren um die ersten Vorteile nutzen zu können.