Archive for February, 2011

Windows Phone 7 – więcej darmowych aplikacji!

Do tej pory rejestrując się na marketplace była możliwość opublikowania 5 darmowych aplikacji. W dzisiejszym newsletterze ukazała się informacja, że liczba ta zostaje zwiększona z 5 do 100!
Warto tu jednak zaznaczyć jedną rzecz, a mianowicie opublikowanie aplikacji oznacza wysłanie pliku XAP, a nie jakby można było się spodziewać publikację pojedynczej aplikacji. Oznacza to tyle, że wszelkie updaty, ponowne wysyłanie po wykrytych błędach itp jest liczone jako -1 z darmowej puli. Ma to swoje uzasadnienie. “Publikacja” jest tu rozumiana jako, tak jak wspomniałem, wrzucenie do machiny weryfikacyjnej pliku XAP, co wiąże się z kosztami (po wyczerpaniu darmowego limitu opłata wynosi 20$). Nie mniej jednak zwiększenie tego limitu ułatwi zapoznanie się z marketplace oraz nie zrazi osób, które dopiero zaczynają przygodę z tą technologią.


Pytanie – rozwiązanie [1] WPF – okno bez obramowania

Postanowiłem zacząć umieszczać na blogu krótkie posty na zasadzie pytania i rozwiązania, które napotykałem podczas pisania różnych projektów.

Na początek coś prostego, ale umknęło mi to z pamięci i musiałem przeszukać właściwości okna, bo coś kojarzyłem, ale nie pamiętałem nazwy :) Odpowiedź na pytanie “Jak usunąć obramowanie okna w WPF?”  jest następująca:

We właściwościach okna ustaw WindowState=None

Dlaczego takie coś robić? Przykładem może być aplikacja, która ma wyglądać inaczej niż standardowe okienko. Zamiast tła ma ustawiony obrazek z przezroczystością. Można dzięki temu uzyskać bardzo ciekawy design, jednakże bez ustawienia WindowState=None cały efekt będzie zepsuty przez domyślny pasek okna i jego obramowanie.


Windows Phone 7 na Channel 9 i codeguru.pl – Data binding i MVVM

Dziś ukazał się trzeci już artykuł na codeguru.pl z cyklu WP7 dla programistów. Dzisiejszy odcinek poświęcony jest bindowaniu danych oraz wzorcowi MVVM. Podobnie jak poprzednio artykuł ten nawiązuje do równoległej serii webcastów dostępnej na Channel 9 w języku polskim. Autorem trzeciego odcinka jest Michał Korzunowicz.

Projekt do pobrania



Odcinek 3


MVC3 na TGD.NET

Toruńska Grupa Deweloperów .NET ma przyjemność zaprosić na 26 spotkanie, na którym Ireneusz Koszek poprowadzi prezentację pt.: “Umarł król (MVC2) niech żyje król (MVC3)”.

O czym będzie:

Podczas prezentacji poruszone będą tematy nowości jakie niesie ze sobą najnowsze wcielenie ASP.NET MVC.

Agenda:

  1. krótki wstęp do MVC
  2. razor view engine – nowy view engine by microsoft
  3. lepsze wsparcie dla javascript – remote validation, unobtrusive java script, wbudowane wsparcie dla JSON’a
  4. partial page caching
  5. nowy zestaw helperów (facebook, bing, google analytics, Chart(), WebGrid(), Crypto(), WebMail(), itd)
  6. nowe atrybuty
  7. sessionless controllers
  8. global filters
  9. dynamic ViewModel
  10. nowe ActionResult (HttpNotFoundResult, PermanentRedirectResult, HttpStatusCodeResult)
  11. nowe możliwości automatycznej walidacji modelu
  12. NuGet package manager – package manager dla ASP.NET
  13. lepsza integracja z IoC containers, extensibility points

O prelegencie:

Ireneusz Koszek – Programista od 14 lat (z zamiłowania). Większość tego czasu spędził tworząc duże systemu biznesowe (ERP). Zjadł zęby na MSSQL Server (od wersji 7). Od około 4 lat działający na własne konto jako freelancer. Interesuje się wszystkim co związane jest z programowaniem, oraz wpływem nowoczesnej techniki na codzienne życie. Lubi dzielić się zdobytą wiedzą (od czasu do czasu prowadzi autorskie szkolenia z MSSQL Servera), i myśli o zostaniu MCT. Zadaje dużo pytań (bo lubi wszystko wiedzieć, i nie lubi tracić czasu).

Gdzie i kiedy:

Spotkanie odbędzie się 22 lutego od godziny 17:00 w SALI S3 na Wydziale Matematyki i Informatyki UMK (ul. Chopina 12/18) . Wstęp na wykład jest wolny. Rejestracja na spotkanie jest obowiązkowa.

(Link dla osób korzystających z Codeguru: Rejestracja na spotkanie)

Zespół TGD.NET


Windows Phone Capability Detection Tool inaczej – UI

Capabilities – na początek trochę teorii

Przy tworzeniu aplikacji na Windows Phone w naszym projekcie dodawany jest zawsze plik WMAppManifest.xml, który znajduje się w katalogu Properties. Istotną jego częścią jest informacja na temat tak zwanych capabilities, czyli elementów platformy, z których nasza aplikacja będzie korzystać. Domyślnie zawarte tam są wszystkie możliwe wpisy widoczne na listingu 1. Należą do nich między innymi korzystanie z połączenia sieciowego, mikrofonu, akcelerometru, notyfikacji itp.

Listing 1. Capabilities

1
2
3
4
5
6
7
8
9
10
11
12
13
<Capabilities>
	<Capability Name="ID_CAP_GAMERSERVICES"/>
	<Capability Name="ID_CAP_IDENTITY_DEVICE"/>
	<Capability Name="ID_CAP_IDENTITY_USER"/>
	<Capability Name="ID_CAP_LOCATION"/>
	<Capability Name="ID_CAP_MEDIALIB"/>
	<Capability Name="ID_CAP_MICROPHONE"/>
	<Capability Name="ID_CAP_NETWORKING"/>
	<Capability Name="ID_CAP_PHONEDIALER"/>
	<Capability Name="ID_CAP_PUSH_NOTIFICATION"/>
	<Capability Name="ID_CAP_SENSORS"/>
	<Capability Name="ID_CAP_WEBBROWSERCOMPONENT"/>
</Capabilities>

Informacje te są o tyle istotne, że informują system po jakie uprawnienia będzie sięgać nasza aplikacja. W przypadku próby odwołania się do funkcjonalności, która nie jest uwzględniona w sekcji capabilities wówczas zostanie zgłoszony błąd bezpieczeństwa, a nasza aplikacja zostanie zatrzymana.

Capabilities też są wykorzystywane podczas procesu dodawania aplikacji do marketplace. W tym momencie proces ten analizuje paczkę z naszą aplikacją pod i następnie ustala ich listę usuwając zbędne elementy. Po co w takim razie jest ta informacja w WMAppManifest, skoro możnaby wychodzić z założenia – używam wszystkiego, a wy znajdździe to, czego jednak nie potrzebuję. Jeżeli weźmiemy pod uwagę, że proces weryfikacji może się w przyszłości zmienić i nie pomagać użytkownikowi w określaniu właściwych wartości, to ocena przydatności WMAppManifest ulega zmianie :) Jeżeli okaże się, że automatyczne usuwanie niepotrzebnych wpisów zosgtanie zarzucone, to te śmieci mogą mieć duży wpływ na postrzeganie naszej aplikacji. Wyobraźmy sobie prosty przykład: tworzymy prosty stoper i umieszczamy go na marketplace bez czyszczenia manifestu. W momencie gdy użytkownik znajduje naszą aplikację i zobaczy, że korzysta ona z sensorów, GPS, notyfikacji, sieci, mikrofonu itp, to podejrzewam, że zastanowi się zanim ją zainstaluje.

