In den letzten Tagen habe ich mir die aktuelle Community Technology Preview vom Visual Studio 2005 installiert und damit etwas Zeit verbracht. Trotz einiger immer noch existierender Produktivitätsbremsen macht das Arbeiten mit VS 2005 zusehends mehr Spaß. Verantwortlich dafür sind einige nette Funktionen:
1) Projekte werden parallel erzeugt
Projekte, die unabhängig voneinander sind, werden auf Mehrprozessor-Maschinen parallel kompiliert. Die Anzahl der zeitgleich erzeugten Projekte ist abhängig von der Anzahl der Prozessoren. Auf meinem P4 mit Hyperthreading gibt es zwei logische Prozessoren, damit werden also zwei Projekte nebeneinander kompiliert. Beim nächsten Rechnerupdate lohnt es sich also wirklich einmal, einen Blick auf die Xeon-Prozessoren zu werfen.
2) Visual Assist ist nun auch für Visual Studio 2005 verfügbar
Die letzten Builds von Visual Assist unterstützen nun endlich auch das Visual Studio 2005. Wenn man sich einmal an Visual Assist gewöhnt hat, dann kann man ohne kaum noch arbeiten und fühlt sich sehr verlassen.
3) Hervorragender Debugger
Der Debugger ist eines der Sahnestücke in VS 2005, das Betrachten von Variablen während des Debuggens ist ein Traum. Man zeigt nur noch mit der Maus auf die entsprechende Variable und der Debugger zeigt eine Liste mit den Eigenschaften. Zeigt man wieder auf ein Objekt, dann wird auch dieses aufgeklappt und dessen Eigenschaften werden angezeigt:

4) Automatisches Einfügen eines Manifests
Damit eine Anwendung unter XP auch im entsprechenden Design angezeigt wird, muss sie ein Manifest enthalten. Bisher hat man das Manifest als Entwickler immer in die Ressourcendatei eingebunden. VS 2005 führt nun einen neuen Linker-Schalter ein, der ein Manifest auf Wunsch automatisch in die Programmdatei aufnimmt. In einer normalen Anwendung hat das Manifest immer die ID “1″ , in einer Dll (z.B. einer Explorer-Erweiterung) dagegen die “2″. Der Linker kümmert sich automatisch um die richtige ID, die folgenden Zeilen reichen völlig aus.
Diese Zeilen habe ich in eine Header-Datei gesteckt, die ohnehin in jedem Projekt eingebunden wird und allgemeine Eigenschaften definiert, die für alle Projekte gelten. Entsprechend der jeweiligen Plattform wird immer gleich das korrekte Manifest eingebunden, man muss sich nun nicht mehr mit Manifesten in Ressourcen herumärgern.
#if _MSC_VER >= 1400
#ifdef _M_IX86
#pragma comment(linker,"/manifestdependency:\"type='win32' " \
"name='Microsoft.Windows.Common-Controls' " \
"version='6.0.0.0' " \
"processorArchitecture='x86' " \
"publicKeyToken='6595b64144ccf1df' " \
"language='*'\"")
#endif
#ifdef _M_AMD64
#pragma comment(linker,"/manifestdependency:\"type='win32' " \
"name='Microsoft.Windows.Common-Controls' " \
"version='6.0.0.0' " \
"processorArchitecture='amd64' " \
"publicKeyToken='6595b64144ccf1df' " \
"language='*'\"")
#endif
#ifdef _M_IA64
#pragma comment(linker,"/manifestdependency:\"type='win32' " \
"name='Microsoft.Windows.Common-Controls' " \
"version='6.0.0.0' " \
"processorArchitecture='ia64' " \
"publicKeyToken='6595b64144ccf1df' " \
"language='*'\"")
#endif
#endif

Zu “3) Hervorragender Debugger”
Das ist ja der “Wahnsinn”. Das kann Delphi schon mindestens seit Version 5 aus dem Jahre 1999…