In der Welt der Datenbanken helfen verschiedene Werkzeuge beim Tracken, Versionieren und Deployen von Änderungen. In diesem Beitrag betrachten wir die Datenbank-Versionkontrolle Liquibase genauer.
In größeren Projekten wird Vue.js vorwiegend als Frontend eingesetzt. Die Kommunikation mit Backend und APIs anderer Service-Anbieter erfolgt über HTTP-Aufrufe, meist im JSON-Format. Hier realisieren wir solche HTTP-Requests mit der JavaScript-Fetch API sowie dem HTTP-Client Axios.
Visual Studio Code ist der beliebteste Code-Editor für JavaScript und somit auch für Angular- oder Vue-Projekte. Der Editor birgt einige innovative Features. Eines davon ist die Möglichkeit, den Quellcode remote zu bearbeiten – auf anderen Maschinen, in Containern oder im Windows Subsystem for Linux.
Web-Anwendungen lassen sich mit Standards wie OAuth 2.0, OpenID Connect, JWT oder SAML 2.0 absichern. Produktionsreife Anwendungen wie Keycloak von Red Hat sind allerdings einfacher zu implementieren. Dieser Beitrag zeigt, wie sich Vue-Anwendungen damit absichern lassen.
Im fünften Teil der Vue.js-Reihe haben wir die Props-Übergabe vorgestellt, die sich aber nur für einfache Übergaben eignet. Slots hingegen injizieren ganze UI-Elemente in Child-Komponenten, wie dieser Beitrag zeigt.
Für Vue.js, das Prototyping und Rapid Development zelebriert, sind lange Build-Zeiten unhaltbar. Das Tool Vite soll als Development-Server und Build Tool den Build-Prozess gegenüber anderen Lösungen deutlich beschleunigen.
Für Vue.js existieren großartige Lösungen, die den Entwickler beim Testing unterstützen. Dieser Beitrag beschäftigt sich mit Unit-Tests auf Basis der Vue Test Utils, das Ende-zu-Ende-Testing thematisieren wir dann in einem der kommenden Artikel.
Der von Github entworfene Atom-Editor war der Grund für die Entwicklung des bekannten Electron-Frameworks und bildet somit auch für Visual Studio Code die Basis. Nun ist das Ende von Atom besiegelt – und VSCode könnte in einigen Fällen die Nachfolge antreten.
Eingabeformulare von Hand zu überprüfen, ist aufwendig und fehlerträchtig. Für diese Standardaufgabe bietet sich bei Vue.js-Anwendungen die Bibliothek VeeValidate an.
Wie die UI-Bibliothek Vuetify funktioniert, haben wir bereits besprochen. Nun wollen wir ein typisches Kontaktdatenformular entwickeln, das verschiedene Vuetify-Komponenten beinhaltet und Eingaben auch validiert.
Vue.js nimmt Web-Developern viel Arbeit ab, allerdings nicht beim User Interface Design. Wer alleine auf HTML und CSS setzt, muss viel Hand anlegen. Einfacher geht es mit der UI-Bibliothek Vuetify.
Seit Version 3 des Vue.js-Frameworks steht Entwicklern und Entwicklerinnen die Composition API zur Realisierung ihrer Anwendungen zur Verfügung. Vor allem bei größeren Komponenten soll die neue Programmierschnittstelle ür mehr Ordnung sorgen.
Wer beim Debugging allein auf Log-Ausgaben setzt, verschenkt auch im Vue.js-Framework Zeit und Entwicklungskomfort. Von der universell einsetzbaren JavaScript-Konsole bis zu den hoch spezialisierten Vue.js-Devtools.
Wer Daten innerhalb ihrer Vue-Komponenten automatisiert ändern oder andere Aktionen auslösen möchte, kann hierfür Computed Properties und Watcher nutzen. Hier zeigen wir, wie sich diese beiden Funktionen nutzen lassen.
Alle Komponenten einer Vue-Anwendung müssen Daten austauschen können. Wie diese Kommunikation über so genannte Properties und Events realisiert wird, schauen wir uns in diesem Teil der Vue.js-Reihe an.
Zu den Komponenten von Vue-Anwendungen können ganze Unterseiten gehören, die über das Router-Plug-in erreichbar gemacht werden. Wie das Routing umgesetzt wird, ist Thema dieses Artikels.
In Microservice-Umgebungen ist es hilfreich, wenn bestimmte Funktionalitäten wie zum Beispiel Authentifizierung, Logging oder das Erfassen von Metriken über alle Dienste hinweg funktionieren; und das – bei mehreren Entwicklungsteams – auch noch auf die gleiche Art und Weise.
Im dritten Teil der Vue-Reihe dreht sich alles um Direktiven. Dabei handelt es sich um spezielle Kennzeichnungen im HTML-Code, die es ermöglichen, mithilfe von JavaScript-Ausdrücken die Erzeugung von DOM-Elementen zu beeinflussen.
Dieser Vue-Beitrag wird bereits etwas Tool-lastiger: Mit Vue CLI, dem Command Line Interface, generieren wir eine komplette Anwendung und schauen uns an, wie die einzelnen Bestandteile zusammenhängen.
Auf der Suche nach einem JavaScript-Framework stolpert man zwangsläufig über die drei Vertreter Angular, React und Vue.js. In dieser Reihe stellen wir mit Vue das jüngste und vermutlich am leichtesten zu erlernende Webframework vor.
Der Betrieb von Microservices hat allein schon wegen der Masse an verschiedenen Diensten seine eigenen Tücken. Eine zentralisierte Konfiguration mit dem Spring Config Server nimmt einem viel Arbeit ab.
In Spring Cloud sind Werkzeuge enthalten, welche die Arbeit mit Microservices erleichtern. Wir stellen beginnend mit dem Service-Discovery-Dienst Eureka einige dieser Tools vor.
Das Thema Sicherheit steht bei vielen Unternehmen ganz oben auf der Agenda. Mit der grundlegenden Absicherung von Spring-Projekten befassen wir uns im vorerst letzten Beitrag dieser Serie.
Wer ein Spring-Boot-Projekt mit dem Initializr anlegt, hat anschließend Zugriff auf jede Menge Test-Werkzeuge – darunter Junit und Assertj. Software-Testing genießt hier also schon einen gewissen Stellenwert.
Als Provider haben wir im vorigen Beitrag dieser Serie einen Webservice zur Verfügung gestellt. Nun schauen wir uns die Gegenseite, den Consumer-Part an. Grundlage ist ein neues unabhängiges Spring-Boot-Projekt mit den Abhängigkeiten Spring Web und Lombok.
Eine REST-API gehört für viele Webprojekte inzwischen zum guten Ton. Mit ihr lassen sich beispielsweise Twitter-Tweets abfragen oder Kryptowährungen automatisiert handeln. Spring Boot bietet dafür eine Menge Unterstützung an.
Das PagingAndSorting-Repository von Spring, mit dessen Hilfe sich Datenbankabfragen in Pages unterteilen lassen, haben wir uns im vorangegangenen Beitrag angesehen. Die Anbindung des Repositories an eine Webseite ist Inhalt dieses Artikels.
Das Sortieren und Paginieren großer Datenmengen ist auf Webseiten unerlässlich, um Übersicht und Performance zu gewährleisten. Spring Boot hält hierfür spezialisierte Repositories bereit.
Spring-Boot-Anwendungen lassen sich wie gezeigt mit dem Actuator überwachen. Hierfür gibt es zusätzliche Erweiterungen wie „Spring Boot Admin“, die sich um das Aufrufen der Endpunkte und die Datenvisualisierung kümmern.
Im ersten Teil unserer Serie zu Spring Boot haben wir ein Projekt aufgesetzt und dem Service eine erste Ausgabe entlockt. In diesem Beitrag geht es um Views, sprich Webseiten, die in Spring gerne mit Thymeleaf erstellt werden.
Das Spring-Framework gehört, genau wie Java, inzwischen eher zum Softwareentwicklungs-Establishment. Dank Erweiterungen wie Spring Boot, das wir in dieser Serie vorstellen, ist es aber immer noch auf der Höhe der Zeit.
Der Dependency-Injection-Container bildet das Herz von Spring. Dieser kann verschiedene Komponenten verwalten, darunter natürlich auch Java Beans. Die Konfiguration dieser Beans erfolgt zeitgemäß und typsicher mit Hilfe einer Java-Klasse.
Eine belastbare Architektur ist die Grundlage für größere Anwendungen. Auch unter Spring Boot helfen Service-Komponenten und Data-Transfer-Objekte, den Code wartbar und erweiterbar zu halten.
Dependency Injection gehört zu den fundamentalen Konzepten von Spring. Set-Methoden erlaubten dies schon in der allerersten Framework-Version. Als Alternativen kamen später Konstruktor- und Field-Injektion hinzu. Aber welchen Typ nutzt man wann?
In unseren Spring-Boot-Artikeln haben wir bisher nur im Code erzeugte, statische Testdaten an Views übergeben. Echte Datensätze kommen aber in der Regel aus Datenbanken. Im dritten Teil dieser Reihe realisieren wir deshalb eine Datenbankanbindung.
Die Überwachung von Anwendungen übernimmt im Falle von Spring Boot der Actuator. Das Monitoring-Tool liefert über so genannte Endpoints allerlei hilfreiche Informationen zum Zustand der Spring-Applikation.
Properties sind Key-Value-Paare, mit deren Hilfe sich Spring-Anwendungen konfigurieren lassen. Die einfachste Möglichkeit, Properties festzulegen, ist ein Properties-File. Ein solches schauen wir uns im Folgenden genauer an.
Grundlegende find-Methoden wie findById() oder findAll() haben wir im vorhergehenden Teil dieser Reihe vorgestellt. In der Praxis sind Datenbankabfragen meist komplexer, Personen wird man beispielsweise mit Namen und Geburtsdatum suchen. Spring Data bietet dazu verschiedene Möglichkeiten, die wir hier vorstellen.
Spring-Boot-Anwendungen lassen sich wie gezeigt mit dem Actuator überwachen. Hierfür gibt es zusätzliche Erweiterungen wie „Spring Boot Admin“, die sich um das Aufrufen der Endpunkte und die Datenvisualisierung kümmern.
Der von Github entworfene Atom-Editor war der Grund für die Entwicklung des bekannten Electron-Frameworks und bildet somit auch für Visual Studio Code die Basis. Nun ist das Ende von Atom besiegelt – und VSCode könnte in einigen Fällen die Nachfolge antreten.
In diesem Beitrag der Spring-Boot-Reihe stellen wir das Projekt Lombok vor. Es hat nichts mit dem Framework zu tun, arbeitet aber perfekt damit zusammen und verfolgt das gleiche Ziel: Weg von aufgeblasenem Quellcode, hin zu schlanken wartbaren Projekten.
In Spring Cloud sind Werkzeuge enthalten, welche die Arbeit mit Microservices erleichtern. Wir stellen beginnend mit dem Service-Discovery-Dienst Eureka einige dieser Tools vor.
Einfache Datenbanken-Abfragen via JPA, Repositories und Derived- und Custom-Queries sind in Spring oft die bevorzugte Methode. Es gibt aber Ausnahmen, zum Beispiel die Wartung von bestehenden Projekten, in denen bereits umfangreicher SQL-Code vorliegt.
Eine REST-API gehört für viele Webprojekte inzwischen zum guten Ton. Mit ihr lassen sich beispielsweise Twitter-Tweets abfragen oder Kryptowährungen automatisiert handeln. Spring Boot bietet dafür eine Menge Unterstützung an.
Der Betrieb von Microservices hat allein schon wegen der Masse an verschiedenen Diensten seine eigenen Tücken. Eine zentralisierte Konfiguration mit dem Spring Config Server nimmt einem viel Arbeit ab.
Verglichen mit der frühen JEE-Entwicklung fühlt sich Spring Boot wie Magie an. So schnell, so intuitiv. Nur wenige Dinge trüben den Coding-Spaß. Muss man den Server denn bei jeder Änderung neu starten? Und könnten sich die Webseiten nicht automatisch aktualisieren?
Nachdem wir im letzten Beitrag der Serie einen Blick auf die Architektur von Spring-Boot-Anwendungen geworfen haben, steht nun die Prüfung von Nutzereingaben auf syntaktische Korrektheit an.
Das Sortieren und Paginieren großer Datenmengen ist auf Webseiten unerlässlich, um Übersicht und Performance zu gewährleisten. Spring Boot hält hierfür spezialisierte Repositories bereit.
Vue.js nimmt Web-Developern viel Arbeit ab, allerdings nicht beim User Interface Design. Wer alleine auf HTML und CSS setzt, muss viel Hand anlegen. Einfacher geht es mit der UI-Bibliothek Vuetify.
In der Softwareentwicklung ist es oft erforderlich, mit mehreren Umgebungen zu arbeiten, etwa Entwicklung oder Produktion. Profile in Spring Boot erlauben es, schnell zwischen den entsprechenden Konfigurationen zu wechseln.
Als Provider haben wir im vorigen Beitrag dieser Serie einen Webservice zur Verfügung gestellt. Nun schauen wir uns die Gegenseite, den Consumer-Part an. Grundlage ist ein neues unabhängiges Spring-Boot-Projekt mit den Abhängigkeiten Spring Web und Lombok.
Wer beim Debugging allein auf Log-Ausgaben setzt, verschenkt auch im Vue.js-Framework Zeit und Entwicklungskomfort. Von der universell einsetzbaren JavaScript-Konsole bis zu den hoch spezialisierten Vue.js-Devtools.
Auf der Suche nach einem JavaScript-Framework stolpert man zwangsläufig über die drei Vertreter Angular, React und Vue.js. In dieser Reihe stellen wir mit Vue das jüngste und vermutlich am leichtesten zu erlernende Webframework vor.
In Microservice-Umgebungen ist es hilfreich, wenn bestimmte Funktionalitäten wie zum Beispiel Authentifizierung, Logging oder das Erfassen von Metriken über alle Dienste hinweg funktionieren; und das – bei mehreren Entwicklungsteams – auch noch auf die gleiche Art und Weise.
In Microservice-Umgebungen ist es hilfreich, wenn bestimmte Funktionalitäten wie zum Beispiel Authentifizierung, Logging oder das Erfassen von Metriken über alle Dienste hinweg funktionieren; und das – bei mehreren Entwicklungsteams – auch noch auf die gleiche Art und Weise.
Das Thema Sicherheit steht bei vielen Unternehmen ganz oben auf der Agenda. Mit der grundlegenden Absicherung von Spring-Projekten befassen wir uns im vorerst letzten Beitrag dieser Serie.
Das PagingAndSorting-Repository von Spring, mit dessen Hilfe sich Datenbankabfragen in Pages unterteilen lassen, haben wir uns im vorangegangenen Beitrag angesehen. Die Anbindung des Repositories an eine Webseite ist Inhalt dieses Artikels.
Web-Anwendungen lassen sich mit Standards wie OAuth 2.0, OpenID Connect, JWT oder SAML 2.0 absichern. Produktionsreife Anwendungen wie Keycloak von Red Hat sind allerdings einfacher zu implementieren. Dieser Beitrag zeigt, wie sich Vue-Anwendungen damit absichern lassen.
Wie die UI-Bibliothek Vuetify funktioniert, haben wir bereits besprochen. Nun wollen wir ein typisches Kontaktdatenformular entwickeln, das verschiedene Vuetify-Komponenten beinhaltet und Eingaben auch validiert.
Für Vue.js, das Prototyping und Rapid Development zelebriert, sind lange Build-Zeiten unhaltbar. Das Tool Vite soll als Development-Server und Build Tool den Build-Prozess gegenüber anderen Lösungen deutlich beschleunigen.
Mit der Klasse JDBCTemplate lassen sich Datenbankabfragen in Spring Boot ohne hässlichen Boilerplate-Code formulieren. Die Klasse kann aber noch mehr als das, was wir im vorangegangenen Beitrag schon gezeigt haben.
Wer ein Spring-Boot-Projekt mit dem Initializr anlegt, hat anschließend Zugriff auf jede Menge Test-Werkzeuge – darunter Junit und Assertj. Software-Testing genießt hier also schon einen gewissen Stellenwert.
Seit Version 3 des Vue.js-Frameworks steht Entwicklern und Entwicklerinnen die Composition API zur Realisierung ihrer Anwendungen zur Verfügung. Vor allem bei größeren Komponenten soll die neue Programmierschnittstelle ür mehr Ordnung sorgen.
Wer Daten innerhalb ihrer Vue-Komponenten automatisiert ändern oder andere Aktionen auslösen möchte, kann hierfür Computed Properties und Watcher nutzen. Hier zeigen wir, wie sich diese beiden Funktionen nutzen lassen.
Dieser Vue-Beitrag wird bereits etwas Tool-lastiger: Mit Vue CLI, dem Command Line Interface, generieren wir eine komplette Anwendung und schauen uns an, wie die einzelnen Bestandteile zusammenhängen.
Eingabeformulare von Hand zu überprüfen, ist aufwendig und fehlerträchtig. Für diese Standardaufgabe bietet sich bei Vue.js-Anwendungen die Bibliothek VeeValidate an.
Im dritten Teil der Vue-Reihe dreht sich alles um Direktiven. Dabei handelt es sich um spezielle Kennzeichnungen im HTML-Code, die es ermöglichen, mithilfe von JavaScript-Ausdrücken die Erzeugung von DOM-Elementen zu beeinflussen.
Zu den Komponenten von Vue-Anwendungen können ganze Unterseiten gehören, die über das Router-Plug-in erreichbar gemacht werden. Wie das Routing umgesetzt wird, ist Thema dieses Artikels.
In der Welt der Datenbanken helfen verschiedene Werkzeuge beim Tracken, Versionieren und Deployen von Änderungen. In diesem Beitrag betrachten wir die Datenbank-Versionkontrolle Liquibase genauer.
Alle Komponenten einer Vue-Anwendung müssen Daten austauschen können. Wie diese Kommunikation über so genannte Properties und Events realisiert wird, schauen wir uns in diesem Teil der Vue.js-Reihe an.
Alle Komponenten einer Vue-Anwendung müssen Daten austauschen können. Wie diese Kommunikation über so genannte Properties und Events realisiert wird, schauen wir uns in diesem Teil der Vue.js-Reihe an.
Visual Studio Code ist der beliebteste Code-Editor für JavaScript und somit auch für Angular- oder Vue-Projekte. Der Editor birgt einige innovative Features. Eines davon ist die Möglichkeit, den Quellcode remote zu bearbeiten – auf anderen Maschinen, in Containern oder im Windows Subsystem for Linux.
Dieser Vue-Beitrag wird bereits etwas Tool-lastiger: Mit Vue CLI, dem Command Line Interface, generieren wir eine komplette Anwendung und schauen uns an, wie die einzelnen Bestandteile zusammenhängen.
Im fünften Teil der Vue.js-Reihe haben wir die Props-Übergabe vorgestellt, die sich aber nur für einfache Übergaben eignet. Slots hingegen injizieren ganze UI-Elemente in Child-Komponenten, wie dieser Beitrag zeigt.
Für Vue.js existieren großartige Lösungen, die den Entwickler beim Testing unterstützen. Dieser Beitrag beschäftigt sich mit Unit-Tests auf Basis der Vue Test Utils, das Ende-zu-Ende-Testing thematisieren wir dann in einem der kommenden Artikel.
Auf der Suche nach einem JavaScript-Framework stolpert man zwangsläufig über die drei Vertreter Angular, React und Vue.js. In dieser Reihe stellen wir mit Vue das jüngste und vermutlich am leichtesten zu erlernende Webframework vor.
Im dritten Teil der Vue-Reihe dreht sich alles um Direktiven. Dabei handelt es sich um spezielle Kennzeichnungen im HTML-Code, die es ermöglichen, mithilfe von JavaScript-Ausdrücken die Erzeugung von DOM-Elementen zu beeinflussen.
Zu den Komponenten von Vue-Anwendungen können ganze Unterseiten gehören, die über das Router-Plug-in erreichbar gemacht werden. Wie das Routing umgesetzt wird, ist Thema dieses Artikels.