entwickler.de https://entwickler.de PHP, JavaScript, Windows Development Tue, 26 Jan 2021 09:57:17 +0000 de-DE hourly 1 https://wordpress.org/?v=5.4.2 Nicht nur ein Thema für die Technik: E-Commerce-Security https://kiosk.entwickler.de/php-magazin/php-magazin-2-2021/e-commerce-security/ https://kiosk.entwickler.de/php-magazin/php-magazin-2-2021/e-commerce-security/#respond Tue, 26 Jan 2021 11:00:08 +0000 https://entwickler.de/?p=579957005 Eine Forsa-Umfrage [1] zeigt: Über 70 Prozent der Unternehmen sehen sich nicht durch Cyberkriminelle gefährdet. Gerade das E-Commerce-Umfeld ist für Kriminelle jedoch besonders interessant – und damit einem hohen Risiko ausgesetzt. Aber wie erkennen Betreiber Handlungsbedarf, wie stellen sie sich am besten auf – und wieso ist IT-Security nicht nur ein technisches, sondern auch ein betriebswirtschaftliches Thema?

Der Beitrag Nicht nur ein Thema für die Technik: E-Commerce-Security ist auf entwickler.de erschienen.

]]>
Eine Forsa-Umfrage [1] zeigt: Über 70 Prozent der Unternehmen sehen sich nicht durch Cyberkriminelle gefährdet. Gerade das E-Commerce-Umfeld ist für Kriminelle jedoch besonders interessant – und damit einem hohen Risiko ausgesetzt. Aber wie erkennen Betreiber Handlungsbedarf, wie stellen sie sich am besten auf – und wieso ist IT-Security nicht nur ein technisches, sondern auch ein betriebswirtschaftliches Thema?

Der Beitrag Nicht nur ein Thema für die Technik: E-Commerce-Security ist auf entwickler.de erschienen.

]]>
https://kiosk.entwickler.de/php-magazin/php-magazin-2-2021/e-commerce-security/feed 0
Software as a Service: Bei der Wahl von SaaS-Komponenten ist die Expertise der Entwickler sehr wichtig https://entwickler.de/online/cloud/software-as-a-service-entwickler-579957143.html https://entwickler.de/online/cloud/software-as-a-service-entwickler-579957143.html#respond Tue, 26 Jan 2021 09:54:58 +0000 https://entwickler.de/?p=579957143 Die Studie „How Development Teams Purchase SaaS” von Identity-and-Access-Management-Anbieter Auth0 bestätigt, dass fortschrittliche Unternehmen bei ihren Software-as-a-Service-Kaufentscheidungen die Mitsprache ihrer Entwicklerteams stärker berücksichtigen. Dadurch können sie ein Plus an Innovationskraft und Produktivität verzeichnen.

Der Beitrag Software as a Service: Bei der Wahl von SaaS-Komponenten ist die Expertise der Entwickler sehr wichtig ist auf entwickler.de erschienen.

]]>
Die Studie „How Development Teams Purchase SaaS” von Identity-and-Access-Management-Anbieter Auth0 bestätigt, dass fortschrittliche Unternehmen bei ihren Software-as-a-Service-Kaufentscheidungen die Mitsprache ihrer Entwicklerteams stärker berücksichtigen. Dadurch können sie ein Plus an Innovationskraft und Produktivität verzeichnen.

Im August 2020 befragte Bessemer Venture Partners im Auftrag von Auth0 rund 350 Entscheider weltweit zum Prozess ihrer Entscheidungsfindung beim Kauf von SaaS-Produkten. 64 Prozent der befragten Teilnehmer kamen aus Nordamerika, 20 Prozent aus der Region EMEA, 15 Prozent aus dem australisch-pazifischen Raum und 1 Prozent aus Südamerika.

91 Prozent der Umfrageteilnehmer sprachen sich dabei dafür aus, Entwicklern ein Mitspracherecht bei der Auswahl geeigneter Services einzuräumen, wobei 59 Prozent dies als „äußerst wichtig“ beziehungsweise „sehr wichtig“ einstuften. Die große Mehrheit sieht dadurch eine Steigerung der allgemeinen Arbeitszufriedenheit (88 Prozent) bei den Mitarbeitern sowie eine erhöhte Produktivität (87 Prozent) gewährleistet. Als wichtigste Gründe für den Einsatz von SaaS-Komponenten wurden von rund drei Vierteln der Umfrageteilnehmer eine „gesteigerte Agilität und Zeitersparnis” genannt. Darauf folgten die Erwartungen an eine Verbesserung von „Features und Funktionalität” sowie die „Nutzung von technischem Fachwissen”.

Mehr als die Hälfte der Umfrageteilnehmer (51 Prozent), die mindestens einmal im Monat neue Applikationen veröffentlichen, verwenden SaaS-Komponenten in mindestens der Hälfte ihrer Anwendungen. 80 Prozent der Befragten, die neue Funktionen in Zeiträumen zwischen einem und 12 Monaten auf den Markt bringen, setzen in der Mehrzahl ihrer Anwendungen keine SaaS-Komponenten ein.

58 Prozent der Befragten gaben an, dass ihre Unternehmen die Investitionen in SaaS-Services von Drittanbietern im Laufe des nächsten Jahres erhöhen werden. Der Fokus liegt dabei auf Aufgabenbereichen wie „Zahlungsabwicklung“, „Authentifizierung“ sowie „Datenmanagement und -speicherung“. So zeigt eine weitere Studie von Auth0 (The 2020 State of Application Assembly) auf, dass Firmen in jedem Fall das Outsourcing dem Eigenbau dieser Tools vorziehen werden. Die Befragten gaben zudem an, dass Authentifizierung für 83 Prozent der Anwendungen, die sie erstellen, erforderlich ist.

Die Umfrage untermauert die gängige Beobachtung, dass Cloud-Computing und damit SaaS für die Gesamtproduktivität und die Zusammenarbeit im Team eine große Bedeutung haben.

Da der Einsatz von SaaS-Komponenten mittlerweile zum Standard geworden sei, würden auch sicherheitsrelevante Services wie etwa für die Authentifizierung eine zunehmende Akzeptanz erfahren. Außerdem kann der Einsatz von SaaS für die Authentifizierung die Entwicklungsdauer bis zur Markteinführung verkürzen und die Kosteneffizienz optimieren. Allerdings gaben lediglich 58 Prozent der Befragten an, aktuell bereits für die Authentifizierung auf einen externen Service zurückzugreifen. Daraus lässt sich schließen, dass immer noch ein großer Teil der Unternehmen Authentifizierungslösungen, trotz hoher zeitlicher Aufwände, selbst entwickelt.

