.NET und C# unter Linux

Da schau, meine Installationen von .NET 6 als auch .NET 7 gingen unter Mint Linux 21 einwandfrei durch. Und zwar keine „inoffizelle“ Sache wie Mono, sondern das „echte“ .NET von Microsoft. „.NET und C# unter Linux“ weiterlesen

Online-Training zu VB.NET

Mein neues Online-Training zu VB.NET ist bei LinkedIn Learning erschienen. Genaugenommen ist es ein Update von einem Training aus dem Jahr 2015, was damit ganz offensichtlich in die Jahre gekommen ist. Visual Basic ist eine objektorientierte Programmiersprache, die von Microsoft entwickelt wurde, um die Entwicklung typsicherer .NET-Apps zu ermöglichen. VB kommt in Web-, Cloud-, Desktop- und mobilen Umgebungen sowie in der Spieleprogrammierung zum Einsatz und eignet sich zudem bestens für den Einstieg in die Programmierwelt.

Mit Visual Basic und Visual Studio schnell und einfach programmieren lernen aus dem Kurs „Visual Basic Grundkurs“ von Ralph Steyer

Dieses Video-Training stellt Ihnen zunächst allgemeine Grundsätze der Programmierung, die IDE Visual Studio und das .NET-Framework vor. Danach erlernen Sie den Umgang mit Projekten in Visual Studio, um sich alle wichtigen Aspekte von „VB.NET“ Schritt für Schritt zu erarbeiten: die Syntax, die verschiedenen Arten von Programmen, grafische Oberflächen bis hin zum Einsatz von Programmen mit Datenbankanbindung. Ein eigenes Kapitel widmet sich VBA (Visual Basic for Applications), das in vielen Office-Anwendungen als Makrosprache zur Verfügung steht.

Nun kann man sich fragen, ob VB.NET überhaupt noch eine Relevanz hat? Alles rund um altes Basic als auch die Erben Visual Basic, VB.NET bzw kurz VB und VBA wird ja seit zig Jahren totgesagt. Genauso wie COBOL. Was letztendlich die Antwort impliziert – die alten Technologien und Sprachen werden totgesagt, neue Technologien und Sprachen gehyped und nach dem Hype bleiben die totgesagten Technologien und Sprachen übrig. „Online-Training zu VB.NET“ weiterlesen

Aktualisierungen gehen weiter

