Entwicklung & Code
Neu in .NET 10.0 [6]: Generische Erweiterungsblöcke in C# 14.0
Erweiterungsblöcke mit dem Schlüsselwort extension habe ich in der vorherigen Folge der Serie zu .NET 10.0 vorgestellt. Ein Erweiterungsblock darf einen oder mehrere generische Typparameter (optional inklusive Einschränkung mit where) besitzen:
Weiterlesen nach der Anzeige
extension(List source) { … }
oder
extension(List source) where T : INumber { … }

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.
Folgender Code zeigt eine Klasse mit Erweiterungsblocken für List, wobei T auf Zahlen beschränkt ist, durch where T : INumber:
public static class MyExtensions
{
extension(List source) where T : INumber // <-- Receiver Ein Erweiterungsblock darf eine oder mehrere generische Typparameter (optional inklusive Constraint) besitzen!!!
{
public List WhereGreaterThan(T threshold)
=> source.Where(x => x > threshold).ToList();
public bool IsEmpty
=> !source.Any();
///
/// Erweitern um eine Instanz-Eigenschaft mit Getter und Setter
///
public int Size
{
get { return source.Count; }
set
{
while (value < source.Count) source.RemoveAt(source.Count - 1);
if (value > source.Count) source.AddRange(Enumerable.Repeat(default(T)!, value - source.Count).ToList());
}
}
// NEU: Operatorüberladung als Extension und neu ist auch, dass man += überladen kann
public void operator +=(int count)
{
source.Size = source.Count + count;
}
// NEU: Operatorüberladung als Extension und neu ist auch, dass man -= überladen kann
public void operator -=(int count)
{
source.Size = source.Count - count;
}
// NEU: Operatorüberladung als Extension und neu ist auch, dass man ++ überladen kann
public void operator ++()
{
source.Size += 1;
}
}
}
Folgender Code ruft die Erweiterungsmethoden für List auf:
Weiterlesen nach der Anzeige
public void Run()
{
CUI.Demo(nameof(CS14_ExtensionDemo) + ": Collection");
var list = new List { 1, 2, 3, 4, 5 };
var large = list.WhereGreaterThan(3);
Console.WriteLine(large.IsEmpty);
if (large.IsEmpty)
{
Console.WriteLine("Keine Zahlen größer als 3!");
}
else
{
Console.WriteLine(large.Count + " Zahlen sind größer als 3!");
}
CUI.H2("list.Size = 10");
// Das klappt: Die Liste wird auf 10 Elemente mit Nullen aufgefüllt
list.Size = 10;
foreach (var x in list)
{
CUI.OL(x, separator: " = ");
}
CUI.H2("list.Size -= 2");
list.Size -= 2;
bool restart = true;
foreach (var x in list)
{
CUI.OL(x, separator: " = ", restartCounter: restart);
restart = false;
}
CUI.H2("list.Size++");
list.Size++;
restart = true;
foreach (var x in list)
{
CUI.OL(x, separator: " = ", restartCounter: restart);
restart = false;
}
}
Der Code erzeugt folgende Ausgabe:

Ausgabe des Beispielcodes
(rme)
Entwicklung & Code
Software Testing: KI-gestützte Testfallermittlung | heise online
In der neuen Folge des Podcasts Software Testing spricht Richard Seidl mit Mark Menzel von der Landeshauptstadt München über die LLM-basierte Webanwendung MUCGPT und Sherlock, den städtischen Software-Test-KI-Assistenten. Das Gespräch zeigt, dass auch Verwaltung Innovation kann: Prompt Engineering statt Schulungsmarathon, ISO-29119-konforme Testfälle sowie Export nach TestLink und Xray.
Weiterlesen nach der Anzeige
Zu Gast: Mark Menzel
Mark Menzel verfügt über mehr als 25 Jahre Erfahrung im Bereich Softwarequalität und Testmanagement. Nach seiner Promotion in Business Administration spezialisierte er sich auf KI-basierte Testverfahren. Als Testmanager bei der Landeshauptstadt München leitet er dort Testprojekte. Darüber hinaus ist er als Hochschuldozent und Mentor tätig und erforscht, wie KI das Testen revolutionieren kann.
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: „KI-gestützte Testfallermittlung – Mark Menzel“ und steht auf YouTube bereit.
(mai)
Entwicklung & Code
pandas 3.0 bringt einheitlichen String-Typ und Performance-Optimierung
Fast drei Jahre nach der letzten Hauptversion steht jetzt Version 3.0 von pandas, der Bibliothek zur Datenanalyse mit Python, am Start. Zu den wichtigsten Änderungen gehören der dedizierte String-Data-Typ str, eine verbesserte Copy-on-Write-Methode sowie eine neue Standardauflösung für datums- und zeitähnliche Daten. Letztere verwendet standardmäßig Mikrosekunden statt Nanosekunden, um Grenzwertfehler für Datumsangaben mit einem Jahr vor 1678 oder nach 2262 zu vermeiden.
Weiterlesen nach der Anzeige
Effizientere Datenanalyse
Bei installierter PyArrow-Bibliothek interpretiert pandas 3.0 String-Spalten automatisch als Datentyp str statt als NumPy-object. Das soll für Leistungssteigerung und effizientere Zuweisung von Python-Objekten sorgen. Wie der neue Code aussehen kann, zeigt folgendes Beispiel:
# Old behavior (pandas < 3.0)
>>> ser = pd.Series(["a", "b"])
>>> ser
0 a
1 b
dtype: object # <-- numpy object dtype
# New behavior (pandas 3.0)
>>> ser = pd.Series(["a", "b"])
>>> ser.dtype
>>> ser
0 a
1 b
dtype: str # <-- new string dtype
Mit pandas 3.0 ist Copy-on-Write (CoW) nun die Standard-Speicherverwaltungstechnik. Damit verhält sich jedes Index-Ergebnis wie eine Kopie, sodass Änderungen am Ergebnis den ursprünglichen DataFrame nicht beeinflussen.
Da verkettete Zuweisungen nicht mehr funktionieren, entfällt SettingWithCopyWarning. Damit können die copy()-Aufrufe zum Unterdrücken dieser Warnung entfallen, was ebenfalls eine Verbesserung der Performance bedeutet.
# Old behavior (pandas < 3.0) - chained assignment
df["foo"][df["bar"] > 5] = # This might modify df (unpredictable)
# New behavior (pandas 3.0) - must do the modification in one step (e.g. with .loc)
df.loc[df["bar"] > 5, "foo"] = 100
Schrittweises Upgrade empfohlen
Weiterlesen nach der Anzeige
Mit dem neuen Release hat das Pandas-Team einige veraltete Funktionen entfernt. Deshalb empfiehlt es, zunächst ein Upgrade auf pandas 2.3 durchzuführen, um sicherzustellen, dass der Code ohne Fehlermeldungen läuft. Erst anschließend sollte man den Wechsel auf Version 3.0 angehen.
Installieren lässt sich pandas 3.0 über PyPI mit python -m pip install --upgrade pandas==3.0.* oder über conda-forge mit conda install -c conda-forge pandas=3.0.
In den Release Notes von pandas 3.0.0 lassen sich sämtliche Änderungen im Detail nachlesen. Weil sie ein Code-Update erforderlich machen können, stellen die Entwicklerinnen und Entwickler Migrationsanleitungen zur Verfügung, unter anderem für den neuen String-Data-Typ und die Copy-on-Write-Methode.
Lesen Sie auch
(who)
Entwicklung & Code
Die Produktwerker: Vibe Coding verändert die Produktentwicklung
Immer mehr Produktmenschen bauen selbst Software, statt ausschließlich Konzepte, Anforderungen oder Prototypen zu liefern. Entscheidungen werden direkt im Code sichtbar, Feedbackschleifen verkürzen sich, die Entwicklung gewinnt deutlich an Geschwindigkeit.
Weiterlesen nach der Anzeige
Chancen, Risiken und verschwimmende Rollenbilder
In dieser Podcastfolge diskutieren Oliver Winter und Tim Klein, welche Chancen und Risiken diese Entwicklung für Product Owner, Developer und Produktteams mit sich bringt. Sie beleuchten, warum Vibe Coding schnelles Lernen ermöglicht, gleichzeitig aber die Gefahr besteht, dass Product Discovery, Nutzerfeedback und Validierung in den Hintergrund geraten.
Ein weiterer Fokus liegt auf der veränderten Verantwortung. Wenn Produktentscheidung und Umsetzung zusammenfallen, verschwimmen klassische Rollenbilder. Das kann effizient sein, erfordert jedoch bewusste Auseinandersetzung mit Qualität, Wartbarkeit und langfristigen Auswirkungen.
Die Folge ordnet Vibe Coding als Werkzeug ein, das die Zusammenarbeit stärken kann – vorausgesetzt, Produktdenken, Nutzerorientierung und wirtschaftliche Verantwortung bleiben zentrale Leitplanken.
(Bild: deagreez/123rf.com)

Fachvorträge und Networking-Möglichkeiten: Die Product Owner Days am 5. und 6. Mai 2026 in Köln befassen sich in über 20 Vorträgen mit aktuellen Themen rund um Product Ownership, KI im Produktmanagement, User Research, Product Discovery und Product Economics.
Die aktuelle Ausgabe des Podcasts steht auch im Blog der Produktwerker bereit: „Lässt Vibe Coding Product-Owner- und Developer-Rollen verschmelzen?“.
Weiterlesen nach der Anzeige
(mai)
-
Entwicklung & Codevor 2 MonatenKommandozeile adé: Praktische, grafische Git-Verwaltung für den Mac
-
Künstliche Intelligenzvor 4 WochenSchnelles Boot statt Bus und Bahn: Was sich von London und New York lernen lässt
-
Entwicklung & Codevor 2 MonatenKommentar: Anthropic verschenkt MCP – mit fragwürdigen Hintertüren
-
Apps & Mobile Entwicklungvor 2 MonatenFast 5 GB pro mm²: Sandisk und Kioxia kommen mit höchster Bitdichte zum ISSCC
-
Apps & Mobile Entwicklungvor 2 MonatenHuawei Mate 80 Pro Max: Tandem-OLED mit 8.000 cd/m² für das Flaggschiff-Smartphone
-
Social Mediavor 1 MonatDie meistgehörten Gastfolgen 2025 im Feed & Fudder Podcast – Social Media, Recruiting und Karriere-Insights
-
Künstliche Intelligenzvor 3 MonatenWeiter billig Tanken und Heizen: Koalition will CO₂-Preis für 2027 nicht erhöhen
-
Datenschutz & Sicherheitvor 2 MonatenSyncthing‑Fork unter fremder Kontrolle? Community schluckt das nicht