Der Beitrag Software as a Service: Bei der Wahl von SaaS-Komponenten ist die Expertise der Entwickler sehr wichtig ist auf entwickler.de erschienen.

]]>
https://entwickler.de/online/cloud/software-as-a-service-entwickler-579957143.html/feed 0
Rohdiamanten in der Cloud https://entwickler.de/online/cloud/cloud-services-hosting-579957144.html https://entwickler.de/online/cloud/cloud-services-hosting-579957144.html#respond Tue, 26 Jan 2021 09:50:05 +0000 https://entwickler.de/?p=579957144 Die Vorstellungen, was Cloud-Computing bedeutet gehen zwischen Profis und Nicht-ITlern häufig weit auseinander. Fertige Cloud-Services werden da schon mal als überteuerte Spielwiese von Nerds abgetan. Dass sich die Kosten und der Aufwand im Vergleich zum klassischen IT-Betrieb aber durchaus relativieren können, fällt häufig unter den Tisch. Vielleicht lässt sich ja der eine oder andere durch einige Azure-Beispiele überzeugen.

Der Beitrag Rohdiamanten in der Cloud ist auf entwickler.de erschienen.

]]>
Die Vorstellungen, was Cloud-Computing bedeutet gehen zwischen Profis und Nicht-ITlern häufig weit auseinander. Fertige Cloud-Services werden da schon mal als überteuerte Spielwiese von Nerds abgetan. Dass sich die Kosten und der Aufwand im Vergleich zum klassischen IT-Betrieb aber durchaus relativieren können, fällt häufig unter den Tisch. Vielleicht lässt sich ja der eine oder andere durch einige Azure-Beispiele überzeugen.

Nicht-ITler haben in der Regel keine oder eine falsche Vorstellung davon, was Cloud-Computing ist. Für sie ist Cloud gleichbedeutend mit Facebook, Webmail oder Dropbox. Interessanterweise haben aber auch viele, die aus der IT kommen und noch keine praktische Erfahrung mit Cloud-Lösungen haben, ein falsches Verständnis davon. Man hat immer noch das Bild vom klassischen Hostingprovider im Kopf. Wenige sind schon einen Schritt weiter und ihnen ist klar, dass PaaS und Serverless als Grundlage für den Betrieb von Anwendungen und Datenbanken den altbekannten IT-Betrieb komplett auf den Kopf stellen. Die vergleichsweise hohen Kosten von Servern bei den großen Cloud-Anbietern relativieren sich, wenn man die Gesamtkosten inklusive Wartung durch Administratorinnen und Administratoren mitrechnet.

Wie Cloud-Computing Dev-Teams produktiver macht

Was leider kaum jemand ohne Cloud-Erfahrung sieht, sind die Vorteile durch die vielen fertigen, begleitenden Cloud-Services. Sie nehmen Teams die Entwicklung von Lösungen für die unzähligen Cross-cutting Concerns ab, die man für professionelle Software heutzutage braucht: Logging und Telemetrie, Konfigurationsmanagement, leichtgewichtige VPN-Gateways, Vaults für Secrets, passwortlose Sicherheit für Machine-to-Machine-Kommunikation, Workflow-Engines, Sicherheitslösungen für Web-APIs und Web-Apps und vieles mehr. Die meisten dieser Dienste lassen sich wegen ihres Serverless-Charakters mit wenigen Klicks bzw. Zeilen Skriptcode aktivieren und laufen so gut wie wartungsfrei.

Wenn ich in Cloud-Workshops auf Managementebene auf die Produktivitätssteigerung und Professionalisierung durch diese ergänzenden Dienste hinweise, wird das nicht selten als Spieltrieb von Nerds abgetan. Klar, wir Softwarenerds fühlen uns in Cloud-Umgebungen wie Kinder im Spielzeugladen, die am liebsten alles haben wollen. Die Erwachsenen lassen sich durch solche Kleinigkeiten nicht blenden und philosophieren lieber über politische Differenzen zwischen den USA und Europa oder wichtige Dinge wie die Auswirkungen der variablen Cloud-Kosten auf den Budgetprozess. Früher war das so einfach. Man wusste, was die Anschaffung eines Servers im eigenen Rechenzentrum kostet. Mit Serverless wird alles so unplanbar. Mein Argument, dass das zwar stimmt, aber die unplanbaren Kosten durch die Cloud-Dienste massiv unter den planbaren Kosten der Entwicklung und des Betriebs der Software im eigenen Rechenzentrum liegen, wird oft nicht ernst genommen.

Um Nicht-ITlern Cloud-Vorteile aufzuzeigen, möchte ich diese Kolumne Beispielen aus Azure widmen, die man leicht übersieht, die jedoch ein echter Produktivitätsturbo für Entwicklungsteams sein können. Vielleicht hilft der Hinweis auf diese Dienste, das eine oder andere Cloud-skeptische Entscheidungsgremium zu überzeugen.

Application Insights: Logs spielen eine große Rolle. Azure bietet eine professionelle Lösung für die zentrale Speicherung und Auswertung von Logs (Azure Monitor). Auf Anwendungsebene gibt es jedoch einen Dienst, der einen viel genaueren Einblick in die Software, die in der Cloud läuft, ermöglicht: Application Insights, kurz AI. AI ist in kürzester Zeit in eine Anwendung eingebaut und verursacht geringe Kosten. Das AI API erlaubt es, im Lauf der Zeit zielgerichtet Ereignisse und Metriken zu ergänzen, die wichtig für die jeweilige Software sind. Die Auswertungs- und Analysemöglichkeiten, die man damit bekommt, verändern den Entwicklungsprozess grundlegend. Gezielte Performanceverbesserung, faktenbasierte Produktplanung und schnellere Identifizierung von Fehlerursachen sind nur drei Beispiele für die Auswirkungen eines konsequenten Einsatzes von AI, die konkrete Auswirkungen auf die Kundenzufriedenheit haben werden.

App Configuration: Jede größere SaaS-Lösung enthält eine große Anzahl an Einstellungsparametern. Simple Konfigurationsdateien reichen nicht aus. Es braucht eine Lösung zur zentralen Speicherung und Verwaltung von Einstellungen und Feature-Flags, auf die alle Systemkomponenten zugreifen, sonst geht der Überblick verloren und Konfigurationsfehlern wird Tür und Tor geöffnet. App Configuration ist schnell eingerichtet und bietet neben der Speicherung der Parameter auch ein gut bedienbares UI, Verschlüsselung von Einstellungen, historische Speicherung der Parameter und vieles mehr.

Azure Relay: In SaaS-Anwendungen für Geschäftskunden gibt es fast immer Use Cases, bei denen von der Cloud aus auf Software zugegriffen werden muss, die vor Ort beim Endkunden betrieben wird. Man kann einen eigenen Mechanismus entwickeln, wie ein dort installierter Dienst die Kommunikation mit der eigenen Cloud-Lösung übernimmt. Auch könnte man mit jedem Kunden Gespräche führen und eine Lösung mit VPN-Gateways erarbeiten. Beide Wege sind zeitraubend und teuer. Azure bietet mit Relay (aka Hybrid Connections) eine fertige, leichtgewichtige Lösung. Relay kann als Kommunikationsprotokoll mit zugehörigem C#-API eingesetzt werden. Wer noch weniger Arbeit haben will und auf Azure App Service setzt, kann die Variante Hybrid Connections einsetzen und muss für Integrationsszenarien mit der Kunden-IT überhaupt keinen Code schreiben.