Koniec commandline – czyli Windows Phone Capability Detection Tool UI

Na szczęście do analizy naszej aplikacji pod kątem capabilities istnieje narzędzie dostarczane z Windows Phone Developer Tools o nazwie Windows Phone Capability Detection Tool. Jest to narzędzie dostępne z linii komend, które można znaleźć w katalogu %ProgramFiles%\Microsoft SDKs\Windows Phone\v7.0\Tools\CapDetect.

Składnia jest bardzo prosta. Wywołujemy komendę CapabilityDetection.exe podajemy plik z regułami (Rules.xml) a następnie w apostrofach ścieżkę do naszej aplikacji. Może to być ścieżka do pliku XAP, lub po prostu do katalogu, który ją zawiera. W rezultacie otrzymujemy listę używanych elementów, które powinny się znaleźć w manifeście naszej aplikacji. Przykład wykorzystania widać na rysunku 1.

Windows Phone Capability Detection Tool

Rysunek 1. Użycie CapabilityDetection.exe

Jak każde narzędzie dostępne z poziomu command line jest ono mało wygodne. W związku z tym przygotowałem nakładkę graficzną o nazwie WindowsPhoneCapabilityDetectionTool UI, która znacznie (przynajmniej w mojej ocenie) ułatwia korzystanie z tego narzędzia. Ekran aplikacji widoczny jest na rysunku 2.

Windows Phone Capability Detection Tool UI

Rysunek 2. Okno Windows Phone Capability Detection Tool UI

Jego działanie sprowadza się do wykonania czterech kroków:

  1. Wybieramy folder skompilowanej aplikacji
  2. Procesujemy aplikację
  3. Kopiujemy kod
  4. Podmieniamy sekcję capabilities

W razie problemów korzystając z lupy możemy otworzyć okno pomocy w którym opisane są wszystkie elementy niezbędne do wygodnego korzystania z tego narzędzia.

Windows Phone Capability Detection Tool UI Help

Rysunek 3. Okno pomocy Windows Phone Capability Detection Tool UI

Ważna informacja

Z racji na konieczność dodania pliku app.manifest, w którym jest wpis o dziedziczeniu uprawnień od aktualnego użytkownika (requestedExecutionLevel level=”asInvoker”) może zostać zgłoszona informacja o niebezpieczeństwie (Comodo tak robi). Nie ma się jednak czego bać :) – w razie potrzeby mogę udostępnić też źródła.

Do pobrania

binaria


Windows Phone 7 na Channel 9 i codeguru.pl – Kontrolki i style

Dziś na codeguru.pl ukazał się mój drugi artykuł na temat Windows Phone 7 – tym razem podejmuję temat kontrolek i styli. Artykuł ten nawiązuje do webcastu o tym samym tytule, który przygotował Michał Korzunowicz. Znajdziecie go tutaj.

Materiały do artykułu

Panorama w akcji - artykuł na Codeguru.pl

Odcinek 2


Niespodzianka od Codeguru.pl

Wczoraj otrzymałem przesyłkę od redakcji Codeguru.pl. Z racji na moją aktywność na portalu zostałem wyróżniony na podsumowaniu roku 2010, co jest o tyle istotne, że motywuje do dalszej pracy i aktywności na tym właśnie portalu. Główną zasługą w moim mniemaniu jest rozkręcenie działu z artykułami. Od pewnego czasu sekcja ta przeżywała stagnację. Po tym jak rozpocząłem cykl poświęcony Windows Communication Foundation dało się zaobserwować wzrost zainteresowania nie tylko czytanie artykułów, ale również ich pisaniem. Trend ten obserwujemy również i w tym roku – mam nadzieję, że się utrzyma i że będę mógł mieć w tym swój udział (pierwszą cegiełkę już dołożyłem w postaci artykułu o Windows Phone 7).

