Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Fejlesztői újdonságok Turóczy Attila Livesoft Kft. MCT, MCP, MCTS.

Hasonló előadás


Az előadások a következő témára: "Fejlesztői újdonságok Turóczy Attila Livesoft Kft. MCT, MCP, MCTS."— Előadás másolata:

1

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)

8

9 Microsoft Confidential

10

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)

13

14

15

16

17 ApplicationRestartRecoveryManager.RegisterForApplicationRestart( new RestartSettings("", RestartRestrictions.NotOnReboot));

18

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); }

21

22 ApplicationRestartRecoveryManager.UnregisterApplicationRestart(); ApplicationRestartRecoveryManager.UnregisterApplicationRecovery();

23

24 És mindezt INGYEN!

25 NetworkCollection networks = NetworkListManager.GetNetworks(NetworkConnectivityLevels.All)

26

27

28

29

30

31 explorerBrowser1.Navigate(ShellFolder.FromParsingName("C:\\Kepek")); Command Link

32

33

34

35

36

37

38

39

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

48

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

57

58

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="*" />

62

63

64

65 Microsoft Confidential

66

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

69

70 OS Alkalmazások Nem aláírt alkalmazások Aláírt alkalmazások

71 Microsoft Confidential

72

73 Microsoft Confidential Add -> New Item -> Application Manifest file

74 Microsoft Confidential

75 Microsoft Confidential

76 ez Alig 1-2 sor kód

77

78

79

80

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!

82

83

84

85

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

88

89

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

91

92

93

94

95

96

97 WPF Turóczy Attila Livesoft Kft. MCT, MCP, MCTS

98

99

100

101

102

103

104

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.

108

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

111

112

113 StackPanel – Horizontal InkCanvas TextBlock

114

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(); }

116

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

120

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.

123

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

125

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

129

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

133

134

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

137

138

139 private void Image_ManipulationStarting(object sender, ManipulationStartingEventArgs e) { e.ManipulationContainer = LayoutRoot; }

140

141 Canvas RenderTranform

142

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); }

144

145

146

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

149

150 Használat szenzor nélkül (40%) Használat szenzorral (100%) Brightness beállitása a napfényhez mérter

151

152 Microsoft Confidential

153

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);

155

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.


Letölteni ppt "Fejlesztői újdonságok Turóczy Attila Livesoft Kft. MCT, MCP, MCTS."

Hasonló előadás


Google Hirdetések