Recenze  |  Aktuality  |  Články
Doporučení  |  Diskuze
Auto-Moto
Mobilní telefony
Notebooky  |  Tablety
Příslušenství
Wearables  |  Ostatní
Svět hardware  |  Digimanie  |   TV Freak

WM7 - vím že něco vím, ale taky nevím co přesně :-(

petr.antos (2)|23.1.2010 11:30
Dobrý den,
poslední dobou se mi zdá jako by windows mobile strašlivě skomíralo, už ani na eshopech skoro nic není a když tak nějak
podivně, takže jsem se vydal lehce popátrat. Ačkoliv nemám moc času lézt po fórech a diskusích, tentokrát jsem si tady na
ce4you se zájmem přečetl pár článků o tom co asi se chystá pro WM7. Protože jsem se s WM vlastně setkal už někdy dávno
na invexu prostřednictvím knížky Roberta O'Hary "Microsoft Windows CE for Handheld PC", která mě nadchla tak, že ji mám
stále rád ve své knihovně (bylo to o verzi WinCE 1.0 :-) a protože si myslím, že WinCE minimálně od verze 4.2 prostě JE
a BUDE hodně skvělý hard-realtime kernel jako základ pro to co máme dnes někteří ve svých "tatrankách", tak jsem popátral
ještě víc v paměti a po webu a pokusil jsem se mírně odhadnout co nás tak asi čeká, i když leckde si možná až moc vymýšlím
- nicméně docela jsem se tím pobavil a hlavně mi konečně došlo, proč už tak dlouho není slyšet a vidět nic moc nového ve
WM a v NETCF a taky proč se nedá už skoro pár let najít ani přes google nic kloudného o "Silverlight Mobile" a všechno to
slovy klasika "vrhlo na celou věc docela jiné světlo" - posuďte sami:

problémy:
- windows mobile = nejednotné rozhraní aplikací, pomalá odezva, špatná použitelnost ... malý podíl na trhu
- pomalé mizení WM zařízení z eshopů, zdá se mi ... vyskytují se jako "bazar" položky = vrácené?, nechtěné?
- náročný vývoj aplikací, pokud mají být "svižné", MUSÍ být napsané v C++ a jen takové jsou jakžtakž
úspěsné (HTC Touch UI např., nicméně včera mě třeba dožralo mobilní Skype jak je nenažrané ... hnus :-)
- ALE: procesorová platofrma ARM navíc není sama a bylo by fajn dělat opět cílové APLIKACE "prostě nějak úplně jinak"
- vývoj v NETCF/WinForms se pro obecně úspešnou aplikaci použít příliš nedá, pořád jsou to "desktopová okénka"
(v CF API např. ani neexistuje oficiální kompletní podpora pro všechny možnosti GDI+ atd ...)
- dlouho už sice NETCF obaluje DX/D3D, ale to pořád není ono, hw nebývá neakcelerovaný, chybí tomu "štábní kultura"
- díky omezení paměti procesu WinCE 5.0 na 32MB není možné naplno využít SQL Mobile (navíc pouze jako in-proc dll !!!)
- NETCF CLR je samo o sobě sice také celkem super efektivní, ale potřebuje kolem sebe nějaký nativni kód pro gui a data
- managed kód je potřeba využit nejlépe jako "lepidlo" pro nativni C++ enginy (viz. právě podobnost s DX/D3D/SQLMobile)
- SQLMobile pak nemá ovšem často téměř KAM rozumě rychle ukládat rozumě indexovatelná relační data
- aplikace se samy musí starat o vhodné využití vláken, práce s dvaty a službami na pozadí, jinak GUI prostě "umře"

zajímavosti:
- WM 6.x stále používá jako kernel WinCE 5.0 = max 32MB/proces a žádná virtuální pamět, max. 32 procesů atd...
- NETCF team absolutně jako by zmizel z planety, není VIDĚT žádný pokrok od verze 3.5
( = naposledy integrace LINQ a všech pro něj nutných podkladovych techologii a konstrukcí do C#3.0)
- NETCF neumí "reflection emit" - nemůže za běhu generovat kód pro CLR/JIT (a je potřeba dost výkonu i paměťi)
- NETCF je nedílnou součásti XBOXu, kde se dá reálně použít právě pro skriptováni "drsně" akcelerovaného DX/D3D
- Silverlight Mobile neni prakticky googlovatelny pojem, jako by se od jisté doby vůbec nic nedělo
- Silverlight/WPF UI přitom MOC chytře vlastně implementuje podporu pro oddělené modely i kontroléry = MVC
- Silverlight na desktopu hodně počítá s dynamickým kompilováním kódu diky "DLR" rozšířenim (nutná RAM pro reflection)
- WinCE 6.0 R3 ze září 2009 ale už "překvapivě" obsahuje přímo v sobě "jakési Silverlight Embedded", mimo jiné !!!
- Některé SD karty (Kingston Ultimate:-) díky vynikajícímu řadiči a SLC čipům už před lety svištěy skoro jako pevný disk !!!

možná hodně drzá prognóza, asi je často přání otcem myšlenky:
- WM7 = výkonný hardware, 1GHz+ procesory, časem více jader, spusta rychlé paměti, ideálně i akcelerovaná 3D grafika?
- WM7 = WinCE 6 jako kernel
(tj. včetne "Silverlight Embedded" C++ engine a UI deklarovatelného přes XAML viz. Expression Studio/Blend)
- WM7 = NETCF + něco jako "embedded DLR interpretter" = možnost nativního skriptovani přes CLR/JIT
- WM7 = procesorově náročné záležitosti přesunuty do deklarativních C++ engines, skriptovaných právě i díky NETCF/DLR
- WM7 = do budoucna masivní využití více jader CPU (NETCF managed ThreadPool, stejně jako na PC nebo v XBOXu)
- WM7 = drasticky snazší vývoj všech aplikací díky oddělení UI (XAML/Expression Blend+Designer) a DB (XAML Entities?)
- WM7 = Silverlight 2,3,4+ "data controls/binding" i pro průmyslové aplikace (tady spíše čisté WinCE6?, ne celé BFU WM7)
- WM7 = masivní využití SQL Mobile díky dostupné RAM, ideálně ve spojeni s "něčím jako Entity Framework embedded"?
- WM7 = ultrarychlé SDHC/SDXC karty jako "embedded SSD" pro DB (životnost flash řeší dle specifikace odjakživa SD řadič)
- WM7 = ... patrně také "embedded jaderný reaktor", anžto netuším ale ani minimálně co celá ta bestie může žrát ...

Programoval jsem před pár lety průmyslové aplikace pro WinCE/NETCF/SQLMobile terminály a sám jsem dospěl k nahrazení
výchozí WinCE plochy (explorer.exe v HKLM/Init) spuštěním "práve jednoho CF WinFormu" s přepnanými připravenými
panely nad v podstatě "mikrokernel" runtime, díky kterému bylo možné celé to NETCF managed exe normálně spustit s
emulovanými "managed providery" i na desktopu a po výše uvedených "deklarativnostech" víceméně toužím už prakticky
od dob české DOS-ové databáze PC-FAND pana Gerta Klotzera (ne nevýznamné kvantum lidí se tomu možná stále směje :-)

ještě pár zajímavých linků:
http://www.microsoft.com/windowsembedded/en-us/products/windowsce/faq.mspx
http://www.microsoft.com/windowsembedded/en-us/products/windowsce/silverlightforwe.mspx
http://www.microsoft.com/windowsembedded/en-us/products/windowsce/silverlightforwe.mspx?session=1
http://msftkitchen.com/2009/05/windows-mobile-7-ui-still-under-construction.html
http://en.wikipedia.org/wiki/Windows_Embedded_CE_6.0
http://en.wikipedia.org/wiki/Microsoft_Windows_CE
http://msdn.microsoft.com/en-us/windowsembedded/ce/aa714536.aspx
http://www.microsoft.com/silverlight/smoothstreaming/
http://silverlight.net/getstarted/silverlight3/
http://silverlight.net/getstarted/silverlight-4-beta/
http://www.microsoft.com/expression/products/Studio_OverView.aspx#page-top
http://blogs.msdn.com/netcfteam/
http://en.wikipedia.org/wiki/Microsoft_XNA
http://msdn.microsoft.com/en-us/library/bb203914(XNAGameStudio.10).aspx
http://blogs.msdn.com/mobiledev/

... hmm, jen doufám, že to hlavně ti Indové ale nemají tak nějak "na salámu" ... čekal bych že jsou teď všichni lidi
z týmu wince, netcf, silverlight mobile a sql mobile a vubec "všechno co je mobile" zalezlí někde v tajném bunkru
a Steve s Billem jim
Huge (1)|14.3.2010 02:02
Zdravím, chci se zeptat, jak je to s programováním pro grafické čipy na nových WM(7) zařízeních. Na iPhone a Androidu je to OpenGL Embeded Systems, bude tedy Microsoft programovat DirectX/3D také v nějaké minimální edici, nebo snad hodlají použít +- totožné Direct jako na PC? Bude pak možné programovat pro Win Phone také v OpenGL, aby vývojáři mohli snadno portovat aplikace mezi mobilními platformami?
Díky za případné odpovědi.
petr.antos (2)|20.3.2010 01:44
NO myslím že teď už je více než jasné, že jde o XNA framework, čili managed obálku nad DirectX/Direct3D, XACT audio atd. (i když to audio/midi by mne samotného zajímalo jak to bude). O 3D grafice si troufám prosímpěkně téměř shola nic kloudného nevědět. Pouze se mi doslechlo, že programování v Direct3D je daleko větší opruz než v OpenGL, ale když už MS dělá nějaké nové api, tak si dává záležet, aby to bylo lepší než cokoliv je kolem - Někdy před třemi lety jsem si jen tak zkusil nainstalovat XNA Game Studio, tuším 1.0, zaujalo mě to z hardwerového hlediska, co je vlastně v XBOXu za železo a systém a jak se s tím pracuje. Už tenkrát byla prý ta demo hra provozovatelná jak ve windows s nainstalovaným XNA frameworkem tak na XBOXu. Zkusil jsem si ji buildnout a spustit na PC, ale ta 3D terminologie je mi opravdu cizí i v tom učesaném api :-D. Vypadalo to ale víc než logicky všechno. On je to vlastně celý herní engine s akcelerovanou grafikou, skriptovaný NETCF kódem - a to samé bude tedy i ve Windows Phone 7, což JE ok :-)