Key Vault: Es wird so viel darüber gesprochen, wie unsicher Cloud-Lösungen sind. Das ist eine falsche Pauschalisierung. Richtig gemacht bieten sie bei gleichem Ressourceneinsatz in der Regel höhere Informationssicherheit. Der Key Vault ist ein gutes Beispiel dafür. Er ist ein fertiger, kostengünstiger Cloud-Dienst zur Speicherung und Verwaltung von Secrets (z. B. API Keys, DB-Zugangsdaten), Zertifikaten und Schlüsseln. Dahinter steckt speziell zertifizierte Hardware, die für starke Verschlüsselung der sicherheitskritischen Daten und verlässliche Audit-Logs sorgt. Kurz gesagt: Wenn sich Secrets nicht vermeiden lassen, gehören sie in der Azure-Cloud ohne Wenn und Aber in Key Vaults und keinesfalls in Konfigurationsdateien.

Managed Identity: Was ist besser als ein sicher gespeichertes Secret? Überhaupt kein Secret, dann kann nichts in falsche Hände geraten. Azure bietet mit Managed Identity eine passwortlose Lösung für Machine-to-Machine-Kommunikation. Wann immer die eigene Software auf Azure-Dienste wie Datenbanken, Key Vault, Messaging, App Configuration etc. zugreifen muss, kann sie das auf Basis von Managed Identity ohne Passwort tun. Dadurch wird im Entwicklungsteam eine Menge Energie frei, die man sonst in die Konzeption und Umsetzung der Verwaltung von Secrets stecken müsste.

Logic Apps: Jede größere Geschäftsanwendung beinhaltet Logik auf verschiedenen Abstraktionsebenen. Neben der Kerngeschäftslogik gibt es in vielen Fällen auch Geschäftsprozesse auf einer höheren Abstraktionsebene, bei denen verschiedene Dienste – selbst geschriebene und externe – koordiniert werden müssen, um einen größeren, komplexeren Geschäftsprozess abzubilden. Nicht selten muss man auch Menschen z. B. für Freigabeprozesse einbinden. Wenn Geschäftsprozessmanagement nicht das eigene Kerngeschäft ist, wird solchen Herausforderungen oft wenig Liebe geschenkt und provisorische Lösungen fallen einem irgendwann auf die Füße. Logic Apps kann hier Abhilfe schaffen kann. Damit lassen sich Prozesse über Servicegrenzen hinweg schnell und professionell umsetzen, ohne dass man Zeit in die Entwicklung einer eigenen Workflow-Engine investieren muss oder dafür eigene Server zu betreiben hat.

Private Endpoints: Nicht alle Web-APIs und Web-Apps einer größeren SaaS-Lösung müssen über das öffentliche Internet erreichbar sein. Manche APIs werden nur intern genutzt, manche Web-Apps dienen nur administrativen Zwecken und werden ausschließlich vom SaaS-Anbieter verwendet. Cloud-Plattformen wie Azure bieten schon seit langer Zeit virtuelle Netzwerke (VNets), die eine exakte Steuerung des Zugriffs auf Netzwerkebene erlauben. Leider widersprechen sich VNets und Serverless Computing. Die Kernidee von PaaS und Serverless ist, dass der Cloud-Anbieter einen zugrunde liegenden gemeinsamen Infrastrukturpool verwaltet, aus dem ad hoc Ressourcen den Anwendungen, die sie gerade brauchen, bereitgestellt werden. Es liegt in der Natur der Sache, dass ein von vielen Kunden genutzter Ressourcenpool und in VNets isolierte Ressourcen nicht kompatibel sind. Azure löst dieses Problem durch Private Endpoints. Sie anzulegen ist ein Kinderspiel. Private Endpoints blenden die jeweiligen PaaS-Dienste netzwerktechnisch in VNets ein und verhindern bei Bedarf den Zugriff aus dem öffentlichen Internet. Dadurch lassen sich eingeschränkter Zugriff und die Vorteile von PaaS oder Serverless vereinen.

Fazit

Professionelle Cloud-Umgebungen sind viel mehr als nur eine Alternative für das Hosting von Servern und Datenbanken. Der wesentliche Vorteil liegt in den vielen kleinen Diensten, die SaaS-Lösungen robuster und sicherer machen können. Sie erlauben es Entwicklungsteams, sich auf ihre Kernaufgabe, das Entwickeln von aus Kundensicht nützlichen Programmfunktionen, zu konzentrieren, statt sich mit Randthemen herumplagen zu müssen, die kein Kunde je zu Gesicht bekommt. Leider wird dieser Aspekt in der aktuellen Diskussion über Vor- und Nachteile der großen, meist von US-amerikanischen Unternehmen betriebenen Cloud-Plattformen zu wenig beachtet. Nicht selten werden Server- oder Containerhosting in Europa mit funktionsreichen Cloud-Umgebungen wie Microsoft Azure gleichgesetzt. Als Entwickler sehe ich einen riesigen Unterschied. Als Europäer würde ich gerne auf europäische Clouds setzen und hoffe, dass sich langfristig regionale Angebote entwickeln, die ein vergleichbares Portfolio an Serverless-Diensten anbieten, wie man sie heute bei Microsoft, Google und AWS findet.

 

Der Beitrag Rohdiamanten in der Cloud ist auf entwickler.de erschienen.

]]>
https://entwickler.de/online/cloud/cloud-services-hosting-579957144.html/feed 0
PHP 8.0-Features im Fokus: Constructor Property Promotion https://entwickler.de/online/php/php-8-teil-8-579957025.html https://entwickler.de/online/php/php-8-teil-8-579957025.html#respond Mon, 25 Jan 2021 11:10:08 +0000 https://entwickler.de/?p=579957025 PHP 8 wurde veröffentlicht und mit ihm eine Reihe von Verbesserungen, neuen Funktionen und einer generellen Überarbeitung, um die weit verbreitete serverseitige Websprache noch besser zu machen. In dieser Serie wollen wir darauf eingehen, was Sie über die neue Version wissen sollten.

Der Beitrag PHP 8.0-Features im Fokus: Constructor Property Promotion ist auf entwickler.de erschienen.

]]>
PHP 8 wurde veröffentlicht und mit ihm eine Reihe von Verbesserungen, neuen Funktionen und einer generellen Überarbeitung, um die weit verbreitete serverseitige Websprache noch besser zu machen. In dieser Serie wollen wir darauf eingehen, was Sie über die neue Version wissen sollten.

Im letzten Teil haben wir uns angesehen, wie PHP durch die neue Version 8.0 schneller wird. Heute werfen wir einen Blick darauf, wie PHP 8.0 den Entwicklern selbst hilft, effizienter zu arbeiten.

