TFS-2015 inplace Upgrade in ca. 30 Minuten

Heute habe ich mir mal Zeit genommen ein Upgrade meines TFS-2013 auf TFS-2015 durchzuführen.
Mein Windows 2008R2 Server war mit SQL 2012 Server direkt bereit für das Update.

Summa summarum etwas mehr als 30 Minuten bis ich den folgenden Bildschirm hatte.

TFS-Upgrade3

Die Schritte waren:

  1. „Extra“ Backup des TFS
  2. Windows Update für virtuelle Maschine explizit noch mal ausführen.
  3. Snapshot der virtuellen Maschine ausführen.
  4. TFS-2015 Installation ausführen
  5. Beim automatischen Ausführen des Upgrade Wizards wurde erkannt, dass Powershell 3.0 nicht installiert ist. Sprich das Windows Management Framework 4.0 fehlte.
  6. Nach der Installation war leider ein Neustart fällig und der Upgrade Wizard wurde dadurch abgebrochen.
  7. Dann dauerte es leider etwas bis ich den Upgrade Wizard wieder „gefunden“ habe… 😉
    TFS Management Console starten -> Anwendungsebene auswählen -> Komponentenkonfiguration auswählen und im Konfigurationscenter dann Upgrade auswählen
  8. Abschließend die Reste des TFS und des alten Datei Caches aus „C:\Program Files\Microsoft Team Foundation Server 12.0“ entfernen.
  9. Done!

 

Ein kleiner Doppelschlag: RTM für VisualStudio 2015 und VisualStudio Update 5

Heute haben zwei neue VisualStudio Versionen das Licht des RTM erblickt 😉

VisualStudio 2015 ist verfügbar und zeitgleich wurde auch VisualStudio 2013 Update 5 veröffentlicht.

Achtung: Wer als Sprache Deutsch angegeben hat, der bekommt aktuell (Stand 21.07.2015) noch die RC-Seite auf der deutschen Microsoft Seite angezeigt. Die englische Seite zeigt den RTM Artikel.

PS: Einzig vermisse ich noch die MBCS Bibliotheken für den RTM. Als RC waren sie verfügbar und der aktuelle Link auf den Microsoft Seiten funktioniert nicht. Auch wenn ich die nur für ein einziges Legacy Programm noch nutze.

Die MFC ist seit der Veröffentlichung der Community Edition von VS-2013 auch kostenlos verfügbar

Seit dem Erscheinen der ersten VC++ Express Version haben sich viele Entwickler gefragt, warum weder ATL noch MFC hier verfügbar waren.
Das hat sich nun seit der Existenz der VS-2013 Community Edition geändert.

Sowohl die Visual Studio 2013 Community Edition als auch die bereits veröffentlichte Visual Studio 2015 RC Community Edition enthält sowohl die ATL als auch die MFC. D.h. auch, dass es damit einfacher wird für nicht kommerzielle Entwickler die entsprechenden Libraries zu verwenden.

Das ist auch endlich ein Durchbruch, der von der MVP-Community seit dem erscheinen der aller ersten Express Version angemahnt und gefordert wurde.

Die aktuellen Downloads finden sich hier:
http://www.visualstudio.com/de-de/downloads/download-visual-studio-vs.aspx
http://www.visualstudio.com/en-us/products/vs-2015-product-editions.aspx

Bei der Installation der VS-2015 Community Edition muss man allerdings darauf achten die MFC mit auszuwählen. In der Standardinstallation wird diese nicht hinzugefügt. In der VS-2013 Version wird die MFC automatisch mit installiert.

Nur zur Info:
Die Community Edition ersetzt in Zukunft die Express Versionen. Zudem werden alle Express Editionen in einem Visual Studio Paket zusammen geschnürt. Der Vorteil ist groß. Addons werden verfügbar, für die breite Maße. Opensource Projekte, die die MFC und ATL verwenden stehen nun jedermann zur Verfügung. Weitere Infos finden sich auch hier.
Die Lizenzbedingungen der Commuinity Edition sollte man unbedingt lesen, wenn man die Version auch kommerziell nutzen möchte.

PS: Diese Pakete existieren bereits seit November 2014 aber mir ist diese Info bisher entgangen. Sorry…

VS-2015 RC ist verfügbar – ein kurzer Einblick aus der C++ Sicht

Seit den letzten Tagen des April ist nun auch der Release Candidate für VS_2015 verfügbar.
http://www.visualstudio.com/en-us/news/vs2015-vs.aspx

Die Liste ist lang. Was sich für C++ Neues ergibt dagegen doch recht übersichtlich. 😉