Niespodzianka 

Przesyłka zawierała dwie rzeczy. Pierwsza z nich to upominek widoczny na zdjęciu. Od razu przypadł mi do gustu – idealnie pasuje mi do wieży – mały, zgrabny i subtelny czytnik + karta  w firmowym opakowaniu portalu. Nie ukrywam, że jestem (jak pewnie większość z nas) ogromnym gadżeciarzem, a już szczególnie lubię te, które są praktyczne. Zawartość pudełka taka właśnie jest, co tym bardziej mnie cieszy :)

Drugim elementem był list z podziękowaniem. Oprócz standardowej treści zawierał on podpis Mariusza Kędziory, ale był to podpis własnoręczny (podziwiam wytrwałość!). Spodziewałem się standardowego nadruku zeskanowanego pierwowzoru, a tu widać solidną firmę :)

Plany na przyszłość

To co planuję na ten rok po części zawarłem w podsumowaniu roku 2010. Dodam jeszcze to, że oprócz pisania artykułów (w tym roku zapowiada się ich conajmniej kilka) planuję również zwiększyć aktywność na forum, czego efekty mam nadzieję już widać :) Jednocześnie chciałem podziękować wszystkim czytelnikom moich artykułów a także forumowiczom, którzy doceniają moją pomoc klikając “Pomógł mi” oraz oznaczając wątki jako rozwiązane.


Kto mówi “Lubię to”

Popularność portali społecznościwych zapewne przerosła najśmielsze oczekiwania ich tworców. Od jakiegoś czasu obserwujemy w Polsce ogromny wzrost popularności Facebooka, który intensywnie odbiera “rynek” odchodzącej powoli w niepamięć (przynajmniej moją) Naszej-Klasie. Dla osób, które prowadzą blogi jest to bardzo dobre miejsce do umieszczania informacji o nowych blogach. Chcąc dotrzeć do coraz to większej ilości czytelników należy szukać wielu różnych kanałów dystrybucji. Agregatory blogów takie jak .NET Blogs PL lub Dotnetomaniak, czy też ciekawa inicjatywa, którą zaproponował Fones, a mianowicie wyszukiwarka szukajo.net, to świetne miejsce, aby poszerzyć grono odbiorców.

Facebook jako platforma daje też ciekawe możliwości. Należy do nich między innymi znany wszystkim przycisk “Lubię to”. Wiele osób oprócz tego, że go znają, to również umieszczają go na swoich stronach. Ciekawe jednak ile osób zdaje sobie sprawę z tego, że facebook oferuje do tego przycisku również statystyki.

Zacznijmy jednak od początku, czyli od założenia aplikacji na facebook. W tym celu udajemy się na stronę http://www.facebook.com/developers/ na której podajemy swoją domenę i rejestrujemy nową aplikację. W zamian otrzymujemy szereg informacji, z których bardzo ważną jest “Identyfikator aplikacji”.  Posłuży nam on jako parametr do skryptu i metadanych. Teraz przystępujemy do modyfikacji strony:

1. Do znacznika html dodajemy

1
xmlns:fb="<a href="http://www.facebook.com/2008/fbml">http://www.facebook.com/2008/fbml</a>"

2. W sekcji head dodajemy

1
<meta name="fb:app_id" content="id_aplikacji"/>

3. W kodzie strony dodajemy fragment odpowiedzialny za załadowanie skryptów facebooka

1
2
3
4
5
6
7
8
9
10
11
12
13
<div id="fb-root"></div>
<script>
    window.fbAsyncInit = function() {
        FB.init({ appId: '127737573958912', status: true, cookie: true,
            xfbml: true
        });
    };
    (function() {
        var e = document.createElement('script'); e.async = true;
        e.src = document.location.protocol + '//connect.facebook.net/pl_PL/all.js';
        document.getElementById('fb-root').appendChild(e);
    } ());
</script>

