entwickler.de https://entwickler.de PHP, JavaScript, Windows Development Fri, 28 Feb 2020 13:00:59 +0000 de-DE hourly 1 https://wordpress.org/?v=4.8.3 Rome: Experimentelle JavaScript Toolchain vorgestellt https://entwickler.de/online/javascript/rome-javascript-toolchain-579927958.html https://entwickler.de/online/javascript/rome-javascript-toolchain-579927958.html#respond Fri, 28 Feb 2020 13:00:59 +0000 https://entwickler.de/?p=579927958 Mit Rome hat das React Native Team bei Facebook eine neue, experimentelle Toolchain für JavaScript vorgestellt. Die unter MIT-Lizenz laufende Tool-Sammlung wurde vollständig in TypeScript geschrieben und nutzt keine Third-Party Dependencies.

Der Beitrag Rome: Experimentelle JavaScript Toolchain vorgestellt ist auf entwickler.de erschienen.

]]>
Mit Rome hat das React Native Team bei Facebook eine neue, experimentelle Toolchain für JavaScript vorgestellt. Die unter MIT-Lizenz laufende Tool-Sammlung wurde vollständig in TypeScript geschrieben und nutzt keine Third-Party Dependencies.

Die JavaScript-Toolchain Rome wurde vorgestellt. Unter anderem enthält die Sammlung jeweils einen Compiler, Linter, Formatter, Bundler sowie ein Testing Framework. Alle Tools von Rome wurden benutzerdefiniert angepasst, sodass die Toolchain laut den Entwicklern mehr ist, als eine simple Zusammensetzung von bereits existierenden Tools. Auf Third-Party Dependencies wird komplett verzichtet.

Die Grundidee zu Rome geht auf Sebastian McKenzie zurück, der sich bereits als Autor von Babel und Yarn einen Namen in der JavaScript-Welt machen konnte.

Umgesetzt wird das Projekt vom React Native Team bei Facebook, welches Rome komplett mit TypScript geschrieben hat: das Ergebnis ist ein Monorepo mit internen Packages, welches sowohl die Syntax-Erweiterung JSX als auch den Static Type Checker Flow unterstützt.

Rome: Die Idee hinter der Toolchain

Wie das Entwickler-Team mitteilte, soll Rome eine ganze Reihe von bestehenden JavaScript-Tools ersetzen können – welche im Speziellen wird zurzeit noch nicht beantwortet. Dennoch sind für die Zukunft auch Integrationen für Komponenten anderer Tools eingeplant.

International JavaScript Conference

Effective Microservices Architecture In Node.js

by Tamar Stern (Palto Alto Networks)

React Components And How To Style Them

by Jemima Abu (Telesoftas)

JavaScript Days 2020

Wie ich eine React-Web-App baue

mit Elmar Burke (Blendle) und Hans-Christian Otto (Suora)

Architektur mit JavaScript

mit Golo Roden (the native web)

Ein wichtiger Bestandteil ist der Community-Aspekt. Aus diesem Grund haben sich die Entwickler auch das Thema Transparenz auf die Fahne geschrieben. Die komplette Kommunikation findet über GitHub, Discord und Twitter statt, interessierte Programmierer sind dabei ausdrücklich zur Mitarbeit willkommen. Und es gibt einiges zu tun, da das Projekt bis jetzt noch in den Kinderschuhen steckt und zum jetzigen Zeitpunkt nicht für die Produktion geeignet ist.

Wer die neue JavaScript-Toolchain dennoch ausprobieren möchte, benötigt dafür jediglich die Json-Datei.

Alle Informationen zu Rome finden sich auf GitHub.

Der Beitrag Rome: Experimentelle JavaScript Toolchain vorgestellt ist auf entwickler.de erschienen.

]]>
https://entwickler.de/online/javascript/rome-javascript-toolchain-579927958.html/feed 0
PHP Framework: CodeIgniter 4 soll Meilenstein setzen https://entwickler.de/online/php/php-framework-codeigniter-4-579927950.html https://entwickler.de/online/php/php-framework-codeigniter-4-579927950.html#respond Fri, 28 Feb 2020 11:05:26 +0000 https://entwickler.de/?p=579927950 CodeIgniter möchte als schlank und übersichtlich gehaltenes PHP Webframework wieder zu alter Stärke zurückfinden. Die jetzt veröffentliche Version 4.0 soll ein Meilenstein für die weitere Entwicklung des Frameworks werden.

Der Beitrag PHP Framework: CodeIgniter 4 soll Meilenstein setzen ist auf entwickler.de erschienen.

]]>
CodeIgniter möchte als schlank und übersichtlich gehaltenes PHP Webframework wieder zu alter Stärke zurückfinden. Die jetzt veröffentliche Version 4.0 soll ein Meilenstein für die weitere Entwicklung des Frameworks werden.

CodeIgniter hat eine kleine, aber treue Fanbasis. Es bietet eine relativ kurze Lernkurve, eine stabile API und einen stabilen Code. Vor einigen Jahren stand das Framework mit seiner Community am Scheideweg. Mit Veröffentlichung von Laravel 4 verlor CodeIgniter einen bedeutenden Teil seiner Community. Laravel hatte eine sehr einfache Architektur und folgte einer ähnlichen Designphilosophie wie CodeIgniter. CodeIgniter stagnierte in dieser Phase und bot zudem nicht die vollständige Unterstützung für die neuesten PHP-Funktionen.

International PHP Conference

PHP in 2020: Fully Loaded

by Arne Blankerts (thePHP.cc)

PSR-14: A Major PHP Event

by Larry Garfield (Platform.sh)

Leaving a Legacy

by Ewout Pieter den Ouden (PHPUnit, open source contributor)

JavaScript Days 2020

Wie ich eine React-Web-App baue

mit Elmar Burke (Blendle) und Hans-Christian Otto (Suora)

Architektur mit JavaScript

mit Golo Roden (the native web)

Vor ein paar Jahren wurde CodeIgniter dann vom British Columbia Institute of Technology (BCIT) übernommen und fand den richtigen Weg, um eine stabile Open Source Community wieder für das Framework zu begeistern. Mit einem Community-Team wurde Version 3 zügig fertiggestellt und veröffentlicht. Version 3 war eine inkrementelle Version, die über die neuesten PHP-Funktionen verfügte und die Entwicklung einer einfachen, durchgehenden Anwendung ermöglichte.

Für die jetzt vorliegende Version 4.0 haben sich die Macher des Frameworks viel Zeit gelassen. Doch nun liegt, wenn man den CodeIgniter-News folgt, eine ausgereifte Version vor. Sie enthält wie gewohnt eine einfache MVC-Architektur, ein grundlegendes Routing, echte Klassen und PSR-4 Autoloading. Eine große Übersicht und alle Änderungen zu CodeIgniter sind auf GitHub zu finden. Die neueste Version kann auf der CodeIgniter Website heruntergeladen werden.

Der Beitrag PHP Framework: CodeIgniter 4 soll Meilenstein setzen ist auf entwickler.de erschienen.

]]>
https://entwickler.de/online/php/php-framework-codeigniter-4-579927950.html/feed 0
News.JS: Git-Commits auf Tassen drucken, Next.js im Deno-Land und GitHub-Swag im Hackathon https://entwickler.de/online/javascript/news-js-github-downtime-deno-vue-579927947.html https://entwickler.de/online/javascript/news-js-github-downtime-deno-vue-579927947.html#respond Fri, 28 Feb 2020 11:00:26 +0000 https://entwickler.de/?p=579927947 Diese Woche in den News.JS: Git-Commits kann man auf Tassen drucken lassen und GitHub ruft zum Hackathon auf, war in letzter Zeit aber auch ganz schön oft offline. Außerdem gibt es eine Next.js-Variation für Deno und neue Alpha-Versionen für Vue.js 3.