Hier ein paar Punkte, die ein erster Test und Streifzug ergab:

  • Man sollte in jedem Fall die angepasste Installation verwenden. Ansonsten wird der MFC Sourcecode nicht mit installiert (siehe auch Kommentar von Michael Külshammer)
  • „Fast“ alle Projekte ließen sich fehlerfrei kompilieren. Es gab zwar einen Haufen neuer Warnungen aber, diese haben eher mit dem Stil des Programmierens zu tun. Speziell sind es C4456, C4457, C4458 (Declaration off… hides previous …  declaration). Im Klartext. Ich verwende immer mal wieder eine Variable it oder i gerne, die auch im äußeren Scope vorhanden ist.
    Für diese neuen Warnings gibt es allerdings bisher keine Dokumentation.
  • Und eben die typischen Fallen in denen man eben thirdparty Libs (z.B. OpenSSL) eben neu erzeugen muss.
  • Leider benötige ich für ein spezielles Update Programm noch die MBCS Variante der MFC. Diese ist zwar über das Netz als Link bei MS vorhanden, führt aber zu einer 404 Sackgasse. (Dieses Programm benutzt extrem alten Code, bei denen noch niemand an char/wchar_t bzgl. der Windows API und anderes dachte und Neuschreiben hatte ich bisher vermieden. 🙂 )
  • Nervig war eine „neue“ Compilermeldungen C1041, aber diese ist nirgendwo beschrieben (wie auch andere nicht). Online jedenfalls nicht. Ich bekam den Hinweis, dass eine PDB Datei nicht geschrieben werden kann und ich bitte die Option /FS verwenden soll. Die Ursache ist mir unklar, weil bei späteren Kompilierungsversuchen das Ganze durchlief.
  • Etwas länger musste ich für den folgenden Fehler suchen:
     (odbccp32.lib(dllload.obj) : error LNK2019: unresolved external symbol _vsnwprintf_s referenced in function StringCchPrintfW).
    Hier scheint noch etwas mit dem SDK auch in der Release Version nicht zu passen. Auf connect.microsoft.com fand ich einen entsprechenden Eintrag um diesen Fehler zu umgehen. Scheinbar ist das neue „korrigierte“ SDK, dass in der Lösung versprochen wird im RC noch nicht enthalten.
  • Vieles in der UI hat sich geändert. So werden zum Beispiel die Breakpoint mit einem eigenen Kontexttoolbar angezeigt und benutzt man diesen dann werden die Einstellungen nicht in einem Dialog angepasst, sondern innerhalb des Sourcecode Fensters wird am unteren Rand ein Box für die Eigenschaften geöffnet. Das ist definitiv gewöhnungsbedürftig. Und nur mit der Maus zu bedienen.
  • Im MFC Sourcecode findet sich nur eine neue Header-Datei afxlayout.h. In dieser Headerdatei findet sich die Deklaration für die Klasse CMFCDynamicLayout. Diese Klasse wird direkt in CWnd als Zeiger verwendet und erlaubt die Neupositionierung von Kindfenstern damit für alle Fenstertypen. D.h. nicht nur Dialoge. D.h. man kann in jedem MFC-Fenster EnableDynamicLayout ausführen und entsprechend die Kindfenster neu anordnen lasen wie man es selber definiert.
    Die Implementierung schließt scheinbar die Nutzung des Ressourceneditors ein, denn die Einstellungen können aus dem Ressourcentyp RT_DIALOG_LAYOUT ausgelesen werden. In den Fenstereigenschaften eines Controls findet sich nun der Abschnitt Dynamic Layout in dem man Position und Größe in Prozent zur Gesamtänderung angeben kann.
  • Wer die Header genauer untersucht findet klitze kleine Änderungen Hier und Da wie z.B. die Unterstützung von runden Ecken bei Tooltipps.
  • In der ATL konnte ich bisher keine Erweiterungen und gravierende Änderungen finden.
  • Die meisten Änderungen im ATL und MFC sind Änderungen im Trace Code. Statt „%s“ wird nun konsequent „%Ts“ als Formatierungszeichen verwendet. Angekündigt war eine grundsätzliche Änderung bzgl. „Wide String Format Specifiers“ allerdings wurde diese bereits im April zurückgezogen (siehe hier).
  • Vermisst habe ich einige CRT Source Dateien, die normalerweise im VC\CRT\SRC Order liegen. Der Ordner war in meiner Installation leer und enthielt nur weitere Ordner.
    Mir war es auch nicht möglich beim Testen in den CRT Code zu steppen. Zumindest bei mir wurden keine passenden Source Dateien gefunden.
  • Mit den CRT-DLLs werde ich mich ab morgen mal befassen. Auch hier hat Michael Külshammer gerade eben einen Beitrag in meinem Blog geschrieben.

Summa summarum nur minimale Anpassungen in meinen Projekten für den Umstieg von VS-2013 auf VS-2015, darüber hinaus so gut wie keine (erkennbaren) Änderungen in der CRT/ALT und MFC. Was es an neuen Compiler Features gibt findet man in den Blogs ausführlicher beschrieben als ich das kann. Zudem halte ich mich nicht für den großen C++ Sprachen-und-Standard-Guru.