Der vielleicht größte Beitrag dazu, die Quality-of-Life mit PHP 8.0 zu erhöhen, besteht in der Constructor Property Promotion. Die Syntax wurde zu einem großen Teil von Hack, Facebooks PHP-Fork, übernommen, obwohl sie in anderen Sprachen wie TypeScript und Kotlin mit verschiedenen Syntaxen existiert. Am leichtesten ist das anhand eines Beispiels zu erklären. Man stelle sich die typische Service-Klasse einer modernen Applikation vor:

<?php

class FormRenderer
{
    private ThemeSystem $theme;
    private UserRepository $users;
    private ModuleSystem $modules;

    public function __construct(ThemeSystem $theme, UserRepository $users, ModuleSystem $modules) {
        $this->theme = $theme;
        $this->users = $users;
        $this->modules = $modules;
    }

    public function renderForm(Form $form): string
    {
        // ...
    }
}

Diese Klasse hat drei Dependencies. Jede einzelne muss vier Mal benannt werden: Einmal, um die Eigenschaft zu beschreiben, einmal für die Constructor-Parameter, einmal beim Referenzieren des Paramters und einmal beim Referenzieren der Eigenschaft. Das ist ziemlich langatmig. Manche IDEs unterstützen hier mittels einer Codevervollständigung, aber auch dann ist es noch umständlich. Es gibt Entwickler, die nur wegen dieser Langatmigkeit die Verwendung von Klassen und Dependency Injection vermeiden. Ab PHP 8.0 lässt sich das auf einen Punkt zusammenfassen:

<?php

class FormRenderer
{
    public function __construct(
        private ThemeSystem $theme, 
        private UserRepository $users, 
        private ModuleSystem $modules,
    ) { }

    public function renderForm(Form $form): string
    {
        // ...
    }
}

Wird der Visibility Marker auf die Constructor-Beschreibung bewegt, übermittelt man PHP damit: „Dieser Parameter ist auch eine Eigenschaft und du solltest ihm den angegebenen Wert zuteilen.“ Der Effekt in der Runtime ist genau der gleiche, wie beim ersten Beispiel. Allerdings braucht es nur ein Viertel so viel Aufwand beim Tippen. Falls jemandem das nachgestellte Komma in der Parameterliste aufgefallen ist: Das haben wir genau für dieses Feature hinzugefügt. Es ist immer noch möglich, weitere Eigenschaften auf die herkömmliche Art zu beschreiben und der Constructor kann auch immer noch einen Body haben. In diesem Beispiel ist der Body leer, aber falls es noch mehr Arbeit im Constructor zu erledigen gibt als den Eigenschaften nur irgendetwas zuzuweisen, dann kann der Code immer noch eingefügt werden und wird nach der Anweisung (oder „Promotion“) ausgeführt.

<?php

class FormRenderer
{
    private User $currentUser;

    public function __construct(
        private ThemeSystem $theme, 
        private UserRepository $users, 
        private ModuleSystem $modules,
    ) { 
        $this->currentUser = $this->users->getActiveUser();
    }

    public function renderForm(Form $form): string
    {
        // ...
    }
}

In der Praxis bestanden die große Mehrheit der Klassen, die ich in den letzten Jahren geschrieben habe, aus solch „langweiligen“ Constructors. Das bedeutet, dass die Promotion von Eigenschaften die Arbeit zukünftig extrem reduzieren wird.

Daten und Values

Das Promoten von Constructor-Eigenschaften ist für Value-Objekte äußerst wertvoll. (Value- und Service-Objekte sollten für PHP-Entwickler zu den am häufigsten auftauchenden Klassen gehören, es gibt nur wenig andere gute Modelle in PHP.) Viele Value-Objekte (oder Datentransfer-Objekte oder eine Reihe anderer Synonyme für sie) sind in der Praxis wenig mehr als Structs: Eine Ansammlung von benannten Eigenschaften, die möglicherweise Getter und Setter haben. In diesem Fall kann die ganze Klasse auf etwas mehr als einen Constructor reduziert werden:

<?php

Class MailMessage
{
    public function __construct(
        public string $to,
        public string $subject,
        public string $from,
        public string $body,
        public array $cc,
        public array $bcc,
        public string $attachmentPath,
    ) {}
}

Einigen mag es Unbehagen bereiten, dass die Eigenschaften auf „public“ gesetzt wurden. Allgemein würde ich sagen, dass das für ein internes (also nicht Teil vom API) Objekt in Ordnung ist. Aber für ein Objekt, das Teil eines öffentlichen APIs ist, lohnt es sich, wenn man eine Reihe an Getter-Methoden erstellt und die Eigenschaften privat stellt. Es ist nicht nur weniger Arbeit als vorher nötig, auch geht diese Variante noch effizienter mit dem Speicher um als es bei der Nutzung von Arrays der Fall wäre. Es ist außerdem möglich, nur einige Constructor-Parameter zu promoten und andere nicht. Letztere werden sich genauso verhalten, wie sie es immer getan haben.

An dieser Stelle sei auf einige Stolpersteine hingewiesen:

  • Die Schlüsselwörter für Sichtbarkeit gelten nur für Constructors. Werden sie in einer anderen Funktions- oder Methodensignatur verwendet, wird ein Fehler erzeugt.
  • Eine Eigenschaft darf nicht sowohl in der Constructor-Signatur als auch allein definiert werden. Falls die Eigenschaft mehr braucht, als in der Signatur enthalten sein kann, dann sollte man den bisherigen Weg gehen. Das funktioniert auch weiterhin gut.
  • Eigenschaften können nicht als aufrufbar (aufgrund der Komplexität der Implementierung können wir hier nicht tiefer darauf eingehen) typisiert werden, genauso wenig wie Eigenschaften, die vom Constructor promotet werden. Sie können allerdings ohne Typisierung bleiben.
  • Variadic Arguments können nicht promotet werden, weil es dadurch schwieriger wird, mit den Typen zu arbeiten.

Wieder einmal müssen wir uns bei Nikita Popov für diesen RFC  bedanken, auch wenn der Anlass ein Blogpost war, der Anfang letzten Jahres von meiner Wenigkeit verfasst wurde. Also beanspruche ich 0,1% des Ruhmes.

Wir sind auf der Zielgeraden. Es lohnt sich nächste Woche wieder vorbeizuschauen, wenn wir die nächsten PHP-8.0-Features behandeln.

Der Beitrag PHP 8.0-Features im Fokus: Constructor Property Promotion ist auf entwickler.de erschienen.

]]>
https://entwickler.de/online/php/php-8-teil-8-579957025.html/feed 0
C# Records: Datenklassen leicht gemacht mit C# 9 https://kiosk.entwickler.de/windows-developer-magazin/windows-developer-magazin-2-2021/datenklassen-leicht-gemacht-mit-c-9/ https://kiosk.entwickler.de/windows-developer-magazin/windows-developer-magazin-2-2021/datenklassen-leicht-gemacht-mit-c-9/#respond Mon, 25 Jan 2021 11:00:50 +0000 https://entwickler.de/?p=579957002 Mit dem finalen Release von .NET 5.0 bescherte uns Microsoft auch C# 9. Eine der neuen Funktionen sind C# Records, eine spezielle Form von Klassen. In diesem Artikel wird anhand zahlreicher Codebeispiele gezeigt, wann und wie sie eingesetzt werden können.

