Dzięki kontraktom API aplikacje nigdy nie stracą kompatybilności z Windows

Strona głównaDzięki kontraktom API aplikacje nigdy nie stracą kompatybilności z Windows
16.09.2015 14:42
Dzięki kontraktom API aplikacje nigdy nie stracą kompatybilności z Windows

Prace nad ulepszeniami Windows 10 nie ograniczają się oczywiścietylko do nowych ikonek. Znaczne postępy uczyniono w kwestiikompatybilności uniwersalnych aplikacji – wygląda na to, żeMicrosoft znalazł sposób na obejście problemu niezgodnych ze sobąinterfejsów programowania na różnych wspieranych platformach.

Na łamach oficjalnego bloga Windows przedstawiono sposób nadynamiczne wykrywanie tego, co dana platforma potrafi, by niezawracać programistom głowy kwestią dopasowania aplikacji dokonkretnego urządzenia czy systemu. Do tej pory aplikacje pisane naplatformę Modern mogły oczywiście działać na różnychsystemach, pod warunkiem jednak, że ich autorzy zadbali o to, bywskazywać alternatywne API (np. dla Windows Phone), jeśli wsystemie funkcje dostępne dla podstawowego API nie były dostępne.Było to jednak czasochłonne, i oczywiście nie mogło uwzględnićzmian, które pojawią się dopiero w przyszłości, grożąc, żeaplikacja przestanie kiedyś działać na nowych wersjach Windows.

350142702882678721

Pomysłem Microsoftu na ten problem mają być tzw. kontrakty. Sąto listy interfejsów programowania, które mogą zrealizować tosamo zadanie. Jeśli korzystający z kontraktów program próbujebezskutecznie wywołać swoje API, ale dostępne jest inne API,mogące dostarczyć konkretną funkcję systemową, to wówczasbędzie mógł automatycznie z niego skorzystać. Kontrakt opisujeniezbędne do tego klasy, metody i właściwości.

Takie pogrupowanie API w kontrakty ułatwi testowanie aplikacji –przetestowanie zgodności z danym kontraktem jest równoznaczne zprzetestowaniem jej z każdym zawartym w niej API. Jeśli bowiemjakaś platforma implementuje którekolwiek z API danego kontraktu,to musi ona zarazem zaimplementować wszystkie API tego kontraktu.

Dzisiaj kontrakty to sprawa dość teoretyczna. Za ich pomocą nieuruchomimy aplikacji dla Windows 10 na Windows 7 czy 8.1. Znaczenietego rozwiązania stanie się jednak jasne, gdy pojawią sięnastępcy Windows 10. Weźmy przykładowy kontrakt o nazwieWindows.Foundation.UniversalApiContract, zawierającypraktycznie wszystkie interfejsy Universal Windows Platform.Sprawdzanie go jest obecnie kwestią trywialną, wszystkie urządzeniaz Windows 10 wspierają bowiem UniversalApiContract w wersji 1.0.Microsoft jednak zauważa, że w przyszłości mogą pojawić sięnowe API, tworzące wersję 2.0 UniversalApiContract. Dziękikontraktom, aplikacje korzystające z nowych API mogłyby uruchomićsię też na starszej wersji systemu – otrzymałyby informację,które alternatywne API mogą zrealizować dane zadanie.

„Kontraktowe” opisanie dostępnych API przyda się też naurządzeniach mobilnych z Windows 10, które raczej nie będądysponowały wszystkimi interfejsami znanymi z desktopowej wersjisystemu, jak również na konsoli Xbox One, dla której też powstajeodmiana Windows 10 (tzw. OneCore) pozwalająca na uruchamianieuniwersalnych aplikacji.

Więcej o tym pomyśle znajdziecie na blogu BuildingApps.

Programy

Aktualizacje
Aktualizacje
Nowości
Udostępnij:
Wybrane dla Ciebie
Komentarze (15)