5.11.20194 min
Matt Eland

Matt ElandSoftware Development ManagerMoveHQ

List miłosny do .NET

Poznaj powody, dla których warto korzystać z platformy .NET.

List miłosny do .NET

Obecnie jesteśmy pomiędzy premierami trzeciej i czwartej wersji platformy .NET Core od Microsoftu. W tym tekście chcę przedstawić swoją perspektywę na .NET i wyjaśnić, w jaki sposób platforma nadal wprowadza innowacje w zakresie rozwiązań współczesnych problemów.

Korzystam z .NET od wersji beta 2 z 2001 roku i przez lata wiele się zmieniło. W międzyczasie zacząłem rozwijać swoje umiejętności również w JavaScript i TypeScript, ale wciąż wracam do .NET. Pozwól, że wyjaśnię Ci dlaczego.

Krótka lekcja historii

Kiedy Microsoft wprowadził platformę .NET, zdecydował, że nie buduje jednego języka, ale szeroki framework, w którym różne języki będą się kompilować i uruchamiać. Miało to sens, biorąc pod uwagę, że jednym z głównych celów platformy .NET było zajęcie się „piekłem DLL” i uproszczeniem zarządzania interoperacyjnym kodem, dając ludziom mądrzejszą alternatywę do COM.

Oznaczało to, że możesz napisać kod w VB .NET, jeśli byłeś przyzwyczajony do Visual Basic lub wypróbować nowy język programowania C#, jeśli bardziej lubisz składnię w stylu C++ lub Java. To dało także Microsoftowi miejsce na wprowadzenie nowych języków, takich jak F#.

.NET okazał się ogromnym sukcesem pod względem rozwiązania problemów związanych z COM, zwiększenia produktywności programistów oraz polepszenia jakości aplikacji.

Jednak dzisiejszy świat jest zupełnie inny niż ten na początku 2000 roku.

.NET w dzisiejszym świecie

Biorąc pod uwagę fakt, że platforma .NET zaczynała jako produktywne rozwiązanie do tworzenia aplikacji desktopowych na system Windows oraz web developmentu, interesujące jest to, że od tamtego czasu zdominowała również rozwiązania wieloplatformowe i chmurowe. Microsoft zdaje sobie sprawę, że ludzie chcą uruchamiać serwery na rzeczach typu Docker i na platformach innych niż Windows i wykorzystuje to świadomie do rozprzestrzeniania swoich wpływów w wieloplatformowym świecie open source.

Dziś usługi w chmurze są normą. Technologie Microsoft działają wyjątkowo dobrze w szerokiej gamie środowisk chmurowych, a w każdej kolejnej wersji pojawiają się nowe funkcje. Zapewne Microsoft chciałby, aby każdy używał Azure, ale oczywistym jest, że tak się nie stanie, więc plusem jest już fakt, że tak wiele osób korzysta z AWS.

Rozwiązania front-end

Technologie frontendowe zmieniły się chyba najbardziej ze wszystkich w tej branży. Widać to w stosie Microsoftu, patrząc na same Windows Forms, WPF, XBAP, Silverlight, Windows Phone, Windows Universal, ASP .NET WebForms, MVC, a teraz Blazor.

Gdy .NET raczkował, JavaScript był odpowiedzialny głównie za sprawdzanie poprawności zawartości koszyka przed kliknięciem akceptu. Teraz JavaScript jest główną częścią stosu technologicznego i kluczowym elementem user experience. Microsoft przyczynił się do tego boomu, udostępniając nam TypeScript, który pomaga zwiększyć bezpieczeństwo typów podczas kompilacji do JavaScript.

Microsoft wydał również VS Code, czyli niezwykle wydajne i do tego bezpłatne, wieloplatformowe IDE, które sprawdza się fantastycznie przy programowaniu w JavaScript. Wart uwagi jest fakt, że Visual Studio działa teraz również na Macach.

Microsoft kontynuuje innowacje związane z Blazorem, który wykorzystuje kompilowane języki, by generować kod Web Assembly, aby umożliwić programistom pisanie aplikacji internetowych w językach innych niż JavaScript. Ta technologia dopiero się rozwija, ale mimo to, jest obietnicą naprawdę przydatnego narzędzia.

Za co kocham .NET?

Skoro już omówiliśmy po krótce historię .NET, czas wyjaśnić, dlaczego go uwielbiam.

To na pewno nie jest rozwiązanie odpowiednie dla każdego projektu. Uważam, że .NET jest fantastyczny do programowania na backendzie oraz rozwijania aplikacji desktopowych i mobilnych. Wsparcie dla rozwiązań webowych jest naprawdę na wysokim poziomie, ale osobiście wolę tworzyć SPA w Angularze i JavaScripcie/TypeScripcie do prezentacji elementów frontendowych, w połączeniu z niezwykle wydajnym API .NET dla backendu.

C # daje Ci bardzo potężną składnię do radzenia sobie z problemami programowania obiektowego.

.NET oferuje szeroką gamę wbudowanych bibliotek do rozwiązywania najczęstszych problemów. Co więcej, istnieje wiele bezpłatnych bibliotek, dostępnych za pośrednictwem NuGet, dzięki którym zintegrujesz inne technologie ze swoją aplikacją w mniej niż minutę.

Jeśli skłaniasz się bardziej ku programowaniu funkcyjnemu, F# oferuje możliwości .NET połączone z programowaniem funkcyjnym. Ponadto kod F# może komunikować się z kodem C# lub VB .NET - i odwrotnie, umożliwiając mieszanie kodu funkcyjnego i obiektowego.

Jeśli chodzi o funkcje języka, jestem szczególnie zakochany w genericach, extension methods, wyrażeniach lambda i LINQ. EntityFramework sprawia, że baza danych jest elastyczna i bardziej wydajna.

Aplikacje webowe .NET Core pozwalają na pisanie niewielkiej ilości kodu, co pozwala skupić się na tym, co ważne. Ponadto łatwo integruje różne komponenty oprogramowania pośredniczącego z aplikacją.

Podsumowanie

Kiedyś napisałem artykuł o tym, że .NET jest jak Borg - powoli wzbogaca się o nowe funkcje i możliwości. Dostosowywanie się do nowych sytuacji jest kluczowe dla dobrego frameworka.

Przypomina mi się zabawny wpis z czeluści internetu z 2008 roku, w którym różne języki programowania porównywanie są do łodzi. W komentarzach użytkownik o nicku RJ napisał o .NET:

.Net jest flotyllą średnich statków. Każdy w innym momencie renowacji, przy czym żadna łódź nie jest prekursorem dla innych. W losowych momentach do flotylli będą dołączane nowe statki, częściowo kompletne. Jednak te statki będą robiły to samo, co niektóre z tych, które już wcześniej znajdowały się we flotylli, więc nikt nie będzie się już zajmował tymi starymi. Część z nich zatonie, ale nikt tak naprawdę tego nie zauważy.

RJ moim zdaniem nie przesadził. Straciliśmy niektóre “statki”, ale .NET jest teraz wspaniałą armadą, zdolną zmierzyć się z wielkimi oceanami.

Jeśli zastanawiasz się nad nauką .NET, nie wahaj się. To wymagające zadanie, ale warte wysiłku. Polecam zacząć od czegoś małego, np. aplikacji konsoli lub budowy API .NET Core Web.

Jeśli utkniesz w jakimś miejscu z nauką, poproś o pomoc społeczność .NET. To środowisko bardzo przyjazne, profesjonalne i niezwykle pomysłowe, dlatego też jestem dumny, że mogę być jego częścią.


Oryginalny tekst w języku angielskim przeczytasz tutaj.

<p>Loading...</p>