Der Beitrag C# Records: Datenklassen leicht gemacht mit C# 9 ist auf entwickler.de erschienen.

]]>
Mit dem finalen Release von .NET 5.0 bescherte uns Microsoft auch C# 9. Eine der neuen Funktionen sind C# Records, eine spezielle Form von Klassen. In diesem Artikel wird anhand zahlreicher Codebeispiele gezeigt, wann und wie sie eingesetzt werden können.

Der Beitrag C# Records: Datenklassen leicht gemacht mit C# 9 ist auf entwickler.de erschienen.

]]>
https://kiosk.entwickler.de/windows-developer-magazin/windows-developer-magazin-2-2021/datenklassen-leicht-gemacht-mit-c-9/feed 0
Entwickler-Mindsets, Angular 11.1 und KI-Bias – Unsere Highlights der Woche https://entwickler.de/online/development/mindsets-angular-ki-bias-wochenrueckblick-579956972.html https://entwickler.de/online/development/mindsets-angular-ki-bias-wochenrueckblick-579956972.html#respond Mon, 25 Jan 2021 09:09:45 +0000 https://entwickler.de/?p=579956972 Die IT-Welt steht niemals still und so hatten wir auch letzte Woche wieder viel zu berichten. Unter anderem ging es bei uns um das Mindset von Entwicklern und den KI-Bias. Aber auch unser Interview mit Gregor Biswanger hat unsere Leser interessiert, genauso wie das Minor Release Angular 11.1. In diesem Rahmen darf natürlich auch die Kolumne von Rainer Stropek nicht unerwähnt bleiben.

Der Beitrag Entwickler-Mindsets, Angular 11.1 und KI-Bias – Unsere Highlights der Woche ist auf entwickler.de erschienen.

]]>
Die IT-Welt steht niemals still und so hatten wir auch letzte Woche wieder viel zu berichten. Unter anderem ging es bei uns um das Mindset von Entwicklern und den KI-Bias. Aber auch unser Interview mit Gregor Biswanger hat unsere Leser interessiert, genauso wie das Minor Release Angular 11.1. In diesem Rahmen darf natürlich auch die Kolumne von Rainer Stropek nicht unerwähnt bleiben.

Der FSV Mainz 05 gewinnt gegen RB Leipzig, vereinzelter Schneefall und Netflix hat über 200 Millionen Nutzer. Grob zusammengefasst ist das die Lage der letzten Woche. Aber die wirklich wichtigen Dinge, nämlich Neuigkeiten und Highlights der vergangenen 7 Tage aus der IT-Branche, haben natürlich nur wir.  Wie immer haben wir die meistgelesen Artikel hier zusammengefasst. Wir wünschen viel Spaß beim Stöbern!

Mindset – Warum die Einstellung der Software-Entwickler großen Einfluss auf den Erfolg eines Projektes hat

In der Software-Entwicklung sind nicht nur technische Skills oder Erfahrung notwendig. Auch das Mindset der Entwickler spielt eine große Rolle, um am Ende einen Erfolg vorzuweisen. Dieser Artikel erklärt, was das Mindset ist, warum es so wichtig ist und wie es verbessert werden kann.

„Mein Open-Source-Projekt Electron.NET ist gerade für Blazor ein immer wichtigerer Bestandteil geworden.“

Das Jahr 2021 ist erst wenige Wochen alt, und so haben wir Gregor Biswanger aus dem Entwickler-Nähkästchen plaudern lassen: Mit welchen Technologien möchte er sich in diesem Jahr beschäftigen, was liegt im Trend und was hat sich im Bereich .NET getan? Hier geht es zum Interview.

Angular 11.1 veröffentlicht: Support für TypeScript 4.1 integriert

Mit Angular 11.1 steht das erste größere Update für die aktuelle Major-Version des Frameworks bereit. Enthalten sind natürlich zahlreiche Bugfixes. Vor allem für den Compiler und das Compiler-CLI sowie den Language-Service bringt die Minor-Version aber auch neue Features mit.

Der Kampf gegen KI-Bias: Künstliche Intelligenz auf dem Prüfstand

Der rasante Bedeutungszuwachs von KI bedeutet auch, dass die Technologie immer mehr Entscheidungen trifft, ohne dass wir diese hinterfragen. Ob bei Kreditbewilligungen, Bewerberauswahl oder Gesichtserkennungen – Unternehmen müssen heute mehr denn je sichergehen, dass ihre KI-Applikationen keinen Menschen diskriminieren. Damit das Risiko des KI-Bias – sprich der unbeabsichtigten Verzerrung von Entscheidungen durch künstliche Intelligenz – minimiert wird, müssen Entwickler eine Reihe von Dingen beachten.

Warum Cloud-Profis auf Infrastructure as Code setzen

Das Azure-Portal bietet eine riesige Menge an Funktionalitäten und selbst erfahrene Entwickler entdecken immer wieder für sie neue Features. Doch Cloud-Profis setzen in der Regel stattdessen auf Infrastructure as Code: Ein Plädoyer für den sparsameren Umgang mit dem Azure-Portal.

Der Beitrag Entwickler-Mindsets, Angular 11.1 und KI-Bias – Unsere Highlights der Woche ist auf entwickler.de erschienen.

]]>
https://entwickler.de/online/development/mindsets-angular-ki-bias-wochenrueckblick-579956972.html/feed 0
Was geht, GraalVM? Eine ausführliche Einführung in die GraalVM https://kiosk.entwickler.de/entwickler-magazin/entwickler-magazin-spezial-vol-26/was-geht-graalvm/ https://kiosk.entwickler.de/entwickler-magazin/entwickler-magazin-spezial-vol-26/was-geht-graalvm/#respond Fri, 22 Jan 2021 11:00:44 +0000 https://entwickler.de/?p=579956441 Nun ist sie also draußen, die neue Java Virtual Machine (JVM) mit dem Namen GraalVM, über die einer von uns (Stephan) schon im vergangenen Frühjahr gebloggt hat [1]. Seit damals hat sich viel getan, die GraalVM hat die Java-Landschaft deutlich verändert. Twitter verwendet sie schon seit Jahren für seine Scala Microservices [2]. Die GraalVM beginnt jetzt auch in der etwas konservativeren Businesswelt Fuß zu fassen, insbesondere im Bereich der Cloud-nativen Anwendungen. Grund genug also, sich die GraalVM noch einmal genau und ausführlich anzusehen und die Frage zu beantworten, ob es sich lohnt, die gute alte JVM durch etwas Neues zu ersetzen.

