Artykuł

freeimages.com freeimages.com
wrz 18 2016
0

.Net Standard Library - sposób Microsoftu na uporządkowanie swoich API

Świat technologi działających w oparciu o .Net Framework jest ostatnimi czasy niezwykle bogaty. Mamy tutaj kilka rozwiązań mobilnych, webowych, a także wsparcie dla desktopów. Można by powiedzieć - czysta sielanka. Pewne problemy zaczynają się jednak w sytuacji, w której rzeczywiście chcielibyśmy pracować z kilkoma rozwiązaniami naraz.

W takiej chwili, naturalne stają się próby współdzielenia raz napisanego kodu, w różnych rozwiązaniach. Microsoft udostępnia w takim celu choćby tzw. Class library. Jednak jeśli kiedykolwiek próbowaliście użyć tego rozwiązania dla różnych targetów, to z pewnością już wiecie, że jest to po prostu technicznie niewykonalne.

Rozwiązaniem tego problemu, miały być tzw. portable class library. W praktyce rzeczywiście za ich pomocą można przygotować bibliotekę, która będzie mogła być skonsumowana na różne sposoby, o ile tylko odpowiednio wybierzemy jej profil. Tych jest całkiem sporo, a każda zmiana wymagana ponownej rekompilacji wszystkich elementów w naszej układance. Zmiana profilu powoduje również zawężenie, bądź też rozszerzenie zestawu dostępnych API. Ogólnie jest to rozwiązanie na tyle problematyczne, że tęgie głowy postanowiły wypracować nowe, bardziej uniwersalne rozwiązanie.

.Net Standard Library

W portfolio technologii Microsoftu, zaszło ostatnio sporo zmian. Przede wszystkim pojawił się .Net Core, a także Xamarin, który całkiem niedawno został przejęty przez Microsoft. Rozrost portfolio, zmusił gracza z Redmond do przemyślenia swojego podejścia do tworzenia oprogramowania - szczególnie w kwestii tworzenia bibliotek.

Dotychczasowe podejście koncentrowało się na konkretnych technologiach (platformach), na których działały specyficzne klasy z ogólnego zestawu API Microsoftu. W wyniku takiego podejścia, powstały wspomniane we wstępie profile. Inny profil stanowiły klasy działające pod Windows Phone 8.1 i .Net Framework 4.5, a inne w przypadku .Net Core, czy Xamarina. Tak naprawdę wymuszało to tworzenie kombinacji z gatunku każdy z każdym, co w praktyce doprowadzało do dramatycznego wzrostu liczby dostępnych profili.

Podejście per platforma, przestało się więc sprawdzać i postanowiono wymyślić coś nowego. Powstało rozwiązani, które zostało nazwane .Net Standard Library. Nowe podejście koncentruje się na konkretnych klasach z API, a nie na platformach, dzięki czemu już nie musimy myśleć systemowo Żeby nie było zbyt kolorowo, to w chwili obecnej mamy 7 wersji tego rozwiązania, które w praktyce można przełożyć na konkretne rozwiązania ze stajni Microsoftu. W skrócie więc - każdy profil, da się opisać odpowiednią wersją .Net Standard Library.

Mimo wszystko jest to jednak istotna zmiana, ponieważ nie musimy już więcej targetować się na konkretne platformy, co w dłuższej perspektywie czasu zapewnia nam większą elastyczność i pozwala się skupić na tym co naprawdę jest ważne.

Istniejącą bibliotekę PCL, można łatwo przerobić na .Net Standard Library. Wystarczy w opcjach projektu wybrać pozycję Target .NET Platform Standard. Decydując się na ten krok, musimy być pewni, że wszystkie biblioteki używane przez nasz projekt, również wykorzystują to podejście.

Poniższa tabelka prezentuje aktualnie dostępne konfiguracje.

Podoba Ci się ten wpis? Powiedz o tym innym!

Send to Kindle

Komentarze

blog comments powered by Disqus