600 likes | 842 Views
TechTalk Vista für Developer Oliver Scheer & Daniel Walzenbach Developer Evangelists Developer Platform & Strategy Group Microsoft Deutschland. Windows Vista Das größte je dagewesene Windows-Release. WS-Management. Aero. User Account Protection. Restart Manager. Sync Center.
E N D
TechTalkVista für Developer Oliver Scheer & Daniel WalzenbachDeveloper EvangelistsDeveloper Platform & Strategy GroupMicrosoft Deutschland
Windows VistaDas größte je dagewesene Windows-Release WS-Management Aero User Account Protection Restart Manager Sync Center Windows SideBar Windows Feedback Services Monad Network Access Protection Ink Analysis Windows Presentation Foundation Ad-hoc Meeting Networks Secure Startup Reading Pane Windows Imaging Format Protected Mode IE Presentation Settings Parental Controls Windows Communication Foundation High Resolution/High DPI Cancelable I/O MMC 3.0 Registry/File System Virtualization Network Location Awareness Stacks IPv6 People Near Me Quick Search Single binary Shell Property System Power Management Windows Service Hardening Live Icons Crypto Next Generation SuperFetch Glass Peer Name Resolution Protocol Preview Pane Split Tokens Windows Vista Display Driver Model Transactional Registry Winlogon Rearchitecture Windows Resource Protection Search Folders Taskbar Thumbnails Desktop Window Manager Startup Repair Toolkit Memory Diagnostics User Mode Driver Framework Windows Workflow Foundation Function Discovery API Windows Filtering Platform Credential Providers Flip3D Windows Installer 4.0 Open Package Specification RSS Platform Windows Defender Mandatory Integrity Control Segoe UI Font InfoCard Wizard Framework New Open/Save Dialogs Transactional File System XAML Windows Sideshow Eventing and Instrumentation New Explorers Resource Exhaustion Diagnostics XML Paper Specification Confident | Clear| Connected Windows Disk Diagnostics UI Privilege Isolation
Agenda • Aero • Neue Controls • Mobility • User Account Control • Windows Error Reporting • Restart & Recovery APIs & Restart Manager • Search • Sidebar Gadgets • Windows Presentation Foundation
Clear • Windows Vista User Interface Guidelines • Neue Controls • Common controls (comctl32.dll v6) • CommandLink • TaskDialog • Windows Vista Wizard Framework • Search API • OLEDB Provider für Desktop Search
Clear • Windows Presentation Foundation • Vektorbasierte Grafik- und UI Engine • XAML • Windows Sidebar • Glas
Confident • User Account Control • Alle Applikationen haben Rechtesatz eines Standard Users • Neue Security relevante APIs • Cryptography Next Generation API • Windows CardSpace • Parental Controls • Windows Firewall
Confident • Transactional File System • Restart Manager • Click Once • Network Diagnostic Framework • Task Scheduler 2.0
Connected • Windows Communication Foundation • Einheitliche Architektur für verteilte dienstorientierte Applikationen • RSS APIs • Peer-to-Peer Infrastructure • Mobility • Network Awareness • Synchronization Manager
Microsoft .NET Framework 3.0 Windows Presentation Foundation Next generation User Experience Windows Communication Foundation Service-oriented development Windows Workflow Foundation Business Process Modeling “CardSpace” Digital Identity Management
Aero • Desktop Window Manager (DWM) • dwmapi.dll • Desktop Composition • Features • Live Thumbnails • Flip • Flip-3D • Glas
Fokusieren auf das Wesentliche Sofort verfügbar in allen Nicht-Clientbereichen Im Clientbereich Vergrößern des Rahmens Transparente Farbe definieren Fläche “Schwarz” malen Das war‘s ;-) Glas
Neue Controls in Vista • CommandLink • TaskDialog • FileDialog
CommandLink • Neues Win32 Element • Neuer ButtonStyle (BS_COMMANDLINK) • Neue Button Messagen (BCM_SETNOTE, BCM_GETNOTE)
CommandLink • Ziel: Bessere Usability
Verwenden von Command Links Pinvoke Notiztext setzen Zu kompliziert ??? // SendMessage override for BCM_SETNOTE message // (BOOL)SNDMSG(hwnd, BCM_SETNOTE, 0, (LPARAM)sz) [DllImport("user32.dll", CharSet = CharSet.Unicode)] staticexternIntPtr SendMessage(HandleRef hWnd, UInt32 Msg, IntPtr wParam, string lParam); constuint BCM_SETNOTE = 0x00001609; void SetNote(stringNoteText) { SendMessage(new HandleRef(this, this.Handle), BCM_SETNOTE, IntPtr.Zero, NoteText); }
Klassenbibliothek Wrapper für native API Aufrufe Wird ständig erweitert. Ziel: 50% bis 100% Übergangslösung bis Orcas Exkurs: Vista Bridge
MessageBox XXXL Task Dialog
Windows Vista Datei-Dialog Die Anatomie eines Dialog Instant Suchbox ErweiterteSpaltenköpfe: sortieren, gruppieren und filtern “Freundliche” Adressleiste Live Icons NavigationsButtons Command Bar (fürkontext-basierteAufgaben) ErweiterbareFavoriten Datei-Eigenschaften Detail-Ansicht BenutzerdefinierteElemente
Neues Strommanagement Balanced Power Safer High Performance Betriebsarten: Batterie Netzteil Entwickler sollten darauf reagieren Änderungen feststellen Auf Änderungen reagieren Mobile PC Powermanagement
User Account Control (UAC)Warum User Account Control? Herausforderungen Windows Vista Lösungen • Die meisten Anwender sind stets als Administrator angemeldet • Risiko durch „Malware“ • Management von Desktops und Gruppenrichtlinien ist unmöglich • Support ist teuer (TCO) • Es ist fast unmöglich als „Standard-User“ zu arbeiten • Viele Funktionen sind nicht verfügbar • Anwendungen laufen nicht Standard User wird besser unterstützt. Anwender können • VPN nutzen, Zeitzone ändern, Powermanagement und mehr • Installation freigegebener Geräte • Admin. Aufgaben klar abgegrenzt • Verbesserte Kompatibilität • Datei und Registry Virtualisierung Erhöhter Schutz für Administratoren • Software läuft mit Rechten des Standard Users • Administrator hebt Rechte eines Prozesses bewusst an
User Account Control (UAC)Überblick über UAC • Frühere Windows Versionen (Admin Login) • Ein Access Token mit admin. Berechtigungen • UAC (Admin Login) • Zwei Access Tokens • Standard User Token • Administrator Token • Alle Anwender (auch Administratoren) melden sich als „Standard User“ an! • Interaktive Prozesse laufen als „Standard User“
User Account Control (UAC)Überblick über UAC • Anheben der Rechte • geschieht „out of process“ • erfordert die Zustimmung des Anwenders • Schutzschild kennzeichnet Aufgaben, die erweiterte Rechte benötigen
User Account ControlUAC konforme Anwendungen • Was Sie wissen sollten: • Administrative Abhängigkeiten in Anwendungen erkennen (Std. User Analyzer) • Datei- und Registry-Virtualisierung • Wie wird ein „elevated process“ gestartet? • Wie wird das „Schutzschild“ gesetzt? • Wie wird ein Manifest in eine managed Assembly eingebettet?
Windows Error Reporting (WER)Überblick • Es gibt keine fehlerfreie Software • Fehler in Software haben den größten Einfluss auf die Kundenwahrnehmung von „Softwarequalität“ • Software unter Windows als breite Basis zur Erhebung von Fehlerdaten • ~370M Windows PCs, ~1M Windows XP Anwendungen • Große und stetig wachsende Nummer von Geräten • Web User weltweit (2004): 719,334,756 – doppelt so viele wie in 2000
Windows Error Reporting (WER)Überblick • Glücklicherweise resultieren aus • 1% der schlimmsten Bugs ≈ 50% aller Probleme • 20% der schlimmsten Bugs ≈ 80% aller Probleme Anzahl Bugs Eindeutige Probleme
Windows Error Reporting (WER)Überblick • WER erfasst Crash-Daten und erlaubt dem Anwender, diese zu veröffentlichen • Software- und Hardwarehersteller können auf die Crash-Daten zugreifen und reagieren • WER und Microsoft Windows Update ermöglichen es, Probleme zu identifizieren und Lösungen bereitzustellen • WER ist kostenlos verfügbar
Windows Error Reporting (WER)Windows Quality Online Services (Winqual)
Windows Error Reporting (WER)Neuigkeiten in Windows Error Reporting • “Problemberichte und –lösungen” als zentraler Interaktionspunkt mit WER • Erkennt Abstürze und „hängende“ Prozesse • Queuing von Fehlerberichten und Übermittlung an winqual (Windows Quality Online Services) • Entwickler können • Problemberichte auf winqual einsehen • Problemlösungen auf winqual veröffentlichen
Windows Error Reporting (WER)Datei an Fehlerreport anhängen • Erlaubt das Anhängen einer oder mehrerer Dateien (incl. Minidump & Heap Infor-mation) an den Fehlerreport • WER ist per Default eingeschaltet
Recover und RestartÜbersicht • Anwendungen können kontrollieren, wie sie – im Falle eines Absturzes – von dem Betriebssystem behandelt werden • Recover • Betriebssystem führt eine “Recovery” Methode der Anwendung aus. • Restart • Das Betriebssystem startet die Anwendung neu nachdem ein “Recovery” oder eine Diagnose der Anwendung ausgeführt wurde.
Recover APIÜbersicht • Versucht Daten nach einem fatalen Fehler wiederherzustellen • Anwendung registriert einen “Recovery Callback” bei jeder Ausführung • Recovery Methode wird aufgerufen, nachdem Fehlerdaten gesammelt wurden • Anwendung versucht Anwenderdaten wiederherzustellen • RecoveryInProgress() alle 5 Sekunden aufrufen (Herzschlag) • RecoveryFinished() am Ende der Methode aufrufen
Restart APIÜbersicht • Startet registrierte Anwendungen nach einem Fehler neu • Wird auch für den Restart Manager (Neustart nach Patch) verwendet • Alle Anwendungen sollten Neustarts unterstützen • Vor allem in Kombination mit Recovery
Restart API How it works • EventArgs registrieren, die beim (nächsten) Start aufgerufen werden • Nach einem gravierender Fehler wird die Anwendung neu gestartet • Über die EventArgs kann ermittelt werden, ob die Anwendung neu gestartet wurde • Nimmt dem Anwender die Arbeit ab, die Anwendung neu zu starten
Restart ManagerÜbersicht • Mit der Restart Manager Technologie können Installer • Anwendungen und Services automatisch schließen, die Referenzen auf Dateien halten, welche gepatcht werden sollen • Anwendungsspezifische Funktionalitäten verwenden um den Status einen Anwendung vor dem Restart wiederherzustellen • Im Falle eines Reboots, Anwendungen nach dem Neustart automatisch wieder laden
Suche • Vista indiziert permanent im Hintergrund • Dadurch nur minimaler Performanceimpact im täglichen Betrieb • Vista Suche basiert auf Indexservice und integriert Stores wie Outlook oder Onenote • Eigene Datenprovider können einfach erstellt werden • Implementation eines IFilter • Die Suche kann per OLEDB verwendet werden!
Gadgets • Gadgets = Minianwendungen • Gadget-Arten • Windows Live Gadgets • Windows Vista Sidebar Gadgets • Windows Vista Sideshow Gadgets
Gadgets für die Windows Sidebar Die Sidebar ist ein Container für Gadgets Manager, Picker, Installer, Host Developer Model HTML + Script Installation auf der lokalen Maschine “C:\Users\oscheer\AppData\Local\Microsoft\Windows Sidebar\Gadgets” Verpackung (Folder, Zip, CAB) Manifest, HTML Datei, HTML Settings