Der Beitrag Was geht, GraalVM? Eine ausführliche Einführung in die GraalVM ist auf entwickler.de erschienen.

]]>
Nun ist sie also draußen, die neue Java Virtual Machine (JVM) mit dem Namen GraalVM, über die einer von uns (Stephan) schon im vergangenen Frühjahr gebloggt hat [1]. Seit damals hat sich viel getan, die GraalVM hat die Java-Landschaft deutlich verändert. Twitter verwendet sie schon seit Jahren für seine Scala Microservices [2]. Die GraalVM beginnt jetzt auch in der etwas konservativeren Businesswelt Fuß zu fassen, insbesondere im Bereich der Cloud-nativen Anwendungen. Grund genug also, sich die GraalVM noch einmal genau und ausführlich anzusehen und die Frage zu beantworten, ob es sich lohnt, die gute alte JVM durch etwas Neues zu ersetzen.

Der Beitrag Was geht, GraalVM? Eine ausführliche Einführung in die GraalVM ist auf entwickler.de erschienen.

]]>
https://kiosk.entwickler.de/entwickler-magazin/entwickler-magazin-spezial-vol-26/was-geht-graalvm/feed 0
Entity Framework Core 3.0/3.1 mit Azure Cosmos DB verwenden https://entwickler.de/online/windowsdeveloper/entity-framework-core-cosmos-db-579956836.html https://entwickler.de/online/windowsdeveloper/entity-framework-core-cosmos-db-579956836.html#respond Fri, 22 Jan 2021 09:14:55 +0000 https://entwickler.de/?p=579956836 Seit der Veröffentlichung von Entity Framework Core 3.0/3.1 wird die Verwendung mit Azure Cosmos DB unterstützt. Wie das funktioniert, erklärt Thorsten Kansy in diesem Talk von der BASTA!.

Der Beitrag Entity Framework Core 3.0/3.1 mit Azure Cosmos DB verwenden ist auf entwickler.de erschienen.

]]>
Seit der Veröffentlichung von Entity Framework Core 3.0/3.1 wird die Verwendung mit Azure Cosmos DB unterstützt. Wie das funktioniert, erklärt Thorsten Kansy in diesem Talk von der BASTA!.

Mit Version 3.0 unterstützt das Entity Framework Core die erste nichtrelationale Datenbank in Form der Azure Cosmos DB. Kenntnisse und Erfahrungen mit diesem O/R-Mapper erleichtern also seitdem auch den Einsatz dieser NoSQL-Datenbank. Wie genau das funktioniert und welche Möglichkeiten es dabei gibt, zeigt Thorsten Kansy in diesem Talk von der BASTA! Spring 2020 anhand des aktuellen Stands der Technik.

Angular Camps 2021

Basic Camp für Einsteiger

Erfahren Sie eine strukturierte und nachvollziehbare Einführung in Angular. Alle Konzepte und Hintergründe leicht online erklärt!

Neu: Deep-Dive für Fortgeschrittene

Durchdringen Sie alle Konzepte von Angular. Lernen Sie mehr über Fallstricke, Missverständnisse und bewusste Einschränkungen. Als Online-Training oder vor-Ort in Düsseldorf!

Der Speaker: Thorsten Kansy

Thorsten Kansy ist seit über 30 Jahren als unabhängiger Softwarearchitekt, Entwickler und Trainer international tätig. Zudem schreibt er Bücher und Artikel rund um seine Spezialthemen: die Entwicklung komplexer Anwendungen mit .NET im Microsoft-Serverumfeld, insbesondere SQL Server (Data Platform und Business Intelligence). Er ist MCITP, MCTS, MCDBA, MCSD, MCAD, MCPD, MCSE+I und MCT-zertifiziert und sowohl in den Sprachen C# als auch VB.NET zu Hause. Sie erreichen ihn unter tkansy@dotnetconsulting.eu oder auf Twitter: @tkansy.

Der Beitrag Entity Framework Core 3.0/3.1 mit Azure Cosmos DB verwenden ist auf entwickler.de erschienen.

]]>
https://entwickler.de/online/windowsdeveloper/entity-framework-core-cosmos-db-579956836.html/feed 0
Mindset – Warum die Einstellung der Software-Entwickler großen Einfluss auf den Erfolg eines Projektes hat https://entwickler.de/online/karriere/mindset-entwickler-579956835.html https://entwickler.de/online/karriere/mindset-entwickler-579956835.html#respond Fri, 22 Jan 2021 08:57:29 +0000 https://entwickler.de/?p=579956835 In der Software-Entwicklung sind nicht nur technische Skills oder Erfahrung notwendig. Auch das Mindset der Entwickler spielt eine große Rolle, um am Ende einen Erfolg vorzuweisen. Dieser Artikel erklärt, was das Mindset ist, warum es so wichtig ist und wie es verbessert werden kann.

Der Beitrag Mindset – Warum die Einstellung der Software-Entwickler großen Einfluss auf den Erfolg eines Projektes hat ist auf entwickler.de erschienen.

]]>
In der Software-Entwicklung sind nicht nur technische Skills oder Erfahrung notwendig. Auch das Mindset der Entwickler spielt eine große Rolle, um am Ende einen Erfolg vorzuweisen. Dieser Artikel erklärt, was das Mindset ist, warum es so wichtig ist und wie es verbessert werden kann.

Das Wort Mindset stammt aus dem Englischen und hat viele Bedeutungen, wie zum Beispiel Denkweise, Einstellung oder Mentalität. Das Mindset ist sozusagen eine Mischung aus Gedanken, Gefühlen, Erfahrungen und Gewohnheiten. Wie ich beispielsweise auf Erfolg oder Misserfolg reagiere, welche Gefühle und Gedanken ich für die Zukunft habe, ist genauso ein Teil davon. Ein chinesisches Sprichwort lautet: „Achte auf deine Gedanken. Sie sind der Anfang deiner Taten“. Besonders in Software-Projekten spielt das Mindset eine wichtige Rolle. Das liegt daran, dass meist eine enorme Komplexität herrscht. Bei der Implementierung treten oft unvorhergesehene Probleme auf und es müssen viele Entscheidungen getroffen werden.

Was macht das Mindset eines Software-Entwicklers aus?

Offenheit

Eine Grundvoraussetzung ist es, offen für Neues zu sein. In der Software-Entwicklung ändern sich Dinge nicht nur schnell, sondern sehr schnell. Ein Framework kann heute noch auf dem neusten Stand sein und morgen wird bekannt gegeben, dass der Langzeit-Support in den nächsten Jahren ausläuft. Aus diesem Grund ist es wichtig, sich mit neuen Technologien und Frameworks zu beschäftigen und offen gegenüber neuen Ansätzen zu sein. Entwickler mit der Einstellung: “Das machen wir schon immer so, deswegen ändern wir es nicht” behindern in vielen Fällen die Innovation und Fortschritt im Projekt.

Resistenz gegen Widerstände

