Tag Archives: mobil

__doPostBack is undefined

Éljenek a modern böngészők! Tényleg, én szeretem, hogy van változás, jönnek az újak, amelyek biztonságosak és a webes szabványokat is egyre jobban támogatják. Jobb a fejlesztőknek és jobb a felhasználóknak is. Néha azonban beüt a mennykő és egy-egy újabb böngésző alatt elhasal a korábban szépen működő webhelyünk. Például Internet Explorer 10 alatt egy ASP.NET-es alkalmazástól könnyen kaphatjuk ezt a hibaüzenetet:

‘__doPostBack’ is undefined

Az aláhúzás-aláhúzás kezdetű dolgokról tudjuk, hogy az ASP.NET belső működéséhez tartoznak, így ez már messziről komolynak tűnik. Pedig mindössze arról van szó, hogy az ASP.NET down-level böngészőként értelmezi a legújabb IE verziót, ami szerinte nem kezeli a JavaScriptet. Firefox 5+ alatt hasonló a helyzet, ugyanebből az okból kifolyólag ott a görgetősáv visszaállítással kapcsolatos MaintainScrollbackPositionOnPostBack tulajdonság hal meg. Mindkét hiba annak köszönhető, hogy egy hiba csúszott a .NET 2.0 és 4.0-hoz tartozó böngésző definíciós fájlokba.

A browser caps egy karbantartási rémálom. Az alapötlet jó (vagy talán egyszerűen nincs jobb), de rengeteg munka követni a változásokat. Bár Microsoft ad ki időnként frissített browsercaps fájlt, sajnos más források gyakrabban frissülnek, különösen a mobil eszközök és böngészők területén. Szerencsére a mechanizmus rugalmassága lehetővé tette, hogy a Microsoft most gyorsan javítsa ezt a hibát, amit mi NuGet csomag formájában tudunk alkalmazni a saját webalkalmazásunkban:

Jobb klikk a Solution Explorerben a projekten, majd Manage NuGet Packages…

Manage NuGet Packages

Az Online kategóriában keressünk arra, hogy app_browser:

Manage Packages - App_Browser

Két csomag fog megjelenni:

Telepítsük a kiválasztott csomagot, ami mindössze két .browser fájlt fog eredményezni az App_Browsers mappában:

App_BrowsersUpdate csomag telepítve

Ezzel természetesen csak egy alkalmazást javítottunk meg. Ha a szerveren lévő összes alkalmazásra szeretnénk alkalmazni a javítást, akkor az alábbi tudásbázis cikkek segíthetnek:

  • KB2600088 – .NET 4
  • KB2600100 – .NET 2.0 Windows 7 SP1, Windows Server 2008 R2 SP1, Windows Vista/Server 2008, Windows XP/Server 2003
  • KB2608565 – .NET 2.0 Windows 7 és Windows Server 2008 R2 RTM

A javítások be fognak kerülni a .NET Framework következő nagyobb javítócsomagjába, ami a következő év elejére várható.

 

Technorati-címkék: ,,,,
Advertisements

Desktop alkalmazások futtatása Windows Phone 7-en

Az egyetemi lét egyik nagy előnye, hogy az ember legálisan szakíthat magának időt arra, hogy azzal foglalkozzon, ami érdekli. Tudományos körökben ezt kutatásnak hívják, ám aki nem a doktorija megszerzéséért csinálja, annál ez az a pont, ahol a programozás visszaalakulhat egy rövid időre hobbivá. Nálam ez a terület például a mobil alkalmazásfejlesztés, mostanában éppen Windows Phone 7-re.

Mivel legtöbbször webes alkalmazásokat készítek, ezért a WP7-es fejlesztés percenként hoz újdonságokat számomra. Na jó, bevallom, elég gyakran elakadok. Ilyenkor persze guglizok egy fél órát, meglesz a megoldás és már lépek is tovább. Mivel a net már elég “zajos”, sokszor futok bele olyan kódrészletekbe, amik egyáltalán nem is működnek, ezért rászoktam arra, hogy ész nélkül bemásolom a talált kóddarabkát a programomba, és ha működik, akkor rászánom az időt, hogy megértsem és kipofozzam a kódot. Így sikerült véletlenül rájönni arra, hogyan lehet desktop alkalmazásokat futtatni Windows Phone 7-en.

