Menu Górne

Co to jest .Net standard i dlaczego powinniśmy się nim zainteresować? Słów kilka o implementacji kodu wieloplatformowego w .Net.

Problem

Od dawna w .Net rozwija się kilka równoległych technologii. Jest to przede wszystkim najstarszy i dobrze znany .Net Framework dostarczany wraz z systemem Windows. Jest także jego „młodszy brat” czyli Mono. Podczas gdy powstawał Xamarin pojawiły się Xamarin.iOS, Xamarin.Mac oraz Xamarin.Android. Jako pomysł na multiplatformowość pojawił się również .Net w wersji Core. Dodatkowo mamy również Unity, UWP,… itd. Sporo tego prawda? To spowodowało spory bałagan z implementacja funkcjonalności na każdej z platform oraz z „przenoszalnością” kodu.

Rozwiązanie

Wtedy Microsoft wpadł na pomysł aby ujednolicić wspomniane rozwiązania. Jak wszyscy wiemy nie jest to proste, proces ten może trwać bardzo dużo czasu a i tak nie uda się tego zrobić w 100% ze względu na różnice architektur. W takim przypadku mamy dwa podejścia:
– pierwsze to rozwiązanie metodą „join” czyli udostępniamy tylko te api, które mamy dostępne na wszystkich platformach, które chcemy wykorzystywać (PCL),
– drugie rozwiązanie może działać na zasadzie Base Class Library (BCL). Tam każde rozwiązanie implementuje określoną wersję „interfejsu”. Właśnie to rozwiązanie wybrał Microsoft.


W powyższej tabeli widać wersję rozwiązań kompatybilne z określonymi wersjami .Net core. Jeżeli np. stworzymy bibliotekę .Net core w wersji 2.0 możemy ją wykorzystać w projektach .Net Framework minimum 4.6.1, Core 2.0, itd… Nie możemy natomiast podlinkować biblioteki .Net standard 2.0 pod projekt Xamarin.Android w wersji 7.0. Jak więc wybrać właściwą wersję .Net standard?

Nie za dużo, nie za mało…

…a będzie się kompilowało 🙂 Z wybraniem właściwej wersji jest trochę jak z przepisem na ciasto od Babci:

https://www.facebook.com/RynnRysuje

Z jednej strony: w każdej wersji standardu implementowane są nowe api, aktualną listę dla każdej wersji można podejrzeć tutaj im wyższa wersja Standardu tym więcej api mamy do dyspozycji. Niestety większa funkcjonalność ma swoją cenę, w tym wypadku ceną jest kompatybilność. Im wyższa wersja Standardu tym mniejszy zakres projektów w których możemy go wykorzystać. Dokumentacja proponuje implementację najniższej możliwej wersji, która umożliwia działanie programu.

https://docs.microsoft.com/en-us/dotnet/standard/net-standard https://docs.microsoft.com/pl-pl/dotnet/api/?view=netstandard-2.0

O autorze

Niepoprawny optymista. 100 pomysłów na sekundę, wielbiciel nowych technologii, nie tylko z rodziny .Net. Często nosi przy sobie jabłko, takie nadgryzione... ;)

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Możesz używać znaczników języka HTML i ich atrybutów: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Zamknij