TechEd Europe

Vývoj pro Microsoft Surface

  • Comments 13

Posledních pár dní jsem měl to štěstí, že jsem mohl vyvíjet nějaké menší aplikace pro Microsoft Surface, o kterém jsme nedávno psali. Bohužel Surface (ani SDK, ve kterém je jeho simulátor) nejsou volně dostupné. Proto píšu tento příspěvek, abych ukojil zvědavost zvědavých. Takže první dva poznatky:

  1. Vyvíjet pro Surface je radost a krása
  2. Ale bolí od toho záda

Vývoj je možný na dvou platformách – XNA pro pokročilé 3D vizualizace anebo typičtěji WPF aplikace pro všechno ostatní. Zůstaneme tedy u WPF. Standardní WPF umí reagovat na události od klávesnice a myši. Přidáním příslušné knihovny pro Surface získáte též události typu Contact, tj. dotek něčeho s plochou. To něco může být buď prst anebo identifikační tag (představte si čárový kód). U kontaktu máte k dispozici řadu údajů – souřadnice X a Y, orientaci (azimut), jednoznačný GUID identifikující dotyk apod.

Abyste nemuseli dělat reakce na tyto události všude sami, je součástí knihoven též sada ekvivalentních ovládacích prvků. Např. prvek SurfaceListBox dědí z prvku ListBox a navíc implementuje standardní rozhraní IContactInputElement, kde v implementaci reaguje na příslušné doteky (událost ContactDown, vlastnost ContactsOver apod.)  a převádí je na standardní akce (např. výběr položky).

Kromě toho jsou k dispozici speciální ovládací prvky pro Surface, zejména ScatterView , do kterého můžete vkládat kontejnery nazvané ScatterViewItem – do těch pak můžete vložit cokoliv – fotky, videa, vlastní formuláře apod. Automaticky pak dostanete funkce přesouvání, otáčení, zvětšování a zmenšování apod. Kromě toho můžete použít i řadu “služebních” tříd, například na základní fyziku manipulací, zobrazení dotykové klávesnice, interakci se Surface Shell aplikací apod.

Tak snad se Vám také někdy poštěstí…

Michael

  • Mě by zrovna zajímal ten vývoj prostřednictvím XNA :) Liší se v něčem vývoj přes XNA pro Surface od vývoje pro PC a XBOX nebo tak jsou nějaké specialitky? Plánuje se do XNA speciální podpora pro Target jménem Surface?

  • V XNA se neorientuji, ale tipuji, ze je to stejny vyvoj jako pro PC a neni tam specialni target (Surface je Windows Vista s par knihovnami navic). Jenom muzete obsluhovat nove udalosti, ktere na PC nemate...

  • Celé to má to jeden háček - 99% smrtelníků se k onomu stolečku nikdy nedostane nedostane. Škoda.

  • Celé to má to jeden háček - 99% smrtelníků se k onomu stolečku nikdy nedostane nedostane. Škoda.

  • Tomáš Jecha: Pokud vím, tak cílem autorů Surface je dostat ten stolek (nebo jeho následníka) za pár let i do domácností. Vzhledem k povaze toho zařízení si dovedu snadno představit, že se dostane jednou na cenu kolem 40 - 50 tisíc Kč, možná i méně. Pak by to již nebyl problém pro některé domácnosti, ale stejně tak ani pro spoustu firem, hotelů, kaváren apod.

    Nicméně je faktem, že v současnosti je to stále velice exkluzivní produkt za relativně exkluzivní cenu...:-)

  • Vojtěch Vít: Já si nejsem úplně jistý, jestli je tento hardware do budoucna určen pro domácí využití. Zatím (a i v blízké budoucnosti) bych si ho dokázal představit jen jako frajeřinku pro firmy.

    Ale až bude stát do 40ti tisíc, bude mít několik podob (nepraktický nízký stoleček není nic moc) a dokáže být opravdu "k něčemu", pak začnu slintat a půjdu rozbít prasátko. :)

  • Nějak mi není jasné co tedy to Surface přesně je. Je to nějaké softwarové řešení v podobě rozšíření operačního systému jako je například Windows XP Tablet PC Editon, nebo je to vyloženě závislé na hardwaru toho stolečku?

  • Je to vicemene oboji. Surface obsahuje pocitac s Windows Vista. Krome toho je to ale HW zarizeni s 5ti kamerami, snimajicimi povrch stolu, pripojene k onomu pocitaci. Na Viste bezi proces, ktery analyzuje ziskany obraz a generuje z nej prislusne udalosti (napr. ContactAdded), ktere predava WPF aplikacim na Surface bezicim.

  • Tak jinak. Bude ten hardware - k Surface potřebný - výhradně Microsoftí záležitost, nebo to budou moct implementovat i jiní výrobci hardware?

  • Podle všech indicií to vypadá, že Surface bude šířen jedině pod značkou Microsoft (podobně jako třeba XBox). Vyrábět ho bude určitě nějaký dodavatel, ale to se zákazník nedozví.

  • Ještě poslední dotaz: Bude to Surface podporovat i klasické Windows Forms aplikace nebo jen tu WPF zrůdnost?

  • Teoreticky je to mozne, ale v praxi pochybuji. WinForms uzivatelske rozhrani nelze z principu veci rotovat pripadne skalovat, cimz se na Surface stavaji problematicky pouzitelne.

    Navic byste si musel reakci na doteky dopisovat i do standardnich ovladacich prvku typu Button nebo TextBox (ve WPF to napsal nekdo za vas).

  • to Ondřej: WPF není úplně od věci. Aplikace pro Surface, jsou poněkud jiné než pro běžné PC. Ne z pohledu programátora, ale z pohledu designu a způsobu ovládání. WPF dává programátorovi možnosti takové aplikace vytvářet. Ve WinForm by to šlo významně obtížněji. Navíc jde často o scénáře, pro které winForms nebyly navrženy, zatímco WPF ano. Může jít např. o nedostruktivní zoom či jiné geometrické transformace. Nemluvě o integraci multimédií. Tam by jste musel sáhnout do DirectX. Pochybuji, že převážné většině programátorů by se do toho chtělo.

    to Ondřej: ano, HW pravděpodobně bude z dílen MS (tedy značka). Částečně však multi-touch na stejném pricipu bude dostupná ve Windows 7 s multi-touch obrazovkou.

Page 1 of 1 (13 items)
Leave a Comment
  • Please add 4 and 1 and type the answer here:
  • Post