r   e   k   l   a   m   a
r   e   k   l   a   m   a

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

Strona główna AktualnościOPROGRAMOWANIE

Prace nad ulepszeniami Windows 10 nie ograniczają się oczywiście tylko do nowych ikonek. Znaczne postępy uczyniono w kwestii kompatybilności uniwersalnych aplikacji – wygląda na to, że Microsoft 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 na dynamiczne wykrywanie tego, co dana platforma potrafi, by nie zawracać programistom głowy kwestią dopasowania aplikacji do konkretnego urządzenia czy systemu. Do tej pory aplikacje pisane na platformę Modern mogły oczywiście działać na różnych systemach, pod warunkiem jednak, że ich autorzy zadbali o to, by wskazywać alternatywne API (np. dla Windows Phone), jeśli w systemie 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, że aplikacja przestanie kiedyś działać na nowych wersjach Windows.

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

r   e   k   l   a   m   a

Takie pogrupowanie API w kontrakty ułatwi testowanie aplikacji – przetestowanie zgodności z danym kontraktem jest równoznaczne z przetestowaniem jej z każdym zawartym w niej API. Jeśli bowiem jakaś 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ą nie uruchomimy aplikacji dla Windows 10 na Windows 7 czy 8.1. Znaczenie tego rozwiązania stanie się jednak jasne, gdy pojawią się następcy Windows 10. Weźmy przykładowy kontrakt o nazwie Windows.Foundation.UniversalApiContract, zawierający praktycznie wszystkie interfejsy Universal Windows Platform. Sprawdzanie go jest obecnie kwestią trywialną, wszystkie urządzenia z 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ęki kontraktom, 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ż na urządzeniach mobilnych z Windows 10, które raczej nie będą dysponowały wszystkimi interfejsami znanymi z desktopowej wersji systemu, jak również na konsoli Xbox One, dla której też powstaje odmiana Windows 10 (tzw. OneCore) pozwalająca na uruchamianie uniwersalnych aplikacji.

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

© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.