Igyenes Silverlight 4.0 könyv: Silverlight 4.0 – A technológia és ami mögötte van

február 9, 2011 Hozzászólás

A napokban vált elérhetővé Csala Péter, Fár Attila Gergő, Novák István, Reiter István, Tóth László, és Jómagam által írt Silverlight 4.0-ról szóló ingyenes elérhető eBook-unk. Várhatóan (nem megvetélre) lesznek nyomtatott változatok is. A könyvvel elsődleges célunk az volt, hogy a .NET fejlesztőknek a lehető leghatékonyabban bemutassuk a Silverlight 4.0 alapú üzleti alkalmazás fejlesztés lehetőségeit. Így a könyvet két fő részre tagoltuk.

Az első részében a Silverlight-tal, mint platformmal ismerkedhet meg a kezdő Silverlight fejlesztő. Nem volt célunk, hogy minden, tekerőt, kapcsolót, paramétert, kutyagumit bemutassunk, hanem azt szerettük volna, ha gyorsan használható, sallangmentes tudást adhatunk át.

A könyv második részében (utolsó 3 fejezet) az üzleti alkalmazás fejlesztésre koncentráltunk, bemutattuk az MVVM alapú fejlesztés módszereit, a moduláris fejlesztést MEF és Prism segítségével, illetve a komplex alkalmazásokban leggyakrabban előforduló nagytudású komplex verzélőket. A célunk az volt, hogy az újdonsült Silverlight fejlesztő helyes gondolkodással és módszerekkel álljon neki komplexebb alkalmazásainak felépítéséhez, tervezéséhez.

A könyvbe végül 4 fejezetet írtam:

  • 5. Fejezet – Stílusok és testreszabhatóság a Silverlight-ban
  • 7. Fejezet – Saját vezérlők fejlesztése Silverlight-ban
  • 10. Fejezet – Üzleti alkalmazások fejlesztése Silverlight-ban
  • 12. Fejezet- Moduláris alkalmazások fejlesztése (jéé és nincs itt a Silverlight-ban szó :D)

Remélem sikerült némi hasznos és tanulságos anyagot összeállítani.

Most pedig megragadnám az alkalmat, hogy publikusan köszönetet mondjak írótársaimnak, Lippé Szabolcsnak, hogy egyátlalán megkeresett ezzel a lehetőséggel, és kiváltképpen Novák Istánnak iránymutatását, és segítségét, iszonyat mennyiségű munkát fektetett a könyv lektorálásába, és értelmes magyar mondatokat faragott a nem kicsit angolosan megfogalmazott mondataimból!

Jó olvasgatást kívánunk nektek, reméljük hasznosnak fogjátok találni irományunkat. 🙂

E-Book Letöltése

Kategóriák:Uncategorized

“A Projekt” kurzus élményem

október 5, 2010 1 hozzászólás

Igen érdekes kurzuson vagyok túl. Ahogy páron tudjátok, elég sokat foglalkozom oktatással és különböző trainingekkel, főleg Silverlight és TFS témákban. Nem titkoltan, nem vagyok túl nagy rajongója sehol, semmikor a level 1-200-as szintnek és hiszem, hogy van azon túl is élet. Az élet azt bizonyítja, hogy a friss tudással felvértezett fejlesztők, akik ténylegesen használják ezeket a technológiákat a hello world-ön túl is, már sokszor az elején elhasalnak, ha egy éles üzleti alkalmazást kell elkezdeni fejleszteni. Az alap, hivatalos training anyagokban megtanítják a technológiák különböző tekerőit, gombjait, kapcsolóit, de azt, hogy ténylegesen egy alkalmazást, hogyan kéne lefejleszteni, struktúrálni, megtervezni, és hasonlókat, bizony nem. Nyilván minden oktató (legalább is nagyon remélem) akárcsak én, igyekszik a kurzusában a core technológiai tudáson túl, valamiféle olyan skillset-et átadni, amivel el lehet kezdeni használni az adott technológiát. Így például a Silverlight-os 5 napos kurzusokban én az utolsó két nap inkább a Blend-et és az MVVM-et próbálom átadni, oktatni és már csak minimális platform képességeket mutatok be, inkább csak megemlítem, hogy ezt is meg azt is lehet még. Persze pontosan tudja minden Silverlight-ban fejlesztő, hogy ez még mindig bőven nem elég. Node akkor merre tovább?

