niedziela, 20 listopada 2016

MSFConnect 2016 - małe podsumowanie

Ostatnio trochę nie pisałem postów tutaj, ale nic na siłę. Nie kieruję się zasadą by pisać jakiś jeden post dziennie, ale bardziej “na miękko”. Nie znaczy że nie mógłbym tak robić, ale nadal wolę poświęcać więcej czasu na mocne techniczne tematy, nawet gdyby miało to być towarem znacznie bardziej limitowanym. Na pewno będą tutaj trafiać kolejne, bardziej wyszukane już praktyczne zagadnienia związane z platformą Xamarin. Do bardziej luźnego komentowania wystarcza mi póki co twitter, na którym ostatnio dość aktywnie się udzielam. A teraz zróbmy małe podsumowanie nowości z Microsoft Connect (); 2016.

Co prawda wszystko, co chciałem obejrzeć, skomentowałem już na twitterze, ale teraz jakoś pora to zebrać w całość i podsumować.

Znaczenie platformy .NET rośnie:

  • więcej krajów i programistów
  • Samsung dołącza do grupy firm mających wpływ na rozwój .NET. Dostajemy próbne wsparcie .NET Core i Xamarin.Forms dla systemu Tizen (a to dużo urządzeń mobilnych, zegarków i telewizorów)
  • Google Cloud zaczyna wspierać .NET

Duża inwestycja w Mac-a:

  • Visual Studio for Mac Preview będący ewolucją Xamarin Studio z projektami ASP.NET Core i mobilnymi Xamarin (jeśli korzystamy z komercyjnej wersji VS na Windows, wersja na Mac będzie za darmo w ramach tej subskrypcji, poza tym jest wersja darmowa Community)

Duży rozwój Xamarin

  • Visual Studio for Mac
  • Xamarin.Forms: wsparcie dla systemu Tizen, w XAML osadzanie natywnych kontrolek z data bindingiem np. z Android i iOS, wywoływanie natywnego API z poziomu kodu strony forms, podgląd w designerze widoku strony dla Android, iOS i Windows
  • symulator iOS w Windows w VS 2017
  • Xamarin Test Recorder: generowanie testów po interakacji z urządzeniem, eksport do kodu lub na farmę urządzeń w Test Cloud, możliwość bezpośredniego odpalenia testów w Visual Studio Enterprise
  • Visual Studio Mobile Center Preview (VS w chmurze do tworzenia i zarządzania projektami mobilnymi)

Duże inwestycje w system Linux:

  • Microsoft dołącza oficjalnie do Linux Foundation
  • Dostajemy pierwszą odsłonę SQL Server na Linux (można się z nim łączyć także przez Management Studio na Windows czy Visual Studio/Visual Studio Code)
  • Na Windows 10 rozwijany jest podsystem dla Linux (m.in obsługa większej ilości linuksowych narzędzi, 24-bitowe kolory w konsoli i obsługa myszy, wywoływanie z PowerShell rzeczy linuksowych, a z bash programów Windows)
  • Debugowanie aplikacji C++ na Linux z poziomu Visual Studio w Windows (połączenie zdalne z maszyną Linux lub z podsystemem Linux na lokalnym Windows 10)

Pojedynek ASP.NET kontra node.js

  • bardzo duża przewaga w benchmarku ASP.NET Core nad node.js (w Linux i Windows), Go czy innymi jeszcze rozwiązaniami

Rozwój SQL Server:

  • wersja na Linux
  • współpraca Management Studio i Visual Studio z instancjami na Linux
  • wsparcie dla cross-platformowego Visual Studio Code
  • udostępnienie sporej liczby funkcjonalności znanych do tej pory z Enterprise do wersji podstawowej, a nawet express
  • rozwój providerów dla różnych języków i platform np. .NET Core, node.js, Java, Python, itd.

Visual Studio 2017 RC:

  • modułowa lekka instalacja tylko tego, co potrzebujemy, także w trakcie korzystania
  • kilkukrotnie lepsza wydajność: startowanie, ładowanie solution, kompilacja, mniejsze zużycie pamięci
  • Live Unit Testing - zielone checki, czerwone krzyżyki lub niebieskie znaczki, każda linijka kodu na bieżąco pokazuje status względem unit testów, który wykonują się w tle
  • analiza kodu i walidacja architektury w czasie rzeczywistym
  • nowy null exception helper - pokazuje co faktycznie było null-em
  • możliwość pokazania, który nawias w kodzie jest do czego
  • szybka wyszukiwarka wszystkiego w projekcie CTRL + T (jakby coś inspirowane R#), z przyciskami zmiany kontekstu na dole
  • kropeczki w kodzie - sugestie refaktoryzacji kodu (jakby coś ala R#)
  • propozycje zmian w kodzie (poza sugestiami)
  • wyszukiwarka Intellisense z przyciskami zmiany kontekstu na dole
  • czytelny i znacznie bardziej bogaty podgląd referencji do elementu w kodzie
  • otwarte definiowanie zbiorów plików do kompilacji w pliku projektu (pliki nie muszą być dokładnie wyszczególnione)
  • bardziej bogata i jasna wizualizacja referencji projektu
  • wstawianie breakpointa w dowolnej linii kodu podczas debugowania
  • projekt Class Library (.NET Standard)
  • zintegrowany .NET Core Tooling
  • zuinifikowane narzędzia dla wszystkich platform .NET dzięki rozszerzonemu MSBuild
  • aplikacje uniwersalne Windows: udogodnienia w edytorze XAML, XAML edit & continue, diagnostyka UI, edytor asset-ów
  • aplikacje desktop: udogodnienia w edytorze XAML, XAML edit & continue
  • aplikacje mobilne każdego rodzaju: zaawansowane profilowanie, inspekcja, szybsze i bardziej stabilne buildy
  • symulator iOS w Windows
  • aplikacje Web: nowy edytor JavaScript zgodny z najnowszymi standardami, lintery, debugowanie kodu klienta i serwera przy użyciu Chrome (wcześniej tylko Edge / IE), udoskonalony Browser Link
  • JavaScript: bogatszy Intellisense, składnia ES6+, składnia JSX, moduły Commonjs i ES6, transpilacja niskiego poziomu, rozszerzone wsparcie dla JSDoc
  • szybkie tworzenie aplikacji .NET Core w Dockerze na Linuksie i w chmurze
  • większe wsparcie dla Linux (nowe projekty C++, debugowanie na zdalnej maszynie Linux (SSH), dołączanie się do jej procesu, komunikowanie się z lokalnym podsystemem Linux na Windows 10 poprzez konsolę)
  • wsparcie dla ponad 20 języków, w tym także Swift

C#7 - był już znany przed konferencją

.NET Standard 2.0 - było już przed konferencją, ale powiem że to godny następca Standard 1.x, który był następcą PCL, będzie można współdzielić coraz większe ilości kodu pomiędzy klasycznym .NET (np. desktop, ASP.NET), .NET Core (UWP, ASP.NET Core), a Mono (Xamarin)

.NET Core:

  • .NET Core 1.1
  • nowe dystrybucje: Linux Mint 18, OpenSUSE 42.1, macOS 10.12, Windows Server 2016
  • nowe API i poprawki bugów

Aplikacje uniwersalne Windows:

  • lepsze narzędzia w VS 2017
  • rozwój Device Portal dla każdego urządzenia z Windows 10
  • UWP Community Toolkit 1.2

ASP.NET Core 1.1:

  • URL Rewriting (z konfiguracją na IIS, Apache lub w C#)
  • wywoływanie komponentów widoku poprzez tag helpery
  • middleware jako filtry MVC
  • prekompilacja widoków Razor
  • Response Caching
  • dodawanie kompresji GZip do response w HTTP
  • wsparcie dla Azure

TS 2.0:

  • typy nie-nullowalne
  • modularyzacja lib.d.ts
  • łatwiejsze pobieranie plików .d.ts
  • tagowalne unie
  • globalne wsparcie w tsconfig.json
  • jawne typy this dla funkcji

TS 2.1:

  • funkcje async
  • lepsza inferencja typów
  • lepsze wsparcie przez edytor

 

Jak widać przyszłość jak zwykle rysuje się ciekawie. W przeglądzie skupiłem się na wybranej tematyce, nie zagłębiałem się w nowości np. Visual Studio Code czy usług Azure.

Do powyższych nowinek z Connect dodam, że ostatnio ukazała się kompilacja Windows 10 14971, która:

  • zawiera czytnik e-booków w przeglądarce Edge
  • pozwala zamiast konsoli cmd.exe wywoływać konsolę PowerShell