Történt ugyanis, hogy épp a hálózat paramétereit lekérdező kódra vadásztam a neten, találtam egyet, bemásoltam, működött is. Aztán amikor jobban megnéztem a kódot, nagyon meglepődtem:

RegistryKey root = Registry.LocalMachine;
string key = @"SYSTEM\CurrentControlSet\Services\Tcpip\Parameters";

RegistryKey dnsKey = root.OpenSubKey( key );
string server = (string) dnsKey.GetValue( "NameServer" );

Bizony, nem valamilyen API-n keresztül kéri le a DNS szervereket, hanem a registry-ből olvassa ki. Ezek szerint van registry WP7-en is! Sőt, jobban utána olvasva megtudtam, hogy mások már registry editort is írtak hozzá. Ezzel kiexportáltam a telefon registry-jét, áttöltöttem egy asztali gépre, ahol kényelmesebben tudtam körülnézni benne. Nem kellett sok hozzá és máris ismerős kulcsra leltem:

shell-explorer

Ez az a kulcs, ami alapján a Winlogon service elindítja azt a programot, ami shellként funkcionál. Eddig azt sem tudtam, hogy van Winlogon service a telefonon, azt meg végképp nem, hogy a shellt tulajdonképpen explorwp.exe-nek hívják. Vajon mi történik, ha ez a process meghal? Próbáljuk ki! Bele is írtam a saját programomba:

Process shell = Process.GetProcessesByName( "explorwp.exe" );
shell.Kill();

Látszólag nem történt semmi, de miután a programom kilépett, ez “jelent meg” az emulátorban:

Windows-Phone-7-black

Sehol egy hibaüzenet, a rendszer látszólag működik, csak épp nem mutat semmit. Na ezzel nem sokra megyek. De legalább van egy fél task managerem, már csak annyit kell hozzáírni, hogy indítsa újra a processt:

Process.Start( "exporer.exe" );

És ez is lefutott, annak ellenére, hogy megszokásból elírtam az exe nevét. Tehát nem csak explorwp.exe van a telefonon, hanem explorer.exe is! Ezt csinálja, amikor fut:

Windows-Phone-7-color

Ismét csak meglepő eredmény, ugyanúgy viselkedik, mint az asztali változat. Ezek után már megnéztem a laptopomon és a telefonomon lévő fájl méretét és mindkettő épp 2870272 bájt. Gyanús. Lehet, hogy teljesen ugyanaz a kettő?

Megint felderítő munka következett, ezúttal a \Windows mappában, ahol nagyon sok ismerős fájlra bukkantam. Közben eszembe jutott, hogy vajon mit kezdene ezzel a mappával a Windows Explorer. Meg is kérdeztem tőle:

Process.Start( "\Windows" );

A legszebb az egészben, hogy ezt nem lehet megtenni, amíg a gyári shell fut, mert AccessDeniedExceptiont eredményez. Most viszont, hogy nem állt az utunkba a mindenre vigyázó explorwp.exe, az operációs rendszer szó nélkül megette:

Windows-Phone-7-Windows-folder

Azt eddig is tudtam, hogy a Windows Phone készülékek nagyon izmosak, de azért ezt legmerészebb álmomban sem gondoltam volna. Innen már csak két lépés volt hátra, felmásolni néhány fájlt, és consumer eszközről lévén szó, elindítani egy érdekesebb processt:

Windows-Phone-7-WoW

Itt tartunk most, és egyelőre úgy néz ki, hogy a legtöbb asztali alkalmazás hiba nélkül fut ezen a kis eszközön, a remote desktop kliens éppúgy, mint a World of Warcraft. Eddig azokkal akadtunk csak el, amik közvetlenül próbálták olvasni a C: meghajtót, vagy nyomtatni próbáltak, a többivel nem volt gond. Kicsit szokatlan, hogy az ablakok úgy lógnak ki a képernyőről, hogy nincs scrollbar, de a gesztusok működnek, lehet ujjal tologatni a képernyőt.