Egy igen jó barátommal,  megálmodtunk , majd egy Multi oktatási palettájára felvettünk egy speciális tanfolyamot, a neve a Projekt. Ezt a kurzust nagyon speciálisnak (ugyanakkor kockázatosnak is) szántuk. (kockázatosnak nem szántuk, az egyenes következmény volt ) Meghúztunk egy baseline-t, és azt mondtuk, hogy oké, ez az a skill set, ami alatt semmit sem fogsz érteni a kurzuson, mert mi most level 3-400-ra megyünk. Azaz vagy ne gyere, vagy hallgasd végig az előkövetleményekhez tartozó (3 kurzust). Ennek az eredménye az volt, hogy igen okos emberek ültek össze. Mindez azért kellett, mert a kurzusunk alapötlete a következő volt. Legyen egy megrendelésünk (a projekt) és álljunk neki, tervezzük meg, implementáljuk le, de ÉS ITT A NAGYON NAGY DE, nincs kőbe vésve, hogy akkor most mit és merre. Nincsenek slide-ok, whiteboard van! Nincsenek milestone-ok, kiinduló demóprojektek, külön demoprogik. Egy filctollból indulunk ki és megtervezünk egy RIA alkalmazás architektúrát, szőrőstül bőröstül, n rétegen át, a szükséges, odaillő design pattern-ekkel együtt. Technológiákat illetően használtunk Silverlight-ot, EF4-et POCO-val, Unity-t, MEF-et, WCF-et, persze mindent csak lazán csatoltan, figyelembe véve a függőségek számának alacsonyan tartását, a tesztelhetőséget, és az épeszűséget, használtunk Visual Studio-ban Achitecture Tools-t, Blend-ben Sketchflow-t és mindent ami szem szájnak ingere és ÉRTELMESEN felhasználható az adott szituációban és tényleg segít is. És hogyan haladunk és merre megyünk? Arra megyünk és úgy, ahogyan a hallgatók akarják, ígénylik (persze kontrol alatt). Erről nyilván a tanfolyam előtt fogalmam sem lehetett, így semmivel nem lehetett előre készülni, azt leszámítva, hogy tudtam, melyek azok a fontos fejezetek, amelyeket át kell rágnunk. (MVVM, Blendability, Modularizáció, stb…) Cserébe folyamatos ötletelés, véleményezés, értékelés volt a hallgatókkal, a gondalatikat, jó ötleteiket beépítettük az alkalmazásba. Véleményt, adott kérdéssel kapcsolatban, mindenkinek mondania kellett.

Szóval kockázat az bizony volt, de a történet vége jó (különben le se írnám ). Nagyon jó visszajelzéseket kaptunk a tanfolyam jellegével kapcsolatban, én magam is úgy érzem, hogy messze a valaha legjobb tanfolyamomat tartottam meg, és talán soha nem élveztem még ennyire az oktatást. A 4 nap során hihetetlen mennyiségű információt sikerült átadni, amit könyvekből nem nagyon lehetett volna megtenni. (főleg azért, mert nem nagyon van ilyen könyv) Szóval eszméletlen jó érzés volt csinálni ezt a dolgot és hát persze tudom, hogy még egyszer ez ilyen már nem lehet. Más emberek, más jelleg, bár tény, hogy ebben a tanfolyamban mindig ott lesz az újdonság varázsa.

Ezúton is köszönöm a hallgatóknak ezt az élményt!

Kategóriák:Uncategorized

Windows Phone 7 SDK RTM és Silverlight Toolkit for WP7

szeptember 16, 2010 Hozzászólás

Hát és végre bizony eljött ez a nagy nap is! Annyi sok szomorú év után a Microsoft újradefiniálta saját mobil platformját és megalkotta a Windows Phone 7-et. A termék fejlődését jópáran követtük CTP-ken és bétákon keresztül, most pedig elkérezett az RTM változat!

Habár sokan felhúzott szemöldökkel tekintettünk az SDK-ra, miszerint hiányoznak alapvető kontrolok, bizony az MS nem tétlenkedett és a codeplex-re kipublikálta rögvest a Silverlight Toolkit for Windows Phone-t.

A toolkit tartalma:

  • GestureService/GestureListener
  • ContextMenu
  • DatePicker
  • TimePicker
  • ToggleSwitch
  • WrapPanel

De szép is az élet, hiszen pont ezeket hiányoltuk a WP7 oktatáson, nincs még 5 napja sem, és tessék itt van.

Természetesen, ahogy ígértek az SDK-ban a developer toolok ingyenes elérhetők, ennek megfelelően kaptunk egy Visual Studio Express ingyenes változatot kimondottan Windows Phone 7 fejlesztéshez és egy Blend for WP7-et is!

Windows Phone Developer Tools

Időközben persze az MSDN is befrissült és már számos új demó elérhető, többek között a Pivot, Panorama és a Bing Maps controlhoz, valamint TiltEffect-et is kapunk ám!

Silverlight for WP7 példák

A játék fejlesztőknek sem kell szomorkodni, az XNA csapat sem felejtett el minket, így néhány új XNA demo is elérhető:

XNA WP7 demók

Mielőtt azt hinnénk, hogy ezzel vége, még van egy meglepetés, ez pedig a Microsoft Advertising SDK for Windows Phone 7 . Ennek az SDK-nak a segítségével, könnyedén fogunk tudni reklámokat integrálni saját WP7 alkalmazásunkba! (Yaay!!)

Tessék tölteni és jól szórakozni!!!

Kategóriák:Uncategorized

Visual Studio 2010 Lightswitch Beta 1 – Első tapasztalatok

augusztus 19, 2010 Hozzászólás

Talán már jó sokan hallottuk a buzz-t, hogy bizony közeleg egy újabb Visual Studio változat, amiről még nem tudni, hogy pontosan hogy jelenik majd meg milyen formában, jelenleg szépen beépült az én Ultimate-embe.

Na hogy mi is ez. Ez az ultimate RAD Tool. Amikor azt mondom, hogy ultimate RAD Tool, akkor azt szószerint értem, ennél RAD-abb már nem lehetne Lényegében minimális ráhatásunk van a kódra, minden egyéb, szín tiszta klikkelgetés. Igen, meg lehet ilyedni és egyszerre lehet örülni. Ennek a terméknek bizony van egy target scenario-ja, amin kívül, csak nagy fájdalmak árán lehet jutni… Ilyen pl, az admin felület, a raktár nyilvántartó a webshopomhoz, meg egyebek…. Kimondottan nem frontend, webre néző, csilivili testreszabott álomalkalmazásra való. De ez nem is baj! Az egy másik scenario.

Mindenkinek javaslom, hogy nézze meg a Keynote-ot, az alapján elég jó képet kap a technológiáról.

Na és akkor a beta 1-el kapcsolatos élményeim…

Előkaptam az én kedvenc northwind adatbázisomat és behúztam belőle rögtön 5 táblát (Termék, kategóriák, megrendelés, megrendelés részletei, vevők) és ehhez álmodtam meg egy pici nyilvántartó, adminisztrációs alkalmazást, de úgy igazán A-Z-ig. (najó csak W-ig).

Először is rögtön szembezsökő volt, hogy mindössze 1 óra alatt, már teljesen otthonosan és profin használtam drága barátunkat. Logikailag nagyon szépen fel van építve, azaz, ha valamit szerettem volna megcsinálni, de nem tudtam hogyan kell, akkor ösztönösen jó helyen kerestem.

Rendkívül könnyen tudtam megoldani a navigációt, a datagrid elemeinek cseréjét (pl sima txtboxról, combo-ra vagy hyperlinkre, ami a részletező oldalra mutat). Az egyszeri ember testreszabás igényeiben tényleg 10/10.

Aztán eszembejutottak a már nem demoscenario, de még mindig fontos és alap kérdések:

  • Authentikáció és authorizáció?
  • Sebesség kérdések
  • Logging
  • A Szolgáltatás védelme
  • Konkurrencia kezelés (esetleg feloldás közben újabb konkurrencia probléma)
  • Hiba kezelés és megjelenítés?
  • Validáció testreszabása?
  • TFS-sel történő együtt működés?
  • Custom Control-ok használata?
  • DataTemplate-ek szerkesztése
  • stb…

A jó hír, hogy szinte mindenre találtam megoldást, illetve kaptam Out of the box megoldást.

Authentikáció és authorizáció:

Pár klikkel létre lehet hozni role-okat permissionöket, user-eket, kapunk rögtön felületet is hozzá, amolyan next next finisz élmény. Megy windows és megy forms auth is.

Sebesség kérdések:

Hát khmm… na jó, ez negatív tapasztalat, ugyanis a DataService-szel a kliens nagyon bután dolgozik, fogalma sincs a data caching fogalmáról. De hát beta 1, meg várom az RC-t, hogy döntsek Hadd mondjak egy példát. A Product-okhoz kategóriák tartoznak, és van egy product screen-em, amiben a category mező, egy combobox, amiben az éppen kiválasztott elem a termék kategóriája, de ha lenyitom és kiválasztok egy másikat, akkor módosítottam a kategóriát. Azt vettem észre, hogy már rég betöltött a 77 termékem, de a kategóriák csak ilyen 1mp-es lassúsággal… töltődnek mellé… mondom mi a fene. Elő is kaptam rögtön az SQL Profiler-t, mert gyanús volt a dolog nagyon, és a sejtésem be is igazolódótt, ez 77 darab lekérdezés volt a kategóra tábla felé… OMG. Na reméljük, ez majd változik, első körben nem találtam rá workaround-ot, hogy miként lehetne ezt megoldani jól. (Valakinek van tippje, ne tartsa magában)

Logging:

Ismét egy negatívum, semmi beépített megoldás nincs, lényegében a query-kre irakozhatunk fel, és loggolhatjuk őket kliens oldalon, de pl semmi hook-up-ot nem találtam a kivételek mentésére, vagy tovább küldésére egy szolgáltatás felé…

A Szolgáltatás védelme:

Ismét egy újabb negatívum, nem találtam semmi hozzáférés a service-hez igazán, ahol rendesen lehetne védeni a dolgot, persze trükközni lehet hookup pointokon, de nem az igazi… viszont lehet saját WCF RIA Service-t használni, ahol már viszont ezt játszi könnyedséggel megoldhatjuk! + 1 pont

Konkurrencia kezelés (esetleg feloldás közben újabb konkurrencia probléma):

Ez volt a második OMG pillanat. Fel van rá készítve a kliens. És okos, és kultúrált és nem nagyon hibázik… Teljes kivezetés a UI-ra, reakció a saveerror-ra. Tökéletesnek is mondhatnám, de pl nem találtam meg azt, hogy mely property-k vegyenek részt MINDIG concurrency check-ben… ez nekem hiányzott….

Ez egy nagy piros pont, ugyanis több property-re is nagyon jó műxik, és ismételt feloldás közben bekövetkezett újabb szerver oldali változásra is jól reagál. Piros pont. (+1 pont)

Hibakezelés:

Kellemes, értelmes üzenetek jellennek meg, nem eszetlen excpetion-ok. Szimpatikus. Általában fel lehet iratkozni a műveletek error pontjaira így extra lépéseket lehet tenni még igény szerint. (+1 pont )

Validáció testreszabása:

Bizony van lehetőség custom validation implementálására, ez ismét egy sima hookup lehetőség. Szeressük érte nagyon. A validáció megjelenítésre… hát elég Internet Explorer-es, nekem annyira nem tetszik, de jól látható és értelmezhető, ez a lényeg.

TFS-sel történő együttműködés:

Ugye ez nem triviális kérdés, mert nem látunk cs, sem xaml fájlokat. Ugyanakkor a checkin pillanatában nyilvánvalóvá vált, hogy de bizony vannak, és rendesn projekt struktúra generálódik a háttérben, amit lehet verziózni. Hát némely generált kód, sima cs, némely pedig xml… ezzel együtt kell élni. De a pozitívum, hogy megy, műxik és nem olyan, mint az Access-nél

Custom Controlok, Data Template-ek:

Röviden a válasz, lehet, és lehet. De csak  módjával… A legnagyobb poén az egész testre szabást illetően a live testreszabás… azaz, amikor fut élőben az alkalmazásod, és testreszabod a UI-t, ÉLŐBEN! Na az mindent überel

A fenti ábrán jól látható, hogy az élő alkalmazást szabom testre és én döntöm el, hogy az adott mezővel mi legyen… mi jelenjen meg benne, milyen típusú vezérlő renderelődjön ki, legyen model window? (ráklikkelsz felugrik egy kereshető modális ablak), vagy picture and text datatemplate-et szeretnék benne látni? Azaz minden ami használható, gyakori, kényelmes és elképzelhető, az megoldható innen.

Összesített véleményem:

Még mindig azon a véleményen vagyok, hogy ez korai release még. Meg kell várni a későbbieket, hogy ott milyen támogatás leszl (pl lokalizációval, resource kezeléssel, caching-gel lesz valami? Mert jelenleg ezek nem nagyon, vagy egyáltalán nem léteznek… A target audience is jó kérdés, ugyanis be kell valljam, hogy tudnám használni. Így hogy ennyi minden le van fedve benne, nem használhatatlan KISEBB, adminisztáricó, nyilvántartó alkalmazások számára. Komolyabb alkalmazást, már nem tudnék rajta elképzelni, ahol már nem elég a szimple CRUD felület, de komoly business logic is van a háttérben.

Összességében, jobban várom, mint nem.  (És aki engem ismer, és tudja, hogy milyen a hozzáállásom a RAD technológiákhoz, az tudja, hogy ez bizony nagyon nagy szó tőlem ) Meglátjuk…

Ti hogy látjátok?

Kategóriák:Uncategorized

Személyes Post: T-COM – MAJOR FAIL, vagy egy vevő kálváriája a szolgáltató dzsunegelében

július 14, 2010 Hozzászólás
Hát ez most egy személyes jellegű post lesz, de nem bírom magamban tartani!.
Volt egy net előfizum, DSL Classic Medium, 8700FT/hónap, ezért kaptam 8Mbit-es netet, ebből megkaptam 6.5 Mbitet Sajnos az elmúlt két hónapban ez a 6.5 lecsökkent 3.5 környékére (garantált ugye 4 volt…) Az IPTV (szintén T-Home) is már akadozik néha, főleg a téka. Erre még rájön, hogy nézem neten az árát a csomagnak , Tripla kedvezménnyel csak 4500FT körül van, én meg 8700-at fizetek, pedig jár, mert van telefon, net és tv is. Hozzátartozik a történethez, hogy felhívtak 3 hónapja, hogy a net hüségem lejár. Fizessek elő a 15MBites netre, mert az milyen jó nekem. Hát de jó ám, ár nem is érdekel jöhet… innentől a párbeeszéd…
 
– ÉN: Akkor ha előfizetek, a 6.5-et biztosan megkapom? (erről ugye tudtam, hogy ennyi tud jönni)
– T-COM MUNAKTÁRS: Hát nézem itt a gépben, a 15MBit kiépíthető, technikailag LEHETSÉGES (tessék visszahallgatni kedves TCOM, ha amúgy is mindent felvesznek)
– ÉN: Akkor bizony jöhet.
– T-COM MUNAKTÁRS: Május 1-én aktiválódik a szolgáltatás……bla bla bla
 
Július 14-ét írjuk, a telszámla még mindig 8700FT, a net még mindig lassú, Felhívom a T-COM-ot elpanaszkodom nekik a szitut.
 
– T-COM MUNAKTÁRS: Sajnos ez a csomag az Ön lakhelyén műszaki okok miatt nem kiépíthető. Így visszadobták a kérelmet.
– ÉN: De a csomagjukban a minimum az 5Mbit, eddig 6.5 jött…. miért nem építhető ki akkor?
– T-COM MUNAKTÁRS: Hát a pontos technológiai kérdésekhez, sajnos én annyira nem értek. De tudjuk ajánlani az 5MBit-es alap csomagot, ami… bla bla bla
– ÉN: De ott a garantált 1 MBit/sec, akkor mennyit kapok meg ténylegesen? 2-őt??
– T-COM MUNAKTÁRS: Hát az a műszaki lehetőségektől…..
– ÉN: Ja igen, de az most őszintén olyan 2.
– T-COM MUNAKTÁRS: Hát igen, olyan 2 körül lehet…
– ÉN: De azzal én gyakorlatilag nem tudom nézni az iptv-t rendesen, mert a mostani 3.5 mellett is már beakadozik.
– T-COM MUNAKTÁRS: Sajnos jelenleg, csak ezeket tudjuk ajánlani.
– ÉN: Pompás, akkor lehet-e olyat, hogy én most lemondom a netet, előfizetek máshol, és úgy menni fog-e nekem az IPTV?
– T-COM MUNAKTÁRS: Egy pillanat türelmet….. (ZENE, nem titanic)….. Sajnos nem. De tudjuk ajánlani az 5MBit-es alap csomagot, azzal lehet….
– ÉN: Na igen, csak azzal élvezhetetlen. Akkor tisztázzuk… 2 csomagról lehet szó. 15MBit, amit nem kaphatok meg, illetve 5MBit, ami pont semmire sem elég… (mert ugye csak az effektív garantáltat érdemes nézni, aztán talán beszorozni azt 1-1.5-el)….
– T-COM MUNAKTÁRS: Sajnos jelenleg, csak ezeket tudjuk ajánlani. Esetleg meg tudja hagyni a jelenlegi régi csomagját, így megkapja azt a 3-4MBit-et, csak a tripla kedvezmény nem jár hozzá…. (azaz marad 8700)
 
Na további pár perces színvonalas beszélgetés után, ahol egy telefon akciót megpróbáltak rámtukmálni, megállapodtunk, hogy szerintem én le fogom mondani az egészet a jó büdös manóba októberben (akkor jár le az IPTV előfizu).
 
Konklúzó: Nem érdekelt az összeg, szerettem volna olyan normális netet, ami mellett lehet rendesen tévézni és netezni párhuzamosan, így 2010 környékén. A T-COM nem tud nekem ilyet biztosítani!!! BP-től 20km-re… na EZ a MAJOR FAIL
 
Már csak az érdekelne, hogy ha eddig technikailag lehetséges volt a 6.5MBit biztosítása, akkor vajon ugyanannyi pénz fizetése mellett, most hirtelen miért nem lehetséges??????
 
Körbe néztem a környéken senki nincs aki tudna valami értelmeset biztosítani, se digi, se upc… Fibernet van.. ők 10/2-őt tudnak ajánlani ELMÉLETILEG (garantál 2mbit :D) Valakinek tapasztalata ezzel?
 
Kategóriák:Uncategorized

MVVM a gyakorlatban – Part III (eng)

június 17, 2010 Hozzászólás

A SilverlightShow megbízásából egy 3 részes MVVM alapjait és haladóbb koncepcióit felölelő cikksorozatot készítettem, melynek harmadik része (Validation, Behaviors) megtekinthető, természetesen angol nyelven itt. Talán a későbbiekben lesz idő és lehetőség magyarul is elérhetővé tenni a cikkeket. 🙂 Addig is gondoltam kikiáltom itt is, az angolul tudók számára, hátha valakinek jól jön!

Data Driven Applications with MVVM Part I : The Basics
Data Driven Applications with MVVM Part II: Messaging, Unit Testing, and Live Data Sources
Data Driven Applications with MVVM Part III: Validation, Bringing the UI Closer

Kategóriák:Uncategorized

MVVM a gyakorlatban – Part II. (eng)

június 16, 2010 Hozzászólás

A SilverlightShow megbízásából egy 3 részes MVVM alapjait és haladóbb koncepcióit felölelő cikksorozatot készítettem, melynek a második része (Messaging, Unit Testing, Live Data Sources) megtekinthető, természetesen angol nyelven itt. Talán a későbbiekben lesz idő és lehetőség magyarul is elérhetővé tenni a cikkeket. 🙂 Addig is gondoltam kikiáltom itt is, az angolul tudók számára, hátha valakinek jól jön!

Data Driven Applications with MVVM Part I : The Basics
Data Driven Applications with MVVM Part II: Messaging, Unit Testing, and Live Data Sources

Kategóriák:Uncategorized

MVVM a gyakorlatban – Part I. (eng)

június 15, 2010 Hozzászólás

A SilverlightShow megbízásából egy 3 részes MVVM alapjait és haladóbb koncepcióit felölelő cikksorozatot készítettem, melynek az első része (alapvetések) megtekinthető, természetesen angol nyelven itt. Talán a későbbiekben lesz idő és lehetőség magyarul is elérhetővé tenni a cikkeket. 🙂 Addig is gondoltam kikiáltom itt is, az angolul tudók számára, hátha valakinek jól jön!

Data Driven Applications with MVVM Part I : The Basics

Kategóriák:Uncategorized

Okostelefonok, a nevető harmadik a befutó?

május 26, 2010 Hozzászólás

Az okostelefonoké a jövő, ez nem is kérdés… Nem tudom kedves olvasó, szembejöttél-e velem valaha egy olyan konferencián, ahol a 3 képernyőről és a jövőről beszéltem. Ha igen, akkor a következő szavak ismerősek lehetnek:

“A mobil okos. A mobil velem van. A mobil tudja, hol vagyok, tudja mennyi az idő, merre kell menni, hall és lát is, tudja mire mutatok vele. Hosszabb távon, tudja milyen zenét szeretek, melyek a kedvenc elfoglaltságaim, kik a barátaim, hol leszek holnap, mi érdekel, mi fontos. A szoftverpiac egy teljesen új világát nyitja meg előttünk.” De talán elég, ha csak annyit mondok, hogy Augmented Reality, és máris sokan hümmögve és fejbólogatva kezdenek fantáziálni a jövő szoftveréről.

Tagadhatatlan tény, hogy ennek a világnak az Apple adta a legnagyobb lökést eddig, amikor előrukkolt az IPhone-nal. A lökés alatt egy hatalmas nagy pofont értek, amelyet elegánsan leosztott versenytársainak. Mikor bemutatta a terméket a keynote-ban, kijelentette, hogy évekkel vannak vetélytársaik és a piac előtt. Akkor igazuk volt, az előny mindmáig közel behozhatatlannak tűnt. Azonban a konkurensek is felébredtek téli álmukból és rájöttek van élet a PC-n kívül. Sőt… a PC-n kívül van igazán élet! Mi sem bizonyította jobban, mint az apple sikere az IPhone-nal… Cégek alakultak rá, magánszemélyek sikersztorijainak tucatjait hallhattuk.

Az okostelefonok-é a jövő, nem kérdés…. A jövő? Mit beszélek, már a jelen is! Ennek a felismerésnek az eredménye a Windows Phone 7 is a Microsoft házatájáról, illetve a Google nagytestvértől az Android. Az előbbiről már pont eleget beszéltünk és vitáztunk, mindenki tudjam, hogy nagy rajongója vagyok stb… szóval most inkább az utóbbiról, az Android-ról beszélnék.

Kiváncsi voltam mi a helyzet a mobilok linuxával, az Android-dal, ami most 2.2-es verziónál jár, a “Froyo”-nál. (korábban is ránéztem már az Android-ra akkor ez egy nagy nulla volt…) Bizony, bizony megnéztem a Google I/O konferencia idevonatkozó részeit és beletúrtam az Android SDK-ba. Egyetlen szóval:

Jó. Ez a cucc jó. Ez a cucc nagyon jó! Bevallom (most már kicsit szégyellem) én kicsit mindig úgy gondoltam a Google-re, hogy egy számomra homályos, ködbevesző óriás, aki csinált egy jó keresőt és kb abból él, mert minden egyéb szolgáltatása erőltetett és nem túl jól használható. (kivétel talán a gmail…) Tévedtem. Hogy mennyire sutyiban, azt nem tudom, lehet hogy csak én nem figyeltem oda, de ezek építettek valamit, ami jó. Nagyon jó. Kérlek kedves olvasó, ne várd, hogy most az Android, meg a google platform összes jóságát felsoroljam, nem tudom, nem is értek hozzá. Inkább kiemelném, ami engem, mint fejlesztőt azonnal megfogott.

Android 2.2 – Froyo-ra bizony Java-ban lehet fejleszteni. Az api egész barátságos. A felhasználói felületet XML-ben lehet megfogalmazni… (ismerős?) Van jó kis emulátor, könnyen használható fejlesztő környezet. 1 órán belül szűz gépen, volt egy hello world-öm, gombnyomásra. A fejlesztői élmény bizony jó.

Google Cloud Services – Android párosítás. Bizony akárcsak az MS, a google sem tétlenkedik és ha már van egy rakás szabad szervere, miert ne lennének klassz szolgáltatásai a felhőben. A googlemaps integráció magától érthetődő, de az android képes olyanra is amire például a vetélytársai nem. A Push notification új szintjére gondolok, amikor például egy felhőből jövő üzenet ,alkalmazást indíthat a telefonon. Például a google chrome-ban, miközben útvonalat tervezek a google maps-en, a kiadott route-ot rátölthetem a mobilomra egyetlen klikkel. Vagy a beböngészett kedvenc oldalt, ráküldhetem a mobilomra. (nem vezetéken, nem blucuccon, hanem a cloud-on át) Hínye… ezek a fickók nem ültek a barájaikon. Az a kis apróság, hogy megszerezték Brad Abrams-et a csapatba meg…. OMG!

Böngészés Android-on: Rémgyors. Minden energiájukat beletolták, hogy az oldalak gyorsan betöltődjenek, a javascript futtatási sebessége verje a konkurenciát. Ebben a témában jelesre vizsgáztak a srácok. A 2.2-es Android 2-3x gyorsabb, mint az elődei, és agyba főbe veri az IPhone-t, de még az IPad-et is.

Minden, amit hiányolunk az IPhone-ból és a WP7-ből az Android-ban megvan. Csak hogy párat említsek: Multitasking, magas szintű konfigurálhatóság, teljes testreszabhatóság. A vizuális élménye is rendkívül meggyőző tud lenni az OS-nek.

Persze, ami az előnye, az a hátránya is lehet. A túlzott testreszabhatóság ront a konzisztencián (a szabványosság hiánya komoly probléma lehet), a párhuzamos futtatás megöli majd az aksit és a teljesítmény is biztos rosszabb lesz miatta. Persze vannak kétségeim is, hiszen a mobil piac jelentős többsége nem a power user-ekről szól, hanem a casual (1ség) user-ről, akiknek a WP7 és az IPhone képességei bőven megfelelők és mivel azok UX szempontjából picit erősebbek, konzisztensebbek, meglátásom szerint nagyobb népszerűségnek örvendhetnek majd.

De tény, hogy ez egy baromi kemény platform. Tény, hogy jó a fejlesztői élménye, és úgy fest, ez igaz a felhasználói élményre is. Állítólag 3 hónapos ciklusokban fogjuk kapni a jót a fa allá. Az Android a mobilvilág linux-a, és mint ilyen nagyon jól képes alkalmazkodni. Egyre több gyártó próbál előrukkolni mindenféle tablet megoldással (kedvet kaptak az IPad miatt) Android alapokon. Ez azért sokat elmond…

Mit is mondhatnék. Egyik szemem sír, a másik nevet. Boldog vagyok, mert az egészséges verseny nyertesei garantáltan mi, felhasználók leszünk. Ugyanakkor sírok is, mert, mint fejlesztő, most tanulhatok meg újra java-ul, meg android-ul :). (Objective C-ül azért nem, mindennek van határa! :D)

Oda kell rá figyelni… ééééés pont 🙂

Kategóriák:Uncategorized

Windows Phone 7 – Mi van a Multitask helyett?

március 29, 2010 4 hozzászólás

Sokak számára megdöbbentő hír, hogy a Windows Phone 7-ben jelenlegi állás szerint nincs multitasking. Bár lehetőségünk van alkalmazáson belül több thread-et futtatni, azaz lehet többszálú alkalmazásokat írni, de párhuzamosan futtatni két alkalmazást nincs! Persze ez sem egészen igaz, mert alapvetően több rendszer folyamat is képes párhuzamosan futni, azaz lehet zenét hallgatni, miközben netezel, stb… De tény, hogy két 3rd Party app jelen pillanatban nem tud párhuzamosan futni.

Mik az okai ennek?
Akármilyen alaphardvert is ír elő az MS ez ügyben, akkor is egy erősen korlátozott hardverkészletről van szó a PC esetén. Ennek megfelelően szembesülni kell a következőkkel:

1. Egy erősen korlátozott energia forráson kell osztozni, értsd lemeríti a sok program az aksid. Észre se veszed és a több napos standbyból 3 óra lett…
2. Foglalja a memóriád – értsd lassítja a többi alkalmazásodat
3. Foglalja a processzor időd – értsd lassítja a többi alkalmazásodat
4. Egy képernyőn egyszerre többnyire csak egy alkalmazást futtatsz. (ugyanis nem egy 24”-os monitorról beszélünk itt)

A fenti listán végig haladva egyértelműen megállapíthatjuk, hogy káros hatással lenne a multitasking a telefonunkra., a többi alkalmazásunkra és főleg a felhasználói érlményünkre nézve. De nézzük mit veszítünk a hiányával?

1. Az alkalmazásaink adatforrásokból táplálkoznak, de ha nem futnak a háttérben, az adatokat sem tudják letölteni.
2. Nem tudom “letenni a tálcára” az alkalmazásomat, majd egy másikat megnyitni, és miután azzal befejeztem a munkát, vagy akár közben visszatérni az előzőre és folytatni ott ahol abbahagytam.
3. Gyors váltás a futó alkalmazások között, hiszen futnak párhuzamosan… Multithreading nélkül ez problémás.

A fenti esetek kb le is fedik a multitask hiányából adódó problémakör bk 95%-át.

Mi erre a Windows Phone 7 Series válasza?

1. Push notification

Nem kell az alkalmazásnak futnia azért, hogy infórmációhoz jusson. Különben is milyen kommunikációs modellt akarnánk építeni? Folyamatosan pollozunk egy webservice-t, ezáltal szívva le az aksit, foglalva a memóriát és a processzort?

A modell a következő. Van egy szolgáltatásom, aki rendelkezik az információkkal. Én a mobil alkalmazásomból nyitok egy Http csatornát és elküldök neki egy url-t. Ez az URL azt tartalmazza, hogy ki vagyok én, mint telefon, illetve, hogy hol van az ún. Push Notification Service? Ugyanis a szolgáltatásom miután megkapta ez az url-t az adatokat adott időközönként nem nekem, hanem ennek az URL-nek, azaz a Push Notification Service-nek küldi el. Az URL része, a telefonunk azonosítója, így a Push Notification Service “csomagokban” az összes nekem címzett ilyen jellegű információt elküldheti, amit a telefonunkba épített Push Notification Kliens a megfelelő helyre továbbíthat is! Hova? Hát pl a Home Screenre Tile-ok formájában, vagy éppen Toast formájában, vagy simán Raw adatként is megkaphatja a futó alkalmazás az információt. Az első két esetben lehet, hogy az alkalmazásunk nem is fut már. De magára a kapott üzenetre bökve (értsd táácccsss) felugrik az alkalmazásunk és az információt izlése szerint kezelve, megjelenik.

 

Oké, akkor az üzenetket megkapjuk kötegelve, ez megoldódott, egyes pont pipa!

2. Állapot és Task management

Mi a helyzet azzal, hogy meg akarok nyitni egy másik alkalmazást, talán épp egy ilyen toast-ból, és miután azt bezártam szeretném az előző alkalmazással a munkát ott folytatni, ahol abbahagytam. Szerencsére erre is van lehetőség. A standard “nem futok – indulok – futok, – kiléptem” életciklus sorozat némileg kibővül a wp7-en. És a következőképp nézz ki. Vannak bizony pause, suspended és resume állapotok is. Azaz, amikor az alkalmazást letesszük szunyókálni, kapunk egy üzenetet, miszerint valaki épp pausolni akar minket, itt konkrétan el tudjuk menteni az alkalmazás aktuális állapotát. Aztán jön a Suspended állapot, ahol igen nagy eséllyel a processzünk ténylegesen el is halálozik!! Ugye tekitnve, hogy CLR-ről meg garbage collector-ról van szó, nem tudhatjuk, hogy ez mikor következik be, a lényeg, hogy számítani kell rá, hogy meg fog történni. Node, mikor visszatérek az alkalmazásomhoz, pl egy Back button segítségével, akkor kapni fogok egy resume üzenetet, miszerint bizony folytatni kellene ott, ahol abbahagytuk!, itt bizony nekünk kell visszaállítani az alkalmazás előző állapotát. Aztán ismét “running”-olunk. Egy a lényeg: A USER NE VEGYEN ÉSZRE EBBŐL SEMMIT!

Kettes pont kipipálva, sőt a hármas pont is, mert ennek a rendszernek köszönhetően, bizony több processzor idő és több memória is marad, ami kompenzálni fog a váltási idők miatt, az energia spórolásról meg ne is beszéljünk. Vajon ha a user megkapja az alkalmazásához tartozó adatokat, amiket egy érintéssel be tud tölteni, az alkalamzásai között meg gyorsan tud váltogatni és ott tudja folytatni a munkát ahol abbahagyta, hiányozni fog neki a multitasking?

No, hát ezt tudja jelen pillanatban a wp7. (illetve ezt fogja tudni :P)

Ti mit gondoltok? Gyertek és osszátok meg velünk április 12-én a Visual Studio 2010 launch-on, a Windows Phone 7 Session alatt, vagy a délutáni Ask The Experts sarokban, vaaaaaagy gyertek el ma a Silverlight Klub –ba, a  ma esti találkozóra, 18:00-kor. Sőt a legjobban akkor jártok, ha ide is, oda is eljöttök :))

Kategóriák:Uncategorized