Trwa .NET Conf – Microsoft porządkuje swój najlepszy framework

Trwa .NET Conf – Microsoft porządkuje swój najlepszy framework23.09.2019 23:57
Trwa .NET Conf (.NET Foundation)

Na dni 23 do 25 września zaplanowano tegoroczną konferencję .NET Conf, poświęconą najnowszym zmianom w środowisku programistycznym .NET i jego najnowszej implementacji, w postaci .NET Core 3.0. Konferencja jest transmitowana online, a "pytania z sali" są gromadzone przez portal Twitter, za pomocą hasztaga ♯dotNETConf. Ma na niej zostać zaprezentowana również finalna wersja środowiska uruchomieniowego .NET Core w wersji trzeciej, którą na ostatnim HotZlocie przybliżał pokrótce djfoxer.

Nowości prezentowane w ramach premiery .NET Core 3.0 powinny ucieszyć programistów chcących wykorzystywać najnowsze trendy i technologie – zdanie to brzmi jak pozbawiony treści banał. Któż wszak promowałby swoje środowisko jako nieprzystające do nowoczesnych realiów? Okazuje się, że w przypadku .NET powyższe stwierdzenie to po prostu prawda. Wynika to niekoniecznie z samych rozwiązań dostępnych w 3.0, a z powszechnych oczekiwań względem .NET, wciąż żyjących stereotypów oraz nieaktualnych i błędnych opinii, głoszonych przez ludzi nieobytych z Visual Studio.

Nie te czasy

Programowanie w .NET od dawna bowiem nie wymaga już ciężkich, drogich i nieprzenośnych środowisk IDE, tworząc przy okazji otyły, "korporacyjny" kod, zdolny do właściwej współpracy tylko z jakimiś nudnymi aplikacjami bankowymi lub portalami nieszczęśliwie zależnymi od rozwiązań Microsoftu. Język C♯ 8.0 to chyba najnowocześniejszy klasyczny język obiektowy na świecie (spróbujemy to ocenić). Xamarin umożliwia szybkie i tanie tworzenie mobilnych aplikacji napisanych w .NET. Framework Blazor ułatwia pisanie web-aplikacji bez konieczności nurkowania w PHP i bez żadnych wyrzeczeń z tym związanych. Współpraca z Azure i Kubernetesem także jest na wyciągnięcie ręki. Podobnie uczenie maszynowe, za pomocą języka R i ML.NET. Nawet Entity Framework dojrzał (o tym wszystkim poniżej). Dzisiejszy programista .NET nie jest jakimś odmrożonym z lodowca dziwakiem, który nie ma szans sprzedać swojego kodu poza dedykowane, nudne rozwiązania bez wyjścia na internet. Języka C♯ naprawdę warto się uczyć.

Visual Studio wciąż jeszcze potrafi być przekombinowanym narzędziem, w którym nawet najgłupsze projekty wyglądają kosmicznie, ale to raczej przeszłość
Visual Studio wciąż jeszcze potrafi być przekombinowanym narzędziem, w którym nawet najgłupsze projekty wyglądają kosmicznie, ale to raczej przeszłość

Inną kwestią, której kompletnie nie należy się spodziewać po nowym .NET jest... Windows. Tak jest. UWP nie żyje. Niektórzy programiści będą uparcie twierdzić, że UWP ma się doskonale, bo od teraz da się wpuścić kontrolki UWP w aplikacje WPF i da się konteneryzować także programy Win32. Uparcie jednak pozostanę przy poglądzie, który głosi Rich Woods twierdząc, że Microsoft nie będzie inwestować w UWP. Ostatecznie podważa to argument stanowiący, że .NET wymaga systemu Windows.

To główna strona działu Desktop. Ekhm... WPF i Windows Forms? Który mamy rok?
To główna strona działu Desktop. Ekhm... WPF i Windows Forms? Który mamy rok?

Nowości w języku

Zacznijmy od nowości w samym języku programowania (choć nie jest to najciekawsza część). Pierwszą kwestią godną uwagi jest rozszerzony mechanizm dopasowywania wzorców. Kolejną – bardzo ciekawa deklaracja using, umożliwiająca automatyczne zniszczenie obiektów, gdy kończy się ich zasięg. Innymi słowy, zamiast pilnować użycia metody Dispose(), można wyznaczyć zakres istotności obiektu za pomocą dyrektywy using:

[code=csharp]public static void example(){ using (var reader = new System.IO.StreamReader(fh)); while (!reader.EndOfStream) { // ... }}[/code]

Uważne oko c-sharpowca dostrzeże, że od teraz nie trzeba wyrażać zakresu jawnie klamerkami. Roslyn ma sobie z tym radzić sam. Oczywiście deklaracja using, jak dawniejsze wyrażenie "klamerkowe", woła destruktor.

Nullable i przyjaciele

Inną kwestią, która prawdopodobnie pozwoli uniknąć tworzenia paskudnego kodu w postaci chałupniczych wrapperów nullable, jest typ-referencja z cechą "nullowalności". Zapis typu "string? var1" nie powinien być obcy np. ludziom zajmującym się Entity Framework. Jego rola w C♯ wzrosła. Zresztą, jak już jesteśmy przy nullach, nalezy wspomnieć o nowym operatorze przypisania ?==. Oznacza on "przypisz wartość, jeżeli zmienna docelowa jest jeszcze pusta" i strasznie mi się on podoba.

Nulle zawsze były kontrowersyjne... (skillsmatter.com)
Nulle zawsze były kontrowersyjne... (skillsmatter.com)

Wdrożenia i framework

Zmian jest oczywiście więcej, bo przecież .NET to nie tylko C♯. Dlatego zapoznajmy się z notami wydawniczymi .NET Core 3.0, by odnaleźć w nich najbardziej interesujące usprawnienia. Nie chodzi już teraz o kwestie językowe, a o platformę. Na przykład kilka prezentów dla wdrożeniowców: narzędzie "dotnet publish" pozwala na wyprodukowanie projektu jako jeden wielki plik EXE, z bibliotekami, zasobami, ale także całym .NETem. Jednoplikowe produkty ułatwiają wdrożenia. Wie o tym każdy, kto natknął się na brak Frameworka na Windows.

Przez lata poznałem ogrom narzędzi wdrażania z Redmond. Klikanych lub XML-owych. Ale dopiero banalny, tekstowy "dotnet publish" jest strzałem w dziesiątkę.
Przez lata poznałem ogrom narzędzi wdrażania z Redmond. Klikanych lub XML-owych. Ale dopiero banalny, tekstowy "dotnet publish" jest strzałem w dziesiątkę.

Nowy .NET, podobnie jak nowy PowerShell przestał brnąć jedynie w stronę wieloplatformowości i zaczął też oferować rozwiązania specyficzne dla Windows. To konieczne: bez tego .NET Core pozostawałby niszowy dla desktopu, a programiści trwaliby w swych przyzwyczajeniach i używali .NET Framework. Dlatego możliwe jest dziś (ponownie!) tworzenie projektów WPF i Windows Forms. Fanów Windows Forms, czyli osoby tak leniwe jak ja, ostrzegam. Projektant form jeszcze nie działa w pełni! Nie znaczy to, że WinForms nie działa. Przeciwnie: możliwe stało się np. stosowanie trybu wysokiej rozdzielczości dla form.

Projektant Form dla .NET Core 3.0 miewa problemy. Oczywiście ten dla klasycznego Frameworka działa doskonale od siedemnastu lat
Projektant Form dla .NET Core 3.0 miewa problemy. Oczywiście ten dla klasycznego Frameworka działa doskonale od siedemnastu lat

Nie zabrakło też kilku nowości dla Linuksa. Są rzeczy małe, jak możliwość odwoływania się do portów szeregowych przez System.IO.Ports.SerialPort i czytania strumieni bajtów. Oraz rzeczy duże, jak kompilacja do kodu ARM64 na Linuksie. Niestety jeszcze nie dla kodu ogólnego przeznaczenia, ale to i tak imponująca zmiana.

Co z Entity Framework?

Pozostaje jeszcze wspomnieć o Entity Framework Core. Był to jeden z tych elementów, który najbardziej ucierpiał na konwersji do postaci "Core". Jego klasyczna wersja była bowiem właśnie takim korpo-rozwiązaniem, pełnym klikanych kreatorów, diagramów, przepływów code first i wielu, wielu innych zabawek, działających wyłącznie pod Visual Studio. Ktokolwiek więc używał Entity Framework, migrację na Core rozważał... niechętnie. Czy jest lepiej, przekonamy się już wkrótce. Na pewno jest "zgodniej". Nowe projekty, pisane w C♯ i pod ASP.NET, należy obudowywać w Entity Framework Core. Jeżeli jednak utrzymujemy stare projekty, celujące w .NET Framework, odłożyłbym migrację, bo dzięki EF na pewno się wydłuży. W takim przypadku bezpieczniej jest podbić się do klasycznego Entity Framework, wydanego w wersji 6.3, oraz do .NET FX 4.8. Tutaj cuda się nie zdarzają. Czytelników zainteresowanych tematyką entity Framework zapraszamy do hałasowania w komentarzach! Być może napiszemy o nim coś więcej.

Nowy Visual już czeka. I działa żwawiej niż poprzednie. Wydaje się, że Visual Studio przestało zwalniać z wersji na wersję!
Nowy Visual już czeka. I działa żwawiej niż poprzednie. Wydaje się, że Visual Studio przestało zwalniać z wersji na wersję!

Konferencja .NET Conf trwa do środy (25 września). Dowiemy się na niej jeszcze między innymi o Blazor, DevOps z Azure, F♯ i testach automatycznych. Nie jest to tylko kampania reklamowa: prezentacje są rzetelne, a prelegenci odpowiadają na pytania. Są tam zresztą znane i lubiane nazwiska. Jeżeli ktoś chce się pobawić nowym .NET, należy zainstalować Visual Studio. Nowości z konferencji niedługo przejdą do głownego kanału. Można też wymusić przejście na kanał Preview. Czeka tam na nas wersja 16.4.0.

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.