W dniach 19 i 20 października w centrum Expo XXI w Warszawie odbyła się druga edycja konferencji .NET Developer Days.

W wydarzeniu miała zaszczyt uczestniczyć pięcioosobowa grupa z JCommercowego .NET-u, w tym niżej podpisany.

Tegoroczne spotkanie miało charakter międzynarodowy, co dało się już usłyszeć stojąc w kolejce do rejestracji oraz zobaczyć w harmonogramie konferencji, w którym liczba zagranicznych prelegentów była jedynie minimalnie mniejsza od krajowych. Jeśli już wspominamy o prelegentach, to należy zauważyć, że na liście znalazły się dwa nazwiska doskonale znane wszystkim sympatykom .NET. Mowa o dwóch Scottach – Hanselmanie oraz Hunterze, których obecność zadziałała jak magnes na uczestników i podniosła rangę wydarzenia.

Sesje konferencyjne trwały godzinę i prowadzone były równolegle w dwóch salach. Poruszane tematy odzwierciedlały aktualne trendy w .NET i IT: chmura, konteneryzacja, mikroserwisy i aplikacje mobilne. Krótkie opisy sesji w których braliśmy udział zamieszczone są poniżej. W trakcie konferencji była mowa o tym, że nagrania z poszczególnych sesji zostaną opublikowane w późniejszym czasie na stronie Channel 9 (channel9.msdn.com), aby każdy zainteresowany mógł się z nimi zapoznać.

Osobiście jestem bardzo zadowolony z udziału w .NET Developer Days. Niemniej jednak odnoszę wrażenie, że organizatorzy przygotowując kolejną edycję powinni staranniej dobierać tematy sesji, tak aby uniknąć przesadnie prostych tematów (sesja o promises w JS) oraz sesji o wątpliwej wartości merytorycznej (ech ten „dotVVM”…). Myślę, że warto również rozważyć zróżnicowanie limitu czasowego sesji. Godzina jest wystarczająca dla prostych tematów. Niestety, w przypadku bardziej skomplikowanych zagadnień wymusza się na prowadzących bardzo powierzchowne omawianie, co negatywnie wpływa na ocenę poziomu merytorycznego sesji przez słuchaczy. Mam wrażenie, że w tych przypadkach wydłużenie limitu czasu do półtorej godziny lub nawet dwóch godzin pozwoliłoby prowadzącym rozwinąć skrzydła.

Organizatorzy konferencji sprawiali wrażenie osób, którym zależy na opinii uczestników, więc miejmy nadzieję, że wezmą je pod uwagę podczas przygotowywania kolejnej edycji. No i liczę po cichu na to, że kiedyś uda im się zaprosić Scotta Guthrie :)

Keynote: JavaScript and the Rise of the New Virtual Machine
Konferencja rozpoczęła się wprowadzeniem wygłoszonym przez Scotta Hanselmana, który jeszcze przed sesją pokazał, że ma świetny kontakt z publicznością, zabawiając ludzi czekających na rozpoczęcie konferencji – wystarczył mu do tego mechanizm podpowiadania wyszukiwarki Google i odpowiednio formułowane pytania („why is….”).

W trakcie sesji Scott, w typowy dla siebie sposób – lekki i pełen humoru sytuacyjnego – opisywał otaczający współczesnych deweloperów świat „chmury” i „przeglądarki”. Przytaczając anegdoty i przykłady ze swojej długiej kariery zawodowej opowiadał, jak rozwój cloud computingu wpłynął na podejście do tworzenia elastycznych i skalowalnych rozwiązań. Mówił również o tym, jak przeglądarki internetowe zmieniły się ze zwykłych czytników tekstu w maszyny wirtualne tworzące warstwę abstrakcji nad sprzętem i systemem operacyjnym użytkownika, pozwalając dziś tworzyć rozwiązania o jakich jeszcze parę lat temu nikt nie marzył.

Sesja nie obfitowała w techniczne szczegóły, ale też nie taki był jej cel. To miało być show, które rozbudzi publiczność i w mojej opinii w tej roli sprawdziło się świetnie.

