Künstliche Intelligenz
Neu in .NET 10.0 [25]: Neuer LINQ-Operator Shuffle()
Shuffle() mischt eine gegebene Menge von Objekten zufällig. Der neue Operator Shuffle() ändert die Ausgangsmenge nicht, sondern liefert das gemischte Ergebnis als IEnumerable zurück. Details finden sich im zugehörigen GitHub-Issue.
Weiterlesen nach der Anzeige

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.
Shuffle() verwendet unter der Haube die Klasse System.Random. Die Randomisierung erfolgt also mithilfe eines nicht kryptografisch sicheren Zufallszahlengenerators.
Folgender Code nutzt den neuen Befehl Shuffle():
public void Shuffle()
{
CUI.Demo();
CUI.H2("Zufällige Mischung der Liste der Zahlen von 1 bis 20");
// Erzeuge eine Liste mit den Zahlen von 1 bis 20
var numbers = Enumerable.Range(1, 20).ToList();
CUI.H3("Ausgangslage");
// Gib die Zahlen aus
Console.WriteLine(string.Join(", ", numbers));
CUI.H3("Shuffle()");
var numbersShuffled = numbers.Shuffle();
// Gib die Zahlen aus
Console.WriteLine(string.Join(", ", numbersShuffled));
CUI.H2("Zufällige Mischung der der Wörter in einem Satz");
var satz = "Geld macht nicht glücklich";
List words = satz.Split(" ").ToList();
CUI.H3("Ausgangslage");
Console.WriteLine(string.Join(" ", words));
CUI.H3("Shuffle()");
IEnumerable wordsShuffled = words.Shuffle();
Console.WriteLine(string.Join(" ", wordsShuffled));
}

Ausgabe des Codebeispiels (Abb. 1)
Shuffle() funktioniert aber nur im RAM bei LINQ-to-Objects. Es gibt keine Übersetzung in SQL bei Entity Framework Core. Möglich ist aber, Shuffle() auf eine Objektmenge im RAM anzuwenden, auch wenn diese von Entity Framework Core materialisiert wurde:
Weiterlesen nach der Anzeige
// var flights = ctx.Flights.Where(x => x.Departure == "Berlin").Shuffle().ToList(); // "The LINQ expression ould not be translated. Additional information: 'Shuffle' could not be translated".
var flights = ctx.Flights.Where(x => x.Departure == "Berlin").ToList();
var flightsShuffled = flights.Shuffle();
(rme)
Künstliche Intelligenz
Neu in .NET 10.0 [31]: Mehr Kontrolle beim Zertifikatsexport
Eine Neuerung in .NET 10.0 ist die Methode ExportPkcs12() zum Zertifikatsexport mit AES-Verschlüsselung und Hashing via SHA-2-256:
Weiterlesen nach der Anzeige
byte[] pfxData = cert.ExportPkcs12(Pkcs12ExportPbeParameters.Pbes2Aes256Sha256, password);

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.
Die bisherige Methode Export() verwendet noch veraltete Algorithmen (3DES-Verschlüsselung und SHA1-Hashing). Die alten Verfahren (3DES / SHA1) aus Export() sind allerdings ebenfalls über die neue Methode möglich, wenn man es wirklich will:
byte[] pfxData = cert.ExportPkcs12(Pkcs12ExportPbeParameters.Pkcs12TripleDesSha1, password);
Folgender Code zeigt ein Beispiel zum Erstellen und Exportieren eines Zertifikats:
public void Run()
{
CUI.Demo(nameof(FCL10_Certificates));
string certPath = @"c:\temp\meinZertifikat.pfx";
string password = "meinSehrGeheimesPasswort"; // Passwort zum Schutz des Zertifikats
// Selbstsigniertes Zertifikat erstellen
using (var rsa = RSA.Create(2048))
{
var request = new CertificateRequest(
"CN=TestZertifikat",
rsa,
HashAlgorithmName.SHA256,
RSASignaturePadding.Pkcs1);
// Zertifikat für 1 Jahr gültig machen
var cert = request.CreateSelfSigned(
DateTimeOffset.Now,
DateTimeOffset.Now.AddYears(1));
// ALT: Zertifikat mit 3DES-Verschlüsselung und SHA1-Hashing exportieren
// byte[] pfxData = cert.Export(X509ContentType.Pkcs12, password);
// NEU: Zertifikat als AES mit SHA-2-256 exportieren
byte[] pfxData = cert.ExportPkcs12(Pkcs12ExportPbeParameters.Pbes2Aes256Sha256, password);
// NEUE Methode, aber alte Sicherheitsverfahren: 3DES mit SHA-1
// byte[] pfxData = cert.ExportPkcs12(Pkcs12ExportPbeParameters.Pkcs12TripleDesSha1, password);
// PFX-Datei speichern
File.WriteAllBytes(certPath, pfxData);
Console.WriteLine($"Test-Zertifikat erstellt und gespeichert unter: {certPath}");
}
if (!File.Exists(certPath))
{
Console.WriteLine($"Datei nicht gefunden: {certPath}");
}
else
{
// Zertifikat laden
X509Certificate2 cert2 = X509CertificateLoader.LoadPkcs12FromFile(certPath, password);
Console.WriteLine($"Zertifikat geladen von {certPath}:");
Console.WriteLine($"IssuerName: {cert2.IssuerName.Name}");
Console.WriteLine($"Signaturalgorithmus (Hashing): {cert2.SignatureAlgorithm.FriendlyName}");
Console.WriteLine($"Öffentlicher Schlüsselalgorithmus: {cert2.PublicKey.Oid.FriendlyName}");
Console.WriteLine($"Key-Algorithmus OID: {cert2.GetKeyAlgorithm()}");
// Ob für ein Zertifikat-Export (z. B. .pfx/PKCS#12) AES verwendet wurde, steht nicht im Zertifikat selbst, sondern betrifft die Verschlüsselung der Containerdatei. Das Zertifikat enthält nur Infos zu Signatur- und Schlüsselalgorithmus (z. B. RSA, SHA256).
}
}

