Jakub Florczyk - Blog o programowaniu .NET i Android

Programista praktyczny

Tag: Surface Blip

Surface Blip – prezentacja

Nagranie prezentujące użycie Surface Blip na emulatorze. Miłego oglądania :)

Surface Blip 1.0 – wstęp do programowania Microsoft Surface

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)

Visual Studio - Microsoft Surface

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:

SurfaceBlip SurfaceBlip SurfaceBlip
SurfaceBlip SurfaceBlip