ALKALMAZÁS ÉLETCIKLUS életciklus - alap Nem fut ElindítFutKilép Elindít Főképernyőről vagy programlistából Kilép Back gombbal.

Slides:



Advertisements
Hasonló előadás
4. alkalom – Hálózat Kezelés
Advertisements

Egy közösségi brainstorming platform technológiai stackje – JUM Marhefka István CTO.

Krizsán Zoltán iit 1.1.  Aszinkron történésről értesítés egy vagy több objektum számára.  Delegátumok segítségével valósítja meg a C#.  event típus,
HÁLÓZAT SOAP Hagyományos WCF/ASMX webszervizek.
1. foreach( fejlesztő in Lurdyház ) { fejlesztő.Agy. Delete If( delegate ( Content c ) { return c.ContainsAny( „Win32 / User32.dll”, „GDI”,„GDI+”,„WindowsForms”,
3 5 6 Application Services Deployment Services Databinding USER INTERFACE SERVICES XAML Accessibility Property System Input & Eventing BASE SERVICES.
Windows Live Movie Meker RENDSZERKÖVETELMÉNYEK: -WindowsVistaServicePack-2 -Windows 7.
Windows Server ablakok nélkül
Richter Elek Technikai terméktámogatási felelős Microsoft Magyarország.
21 Years of Partnership and Innovation 1989 Citrix Systems founded 2010 Citrix signed licensing agreement with Microsoft for NT Server Introduced Independent.
Delphi II Avagy a folytatás,. Miről is lesz még szó? Hogyan írjunk Delphiben konzolos applikációt? (2 perc) Grafika a Tform.canvas tulajdonságán keresztül.
2 8 Kiadás éve / Platform Server (1000’s of users) Workgroup (Dozens of users) Desktop (Single User) Laptop Tablet PC Windows CE.
System Statistical Functions. CPU Tesztelése SELECT AS busy Vissza adja milliszekundumban, mennyi időt töltött munkával a szerverünk indítás.
IT-DEV-CON – Adatkezelés a felhőben Windows Phone 7 alkalmazással Tóth László
Budapest University of Technology and Economics Fault-tolerant Systems Research Group Nyílt fejlesztőrendszerek Felhasználói felületek Balogh András.
Socket programozás Példák
Basics A few things one must know. Slides Insert a title slide Put a title on it.
OS INTEGRÁCIÓ képek Hub integráció Egy gyorsindító az appunknak a hubban Extrák és megosztás Az appunk induláskor megkapja a képet.
TRANZIENS ADATTÁROLÁS State objektum Egy alkalmazásszintű gyűjtemény (Dictionary), mely Tombstone esetén megőrzi tartalmát a memóriában kulcs/érték párokként.
Csala Péter ANDN #4. 2 Tartalom  C# - ban előre definiált típusok  Változók  Változókkal műveletek  Elágazás  Ciklus.
Adatbáziskezelés Horváth Ernő 1. Elérhetőségek Kiss Jenő Horváth Ernő Tanszéki honlap
Delegátumok C#-ban Krizsán Zoltán iit 1.0.
Course Situation and Event Driven Models for Multilevel Abstraction Based Virtual Engineering Spaces Óbuda University John von Neumann Faculty of Informatics.
Haladó Programozás Adatbázis és felhasználó létrehozása MS SQL Server alatt Adatbázisok elérése DbConnection/DbReader módszerrel (Nem tananyag!) SQL server.
SZANYA ZSOLT E LBACOM – A UTHORIZED W INDOWS E MBEDDED D ISTRIBUTOR.
1 SQL – Structured Query Language IBM fejlesztette ki 70-es években (SEQUEL) 1986-ban lett szabvány (SQL86) SQL86, SQL89, SQL92, SQL99, SQL3, SQL2003 DDL,
Module 2: A Windows XP Professional automatikus telepítése
Oracle – ORDMS lehetőségek UDT:- objektum típusok - kollekció típusok SQL> CREATE TYPE SZEMELY AS OBJECT ( 2 NEV VARCHAR2(20), 3 TEL VARCHAR2(14)); SQL>
A megértés körei Binzberger Viktor Budapest Műszaki és Gazdaságtudományi Egyetem Filozófia és Tudománytörténet Tanszék.
PHP VI Adatbázisok, MySQL
PHP V Osztályok, Objektumok. Osztály class Person { var $name; // tulajdonság, változó function getName() { // metódus, tagfüggvény return $this->name;
PHP II. Tömbök, sztringek
Multimédiás programok készítése Macromedia Director fejlesztői környezetben 4. előadás Készítette: Kosztyán Zsolt
Service Manager.. Remedy Action Request System OpenView Operations.
Edge Transport Routing and AV/AS Enterprise Network External SMTP servers Phone system (PBX or VOIP) Client Access Client connectivity Web services.
Windows Server 2008 { PowerShell }
Alertet indíthat egy: SQL Server esemény (LOG) SQL Server performancia érték WMI events Alert végezhet: Operátor értesítést JOB indítás (válasz az eseményre)
P ROGRAMOZÁS C# - BAN Kivételkezelés. P ÉLDA I. Nullával való osztás miatt kapjuk a hibaüzenetet.
WAP, WML Felhasznált források: Developer’s Guide v1.2 (Nokia WAP Toolkit) WML Reference v1.1.
Gincsai Gábor Dávid Zoltán MSDN Kompetencia Központ Budapesti Műszaki és Gazdaságtudományi Egyetem Automatizálási.
Azure Storage BLOBS + CDN TablesQueuesDrives SQL AzureOData.
Szervező program Pénzügy figyelő, számlázó program Legújabb alkalmazás.NET Framework 2.0 WSE.NET Framework 4.0 WCF Régebbi, jól bevált alkalmazás.
Gábor Dénes Főiskola (IAI)Programozási technológia (Java) - III. / 1 13.Állományok, bejegyzések 14.Folyamok 15.Közvetlen hozzáférésű állomány.
Budapest University of Technology and Economics Fault-tolerant Systems Research Group Nyílt Fejlesztőrendszerek SWT haladó komponensek.
Budapest University of Technology and Economics Fault-tolerant Systems Research Group Nyílt Fejlesztőrendszerek JFace.
EGEE-II INFSO-RI Enabling Grids for E-sciencE EGEE and gLite are registered trademarks P-GRADE Portal gyakorlat ismertető Gergely.
2 Plug-in nélkül: AJAX 130+ eszközkészlet: megvásárolható, ingyenes és/vagy nyílt/megosztott forrású a webes megoldásszállítók saját, belső megoldásai.
Adatokkal a vásárlók és az eladók nyomában (Mindenhol vár egy jófogás) Kovács Márton.
Könyvtár, csomag és alprogramokVHDL Könyvtár, csomag és alprogram n Library és use n Package n Alprogramok –Procedure –Function –Resolution function Egy.
Motor IIII. Vezérlés Szécsi László. Letöltés diák: //l09-engine4.ppt.
DirectX9 empty project Szécsi László. Project létrehozása Microsoft DirectX SDK (August 2008) telepítése Start Menu \ Microsoft DirectX SDK (August 2008)\
V. labor Thread, animáció. Animáció A figurák a lépés kijelölése után nem rögtön az új helyen teremnek, hanem egyenes vonal mentén mozognak a cél felé.
OIS. Kezdeti teendők Letöltés: OgreLabControllersBase.zip Kicsomagol, betölt:.sln Additional include és library path beállítása Working directory beállítása.
SzgLab 3. Java. I. labor Alapok, OOP váz, megjelenítés konzolon.
II. labor Lépések kezelése. Új metódus a Square osztályba public static int letterToFileIndex(char letter) throws NumberFormatException { int i = 0; for.
III. labor AWT, eseménykezelés Applet. Új class: ButtonView import java.awt.*; import java.awt.event.*; import java.util.LinkedList; public class ButtonView.
Kamera, 3D, transzformációk Szécsi László. Math.zip kibontása az Egg projectkönyvtárba – float2, foat3, float4 típusok, HLSL-ben megszokott műveletekkel.
User interface Szécsi László. Egg projectben DXUTgui.cpp – CDXUTDialogResourceManager::CDXUTDialogReso urceManager() m_SpriteBufferBytes11 = 0; ezt kihagyták,
HTTP kommunikáció Androidon HttpClient-en keresztűl HttpPost/HttpGet objektum használatával HttpClient execute metódusának meghívása.
- Group Policy - Group Policy Preferences - Group Policy 4x5 - Optimális munkakörnyezet – az első lépcsőfok.
*Generic Application-level Protocol Analyzer A lyuk azonosítása Lyuk kutatás Szignatúra fejlesztés Szignatúra tesztelés A szignatúra kiadása 4 óra.
© 2013, LogMeIn, Inc. | The Capability Cloud TM Git használata Visual Studio-ból.
Levelezés a Jedlikben Borbély Balázs rendszergazda-helyettes Jedlik Ányos Gimnázium.
Illés Zoltán ELTE Informatikai Kar
User Profiles Endrődi Tamás (MCT, MCP, MCITP) GDF Informatikai Intézet vezetője SZÁMALK Oktatóközpont.
Szebb és használhatóbb programok Vezérlőelemek dinamikus felhelyezése.
IoT Workshop - Budapest
JavaScript a böngészőben
Antibiotic Drug Prescription
Előadás másolata:

ALKALMAZÁS ÉLETCIKLUS életciklus - alap Nem fut ElindítFutKilép Elindít Főképernyőről vagy programlistából Kilép Back gombbal

ALKALMAZÁS ÉLETCIKLUS életciklus - alap private void Application_Launching(object sender, LaunchingEventArgs e) { // Alkalmazás "frissen" indul } private void Application_Closing(object sender, ClosingEventArgs e) { // Alkalmazás teljesen leáll }

ALKALMAZÁS ÉLETCIKLUS életciklus - eltakarva FutEltakarFut Újból látszik Eltakar Telefonhívás Emlékeztető Rendszer értesítése (pl alacsony akku szint) Képernyőzár* Újból látszik Ha az eltakaró elemet „elutasítjuk”

ALKALMAZÁS ÉLETCIKLUS életciklus - eltakarva // Futhat e az alkalmazás a képernyőzár alatt var appIdleDetection = PhoneApplicationService.Current.ApplicationIdleDetectionMode; // Elaludhat e a telefon, ha bizonyos ideig nem nyúl hozzá a felhasználó var userIdleDetection = PhoneApplicationService.Current.UserIdleDetectionMode; (App.Current.RootVisual as PhoneApplicationFrame).Obscured += (s, e) => { // el van takarva var isLocked = e.IsLocked; }; (App.Current.RootVisual as PhoneApplicationFrame).Unobscured += (s, e) => { // újból látszódik };

ALKALMAZÁS ÉLETCIKLUS életciklus - alkalmazás váltás FutDeaktiválAlszikReaktivál Deaktivál Windows gomb megnyomása Értesítésre klikkelés Az eredeti alkalmazás navigál egy másik (beépített) programra Képernyőzár* Reaktivál Az alkalmazásunkba a Back gomb által térünk vissza (visszalépés vagy alkalmazásváltás)

ALKALMAZÁS ÉLETCIKLUS passzív multitask FutDeaktiválAlszikReaktivál Deaktiválás Alkalmazás állapotának mentése Memóriába Háttértárra (Isolated Storage)

ALKALMAZÁS ÉLETCIKLUS passzív multitask // Deaktiválás esemény alkalmazás szinten private void Application_Deactivated(object sender, DeactivatedEventArgs e) { // Mentés State Dictionary-be és IsolatedStorage-ba (Fájlok, Beállítások, Adatbázis) } // "Deaktiválás" esemény oldal szinten protected override void OnNavigatingFrom(System.Windows.Navigation.NavigatingCancelEventArgs e) { // Mentés State Dictionary-be és IsolatedStorage-ba (Fájlok, Beállítások, Adatbázis) base.OnNavigatingFrom(e); }

ALKALMAZÁS ÉLETCIKLUS passzív multitask FutDeaktiválAlszikReaktivál Reaktiválás Alvó állapotból (Dormant) Alkalmazásunk teljes mértékben meg lett őrizve a memóriában Nincs tennivaló Kiássuk a sírból (Tombstoned) Alkalmazásunknak csak egy kijelölt része lett megőrizve a memóriában State objektum segítségével kell visszaállítani az állapotot

ALKALMAZÁS ÉLETCIKLUS passzív multitask FutDeaktiválAlszikReaktivál Reaktiválás Teljes emlékezetvesztésből Alkalmazásunk állapotát a rendszer nem őrizte meg Még mindig visszaállítható az állapot, amennyiben deaktiváláskor a háttértárra is mentettünk Ugyan lassabb, de még a telefon kikapcsolása esetén is megmaradnak beállításaink

ALKALMAZÁS ÉLETCIKLUS passzív multitask // Aktiválás esemény alkalmazás szinten private void Application_Activated(object sender, ActivatedEventArgs e) { bool isAppInstancePreserved = e.IsApplicationInstancePreserved; } // "Aktiválás" esemény oldal szinten protected override void OnNavigatedTo(System.Windows.Navigation. NavigationEventArgs e) { base.OnNavigatedTo(e); var startupMode = PhoneApplicationService.Current.StartupMode; // Activate / Launch }

ALKALMAZÁS ÉLETCIKLUS aktív multitask FutDeaktiválAlszikReaktivál Alszik Multitask Háttér ügynökök Push értesítések

MULTITASK háttér ügynökök – általános Periódikus Mikor fut? 30 percenként Limitált erőforrások 5% CPU, 6MB RAM Meddig fut? 25 másodpercig Erőforrás-igényes Mikor fut? Ha a telefon töltőn van ÉS Ha nem mobilnetet használ ÉS Ha nem áll minimumon az akku ÉS Ha nincs aktív hívás ÉS Ha a telefon képernyője le van zárva Meddig fut? 10 percig

MULTITASK háttér ügynökök – fájlátvitel Méretbeli limitek Feltöltésnél 5MB Letöltésnél 20MB – mobilneten 100MB – WiFi-n akkumulátorról Mennyiségbeli limitek Alkalmazásra 5 transzfer a sorban Telefonra 500 transfer a sorban 2 transzfer futhat párhuzamosan Sebességbeli limitek 3G esetén Minimum 50 Kbps WiFi / USB esetén Minimum 100 Kbps

MULTITASK háttér ügynökök – audió Mindenhonnan képes lejátszani... Helyi tartalom Internetes tartalom Internetes streamelt tartalom...még HTML5-ből is A böngészőből indított audió anyagot ez játsza le automatikusan Használhatjuk az OS vezérlőit Hangerő Lejátszás / Megállítás Előre / Hátra léptetés

MULTITASK értesítések – értesítősáv IdőzítettHáttérbőlFelhőből (Push) ●● A leghatékonyabb módja az értesítésnek Csináljon a felhasználó bármit is a telefonján, az értesítésről mindig tudni fog

MULTITASK PushNotification – Toast – Phone void SubscribeToPushNotificationChannel(string channelName) { HttpNotificationChannel pushChannel; // (1) Létezik e a csatorna? pushChannel = HttpNotificationChannel.Find(channelName); if (pushChannel == null) { // (2/a) Nem létezik -> Létrehozzuk pushChannel = new HttpNotificationChannel(channelName); pushChannel.ChannelUriUpdated += PushChannel_ChannelUriUpdated; pushChannel.ErrorOccurred += PushChannel_ErrorOccurred; pushChannel.ShellToastNotificationReceived += PushChannel_ShellToastNotificationReceived; pushChannel.Open(); pushChannel.BindToShellToast(); }

MULTITASK PushNotification – Toast – Phone else { // (2/b) Létezik if (pushChannel.ChannelUri == null) { // (2/c) Létezik a csatorna, de nem tudjuk kiolvasni az URI-t pushChannel.UnbindToShellToast(); pushChannel.Close(); SubscribeToPushNotificationChannel(channelName); return; } // Feliratkozunk az eseményekre pushChannel.ChannelUriUpdated += PushChannel_ChannelUriUpdated; pushChannel.ErrorOccurred += PushChannel_ErrorOccurred; pushChannel.ShellToastNotificationReceived += PushChannel_ShellToastNotificationReceived; } var channelURI = pushChannel.ChannelUri; }

MULTITASK PushNotification – Toast – Phone void PushChannel_ChannelUriUpdated(object sender, NotificationChannelUriEventArgs e) { var channelURI = e.ChannelUri; } void PushChannel_ErrorOccurred(object sender, NotificationChannelErrorEventArgs e) { var errorType = e.ErrorType; var errorMessage = e.Message; var errorCode = e.ErrorCode; var errorAdditionalData = e.ErrorAdditionalData; }

MULTITASK PushNotification – Toast – Phone void PushChannel_ShellToastNotificationReceived(object sender, NotificationEventArgs e) { StringBuilder message = new StringBuilder(); string relativeUri = string.Empty; message.AppendFormat("Received Toast {0}:\n", DateTime.Now.ToShortTimeString()); foreach (string key in e.Collection.Keys) { message.AppendFormat("{0}: {1}\n", key, e.Collection[key]); if (string.Compare( key, "wp:Param", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.CompareOptions.IgnoreCase) == 0) { relativeUri = e.Collection[key]; }

MULTITASK PushNotification – Toast – Server string subscriptionUri = TextBoxUri.Text.ToString(); HttpWebRequest sendNotificationRequest = (HttpWebRequest)WebRequest.Create(subscriptionUri); sendNotificationRequest.Method = "POST"; // Toast üzenet "teste" string toastMessage = " " + " " + " " + TextBoxTitle.Text.ToString() + " " + " " + TextBoxSubTitle.Text.ToString() + " " + " /Page2.xaml?NavigatedFrom=Toast Notification " + " " + " "; byte[] notificationMessage = Encoding.Default.GetBytes(toastMessage);

MULTITASK PushNotification – Toast – Server sendNotificationRequest.ContentLength = notificationMessage.Length; sendNotificationRequest.ContentType = "text/xml"; sendNotificationRequest.Headers.Add("X-WindowsPhone-Target", "toast"); sendNotificationRequest.Headers.Add("X-NotificationClass", "2"); using (Stream requestStream = sendNotificationRequest.GetRequestStream()) { requestStream.Write(notificationMessage, 0, notificationMessage.Length); } HttpWebResponse response = (HttpWebResponse)sendNotificationRequest.GetResponse(); string notificationStatus = response.Headers["X-NotificationStatus"]; string notificationChannelStatus = response.Headers["X-SubscriptionStatus"]; string deviceConnectionStatus = response.Headers["X-DeviceConnectionStatus"]; TextBoxResponse.Text = notificationStatus + " | " + deviceConnectionStatus + " | " + notificationChannelStatus;

MULTITASK BackgroundNotification – Toast ShellToast notification = new ShellToast(); notification.Title = "Title"; notification.Content = "Content"; notification.NavigationUri = new Uri("MainPage.xaml?message=Hello World", UriKind.Relative); notification.Show();

MULTITASK értesítések – élő csempék IdőzítettHáttérbőlFelhőből (Push) ●●● A leglátványosabb módja az értesítésnek Egy alkalmazáshoz több csempe is tartozhat Minden csempének van elő –és hátlapja

MULTITASK ScheduledNotification – Tile ShellTileSchedule notification = new ShellTileSchedule(); notification.Interval = UpdateInterval.EveryHour; // EveryDay, EveryWeek, EveryMonth notification.MaxUpdateCount = 10; // 0 -> végtelenségig megy notification.Recurrence = UpdateRecurrence.Interval; // OneTime notification.StartTime = DateTime.Now; notification.RemoteImageUri = new Uri(" "); notification.Start(); // Stop()

MULTITASK PushNotification – Tile Nagyon hasonló a Toast-hoz Csak ezt nem lehet appon belül elkapni

MULTITASK BackgroundNotification – Tile // Másodlagos csempe létrehozása ShellTile.Create(new Uri("MainPage.xaml?message=Secondary Tile"), new StandardTileData { Title = "Front", Count = 0, //BackgroundImage = new Uri(" "), BackTitle = "Back", BackContent = "Content" //BackBackgroundImage = new Uri(" ") });

MULTITASK BackgroundNotification – Tile // Csempék listázása foreach (var tile in ShellTile.ActiveTiles) { var navigationURI = tile.NavigationUri; // lényegében ez az ID // Csempe frissítése (az elsődleges csempe az első) tile.Update(new StandardTileData { Title = "Front", Count = 0, BackgroundImage = new Uri(" "), BackTitle = "Back", BackContent = "Content", BackBackgroundImage = new Uri(" ") }); // Csempe törlése tile.Delete(); }

MULTITASK értesítések – figyelmeztetés IdőzítettHáttérbőlFelhőből (Push) ● Figyelmeztetés és emlékeztető Lényegében az értesítősáv időzített verziója Előre beállított időpontban kapjuk meg

MULTITASK ScheduledNotifications Reminder reminder = new Reminder("Sample Reminder"); reminder.BeginTime = DateTime.Now; reminder.ExpirationTime = DateTime.Now + TimeSpan.FromDays(14); reminder.RecurrenceType = RecurrenceInterval.Daily; // Weekly, Monthly, EndOfMonth, Yearly, None reminder.Title = "Title"; reminder.Content = "Content"; reminder.NavigationUri = new Uri("MainPage.xaml?message=From Reminder"); ScheduledActionService.Add(reminder); Alarm alarm = new Alarm("Sample Alarm"); alarm.BeginTime = DateTime.Now; alarm.ExpirationTime = DateTime.Now + TimeSpan.FromDays(14); alarm.RecurrenceType = RecurrenceInterval.Daily; // Weekly, Monthly, EndOfMonth, Yearly, None alarm.Title = "Title"; alarm.Content = "Content"; alarm.Sound = new Uri("/Ringtones/Ring01.wma", UriKind.Relative); ScheduledActionService.Add(alarm);

MULTITASK értesítések – paraméterezhetőség A webes QueryString-hez hasonló megoldás Az értesítésekre kattintva az alkalmazás a megfelelő oldalon és a megfelelő állapotban tud elindulni