Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaÁrpád Hajdu Megváltozta több, mint 10 éve
2
Fejlesztői újdonságok Turóczy Attila Livesoft Kft. MCT, MCP, MCTS
3
Minimalizáld a változtatást! A fókusz legyen újra az alapokon! Fejlesztői produktivitás Legyen minden gyorsan elsajátítható! UXUX Felhasználói élmény mindenek felett!
4
Few Changes: Most software that runs on Windows Vista will run on Windows 7 - exceptions will be low level code (AV, Firewall, Imaging, etc). Hardware that runs Windows Vista well will run Windows 7 well. Windows 7 Few Changes: Focus on quality and reliability improvements Deep Changes: New models for security, drivers, deployment, and networking
5
Memory Reference set, Graphics Disk I/O Registry Reads, Indexer Power DVD Playback, Panel, Timers Speed Faster Boot, Device Ready Responsiveness Start menu, Taskbar Scale 256 cores Több Kevesebb
6
Microsoft Confidential
7
Aero Shake (Rázd meg, és láss) Aero Peek (Röntgen az asztalon) Snap (Fogd és dobd a sarokba) Taskbar (Minden egyben) Gadgets (Sok pici izé az asztalon)
9
Microsoft Confidential
11
Vista Bridge / Windows API Code Pack Win32 API Natív alkalmazások (C++) Kezelt alkalmazások (.NET-nyelvek) 3.5 (SP1)
12
Vista Bridge / Windows API Code Pack 3.5 (SP1) 4.0 4.0 Win32 API Natív alkalmazások (C++) Kezelt alkalmazások (.NET-nyelvek)
17
ApplicationRestartRecoveryManager.RegisterForApplicationRestart( new RestartSettings("", RestartRestrictions.NotOnReboot));
19
ApplicationRestartRecoveryManager.RegisterForApplicationRestart( new RestartSettings("/recover", RestartRestrictions.NotOnReboot)); RecoveryData data = new RecoveryData(new RecoveryCallback(RecoveryProcedure), null); RecoverySettings settings = new RecoverySettings(data, 0); ApplicationRestartRecoveryManager.RegisterForApplicationRecovery (settings); private int RecoveryProcedure(object state) {... //Fájlba mentés, Serializálás, adatbázisba mentés ApplicationRestartRecoveryManager.ApplicationRecoveryFinished(true); return 0; }
20
bool isCancel = ApplicationRestartRecoveryManager.ApplicationRecoveryInProgress(); if (!isCancel) { Environment.Exit(2); }
22
ApplicationRestartRecoveryManager.UnregisterApplicationRestart(); ApplicationRestartRecoveryManager.UnregisterApplicationRecovery();
24
És mindezt INGYEN!
25
NetworkCollection networks = NetworkListManager.GetNetworks(NetworkConnectivityLevels.All)
31
explorerBrowser1.Navigate(ShellFolder.FromParsingName("C:\\Kepek")); Command Link
40
Microsoft Confidential
41
FutFut Nem fut Több ablak, fölötte az egér AktívAktív
42
if (TaskbarManager.IsPlatformSupported) { }
43
Microsoft Confidential
44
Icon myIcon = new System.Drawing.Icon("Images\\Globe.ico"); TaskbarManager.Instance.SetOverlayIcon(myIcon, "accessibilityText"); TaskbarManager.Instance.SetOverlayIcon(null, null);
45
Microsoft Confidential
46
TaskbarManager.Instance.SetProgressState(TaskbarProgressBarState.Normal); TaskbarManager.Instance.SetProgressValue(trackBar1.Value, 100); Error Normal NoProgress Indeterminate Pause
47
Microsoft Confidential
49
TaskbarManager.Instance.TabbedThumbnail.SetThumbnailClip( this.Handle, new Rectangle(pictureBox1.Location, pictureBox1.Size));
50
Microsoft Confidential WindowInteropHelper window = new WindowInteropHelper(this); IntPtr Handle = window.Handle;
51
Microsoft Confidential
52
Icon myIcon = new System.Drawing.Icon("Images\\Work.ico"); ThumbnailToolbarButton toolbarbtn = new ThumbnailToolbarButton(myIcon, "Work"); toolbarbtn.Click +=new EventHandler (toolbarbtn_Click); TaskbarManager.Instance.ThumbnailToolbars.AddButtons(this.Handle, toolbarbtn);
53
Microsoft Confidential
54
Célok (főnevek) Feladatok (igék) Ismert kategóriák Egyedi kategóriák Felhasználói feladatok Tálca-feladatok Rögzített kategória
55
Microsoft Confidential JumpList list = JumpList.CreateJumpList(); //Kategória készitése JumpListCustomCategory jcategory = new JumpListCustomCategory("App. Cat"); list.ClearAllUserTasks(); jcategory.AddJumpListItems(new JumpListItem(@"C:\Photo.jpg")); list.AddCustomCategories(jcategory); //Task keszitese list.AddUserTasks(new JumpListLink("http://devportal.hu", "Devportal")); list.AddUserTasks(new JumpListSeparator()); list.Refresh();
56
Microsoft Confidential
59
TaskDialog tdialog = new TaskDialog(); TaskDialogStandardButtons buttons = TaskDialogStandardButtons.Ok | TaskDialogStandardButtons.No; tdialog.StandardButtons = buttons; tdialog.Icon = TaskDialogStandardIcon.Shield; tdialog.Caption = "Fejléc szövege - Windows 7"; tdialog.InstructionText = "Bevezető szöveg. A dialoguson ezt tehetjük meg..."; tdialog.Text = "FIGYELEM! Ide kerülnek a legfontosabb információk!"; tdialog.DetailsExpanded = true; tdialog.DetailsExpandedLabel = "További információk"; tdialog.DetailsExpandedText = "Az összes információ"; tdialog.ProgressBar = new TaskDialogProgressBar() { Maximum = 100, Minimum = 0, State = TaskDialogProgressBarState.Normal, Value = 40 }; tdialog.Show(); Microsoft Confidential
60
tdialog.OwnerWindowHandle = this.Handle;
61
Microsoft Confidential <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*" />
65
Microsoft Confidential
67
winlogon Create LUID with full token Create LUID with full token Create LUID with protected token Create LUID with protected token Processz készítsése védett tokennel explorer.exe Processz készítsése védett tokennel explorer.exe
68
Microsoft Confidential
70
OS Alkalmazások Nem aláírt alkalmazások Aláírt alkalmazások
71
Microsoft Confidential
73
Microsoft Confidential Add -> New Item -> Application Manifest file
74
Microsoft Confidential
75
Microsoft Confidential
76
ez Alig 1-2 sor kód
81
Előkonfigurált Win XP VHD image Teljeskörű USB támogatás Hogyan? – CPU – Win7 Pro and Ultimate / Enterprise – Virt. engine: Virtual PC Kompatibilitás hiánya többé nem kifogás!
86
a „Compatible with Windows 7” logo akár 30 Partner Point megszerzését jelenti! (Partner Program átalakulóban) Microsoft Partner Points lista az adott szakterületen/országban elérhető alkalmazásokról Kiemelt megjelenés a Windows 7 Compatibility Centerben saját weben, marketinganyagokban A „Compatible with Windows 7” logó használati joga hozzáférés az alkalmazásra vonatkozó hibabejelentésekhez Windows Error Reporting
87
Példák
90
Opcionális: a végleges alkalmazás egy licencelt példányának eljuttatása a Microsofthoz A sikeres tesztelés eredményének elküldése a Microsoftnak Annak elfogadása, hogy a Microsoft kommunikálhasson az alkalmazással kapcsolatban A jogi megállapodások aláírása A logóval kapcsolatos rendelkezéseknek való megfelelés ellenőrzése Az alkalmazás tesztelése a Toolkit használatával A Windows 7 Client Software Logo Toolkit letöltése és telepítése JAVASOLT: Regisztráció az ISV Application Compatibility webhelyen
97
WPF Turóczy Attila Livesoft Kft. MCT, MCP, MCTS
105
A WPF-es világban az események használata nagy mértékben megváltozott a tradicionális Windows Forms-os fejlesztéshez képest. RoutedEvents A WPF-ben bevezetésre került a RoutedEvents! A koncepció lényege az, hogy a kontrolok egymásba ágyazhatók, és így egy esemény hierarchia is létrejöhet. A tradicionális esemény kezelés is a WPF része maradt!
106
Window Grid ToolBar Button Mikor jó ez nekem?
107
A WPF-ben 3 esemény típus létezik Direct Event Klasszikus.NET-es eseménykezelés. Direktben csak az az eseménykezelő fut le ami létrehozta. Pl.:MouseLeave Bubbling Events Ebben az esetben először az az esemény kezelő fut le, amit kiváltottak, majd a Vizuális fában lépkedve felfelé a többi. Pl: MouseDown Tunneling Event A Bubbling esemény ellentéte. Itt először a vizuális fa legtetején lévő elemen kerül lekezelésre, és így halad lefele. A legutolsó elem az ami kiváltotta az eseményt. A Tunneling események nevei a P PP Preview szóval kezdődnek. A Tunneling események hamarabb fut le mint a Bubbling.
109
A Grid az egyik leggyakrabban használt elrendezés vezérlő a WPF világban. A Gridben definiálhatunk oszlopokat és sorokat, és ezekbe pozícionálhatjuk kontroljainkat. A Gridnél oszlop (ColumnDefinition) és sor (RowDefinition) definíciókat adhatunk meg. Kitölti a teljes rendelkezésre álló felületet, de a második sor mindig 2x akkora lesz mint az első sor.
110
Abszolút pozícióba helyezhetjük el a kontroljainkat. (Ahova leraktuk az ott is marad) Semmilyen elrendezés vezérlői logikával nem rendelkezik a Canvas, így ha nagyítjuk az ablak méretét a kontrolok ugyanott maradnak, ahova elhelyeztük őket, és a méretük sem változik. (Canvas.Top, Canvas.Buttom, Canvas.Right, Canvas.Left) Mivel egymást fedhetik a controlok Canvasnál, így a Zindex tulajdonsággal megmondhatjuk, hogy melyik kerül előrébb. Amelyik controlnak magasabb a Zindexe az kerül felülre. Button
113
StackPanel – Horizontal InkCanvas TextBlock
115
Microsoft Confidential if (ICanvas.Strokes.Count == 0) return; InkAnalyzer analyzer = new InkAnalyzer(this.Dispatcher); analyzer.AddStrokes(ICanvas.Strokes, 1033); AnalysisStatus status = analyzer.Analyze(); if(status.Successful) { txtResult.Text = analyzer.GetRecognizedString(); }
117
.NET 2.0 2.0 add-in 3.0 3.5/SP1 Host Process 3.0 add-in 3.5 add-in 1.1 add-in.NET 1.1 CLR 2.0 – CLR 1.1
118
.NET 2.0 2.0 add-in 3.0 3.5/SP1 Host Process 3.0 add-in 3.5 add-in CLR 2.0 – CLR 1.1 CLR 4.0 – CLR 2.0
119
.NET 2.0 2.0 add-in 3.0 3.5/SP1 Host Process 3.0 add-in 3.5 add-in CLR 4.0 – CLR 2.0.NET 4.0 4.0 add-in
121
Multitouch Turóczy Attila Livesoft Kft. MCT, MCP, MCTS
122
Azok a hardwarek Multitouch-osak, amelyek 2 vagy több pontot tudnak egyszerre érzékelni Elvárások: Felhasználók WOW faktor! Új szkenáriók a felhasználóknak. Természetes UX érzés! Ma már nem csak speciális kérésre szerezhetünk be MT hardwareket. Egyre nagyobb számban szerezhetünk be ilyen eszközöket.
124
Mely alkalmazásoknál lehet előny a multi-touch? Tartalom nézegető (kép nézegető, könyv olvasó stb) Média alkalmazások Szórakoztató alkalmazások Mobil alkalmazások
126
El kell döntenünk mennyire támogatjuk az alkalmazásunkban a touch lehetőséget Good – Alapvető támogatás Better – Gesztikuláció támogatás, Touch- friendly felület Best – Touchra optimalizált felület
127
Általános ajánlások Nagy UI felületek (gombok) Üres területek Kerüljük az átfedéseket Gesztikulációs ajánlások Használjuk a már általános elfogadott gesztikulációkat A gesztikulációknak természetesnek kell lennie
128
A hardware megkapja a felhasználói inputot Adatok a drivertől Az OS WM_GESTURE üzenetet generáls Üzenet elküldése az alkalmazásnak HWND Az alkalmazás frissíti a UI-t az üzenet alapján
130
Translate
131
Zoom és Forgatás
132
Multi-Touch Controls Multi-Touch API Surface Multi-Touch Controls & API Surface Multi-Touch Controls & API Multi-Touch API Multi-Touch API and Controls
135
Native Windows SDK.NET 4 WPF Silverlight Silverlight3 Gesztikuláció Manipulation keresztül Touch adatok Manipuláció Inercia.NET 3.5 Multitouch library
136
public static readonly RoutedEvent TouchDownEvent; public static readonly RoutedEvent TouchEnterEvent; public static readonly RoutedEvent TouchLeaveEvent; public static readonly RoutedEvent TouchMoveEvent; public static readonly RoutedEvent TouchUpEvent; Macerás Munka
139
private void Image_ManipulationStarting(object sender, ManipulationStartingEventArgs e) { e.ManipulationContainer = LayoutRoot; }
141
Canvas RenderTranform
143
var selectedElement = e.Source as FrameworkElement; if (selectedElement != null) { ManipulationDelta deltaManip = e.DeltaManipulation; Matrix matrix = ((MatrixTransform)selectedElement.RenderTransform).Matrix; Point center = new Point(selectedElement.ActualWidth / 2, selectedElement.ActualWidth / 2); center = matrix.Transform(center); matrix.ScaleAt(deltaManip.Scale.X, deltaManip.Scale.Y, center.X, center.Y); matrix.RotateAt(deltaManip.Rotation, center.X, center.Y); matrix.Translate(deltaManip.Translation.X, deltaManip.Translation.Y); selectedElement.RenderTransform = new MatrixTransform(matrix); }
147
Sensor API Turóczy Attila Livesoft Kft. MCT, MCP, MCTS
148
1988: Compaq SLT/286 2008: Sony VAIO Mi az ami változott? 400x CPU teljesitmény növekedés 400x CPU teljesitmény növekedés 1700x lemez terület növekedés 1700x lemez terület növekedés 5000x több RAM (Már nem elég mindenre 640K) 5000x több RAM (Már nem elég mindenre 640K) Mi az ami nem változott? GPS interfész: COM port GPS interfész: COM port Egyébb szenzorok integrálása Egyébb szenzorok integrálása
150
Használat szenzor nélkül (40%) Használat szenzorral (100%) Brightness beállitása a napfényhez mérter
152
Microsoft Confidential
154
SensorManager.SensorsChanged += new SensorsChangedEventHandler(SensorManager_SensorsChanged); SensorList alsList = SensorManager.GetSensorsByTypeId (); this.currentSensor = new Guid("b4133ea3-c284-4626-a6e3-10bfaf50299f"); AmbientLightSensor sensor = SensorManager.GetSensorBySensorId (this.currentSensor); lblSensor.Text = "SensorId = " + sensor.SensorId.ToString(); float current = sensor.CurrentLuminousIntensity.Intensity; prgSensorProgress.Value = Math.Min((int)current, prgSensorProgress.Maximum); sensor.AutoUpdateDataReport = true; sensor.DataReportChanged += new DataReportChangedEventHandler(DataReportChange);
156
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
157
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.