Po opublikowaniu Microsoft Surface SDK postanowiłem się z nim zaznajomić i popełnić jakąś aplikację (zanim zaczniesz instalować SDK pamiętaj, że wymagane jest zainstalowane XNA). Po obejrzeniu aplikacji do obsługi Twittera – Surface Twitter oczywisty wybór padł znowu na Blipa. Ale po kolei…
Po instalacji SDK w Visual Studio pojawiła się nowa gałąź w Visual C# o nazwie Surface. Do wyboru mamy trzy rodzaje projektów:
- Surface Application (WPF)
- Surface Application (XNA)
- Surface Application (XNA Game Studio 3.0)

Jako że nie znam XNA wybór padł na WPF skoro większość z nas już go zna. Co jest ciekawe sama implementacja Microsoft Surface w WPF nie różni się znacząco od standardowego WPF-a. Samo SDK dodaje nam kilkanaście nowych kontrolek a cała magia dzieje się poza nami
Najważniejsza z naszego punktu widzenia kontrolka to ScatterView na którym są osadzane poszczególne interaktywne elementy. Dodatkowo SDK udostępnia większość implementacji standardowych kontrolek, których nazwa jest rozszerzona o przedrostek Surface. Dla przykładu Button w SDK nazywa się SurfaceButton itd.
Sama aplikacja nie jest skomplikowana, żeby nie powiedzieć trywialna
Mamy ekran logowania a po nim ładuje ostatnie statusy z kokpitu plus okno do dodawania nowych wpisów. Nie chcę się wgłębiać w implementację bo widać ją na kodzie źródłowym. Natomiast chciałbym wskazać kilka elementów na które warto zwrócić uwagę:
- Po utworzeniu projektu template tworzy katalog Resources a w nim pliki AppIcon.png i AppIconPreview.png – są to ikony naszego projektu na które wskazują ścieżki z pliku definicji o konstrukcji [Nazwa naszego projektu].xml.
- W pliku definicji znajdują się ścieżki do ikon, aplikacji (exe) oraz kilka dodatkowych elementów.
- Z punktu widzenia programisty i Microsoft Surface ważne jest to iż programy nie muszą być zainstalowane, ponieważ Surface odczytuje pliki definicji z katalogu C:\ProgramData\Microsoft\Surface\Programs i na ich podstawie wyświetla dostępne aplikacje (położenie exe i ikon).
- Program (w Visual Studio) uruchamiamy standardowo klawiszem F5, ale symulacja nie obsługuje wielu aktywnych punktów; przydatne tylko we wczesnym testowaniu aplikacji, plusem jest szybki czas ładowania.
- W przypadku gdy chcemy w pełni testować aplikację ze ścieżki Start -> Microsoft Surface SDK 1.0 SP1 -> Tools uruchamiamy Surface Simulator jako administrator i uzyskujemy dostęp do pełnego symulatora włączając odczyt plików definicji z C:\ProgramData\Microsoft\Surface\Programs oraz symulację wielu aktywnych punktów (Visual Studio samo wykryje włączony symulator i odpali na nim nasz debugowany program).
- Co do samej implementacji “rozciąganych” kontrolek to mamy dostęp do kontrolki ScatterViewItem która pozwala na ustalenie minimalnych i maksymalnych rozmiarów.
- W przypadku gdy chcemy uzyskać standardowe skalowanie kontrolek to sugeruje używać Viewbox-a który będzie ładnie zoomował np osadzone zdjęcie.
- W przypadku gdy chcemy uzyskać bardziej skomplikowane skalowanie, np tak aby tylko jeden element się powiększał w miarę rozciągania – to wtedy sugeruje użyć Grid-a z ustawionymi kolumanmi / wierszami na autodopasowanie.
Download:
– SurfaceBlip – źródła
– SurfaceBlip – instalator
Galeria screenów aplikacji:
![]() |
![]() |
![]() |
![]() |
![]() |












eRIZ
/ 2009-07-24Hmm, przyznam że ciekawie wygląda. [;
PS. Mógłbyś walnąć notkę nt. pisania aplikacji w .net CF na PDA od podstaw? :> Chętnie bym przeczytał. [;
Jakub Florczyk
/ 2009-07-25Pomyślę o tym
Paweł Ludwiczak
/ 2009-07-25Chętnie bym zobaczył to w akcji… Stołu pewnie sobie nie kupię, choć bym chciał, ale nawet jakiś film by mnie teraz usatysfakcjonował
Btw. Świetna robota!
zajefajnyx
/ 2009-11-23Chcemy wiecej