A mobilos kollégák felvetették, hogy a következő lépés egy iPhone emulátor futtatása lehetne, így az alkalmazások portolása egy csapásra megoldódna és valóban működne magyar bankkártyával a vásárlás. Ez mindenképp érdekes kutatási terület, de a biztonság kedvéért felvettük a kapcsolatot a Microsofttal, hogy vajon jogilag megtehetjük-e.

Te milyen programot futtatnál szívesen a telefonodon?

 

Mobil szolgáltatások a felhőben

Egy érdekes Microsoft Research kutatási projectbe futottam bele, úgy hívják, hogy Project Hawaii. Egy rakás szolgáltatást készítenek a felhőben, melyekkel elsősorban a mobil eszközök, pontosabban nyilván a Windows Phone 7 képességeit igyekeznek bővíteni:

  • Randevú Project Hawaii
  • Számítás
  • Virtuális adatbázis
  • OCR
  • Speech to Text
  • Azonosítás
  • Térkép

Nem csak amolyan “elmélkedjünk a lehetőségekről” kutatási projektről van szó, hanem egyetemek bevonásával konkrét alkalmazások is születtek már.

Az SDK adott. Van valakinek egy jó ötlete, amivel Magyarország is felkerülhetne a térképre?

 

Technorati-címkék: ,

Windows Phone Device Manager

Boldogan írnám ide, hogy “és imáid meghallgatának vala” és a gyártó a Microsoft, de sajnos nem. A fejlesztő Julien Schapman, aki már egy ideje kecsegteti ezzel az eszközzel a felhasználókat, bár a korábbi bétával kapcsolatban elég vegyes visszajelzések voltak. Ez a videó most igen-igen bíztatónak tűnik (720p, teljes képernyős nézet ajánlott).

Technorati-címkék: ,

WP7 DevTools January 2011 Update

Bár a WP7 telefonokra még nem töltődött le a copy-paste funkciót is tartalmazó, sokat ígért januári frissítés, a fejlesztők már kipróbálhatják, hogyan viselkedik majd az alkalmazásuk az új operációs rendszeren. Bár a legtöbb alkalmazást nem kell módosítani a telefon operációs rendszerének frissítése miatt, lehetnek olyan esetek, amikor az új másolás-beillesztés funkció előre nem látható mellékhatással jár egy-egy spécibb, Panorama vagy Pivot kontrollba ágyazott TextBox környékén. Ezt megelőzendő, a Microsoft kiadta a Windows Phone Developer Tools 2011. januári frissítését, amely új emulátor image-ekkel segíti a fejlesztők életét és az alkalmazások tesztelését. Aki esetleg új fejlesztői környezetet telepít, annak nem szükséges a 2010. októberi frissítést telepítenie, a 2011. januári változat minden korábbi javítást tartalmaz.

A javításokon kívül mi van még a csomagban:

  • Új OS emulátor image-ek copy-paste támogatással.
  • Frissített reference assembly-k.
  • Windows Phone Capability Detection Tool – amit a Marketplace is használ.
  • Windows Phone Connect Tool – media API debuggolására.
  • Frissített Bing Maps Silverlight vezérlő.

Kis hivatalos statisztika: eddig több, mint 27.000 fejlesztő regisztrált és tett közzé több, mint 7.200 alkalmazást a Marketplace-en, a fejlesztői eszközkészletet pedig több, mint 1 millióan töltötték le világszerte.

Technorati-címkék: ,

Windows Phone 7 – idehaza csak egy telefon?

Azt szokták mondani, hogy az okos telefonok annyival tudnak többet “nem okos” társaiknál, hogy nem csak telefonálni lehet velük. Mert mit csinál az ember manapság egy telefonnal, ami nem egy törpe számítógép: telefonál, SMS-t küld, fényképez, netezik. Ezek ma már alapfunkciók, a kifejezetten “buta” telefonok kivételével gyakorlatilag már a belépő szintű telefonok is tudják ezeket a funkciókat.