Außerdem ist es für Entwickler wichtig, eine gewisse Resistenz gegen Widerstände zu entwickeln. Fast täglich wird man mit neuen Problemen konfrontiert, die für einen positiven Projektabschluss wichtig sind. Wenn spezielle Anforderungen des Kunden oder technische Probleme gelöst werden, ist die Einstellung oft entscheidend. Freut man sich über eigene Lösungen und kommt in einen Flow-Zustand beim Entwickeln, strahlt man automatisch mehr Positives aus und trifft bessere Entscheidungen. Ist eine Entwickler beispielsweise von jeder Kleinigkeit genervt und wird schnell zynisch, kommt er selbst auch nur schwer voran. Dieser Typ Entwickler trifft oft Entscheidungen, die den geringsten Widerstand haben und er fängt an, unnötig zu diskutieren.

Diese Summe aller Entscheidungen der Software-Entwickler bestimmt am Ende die Qualität  und die Nachhaltigkeit der Softwarelösung.

Fehlerkultur

In der Software-Entwicklung gehört es zum Alltag, Fehler zu machen. Aber was bedeutet Fehler eigentlich? Gibt es überhaupt Fehler? Ist eine Implementierung, die einen Bug verursacht ein Fehler oder nur eine Implementierung, die die Logik der Anforderungen nicht komplett abdeckt? Ist ein fehlgeschlagener Build nach dem Push ein Fehler oder hat man eben vergessen, das Projekt lokal zu testen?

Etwas anders zu machen und dabei nicht sofort erfolgreich zu sein, würde ich nicht als Fehler deklarieren. Es gehört schlicht und einfach dazu und diese Akzeptanz ist ein wichtiger Baustein in der Software-Entwicklung. Personen, die Angst haben etwas “falsch” zu machen, können sich negativ auf das Projekt auswirken. Diese werden weniger Fragen stellen, weniger Kritik äußern und sich weniger trauen, eigene Entscheidungen zu treffen. Dagegen kann das Mindset “Ich kann alles schaffen und möchte mich auf jeden Fall weiterentwickeln und etwas lernen” zu deutlich positiveren Resultaten führen. Mit diesem Gedanken wird man sich öfter kritisch äußern und wahrscheinlich proaktiver sein. Fast jeder Projektleiter möchte Leute im Team haben, die sich kritisch äußern und Lösungsansätze beitragen. Nur so können diese auch diskutiert werden und können zum Erfolg beitragen.

IT Security Camp 2021

Interview mit Christian Schneider zum Thema „DevSecOps“

DevSecOps ist, bezogen auf Security-Checks, die logische Fortführung der Automatisierung im DevOps-Sinne

IT-Security Experte, Christian Schneider

Christian ist als freiberuflicher Whitehat Hacker, Trainer und Security-Coach tätig. Als Softwareentwickler mit mittlerweile 20 Jahren Erfahrung, fand er 2005 seinen Themenschwerpunkt im Bereich IT-Security.


Es ist wichtig, dass man sich selbst weiterentwickeln möchte und “Fehler” als Chance sieht, etwas Neues zu lernen. Außerdem gilt die Devise: Alles ist möglich! Wer in Lösungen, statt in Problemen denkt, erreicht meist bessere Ergebnisse. Für die Vermittlung dieses Mindsets sind einerseits die Entwickler selbst verantwortlich, teilweise aber auch der Projektleiter. Er muss als Vorbild vorangehen, ein Leader sein und ein gutes Mindset vorgeben, damit die Projektmitglieder mitgezogen werden.

Doch was kann man tun, um das Mindset zu verbessern?

Einer der wichtigsten Softskills ist es, seine eigenen Handlungen, Gedanken und Gewohnheiten reflektieren zu können. Bei negativen Gedanken, Ärger und Frust erstmal darüber nachzudenken, warum diese überhaupt vorhanden sind. Dann ist es wichtig festzustellen, was kann getan werden kann, um diese Gedanken loszuwerden und negative Assoziationen abzubauen. Es hilft auch, sich die Frage zu stellen: Warum bin ich Software-Entwickler geworden, was macht mir Spaß an diesem Beruf? Wenn man sich ein paar Minuten Zeit nimmt und diese Frage positiv beantworten kann, ist man sicher auf dem richtigen Weg.

Der Beitrag Mindset – Warum die Einstellung der Software-Entwickler großen Einfluss auf den Erfolg eines Projektes hat ist auf entwickler.de erschienen.

]]>
https://entwickler.de/online/karriere/mindset-entwickler-579956835.html/feed 0
Ein Schritt in die Zukunft: .NET 5.0 ist erschienen https://kiosk.entwickler.de/windows-developer-magazin/windows-developer-magazin-2-2021/ein-schritt-in-die-zukunft/ https://kiosk.entwickler.de/windows-developer-magazin/windows-developer-magazin-2-2021/ein-schritt-in-die-zukunft/#respond Thu, 21 Jan 2021 11:00:03 +0000 https://entwickler.de/?p=579956438 Am 10. November 2020 wurde .NET 5.0 von Microsoft veröffentlicht. Es ist noch nicht die angekündigte Vereinigung aller .NET-Varianten, aber es bringt viele schöne Neuerungen. Daher lohnt es sich, das finale Release genauer unter die Lupe zu nehmen.

Der Beitrag Ein Schritt in die Zukunft: .NET 5.0 ist erschienen ist auf entwickler.de erschienen.

]]>
Am 10. November 2020 wurde .NET 5.0 von Microsoft veröffentlicht. Es ist noch nicht die angekündigte Vereinigung aller .NET-Varianten, aber es bringt viele schöne Neuerungen. Daher lohnt es sich, das finale Release genauer unter die Lupe zu nehmen.

Der Beitrag Ein Schritt in die Zukunft: .NET 5.0 ist erschienen ist auf entwickler.de erschienen.

]]>
https://kiosk.entwickler.de/windows-developer-magazin/windows-developer-magazin-2-2021/ein-schritt-in-die-zukunft/feed 0
Angular 11.1 veröffentlicht: Support für TypeScript 4.1 integriert https://entwickler.de/online/javascript/angular-11-1-release-579956676.html https://entwickler.de/online/javascript/angular-11-1-release-579956676.html#respond Thu, 21 Jan 2021 10:43:16 +0000 https://entwickler.de/?p=579956676 Mit Angular 11.1 steht das erste größere Update für die aktuelle Major-Version des Frameworks bereit. Enthalten sind natürlich zahlreiche Bugfixes. Vor allem für den Compiler und das Compiler-CLI sowie den Language-Service bringt die Minor-Version aber auch neue Features mit.

Der Beitrag Angular 11.1 veröffentlicht: Support für TypeScript 4.1 integriert ist auf entwickler.de erschienen.

]]>
Mit Angular 11.1 steht das erste größere Update für die aktuelle Major-Version des Frameworks bereit. Enthalten sind natürlich zahlreiche Bugfixes. Vor allem für den Compiler und das Compiler-CLI sowie den Language-Service bringt die Minor-Version aber auch neue Features mit.

