Kilka dni po warszawskiej konferencji .NET Developer Days 2015, w której wziąłem udział wraz z Maćkiem Kozerą i Marcinem Duszyńskim, nadszedł czas na jej (nie takie krótkie) podsumowanie.

Dzień 0

Do Warszawy dotarliśmy w niedzielę około 23. Stolica przywitała nas mgłą i siąpiącym deszczem, więc czym prędzej udaliśmy się do hotelu Radisson Blu Sobieski, aby zebrać siły przed czekającą nas potężną dawką wiedzy.

Dzień 1

Po wczesnym śniadaniu wybraliśmy się piechotą na teren Expo XXI, który przez najbliższe dwa dni miał stać się polskim centrum .NETowego światka. Obiekt z zewnątrz nie zrobił na nas dużego wrażenia, jednak powierzchnia przeznaczona na 2 sale konferencyjne, szatnię oraz stoliki i firmowe stoiska wystawowe okazała się całkiem duża. Nic dziwnego – w konferencji miało wziąć udział około 700 osób. Niestety, tak duża liczba uczestników spowodowała utworzenie się monstrualnych kolejek do stanowisk rejestracyjnych. Przedłużające się wręczanie pakietów powitalnych opóźniło rozpoczęcie całej konferencji, ale było to ostatnie opóźnienie w ciągu tych dwóch dni.

 

20151020_082027b

 

Uczestników konferencji przywitał jeden z organizatorów – Maciej Pilecki. Należy nadmienić, że druga edycja z wydarzenia stricte polskiego, stała się pełnoprawną międzynarodową imprezą mocno wspieraną przez Microsoft, a słuchacze przybyli nawet z Portugalii. Po krótkim wstępie, Maciek zaanonsował największą gwiazdę tegorocznej edycji .NET Developer Days, która miała poprowadzić inauguracyjną prelekcję. Gwiazdą tą był znany programistom z całego świata – Scott Hanselman. Zaczęło się!

Scott Hanselman – JavaScript and the Rise of the New Virtual Machine

W świetle reflektorów Scott, niczym gwiazda rocka, rozpoczął swój show. Prelekcja zaczęła się od ogólnych haseł związanych z cloud computingiem oraz zastosowaniem platformy Azure i technologii Azure WebJobs. Następnie po serii anegdot dotarliśmy do sedna prezentacji, której przesłaniem brzmiało: JavaScript is the web ASM. Autor przekonywał, że JS ma tak szerokie zastosowanie w dzisiejszym świecie, że nie ma sensu stronić od programowania w tym języku, a raczej korzystać z jego dobrodziejstw oraz tego, że praktycznie każde urządzenie klienckie może wykonywać zdecydowanie bardziej skomplikowane zadania niż wyświetlanie popupów i animacji. Najważniejsze, jak zwykle, jest oczywiście zachowanie rozsądku i balansu pomiędzy back- i frontendem.

 

20151019_103919

 

Tomas Herceg – Roslyn – why should you care?

Kolejną prezentacją, na którą się udaliśmy było wprowadzenie do kompilatora Roslyn prowadzone przez Tomasa Hercega. Prelekcja rozpoczęła się od wprowadzenia do flow kompilatora oraz jego elementów. Dobrze przygotowane live demo pozwoliło omówić i pokazać w działaniu mechanizmy Roslyn związane z generowaniem, parsowaniem i vizualizacją kodu źródłowego przy wykorzystaniu wtyczek do Visual Studio. Wydaje się, że dzięki nowym możliwościom, zwłaszcza pisanie wtyczek do VS stało się znacznie łatwiejsze niż dawniej.

Scott Hunter – Azure App Service Architecture

Jako trzeci wystąpił kolejny przedstawiciel Microsoftu – Scott Hunter. Prezentacja miała na celu pokazanie zalet platformy Azure oraz nowego podejścia do jego usług wprowadzonego przez Microsoft, czyli podziału na 4 moduły: WebApps, MobileApps, LogicApps oraz API Apps. Główną częścią prelekcji było live demo. Po początkowych problemach z połączeniem, dalsza część przebiegała gładko i pozwoliła zaprezentować różne sposoby deploymentu aplikacji na Azure z poziomu VS czy robiący wrażenie remote debugging. Oprócz części programistycznej, mieliśmy możliwość zapoznania się z auto skalowaniem maszyn wirtualnych, prostym przełączeniem ustawień dla środowisk produkcyjnych i testowych czy zarządzaniem backupami aplikacji oraz baz danych przez interfejs webowy Azure. Ciekawym rozwiązaniem jest serwis API Apps, wspierający proste tworzenie API dla aplikacji, posiadający obsługę uwierzytelniania oraz wbudowane connectory do popularnych serwisów takich jak Twitter, Twilio, SAP, Dropbox, Slack itd.

Daniel Fisher – Resilience Patterns and Defensive Programming

Kolejnym prelegentem w sali A, był Daniel Fisher, który postanowił podzielić się ze słuchaczami swoją filozofią podejścia do programowania defensywnego. Autor bloga lennybacon.com rozpoczął od próby analizy tego, czego boją się programiści: legacy kodu, swoich szefów, zmian, czasu release oraz porażek. W drugiej części prezentacji przypomniał o kilku technikach programistycznych mogących zminimalizować ryzyko występowania nieoczekiwanych błędów (np. używanie tzw. yoda conditions, sprawdzaniu czy listy obiektów zwracane przez moduły nie są nullami, domyślne tworzenie klas, jako sealed oraz walidacji danych wejściowych w DDD). Trzecia część spinała poprzednie przemyślenia w spójną całość. Dotyczyła między innymi podejścia do błędów – znajdowanie błędów jest dobre… o ile nie znajduje ich najpierw klient, a najlepsze jest wyłapywanie błędów podczas testów automatycznych, czy niestandardowego myślenia o bazach danych – tradycyjne podejście ACID nie zawsze jest dobre i należy pamiętać o BASE oraz jak ważne jest logowanie informacji o operacjach wykonywanych przez aplikację. W kontekście zabezpieczania aplikacji przed niespodziewanymi błędami, Daniel przypomniał o kilku sprawdzonych wzorcach np. Retry Pattern, Circuit Breaker Pattern, Leader Election Pattern czy Compensating Transaction Pattern.

Jako podsumowanie całej, bardzo dobrej w odbiorze prezentacji, może posłużyć dobrze znane zdanie – what doesn’t kill you makes you stronger :)

Karol Tomaszewski – JavaScript: Promise to never callback

Przedostania prezentacja pierwszego dnia dotyczyła mechanizmu promise w JavaScript, o którym wielu programistów słyszało, ale nie zawsze używało. Bardzo dobrze przygotowane przez Karola live demo prowadziło krok po kroku od klasycznego kodu używającego mechanizmu callbacków (callbacks hell) aż do uporządkowanego wykonywania łańcucha wykorzystującego promise’y. Po drodze zostały zaprezentowane techniki radzenia sobie z testowaniem asynchronicznych akcji AJAX przy użyciu frameworka Jasmine. Dla mniej doświadczonych programistów chcących zapoznać się z mechanizmem promise, ciekawe może być odwiedzenie strony http://bevacqua.github.io/promises.

Scott Hanselman – Scaling Yourself: Information Overload and Personal Productivity

Pierwszy dzień kończyła druga prelekcja prowadzona przez Scotta Hanselmana. Tym razem temat nie dotyczył technologii a sposobów zarządzania czasem i zadaniami. Scott przedstawił techniki, które stosuje, aby przy zachowaniu produktywności mieć jeszcze czas na normalne życie. Ważną częścią tego procesu jest priorytetyzacja zadań, kanałów komunikacyjnych czy wiadomości e-mail, które wpływają na naszą pracę. Scott odniósł się również do zasady 4D przedstawionej w książce Getting Things Done: do it, drop it, delegate it, defer it.

Kilka przydatnych aplikacji i technik wymienionych przez Scotta, które mogą pomóc lepiej zarządzać swoim czasem to: Pomodoro, Rescuetime, Evernote, OneNote, Trello, Instapaper, IFTTT – ci którzy jeszcze tego nie zrobili, na pewno powinni zapoznać się z tym zestawem. Jako podsumowanie wystąpienia oraz uświadomienie sobie wagi właściwego zarządzania czasem i zadaniami, może służyć strona: http://keysleft.com.

Następnym punktem programu było integracyjne wyjście do VooDoo Clubu sponsorowane przez organizatorów. Udała się tam dość duża grupa uczestników konferencji…i już została podjęta decyzja, aby w przyszłym roku zarezerwować klub oferujący większą powierzchnię :)

 

Dzień 2

Scott Hanselman – Intro to ASP.NET 5

Drugi dzień rozpoczął się prezentacją prowadzoną przez dwóch Scottów – Hanselmana i Huntera. Panowie wprowadzili słuchaczy w szczegóły numeracji wersji ASP .NET oraz samego .NET Framework (4.6 / 5). Kolejnym etapem było wprowadzenie do nowej wersji ASP: nowy wygląd projektów, poprawiona obsługa błędów czy wsparcie dla managera pakietów Bower. Ukoronowaniem występu było live demo uruchomienia aplikacji ASP.NET 5 na komputerze z systemem MacOS.

Michał Dudak – ASP.NET + Docker + Azure

Druga prezentacja na którą się udaliśmy mogłaby być uznana za kontynuację poprzedniej i dotyczyła użycia Dockera i platformy Azure do deploymentu aplikacji ASP.NET. Michał rozpoczął od omówienia czym jest Docker, jak wygląda wsparcie dla tej technologii ze strony Azure oraz o planowanym usprawnieniu (dużo mniejsze obrazy) wsparcia w Windows Server 2016. Podczas prezentacji, uczestnicy mogli zobaczyć dobrze przygotowany przykład tworzenia obrazów i deploymentu aplikacji zarówno na systemie Linux Ubuntu jak i Windows Server.

Zainteresowanym, można polecić stronę http://channel9.msdn.com/tags/docker zawierającą więcej przykładów i informacji.

Jakub Gutkowski – Automate, then code

Za kolejną prelekcję był odpowiedzialny popularny Gutek, czyli Jakub Gutkowski. Starał się on przekonać słuchaczy (o ile ktoś nie był wcześniej przekonany) o potrzebie automatyzacji wszystkiego co możliwe, ponieważ czas to pieniądz. O zaletach narzędzi do continuous integration i delivery nie trzeba chyba nikomu przypominać, ale warto jest przypominać o możliwości automatyzacji codziennej pracy dzięki takim aplikacjom jak OneGet, chocolatey czy boxstarter. Odbiór całej prezentacji zepsuł niestety brak solidnego demo, spowodowany awarią komputera prowadzącego.

Tomasz Kopacz – Azure PaaS v2 – Microservices, Microsoft Service Fabric, *Apps

Przedostatnią prezntację prowadził znany w środowisku, kolejny przedstawiciel firmy Microsoft – Tomasz Kopacz. W specyficzny dla siebie sposób, starał się przekazać ogrom wiedzy, dotyczącej tworzenia architektury microservices na platformie Azure, w jak najkrótszym czasie. Prelekcja była dobrym uzupełnieniem, o więcej technicznych szczegółów, wystąpienia Scotta Huntera z poprzedniego dnia. Oprócz samej platformy, poruszała tematy dobrych praktyk przy tworzeniu architektury microserwisów oraz komunikacji między serwisami (grains, Orleans). Ciekawie prezentowała się część omawiająca Azure Service Favric, wsparcie dla skalowania oraz failover. Przykłady prezentowanego kodu, można znaleźć na GitHub autora pod nickiem tkopacz.

Kuba Waliński – Aurelia – welcome to the future of JavaScript frameworks

Ostanią prelekcję drugiego dnia konferencji wygłosił Kuba Waliński. Wystąpienie miało na celu przypomnienie historii rozwoju i przyszłości Java Scriptu: od świecidełek tworzonych przy użyciu jQuery, przez Knockout, Angular, React aż do kolejnego wydania Angular i jego konkurenta – Aurelia. Wydaje się, że framework ten z powodu prężnie działającego community oraz poważnych, długofalowych planów rozwoju, może zyskać bardzo dużą popularność wśród developerów Java Script.

 

12170480_1049187985114883_1320756218_n (1)

Podsumowanie

  • Impreza, poza początkowym opóźnieniem spowodowanym rejestracją, przebiegała bardzo sprawnie
  • Scott Hanselman ;)
  • Dziwić może niewielka liczba stoisk wystawowych firm
  • Po każdej prezentacji hostessy wręczały wychodzącym z sali papierowe ankiety dotyczące prelekcji – znacznie efektywniejsze byłoby wykorzystanie w tym celu dedykowanej aplikacji/strony www
  • Ciekawe prelekcje prowadzone przez doświadczonych mówców
  • Wszystkie wystąpienia mają być dostępne na Channel9

Na pewno w przyszłym roku, również postaramy się wziąć udział w .NET Developer Days!