Metro, Visual Studio 11 i Blend 5 - czyli Windows 8 dla programistów

Należy tu podkreślić, że wartstwa WinRT jest kodem natywnym, tylko opakowanym tak, aby było wygodnie z niego skorzystać i aby można było sprawdzić przekazywane parametry. Samo wywołanie sprowadza się (dzięki właśnie WinMD) do skoku pod adres procedury w pamięci. Warto dodać, że pełnoprawnym językiem do tworzenia rozwiązań dla Windows 8 jest C++.

Windows 8 ma działać na x86/x64 (procesorach Intela, w tym nowych konstrukcjach System On Chip), SOC, a także urządzeniach opartych o procesory typu ARM. Dzięki temu system będzie działa na bardzo dużej liczbie różnych typów maszyn - od tradycyjnych PC-tów, przez tablety, aż po urządzenia które jeszcze nie mają nazwy. Dodatkowo zmiany w samym jądrze systemu powodują, że jest on już teraz mniej zasobożerny.

Zobacz również:

  • System MS-DOS wrócił po latach w postaci open source

Nowy Interfejs Windows 8 dostosowuje się do różnych ustawień, rozdzielczości i orientacji. Dodatkowo Metro oferuje mechanizmy tzw. Side View, gdzie dwie aplikacje współdzielą jeden ekran. Z punktu widzenia projektu jest to dodatkowy szablon, który zostanie zaktywowany gdy aplikacja zostanie w odpowiedni sposób przeciągnięta. Co ciekawsze, podczas prezentacji podnoszona była kwestia, że musimy planować aplikacje na monitory ultra HD, które pojawią się za 3 lata i będą dysponować bardzo dużymi rozdzielczościami i dużą gęstością pikseli. Stąd - interfejs może wykorzystywać pliki wektorowe SVG, czy mechanizmy stylów CSS/XAML a nie twardo "kodować" wartości pikseli.

Metro, Visual Studio 11 i Blend 5 - czyli Windows 8 dla programistów

Okazało się, że użytkownicy wolą trzymać urządzenie dwoma rękoma. Badania pokazały jaki jest obszar do którego komfortowo można uzyskać dostęp – stąd taki projekt klawiatury.

Ciekawie został rozwiązany emulator pozwalający sprawdzić w Visual Studio jak aplikacja wygląda w różnych rozdzielczościach. Wykorzystywana jest możliwość wykonania "zdalnego połączenia" do lokalnego komputera, ale przy takim połączeniu określany jest żądany format (i orientacja) graficzna. Warto dodać, że emulator pozwala też symulować ekran dotykowy (jeżeli maszyna developerska go nie posiada). Dodatkowo - można bardzo wygodnie zdalnie śledzić aplikacje - testować aplikacje na lekkim komputerze typu slate, który nie jest w stanie udźwignąć pełnego środowiska developerskiego.

Warto chwilę zatrzymać się nad Tiles (kafelkami). To nie są ikony (określane jako przestarzały wyróżnik aplikacji), ale obiekty które z jednej strony identyfikują aplikację, a z drugiej pokazują stan i "żyją" dostosowując się do aktualnego stanu. Co więcej można pozwolić na budowę kafelków drugiego poziomu, które np. będą skrótem do wnętrza aplikacji (np. zakładką w książce).

Tiles pełnią tez ważną rolę przy powiadamianiu. W Windows 8 użytkownik może wyłączyć wszystkie powiadomienia, a wtedy tylko zmieniając stan kafelka aplikacja może zasugerować użytkownikowi jakąś akcję. Ale - jak podkreślali projektanci - kafelek nie jest miejscem gdzie można wyświetlać reklamy - użytkownik taki element usunie bądź schowa.

Metro zarówno może być obsługiwane dotykiem, jak i skrótami klawiszowymi czy myszą - tym, co dla danego użytkownika w danym kontekście będzie najwygodniejsze i pozwoli w najbardziej naturalny sposób pracować z aplikacjami i systemem Windows 8.

Metro i WinRT obsługuje także tzw. kontrakty, definiujące, jakie usługi udostępnia aplikacja i jakie może konsumować. Taką usługą jest np. wyszukiwanie - jeżeli go zaimplementuje aplikacja, to w danych zarządzanych przez dany program także będzie można szukać.

Innym przykładem kontraktu jest otwieranie i wybieranie elementów - zdjęć, plików. Dostawcą takiego kontraktu może być np. aplikacja rozumiejąca API Facebook - czy mechanizm połączony ze SkyDriver (zostało ogłoszone oficjalne API do SkyDrive). A z punktu widzenia użytkownika - wybiera on po prostu zdjęcie, poruszając się pomiędzy różnymi "pojemnikami".

Dostępny jest też obiekt - DataTransferManager który pozwala zarządzać przekazywaniem informacji. Wszystkie te elementy sprawaiają, że aplikacje nie muszą o sobie nawzajem wiedzieć, by móc współpracować (wystarczy by implementowały/używały odpowiednich kontraktów) (może - sformalizowany schowek).


TOP 200