Unter dem Gesichtspunkt der Desktop-Anwendungsentwickler gibt es einen Unterschied zwischen der Entwicklung für Windows XP und der Entwicklung für Windows Vista?Was sind die Hauptunterschiede zwischen der Programmierung für Windows XP und für Vista?
Antwort
Benutzeroberfläche
Mit Blick auf die Windows Vista User Experience Guidelines Sie können sehen, dass sie viele Elemente der Benutzeroberfläche geändert haben, die Sie bewusst sein sollten. Einige wichtige Dinge zu beachten:
- Larger icons
- New font (die einige benutzerdefinierte UI constistency betrifft)
- New dialog box features (task dialogs)
- Altered common dialogs (wie Datei-Öffnen, Speichern unter, usw. .)
- Dialogtext style and tone und look and feel
- New Aero Wizards
- toolbars
- Bessere notification UI
- New empfohlen Überarbeitete Verfahren einschließlich eines search control
- Glass
64-Bit
Vista verfügt über eine 64-Bit-Edition, und obwohl XP zu haben, die Benutzer eher Vista verwenden 64 als XP 64. Jetzt müssen Sie befassen sich mit:
- Registry virtualization
- Registry redirection (Wow6432Node)
- Registry reflection
- Digital signatures for kernel modules
- MSI Installateure haben new properties behandeln
UAC
User Account Control in beträchtlichem Ausmaß die Standardberechtigungen betrifft, die Ihre Anwendung hat, wenn sie mit dem Betriebssystem interagieren.
- How UAC works and affects your application (siehe auch die requirements doc)
- Installers have to deal with UAC
Neue APIs
Es gibt neue APIs, die entweder an neuen Methoden der Anwendung Aufbau ausgerichtet sind oder eine neue Funktionalität ermöglicht:
- Cryptography API: Next Generation (CNG)
- Extensible Application Markup Language (XAML)
- Windows Communication Foundation (WCF)
- Windows Workflow Foundation (WF)
- Und many more smaller ones
Installateure
Da Installationen nur verwenden können, Übliche Laufzeiten installieren sie nach einer Transac custom actionswill fail abgeschlossen ist, wenn Ihre benutzerdefinierte Aktionsdll die Visual C++ - Laufzeiten über dem VS 2005 CRT (nicht SP1) erfordert.
nicht jemals nehmen Ihre Benutzer Zugriff auf bestimmte Schlüsselbereiche der Scheibe hat (das heißt Programmdateien, Windows-Verzeichnis usw.). Stattdessen kann das Standardbenutzerkonto nur auf einen kleinen Abschnitt seiner Anwendungsdaten schreiben. Außerdem können sie nicht in globale Bereiche der Registrierung schreiben - nur in den aktuellen Benutzerbereich.
Sie können natürlich ihre Privilegien erhöhen, aber das ist eine Aufgabe.
Im Allgemeinen ist die Programmierung für Vista die gleiche wie für XP, es sind nur die neuen Kontoeinschränkungen, die Sie beachten müssen.
Werfen Sie einen Blick auf diese Seite hinsichtlich der Anwendung „UAC bewusst“
http://www.codeproject.com/KB/vista-security/MakingAppsUACAware.aspx
Es kann zu machen, aber das ist eine bewusste Wahl, die Sie als Entwickler machen. Sie können neue Vista-Sachen verwenden, wie UAC und CommandLinks und Aero und so weiter. Aber Sie müssen nicht (sogar UAC kann programmiert werden - tun Sie einfach nichts, das Administratorrechte benötigt). Wenn Sie sich entscheiden, alle Vista-Sachen zu ignorieren, dann gibt es absolut keinen Unterschied zwischen den beiden.
Wenn Sie dieses Zeug in Ihre App integrieren möchten, macht es einen Unterschied. Aber ich würde sagen, kein großer. Und wenn du die Unterschiede wegräumst (zum Beispiel schreibe deine eigene Funktion, die einen TaskDialog für Vista zeigt, aber die Eingabe in eine MesssageBox auf XP), schreibst du nur gegen deinen eigenen Code, und die Unterschiede werden wie fast nichts scheinen.
Auch viele neue Dinge von Vista (zum Beispiel UAC oder Aero) sind Dinge, über die man sich einmal Gedanken macht, wenn man die erste Funktion erstellt, die es benutzt, und dann nie wieder darüber nachdenkt während du die App entwickelst.
Bei weitem der schmerzhafteste Teil des Verschiebens einer Anwendung von XP zu Vista (aus meiner Sicht) ist der Umgang mit den zahlreichen Diensten und IPv6-Sachen, die Ports verwendet, die zuvor frei waren, und die Wireless Provisioning -> Nativer WLAN-Übergang
Die UAC Zeug ist grundsätzlich ein strittiger Punkt; Es gibt sehr wenig, was der Anwendungsentwickler tun muss.