CodeLens für C++ in TFVC
Eine große Neuerung in Visual Studio 2013 war CodeLens. Allerdings konnten sich nicht viele Entwickler darüber freuen, denn diese Funktion blieb den Käufern der sehr teuren Ultimate-Edition vorbehalten. Zudem war CodeLens anfangs auch auf .NET-Code beschränkt, C++-Entwickler hatten nichts davon.
Mit Visual Studio 2015 kamen auch die Professional-Anwender in den Genuss von CodeLens, zudem wurde die CodeLens-Funktion auf C++-Dateien ausgeweitet. Voraussetzung ist allerdings ein GIT-Repository. Ein Umstieg von TFVC auf GIT kommt für mich aber nicht in Frage, weil damit auch die ganze Versionsgeschichte verlorengeht. Alle TFS-Anwender mit TFVC (Team Foundation Version Control) – also die große Mehrheit – blieben somit außen vor. In den Kommentaren zum verlinkten Blogeintrag wurde gefragt, ob CodeLens auch einmal für TFVC zur Verfügung stehen würde. Der Antwort nach sollte dies innerhalb des VS 2015-Zeitrahmens möglich sein.
Seitdem habe ich keinen weiteren Hinweis dazu gefunden, nicht in den Updatehinweisen zu Visual Studio 2015, nicht in denen zu Team Foundation Server 2015 und auch nicht zur VS 2017-Produktreihe. Blieb also nur der Selbstversuch. Aber auch nach der Aktualisierung meines TFS 2013.5 auf TFS 2015.3 blieb es beim leeren CodeLens-Fenster:
Mit Hilfe des CodeIndex-Befehls und dem Parameter /reindexAll habe ich den Index dann noch einmal erzeugt. Und siehe da:
Die neuen CodeLens-Informationen muss man sich allerdings auch mit einer größeren Datenbank erkaufen. Vor der Indizierung war meine TFS-Datenbank 2 GiB groß, nach der Indizierung belegt sie 4 GiB.
Neue IDE mit altem Compiler
Bei mir läuft immer noch Visual Studio 2013. Ein Umstieg auf Visual Studio 2015 kam damals nicht in Frage. Mit dem ersten Update wurden zwar die Spaltenbreite im Quellcodeverwaltungs-Explorer bei HiDPI-Auflösungen angepasst, andere HiDPI-Probleme (z.B. die Größe Kleine der Aktionsschalter beim Zusammenführen) existieren allerdings immer noch. Der größte Nachteil war für mich aber die aus 40 Mini-Dlls bestehende neue Universal CRT, die mittlerweile auch als optionales Update für Windows 7 und 8 über Windows Update verteilt wird. Nach dem GWX-Trojaner kann ich aber jeden verstehen, der nur die wichtigen Updates installiert und alle optionalen Updates links liegen lässt. Irgendetwas in mir sträubt sich dagegen, diese 40 Dlls bei der Installation pauschal in das SpeedCommander-Programmverzeichnis zu kopieren.
Mit dem Release von Visual Studio 2017 vor vier Wochen habe ich mich einmal wieder etwas intensiver mit dem Thema IDE und Compiler beschäftigt. Microsoft wirbt ja damit, dass die Performance von IDE und Compiler/Linker bedeutend zugelegt hat. Beim Öffnen meines SpeedCommander-Arbeitsbereichs mit 40 Projekten konnte ich aber keinen großen Unterschied feststellen. Das Erstellen von SpeedCommander samt den abhängigen Projekten dauert mit dem Compiler/Linker von VS 2013 ca. 2:10 Minuten, mit dem VS 2017-Toolset dagegen 2:30 Minuten. Das hat mich dann doch etwas überrascht. Man kann zwar auch weiter das alte VS 2013-Toolset verwenden (wenn beide Versionen nebeneinander installiert werden), allerdings wird dann im Projektmappen-Explorer bei jedem Projekt der Zusatz (Visual Studio 2013) angefügt. Bei den ganzen Zusätzen gehen die Projektnamen völlig unter und sind nur noch schwer herauszulesen.
Das brachte mich auf die Idee, dem VS 2017 einfach mal das VS 2013-Toolset als sein eigenes VS 2017-Toolset unterzujubeln. Die Projekte werden also auf das neue Toolset umgestellt, was den Zusatz (Visual Studio 2013) im Projektmappen-Explorer entfernt. Zudem werden die VC-Verzeichnisse atlmfc, bin, crt, include und lib aus VS 2013 nach VS 2017 übertragen. Das neue Layout des VC-Ordners in VS 2017 erfordert zwar einige Anpassungen, am Ende kann man aber den alten Compiler für VS 2017-Projekte verwenden. Das einzige, was wirklich stört, ist eine öfters ausgegebene D9002-Warnmeldung des VC 2013-Compilers über eine nicht unterstützte Kommandozeilenoption. Das lässt sich auch nicht abstellen.
Also machte ich den gleichen Test noch einmal mit einem frisch installierten Visual Studio 2015. Die wichtigsten IDE-Neuerungen im Vergleich zu VS 2013 passierten größtenteils in VS 2015, in VS 2017 kam nicht mehr viel dazu. Die fünf Verzeichnisse aus VS 2013 konnte ich 1:1 nach VS 2015 übernehmen. Die Projekte wurden ohne Fehler und Warnhinweise kompiliert und anschließend gegen die alte VC 2013-Laufzeit gelinkt. Das Starten und Debuggen des kompilierten Programms verlief ebenfalls ohne Schwierigkeiten. Anschließend habe ich noch die verschiedenen alten vcvarsxxxx.bat-Dateien des VS 2013-Toolsets durch die Pendants von VS 2015 ersetzt, damit man die Projekte auch per Kommandozeile kompilieren kann.
Das ist für mich nun die perfekte Kombination. Das Entwicklerherz erfreut sich an den Neuerungen von Visual Studio 2015, während die kompilierten Programme weiter die alte Laufzeit mit zwei Dlls verwenden und nicht die Universal CRT mit 40 Mini-Dlls voraussetzen. Zudem hat Visual Studio 2015 vermutlich alle Feature-Updates hinter sich. Zusammen mit dem alten Compiler ist das eine gute Basis für die nächsten Jahre.
SpeedCommander 16.40
Eine lizensierte Bibliothek ist anfangs trotz mitgeliefertem Quellcode immer wie eine Blackbox. Man kann zwar kleinere Fehler debuggen und beheben, aber der Überblick über das große Ganze fehlt. Bei mir hat es sich daher bewährt, jede Quelldatei von der ersten bis zur letzten Zeile nach meinen Regeln zu formatieren und zu kommentieren. Das hilft mir enorm dabei, die Funktionen und Hintergründe zu verstehen. Am Ende fühlt sich der Quellcode dann so an, als hätte ich ihn geschrieben. Er ist nun kein Fremdkörper mehr.
Genau das habe ich im April mit der Cloud-Bibliothek gemacht. Die überarbeitete Bibliothek sollte eigentlich erst in die nächste Hauptversion einfließen. Im Juni hat Dropbox allerdings bekanntgegeben, dass die API v1 Ende Juni 2017 abgeschaltet wird. Alle Anwendungen müssen auf API v2 aktualisiert werden. Ohne Aktualisierung können sie nicht mehr auf Dropbox zugreifen.
Da ich die neue API nicht zweimal einarbeiten (und pflegen) wollte, habe ich die überarbeitete Cloud-Bibliothek kurzerhand in den SpeedCommander 16-Zweig übernommen. Damit profitiert SpeedCommander 16 nun auch von einer verbesserten Fehleranzeige und der Übernahme des aktuellen Zeitstempels einer Datei beim Upload nach Dropbox oder Google Drive.
Zusätzlich wurden mehrere kleine Fehler beseitigt. Die neue Version könnt ihr euch auf der Download-Seite herunterladen.
Vorerst kein Zugriff auf Amazon Cloud Drive
Seit dem Sommer muss man sich bei Amazon bewerben, wenn man die API für das Amazon Cloud Drive nutzen möchte. Das habe ich getan, aber Amazon möchte mich nicht. Nach einem kurzen Mailaustausch zum Einsatz der API erhielt ich folgende Absage:
Thank you for your interest in using the Amazon Drive developer tools. We consider a variety of factors as we evaluate each invite request, including the use case your application will support. While our goal is to offer a broad and compelling assortment of applications to Amazon Drive customers, we are currently unable to approve your request for access.
Zum Glück gibt es ja noch jede Menge anderer Cloud-Anbieter.
SpeedCommander 16.30
Neu in SpeedCommander 16.30 sind die Anwendungsfavoriten-Parameter $(ActCaretName), $(InactCaretName), $(LeftCaretName) und $(RightCaretName). Sie geben den Dateinamen unter dem Auswahlbalken ohne Pfad zurück. sqc erstellt den Pfad zur Zieldatei (auch über mehrere Ebenen) automatisch, sofern er noch nicht existiert. Zudem wird bei Verwendung der Kommandos UPDATE oder FRESHEN automatisch auf ADD umgeschaltet, wenn die Archivdatei noch nicht existiert.
Zusätzlich wurden mehrere kleine Fehler beseitigt. Die neue Version könnt ihr euch auf der Download-Seite herunterladen.
SpeedCommander 16.20
Neu in SpeedCommander 16.20 ist die verbesserte Anzeige von Bilddateien auf hochauflösenden Bildschirmen. Bisher wurden Bilder in der Schnellansicht immer unabhängig von der DPI-Skalierung des jeweiligen Bildschirms in ihrer originalen Größe angezeigt. Das führte dazu, dass die Bilder mit zunehmender DPI-Skalierung immer kleiner wurden. Bei einer DPI-Skalierung von 200% waren sie so nur noch halb so groß.
SpeedCommander 16.20 beachtet bei der Bildanzeige in der Schnellansicht nun die DPI-Skalierung des Bildschirms und skaliert die Bilder dementsprechend automatisch hoch. Die Bilder werden also immer gleich groß angezeigt, egal ob die DPI-Skalierung des Bildschirms 100% oder 200% ist.
Zudem wurden noch einige kleine Fehler beseitigt. Die neue Version könnt ihr euch auf der Download-Seite herunterladen.
SpeedCommander 16.10
Die neue Version 16.10 kann ab sofort heruntergeladen und installiert werden.
Die Option Beim Start nur lokale Laufwerke in den Ordnerfenstern anzeigen im Einstellungsdialog auf der Seite Verhalten – Allgemein sorgt dafür, dass der Programmstart von SpeedCommander nicht mehr durch ein möglicherweise beim letzten Mal angezeigtes Netzlaufwerk verzögert wird. Mit Hilfe der Kommandozeilenparameter /left, /top, /width und /height kann eine fixe Startposition und -größe für das SpeedCommander-Fenster vorgegeben werden. Der Parameter /macro ermöglicht es, beim Start automatisch ein Makro auszuführen. Wird ein Dateiname übergeben, dann wechselt SpeedCommander in das entsprechende Verzeichnis und hebt den Dateinamen hervor.
Bitdefender 2016 hat sich bei Norton die Uneigenart abgeschaut, Erweiterungen für das Kontextmenü nur noch im Explorer selbst anzeigen zu wollen. Eine kleine Anpassung im neuen Update sorgt dafür, dass die Anzeige der Bitdefender-Kontextmenüeinträge auch in SpeedCommander wieder möglich ist.
Die anderen beseitigten Fehler findet ihr wie gewohnt in der Versionsgeschichte.
SpeedCommander 16.00
Die finale Version von SpeedCommander 16 ist nun verfügbar und kann heruntergeladen werden. Seit der RC-Version wurden noch zwei kleinere Fehler behoben:
- Listenansicht: Beim Erstellen eines neuen Ordners über das Kontextmenü wird der Eintrag für den neu erstellten Ordner nicht immer in den Editormodus versetzt
- SpeedEdit: Aktives Tab wird bei ‚Office 2007/2010-Design im Ribbon-Stil‘ nicht gekennzeichnet
Die letzten vier Wochen habe ich überwiegend damit verbracht, die Webseite etwas zu überarbeiten. Das grundlegende Design ist geblieben, es wurde aber in einigen Bereichen (z.B. bei der Farbe der Überschriften) etwas aufgefrischt. Alle Bilddateien sollten nun auch auf Retina-Bildschirmen schön scharf dargestellt werden. Ausgenommen davon sind natürlich die in den alten Blogeinträgen enthaltenen Bilder.
Die Übersichtsseite ist nun um einiges auskunftsfreudiger und zeigt zu jedem Punkt ein Informationsfenster an. Zudem gibt es eine Detailseite, die alle Funktionen und auch die Unterschiede zwischen Standard- und Pro-Version aufzeigt. Auf der Seite Was ist neu? werden die neuen Funktionen von SpeedCommander 16 in Wort und Bild beschrieben.
Die häufig gestellten Fragen und die Versionsgeschichte sind aus der alten Wissensdatenbank direkt auf diese Seite umgezogen. So ist nun bis auf das Forum alles unter einem Dach in einem einheitlichen Layout angesiedelt.
Zweite Betaversion von SpeedCommander 16
Die zweite Betaversion von SpeedCommander 16 kann ab sofort heruntergeladen werden. Im Vordergrund stand die Behebung der gefundenen Fehler:
- Verzögerter Start, wenn gemappte Netzlaufwerke inaktiv und nicht verfügbar sind
- Im Anpassen-Dialog fehlt auf englischen Systemen die Beschreibung für das Visual Studio 2015-Design
- Pro-Version: Langsamer Zugriff auf Dropbox/Google Drive, wenn der Cloud-Speicher sehr viele Dateien und Ordner enthält
- Pro-Version: Fehlermeldung beim Upload von 0-Byte Dateien auf Cloud-Speicher
- Pro-Version: Zeitstempel von Dateien wird beim Umbenennen in Google Drive nicht beibehalten
- Pro-Version: Beim Upload auf Google Drive wird der Mime-Typ nicht korrekt gesetzt
- Pro-Version: Dateien, die auf einen Cloud-Speicher hochgeladen wurden, können erst nach dem Trennen der Verbindung gelöscht werden
- Pro-Version: Fehlermeldung beim Einlesen von Metadaten für Bilddateien (Google Drive)
- Schnellansicht: Anzeige von Bilddateien funktioniert nicht unter Windows 7 x64
Die wesentlichen neuen Funktionen von SpeedCommander 16 stehen jetzt auch übersichtlich zusammengefasst auf einer neuen Seite.
Schlüsselaustausch bei SFTP
Mit OpenSSH 6.7 werden unsichere Algorithmen und Ciphers standardmäßig deaktiviert. Dazu gehört auch der Schlüsselaustausch-Algorithmus diffie-hellman-group1-sha1. Das führt leider dazu, dass sich SpeedCommander nicht mehr mit dem SSH-Server verbinden kann. Beim eigenen Server kann man dies noch durch Anpassen der Datei /etc/ssh/sshd_config korrigieren.
SpeedCommander 16 kennt nun auch den Schlüsselaustausch-Algorithmus diffie-hellman-group14-sha1, was die Verbindungsaufnahme zu SSH-Servern mit Standardkonfiguration wieder möglich macht. Ebenfalls neu ist die Unterstützung für den MAC-Algorithmus hmac-sha2-256.