Scott wygłasza powyższą przemowę na różnych konferencjach w podobnej formie. Dlatego zachęcam do wyszukania jej w sieci i obejrzenia – uśmiech na twarzy gwarantowany.

Azure App Service Architecture
Wyczekiwana przeze mnie sesja prowadzona przez Scotta Huntera, okazała się mieć wydźwięk bardziej marketingowy, niż techniczny. Jednak nie ma się co dziwić – temat jest bardzo obszerny, a czasu było niewiele, więc Scott skupił się na omówieniu przeznaczenia poszczególnych komponentów Azure App Service tj. Web Apps, Mobile Apps, API Apps i Logic Apps. W części praktycznej pokazał strumieniowanie danych diagnostycznych z aplikacji w chmurze wprost do Visual Studio, wykorzystanie środowisk wdrożeniowych dostępnych w App Service, a także jak korzystać z Web Jobs oraz Traffic Managera.

Podczas tej sesji najbardziej dał się we znaki godzinny limit czasowy, bowiem temat został zaledwie napoczęty. Niemniej jednak miło było zobaczyć, jak osoba na tak wysokim stanowisku (niekoniecznie związanym z czynnym programowaniem) pisze kod i sprawnie rozwiązuje problemy które pojawiają się podczas live demo.

Resilience Patterns and Defensive Programming
Prowadzący sesję Daniel Fisher rozpoczął od zauważenia, że w dzisiejszym świecie praktycznie każda, nawet mała aplikacja jest aplikacją rozproszoną. Wystarczy, że w celu uwierzytelnienia użytkownika łączy się z usługą katalogową lub bazą danych znajdującą się na innym serwerze. Każdy problem związany czy to z awarią serwera, na którym znajduje się usługa zewnętrzna, czy też awarią medium transmisyjnego powoduje u użytkownika przekonanie o wadliwym działaniu samej aplikacji. Dlatego też ważne jest poznanie technik oraz wzorców pozwalających na programowanie odporne na błędy, a także na ich sprawną reakcję w momencie gdy już zaistnieją.

Następnie prowadzący przeszedł do przedstawienia (niestety tylko teoretycznego) dobrych praktyk wykorzystywanych przy tworzeniu aplikacji rozproszonych (np. CQRS). Mówił ciekawie, posiłkując się przykładami ze swojego doświadczenia, jednakże miałem wrażenie, że ta teoretyczna część trwała zbyt długo przez co zabrała miejsce przykładom, których na mój gust było za mało. W części praktycznej otrzymaliśmy bowiem jedynie parę powszechnie znanych „zagrywek” programistycznych ograniczających prawdopodobieństwo stworzenia wadliwego kodu oraz dwa równie znane wzorce projektowe (retry pattern i circuit breaker).

JavaScript: Promise to never callback
Podczas tej sesji prowadzący Karol Tomaszewski prezentował zalety stosowania mechanizmu promises w miejscu tradycyjnych callbacków podczas pracy z asynchronicznym kodem w JavaScript. Mimo, iż praktycznie całość oparta była tworzona „na żywo” (za co duży plus dla prowadzącego) to niestety prezentowała prosty temat, więc wszyscy oprócz nowicjuszy w świecie JavaScriptu mieli prawo się na niej nudzić. Zaletą prostego tematu było jednak to, że prowadzącemu jako jednemu z niewielu nie przeszkadzał limit czasowy.

Scaling Yourself: Information Overload and Personal Productivity
Kolejna sesja prowadzona przez Scotta Hanselmana, tym razem niezwiązana z .NET.

Scott to osoba bardzo aktywna. Oprócz pracy dla Microsoftu prowadzi podcasty, programy na Channel 9, aktywnie bloguje, twittuje, bierze udział w konferencjach, a mimo tego ma czas na życie prywatne i zgodnie z zapewnieniami nie cierpi ono na jego aktywności. Kto więc jak nie on mógłby prowadzić sesję o tym, jak poradzić sobie w szybko zmieniającym się środowisku IT, jak nie zostać przytłoczonym nawałem napierających z każdej strony informacji, jak zwiększyć swoją odporność na bycie rozpraszanym i równoważyć czas pomiędzy pracą, a życiem prywatnym. Scott na własnym przykładzie pokazywał jak nadawać aktywnościom priorytety, tak aby w momencie kryzysu móc łatwo z części z nich zrezygnować, a także jak popularne serwisy takie jak Evernote, Pocket czy Instapaper mogą nam w tym pomóc.

ASP.NET + Docker + Azure
Prowadzący Michał Dudak w trakcie sesji zaprezentował tworzenie hostowanych obrazów i zarządzanie kontenerami na przykładzie Ubuntu, Windows Server 2016 Technical Preview 3, a także Azure Container Service. Oczywiście, jako że byliśmy na konferencji poświęconej technologii .NET, wszystko to na przykładzie aplikacji napisanej w ASP.NET 5. Nic dodać, nic ująć – godzina konkretów i praktycznego przedstawienia tematu.

dotVVM: “Javascript” Apps With No Javascript
Jedyna sesja z całej stawki, o której wolałbym zapomnieć (tak samo jak o istnieniu tytułowej biblioteki „dotVVM”).

Poszedłem na nią kierowany ciekawością, bowiem ciężko mi było uwierzyć, że w dzisiejszych czasach ktoś nadal marzy o wytrychu, który pozwoli pisać dynamiczne aplikacje webowe bez napisania linijki kodu w JavaScript (Google GWT anyone?). Tomas Herceg zaprezentował stworzoną przez siebie bibliotekę, która przypominała technologię ASP.NET Web Forms przeniesioną do ASP.NET MVC, tyle że z naciskiem na kod kliencki, ale w moim odczuciu niedojrzałą, z niespójną strukturą wewnętrzną i ograniczoną funkcjonalnością.

Czekałem na demo, które w pełni pokazałoby zalety prezentowanego rozwiązania. Niestety prowadzący zaprezentował wykorzystanie biblioteki na nieśmiertelnym przykładzie kalkulatora obsługującego tylko operację dodawania, z trzema polami i jednym przyciskiem. Po tej sesji jestem przekonany, że ta biblioteka do niczego więcej się nie nadaje.

Azure PaaS v2 – Microservices, Microsoft (Azure) Service Fabric, *.Apps and of course – some “containers”
Długi tytuł sesji sugerował, że autor będzie chciał przekazać nam sporą dawkę informacji, jednocześnie budząc obawy, czy uda się tego dokonać w obowiązującym limicie czasowym.

Prowadzący Tomasz Kopacz chyba podzielał te obawy, bowiem narzucił szybkie tempo już od samego początku. Głównym celem prelekcji było zaznajomienie słuchaczy z mechanizmami dostępnymi w Microsoft Azure, które wspierają tworzenie rozwiązań opartych o mikroserwisy. Było więc pokrótce o Cloud Services, App Services oraz Container Service. Później przyszedł czas na (znowu niestety krótkie) przedstawienie biblioteki Orleans będącej wariacją Microsoft Research na temat paradygmatu Actor Model.

Najciekawiej zapowiadała się ostatnia część sesji – prezentacja Azure Service Fabric. Jest to fundament, na którym zbudowane są niektóre z usług oferowanych w Azure, a który został teraz udostępniony użytkownikom końcowym do wykorzystania we własnych projektach. Niestety w ramach dema prowadzący uraczył nas nagranym wcześniej filmem odtworzonym w przyspieszeniu. Obawiam się, że nawet najbardziej skupiony obserwator miał problemy ze śledzeniem tego co działo się na ekranie – okna pojawiały się i znikały, a nasze gałki oczne ruszały się jak podczas fazy REM. Z sesji wyszliśmy mocno oszołomieni. Niemniej jednak mnie sesja zaciekawiła i zachęciła do dalszego zgłębienia tematu.

Dodaj komentarz