4. Teraz w dowolnym miejscu umieszczamy nasz przycisk.

1
<fb:like href="adres" layout="button_count" width="40" show_faces="false" ></fb:like>

W związku z faktem, że korzystam z platformy WordPress zamiast adresu wystarczy, że wpiszę

1
<?php the_permalink() ?>

Możemy również odpowiednio modyfikować parametry przycisku – szczegóły znajdują sie na stronie naszej aplikacji, gdzie również jest dostępny kod odpowiednich elementów strony.

Bliższe spojrzenie
Wypadałoby jednak dowiedzieć się kto i kiedy “lubi” lub udostępnia na swojej tablicy adres do naszej strony. W tym celu wystarczy udać się na http://www.facebook.com/insights, gdzie mamy dostęp do tych informacji. Do dyspozycji mamy wykresy ilościowe jak i “jakościowe” jeżeli tam można to nazwać. Chodzi tu o profil naszych czytelników. Informacje te nie są bardzo szczegółowe, jednakże dają pewien pogląd i orientację :) Daje to mam dodatkowe źródło wiedzy na temat naszych czytelników i ich preferencji, co moim zdaniem jest bardzo przydante gdy chcemy dotrzeć do coraz to większej ilości czytelników.


3. 2. 1. Start. Windows Phone 7 na Channel 9 i codeguru.pl

Od dziś rozpoczynają się dwa równoległe cykle poświęcone programowaniu w technologii mobilnej Windows Phone 7. Pierwszy z nich będzie dostępny na portalu Channel9. Autorami webcastów są Barłomiej Zass, Michał Korzunowicz, Daniel Plawgo oraz ja :) Pierwszy odcinek, którego jestem autorem dostępny jest pod tym adresem. Jest on poświęcony ogólnemu wprowadzeniu w tematykę Windows Phone 7 jako platformy dla programistów, opowiadam o narzędziach. Pokazuję rowniez jak stworzyć swoją pierwszą aplikację na tą platformę korzystając z Silverlight oraz XNA.

Jednocześnie z webcastami na Channel 9 będą ukazywały się artykułu na portalu codeguru.pl. Będą one w ścisły sposób nawiązywać do tematyki poszczególnych webcastów. Powiązanie to będzie tym silniej widoczne, że na końcu każdego artykułu bedzie dostępny link do odpowiedniego nagrania na Channel9. Pierwszy artykuł możecie znaleźć tutaj.

Materiały do pierwszego odcinka

Mamy nadzieję, że dzięki takiemu podejściu i dywersyfikacji każdy znajdzie coś dla siebie. Oczywiście dla lepszego poznania tematu polecam zapoznanie się zarówno z webcastem jak i z artykułem :) Kolejne odcinki serii będą ukazywały się co tydzień zarówno na CG jak i CH9 (a stosowny news będzie zawsze dostępny również tutaj).
artykuł

Odcinek 1


Kolejna książka o WP7 – tym razem w kontekście Silverlight

Puya Paymudya z Indonezyjskiego Centrum Innowacji Microsoft udostępnił książkę o Windows Phone 7 za darmo. Można ją pobrać ze stron Microsoft Feed. Jest to kolejna książka o Windows Phone 7 udostępniona w formie bezpłatnego ebooka. Jak widać firma Microsoft stara się dotrzeć do jak największego grona deweloperów, dzięki czemu możemy się spodziewać dynamicznego rozwoju Marketplace dla WP7. Oby tak dalej, bo więcej aplikacji zrobionych w “dobry” sposób to korzyść nie tylko dla Microsoft, ale przede wszystkim dla użytkowników urządzeń z najnowszym systemem mobilnym MS.


  • O mnie

    Maciej Grabek

    Moje profile na:

    MVP

    Codeguru.pl GoldenLine
    Twitter CodeProject

  • english version
  • Polecam

  • Copyright © Maciej Grabek. All rights reserved.
    Powered by WordPress
    %d bloggers like this: