Connect with us

Entwicklung & Code

Neu in .NET 9.0 [28]: Feature-Flags


Mit der neuen Annotation [FeatureSwitchDefinition] kann man Bezug auf eine vom Namen her selbst gewählte Projekteinstellung in der Projektdatei nehmen und für bedingte Kompilierung sorgen. Das bedeutet, dass beim Einsatz von Trimming/AOT der Programmcode für deaktivierte Features nicht übersetzt wird.


Der Dotnet-Doktor – Holger Schwichtenberg

Der Dotnet-Doktor – Holger Schwichtenberg

Dr. Holger Schwichtenberg ist technischer Leiter des Expertennetzwerks www.IT-Visions.de, das mit 53 renommierten Experten zahlreiche mittlere und große Unternehmen durch Beratungen und Schulungen sowie bei der Softwareentwicklung unterstützt. Durch seine Auftritte auf zahlreichen nationalen und internationalen Fachkonferenzen sowie mehr als 90 Fachbücher und mehr als 1500 Fachartikel gehört Holger Schwichtenberg zu den bekanntesten Experten für .NET und Webtechniken in Deutschland.


Online-Konferenz betterCode() 10.0 am 18. November 2025

Online-Konferenz betterCode() 10.0 am 18. November 2025

(Bild: coffeemill/123rf.com)

Das Programm steht fest: Auf der Online-Konferenz betterCode() .NET 10.0 am 18. November 2025 – ausgerichtet von iX und dpunkt.verlag in Kooperation mit IT-visions.de – präsentieren der Autor dieses Artikels, Dr. Holger Schwichtenberg, und weitere Experten die wichtigsten Neuerungen. Frühbuchertickets sind im Online-Shop erhältlich.

Im konkreten Beispiel funktioniert das so: Wenn der Feature-Switch "ColorPrinting.IsSupported" auf false steht, wird die Methode Print() beim Trimming entfernt, denn sie wird lediglich an einer Stelle aufgerufen, bedingt von der Eigenschaft IsSupported in der Klasse ColorPrinting.


using System.Diagnostics.CodeAnalysis;
using ITVisions;
 
namespace NET9_Console.FCL90
{
 public class ColorPrinting
 {
  [FeatureSwitchDefinition("ColorPrinting.IsSupported")] // liest Wert aus RuntimeHostConfigurationOption
  internal static bool IsSupported => AppContext.TryGetSwitch("ColorPrinting.IsSupported", out bool isEnabled) ? isEnabled : true;
 
  /// 
  /// Code, der ggf. bei Trimming/AOT entfernt wird, wenn ColorPrinting.IsSupported=false
  /// 
  internal static void Print(string s) 
  {
   CUI.Print(s, ConsoleColor.Yellow);
  }
 }
 
 /// 
 /// [FeatureSwitchDefinition] für Entfernen von Code bei Trimming/AOT
 /// 
 class FCL9_FeatureSwitches
 {
  public void Run()
  {
   CUI.Demo(nameof(FCL9_FeatureSwitches));
 
   Console.WriteLine("ColorPrinting.IsSupported=" + ColorPrinting.IsSupported);
 
   // Bedingung auf Feature Switch
   if (ColorPrinting.IsSupported)
   {
    // Dieser Aufruf und damit die ganze Methode Print() wird beim Trimming entfernt, wenn ColorPrinting.IsSupported=false
    ColorPrinting.Print("Ausgabe in Farbe");
   }
   else
   {
    CUI.Print("Keine Farbe");
   }
  }
 }
}


Folgendermaßen aktiviert man obiges Feature durch einen Eintrag in der Projektdatei. Jetzt wird die Methode Print() in der Klasse ColorPrinting beim Trimming nicht entfernt:




 
 




Screenshot mit farbiger Ausgabe

Screenshot mit farbiger Ausgabe

Wenn das Feature aktiviert ist, erscheint der Text farbig.

Folgendermaßen deaktiviert man obiges Feature durch einen Eintrag in der Projektdatei. Jetzt wird das Trimming die Methode Print() aus der Klasse ColorPrinting entfernen:



 
  
  
 



Screenshot mit nicht farbiger Ausgabe

Screenshot mit nicht farbiger Ausgabe

Wenn das Feature deaktiviert ist, erscheint der Text nicht farbig.


(rme)



Source link

Entwicklung & Code

Software Testing: Qualität ist kein Zufall


In dieser Episode sprechen Richard Seidl und Florian Fieber über den besonderen Anlass, dass Seidl mit dem Deutschen Preis für Softwarequalität ausgezeichnet wurde. Diese Auszeichnung bietet den Rahmen, um über die Rolle des Menschen in der Technologieentwicklung nachzudenken. Richard Seidl teilt seine Sichtweise, dass Qualität weit über Testdaten und Skripte hinausgeht und dass es darum geht, ein Umfeld zu schaffen, in dem Teams Qualität aktiv leben.

Seidl und Fieber diskutieren auch die zukünftigen Herausforderungen und Möglichkeiten, die sich durch die Integration von KI im Bereich Testing ergeben.

„Wenn ein Team wirklich Qualität lebt und nicht nur Testfälle schrubbt, dann ist das ganze Thema auf einem völlig anderen Level angekommen.“ – Richard Seidl

Bei diesem Podcast dreht sich alles um Softwarequalität: Ob Testautomatisierung, Qualität in agilen Projekten, Testdaten oder Testteams – Richard Seidl und seine Gäste schauen sich Dinge an, die mehr Qualität in die Softwareentwicklung bringen.

Die aktuelle Ausgabe ist auch auf Richard Seidls Blog verfügbar: „Qualität ist kein Zufall – Richard Seidl“ und steht auf YouTube bereit.


(mai)



Source link

Weiterlesen

Entwicklung & Code

Apple übernimmt Entwickler des Open Policy Agents


Open Policy Agent (OPA) ist eine Software, die Regeln (formuliert in der Sprache Rego) und Datenobjekte entgegennimmt und auf dieser Grundlage Entscheidungen trifft – Haupteinsatzgebiet sind Autorisierungsregeln, die die Frage beantworten, ob ein Nutzer eine Aktion ausführen darf. Weil OPA Open-Source-Software ist (Apache License 2.0) und vergleichsweise leicht in andere Anwendungen integriert werden kann, erfreut er sich großer Beliebtheit in der Cloud-Native-Community: OPA wird unter anderem genutzt, um über Anfragen ans Kubernetes-API zu entscheiden, trifft in Banken aber auch Entscheidungen, wer welche Anfragen an interne Systeme stellen darf.

Erfunden wurde OPA vom Unternehmen Styra, das mit Zusatzprodukten und Dienstleistungen rund um OPA Geld verdient hat. Auf der Homepage findet man die Logos von Zalando, CapitalOne und dem Europäischen Patentamt. Auch Goldman Sachs und Netflix gehört zu den OPA-Nutzern. Der Code von OPA selbst liegt aber nicht mehr in der Hand von Styra: 2018 wurde OPA als Incubating-Projekt von der CNCF (Cloud Native Computing Foundation) akzeptiert, seit 2021 hat es den höchsten Status „Graduated“ erreicht und hat insgesamt 485 Contributors.

Jetzt steht der nächste Umbruch an: Die Erfinder von Open Policy Agent sowie weitere Mitarbeiter des Unternehmens Styra wechseln den Arbeitgeber: Apple, ebenfalls OPA-Nutzer, übernimmt Styra-CTO Tim Hinrichs und weitere Entwickler. Das hat Hinrichs im OPA-Blog verkündet. „Apple ist ein enthusiastischer OPA-Nutzer, der es als zentrale Komponente seiner Autorisationsinfrastruktur nutzt, um ein großes Portfolio globaler Clouddienste zu verwalten.“

Weil der Code bereits in der Hand der CNCF liegt, ändert sich das Open-Source-Projekt nichts. Der Code bleibt Open Source und wird wie zuvor von der CNCF verwaltet. Auch die Liste der Maintainer soll sich nicht ändern. Neu ist vielmehr, dass Zusatzprodukte aus dem Styra-Portfolio ebenfalls Open Source werden und ins öffentliche Repository umziehen: die kommerzielle OPA-Distribution EOPA, die Verwaltungsoberfläche „OPA Control Plane“, mehrere SDKs sowie der Rego-Linter namens Regal.

Website und Rego-Playground (eine Website, um Rego-Regeln zu testen) sollen wie gewohnt weiterlaufen und auch die Entwicklung soll weitergehen. Unklar hingegen ist, in welcher Form das Unternehmen Styra weiterarbeiten wird. Dazu macht der Blogpost keine Angaben. Große Organisationen, die gehofft haben, bei Styra die Autorisierungsexpertise und Beratung von Tim Hinrichs und den anderen OPA-Kernentwicklern einkaufen zu können, gehen leer aus: Diese Expertise nutzt jetzt Apple.


(jam)



Source link

Weiterlesen

Entwicklung & Code

software-architektur.tv: Netflix ohne Bounded Contexts


In der Softwarearchitektur gilt: Systeme lassen sich besser warten und flexibler gestalten, wenn man sie in mehrere Bounded Contexts aufteilt – und das ist gerade bei Microservices-Systemen entscheidend. Doch nun hat ausgerechnet Netflix, ein Pionier der Microservices-Bewegung, einen Blogpost veröffentlicht, der einen ganz anderen Weg propagiert: „Model Once, Represent Everywhere: UDA (Unified Data Architecture)„.

In dieser Episode nimmt Eberhard Wolff den Ansatz von Netflix genauer unter die Lupe und diskutiert, ob die Zeit gekommen ist, die Idee klar getrennter Bounded Contexts infrage zu stellen – und stattdessen auf ein zentrales Modell zu setzen.

Lisa Maria Schäfer malt dieses Mal keine Sketchnotes.

Die Ausstrahlung findet live am Freitag, 22. August 2025, 13 bis 14 Uhr statt. Die Folge steht im Anschluss als Aufzeichnung bereit. Während des Livestreams können Interessierte Fragen via Twitch-Chat, YouTube-Chat, Bluesky, Mastodon, Slack-Workspace oder anonym über das Formular auf der Videocast-Seite einbringen.

software-architektur.tv ist ein Videocast von Eberhard Wolff, Blogger sowie Podcaster auf iX und bekannter Softwarearchitekt, der als Head of Architecture bei SWAGLab arbeitet. Seit Juni 2020 sind über 250 Folgen entstanden, die unterschiedliche Bereiche der Softwarearchitektur beleuchten – mal mit Gästen, mal Wolff solo. Seit mittlerweile mehr als zwei Jahren bindet iX (heise Developer) die über YouTube gestreamten Episoden im Online-Channel ein, sodass Zuschauer dem Videocast aus den Heise Medien heraus folgen können.

Weitere Informationen zur Folge finden sich auf der Videocast-Seite.


(mdo)



Source link

Weiterlesen

Beliebt