Jaki właściwie jest ten .NET? Lekki czy ciężki? Zamknięty czy otwarty? Czy .NET potrafi się… reinkarnować, a każde jego kolejne wcielenie jest szybsze? Czy jest uwięziony w Windowsie? Czy żeby go opanować, trzeba być geniuszem?
W tym artykule rozprawimy się z mitami na temat .NET, dzięki czemu lepiej zrozumiesz, co tak naprawdę oferuje ta platforma. Sprawdź, czy jesteś w stanie rozróżnić prawdę od mitów dotyczących C# .NET.
1. .NET jest przestarzałą i ciężką technologią. | Fałsz!
To jest mit!
Absolutny mit! .NET nie ma nic wspólnego z byciem przestarzałym, a tym bardziej ciężkim. .NET jest wydajną i innowacyjną platformą, a jej rozwój jest niezwykle dynamiczny. Przewaga w porównaniu z jej bezpośrednimi konkurentami, takimi jak Java, Python czy Node.js wynika z kilku kluczowych powodów:
Super szybkość
Kolejne wersje .NET biją rekordy szybkości pod względem wydajności. Idąc zgodnie z chronologią:
.NET 5
.NET 5 wydany w 2020 roku, osiągnął imponującą wówczas przewagę nad konkurencyjnymi rozwiązaniami jeśli chodzi o tworzenie backendu aplikacji webowych, będąc 10-krotnie szybszym niż Node.js i około 6- krotnie szybszym niż Java.
.NET 6
Kolejna wcielenie platformy to jeszcze większa wydajność. Entity Framework Core potrafił obsłużyć aż o 92% więcej requestów na sekundę niż .NET 5.
.NET 7
Największy skok wydajności można zauważyć pomiędzy wersją .NET 6 a .NET 7. Niektóre elementy frameworka ASP.NET usprawniono… 400x razy. Przykładem może być biblioteka linQ, która pozwala na filtrowanie dużej ilości danych w krótkim czasie i wyciągniecie z bazy konkretnego rekordu. Jest to jedna z podstawowych bibliotek .NET, wbudowana w platformę. Obecnie każda aplikacja webowa korzysta z linQ.
.NET 8
Wersja z listopada 2023 roku osiąga jeszcze większą szybkość w porównaniu do poprzedniej wersji, co wskazuje na wyraźny skok jakościowy tej technologii. Stephen Toub z Microsoft, który co roku publikuje dogłębne analizy aktualizacji pomiędzy poszczególnymi wersjami .NET, określa wersję .NET 8 jako “faster than super-fast”.
.NET cały czas utrzymuje swoją pozycję jako silny i efektywny framework, konkurując z innymi dostępnymi technologiami na rynku. Oprócz poprawy wydajności, .NET stale rozwija swoje możliwości również w innych kierunkach. Przykładami mogą być:
- .NET Aspire – jedno z najnowszych narzędzi, które sprawia, że implementacja architektury mikroserwisów jest prawie tak szybka, jak monolitu. Architektura mikroserwisowa ma wiele przewag nad monolitową, zwłaszcza dla większych aplikacji: jest szybsza, bezpieczniejsza i dużo lepiej się skaluje. Do tej pory minusem tego rozwiązania była czasochłonność oraz wysokie wymagania kompetencji programistów. Dzięki .NET Aspire można znacznie przyspieszyć i uprościć implementację mikroserwisów.
- .NET MAUI – ewolucja platformy Xamarin Forms, czyli framework do tworzenia aplikacji multiplatformowych dzięki jednej bazie kodu m.in. na iOS, Android, macOS, Windows.
- Natywne wsparcie w chmurze AWS/Azure – wsparcie dla tych platform chmurowych jest proste i bezproblemowe, ze względy na wbudowane bezpośrednio w środowiska programistyczne, na których tworzone są aplikacje .NET. Wcześniejsza integracja często wymagała korzystania z dodatkowych bibliotek, SDK lub narzędzi stworzonych przez zewnętrzne firmy bądź społeczność.
- Blazor – dzięki któremu można tworzyć frontend aplikacji webowych w języku C# i .NET.
- ML.NET – otwarta i dynamicznie rozwijana biblioteka algorytmów Machine Learning/AI.
2. .NET służy głównie do tworzenia aplikacji desktopowych, na Windowsa. | Fałsz!
Obalamy ten mit!
Wielu osobom .NET kojarzy się z programami desktopowymi na Windowsa. Być może słusznie – .NET ma swoje początki właśnie jako własna, zamknięta technologia Microsoftu. Obecnie to już historia, a sam .NET przeszedł szereg zmian.
W roku 2016 .NET stał się technologią wieloplatformową. Dzięki tej zmianie .NET działa obecnie na różnych platformach, włączając w to nawet środowiska oparte na konteneryzacji. Konteneryzacja ułatwia uruchamianie aplikacji .NET na dowolnej platformie bez konieczności dostosowywania aplikacji do każdego środowiska osobno.
Dziedziny, w których .NET jest najpopularniej stosowany to backend aplikacji webowych, rozwiązań IoT oraz gier. Jednakże jego możliwości nie ograniczają się jedynie do tych obszarów. W aktualnej wersji .NET można pisać absolutnie wszystko, włącznie z aplikacjami desktopowymi na różne platformy (Windows, Linux, Mac), interfejsami programistycznymi (webAPI), a nawet front-endem aplikacji mobilnych i internetowych.
Co więcej, .NET mocno rozwija możliwości implementacji sztucznej inteligencji, otwierając nowe horyzonty dla twórców oprogramowania.
W mobitouch najczęściej korzystamy z możliwości .NET w tworzeniu aplikacji webowych. Sprawdź, jak wykorzystujemy możliwości tego ekosytemu tutaj.
3. Obecnie wszystko kręci się wokół sztucznej inteligencji (AI) i uczenia maszynowego (Machine Learning). Wykonanie ich w .NET jest trudne, dlatego najlepszym wyborem jest Python. | Fałsz!
To jest mit!
W .NET da się wykonać praktycznie wszystko, w tym również stworzyć własne algorytmy AI/ML. Gotowe i ciągle rozwijane biblioteki tych algorytmów są dostępne dzięki ML.NET.
Python może mieć przewagę ilościową w liczbie bibliotek i bardzo niski próg wejścia (prosty język, duża ilość bibliotek AI/ML), jednak wielką wadą Pythona jest szybkość. Różnica między wydajnością .NET, a Python jest ogromna na korzyść .NET. Napisanie tego samego algorytmu sztucznej inteligencji w .NET obecnie trwa dłużej niż podczas korzystania z Python. Jednak raz napisany kod, będzie działał zdecydowanie wydajniej.
Rewolucja AI nie omija ekosystemu .NET i również tutaj obszar ten jest mocno rozwijany. Powstawanie bibliotek AI/ML, w połączeniu z naturalną szybkością .NET może sprawić, że stanie się on realnym zagrożeniem dla dominującej pozycji Pythona w tym obszarze.
Przykładem wykorzystania Machine Learning w .NET jest jeden z projektów mobitouch, który polegał na analizie sentymentu. Jest to wyłapywanie wypowiedzi użytkowników o konkretnym charakterze. To zdecydowanie lepsza metoda niż zwykle filtrowanie treści, ponieważ można ją nauczyć zrozumienia pełnego kontekstu wypowiedzi i tym samym oceny jej charakteru, a nie tylko wyłapywania pojedynczych słów. Jest ona przydatna w przypadku, gdy chcemy zautomatyzować moderację wypowiedzi użytkowników naszej aplikacji i nie pozwolić na umieszczanie niepożądanych opinii, np. hejtu, czy wulgaryzmów. Jest to oczywiście jeden z ogromu przykładów zastosowania sztucznej inteligencji dzięki .NET.
Myślisz o stworzeniu produktu cyfrowego, ale nie wiesz, gdzie zacząć? Trafiłeś w odpowiednie miejsce! Chętnie pomożemy.
Napisz do nas4. Przy .NET jesteśmy skazani na płatny Microsoft SQL Server. | Fałsz!
To jest mit!
.NET otwiera drzwi do różnorodnych rozwiązań bazodanowych, umożliwiając programistom swobodne korzystanie z wielu różnych systemów. Dostępne opcje obejmują popularne bazy danych, takie jak MySQL, PostgreSQL, Oracle, a także elastyczne rozwiązania NoSQL, na przykład MongoDB. Ten zróżnicowany ekosystem umożliwia developerom dopasowanie odpowiedniego narzędzia do konkretnych potrzeb ich projektów.
Warto zaznaczyć, że obecnie większość dostawców technologii baz danych aktywnie wspiera platformę .NET, co znacząco ułatwia proces integracji. Otwarte podejście .NET do różnych systemów bazodanowych przekłada się na elastyczność w projektowaniu i rozwijaniu aplikacji, co pozwala na korzystanie z narzędzi, które najlepiej pasują do konkretnych wymagań projektowych, a jednocześnie nie ogranicza do korzystania z jednej, określonej bazy danych. To podejście sprawia, że .NET staje się atrakcyjną opcją dla programistów pragnących elastyczności w wyborze technologii bazodanowej bez konieczności wiązania się z jednym dostawcą.
5. .NET to po prostu krótsza nazwa dla .NET Framework. | Fałsz!
To jest mit!
Nazewnictwo poszczególnych wersji .NET może być mylące dla osób, które nie mają z nim styczności na co dzień. Mówiąc „dotnet” mamy na myśli cały ekosystem tej platformy wraz z jej różnymi wersjami.
Warto zapamiętać, że .NET Framework jest najstarszą wersją, sięgającą 2002 r. , która była ściśle związaną ze środowiskiem Windows. W 2019 roku .NET Framework przestał być przez niego wspierany.
W 2016 roku został wprowadzony .NET Core, lekka i open-sourcowa wersja frameworka, działająca od tej pory również na systemach Linux i Mac. Zastosowano w niej modularność, dzięki czemu .NET zyskał możliwości lepszej skalowalności i wydajności. Był to kamień milowy w rozwoju platformy. Od tej pory zaczęły pojawiać się nowe wersje .NET Core. Po publikacji .NET Core 3.1, dla uproszczenia nie uwzględnia się w nazwie słowa „core”. Obecne wersje .NET są określane za pomocą numerów np. „.NET 6, .NET 7, .NET 8” itd., mimo że wciąż bazują na .NET Core.
6. ASP.NET to niszowa technologia od .NET. Teraz wszystko robi się w .NET 8. | Fałsz!
To jest mit!
.NET jest całym ekosystemem obejmującym różnorodne typy aplikacji, takie jak aplikacje desktopowe, mobilne, gry, aplikacje IoT oraz aplikacje webowe.
ASP.NET jest częścią ekosystemu .NET, która służy do tworzenia API, dzięki któremu możliwa jest komunikacja z frontendem. Wraz z nowymi wersjami dotnet, np. .NET 8, unowocześniany jest również ASP.NET. Dostarcza on zestawu narzędzi i bibliotek specyficznych dla budowania aplikacji internetowych.
ASP.NET zostało oficjalnie wydane przez Microsoft w styczniu 2002 roku jako część wersji .NET Framework 1.0. Technologia ta została stworzona, aby umożliwić tworzenie bardziej dynamicznych i interaktywnych aplikacji internetowych niż te, które były możliwe do zbudowania przy użyciu starszych technologii, takich jak ASP klasyczny (Active Server Pages).
7. .NET nie jest platformą open-source i tworzą ją wyłącznie programiści Microsoftu. | Fałsz!
Jest to jeden z najbardziej rozpowszechnionych mitów na temat .NET. Obecnie platforma jest całkowicie open-source. Ten przełomowy krok od Microsoftu nastąpił w 2016 roku, wraz z releasem pierwszej wersji .NET Core. Od tego czasu społeczność developerów aktywnie uczestniczy w rozwoju platformy. Dzięki temu użytkownicy mają możliwość nie tylko wglądu w kod źródłowy, ale także mogą zgłaszać błędy, proponować ulepszenia i nawet bezpośrednio przyczyniać się do rozwoju platformy poprzez tworzenie pull requestów. Ta otwartość ma ogromne znaczenie dla rozwoju technologii, ponieważ pozwala na szybsze identyfikowanie i naprawianie błędów, a także stwarza przestrzeń dla innowacji i nowych pomysłów od programistów z całego świata.
Dodatkowo Microsoft zachęca społeczność do aktywnego udziału w rozwoju .NET, organizując różnego rodzaju inicjatywy i projekty, w których developerzy mogą współpracować. W ten sposób .NET nie jest już wyłącznie produktem jednej firmy, ale staje się wspólnym dziełem globalnej społeczności developerów.
Przejście na model open-source czyni .NET jedną z najbardziej elastycznych i dostępnych platform programistycznych na rynku.
8. Technologia .NET jest trudno skalowalna. | Fałsz!
To mit!
Skalowalność to zdolność obsługi rosnącej ilości pracy lub użytkowników poprzez dodawanie większych zasobów, takich jak serwery lub moc obliczeniowa, bez znacznego wpływu na funkcjonalność lub wydajność aplikacji.
Platforma .NET i związane z nią technologie są zaprojektowane w taki sposób, że w miarę wzrostu zapotrzebowania na aplikację umożliwiają programistom dostosować je do obsługi większych obciążeń i zbiorów danych, niekoniecznie przepisując lub przeprojektowując całkowicie oprogramowanie. Ta skalowalność jest cenną cechą dla firm i organizacji, które przewidują wzrost liczby użytkowników lub wymagań dotyczących danych, ponieważ pozwala im efektywnie rozbudować swoje systemy, aby sprostać tym wymaganiom.
9. .NET to technologia wyłącznie dla dużych przedsiębiorstw. | Fałsz!
To jest mit!
.NET może kojarzyć się z rozwiązaniem dla aplikacji o ogromnych rozmiarach i rozległej strukturze, takich jak systemy ERP. Popularnymi serwisami zbudowanymi dzięki .NET są np. StackOverflow, LinkedIn, DocuSign. Nic dziwnego. Dzięki swojej wydajności oraz niemal nieograniczonym możliwościom .NET świetnie sprawdza się wszędzie tam, gdzie potrzeba “heavy-duty software solution”.
Jednakże .NET może przynieść korzyści również startupom lub gdy potrzeba stworzyć aplikację o niewielkich rozmiarach. Technologii ta oferuje szeroką gamę narzędzi i frameworków, które mogą znacząco przyspieszyć proces tworzenia oprogramowania. Dzięki narzędziom takim jak ASP.NET i Entity Framework programiści mogą szybko budować skalowalne i wydajne aplikacje internetowe oraz zarządzać bazami danych. Dodatkowo duża i zaangażowana społeczność i wiele gotowych bibliotek, co oznacza, że można korzystać z istniejących rozwiązań, zamiast tworzyć wszystko od zera. To może znacznie zaoszczędzić czas i zasoby. Fakt, że .NET jest dostępny jako rozwiązanie open-source oznacza, że startupy mogą korzystać z niego bez kosztów licencyjnych. .NET pozwala na tworzenie lekkich i wydajnych aplikacji, dlatego jest świetnym rozwiązaniem również dla startupów. Przykładem może być LearnGo, czyli Language Management System, który stworzyliśmy w mobitouch właśnie za pomocą .NET.
10. .NET jest trudny w nauce, więc trudno jest znaleźć dobrych developerów .NET. | Fałsz!
To jest mit!
Chociaż C# jest językiem o bogatych możliwościach, jego podstawy nie są trudniejsze do opanowania niż innych popularnych języków programowania. Wprowadzenie .NET w wersji 6. przyniosło funkcję tworzenia tzw. minimal APIs, która umożliwia projektowanie pełnoprawnych webAPI przy użyciu zaledwie kilku linii kodu. Ta zmiana znacznie uprościła proces programowania, czyniąc .NET bardziej dostępnym, nawet dla mniej doświadczonych programistów.
Dodatkowo, dzięki wsparciu Microsoftu, .NET charakteryzuje się bogatą dokumentacją techniczną, która jest nieustannie aktualizowana i poszerzana, co ułatwia jego naukę. Równie ważna jest rosnąca społeczność użytkowników .NET, która aktywnie dzieli się swoją wiedzą i doświadczeniem, wspierając tym samym innych programistów w nauce i pracy z tym frameworkiem.
Co to w praktyce oznacza? .NET stał się łatwiejszy do opanowania. Jest to istotne zarówno dla developerów, jak i podczas wyboru technologii backendowej Twojej aplikacji. Wybierając framework, który jest popularny, rozwijany i przystępny w nauce, masz pewność, że w razie potrzeby łatwo znajdziesz specjalistów, którzy będą wiedzieli, jak rozwiązać ewentualne problemy oraz gdzie szukać informacji.
Jeśli szukasz wsparcia w .NET w swoim projekcie, dobrym rozwiązaniem może być oddelegowanie tej potrzeby poza Twoją organizację. Dzięki ekspertyzie w .NET mobitouch od wielu lat pomaga wielu branżom poprzez zaangażowanie swoich specjalistów do projektów klientów.
11. .NET jest jedną z najbezpieczniejszych platform. | Prawda!
Fakt!
.NET został stworzony z myślą o bezpieczeństwie. Platforma oferuje szereg funkcji i narzędzi, które pomagają tworzyć bezpieczne i stabilne aplikacje. Jednym z kluczowych aspektów modelu bezpieczeństwa .NET jest obsługa zabezpieczeń dostępu kodu (CAS), która umożliwia developerom definiowanie szczegółowych uprawnień dla różnych typów kodu i zasobów. Pomaga to zapobiec uzyskiwaniu przez złośliwy kod dostępu do wrażliwych zasobów lub wykonywaniu nieautoryzowanych działań. Ponadto .NET zapewnia wbudowaną obsługę bezpiecznych protokołów komunikacyjnych, takich jak SSL i TLS, a także silne algorytmy szyfrowania, które pomagają chronić wrażliwe dane. Ponadto .NET oferuje szereg narzędzi i bibliotek do wykonywania praktyk bezpiecznego kodowania, takich jak sprawdzanie poprawności danych wejściowych i obsługa błędów, co może pomóc w zapobieganiu typowym lukom w zabezpieczeniach. Więcej o bezpieczeństwie .NET przeczytasz tutaj.
Podsumowanie
Mity obalone, fakty potwierdzone. A to tylko kropla w morzu świetnych informacji na temat C# .NET, platformy, która prężnie się rozwija i dostosowuje się do ciągle rosnących oczekiwań programistycznych i rynkowych. Jej wszechstronność i tempo w jakim dodawane są kolejne usprawnienia jest imponująca – nie bez powodu nasi developerzy uwielbiają .NET.