Angular ist immer auf dem neusten Stand, wenn es um TypeScript geht. So bringt auch die nun veröffentlichte Minor-Version von Angular 11 direkt ein Upgrade für die Sprach-Integration mit und unterstützt TypeScript 4.1, die neuste Version der Sprache. Das ist aber natürlich nicht die einzige Neuerung an Angular 11.1, das nun final veröffentlicht wurde. Das Update umfasst auch viele Bugfixes in verschiedenen Bereichen des Frameworks, sowie einige Feature-Änderungen. Letztere sind vor allem im Compiler, Compiler-CLI und Language-Service zu finden.

Angular 11.1: Neuerungen fürs Compiling

Geändert hat sich beispielsweise, dass ɵɵngDeclareComponent nun auch mit dem JIT Compiler verwendet werden kann. Eigentlich sollten die Komponenten-Deklarationen vollständig in AOT-kompilierten Code übersetzt werden. Die JIT-Integration ist also nur ein Fallback für Fälle, in denen das nicht möglich ist. Gleiches gilt für ɵɵngDeclareDirective. Im Language-Service ist nun eine automatische Vervollständigung für Structural Directives und für globale Properties in Ivy verfügbar. Außerdem stehen für styleURLs und templateURLs jetzt Optionen zum schnellen Aufrufen von Definitionen mit Ivy zur Verfügung. Für die Performance des Frameworks wurde das Treeshaking ausgeweitet. In verschiedenen Bereichen von Angular wird nun ngDevMode genutzt, um Warnungen in den Optimierungsprozess einzubeziehen.

Weitere Informationen zu Angular 11.1 können wie immer den Release Notes entnommen werden. Derzeit sind ein bis zwei Minor Releases pro Major-Version von Angular vorgesehen. Die Arbeit an Angular 12 sollte also bald beginnen, da das finale Release der neuen Major-Version noch im Frühjahr stattfinden sollte. Karsten Sitterberg geht von einer Veröffentlichung von Angular 12 im Februar aus; anhand des Release-Datums von Angular 11 im November sowie des üblichen Abstands von sechs Monaten zwischen den Major-Versionen wäre ein Zeitraum bis April denkbar.

Der Beitrag Angular 11.1 veröffentlicht: Support für TypeScript 4.1 integriert ist auf entwickler.de erschienen.

]]>
https://entwickler.de/online/javascript/angular-11-1-release-579956676.html/feed 0
Visual Studio 2019 16.9 Preview 3: Benutzerdefinierte Sounds im Test Explorer https://entwickler.de/online/windowsdeveloper/visual-studio-2019-16-9-preview-3-579956677.html https://entwickler.de/online/windowsdeveloper/visual-studio-2019-16-9-preview-3-579956677.html#respond Thu, 21 Jan 2021 10:42:56 +0000 https://entwickler.de/?p=579956677 Microsoft hat Visual Studio 2019 16.9 Preview 3 veröffentlicht. Neben Neujahrswünschen fanden in der Ankündigung natürlich auch die neuen Features Erwähnung: Es gibt von IntelliSense bis .NET und C++ Einiges zu entdecken, und sogar benutzerdefinierte Sounds im Test Explorer sind nun möglich.

Der Beitrag Visual Studio 2019 16.9 Preview 3: Benutzerdefinierte Sounds im Test Explorer ist auf entwickler.de erschienen.

]]>
Microsoft hat Visual Studio 2019 16.9 Preview 3 veröffentlicht. Neben Neujahrswünschen fanden in der Ankündigung natürlich auch die neuen Features Erwähnung: Es gibt von IntelliSense bis .NET und C++ Einiges zu entdecken, und sogar benutzerdefinierte Sounds im Test Explorer sind nun möglich.

Die erste Visual Studio Preview des Jahres ist erschienen: Visual Studio 2019 16.9 Preview 3. Darin wurde unter anderem an der Stabilität und Verwendung von IntelliSense, weiteren Kommandozeilenwerkzeugen für C++ und der erleichterten Bedienung gearbeitet. Wie gewohnt stellte Jacqueline Widdis, Release Manager im Visual Studio Release Team, die neuen Features in einem Blogeintrag vor.

IntelliSense, .NET und C++

Die Autovervollständigung IntelliSense wurde in Preview 3 sowohl mit einer erhöhten Stabilität als auch mit neuen Funktionen ausgestattet: Zum Beispiel kann Go-to-definition in Modulimporten nun mit Highlighting versehen werden und die Vervollständigung für make_unique, make_shared, emplace und emplace_back ist mit an Bord:

Visual Studio 2019

IntelliSense in Visual Studio 2019 16.9 Preview 3; Quelle: Microsoft

Auch für .NET gibt es Neues in IntelliSense, denn die Vervollständigung für Preprocessor-Symbole unterstützt nun ebenfalls Highlighting. Um das auszuprobieren, wird mit der Eingabe des #if Directives begonnen:

Visual Studio 2019

IntelliSense für .NET in Visual Studio 2019 16.9 Preview 3; Quelle: Microsoft

C++ erhält in der dritten Preview für Version 16.3 neue Kommandozeilenwerkzeuge, z. B. kann mittels des neuen Kommandozeilen-Switches /openmp:llvm die LLVM-Version auf der OpenMP Runtime als Ziel angesteuert werden. Der Switch gilt allerdings noch als experimentell und kann derzeit nur auf AMD64-Ziele angewendet werden.

Test Explorer und erleichterte Bedienung

Der Test Explorer unterstützt nun benutzerdefinierte Sounds. Diese werden abgespielt, wenn ein Test beendet wurde. Dabei können zwei verschiedene Sounds vergeben werden: Der erste spielt ab, wenn der Test erfolgreich durchgeführt wurde und Ergebnisse geliefert hat, während der zweite Sound beim Auftreten mindestens eines Fehlers abgespielt wird. Das Hinzufügen von Sounds trägt, wie Jaqueline Widdis hervorhebt, auch zur erleichterten Bedienung des Test Explorers für Nutzer mit eingeschränktem Sehvermögen bei.

Was die erleichterte Bedienung betrifft, wurde auch eine weitere Neuerung eingeführt: Die IDE kann erkennen, ob in den Windows-Einstellungen hoher Kontrast festgelegt wurde. Diese Einstellung wird dann für Visual Studio 2019 übernommen. Um die Funktion zu aktivieren, muss das Kästchen unter Use Windows High Contrast Settings angeklickt werden, das unter Tools > Options zu finden ist.

Weitere Neuerungen

Zu den weiteren neuen Features in Visual Studio 2019 16.9 Preview 3 zählt, dass das MVVM Tooling für XAML weiter ausgebaut wurde und dass die IDE-Integration von Address-Sanitizer-berichteten Ausnahmen (vcasan.lib) mit der kompletten Bandbreite an berichtbaren Adress Sanitizer Exceptions umgehen kann.

Alle weiteren Infos zur dritten Preview für Visual Studio 2019 Version 16.9 bietet der Visual-Studio-Blogeintrag.

Der Beitrag Visual Studio 2019 16.9 Preview 3: Benutzerdefinierte Sounds im Test Explorer ist auf entwickler.de erschienen.

]]>
https://entwickler.de/online/windowsdeveloper/visual-studio-2019-16-9-preview-3-579956677.html/feed 0