Mittwoch, 23. Mai 2012


Artikel

Oktober 2009 | Artikel

7.0 = 6.1

(Link zum Artikel: http://www.entwickler.de/dotnet//002634)

Worauf Entwickler in Windows 7 achten müssen

Text: von Golo Roden
  • Teilen
  • kommentieren
  • empfehlen
  • Bookmark and Share
Das Warten hat endlich ein Ende: Am Donnerstag hat Microsoft mit Windows 7 eine neue Version seines Betriebssystems und damit den Nachfolger von Windows Vista veröffentlicht. Damit alle bestehenden Anwendungen auch auf Windows 7 laufen, sind eventuell einige Anpassungen notwendig. Das dot.net magazin zeigt Ihnen daher, was sich für Entwickler in Windows 7 ändert.
Teil 1   Teil 2   Teil 3   

Die gute Nachricht vorweg: Auch wenn der Name von Windows 7 anderes suggeriert, handelt es sich in technischer Hinsicht nach wie vor um den Kern von Windows Vista. Das bedeutet: Wer seine Anwendungen bereits im Hinblick auf die geänderten Anforderungen von Windows Vista überarbeitet hat, verfügt über gute Chancen, für Windows 7 kaum noch Arbeit investieren zu müssen. Allerdings gilt auch genau der umgekehrte Fall, und das ist für den einen oder anderen eventuell eine schlechte Nachricht: Anwendungen, die bereits mit den geänderten Anforderungen von Windows Vista nicht umgehen konnten, werden auch unter Windows 7 Probleme haben. Die Restriktionen von Windows Vista werden in Windows 7 sogar eher noch verschärft denn gelockert. Für alle Entwickler, die Vista bislang also ignoriert haben, wird es mit Windows 7 nun höchste Zeit, ihre Anwendungen zu überarbeiten.

Vista vs 7

Dass Windows 7 im Kern tatsächlich auf Windows Vista basiert und keine grundlegende Neuentwicklung darstellt, lässt sich bereits an der Versionsnummer ablesen: Diese lautet – anders als man vermuten würde – nämlich nicht 7.0, sondern 6.1. Damit verhält sich Windows 7 zu Windows Vista genauso wie Windows XP zu Windows 2000 oder Windows 98 zu Windows 95: Ungeachtet aller Änderungen handelt es sich "lediglich" um ein verbessertes Windows Vista, allerdings um ein deutlich verbessertes.

Prinzipiell hat Microsoft versucht, die Kompatibilität zwischen Windows 7 und Windows Vista zu bewahren, so dass die meisten Software- und Hardwareprodukte ohne Anpassungen lauffähig sein sollten. Die Ausnahme von dieser Regel stellen alle WDDM-basierten Hardwareprodukte dar, die für Windows 7 aufgrund eines veränderten Treibermodells neue Treiber erfordern. In diesem Zusammenhang weist Microsoft auch darauf hin, dass man als Softwareentwickler gar nicht erst versuchen soll, kompatibel speziell zu Windows Vista oder speziell zu Windows 7 zu sein, sondern dass man eine generelle Windows-Kompatibilität anstreben sollte. Das heißt, man sollte sich als Softwareentwickler an die von Microsoft veröffentlichten Best Practices halten. Zu diesen zählen beispielsweise die Regeln, dass eine Anwendung nicht in den System32- oder den Program-Files-Ordner schreiben sollte, und dass eine Anwendung außer für die Installation keine Benutzerrechte erfordern sollte, die über jene eines Standardbenutzers hinausgehen.

Da in Windows 7 erstmals nicht nur die Client-, sondern auch die Servervariante die gleiche Versionsnummer 6.1 tragen, kann zudem – zumindest anhand der Versionsnummer – nicht mehr zwischen Windows 7 und dem dazugehörigen Serverprodukt Windows Server 2008 R2 unterschieden werden. Die zahlreichen Editionen von Windows 7 sowie die Möglichkeit, einzelne Windows-Features zu aktivieren oder zu deaktivieren, führen ebenfalls zu der Empfehlung, nicht auf eine konkrete Version, sondern auf das Vorhandensein bestimmter Features zu prüfen. Erfordert eine Anwendung beispielsweise den IIS in Version 6.0 oder höher zum Betrieb, sollte sie genau dies testen: Ist ein IIS in Version 6.0 oder höher verfügbar oder nicht – und zwar unabhängig davon, um welche Version von Windows es sich dabei handelt. Sofern jedoch auf eine konkrete Version geprüft werden muss, sei es die Version des Betriebssystems oder die einer Komponente, dann sollten Entwickler auf jeden Fall auf größer oder gleich testen und nicht auf Gleichheit (Listing 1).

  1. // Falsch: Test auf Windows Vista
  2. if(Environment.OSVersion.Platform == PlatformID.Win32NT &&
  3. Environment.OSVersion.Version.Major == 6 &&
  4. Environment.OSVersion.Version.Minor == 0)
  5. {
  6. // Windows Vista gefunden ...
  7. }
  8. // Richtig: Test auf Windows Vista oder höher
  9. if(Environment.OSVersion.Platform == PlatformID.Win32NT &&
  10. Environment.OSVersion.Version.Major >= 6 &&
  11. Environment.OSVersion.Version.Minor >= 0)
  12. {
  13. // Windows Vista oder höher gefunden ...
  14. }

Nur auf diese Art lässt sich verhindern, dass eine Anwendung unter einem neueren Betriebssystem nicht mehr startet, weil sie die entsprechende Version nicht erkennt.

Neu im Vergleich zu Windows Vista ist außerdem, dass die Serverversion von Windows 7 – nämlich Windows Server 2008 R2 – nur noch in einer 64-Bit-Version verfügbar sein wird. Zudem wird die 32-Bit-Emulationsschicht Windows on Windows (WoW64) zumindest auf dem Windows Server 2008 R2 Core nur noch eine optionale Komponente sein, die gesondert installiert werden muss. Dieses Vorgehen, Serverversionen nur noch in einer 64 Bit-Version zu veröffentlichen, wendet Microsoft bereits seit Längerem an: Auch beispielsweise Exchange 2007 und Exchange 14 stehen nur noch in einer 64-Bit-Version zur Verfügung.

Teil 1   Teil 2   Teil 3   

Kommentare