Funkcje języka C# w porównaniu do innych są znacznie bogatsze. To między innymi: własne środowisko uruchomieniowe, delegaty, zdarzenia async/await, Linq, typy anonimowe, klasy statyczne właściwości, metody rozszerzające, inicjatory kolekcji, ułamki dziesiętne, przeciążanie operatorów, wyrażenia, indeksatory, obiekty dynamiczne. Obsługiwany jest również przez różne IDE (środowisk uruchomieniowych) takie jak: Visual Studio, VS Code na wiele platform, Jetbrains Rider również wieloplatformowy – czyli na środowiska MAC, Linux czy Windows. Aplikacje po stronie serwera będą działały na systemach Linux, Mac oraz Windows, natomiast po stronie klienta na systemach MacOS, Linux, Windows, IOS, Android a nawet Samsung Tizen (oficjalny zestaw rozwojowy Samsunga jest oparty na .Net Core – https://developer.samsung.com/smarttv/develop/tizen-net-tv.html)
Microsoft, przed rokiem 2014- gdy flagowym produktem był Windows, nie miał najlepszej opinii w świecie IT. Programiści nie byli chętni do budowania aplikacji z użyciem ich narzędzi, ponieważ nie były one wówczas cross platformowe (czyli tworzone dla wielu systemów operacyjnych) a jedynie dedykowane dla Windowsa. To uzależnienie od konkretnego systemu sprawiało , że wielu z nich wolało pracować w środowisku Sun Microsystem lub Oracle. Były to firmy, które budziły zdecydowanie większe zaufanie. Niepewność co do tego, że dane rozwiązanie może może nie być crossplatformowe sprawiała, że programiści traktowali Microsoft „po macoszemu”. Przykładem może być produkt Microsoft Silverlight, którego właściciel sam zdecydował o wycofaniu, ponieważ nie działał na MAC’u oraz Linuxie. Dla programisty programowanie w środowisku Microsoft wiązało się więc z dużym ryzykiem, że aplikacja, którą pisał,będzie ograniczać się do określonych środowisk. Ja sam w tamtym czasie pracowałem także w języku Java, jednak trend ten się odwrócił i postaram się pokrótce opisać czym to było spowodowane.
Jednak od pewnego czasu nastąpił znaczny progres ze strony giganta, jakim jest Microsoft. Windows nie jest już ich flagowym produktem, ale Azure. Poza tym można zaobserwować spory związek pomiędzy Windowsem a Linuxem. Od niedawna możliwe jest użycie komend Unix systemu Linux pod Windowsem. Co ciekawe Microsoft jest jednym z 5 najlepszych współtwórców platformy Linux. Jest również współtwórcą wielu projektów open-source na GitHub (platforma do zamieszczania gotowych rozwiązań programistycznych do użycia we własnym kodzie).
Czy więc można całkowicie zaufać firmie Microsoft i korzystać z jej narzędzi (.Net, C#, itd.)? Odpowiem jak znany z anegdot, typowy prawnik – „to zależy”. .Net i C# są naprawdę świetne, jeśli nie najlepsze. Microsoft nieustannie wydaje miliony na ich ulepszanie zwłaszcza w .Net Core, który z roku na rok staje się coraz bardziej wieloplatformowy
Powinna się jednak włączać czerwona lampka, ponieważ nie należy do końca ufać firmie, która daje coś za darmo. Taką sytuację mogliśmy zaobserwować w przypadku firmy Oracle. Godny zaufania, znaczący producent oprogramowania, z czasem zmienił swoją strategię. Tak, chodzi o pozew Oracle przeciwko Google, gdzie Oracle zyskał spore sumy za Jave od roku 2019. Jeśli technologia ma jakieś zalety należy ją używać, ale kluczowe jest także uważne zapoznanie się z licencją, by podjąć właściwe decyzje. W porównaniu z licencją Java, .Net ma bardziej restrykcyjne warunki dla kodów opensource dotnet/core i należy o tym pamiętać.
My w FiveSoft zwracamy uwagę na wszystkie aspekty wykorzystywanych narzędzi. Trzymamy na rękę na pulsie i na bieżąco monitorujemy branżę IT.
Naszym zdaniem obecnie Microsoft oferuje najlepsze narzędzia oraz mechanizmy, które pozwalają tworzyć nowoczesne rozwiązania, stąd nasza rekomendacja
Sebastian Wąsik