Windows Compatibility Pack, czyli .NET na Linuksa ma być jednak drugiej kategorii

Wydanie frameworka .NET Core miało być dowodem, że Microsoftzna się na interoperacyjności i potrafi dostarczyć platformę,która pozwoli na tworzenie aplikacji działających na wszystkichpopularnych systemach operacyjnych. Najnowsze działania firmy zRedmond pokazują jednak, że to chyba nie o to chodziło.Zapowiedziany właśnie Windows Compatibility Pack dla .NET Core,służący ułatwieniu przenoszenia aplikacji z tradycyjnego .NETFrameworka na .NET Core, działa tylko na Windowsach.

Windows Compatibility Pack, czyli .NET na Linuksa ma być jednak drugiej kategorii

21.09.2017 10:46

Podczas ostatniej konferencji DevIntersections Europe dyrektorMicrosoftu Scott Hunter zapowiedział rychłe udostępnienie dotestów narzędzi Windows Compatibility Pack. Posłużyć ma on doprzenoszenia starych aplikacji pisanych na .NET Framework na .NETCore 2.0, które implementuje wszystkie interfejsy programowaniaujęte w nowym standardzie .NETStandard 2.0. Zaraz, zaraz, zakrzykną uważni Czytelnicyzaznajomieni z tematem, czy nowy .NET Framework (od 4.6.1) też niejest zgodny z .NET Standard 2.0?

Owszem, na poziomie tego standardu mamy pełną zgodność. Pozanim jest jednak gorzej, standard nie obejmuje żadnych klas, którewiążą się ze specyficznymi dla Windowsa mechanizmami, takimi np.jak obsługa Rejestru. Po to właśnie pomyślano WindowsCompatibility Pack, należy myśleć o nim jako o rozszerzeniu .NETCore, które działa tylko w Windowsach i dodaje wiele klaspotrzebnych właśnie aplikacjom pisanym na platformę Microsoftu.

Scott Hunter wspomniał podczas swojej prezentacji m.in. o takichdodatkowych klasach jak Microsoft.Win32.Registry, System.CodeDom,System.Configuration.ConfigurationManager, System.Drawing czySystem.Runtime.Caching. Ich udostępnienie ułatwi migracjęistniejących aplikacji na .NET Core i pozwoli na łatwiejsze wykorzystaniepakietów menedżera NuGet.

Takie jednak przeniesione z wykorzystaniem Windows CompatibilityPack na .NET Core aplikacje przestaną spełniać podstawowezałożenie .NET Core, tj. multiplatformowość. Nie uruchomimy ichna Linuksie czy macOS-ie. Dojdzie więc do sytuacji, gdyoprogramowanie na rzekomo multiplatformowy .NET Core będzie dzieliłosię na równe (działające na wszystkich implementacjach tegoframeworku) i równiejsze (działające tylko na Windowsie. Czy to mabyć sposób na konkurowanie z uniwersalną Javą?

Pomyśleć by można, że faktycznym powodem takiej decyzji jestzamiar zakończenia życia klasycznego .NET Frameworka, by zastąpićgo schludniejszym, bardziej nowoczesnym .NET Core. A niezależnośćod platform? To nie jest Java – Microsoft za daleko zabrnął wWindowsa, by na poważnie myśleć o multiplatformowości, wcalezresztą chyba nie tak ważnej dla jego klientów. Dobrym przykłademtego może być przeniesiony na Linuksa SQLServer – warstwa abstrakcji, która wykorzystywana jest dokomunikacji z silnikiem systemu zarządzania relacyjną bazą danych,obsługiwać musi aż 1200 specyficznych dla Windowsa wywołań.

Testowa wersja (Technical Preview) Windows Compatibility Packzostanie najprawdopodobniej udostępniona podczas najbliższejkonferencji Ignite.

Programy

Zobacz więcej
Wybrane dla Ciebie
Komentarze (49)