Der Beitrag News.JS: Git-Commits auf Tassen drucken, Next.js im Deno-Land und GitHub-Swag im Hackathon ist auf entwickler.de erschienen.

]]>
Diese Woche in den News.JS: Git-Commits kann man auf Tassen drucken lassen und GitHub ruft zum Hackathon auf, war in letzter Zeit aber auch ganz schön oft offline. Außerdem gibt es eine Next.js-Variation für Deno und neue Alpha-Versionen für Vue.js 3.

Neues von GitHub: Fehler und Vorschläge

Am 19. Februar, 20. Februar, 25. Februar und 27. Februar 2020 gab es Probleme auf GitHub: Für viele Nutzer ging gar nichts mehr, die Plattform war nicht erreichbar. Diese Quote an Downtime ist durchaus ungewöhnlich für GitHub, wie der GitHub-Statuspage entnommen werden kann. Was ist also los? Das weiß bislang niemand. Auf dem offiziellen Twitter-Kanal gibt das GitHub-Team an, dass die Fehlerrate wieder gesunken sei und der Service normal funktioniere. Eine Aufklärung hatte gestern außerdem GitHubs CEO Nat Friedman auf Hacker News versprochen. Bislang ist jedoch unklar, ob das Problem bereits behoben wurde. Weitere Ausfälle in den kommenden Tagen sind also nicht ausgeschlossen, eine Erklärung gab es noch nicht.

Es gibt jedoch auch erfreulichere Neuigkeiten von GitHub: Vom 5. März bis 31. März findet ein neuer GitHub-Hackathon statt. Dieses Mal sollen eigene GitHub Actions eingereicht werden. Wer also denkt, dass es eine GitHub Action zu einer bestimmten Cloud geben sollte oder ein bestimmtes Tool besser eingebunden sein müsste, kann seine Lösung nun vorschlagen. Die ersten 1000 Einreichungen werden mit GitHub-Swag belohnt!

Git Faker: Commit-Histroy auf Tassen drucken

Ebenfalls mit GitHub zu tun hat die nächste Meldung dieser News.JS: Foto-Tassen waren gestern, heute kann man seine eigene Botschaft im Layout einer Git-Commit-History abdrucken lassen! Dabei kommen nicht die realen Commits zum Einsatz, sondern eigene Muster. Dafür kann das Tool Git Faker verwendet werden, das von Eric Ellbogen auf, nun ja, GitHub veröffentlicht wurde. Trotz des Namens ist das Tool allerdings nicht dazu gedacht, eine Commit-History zu fälschen und so zu tun, als wäre man aktiver als man wirklich war. Es geht nur um coole Effekte und selbstgemachten Swag! Vielleicht ist das ja ein schönes Geschenk für Entwickler.

Neues im Deno-Land

Deno 1.0 ist noch nicht fertig, obwohl die Veröffentlichung ja für Ende Januar geplant gewesen ist. Vor einer Woche erschien v0.34 der neuen JavaScript-Runtime, auf der To-Do-Liste für v1 sind immer noch einige Features nicht als erledigt markiert. Ob Deno sich etablieren kann, wird jedoch nicht nur davon abhängen, ob das Team mit ihrer ersten Major-Version überzeugt. Auch das Ökosystem ist von zentraler Bedeutung, wenn man über Alternativen zu Node spricht. Immerhin steht für Node das große npm-Universum bereit. Deno holt allerdings schnell auf: Ein neues Projekt adaptiert nun das Routing-Verhalten von Next.js für Deno. Unter dem Namen Deno-React-Server kann es gefunden werden. Wie bei so vielen Mitgliedern der Deno-Welt gilt aber auch hier: Work in Progress!

Vue.js 3: Fortschritte beim SSR

Um Vue.js ist es in den letzten Monaten etwas ruhiger geworden. Das Team scheint ganz auf das anstehende Major-Release fokussiert zu sein, das sich derzeit in der Alpha-Phase befindet. Die große Hürde für Vue.js 3 stellt offenbar das Server-side Rendering dar. Hier scheint es aber Fortschritte zu geben: alpha.5 hat in der vergangenen Woche @vue/compiler-ssr und @vue/server-renderer implementiert, aber keinen Support für Suspense und Hydration Mismatch Handling mitgebracht. Seitdem sind zwei weitere Alpha-Versionen veröffentlicht worden. Es geht also vorwärts! Wann Vue.js 3 erscheint, ist jedoch weiterhin nicht bekannt.

Der Beitrag News.JS: Git-Commits auf Tassen drucken, Next.js im Deno-Land und GitHub-Swag im Hackathon ist auf entwickler.de erschienen.

]]>
https://entwickler.de/online/javascript/news-js-github-downtime-deno-vue-579927947.html/feed 0
Vom Backend ins Frontend: Microservices ins Frontend bringen mit Micro Frontends https://kiosk.entwickler.de/entwickler-magazin/entwickler-magazin-spezial-vol-22-2/vom-backend-ins-frontend/ https://kiosk.entwickler.de/entwickler-magazin/entwickler-magazin-spezial-vol-22-2/vom-backend-ins-frontend/#respond Fri, 28 Feb 2020 11:00:02 +0000 https://entwickler.de/?p=579926779 Micro Frontends oder auch Micro Apps werden in letzter Zeit häufiger diskutiert. Nachdem Microservices-Architekturen im Backend wachsenden Anklang finden, schwappt dieser Architekturansatz auch immer öfter ins Frontend. Das erste Mal wurden Micro Frontends im ThoughtWorks Technology Radar Ende 2016 erwähnt. Seit dieser Zeit haben sich zahlreiche Bibliotheken und Hilfsmittel rund um diesen Architekturansatz entwickelt.

Der Beitrag Vom Backend ins Frontend: Microservices ins Frontend bringen mit Micro Frontends ist auf entwickler.de erschienen.

]]>
Micro Frontends oder auch Micro Apps werden in letzter Zeit häufiger diskutiert. Nachdem Microservices-Architekturen im Backend wachsenden Anklang finden, schwappt dieser Architekturansatz auch immer öfter ins Frontend. Das erste Mal wurden Micro Frontends im ThoughtWorks Technology Radar Ende 2016 erwähnt. Seit dieser Zeit haben sich zahlreiche Bibliotheken und Hilfsmittel rund um diesen Architekturansatz entwickelt.

Der Beitrag Vom Backend ins Frontend: Microservices ins Frontend bringen mit Micro Frontends ist auf entwickler.de erschienen.

]]>
https://kiosk.entwickler.de/entwickler-magazin/entwickler-magazin-spezial-vol-22-2/vom-backend-ins-frontend/feed 0
RLBox und WebAssembly: Firefox setzt auf neue Wege in Sachen Security https://entwickler.de/online/web/rlbox-webassembly-firefox-579927821.html https://entwickler.de/online/web/rlbox-webassembly-firefox-579927821.html#respond Fri, 28 Feb 2020 09:52:05 +0000 https://entwickler.de/?p=579927821 Mozillas Webbrowser Firefox verfolgt einen neuen Ansatz im Security-Bereich. Mittels der neuen Sandbox-Technologie RLBox sollen bestehende Komponenten in C/C++ so konvertiert werden, dass sie in einer WebAssembly Sandbox laufen können.

Der Beitrag RLBox und WebAssembly: Firefox setzt auf neue Wege in Sachen Security ist auf entwickler.de erschienen.

]]>
Mozillas Webbrowser Firefox verfolgt einen neuen Ansatz im Security-Bereich. Mittels der neuen Sandbox-Technologie RLBox sollen bestehende Komponenten in C/C++ so konvertiert werden, dass sie in einer WebAssembly Sandbox laufen können.

Firefox soll sicherer werden. Wie das zuständige Entwickler-Team von Mozilla jetzt mitteilte, soll für dieses Ziel ein neuer Weg beschritten werden: die Verwendung der neuen Sandbox-Technologie RLBox.

RLBox – was ist das?

Im Kern bietet RLBox die Möglichkeit, in C/C++ geschriebene Firefox-Komponenten auf effiziente Art und Weise zunächst in Wasm-Code und anschließend in den benötigten nativen Code zu kompilieren. So ist laut den Programmierern die Nutzung einer WebAssembly Sandbox möglich. Entwickelt wurde die neue Technologie von Forschern der Universitäten aus Kalifornien, Texas, San Diego und Stanford. Für die Umsetzung wurde zunächst ein Wasm-Backend in das Compiler-Frontend Clang, bzw. der Compiler-Infrastruktur von LLVM hinzugefügt. Um C/C++ in Wasm-Code kompilieren zu können, wurde darüberhinaus noch die Standard-Library wasi-sdk implementiert.

International JavaScript Conference

Effective Microservices Architecture In Node.js

by Tamar Stern (Palto Alto Networks)

React Components And How To Style Them

by Jemima Abu (Telesoftas)

JavaScript Days 2020

Wie ich eine React-Web-App baue

mit Elmar Burke (Blendle) und Hans-Christian Otto (Suora)

Architektur mit JavaScript

mit Golo Roden (the native web)

Derzeit wird die Kerninfrastruktur des Wasm-Sandboxing eingerichtet, die neue Technologie soll aber schon bald auf weitere Teile der Firefox Codebasis ausgeweitet werden und Schritt-für-Schritt für alle unterstützten Plattformen verfügbar sein. Für Linux wird dies in Firefox 74 der Fall sein, Mac-Nutzern steht es ab der Version 75 zur Verfügung. Danach soll auch der Support für Windows erfolgen.

Alle Informationen zu Firefox‘ Bestrebungen nach verbesserter Sicherheit finden sich auf dem offiziellen Blog.

Der Beitrag RLBox und WebAssembly: Firefox setzt auf neue Wege in Sachen Security ist auf entwickler.de erschienen.

]]>
https://entwickler.de/online/web/rlbox-webassembly-firefox-579927821.html/feed 0
Azure Data Studio: Eine Alternative zu SQL Server Management Studio und Data Tools https://entwickler.de/online/windowsdeveloper/azure-data-studio-579926428.html https://entwickler.de/online/windowsdeveloper/azure-data-studio-579926428.html#respond Fri, 28 Feb 2020 08:35:22 +0000 https://entwickler.de/?p=579926428 Das Azure Data Studio ist bereits seit einiger Zeit verfügbar, aber dennoch nur wenigen bekannt. Einer der Gründe dafür könnte im Namenswechsel des Tools liegen, das ursprünglich unter dem Namen „SQL Operations Studio“ entwickelt wurde. Dabei ist das „Azure“ in der neuen Bezeichnung irreführend.

Der Beitrag Azure Data Studio: Eine Alternative zu SQL Server Management Studio und Data Tools ist auf entwickler.de erschienen.

]]>
Das Azure Data Studio ist bereits seit einiger Zeit verfügbar, aber dennoch nur wenigen bekannt. Einer der Gründe dafür könnte im Namenswechsel des Tools liegen, das ursprünglich unter dem Namen „SQL Operations Studio“ entwickelt wurde. Dabei ist das „Azure“ in der neuen Bezeichnung irreführend.

Das Azure Data Studio ist eine interessante Alternative zu den deutlich verbreiteteren SQL Server Data Tools und dem SQL Server Management Studio. Interessant wird es vor allem, weil mit dem neuen Tool einige Features angeboten werden, die es in den bisherigen Tools nicht gibt, beispielsweise die Unterstützung von Jupyter Notebooks und zusätzlicher Betriebssysteme wie Linux und macOS.

Bisher war das SQL Server Management Studio das Tool der Wahl zur SQL-Entwicklung und -Administration, seitdem es mit SQL Server 2005 den Enterprise Manager ablöste hat. Für die Arbeit mit Datenbankprojekten kamen Visual Studio Database Edition und für BI-Projekte das Business Intelligence Development Studio hinzu, die später beide unter der Bezeichnung SQL Server Data Tools zusammengeführt wurden.

C# 8.0 Spickzettel

Kostenlos: C# 8.0 – neue Sprachfeatures auf einen Blick

Der C#-8.0-Spickzettel fasst die neuen Features der Sprache zusammen mit Blick auf das aktuelle .NET Core 3.0 bzw. .NET Standard 2.1. Jetzt herunterladen und schneller & effektiver programmieren!

Bereits im November 2017 erschienen die erste Public Preview des SQL Operations Studio, das als „light-weight tool for modern database development and operations“ angepriesen wurde. Mit dem Erscheinen der ersten finalen Version im September 2018 wurde der Name in Azure Data Studio geändert, um die Möglichkeit zu unterstreichen, damit auch Datenbanken und Instanzen in der Microsoft-Azure-Cloud zu verwalten. Dem Namen zum Trotz kann das Azure Data Studio jedoch genauso gut verwendet werden, um mit SQL Servern im lokalen Netzwerk zu arbeiten.

Download und Installation

Die Einrichtung des Azure Data Studios gestaltet sich denkbar einfach. Genau wie mittlerweile auch das SQL Server Management Studio ist das Azure Data Studio unabhängig von der Serverinstallation als kostenfreier Download erhältlich und wird deutlich häufiger aktualisiert als die Serverkomponenten. Zurzeit erscheint jeden Monat eine neue Version.

Über den Downloadlink kann man das Azure Data Studio in verschiedenen Varianten beziehen. Neben den Versionen für Linux und macOS steht die Windows-Variante sogar in verschiedenen Ausprägungen zum Download bereit. Darunter befinden sich ein Systeminstallationsprogramm (benötigt lokale Adminrechte), ein Benutzerinstallationsprogramm (wird im Kontext des gerade angemeldeten Users installiert) sowie eine ZIP-Datei. Letztere stellt die unkomplizierteste Art dar, das Azure Data Studio lokal einzurichten. Die ZIP-Datei (ca. 136 MB) muss lediglich in einen beliebigen Ordner auf dem lokalen Rechner installiert werden, wofür etwa 433 MB benötigt werden. Anschließend lässt sich das Azure Data Studio durch Aufruf der Datei azuredatastudio.exe starten. Diese Art der Installation bringt den Vorteil mit sich, dass man das Azure Data Studio durch Löschen des Ordners auch schnell wieder entfernen kann, wenn man es nicht mehr brauchen sollte. Prinzipiell ist es sogar möglich, das Azure Data Studio von einem USB-Stick aus zu starten, sofern das von administrativer Seite nicht durch entsprechende Policies verhindert wird.

Oberfläche und Data Explorer

Nach dem Start zeigt sich das Tool mit einer sehr aufgeräumten Oberfläche, die Anwendern von Visual Studio Code gleich bekannt vorkommen wird, da dieselbe technologische Basis verwendet wird (Abb. 1). Am linken Rand ist eine schlicht gehaltene Symbolleiste zu sehen, deren wichtigster Punkt – der Data Explorer – gleich zu Anfang steht. Darunter folgen eine Suchfunktion (mit der sich Dateien im Filesystem durchsuchen lassen), ein Dateiexplorer, ein Symbol für die Quellcodeverwaltung sowie die Extensions. Etwas abgesetzt am unteren Ende folgt noch ein Symbol, mit dem verschiedene Einstellungen vorgenommen werden können. Den Hauptteil des Bildschirms belegt zu Beginn das Willkommen-Fenster, in dem Links zum Öffnen einer neuen Verbindung, Abfrage oder eines Notebooks, die zuletzt geöffneten Dokumente sowie Verweise auf weitere Hilfestellungen zu finden sind. Dieser Bereich verkleinert sich automatisch etwas, sobald beispielsweise der Data Explorer geöffnet wird. Dieser entspricht weitgehend dem Fenster Registrierte Server vom SQL Server Management Studio, allerdings mit dem Unterschied, dass hier für Server im eigenen Netzwerk und Azure getrennte Bereiche vorhanden sind. Alle Servergruppen und Server, die hier definiert werden, sind auch gleichzeitig im SQL Server Management Studio in einer automatisch erstellten Servergruppe mit Namen Azure Data Studio wiederzufinden, so dass man die Registrierungen nicht doppelt vornehmen muss, wenn man beide Tools nutzt. Hat man hier nun einen oder mehrere Server registriert und klappt diese auf, erhält man eine Art vereinfachten Objekt-Explorer der sich auf die drei Unterpunkte Databases, Security und Server Objects beschränkt. Gewohnte Features wie beispielsweise einen SQL Server-Agent sucht man hier vergebens, doch dazu später mehr.

Dafür führt ein Doppelklick auf einem Server oder einer Datenbank zur Einblendung eines Dashboards im Hauptbereich, das einen groben Überblick über den Server bzw. die Datenbank liefert und im Bereich Tasks auch einige Links zu den gängigsten Aufgaben mitbringt. Interessant ist dabei, dass man sogar eigene Dashboards erstellen kann, die auf den persönlichen Bedarf zugeschnitten sind.

Abb. 1: Die Oberfläche von Azure Data Studio

Abb. 1: Die Oberfläche von Azure Data Studio

Wenn man unter Databases den Objektbaum bis zu den Tabellen öffnet und eine solche mit der rechten Maustaste anklickt, findet man im erscheinenden Kontextmenü die gewohnten Features, um die Tabelle abzufragen (Select Top 100), zum Bearbeiten zu öffnen (Edit Data) sowie solche zur Skripterstellung als Create– oder Drop-Anweisung. Diese Script As-Funktionalität ist leider noch nicht so konsequent für alle Objekttypen verfügbar wie im SQL Server Management Studio. Wenn man stattdessen Properties auswählt, werden die Eigenschaften der Tabelle angezeigt. Dabei bedient sich das Azure Data Studio allerdings desselben Dialogfelds, das auch vom SQL Server Management Studio verwendet wird. Damit ist zwar der gewohnte Funktionsumfang gegeben, die Optik passt jedoch nicht so recht zum deutlich moderner designten Azure Data Studio. Insgesamt fällt sowohl in der Baumstruktur als auch bei den entsprechenden Kontextmenüs auf, dass hier deutlich weniger Funktionen angeboten werden und insbesondere viele Administrationsfeatures fehlen. So ist es beispielsweise nicht möglich, eine SQL-Serverinstanz zu stoppen oder neu zu starten.

Im Dateiexplorer bekommen Sie zuerst eine Liste aller geöffneten Detailfenster (Dashboards, Abfragen etc.) zu sehen, was insbesondere bei einer großen Anzahl offener Abfragefenster sehr hilfreich sein kann. Darunter ist ein Arbeitsbereich, zu dem sich ein oder mehrere Ordner hinzufügen lassen, um somit beispielsweise einen schnelleren Zugriff auf Ihre Verzeichnisse mit SQL-Skripten zu haben. Das ist zwar kein wirklich bahnbrechendes Feature, erweist sich im Alltag aber doch als sehr praktisch.

Abfragefenster

Die sicherlich meistgenutzte Funktionalität wird jedoch das Abfragefenster sein. Ähnlich wie in den bereits etablierten Tools lassen sich hier, nach einer Verbindung mit einer Datenbank, SQL-Abfragen programmieren, wobei die IntelliSense-Unterstützung hier deutlich moderner und komfortabler umgesetzt ist als im SQL Server Management Studio. So kann man beispielsweise mit dem Mauszeiger über dem Stern einer SELECT *-Anweisung schweben und bekommt in einem kleinen Infofenster die Definitionen aller Spalten angezeigt, die mit dieser Anweisung als Ergebnis ausgegeben werden. Führt man die Abfrage aus, wird im unteren Bereich des Fensters wie gewohnt in zwei Reitern das eigentliche Abfrageergebnis und die Meldungen dazu angezeigt. Allerdings lässt sich das Ergebnis hier über entsprechende Symbole an der rechten Seite des Fensters nicht nur als CSV-Datei, sondern auch in den Formaten Excel, JSON oder XML speichern. Beim Speichern im Excel-Format ist jedoch zu beachten, dass Bitfelder in Textform (WAHR oder FALSCH) gespeichert werden. Mit dem Diagrammsymbol kann sogar eine grafische Darstellung des Ergebnisses erfolgen, wobei man den Diagrammtyp und einige weitere Einstellungen anpassen kann. Das fertige Diagramm kann anschließend als Bild in die Zwischenablage gelegt oder gespeichert werden (Abb. 2). Es lässt sich daraus aber auch ein sogenannter Einblick erstellen, wobei der englischsprachige Begriff „Insight“ hier deutlich griffiger ist. Dabei wird die Diagrammdefinition in ein JSON-Dokument umgewandelt, das sich speichern und später für eigene Dashboards nutzen lässt. In Verbindung mit Abfragen auf dynamische Verwaltungssichten kann man auf diesem Weg beispielsweise hilfreiche Datenbankverwaltungsdashboards erstellen.

Abb. 2: Anzeige eines Abfrageergebnisses als Diagramm

Abb. 2: Anzeige eines Abfrageergebnisses als Diagramm

Ein weiteres Feature sollte hier nicht unerwähnt bleiben: Während man im SQL Server Management Studio mit dem Mausrad bei gedrückter STRG-Taste den Quelltext einer Abfrage beliebig Vergrößern und Verkleinern kann, geht das im Azure Data Studio bei gedrückter STRG-Taste in Kombination mit den Tasten + und -. Der große Unterschied ist dabei allerdings, dass sich hier nicht nur die Abfrage, sondern alle Elemente der Anwendung (also auch Objektbaum, Abfrageergebnis etc.) zoomen lassen. Für Anwender von Visual Studio Code ist das eine Selbstverständlichkeit, wenn man vom SQL Server Management Studio kommt, aber eine willkommene Neuerung.

Gewohnt ist man dagegen die Möglichkeit, den voraussichtlichen Ausführungsplan einer Abfrage graphisch anzeigen zu lassen. Die Optik ist hierbei etwas ansprechender als beim Management Studio, die Inhalte sind jedoch prinzipiell dieselben. Neu ist dafür ein zusätzliches Registerblatt bei der Ergebnisanzeige, mit dem sich die Topoperationen in Tabellenform anzeigen lassen. Das ist insbesondere dann hilfreich, wenn die graphische Darstellung bei komplexen Abfragen zu unübersichtlich wird.

Notebooks

Während die meisten bisher beschriebenen Features letztlich doch nur „alter Wein in neuen Schläuchen“ sind, bietet die Unterstützung von Notebooks eine wirkliche Neuerung. Dabei werden Kernels für verschiedene Sprachen genutzt, um Dokumente zu erstellen, in denen sich Beschreibungen, Anweisungen (wie beispielsweise Abfragen) und Ergebnisse in Form von Blöcken immer wieder abwechseln. Bei den Textblöcken lassen sich sogar HTML-Tags verwenden, um diese optisch ansprechender zu formatieren. In den Ergebnisblöcken sind die Inhalte nicht starr, sondern können bei Bedarf immer wieder aktualisiert werden. Somit lassen sich schrittweise Datenanalysen ausführen, aber auch aufwendige Datenkorrekturen mit Zwischenschritten und entsprechender Dokumentation kombiniert durchführen.

Die typische Variante dafür sind die sogenannten Jupyter Notebooks, die auf der Sprache Python basieren (deren Komponenten bei der ersten Verwendung automatisch nachinstalliert werden, sofern man sich nicht mit einem bereits existierend Python Server verbindet). Alternativ bietet das Azure Data Studio auch eine Unterstützung von R, PySpark und sogar SQL selbst an. Mittlerweile werden sogar PowerShell Notebooks unterstützt.

Fertiggestellte Notebooks können in Form von JSON-Dateien mit der Endung .ipynb gespeichert werden, wobei das jeweils letzte Ergebnis der enthaltenen Abfragen mitgesichert wird.

Das Thema Notebooks konnte an dieser Stelle leider nur oberflächlich angesprochen werden, da sich alleine durch die Unterstützung der verschiedenen Sprachen eine nahezu unüberschaubare Zahl neuer Möglichkeiten bietet.

Extensions

Eine weitere Besonderheit, die wiederum Anwendern von Visual Studio Code sehr vertraut sein dürfte, ist das Thema Extensions. Während Erweiterungen beim SQL Server Management Studio immer für genau eine Version des Tools entwickelt werden konnten, bietet das Azure Data Studio nun eine offene Schnittstelle für Extensions. Dadurch ist es jedermann möglich, eigene Erweiterungen zu bauen, um zusätzliche Funktionalitäten bereitzustellen, die dann auch in zukünftigen Versionen des Tools noch funktionieren. Eine Vielzahl von Extensions wird bereits mit dem Azure Data Studio ausgeliefert (Abb. 3). Zusätzlich gibt es viele weitere Extensions, die zumindest von Microsoft empfohlen werden und sich mit wenigen Klicks nachinstallieren lassen. Darunter befinden sich auch zahlreiche Erweiterungen, die bereits bekannte Funktionen ergänzen, wie beispielsweise den ansonsten schmerzlich vermissten SQL Server Agent, den SQL Server Profiler und das SQL Server Schema Compare. In Verbindung mit der SQL Server Agent Extension lässt sich sogar die Ausführung von Notebooks zeitlich planen. Die Zahl der Extensions wächst ständig, wobei viele sich derzeit noch in einer Preview-Phase befinden und noch nicht ganz so ausgereift sind, wie man sich das wünschen würde.

Abb. 3: Auswahl und Aktivierung von Extensions

Abb. 3: Auswahl und Aktivierung von Extensions

Sonstiges

Abgesehen von den bereits beschriebenen Möglichkeiten gibt es noch eine Reihe weiterer hilfreicher Features. So lassen sich beispielsweise im unteren Teil des Detailbereichs ein oder mehrere Terminalfenster einblenden, in denen zum jetzigen Zeitpunkt PowerShell genutzt werden kann. Die Auswahlliste für die Shell-Varianten deutet jedoch darauf hin, dass hier in Zukunft noch weitere Shells zu erwarten sind.

Das SQL Server Management Studio bietet neben der Einblendung der registrierten Server noch eine weitere Verbindung zum Azure Data Studio. Im Menü Extras gibt es einen direkten Aufruflink, um das Azure Data Studio zu starten. Über das Kontextmenü einer Serverinstanz oder Datenbank im Objekt-Explorer lässt sich sogar das Azure Data Studio öffnen und automatisch ein neues Abfrage- oder SQL-Notebook-Fenster mit Verbindung zur entsprechenden Serverinstanz oder Datenbank anzeigen. Es scheint also durchaus von Microsoft vorgesehen zu sein, beide Tools in Kombination miteinander zu verwenden.

Fazit

Das Azure Data Studio ist natürlich nicht das allumfassende Tool, das alle anderen SQL-Server-Tools überflüssig macht, aber das war auch nicht zu erwarten. Insbesondere für Datenbankadministratoren wird nach wie vor das SQL Server Management Studio das Tools der Wahl sein, da viele wichtige Adminfunktionalitäten im Azure Data Studio nicht oder nur mit Hilfe noch nicht ganz ausgereifter Extensions verfügbar sind. Für .NET-Programmierer und Datenbankentwickler (insbesondere solche, die sich in der Oberfläche von Visual Studio Code heimisch fühlen) stellt das Azure Data Studio dagegen eine interessante Alternative zu den althergebrachten Tools dar. Und selbst dann, wenn man nicht auf das SQL Server Management Studio verzichten will, kann das Azure Data Studio eine sinnvolle Ergänzung darstellen, die einige zusätzliche Möglichkeiten wie beispielsweise das Arbeiten mit Notebooks eröffnet.

Links & Literatur

  • [1] Panther, Robert: „Datenbankentwicklung lernen mit SQL Server 2017“; O’Reilly, 2018

Windows Developer

Windows DeveloperDieser Artikel ist im Windows Developer erschienen. Windows Developer informiert umfassend und herstellerneutral über neue Trends und Möglichkeiten der Software- und Systementwicklung rund um Microsoft-Technologien.

Natürlich können Sie den Windows Developer über den entwickler.kiosk auch digital im Browser oder auf Ihren Android- und iOS-Devices lesen. Außerdem ist der Windows Developer weiterhin als Print-Magazin im Abonnement erhältlich.

Der Beitrag Azure Data Studio: Eine Alternative zu SQL Server Management Studio und Data Tools ist auf entwickler.de erschienen.

]]>
https://entwickler.de/online/windowsdeveloper/azure-data-studio-579926428.html/feed 0
APIs: Das Thema Sicherheit in den Griff bekommen https://entwickler.de/online/security/api-sicherheit-579927813.html https://entwickler.de/online/security/api-sicherheit-579927813.html#respond Fri, 28 Feb 2020 08:10:22 +0000 https://entwickler.de/?p=579927813 In dieser Session lernen Sie OAuth und Open ID Connect kennen, die hilfreich sind um einen Benutzer zu authentifizieren und zu autorisieren. Es wird gezeigt, wie der Zugriff auf bestimmte Funktionen eines Systems gesteuert wird. Darüber hinaus ist in einer Live-Demo die Integration von Auth0 in eine gemeinsame API-Plattform zu sehen.

Der Beitrag APIs: Das Thema Sicherheit in den Griff bekommen ist auf entwickler.de erschienen.

]]>
In dieser Session lernen Sie OAuth und Open ID Connect kennen, die hilfreich sind um einen Benutzer zu authentifizieren und zu autorisieren. Es wird gezeigt, wie der Zugriff auf bestimmte Funktionen eines Systems gesteuert wird. Darüber hinaus ist in einer Live-Demo die Integration von Auth0 in eine gemeinsame API-Plattform zu sehen.

APIs und Sicherheit sind eine komplexe Angelegenheit. Wenn es um serviceorientierte Architektur geht, müssen Sie mehrere Services sichern. Es gibt eine Reihe von Lösungen, aber nur wenige, bei denen die Themen Sicherheit und Zugriffskontrolle einfach in den Griff zu bekommen sind.

International PHP Conference

PHP in 2020: Fully Loaded

by Arne Blankerts (thePHP.cc)

PSR-14: A Major PHP Event

by Larry Garfield (Platform.sh)

Leaving a Legacy

by Ewout Pieter den Ouden (PHPUnit, open source contributor)

JavaScript Days 2020

Wie ich eine React-Web-App baue

mit Elmar Burke (Blendle) und Hans-Christian Otto (Suora)

Architektur mit JavaScript

mit Golo Roden (the native web)

In diesem IPC Vortrag und dieser Demo zeigt Ben Dechrai, wie Sie durch die Implementierung eines Identitätsanbieters und die Verwendung von OAuth und OpenID Connect Ihre Prototypen und MVPs einfacher hochfahren und sich auf den Hauptzweck der APIs konzentrieren können, anstatt auf das Thema Sicherheit.

Der Speaker: Ben Dechrai
Ben Dechrai is a technologist with a staunch focus on security and privacy. This started at the age of 11, when he wrote software to stop his mum from breaking the family PC, and resulted in his working as a developer advocate for Auth0. He enjoys helping developers find the joy of experimentation, from ethical skulduggery to subversive automation, and can be found on Twitter and Instagram at @bendechrai.

Der Beitrag APIs: Das Thema Sicherheit in den Griff bekommen ist auf entwickler.de erschienen.

]]>
https://entwickler.de/online/security/api-sicherheit-579927813.html/feed 0
.NET Core 3.1 ist reif: Übersicht über Bugfixes und Breaking Changes https://kiosk.entwickler.de/windows-developer-magazin/windows-developer-magazin-3-2020-2/net-core-3-1-ist-reif/ https://kiosk.entwickler.de/windows-developer-magazin/windows-developer-magazin-3-2020-2/net-core-3-1-ist-reif/#respond Thu, 27 Feb 2020 11:00:18 +0000 https://entwickler.de/?p=579926776 .NET Core 3.1 ist am 3. Dezember 2019 erschienen. Ungewöhnlich ist: Es gibt nur sehr wenige neue Funktionen, sondern vor allem Fehlerbehebungen und sogar inkompatible Änderungen, die es bei einer Version mit Änderung der Versionsnummer an der zweiten Stelle gar nicht geben dürfte.

Der Beitrag .NET Core 3.1 ist reif: Übersicht über Bugfixes und Breaking Changes ist auf entwickler.de erschienen.

]]>
.NET Core 3.1 ist am 3. Dezember 2019 erschienen. Ungewöhnlich ist: Es gibt nur sehr wenige neue Funktionen, sondern vor allem Fehlerbehebungen und sogar inkompatible Änderungen, die es bei einer Version mit Änderung der Versionsnummer an der zweiten Stelle gar nicht geben dürfte.

Der Beitrag .NET Core 3.1 ist reif: Übersicht über Bugfixes und Breaking Changes ist auf entwickler.de erschienen.

]]>
https://kiosk.entwickler.de/windows-developer-magazin/windows-developer-magazin-3-2020-2/net-core-3-1-ist-reif/feed 0
React 16.13: Vorbereitungen für kommende Major-Versionen https://entwickler.de/online/javascript/react-16-13-579927779.html https://entwickler.de/online/javascript/react-16-13-579927779.html#respond Thu, 27 Feb 2020 10:13:34 +0000 https://entwickler.de/?p=579927779 React hat ein Update bekommen. Nachdem es in den letzten Monaten ruhiger um React geworden war, bringt v16.13 nun sowohl einige Warnungen mit, als auch Neuerungen am noch experimentellen Concurrent Mode.

Der Beitrag React 16.13: Vorbereitungen für kommende Major-Versionen ist auf entwickler.de erschienen.

]]>
React hat ein Update bekommen. Nachdem es in den letzten Monaten ruhiger um React geworden war, bringt v16.13 nun sowohl einige Warnungen mit, als auch Neuerungen am noch experimentellen Concurrent Mode.

React 16.13 ist da. Neu in der Minor-Version sind einige Deprecations sowie neue Warnungen, die beispielsweise dabei helfen sollen, bestimmte Bugs beim Rendering schneller zu entdecken. Auch, wer noch mit String Refs arbeitet, die bereits als deprecated markiert worden waren, bekommt in Zukunft in manchen Fällen eine Warnung angezeigt. Die meisten Anwendungsfälle von String Refs sollen in Zukunft zwar mit einem automatischen Codemod migriert werden; in einigen Ausnahmenfällen ist das aber nicht möglich. Wenn ein solcher Fall im Code enthalten ist, können Entwickler sich nun mit einer Warnung darauf hinweisen lassen. Dafür muss das Babel-Plug-in @babel/plugin-transform-react-jsx-self installiert sein.

International JavaScript Conference

Effective Microservices Architecture In Node.js

by Tamar Stern (Palto Alto Networks)

React Components And How To Style Them

by Jemima Abu (Telesoftas)

JavaScript Days 2020

Wie ich eine React-Web-App baue

mit Elmar Burke (Blendle) und Hans-Christian Otto (Suora)

Architektur mit JavaScript

mit Golo Roden (the native web)

Neue Deprecations in React 16.13

Neu als deprecated markiert in React 16.13 wurde React.createFactory, das inzwischen durch reguläres JSX ersetzt werden kann. Entwickler, die den Helper weiterhin verwenden möchten, können ihn außerdem gegen folgenden Code ersetzen:

let createFactory = type => React.createElement.bind(null, type);

Auch unstable_createPortal ist nun als deprecated markiert worden. Bereits seit React 16 ist createPortal als stabiles API in React verfügbar. Die zuvor genutzte unstable-Version wurde bislang als Alias unterstützt, damit die Anpassung in Libraries vorgenommen werden kann. Das soll jedoch nicht dauerhaft so bleiben, sodass das unstable-API nun als deprecated markiert worden ist.

Auch der Concurrent Mode, der derzeit ein experimentelles Feature von React darstellt, hat eine Reihe von Änderungen erhalten. So wurden die Callback Params von ReactDOM.createRoot() entfernt und eine Warnung für entsprechende Anwendungsfälle hinzugefügt. Außerdem wurden einige Bugs behoben, beispielsweise für das Update-Verhalten von React.memo.

Weitere Informationen zu React 16.13 können dem Blogpost zum Release entnommen werden.

Der Beitrag React 16.13: Vorbereitungen für kommende Major-Versionen ist auf entwickler.de erschienen.

]]>
https://entwickler.de/online/javascript/react-16-13-579927779.html/feed 0
BASTA! Spring Livestream am 27.2., 14.30 Uhr: Machine Learning: Softwareentwicklung 2.0? https://entwickler.de/online/windowsdeveloper/basta-spring-2020-livestream-579927775.html https://entwickler.de/online/windowsdeveloper/basta-spring-2020-livestream-579927775.html#respond Thu, 27 Feb 2020 08:17:46 +0000 https://entwickler.de/?p=579927775 Heute um 14.30 Uhr live von der BASTA! Spring 2020: Machine Learning: Softwareentwicklung 2.0? Die Keynote von Jörg Neumann kann bequem vom Büro aus verfolgt und auch danach jederzeit auf YouTube angesehen werden.

Der Beitrag BASTA! Spring Livestream am 27.2., 14.30 Uhr: Machine Learning: Softwareentwicklung 2.0? ist auf entwickler.de erschienen.

]]>
Heute um 14.30 Uhr live von der BASTA! Spring 2020: Machine Learning: Softwareentwicklung 2.0? Die Keynote von Jörg Neumann kann bequem vom Büro aus verfolgt und auch danach jederzeit auf YouTube angesehen werden.

Egal ob selbstfahrende Autos, Gesichtserkennung oder Sprachsteuerung – Machine Learning fasziniert. Doch neben all dem Hype gibt es auch ganz bodenständige Einsatzfälle, die das Potential haben die Softwareentwicklung nachhaltig zu verändern. Jörg Neumann erklärt, warum Machine Learning nicht nur etwas für Mathematiker ist und wie es in die moderne Softwareentwicklung integriert werden kann.

Heute, 27.2.2020, ab 14.30 Uhr im Livestream und danach jederzeit auf YouTube:

C# 8.0 Spickzettel

Kostenlos: C# 8.0 – neue Sprachfeatures auf einen Blick

Der C#-8.0-Spickzettel fasst die neuen Features der Sprache zusammen mit Blick auf das aktuelle .NET Core 3.0 bzw. .NET Standard 2.1. Jetzt herunterladen und schneller & effektiver programmieren!

Der Speaker: Jörg Neumann
Jörg Neumann ist Mitgründer und Geschäftsführer der Aclue GmbH. Er berät seit vielen Jahren Unternehmen bei der Technologieauswahl, Architektur und dem Entwurf mobiler Apps. Für sein Engagement in diesem Bereich wurde er von Microsoft mehrfach mit dem „Most Valuable Professional“-Award ausgezeichnet. Sein Wissen vermittelt er regelmäßig in Form von Büchern, Beiträgen in Fachzeitschriften, sowie als Sprecher und Trainer auf Konferenzen und Seminaren. Sie erreichen ihn über Twitter (@JoergNeumann) oder seinen Blog headwriteline.blogspot.com.

Der Beitrag BASTA! Spring Livestream am 27.2., 14.30 Uhr: Machine Learning: Softwareentwicklung 2.0? ist auf entwickler.de erschienen.

]]>
https://entwickler.de/online/windowsdeveloper/basta-spring-2020-livestream-579927775.html/feed 0
Feiert Legacy! Langfristig erfolgreiche Firmen gehen gelassen mit Legacy um https://entwickler.de/online/windowsdeveloper/stropek-service-feiert-legacy-579926423.html https://entwickler.de/online/windowsdeveloper/stropek-service-feiert-legacy-579926423.html#respond Thu, 27 Feb 2020 07:43:09 +0000 https://entwickler.de/?p=579926423 „Legacy software is software that earns money.“ In diesem Sprichwort steckt mehr als nur ein Körnchen Wahrheit und doch feiert die Branche immer nur die neusten Trends und heißesten Tools. Irgendwann wird aber auch daraus eine Legacy-Lösung. Wie geht man damit um?

Der Beitrag Feiert Legacy! Langfristig erfolgreiche Firmen gehen gelassen mit Legacy um ist auf entwickler.de erschienen.

]]>
„Legacy software is software that earns money.“ In diesem Sprichwort steckt mehr als nur ein Körnchen Wahrheit und doch feiert die Branche immer nur die neusten Trends und heißesten Tools. Irgendwann wird aber auch daraus eine Legacy-Lösung. Wie geht man damit um?

„Legacy software is software that earns money.“ In diesem Sprichwort steckt mehr als nur ein Körnchen Wahrheit. Unsere Softwarebranche feiert sich selbst wegen ihrer rasch aufeinander folgenden Innovationen. Wer dazugehören will, nutzt immer die aktuellsten Sprachen, die neuesten Frameworks und heißesten Tools. Es kann nicht Beta und Preview genug sein. Wir vergessen dabei, dass fast jede Software, die heute mit (B)Leading-Edge-Technologie gebaut ist, im Laufe der Zeit viele Legacy-Komponenten enthalten wird. Ich kenne kein einziges Softwareunternehmen, das in der Lage wäre, genügend finanzielle und personelle Ressourcen auf die Beine zu stellen, um dieser Tatsache vollständig zu entkommen.

Selbsterkenntnis

Unternehmen, die langfristig mit Software Erfolg haben wollen, brauchen daher eine Strategie, um mit Legacy umzugehen. Dabei steht aus meiner Sicht wie bei so vielen Dingen die Selbsterkenntnis am Anfang. Es braucht eine ehrliche Betrachtung des Status quo und das Erkennen, Sichtbar- und Bewusstmachen von technischen Schulden.

C# 8.0 Spickzettel

Kostenlos: C# 8.0 – neue Sprachfeatures auf einen Blick

Der C#-8.0-Spickzettel fasst die neuen Features der Sprache zusammen mit Blick auf das aktuelle .NET Core 3.0 bzw. .NET Standard 2.1. Jetzt herunterladen und schneller & effektiver programmieren!

Viele Teams schrecken vor einer solchen Bestandsaufnahme zurück, da es ihnen unangenehm ist, offen zuzugeben, dass ihre Software zum Teil auf veralteten Komponenten aufgebaut ist. Das klingt nach Versagen. Ist es aber nicht! Softwarealterung ist eine unvermeidliche Tatsache für Software, die über lange Zeit im Einsatz und am Markt erfolgreich ist. Kunden wünschen sich neue Funktionen, und die Arbeit an ihnen steht in Konkurrenz zu Modernisierungsmaßnahmen an der Basis. Hat ein Team alle Zeit der Welt, um alle Komponenten auf dem Laufenden zu halten und jedem Trend hinterherzulaufen, dann fehlen ihm wahrscheinlich die nach funktionalen Erweiterungen rufenden Kunden.

Legacy-Management

Innovative Entwicklungsteams managen ihre technischen Schulden aktiv. Diese sind Teil des Product Backlogs. Die Teams wissen, wo Legacy-Komponenten im Einsatz sind und sind realistisch, was den Zeitplan für eine Aktualisierung oder ein Ersetzen betrifft. Das bedeutet manchmal, dass es noch keinen Zeitplan gibt. An erster Stelle steht daher das ehrliche Eingeständnis, dass man bis auf weiteres mit Legacy in gewissen Bereichen leben muss. Meiner Erfahrung nach ist die wiederholte Ankündigung von Modernisierungsprojekten, die dann doch nicht stattfinden, eine größere Gefahr, wertvolle Teammitglieder zu verlieren, als das offene Ansprechen der Tatsache, dass gewisse alte Teile einer Software kurz- bis mittelfristig nicht überarbeitet werden können.

Mit diesen Aussagen meine ich keinesfalls, dass es der richtige Weg ist, veraltete Systemteile als gegeben hinzunehmen und keinerlei Schritte hin zu ihrer Modernisierung zu unternehmen. Diese Extremposition wäre genauso verkehrt wie das manische Bedürfnis, immer mit allem auf dem neuesten Stand sein zu müssen. Es braucht eine gesunde Balance aus funktionalen Erweiterungen und technischer Modernisierung, die durch einen Priorisierungsprozess geleitet ist. Die Priorisierung sollte, soweit machbar, auf objektiven Kriterien wie Nutzungsdaten, Kundenbefragungen und Risikokalkulationen aufbauen.

Legacy-Kultur

Entscheidend für die langfristige Teammotivation ist meiner Erfahrung nach eine Unternehmenskultur, die nicht nur technische Neuerungen, sondern auch das Aufrechterhalten eines Systems trotz älterer Komponenten wertschätzt. Viele Unternehmen tendieren dazu, immer nur diejenigen Mitarbeiterinnen und Mitarbeiter vor den Vorhang zu holen, die unbekanntes Territorium mit den neuesten Softwarewerkzeugen beschreiten. In solchen Bereichen kann man allerdings auf der grünen Wiese ohne Zeitdruck und ohne Kunden im Nacken arbeiten. Da ist es für die Teammitglieder frustrierend, die die Cash Cows am Laufen halten und deren Arbeit die Gehälter der ganzen Firma trägt, wenn ihre Leistungen nicht genauso sichtbar gewürdigt werden.

Vor einigen Monaten hatte ich als Berater ein Engagement bei einem Kunden, bei dem es um die Modernisierung einer in die Jahre gekommenen Standardsoftwarelösung ging. Das bestehende Produkt basierte auf sehr alter Technologie, war aber am Markt erfolgreich und wurde von einem einzigen Mitarbeiter am Leben erhalten, der schon lange im Unternehmen tätig war. Ihm gegenüber saß ein mehrköpfiges, junges Entwicklungsteam, dessen Aufgabe die komplette Neuentwicklung der Software war. Der Mitarbeiter, der die bestehende Lösung zu warten hatte, war ständigen (teilweise) unterschwelligen Vorwürfen wegen mangelnder Innovationsbereitschaft ausgesetzt, weil er auf viele Hürden für die Neuentwicklung hinwies, die er aus jahrelanger Praxis kannte. Niemand kam auf die Idee, ihn zu fragen, wie er mit technisch und personell beschränkten Mitteln in der Lage war, die Software so lange erfolgreich am Laufen zu halten. Das Management stellte mir gegenüber das neue Entwicklungsteam als technologische Superstars vor. Keine Rede von dem Teammitglied, dessen erfolgreiche Arbeit das Neuentwicklungsprojekt finanziell erst ermöglicht hatte.

Eine solche Vorgehensweise ist menschlich nicht in Ordnung und unternehmerisch riskant. Das Managementteam muss eine Kultur fördern, in der die Aufrechterhaltung eines Systems trotz technischer Einschränkungen geschätzt und als intellektuelle Herausforderung anerkannt wird. Innovationsfähigkeit ist eine wertvolle Eigenschaft eines Teams, aber nicht die einzige.

Respekt vor Erreichtem

Personen, die Teams leiten, sollten meiner Erfahrung nach insbesondere unerfahreneren Teammitgliedern gegenüber Vorbild sein, indem sie Respekt vor Erreichtem zeigen. Das gilt speziell bei der Diskussion neuer Technologien. Oft erscheinen Technologieänderungen als reizvoll, weil sie versprechen, gewisse Probleme von Legacy-Komponenten von Grund auf auszumerzen. Erfahrene Entwicklerinnen und Entwickler wissen aber, dass keine Programmierplattform perfekt ist und dass es keine Silver Bullets gibt. Im täglichen Einsatz wird auch die neue Technologie ihre Macken haben, man kennt sie nur noch nicht. Im Idealfall sind es weniger Macken als im Legacy-Bereich, los wird man aber sicher nicht alle. Insofern braucht es gerade bei technischen Strategieentscheidungen ein Abwägen von Vor- und Nachteilen, das von Emotionen und subjektiven Vorlieben so frei wie möglich ist.

Neben neuen, technischen Herausforderungen dürfen bestehender Code und vorhandenes Wissen nicht außer Acht gelassen werden. Im vorhandenen Code steckt eine Menge Hirnschmalz, das man nicht achtlos vergeuden sollte. Die Teammitglieder haben im Laufe der Jahre gelernt, bekannte Tools zu meistern. Das ist ein großer Pluspunkt, den man entsprechend würdigen muss.

Too big to fail

Der Hang zum Perfektionismus steht vielen Teams bei der Bewältigung von technischen Schulden im Weg. Wenn eine Modernisierung angegangen wird, dann soll es diesmal richtig gemacht werden. Man will Best Practices einhalten und von Anfang an alles richtig machen. Durch diesen gutgemeinten Vorsatz wird der Berg an Aufgaben so groß, dass das Projekt nie startet –währenddessen altert die Software weiter vor sich hin. Irgendwann steht man vor einer Codebasis, die so groß und unternehmenskritisch ist, dass sich niemand mehr traut, etwas daran zu ändern. Das gilt insbesondere, weil parallel zu einem veralteten Softwaremonolithen meistens auch eine hohe Personalfluktuation zu finden ist.

Schrittweise Verbesserung schlägt Perfektionismus so gut wie immer. Microservices sind ein Mittel, sie zu ermöglichen. In Microservices-Workshops können Kunden oft nicht glauben, welche Regeln bei Microservices gelten: Eine gemeinsame Datenbank für mehrere Microservices als Antipattern, im Ernst? Da hat man doch nur noch mit inkonsistenten Daten und Schnittstellen zu tun; so etwas und ähnliches wird diskutiert. Übersehen wird, dass Microservices nicht primär ein Mittel zur technischen Effizienzsteigerung sind, die kann ein Nebeneffekt sein. Ziel ist es, lose gekoppelte Komponenten zu erstellen, die mit unterschiedlichen Geschwindigkeiten weiterentwickelt und gegebenenfalls auch ausgetauscht werden können. Damit wird die Microservices-Architektur zu einer langfristigen Strategie, gelassen mit Legacy-Code umzugehen.

Umwälzungen

Meine oben angeführten Argumente möchte ich nicht als Appell missverstanden wissen, dass Änderungen generell eine Sackgasse sind und man am besten alles beim Alten belässt. Ganz im Gegenteil, ich bin davon überzeugt, dass viele der aktuellen technischen Entwicklungen wie Serverless Computing, Event-getriebene Architekturen, neue Programmiersprachen wie Go, Dart und Rust, Microservices und so weiter fundamentale Verbesserungen gegenüber manchen etablierten Prinzipien in der Softwareentwicklungen darstellen. Ich möchte mit diesem Beitrag allerdings davor warnen, Legacy-Code zu verurteilen und als die Wurzel allen Übels darzustellen.

Nachhaltige Innovationen entstehen schrittweise. Ein funktionierendes, komplexes Gesamtsystem basiert auf kleineren, funktionierenden Einheiten. Erfolgreiche Teams wissen das und finden einen Weg, wie Legacy und Leading Edge nebeneinander existieren und die dafür jeweils zuständigen Personen respektvoll miteinander umgehen können.

Windows Developer

Windows DeveloperDieser Artikel ist im Windows Developer erschienen. Windows Developer informiert umfassend und herstellerneutral über neue Trends und Möglichkeiten der Software- und Systementwicklung rund um Microsoft-Technologien.

Natürlich können Sie den Windows Developer über den entwickler.kiosk auch digital im Browser oder auf Ihren Android- und iOS-Devices lesen. Außerdem ist der Windows Developer weiterhin als Print-Magazin im Abonnement erhältlich.

Der Beitrag Feiert Legacy! Langfristig erfolgreiche Firmen gehen gelassen mit Legacy um ist auf entwickler.de erschienen.

]]>
https://entwickler.de/online/windowsdeveloper/stropek-service-feiert-legacy-579926423.html/feed 0
Bitcoin-Sicherheit: Das Ammenmärchen der Verschlüsselung? https://kiosk.entwickler.de/entwickler-magazin/entwickler-magazin-2-2020/das-ammenmaerchen-der-verschluesselung/ https://kiosk.entwickler.de/entwickler-magazin/entwickler-magazin-2-2020/das-ammenmaerchen-der-verschluesselung/#respond Wed, 26 Feb 2020 11:13:01 +0000 https://entwickler.de/?p=579926773 Immer wieder liest man, wie stark die Verschlüsselung von Bitcoin und wie sicher dadurch die Nutzung der Kryptowährung sei. Aber was ist denn nun in Bitcoin tatsächlich verschlüsselt? Dieser Artikel soll etwas Licht ins Dunkel bringen.

Der Beitrag Bitcoin-Sicherheit: Das Ammenmärchen der Verschlüsselung? ist auf entwickler.de erschienen.

]]>
Immer wieder liest man, wie stark die Verschlüsselung von Bitcoin und wie sicher dadurch die Nutzung der Kryptowährung sei. Aber was ist denn nun in Bitcoin tatsächlich verschlüsselt? Dieser Artikel soll etwas Licht ins Dunkel bringen.

Der Beitrag Bitcoin-Sicherheit: Das Ammenmärchen der Verschlüsselung? ist auf entwickler.de erschienen.

]]>
https://kiosk.entwickler.de/entwickler-magazin/entwickler-magazin-2-2020/das-ammenmaerchen-der-verschluesselung/feed 0