Development z Zapomnianej Strony

..:: Paweł Hofman .NET Portal ::..

Kolejna wersja już jest – najnowsza biblioteka CodeTitans v1.7!

Zmiany, zmiany, zmiany:

  • dodano wsparcie dla Silverlight 4.0+
  • dodano wsparcie dla modyfikowalnego JSONa, czyli odtąd można tworzyć całe drzewo JSON w locie i serializować do tekstu poprzez pojedyncze wywołanie ToString() (poprzez interfejs IJSonMutableObject)
  • dodano opcję klonowania istniejącego drzewa JSON jako modyfikowalne (IJSonMutableObject)
  • usprawniono możliwości filtrowania logów debugowych

Zachęcam do pobrania tutaj.



Testowanie - niestety temat zapomniany i zupełnie zignorowany przez twórców Windows Phone 7. Jakoś w głowie mi się nie mieści, że premiera telefonu odbyła się trzy miesiące temu, po raz pierwszy telefon pokazano światu w marcu 2010 i do dzisiejszego dnia nie doczekał się od oficjalnego frameworka testowego zintegrowanego z Visual Studio. Aż jestem ciekaw, jakim cudem tak dobrze go przetestowali i czy w ogóle zamierzają coś w tę stronę ruszyć. Bo widzę, nawet po kursie na virtualstudy.pl, że dużo ludzi interesuje się dużo bardziej cyklem życia aplikacji, niż prowadzeniem dobrego projektu na tej platformie (nie obrażając nikogo oczywiście).

Na samym początku wyjaśnię zatem, że oczywiście chodzi nam o pisanie testów, do których już przywykliśmy – czy to używając MS Unit Testing Framework, czy NUnit, używając atrybuty, które znamy i które nie sprawiają nam kłopotu oraz całego tego podejścia.

Tak, czy inaczej, błądząc po Internecie i marnując kolejne godziny możemy znaleźć garść przydatnych materiałów, które pozwolą uzbroić nas w środowisko do zabawy. Podejrzewam, że większość nie ma za dużo czasu, zatem przejdźmy od razu do meritum. Polecam zatem przestudiowanie przynajmniej:

  • Wystąpienia Jeffa Wilcoxa na MIX2010 o testowaniu Silverlight3 i Silverlight4. Co ciekawe, jest on członkiem zespołu Silverlight (tworzącego między innymi Silverlight Toolkit) i pokazuje on tam między innymi swój autorski projekt. Doprawdy, podziwiam takich ludzi. Ale ciągle daje mi do myślenia, dlaczego Microsoft nie wspiera tego aktywniej (albo samemu?).
  • Najnowszą wersję bibliotek, które trzeba dołączyć do projektu automatycznego testowania (o czym za chwilkę) znajdziemy na jego blogu. Dla potomności skopiowałem to również tutaj. Niestety jest to wersja z maja 2010, a mamy ostatni dzień grudnia i choć dzisiaj działa, to ciekawe jak będzie w niedalekiej przyszłości. Kontaktowałem się z Jeffem i obiecał rzucić okiem (popatrzeć na problemy, które mu zgłosiłem) i wypuścić nową wersję niedługo. Wszyscy jednak wiemy, jak to jest z wolnym czasem… no jest wolny ;)

Na koniec zostawiłem sobie zbudowanie aplikacji testowej. Oryginalny post, na którym bazuję znaleźć można tutaj. Jednak jak dla mnie jest on nieco przekombinowany. W skrócie mówi on o tym, że:

  1. Trzeba już mieć zainstalowane narzędzia do pracy z Windows Phone 7.
  2. Utworzyć najzwyklejszy projekt Silverlight3 dla Windows Phone 7.
  3. Dodać referencje do bibliotek Jeffa.
  4. Usunąć wszystkie strony aplikacji, gdyż to framework będzie je tworzył sam (za chwilkę).
  5. Zmodyfikować konstruktor aplikacji App() tak, aby oprócz monitorowania wyjątków, ustawiał odpowiednio widok (wszystko inne należy skasować z konstruktora):
    this.RootVisual = UnitTestSystem.CreateTestPage();
  6. I najważniejsze – CreateTestPage(), posiada też wersję, która przyjmuje dodatkowe opcje konfiguracji (UnitTestSettings). Wśród nich jest między innymi lista assembly, które mają być przeszukiwane w celu lokalizacji testów. Dodajemy do niej oczywiście wszystkie, które nas interesują. Po co? No ja osobiście wolę oddzielić same testy, od aplikacji, która je odpala. Mimo wszystko testy można użyć jeszcze gdzieś indziej, a tej aplikacji to już nie zawsze.

Wesołego TDD!



Windows Phone 7 trafił już pod strzechy i mam możliwość przyjrzeć mu się z bliska. Wśród wielu dość szybko rzucających się braków, poniżej opisuję to, co powoduje, iż szkoda marnować czas na niego i lepiej jeszcze poczekać (rok, dwa?), a może go jednak dopracują. Jeśli planujesz zatem zakup, wstrzymaj się choć na sekundkę i przeczytaj czy warto utopić 2500PLN i później żałować…

Co nie wyszło:

  1. WiFi – aby móc korzystać z dobrodziejstw Internetu w domu lub pracy, SSID (nazwa sieci) musi być rozgłaszana. Czyli z wszystkimi tzw. ukrytymi sieciami WiFi ten telefon po prostu nie będzie działał, bo ich nie znajdzie. Oficjalne wytłumaczenie – ‘ukrywanie SSID nie jest sposobem na zabezpieczanie sieci’. Powodzenia zatem!
  2. Lista kontaktów (pobierana z konta LiveID lub Google) będzie zawsze sortowana najpierw po imionach, a dopiero później po nazwisku. Nie można tego zmienić.
  3. Używanie LiveID, które zarejestrowaliśmy z lokalizacją “Polska”, spowoduje, że nic nie pobierzemy (nawet darmowych aplikacji) ze sklepu Microsoftu. Czyli żadnego programu prócz preinstalowanego nie użyjemy. To samo dzieje się przy próbie dostępu do XBox Live – czyli gier. Chociaż ten dostęp został w końcu uruchomiony oficjalnie w Polsce (z wielką pompą 10-tego października 2010 roku - po 3-ch latach od początku sprzedaży konsol XBox w naszym kraju, brawo za refleks), to nasze LiveID nie pozwala na pobieranie równie gier.

    Mała dygresja – tu jestem wyjątkowo cięty na tę usługę, bo znowu czuję się nabijany w butelkę. Kupując legalnie grę Warhammer 40k II, która na moje nieszczęście jest zintegrowana z XBox Live (znanym też jako Games for Windows), po prostu coś mnie trafia, jak chcą jeszcze ode mnie dodatkową opłatę za zmianę ksywki, pod którą jestem widziany w Internecie. Domyślna nazwa jest oczywiście koszmarna. A dobija mnie fakt, że rejestrując się z innego kraju, mogłem chociaż raz ją zmienić. Pytam się tylko – co to za model biznesowy? Bo ja po prostu wiem, że żadnej kolejnej gry z czymś takim po prostu nie kupię!
    • obejść ten problem można prosto poprzez utworzenie LiveID w innym kraju (np. Niemcy, Anglia, Irlandia – tu uwaga, sklep nie działa w całej Europie Zachodniej, także nie tylko my jesteśmy namaszczeni tym razem) i wpisać go jako pierwszy po ‘resecie’ telefonu
    • jako kolejne LiveID można dograć pozostałe, gdzie mamy kalendarz i kontakty i jakoś nawet to zrozumie i będzie je synchronizował
    • bez tych sztuczek, mamy dość drogi zwykły aparat telefoniczny z kilkoma mankamentami, o których poniżej.
    • Otwartym pozostaje tu pytanie – czy gdzieś przypadkiem nie łamie to jakichś postanowień licencji.
  4. Pobierany jest tylko pierwszy kalendarz z konta LiveID. Biada wszystkim tym, którzy mają ich kilka.
  5. Nie można obierać ani wysyłać MMSów.
  6. Co dwa dni wypada zresetować telefon (trzymając przycisk wygaszania ekranu oraz znak Windows przez 5-10sek), gdyż zdarza się, że nie słyszy nas druga strona podczas dzwonienia, choć z naszej perspektywy wszystko wygląda dobrze. No niby najlepiej przetestowany telefon.
  7. Telefon nie pojawia się jako zwykły “pendrive” przy podłączeniu do komputera, zatem nic samemu nie możemy na niego wgrać. Jest to o tyle kłopotliwe, iż aby obejrzeć pliki PDF na telefonie, musimy je wcześniej pobrać przez WWW albo wysłać do siebie maila (oczywiście aby mieć Adobe Readera niezbędne jest wykonanie kroków opisanych w pkt 3). No chyba ktoś tu za długo na słońcu leżał.
  8. Jedyny prawomocny dostęp do telefonu można uzyskać instalując aplikację Zune, która jest światu równie potrzebna jak iTunes.
  9. Zune, ani telefon nie potrafi synchronizować haseł do sieci WiFi, ani aktualizacji programów, a tym bardziej pobranych programów. Czyli jeśli coś pobraliśmy/kupiliśmy w Internecie i ‘zresetowaliśmy’ urządzenie, co się może zdarzyć, powrót do stanu używalności będzie wymagał dobrej pamięci użytkownika. Ciekawe, co wymyślą, jak wyjdą nowe modele i użytkownicy, będą chcieli się przesiąść ze starych. Może również dodatkowy abonament?
  10. Oczywiście nie obsługuje polskich ogonków, polskich ustawień regionalnych itp, chociaż sprzedają go w Polsce, z polską instrukcją obsługi.
  11. Nazwę telefonu można zmienić tylko w Zune.
  12. Wersja “na Polskę” ma tylko 8GB wewnętrznej pamięci, której nie można rozszerzać. Brakuje też gniazda na kartę pamięci, a (jakimś cudem) wyciągnięcie oryginalnej pamięci powoduje, że albo telefon nie wstanie, albo że nowa karta zostanie zaszyfrowana i dalej będzie bezużyteczna, przy próbie dostępu do niej z komputera lub innego urządzenia. Aha, wersja na Wielką Brytanię ma 16GB. Dziwne?
  13. Jeśli planujesz robić na niego gry/programy, wiedź, że:
    • musisz zapłacić $99 rocznie za ten przywilej (OK – Apple też tak ma)
    • 1/3 z twojej sprzedaży bierze Microsoft (OK – Apple też tak ma)
    • możesz mieć max do 3 telefonów (NIE OK - Apple pozwala do 100) – a szkoda, bo jeśli się weźmie pod uwagę prawdziwy ‘firmowy’ development, to trochę mało (zważywszy na chęć testowania dostępnych rozdzielczości na różnych modelach telefonów, które się niebawem pojawią i kilku wersji systemu operacyjnego)
    • istnieją darmowe narzędzia – tj. Visual Studio 2010 Express i inne z Windows Phone w tytule (Apple też tak ma, choć narzędzia te oferują nieco więcej możliwości).
  14. Nie poradził sobie z bezpiecznym dostępem do niektórych moich skrzynek pocztowych. Jeśli certyfikat nie był zaufany, to po prostu się nie połączymy.
  15. Plusem jest to, że ma wbudowanego Office w wersji mobilnej.
  16. Niby obsługuje MP4 i WMV, ale i tak większość z nich Zune musi ‘skonwertować’, co trawa dość długo w zależności od wydajności komputera, wielkości filmu itp.

Opisywana przeze mnie wersja system to: Windows Phone 7.0.7004.0 dla HTC HD7 (T9292).

Oczywiście lista ta jest wynikiem moich prywatnych obserwacji. Jeśli się gdzieś pomyliłem lub ktoś zna rozwiązanie, które przeoczyłem to czekam na kontakt i z pewnością poprawię.

Reasumując, jeśli miałeś/miałaś jakieś wątpliwości. To radzę się wstrzymać. Stare porzekadło, poczekajmy z produktami Microsoft przynajmniej do ServicePack 1 jest dalej na szali. Szkoda tylko, że w swojej zadumie i ślepej pogoni za iPhonem, iPodem i iPadem, Microsoft wybrał najgorsze rozwiązania dla użytkownika i potencjalnego developera i liczy, że wyciśnie tyle samo kasy co konkurent.

AKTUALIZACJA 2010-12-28:

A dobiło mnie to, że pasuję profilem w target ludzi, dla których projektowany był ten telefon. I ja (chyba jako jedyny na ten planecie albo komuś na złość), nie zapamiętuję ulubionych stacji radiowych po ich częstotliwościach. No na litość boską, jak przeglądam listę ulubionych, to mnie trafia. Bo albo pozwólmy użytkownikowi zmienić ich nazwę na liście, albo użyjmy RDS do nadania poprawnej. Niby mamy bleeding-edge telefon, ale znam takie stare modele innej firmy sprzed paru lat, który to umieją (i są do dostania za 1PLN)…



Autor

Paweł Hofman [CodeTitans]

ASP.NET
C/C++, C#, Objective-C
SQL

License and Disclaimer

Moje Gry i Aplikacje

Zobacz mnie na GoldenLine

Zobacz mnie na LinkedIn
Supported by Polish SQL Server User Group (PLSSUG)

Supported by WrocNet.org

Zine.net.pl

Wpisy

Projekty

Moje projekty open-source:

Sign in