A Windows Phone 7 azonban több ennél. Itt most nem az agyondicsért új Metro GUI-ra gondolok, nem is a képességekre, amiket az eszköz magában rejt, hanem a szolgáltatásokra, amik ehhez az eszközhöz kapcsolódnak. A hangsúly ebben a verseny világban a szolgáltatásokon van, ez az a terület, ahol az egyik telefon smartabb tud lenni a másiknál. Ha a WP7-et nézzük, akkor van itt Marketplace, többféle online Zune, Xbox és Bing szolgáltatás, ez együtt tényleg ütős gyűjtemény. Hiányzik a beépített stopper funkció a telefonról? Semmi gond, ránts le egyet a sok száz timer alkalmazás közül a Marketplace-ről. Ettől okos, hogy ilyen dolgokra képes.

Ám még egy ilyen okos telefon sem lehet tökéletes, az Engadget “mit változtatnál a WP7-en?” felmérésére 924 válasz érkezett eddig. Csakhogy nem az itt a probléma, hogy nincs copy-paste, direkt fájl másolás, százalékos akkumulátor szint kijelzés, mert ahhoz jön majd idővel az update. Nem is az a fő probléma, hogy az eladók hozzáértése sokfelé csapnivaló.

A fő gond az, hogy egyelőre, ez egy US-only smart phone. Andrew Birch készített egy kiváló összefoglaló táblázatot arról, hogy a Windows Phone 7-hez kapcsolódó online szolgáltatások mely országokban érhetőek el és melyekben nem. Érdemes megnézni, hogy olyan nagy, angol anyanyelvű piacokon is igen üres a táblázat, mint Ausztrália. Magyarországot nem is érte meg beírni a táblázatba.

Amíg ez nem változik jelentősen, addig a Windows Phone 7 számunkra nem más, mint egy klasszikus telefon, stopper nélkül, szép csomagolással és ígéretes jövővel. Se több, se kevesebb.

Vagy te máshogy látod?

Windows Phone: platform reset

Olvasgatom a híreket és a MIX környéki cikkeket az új Windows Phone 7-ről, és közben eszembe jutott egy régi mondás: “Sikeres üzletmenet láttán mindig gondolj arra, hogy valaki egyszer lépett egy merészet!”. Úgy látszik, végre felismerték Redmondban, hogy elment a mobil vonat az orruk előtt és a korábbi Windows Mobile foltozgatásával soha nem fogják utolérni. Nem maradt más hátra, mint nulláról építkezni, ami egy ilyen gyorsan változó piacon igen merész lépés.

A nulláról építkezésnek vannak komoly kockázatai, például hogy a Windows Phone 7 valójában egy 1.0-s termék lesz. Lesznek benne szép, új, jó és csillogó dolgok, de nem fog tudni mindent. Például:

  • Nincs File Explorer, úgy nézed a fájljaidat, ahogy ő akarja és oda kerülnek a fájljaid, ahova ő akarja.
  • A háttértár nem cserélhető, azt használod, ami be van építve a telefonodba.
  • Nem látszik USB meghajtóként, csak szinkronizáló alkalmazással tudsz rámásolni.
  • Nem lehet csak úgy rámásolni alkalmazásokat, csak a webáruházon keresztül.
  • Multitask? Felejtsd el.
  • A copy-paste is a múlté: “Microsoft says most users, including Office users, don’t really need clipboard functionality”

Remélem tévednek a forrásaim, mert ez így nagyon első generációs Zune és iPhone érzéseket kelt. Elsőre a fenti lista sokkoló, de érdemes elolvasni Charlie Kindel blogbejegyzését arról, hogy miért így csinálták. Csak néhány részlet:

  • We will do a few things and do them very, very well; we are better off not having a capability than doing it poorly. There are always future versions.
  • No API will be created or documented without a clear use case; “build it and they will come” APIs almost always do nothing but create bad legacy.
  • Integrate instead of create.
  • THE END USER IS KING

A MIX-en volt jó sok előadás Windows Phone témában, meg lehet nézni őket.

 

Technorati-címkék: