Każdy post, który umieszczam na tym blogu kosztuje mnie bardzo dużo pracy – pisałem o tym już wcześniej – najpierw muszę zebrać informacje, a potem je jeszcze obrobić i to drugie to dużo bardziej niewdzięczna robota. Mimo wszystko jestem zobowiązany do umieszczania dwóch postów tygodniowo (regulamin konkursu Daj Się Poznać) i wychodzi mi na to, że niestety wypadnę z „rywalizacji” (w cudzysłowie, bo nie bardzo tę rywalizację czuję 🙂 ).
Każdy z nas ma tę samą ilość czasu, a ja swój dzielę na pracę, treningi sportowe i rodzinę. Z treningów i rodziny rezygnować nie chcę, a z pracy nie mogę. Zatem świadomie wybieram opcję nie pisania dwóch krótkich, bądź powierzchownych postów i zdaję sobie sprawę, że może mnie to kosztować usunięcie z szeregu uczestników. Tak czy inaczej, zacząłem pisać i jeżeli nie przestanę, to będzie to mój wielki sukces, niezależnie czy będę zakwalifikowany w poczet „pełnoprawnych uczestników DSP”.
Docelowo chciałbym pisać na przemian jeden większy, merytoryczny post oraz jeden mniejszy, na tematy nie związane z programowaniem. Ostatecznie chcę przenieść swoją działalność pisarską z Facebooka właśnie tutaj (bądź na inną platformę blogową). Ostatnio coś nawet napisałem o Odysei Kosmicznej, więc pierwsze koty za płoty
To tyle tytułem przydługiego wstępu, teraz chciałbym zdać relację z postępów prac nad projektem GymBooster.
TL;DR: prac stricte programistycznych zbyt dużo nie było, za to czynności „administracyjne” mnie dobijają 🙁
A dłuższy opis poniżej.
Krok po kroku, co udało mi się zrobić. Wszystkie niżej wymienione czynności na szczęście (?) nie wymagały ode mnie zbyt wiele zachodu – doświadczenie, które nabyłem w projektach komercyjnych, skutecznie pomagało mi rozwiązywać problemy, które tu się pojawiały. Mimo, że większość z tych rzeczy robiłem po raz pierwszy, odnajduję tu, jak we wszystkim, pewne schematy, które są powielane. Dzięki temu można czerpać z doświadczenia w innych płaszczyznach. Np. programowanie aplikacji mobilnych działających pod kontrolą Windows nie różni się wiele od programowania w WPF i Silverlight. Serwisy to także to samo – tym bardziej, że wybrałem dość starą technologię WCF, a nie nowoczesne* RESTowe rozwiązania. Doszedłem do wniosku, że lepiej nie rzucać się na zbyt głęboką wodę. I dobrze zrobiłem, bo nawet „stare” rozwiązania w połączeniu z „nową”* platformą – Azure, sprawiły mi trochę kłopotów w innym sensie – nazwijmy go „administracyjnym” – innymi słowy, lokalnie wszystko działało raczej bezproblemowo, ale przy próbach instalacji na platformie Azure, mimo naprawdę dobrych wizardów, niektóre rzeczy po prostu nie chciały działać. Nawet taka głupia rzecz jak samo postawienie serwisu WCF, czy wersja .Net nie ta, czy też nie można dodać referencji serwisowej do projektu WindowsPhone (ale można do SilverlightPhone…), a to jeszcze co innego – na każdym kroku jakiś mały problemik, którego rozwiązanie przy braku doświadczenia z Azure i wszystkich tych nowości* zajmowało dużo czasu – znajdź podobny przypadek w sieci, przeczytaj o nim, spróbuj tak samo, sprawdź czy działa, zmodyfikuj rozwiązanie i tak w kółko…
Do tego ciągłe zawieszanie się VS przy próbie zamknięcia emulatora telefonu 🙂 Jest zabawa, nie powiem 🙂
Nie ma jednak co wylewać żalów – praca ta na pewno nie poszła na marne. Podejrzewam, że w przyszłości będę miał jeszcze szansę pracować z Azure bardziej komercyjnie i wtedy takie doświadczenia będą na wagę złota (czy innego środka płatniczego 🙂 ).
Dobrze, podsumowując – na razie w solucji mam prosty projekt backendowy, jeden projekt z serwisem WCF, projekt do hostowania usług na Azure oraz dwa projekty Windows Phone – jeden Pivot i jeden Silverlight Pivot. Wszystko to w środku to jeden wielki bałagan bo nie czas ratować róż, gdy płoną lasy, co oznacza, że nie będę się zastanawiał nad czystym kodem, gdy nic nie działa 🙂
Ostatecznie udało mi się wyświetlić na emulatorze telefonu trening pobrany z serwisu WCF (przy okazji – na obrazku poniżej fajnie widać problem z „implicitly captured closure” – może opowiem o nim niedługo).
Zamiast Androida skupiłem się na Windows Phone z dwóch powodów – jeden to kolejne uproszczenie celów, a drugi to wiadomość o darmowym Xamarinie – być może aplikacja na Androida będzie prostym portem tego co zrobię na WinRT.
Dobra, to tyle na razie – z tego co widzę, dużo lepiej jak dotąd idzie mi proste pisanie, niż zajmowanie się projektem. Oby chociaż jedno z tych dwóch zadań przetrwało próbę czasu 🙂
*ustalmy na zawsze – dla mnie nowe jest wszystko poza typowym backendem 🙂