Ein weiteres Videotraining von mir bei LinkedIn Learning (LiL) (Python für C++-, Java- und C#-Entwickler:innen) wurde aktualisiert bzw. um neue Themen erweitert. Dabei geht es um den Einsatz von ChatGPT und KI zur Erstellung von Python-Code sowie die match…case-Anweisung.

Strategie für .NET-Programmiersprachen

Es gibt ein relativ neues Strategie-Papier von Microsoft, wie es mit den Kernsprachen für .NET weiter gehen soll. Interessanter Weise wird da nicht auf C++ eingegangen. Aber C/C++ steht sowieso „über den Dingen“ und jeder Diskussion.

Dass Microsoft C# als Kernsprache von .NET und Visual Studio sieht, ist nicht verwunderlich. Auch die Tatsache, dass Visual Basic nicht mehr wirklich weiterentwickelt wird, ist nicht neu. Ich finde es aber bemerkenswert, dass Visual Basic dennoch eine dauerhafte Zukunft zugesichert wird. So in etwa äußert sich Microsoft: „Wir stellen sicher, dass Visual Basic eine einfache und ansprechbare Sprache mit einem stabilen Design bleibt.“ Tja – Totgesagte leben länger.

Was aber für mich noch viel mehr für F# gilt. „Strategie für .NET-Programmiersprachen“ weiterlesen

Fett, fetter, Microsoft – und leider auch unverschämt was Altversionen angeht

Zwischen den Jahren nutze ich die Zeit und bereite eine Schulung zu „ASP.NET MVC“ vor, die im kommenden Januar und dann noch einmal im März laufen soll. Ich muss mich wieder etwas einarbeiten, obwohl ich vor einiger Zeit beim Springer-Verlag ein Buch zu „Webanwendungen mit ASP.NET MVC und Razor – Ein kompakter und praxisnaher Einstieg“ veröffentlicht habe. Aber ansonsten sind Webanwendungen mit ASP.NET MVC und Razor bei mir Randthemen, auch wenn ich viel mit purem C# und .NET zu tun habe.

Deshalb hatte ich vorgestern eine neue  Webseite als Referenz erstellt, die ich mit ASP.NET MVC und Razor in einem Docker-Container auf meinem Linux-Server laufen lasse.

Heute habe ich u.a. die Datenbank mit ins Spiel gebracht und im Grunde ist es wie immer bei Microsoft – wenn alles konfiguriert und installiert ist, geht das meiste mit Mausschubserei. Aber wehe, wenn nicht oder man vom vorgegebenen Pfad abweicht. Oder irgendwelche Neuerungen inkompatibel zu älteren Dingen sind (was gefühlt bei Microsoft ständig passiert). „Fett, fetter, Microsoft – und leider auch unverschämt was Altversionen angeht“ weiterlesen

Schulungsjahr 2022 beendet

Gestern habe ich meinen letzten Schulungstag 2022 (falls nicht noch ganz kurzfristig was aufläuft) gehalten (zu Python) und eben habe ich die letzte Rechnung für eine Schulung erstellt und versendet. Damit schließe ich das Schulungsjahr 2022 ab. Allerdings kommt vor Weihnachten noch eine Woche mit Videoaufnahmen bei LinkedIn Learning in Graz, worauf ich mich richtig freue.

Einführung in JavaFX/OpenJFX

Wenn ich die Schulungen dieses Jahr durchgehe, kamen wieder eine ganze Reihe an Themen vor. Wie üblich mit einigen Schwerpunkten, die sich im Vergleich zu den Jahren zuvor aber teils verschoben haben. Andere Themen sind komplett weggebrochen oder ich habe sie nicht annehmen können und ich muss mir überlegen, ob ich die weiter im Schulungsprogramm behalte. Auch wenn ich sie persönlich meist immer noch interessant finde (etwa F#, GWT oder Perl) bzw. unabhängig von direkten Schulungen oft verwende (etwa Eclipse oder alles rund um mein Lieblingsbetriebssystem Linux, wofür ich aber keine aktuelles Schulungsagenda mehr ausgearbeitet habe – zu nahezu allen anderen Schulungthemen habe ich ja eigene Bücher und Schulungsunterlagen und/oder Videotraining bei LiL erstellt).

„Schulungsjahr 2022 beendet“ weiterlesen

Django bzw. 2-facher Doppelschlag

„Doppelschlag“ aus der Überschrift kann man auf zwei Arten verstehen:

  1. In der Woche wurden bei LinkedIn Learning (LiL) gleich 2 neue Video-Training von mir veröffentlicht. Anfang der Woche die Überarbeitung meines Grundlagen-Trainings zu C und gestern dann ein brandneues Django-Training.
  2. Mit dem neuen Django Grundkurs verbinde ich die beiden IT-Technologien (Python und Web-Programmierung), die ich in den letzten Jahren wohl am meisten verwendet habe.

Django ist ein quelloffenes und serverseitiges Webframework, das die Programmiersprache Python mit einer modernen Architektur zur Generierung der klassischen Webtechnologien für den Client kombiniert. In meinem Grundlagenkurs zeige ich die Philosophie des Frameworks und beschreibe ausführlich die Installation und den Dateiaufbau eines Django-Projekts sowie den Betrieb in einer virtuellen Umgebung. Weitere Filme beschreiben den Unterschied zwischen einem Projekt und einer App, beleuchten das MVT-Schema, Views und Templates, und Sie sehen, wie Sie mittels QuerySets auf Datenbanken zugreifen. Schritt für Schritt lernen Sie, wie Sie ein eigenes Projekt starten und eine eigene Webapplikation entwickeln.

Es gibt ein neues LiL-Videotraining – mein neuer C Grundkurs

Heute ist bei LinkedIn Learning (LiL) ein neues Video-Training von mir erschienen. Wobei „neu“ etwas genauer beschrieben werden muss, denn es handelt sich um eine Überarbeitung eines Trainings, das ich schon vor vielen Jahren aufgenommen hatte. Aber die Überarbeitung ist sehr umfangreich gewesen und deshalb kann man in der Tat von „neu“ sprechen. Thema ist die Programmiersprache C. Also die Kernsprache fast aller modernen Programmiersprachen. Das Video-Training stellt das Syntaxkonzept von C ausführlich vor und Sie lernen Schritt für Schritt, wie Sie mit einer geeigneten Entwicklungsumgebung Programme schreiben können. Durch seine Strenge zwingt Sie C von Anfang an zu einem sauberen und strukturierten Programmierstil, was in Ihrer späteren Karriere zur/zum Entwickler:in von unschätzbarem Vorteil sein wird. Mit Hilfe zahlreicher Challenge/Solutions-Filme können Sie Ihr erworbenes Wissen immer wieder testen und Ihre Lösungen mit vorgegebenen Lösungen vergleichen.

Gemischtes Doppel bei den Belegexemplaren

Beim  Herdt-Verlag sind die letzten Wochen gleich zwei Unterlagen von mir in den jeweils aktuellen Versionen erschienen:

Da der Verlag bei mir im Ort seinen Sitz hat und Luftlinie nug gut 1 Kilometer weg ist, konnten meine Belegexemplare für beide Unterlagen eben direkt Vorort in Empfang genommen werden.

C# Grundlagen der Programmierung mit Visual Studio 2022

Seit einigen Jahren erstelle ich für den Herdt-Verlag Schulungsunterlagen. Dabei habe ich einige der Schulungsunterlagen von anderen Autoren übernommen, andere aber auch komplett neu entwickelt und geschrieben.

Der Herdt-Verlag ist übrigens mein einziger Kunde, dessen Sitz an meinem Wohnort ist. Weder in Bodenheim noch in Eppstein habe ich sonst jemals einen Kunden gehabt. Wenn ich einen Vertrag unterzeichnet habe, fahre ich mit dem Rad kurz um die Ecke und werfe diesen direkt ein.
Schulungsunterlagen von Herdt nutze ich selbst aber auch schon viele Jahre länger und als ich nach Bodenheim gezogen bin, habe ich das zum Anlass genommen, da einfach meine Expertise vorzustellen.
Und so ist es dazu gekommen, dass heute die Unterlagen C# Grundlagen der Programmierung mit Visual Studio 2022 veröffentlicht wurden. Das ist der überarbeitete Nachfolger der Unterlagen für Visual Studio 2019 und eine der Unterlagen, die ganz früher von einem anderen Autor erstellt wurden. Aber ich habe sie schon vor mindestens 7 oder 8 Jahren übernommen, mehrfach überarbeitet und mittlerweile sind die meisten Bestandteile von mir abgeändert oder neu hinzugefügt worden.

Erledigt

Die Aufnahmen für die Überarbeitung eines meiner Videotraining aus dem Jahr 2015 bei LinkedIn Learning ist durch. Auch wenn das Training noch in vielen Teilen aktuell war, da es um pures C geht und sich da in den letzten Jahren eigentlich nicht viel getan hat, war die Auffrischung doch aufwändig. Zwar habe ich diverse Videos beibehalten können, aber durch eine Umstrukturierung der Kapitel sind statt weniger Kapitel mit vielen Unterkapiteln nun 13 Kapitel daraus geworden. Und bei denen habe ich jeweils eine Challenge-Solution ergänzt. Das wird bei neuen Kursen von LinkedIn Learning immer mehr eingeführt und damit passt der Kurs auch vom Stil jetzt zu den neusten Kursen. Zudem habe ich einige lange Videos auf mehrere Videos aufgeteilt, Videos ein bisschen am Ende gestrafft, diejenigen mit veralteten Programmen und Ressourcen neu aufgenommen und Powerpoint-Slides neu gemacht. Wenn das durch die Postproduktion durch ist, wird vermutlich 50% des Kurses neu sein. Durch die vielen neuen Videos zu Challenge-Solution ist das Training auch nochmal gut 45 Minuten länger wie vorher – obwohl ich einzelne Videos sogar weggelassen und eben viele Videos gestrafft habe, indem ich die Abschlusssätze weggestrichen habe.

Und obwohl ich heute noch am Aufnehmen war, habe ich mir es nicht nehmen lassen, den Vormittag auf den Alteburger Markt zu gehen. Das ist ein traditioneller Viehmarkt zwischen dem Stadtrand von Eppstein und Heftrich, der 3x im Jahr stattfindet und auf den meine Familie schon seit Generationen geht. Allerdings ist der wegen Corona 2 Jahre komplett ausgefallen und heute war der 1. Alteburger seit über 2,5 Jahren.

Visual Studio 2022

Letzte Woche hatte ich eine Schulung zu C# gehalten und gestern wieder eine Anfrage für die kommenden Monate bekommen, die explizit das neue Visual Studio 2022 nutzen wird (Überarbeitung von Schulungsunterlagen). Auch wenn mein Standardkunde für die regelmäßigen C#-Schulungen noch auf Visual Studio 2019 setzt (der unternehmensweite Umstieg auf die Version 2019 wurde sogar erst Ende 2021 abgeschlossen), habe ich den neuen Auftrag zum Anlass genommen, die neue Version zu installieren und mal anzusehen.

Auf den ersten Blick ist fast alles gleich geblieben, aber mehr werde ich bei der Überarbeitung meiner Schulungsunterlagen rausfinden. Vorher kommen aber noch ein paar Schulungen, bei denen auch wieder eine der C#-Schulungen dabei ist, die mit Visual Studio 2019 gehalten werden müssen.

Großes Reinemachen der Datenträger

Diese Woche habe ich eine Remote-Schulung zu C# gehalten. Am Ende so einer Schulung gebe ich immer die von mir erstellten Quelltexte an meine Schulungsteilnehmer weiter. Da ich im Fall von so einer C#-Schulung natürlich mit Visual Studio arbeite, sind in meinen Projekten aber immer die ganzen *.dll, *.exe, *.obj und andere Dateien abgelegt, die beim Compilieren und Ausführen der Schulungsprojekte entstehen. Solche kompilierten Sachen sind für die Weitergabe an meine Teilnehmer natürlich unnötig und sogar kontraproduktiv, weil damit die weiterzugebenden Daten ziemlich umfangreich werden und – beim Verschicken über das Internet – die Firewall der Firmen, wo meine Teilnehmer arbeiten, diese Dateien meist grundsätzlich blockiert. Also stelle ich fast immer eine ZIP-Datei zusammen, die nur die eigentlichen Quelltexte und meist auch die Projekt- und IDE-Einstellungen enthält, wenn das – wie im Fall von Visual Studio – relevante Informationen sind.

Nun bin ich insbesondere bei meinem MateBook mit seiner extrem sparsamen 256 GByte-SSD schon seit Monaten am Limit und habe sogar diverse Verzeichnisse und Programme schon gelöscht oder auf eine externe SSD verschoben, die ich eigentlich gerne dabei bzw. auf der internen SSD des Notebooks gespeichert hätte.

Ich habe keine Ahnung, warum mir nie aufgefallen ist, dass ich vollkommen unnötig bei meinen ganzen Quelltexten der Bücher, Videotraining bei LinkedIn Learning, Schulungen und Kursen oft ebenfalls die ganzen *.dll, *.exe, *.obj und andere binäre Dateien sowie auch PlugIns und ähnliche Projektergänzungen und sogar alte Software, die ich in den Maßnahmen gebraucht hatte, mit gespeichert habe. Oder aufgefallen war mir das wohl schon – ich habe mich einfach nicht drum gekümmert.

Denn sinnvoll ist es schon, zu jeder Maßnahme (gleich ob Schulung, Buch, Videotraining, Kurs oder Projekt) die wirklich relevanten Dinge zu behalten. Ich speichere deshalb nach jeder Maßnahme auch die Projektdateien hinsichtlich der Programmierung. Die Einsendeaufgaben, die ich etwa bei der ILS erhalte, behalte ich ebenso auf Dauer. Und ich lege davon dann im Rahmen meiner üblichen Datensicherung auch zig Kopien an. Aber da ich vor dem Speichern als auch den Datensicherungen auf meinen vielen redundanten Medien in Bodenheim, Eppstein, der Cloud und im Banksafe eben fast nie aufgeräumt hatte, sind auf den Datenträgern mittlerweile so viele GByte an unnützem und zudem mehrfach redundantem Zeug entstanden, dass einfach mal ein großes Reinemachen notwendig war.

Diese unglaublich vielen Dateien machen ja auch eine Datensicherung wahnsinnig zeitintensiv, da das ganze überflüssige Zeug eine Synchronisation zeitlich förmlich explodieren lässt. Das habe ich gerade wieder bemerkt als ich meine externe Festplatte, die ich in Eppstein deponiert habe und so etwa einmal im Monat synchronisiere, auf Stand bringen wollte. Mein Datensicherungsprogramm SyncToy ist nur mit Fehlern durchgelaufen und die folgende direkte Kopieraktion von meinem NAS auf die Festplatte hat etwa 18 Stunden gebraucht.

Das hat mir gelangt und ich beseitige gerade über alle Datenträger hinweg die unnötigen binären Dateien. Im Wesentlichen befinden die sich bei Visual Studio-Projekten in den Verzeichnissen Debug und Release und bei Eclipse  & Co ist das .metadata-Verzeichnis oft auch riesig und kann jederzeit bei Bedarf reproduziert werden.

Also weg mit dem Zeug und noch den Installationsdateien einiger alter Software und ähnlichen Dingen. Ich denke, dass ich so pro Rechner bzw. Datensicherungsmedium vielleicht 10 – 40 GByte Platz gewinne. Kann auch deutlich mehr sein, aber die vielleicht 200 – 400 GByte, die ich damit over-all frei mache, sind gar nicht der Punkt.

Die Sache wird übersichtlicher und eben bei der Synchronisation während Datensicherungen deutlich schneller und auch stabiler. Der Upload auf Cloud-Datenspeicher geht natürlich ebenso viel schneller (gerade der) und eine komprimierte Datensicherung (auch Anlegen und Entpacken eines Archivs geht natürlich viel fixer) sollte vielleicht sogar wieder auf einen USB-Stick für den Banksafe passen.

Nur jetzt muss erstmal der bereinigte Stand synchronisiert werden und da greift nochmal das zeitlich aufwändige Problem, dass so viel Zeug an den verschiedensten Stellen auf  NAS & Co gelöscht werden muss. Aber wenn die große Putzaktion durch ist, sollte ich auf Dauer viel Zeit gewinnen.

 

Variablen tauschen – Tutorial zu Python

Schon seltsamer Zufall. Ich halte gerade eine Remote-Schulung zu C# und habe eben als Abschluss-Übung ein Beispiel durchgespielt, in dem die Teilnehmer mit einer Methode den Inhalt von zwei Variablen vertauschen sollen. Eben schaue ich, was der heute veröffentlichte Entwickler-Tipp zu Python für ein Thema hat. Tja – Variablen tauschen mit Python. Ich wusste es wirklich nicht, denn die Reihenfolge der Tipps und deren Veröffentlichung wird bei LinkedIn Learning entschieden. Bei Python geht so ein Vertauschen allerdings extrem elegant und kompakt. Weit weniger aufwändig als etwa in C#.

Das Billig-Chuwi als Skype-Remote-Server für Visual Studio

Mein Microsoft-Surface-Billig-Klon von CHUWI fristet ein eher gemütliches Dasein in meinem Eppsteiner Zweitbüro. Wenn ich mein Matebook nicht dabei habe und mal was am PC da machen will, kommt es gelegentlich zum Einsatz. Genau dafür habe ich das Teilchen ja gekauft – ein möglichst preiswerter Notfall-PC, den ich in Eppstein deponiere und wenn das CHUWI UBook Tablet mal so zum Einsatz kam, hat es sich durchaus ausreichend geschlagen. Mehr braucht es bei gelegentlichem Einsatz wirklich nicht.
Nur heute war der große Tag von dem Kerlchen. Ich habe nach 2 Wochen Azubi-Ausbildung in Python und MySQL die Woche für einen anderen Stammkunden eine Schulung in C# übernommen (natürlich wieder remote) und musste heute in Eppstein arbeiten, weil ein Handwerker sich angemeldet hatte.
Nur haben von den 5 Teilnehmern des Kurses 2 kein Visual Studio installiert. Oder zumindest nicht so, dass man C#-Projekte anlegen kann. Der Fehler geht ganz klar auf die Firma, die die Schulung in Auftrag gegeben hat. Wie kann man Teilnehmern eine C#-Schulung buchen und dann kein passendes Visual Studio auf deren Rechner bereitstellen? Da es sich um eine ganz große Firma handelt, geht auch nicht mal schnell eine Installation. Das muss beantragt werden und dann muss das Profil geändert werden usw. usw.
Das ist im Grunde nicht mein Problem, aber ich möchte natürlich, dass meine Teilnehmer zufrieden sind und von der Schulung profitieren. Einer der beiden Teilnehmer hat in der Folge seinen Privatrechner genutzt, aber bei dem anderen ging es nicht. Gestern haben wir uns für die reine Syntax von C# bei ihm mit einer Webseite beholfen, über die man C# im Browser ausführen kann. Zumindest einfache Syntax-Anweisungen. Aber bei echter OOP oder gar GUI-Programmierung langt das definitiv nicht.
Die Schulung verwendet nun Skype (!!) als Remote-Tool. Nicht Teams – nein, Skype. Kundenanforderung. Angeblich wird nächstes Jahr umgestellt, aber im Moment kommt noch das antike Skype zum Einsatz. Wobei es zur Not auch damit geht – das hatte ich bei dem Kunden schon mehrfach nutzen müssen und bin halbwegs zurecht gekommen.
Ja, und damit der Teilnehmer, der gänzlich ohne Visual Studio auskommen musste (bisher – vielleicht ist VS morgen nachinstalliert) , heute praktische Übungen durchführen konnte, habe ich neben meinem Matebook auch das Chuwi in die Sitzung angemeldet, da Visual Studio gestartet und ihm die Remote-Kontrolle via Skype beim Sharen des Programms übergeben. Was soll ich sagen? Ging richtig gut. Sowohl die Leistung von dem Chuwi hat ausgereicht also auch die Performance bei der Übertragung.

C#-Schulung

Die komplette kommende Woche halte ich wieder einmal eine C#-Schulung für einen Stammkunden. Immer noch remote. Das wird wohl noch einige Zeit so weiter gehen. Meine 2 Wochen in Hamburg im Oktober sind – soweit ich das bisher kommuniziert bekommen habe – auch schon wieder auf remote umgestellt. Es sieht so aus als würde ich dieses Jahr komplett online schulen (von der Einzelschulung über 3 Tage im Mai in meinen eigenen Räumen in Eppstein abgesehen).

Update Windows 10 aus der Konsole

Die regelmäßige Aktualisierung von Windows empfinde ich weitgehend als eine Katastrophe. Entweder aktualisiert sich Windows zum unpassenden Zeitpunkt (hatte ich gerade bei einem Kunden, bei dem das erzwungene Update während der Remoteschulung die Teilnehmer ziemlich blockiert hat) oder man deaktiviert das automatische Aktualisieren und dann ist man Out-Of bzw. die Geschichte lässt sich u:u: nicht wieder anschalten oder man sucht sich einen Zeitplan raus, von dem man vermutet, dass die Aktualisierungen nicht irgendwas anderes verhindern. Alles nicht wirklich der Bringer.

Auf meinen drei im Business-Einsatz genutzten Windows-10-Rechnern funktioniert das Windows-Update eigentlich nur auf meiner Workstation ohne großes Eingreifen. Und das auch nicht perfekt.

Auf meinem alten Terra-Notebook kann ich auf wuauserv gar nicht zugreifen. Ich bekomme immer einen Zugriffsfehler, wenn ich den Service starten will. Ich habe schon zig Wege versucht, aber alles ist bisher schief gelaufen (und selbstverständlich habe ich im Administrator-Modus gearbeitet). Auf dem Rechner bin ich mittlerweile mit einem Updates auf einem Stand von Anodazumal :-(. Was mich aber auch nicht extrem beunruhigt, da das Notebook schon mindestens 7 – 8 Jahre auf dem Buckel hat und nur durch ein Schnäppchen einer riesigen Notebook-SSD vor 2 Jahren vom kompletten Ausmustern gerettet wurde. Das Gerät ist wirklich nur noch mein Backup – sowohl als PC als auch Datenbackup vom NAS. Also Backup vom Backup. Dennoch – irgendwie will ich auch da mal ein Update hinbekommen. Ich spiele schon eine ganze Weile in der Powershell und mit net hin und her, aber bisher scheitert alles an den Zugriffsproblemen auf wuauserv.

Noch blöder ist es, dass ich auf meinem aktuellen Huawei-Matebook nur Windows Home mitgeliefert bekommen habe. Eine wirklich armselige Windows-Version (ja – me culpa – ich hätte ja schon auf die Pro-Version umsteigen können, aber bisher hatte ich noch keinen zwingenden Grund gesehen). Da hat man ja so gut wie keine Kontrolle über die Updates. Nicht einmal in den Einstellungen lässt sich der Dialog öffnen (warum auch immer). Ich bin bisher nicht einmal so ganz im Klaren gewesen, ob und welche Updates da installiert waren.

Aber da habe ich jetzt eine sinnvolle Lösung gefunden, um mit NuGet oder in der PowerShell Updates zu dem Zeitpunkt und dem von mir gewünschten Umfang zu erzwingen, wenn ich das will. Da ich die nächsten Wochen ein paar Remote-Schulungen zu C# halten werde, wollte ich vorher sowieso Visual Studio auf den neusten Stand bringen und dabei gleich NuGet ebenso. Und damit kann man dann auch Windows Updates komplett erzwingen. Schön in der Paket Manager-Konsole statt der grafischen, klebrigen Micky-Mouse-Oberfläche der PC Einstellungen. Oder man nutzt eben die PowerShell. Beides natürlich im Administrator-Modus.

Und das geht über die PowerShell so, dass man entweder PSWindowsUpdate oder WindowsUpdateProvider (Install-WUUpdates) verwendet. PSWindowsUpdate soll angeblich gegenüber des von Microsoft bereitgestellten PowerShell-Moduls Install-WUUpdates / Start-WUScan einige Vorteile bringen, aber da bin ich auf Hörensagen angewiesen.
Mit

Get-Command -Module WindowsUpdateProvider

findet man aber erst einmal heraus, welche Windows-Update-Provider auf einem PC verfügbar sind. Damit sieht man dann in etwa so etwas:

PS C:\WINDOWS\system32> Get-Command -Module WindowsUpdateProvider

CommandType Name Version Source
———– —- ——- ——
Function Get-WUAVersion 1.0.0.2 WindowsUpdateProvider
Function Get-WUIsPendingReboot 1.0.0.2 WindowsUpdateProvider
Function Get-WULastInstallationDate 1.0.0.2 WindowsUpdateProvider
Function Get-WULastScanSuccessDate 1.0.0.2 WindowsUpdateProvider
Function Install-WUUpdates 1.0.0.2 WindowsUpdateProvider
Function Start-WUScan 1.0.0.2 WindowsUpdateProvider

Sobald ein ausreichend neuer Build vorhanden ist, kann man dann Updates suchen und installieren (Updates für Windows und andere Microsoft-Produkte):

$Updates = Start-WUScan -SearchCriteria „IsInstalled=0 AND IsHidden=0 AND IsAssigned=1“
Write-Host „Updates gefunden: “ $Updates.Count
Install-WUUpdates -Updates $Updates

Ein anderer Weg führt eben über das PSWindowsUpdate-Modul, das so aus der PowerShell installiert werden kann (oder man nutzt einfach Visual Studio und da dann die Paket-Manger Konsole):

Install-Module -Name PSWindowsUpdate -Force

Danach kann man nach der Version schauen:

Get-Package -Name PSWindowsUpdate

 

Aber das passende NuGet-Version muss dabei vorhanden sein, wobei die auch bei Bedarf nachinstalliert wird. Die Ausgabe wird so etwas sein:

Name Version Source ProviderName
—- ——- —— ————
PSWindowsUpdate 2.2.0.2 https://www.powershellgallery… PowerShellGet

 

Für den nächsten Schritt sollten die Ausführungsrichtlinien für den aktuellen Prozess auf uneingeschränkt gesetzt werden:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Unrestricted -Force

Und dann holt man die verfügbaren Updates so:

Get-WindowsUpdate -MicrosoftUpdate -Verbose

Die Installation von allem ohne weitere Rückfrage geht dann so:

Install-WindowsUpdate -MicrosoftUpdate -AcceptAll -AutoReboot

Soweit habe ich die Sache mit meinem Matebook auch schon erfolgreich durchgespielt und jetzt werde ich mir das Terra-Notebook und auch die Workstation vornehmen und mal sehen, was ich da aktualisieren kann oder auch nicht.

Wenn das alles nicht hilft, werde ich nochmal den folgenden Tipp in der Admin-Konsole versuchen:

net stop wuauserv

net stop bits

cd %systemroot%

ren SoftwareDistribution SoftwareDistribution.bak

net start bits

net start wuauserv

Ich habe zwar wenig Hoffnung, dass die Geschichte insbesondere bei den Zugriffsproblemen auf wuauserv was hilft, aber vielleicht nutzt die Schrittfolge ja jemand anderem oder in einer anderen Konstellation beim Update.

Das Ende von Visual Basic

Es ist vielleicht etwas drastisch formuliert, aber VB hat fertig. Schon seit Jahren hat Microsoft immer wieder angekündigt, bei .NET nur noch auf C# und C/C++ zu setzen. Jetzt ist es amtlich, dass die letzten Neuerungen für VB mit .NET 5 kommen. Dann wird der Versionsstand eingefroren.

Was aber nicht heisst, dass man in absehbarer Zeit VB-Programme los ist bzw. nicht mehr mit VB programmieren wird. Das Beispiel Cobol zeigt es! Seit 30 Jahren totgesagt und – zumindest bei Banken und Versicherungen – immer noch stark im Betrieb.

Ein bisschen unter den Tisch fällt die Zukunft von F#. Denn auch hier hat Microsoft das Interesse verloren, wobei man zugeben muss (auch wenn ich dazu ein Videotraining veröffentlicht habe), dass diese Sprache von Anfang an ein Nischendasein geführt hat.