Der Beispielcode erzeugt diese Ausgabe (Abb. 1).
(Bild: King / stock.adobe.com)

Das ist neu in .NET 11.0: Dr. Holger Schwichtenberg und weitere Experten präsentieren am 17. November 2026 auf der Online-Konferenz betterCode() .NET 11.0 die Änderungen für Entwicklerinnen und Entwickler. Tickets zum Frühbucherpreis sind im Online-Shop verfügbar.
(rme)
Künstliche Intelligenz
Graustufen-Bild vom Jupiter: Wie ein Mann mit einem Gameboy Sterne fotografiert
Aufnahmen von Jupiter sind keine Seltenheit. Sowohl Amateur- als auch Profi-Astronomen haben in der Vergangenheit schon unzählige beeindruckende Fotos von dem Planeten gemacht. Trotzdem ist es dem Musiker und Retro-Tech-Fan Chris Graue Ende Juni gelungen, mit seiner Aufnahme für Aufsehen zu sorgen: Er hat den größten Planeten unseres Sonnensystems nämlich nicht etwa mit einer High-Tech-Kamera fotografiert – sondern mit einem Gameboy. In einem Video hat er jetzt detailliert erklärt, wie ihm das gelungen ist.
Weiterlesen nach der Anzeige
Kreatives Projekt sorgt für Aufmerksamkeit
Der Gameboy war lange Zeit die meistverkaufte Handheld-Konsole der Welt. In den 1990er-Jahren ging das Gerät von Nintendo millionenfach über die Ladentheke – und gilt bis heute als Kultobjekt. Im Jahr 1998 kam eine Kamera als Zubehör auf den Markt, die das Gerät um Fotografie-Funktionen erweiterte – allerdings mit stark eingeschränkten Möglichkeiten. Mit einer Auflösung von gerade einmal 0,014 Megapixeln war sie lediglich in der Lage, winzige Bilder in vier Graustufen zu erzeugen. Obwohl die Produktion schon 2002 wieder eingestellt wurde, hatte die Kamera laut Popular Science viele Fans.
Im Rahmen seines Astrofotografieprojekts hat Graue der Gameboy-Kamera jetzt ein Comeback verschafft. Da deren Reichweite allein aber bei Weitem nicht ausreicht, um Himmelskörper zu fotografieren, waren einige Anpassungen nötig. Zusammen mit einigen Freunden schloss er die Kamera mithilfe eines 3D-gedruckten Adapters an das Hooker-Teleskops am Mount-Wilson-Observatorium im US-Bundesstaat Kalifornien an. Technisch gesehen fotografierte die Kamera somit durch ein 730.000-Millimeter-Objektiv.
Gameboy-Adapter zum Nachdrucken
Zunächst versuchte Graue, Aufnahmen vom Mond zu machen. Er stellte allerdings fest, dass dieser für das extrem leistungsstarke Teleskop schlicht zu nah war. Mit einer durchschnittlichen Entfernung von rund 444 Millionen Meilen zur Erde erwies sich Jupiter dagegen als deutlich geeigneteres Motiv. Ohne Kontext sind die Aufnahmen kaum zu erkennen, trotzdem gelang es Graue, Jupiters Wolkenstreifen und den Rand des Planeten festzuhalten – für ihn zweifellos ein erfolgreiches Experiment. „Die Antwort lautet ja – wenn man sich nur genug ins Zeug legt, kann man auch mit seiner Gameboy-Kamera ein Foto von Jupiter machen”, erklärte er in einem Video auf Social Media.
Wie Engadget berichtet, hat Graue die Baupläne für den Adapter jetzt kostenlos veröffentlicht, damit sich alle Gameboy-Fans eine eigene Version mit einem 3D-Drucker ausdrucken können. Ergänzend dazu hat er ein kurzes Tutorial-Video veröffentlicht, in dem er die Nutzung erklärt. Er beschreibt den Adapter als „ein Rohr, das sich unter Druck in ein handelsübliches 1,25-Zoll-Okular für Teleskope einpassen lässt”. Es müssen aber nicht direkt Aufnahmen von Planeten sein, denn der Adapter könne auch ohne Teleskop genutzt werden. Laut Graue ist es möglich, andere Objektive mit dem Gameboy zu verbinden, die eine bessere Bildqualität bieten als die originale Nintendo-Kamera.
Weiterlesen nach der Anzeige
Dieser Beitrag ist zuerst auf t3n.de erschienen.
(jle)
Künstliche Intelligenz
Software Testing: Dokumentation mit KI-Personas automatisch prüfen
Dokumentation mit KI zu prüfen, indem man menschliche Verhaltensweisen simuliert: Das ist der Ansatz, den Ingo Eichhorst mitgebracht hat. Mit ihm spricht Richard Seidl darüber, wie sich Personas wie ein Junior-Entwickler oder ein Senior-Entwickler als KI-Agenten in eine CI/CD-Pipeline einbauen lassen, um Dokumentation nicht nur zu bewerten, sondern aktiv damit zu arbeiten. Der Junior-Entwickler verbraucht dabei fast sechsmal so viele Token wie der Senior, weil er an einer missverständlichen URL-Struktur scheitert und sich im Trial-and-Error verliert. Das zeigt direkt, wo man Dokumentation nachbessern muss. Die beiden reden auch darüber, warum das Domänenwissen hinter Code so schwer zu rekonstruieren ist, sobald es einmal verloren ist, und was passiert, wenn eine KI plötzlich zwischen Entwicklern und Management als Übersetzungsschicht wirkt.
Weiterlesen nach der Anzeige

Richard Seidl ist Berater, Speaker und Podcast-Host. Für ihn ist klar: Wer heute exzellente Software kreieren möchte, denkt den Entwicklungsprozess ganzheitlich: Menschen, Kontext, Methoden und Tools. Er hat seine Erfahrungen in acht Fachbüchern veröffentlicht, betreibt erfolgreich zwei Community-Podcasts und ist Beirat der heise-Konferenz betterCode() Testing.
„Wir müssen uns von dem Gedanken verabschieden, dass wir immer so einen 100-Prozent-Output bekommen.“ – Ingo Eichhorst
Empfohlener redaktioneller Inhalt
Mit Ihrer Zustimmung wird hier ein externes YouTube-Video (Google Ireland Limited) geladen.
Ingo Eichhorst ist AI Architect, CTO und Tech Trainer mit über zwei Jahrzehnten Erfahrung in Softwareentwicklung und Systemarchitektur. Seit den 1990er-Jahren gestaltet er digitale Systeme und verbindet dabei technologische Exzellenz mit unternehmerischem Denken. Bei Ionos arbeitet er als Engineering Trainer, parallel lehrt er als Visiting Lecturer für Künstliche Intelligenz an der University of Applied Sciences Nordhausen. Nebenberuflich begleitet er mit seinem Unternehmen better be great Start-ups, Scale-ups und NGOs bei der Umsetzung innovativer Technologien in marktfähige Produkte.
Softwarequalität im Gespräch
Dieses Format fokussiert sich auf Softwarequalität: Ob Testautomatisierung, Qualität in agilen Projekten, Testdaten oder Testteams – Richard Seidl und seine Gäste betrachten die Dinge, welche die Qualität in der Softwareentwicklung steigern.
Die aktuelle Episode ist auch auf Richard Seidls Blog verfügbar.
Weiterlesen nach der Anzeige
(mai)
-
Künstliche Intelligenzvor 3 Monaten
xTool P3 im Test: CO₂-Laser mit 80 Watt schneidet und graviert auch Acryl
-
UX/UI & Webdesignvor 1 WocheRegional & mit Gefühl: Identity für Klimafonds Baden-Württemberg › PAGE online
-
Künstliche Intelligenzvor 3 MonatenWeitere Entlassungswelle bei Disney: Bis zu 1000 Mitarbeiter betroffen
-
Apps & Mobile Entwicklungvor 3 MonatenMega-GPUs für Nvidia, AMD & Co: TSMC zeigt CoWoS-Package mit >11.600 mm² & 24 × HBM5E
-
Social Mediavor 2 MonatenMetas neuer Creative Setup Workflow: Was sich wirklich ändert – und warum das nicht nur eine UI-Frage ist!
-
Künstliche Intelligenzvor 3 MonatenApple‑Geräte mit Microsoft Intune verwalten – zweiteiliges Live-Webinar
-
UX/UI & Webdesignvor 2 MonatenHornbach – und die anderen Gewinner der ADC Annual Awards New York! › PAGE online
-
Apps & Mobile Entwicklungvor 3 MonatenMutter Palit dementiert: Gerüchteküche beerdigt fälschlicherweise Galax/KFA²
