devstyle.pl - Blog dla każdego programisty
devstyle.pl - Blog dla każdego programisty
11 minut

Relacja z Communities to Communities 2008 – C2C


06.04.2008

W sobotę, 5 kwietnia (jaki szczególny dzień! 14 rocznica śmierci Kurta Cobaina i zarazem 25 narodzin mojej Joannnnny, ło-ho-ho!) w warszawskiej siedzibie Microsoftu odbyła się niezwykła konferencja Communities to Communities – C2C. Co było w niej niezwykłego?

Wrażenia ogólne

Po pierwsze – powstała dzięki połaczonym siłom najbardziej aktywnych przedstawicieli wielu grup .NET i SQL w Polsce (oczywiście sponsorzy byli niezbędni, ale nic to nie zmienia). Po drugie – część prelegentów pochodziła z tego środowiska i została przez nie wybrana. Po trzecie – i to jest (niestety) najbardziej niezwykłe – opuszczenie KTÓREJKOLWIEK z sesji byłoby naprawdę wielką stratą. Sesje były podzielone na dwie kategorie – .NET i SQL. Podążałem, jakże by inaczej,  ścieżką .NET. Oto moje wrażenia:

1. “Test Driven Development (TDD) w praktyce” (Maciej Szczepański, Paweł Leśnikowski)

Wszelkie tematy związane z metodykami “agile”, a co za tym idzie – także TDD, są ostatnimi laty bardzo popularne. Niestety – w Polsce chyba dopiero zauważamy początki takiego trendu. Jak poradzili sobie prezenterzy z tak ważnym tematem – w tak “zielonych” okolicznościach? Moim zdaniem – wzorowo. Najpierw niezbędne wprowadzenie teoretyczne i krótkie omówienie pod hasłem “co to jest Test Driven Development”. Następnie, aż do końca prezentacji – demonstracje praktyczne. Żaden suchy wykład nie jest w stanie oddać całego piękna TDD i płynących z niego korzyści tak jak pokazanie tych zasad na żywo, bezpośrednio w Visual Studio. Prowadzący zaserwowali nam trzy bardzo dobrze dobrane przykłady demonstrujące coraz bardziej zaawansowane terminy (zwykły test -> mock objects -> testowanie UI przy wykorzystaniu wzorca MVP). Jednocześnie raz po raz w stronę sali rzucana była porada wynikająca z praktycznych doświadczeń prelegentów ostrzegająca przed niektórymi pułapkami czyhającymi na nowych adeptów. Nieustannie także można było czerpać wiedzę na temat narzędzi najlepiej wspomagających wdrożenie omawianej metodyki (VS + R# + nUnit + nCover), co z pewnością wszystkim zainteresowanym ułatwi początki ewentualnego zmierzenia się z TDD we własnym zakresie.
Do kogo była kierowana prezentacja? Poziom dobrany był moim zdaniem idealnie do polskich warunków – czyli najwięcej z tej sesji mogły wynieść osoby nie mające wcześniej praktycznej styczności z TDD. Mimo to bardziej doświadczonym słuchaczom także nie groziła nuda. Jednym słowem – brawo! Za szerzenie słusznej idei, za świetne przygotowanie, za ciekawe tematy i interesujące prowadzenie. Teraz trzeba mieć nadzieję, że coraz więcej polskich przedsiębiorstw chociaż spróbuje podążać w tym kierunku…
Ocena: 9.

2. “Debugging and Crash Dump Analysis of ASP.NET Web Sites” (Martin Kulov)

Pierwsza sesja prowadzona przez zagranicznego gościa, a co za tym idzie – w języku angielskim. Temat dość ciężki i momentami można było się trochę pogubić. Nie zawsze wszystko było dobrze widoczne z ekranu. Mimo to przydatność przedstawianych zagadnień jest nie do przecenienia.
Całość opierała się na bardzo ciekawym scenariuszu wystąpienia błędu w prostej aplikacji webowej wyświetlającej obrazki. Kilka szczegółów: obrazek pobrany z dysku jest zapisywany bajt po bajcie do cache; z powodu braku pamięci podczas tej operacji cache zostaje wyczyszczony (zasymulowano to tutaj zwykłym Cache.Remove); wyjątek powstały w wyniku próby zapisu do nieistniejącego elementu cache jest przechwytywany przez zewnętrzny moduł obsługi błędów, który czyści informacje na temat jego wystąpienia poprzez Server.ClearError(); wskutek tej operacji nasz własny moduł obsługi błędów po wywołaniu Server.GetLastError().Message generuje NullReferenceException… A wszystko to objawia się w przeglądarce jedynie poprzez niewyświetlenie obrazka. Zamotane? A jakże!
I w tym momencie wkracza Martin z komputerem pełnym narzędzi i głową pełną wiedzy dotyczącej debuggowania. Najpierw naświetlił nam aktulany kształt rynku poprzez przedstawienie dostępnych na nim produktów oraz krótkie omówienie który służy do czego. Kiedy użyć debuggera VS? Co znajduje się w pakiecie Debugging Tools For Windows? Jaki komponent wybrać? Jak z nich korzystać na maszynie deweloperskiej, a jak na produkcyjnej? Jak analizować otrzymane wyniki i co one oznaczają? Jakie wyciągać wnioski i zabrać się do naprawiania szkód? Na te i inne (np. “jak debuggować kod .NET Framework?”) pytania można było uzyskać odpowiedzi siedząc wygodnie i podążając wraz z prelegentem w świat, w którym na robale nie używa się klapków, a cały arsenał potężnych debuggerów. A wszystko okraszone dodatkowo wywołującymi ogólną uciechę publiczności narzekaniami na Vistę oraz innymi, nietechnicznymi, zabawnymi wstawkami.
Ocena: 8.

3. “Wprowadzenie do Entity Framework” (Jarosław Kowalski)

O Entity Framework słyszy się już od dawna. Osobiście interesowałem się tym zagadnieniem raczej pobieżnie. Ot – kolejny O/R mapper, tyle że ze stajni Microsoft. Jak najłatwiej poddać swoje wyobrażenia bezlitosnej weryfikacji? Wysłuchać człowieka, który tworzeniem danego narzędzia zajmuje się na co dzień…
Zaproszenie takiego człowieka na C2C to moim zdaniem strzał w dziesiątkę. Okazało się, że moje wyobrażenie o EL jest naprawdę BARDZO powierzchowne. I krzywdzące. Zaraz po rozpoczęciu prezentacji w mojej głowie raz po raz pojawiały się nowe pytania. Po co nam Entity Framerowk skoro mamy NHibernate? Albo idąc krok dalej – gdzie jest miesce na EF po premierze VS 2008 z jego wsparciem dla wizualnego tworzenia DataContexts LINQ to SQL? Albo wreszcie – o co tyle zachodu, skoro przecież koncepcja odwzorowania modelu relacyjnej bazy danych na świat obiektów jest stara jak… w każdym razie bardzo stara, i doczekała się niejednej implementacji? Jako że nie jestem zwolennikiem przerywania prelegentowi w pół zdania – cierpliwie trzymałem język za zębami i czekałem. I… nie zawiodłem się. Wszystkie moje wątpliwości zostały rozwiane, wiem już gdzie umieścić EF w całym katalogu podobnych produktów. Wiem też, dlaczego warto na EF czekać i co zostanie nam tak naprawdę zaoferowane. Wiem po co stworzono kolejną odmianę języka SQL. I wiem, że wersja .NET, której integralną częścią będzie EF, to kolejny murowany hit w całej świetlanej historii tej platformy.
Bywały momenty, gdy prelegent był wręcz zasypywany gradem pytań ze strony publiczności. Moim zdaniem, pomimo ich natarczywości, wyszedł z konfrontacji obronną ręką i obronił swoje racje.
Z tej sesji wyniosłem najwięcej nowych i bardzo interesujących informacji. Powierzenie takiego tematu takiej osobie w takim miejscu… super. Dlatego też bez wahania:
Ocena: 9.

4. “Understanding Goals and Features of the ASP.NET MVC Framework” (Dino Esposito)

Nie będzie chyba przesadą, gdy napiszę, że cała konferencja kręciła się głównie wokół tego nazwiska: Esposito. Światowa gwiazda ASP.NET po raz pierwszy zawitała do Polski, i to na konferencję organizowaną przez społeczności pasjonackie! Co zatem gwiazda robiła? Otóż – świeciła…
Muszę przyznać, że wypełniając ankietę ze spotkania bez wahania oceniłem Dino na max, czyli 9. Ze sceny wprost lało się na publiczność jego wieloletnie doświadczenie. Doświadczenie zarówno programisty, jak i prezentera. Showmena.
Temat bardzo ciekawy i wzbudzający wiele kontrowersji. Odejście od WebForms? Rezygnacja z kontrolek serwerowych? Powrót do <% %> znanych z klasycznego ASP? Wszystko to zostało przedstawione w sposób naprawdę maksymalnie profesjonalny. Jak się ma ASP.NET do programowania prawdziwie obiektowego dzisiaj i jak zmienia to MVC Framework? Co jest złego a co dobrego w dzisiejszej implementacji WebForms – i jak ma się do tego nowa propozycja z MS? Te i wiele innych pytań postawił przed nami Dino, a następnie rozprawiał się z każdym zagadnieniem po kolei. Był też czas na omówienie zasad zarówno wzorca MVP/MVC, jak i jego konkretnej implementacji w tym przypadku. Nie zabrakło nawiązań do już istniejących sposobów na “obiektywizację” designu aplikacji webowych, jak Web Client Software Factory.
No i OK – to tyle o samej prezentacji. Nie można o niej napisać nic złego – obiektywne przedstawienie produktu od strony technicznej i jego subiektywna ocena. Następnie przyszedł czas na pytania, i… trochę się zawiodłem. Dino podkreślił, że z zasady nie zagłębia się w wersje CTP. A prezentacja oparta była na starej, już nieaktualnej wersji. Dlatego też niestety nie udzielił, moim zdaniem, satysfakcjonującej odpowiedzi na większość padających z publiczności pytań.
I jeszcze jedno “pytanie próżnię”, które zrozumieją tylko uczestnicy konferencji (nie ma sensu zagłębiać się w szczegóły): czy bycie autentyczną gwiazdą w świecie .NET usprawiedliwia wymuszanie na kilku słuchaczach błaźnienia się przed pełną salą poprzez podbijanie piłki w celu uzyskania nagrody? Fakt, była kupa śmiechu, jednak to chyba przesada…
Ocena: 8 (po dłuższej refleksji – nie mogę powiedzieć, aby pozostałe sesje były gorsze od tej, pomimo mniej “lśniących” prowadzących).

5. “.NET Developer Toolbox A.D. 2008” (Marcin Celej, Michał Brzozowski)

Na sam koniec uraczono nas typowym case-study. Mamy prostą aplikację do zarządzania portfelem inwestycji i prelegenci krok po kroku prowadzą nas przez cały proces jej powstawania. Owszem, można to napisać za pomocą jednego projektu Windows Forms, jednak co to za frajda?
Mieliśmy zatem okazję zobaczyć jak w praktyce można połączyć najnowsze technologie tak, aby osiągnąć konkretny, z góry określony efekt – rozpoczynając od odpalenia VS, a na uruchomieniu gotowej aplikacji kończąc. Z jakimi komponentami umówiono więc nas na małe rendez-vous? Zaczęliśmy od Windows Communication Foundation. Potem doszły przepływy (Windows Worflow Foundation) i wykorzystanie serwisów z ich poziomu. Następnie zaprojektowaliśmy bazę danych używając do tego jedynie Visual Studio, skomunikowaliśmy się z nią poprzez LINQ To SQL, po czym, pozostając w temacie baz danych, pobawiliśmy się kompaktową wersją SQL Server (CE) oraz jej synchronizacją z większym bratem. Po romansie z DB szybki powrotny rajd do WCF i WF, jednak tym razem role zostały odwrócone: to nie przeływ wykorzystuje serwis, a sam jest w ten sposób udostępniany. Mało tego – dodatkowe założenie gwarantuje klientowi możliwość otrzymywania callbacków z serwera! Zakres materiału naprawdę imponujący, nie dziwne zatem, że na omówienie UI zrealizowanego przy użyciu WPF zabrakło czasu.
Ta sesja miała na celu nie tyle nauczenie widzów korzystania z którejkolwiek technologii, co raczej demonstrację ich możliwości, gdy umiejętnie dopasujemy je do siebie niczym idealnie powycinane puzzle. W kupie siła! Z satysfakcją stwierdzam, że zadanie to zostało spełnione.
Ocena: 8.

Podsumowanie

Cóż… oceny sesji mówią chyba same siebie? Po prostu re-we-la-cja. Zdecydowanie najlepsza konferencja, w jakiej dane mi było uczestniczyć (fakt, nie było ich zbyt wiele, ale co to zmienia?). Daruję sobie opis spożywania pizzy w przerwie między sesjami czy koloru otrzymanej smyczy, bo nie po to się tam wszyscy zjawiliśmy.
Jeżeli miałbym podsumować całość jednym określeniem to byłoby to: “słodkie morze wiedzy NIESKAŻONEJ MARKETINGOWYM BEŁKOTEM“(wielkie litery, bo to jest naprawdę godne podkreślenia)!

No i na koniec: wszystkich nieobecnych zachęcam do odwiedzania strony konferencji, na której kiedyś wszystkie omawiane sesje pojawią się do ściągnięcia.


W swoim (i chyba nie tylko swoim) imieniu dziękuję tym szczególnym osobom za poświęcenie masy wolnego czasu na zorganizowanie tak niesamowitego wydarzenia. Jednocześnie – gratuluję, bo efekt naprawdę był tego wart (chociaż co ja tam mogę wiedzieć, skoro moja aktywność ograniczyła się do spijania miodu z ust prelegentów:) ).

Nie przegap kolejnych postów!

Dołącz do ponad 9000 programistów w devstyle newsletter!

Tym samym wyrażasz zgodę na otrzymanie informacji marketingowych z devstyle.pl (doh...). Powered by ConvertKit
Notify of
Jakubin
Jakubin

Świetna relacja. %, widzę, że jesteś w szczycie swojej formy literackiej :)
Choć przez Ciebie jeszcze bardziej żałuję, że nie mogłem przyjechać…

Procent

Dzięki za miły komentarz.
Co do żałowania – żałuj żałuj i niechaj ci będzie Kubo mocno smutno, bo masz do tego powód:).

Daniel Arak
Daniel Arak

Maciek bardzo dziękuję za relację. Sesje, które mieliśmy okazję wspólnie oglądać w pełni przerosły nasze oczekiwania – to fakt :)
3majcie kciuki i jednocześnie jeśli to możliwe zgłaszajcie swoje propozycje na następne takie wydarzenia. Już teraz wszystkich, którzy chcieliby się zaangażować serdecznie zapraszam w imieniu organizatorów.

:)

Maciej Szczepański
Maciej Szczepański

dzięki wielkie za 9 :)

Generalnie sesja miała na celu pokazanie głównych pojęć i narzędzi, niestety dość trudno w 80min omówić cały wachlarz koncepcji, frameworków i praktyk. Dlatego też sesja rozwinie się w całą serię prezentacji, w których będziemy mogli dokładniej przyjrzeć się poszczególnym tematom związanym z TDD, tak więc zapraszam wszystkich na warszawską grupę .NET.

Jakub Jałbrzykowski
Jakub Jałbrzykowski

Konkretna relacja! Krótko, zwięźle i na temat. A Ci co nie byli niech żałują!

Moja książka

Facebook

Zobacz również