Author Archive

Mango oficjalnie wystartowało

Dwa dni temu na stronach Windows Phone Blog ukazała się informacja, że Microsoft oficjalnie rozpoczął przekazywanie finalnej wersji WP7 Mango do operatorów w celu rozpowszechnienia aktualizacji wśród użytkowników WP7. Istnieje możliwość sprawdzenia na jakim etapie jest przekazywanie nowej wersji systemu do poszczególnych operatorów. Wystarczy wejśc na tą stronę. Co ciekawe nie ma na niej Polski (przynajmniej narazie), zatem być może na oficjalny release w naszym kraju będziemy musieli jeszcze trochę poczekać… Na podstawie wersji beta2 zainstalowanej na moim telefonie mogę stwierdzić jedno… WARTO 😀

Jeżeli ktoś już posiada wersję preview zainstalowaną na swoim telefonie, to będzie musiał przywrócić telefon z backupu, który był częścią aktualizacji do wersji deweloperskiej, a później przejść przez standardowy proces aktualizacji ze standardowym Zune w najnowszej wersji. Jeżeli finalna wersja systemu będzie działać tak szybko jak beta2, to system będzie bardzo obiecujący. Nowe API, zmiany na Marketplace i rozszerzenie rynków (między innymi na Polskę) to spory krok.

Spory krok, ale jeszcze jest trochę do zrobienia, chociaż głównie są to regulacje prawne. Polscy deweloperzy, którzy chcą zarabiać na aplikacjach dla WP7 muszą jednak poczekać jeszcze trochę na uproszczenie procedur rejestracyjnych związanych z podatkami, lub przejść aktualny proces wymagający ubiegania się o amerykański identyfikator podatkowy :)


Gdy MS SQL Server Management Studio to za mało

Czasem okazuje się, że MS SQL Server Management Studio to za mało. Dobrym przykładem może tu być korzystanie z dużych plików ze skryptami SQL. Przeważnie pliki te są wynikiem automatycznego generowania danych inicjujących bazę lub tabelę (oczywiście nie tylko :) ). Z pomocą przychodzi polecenie dostępne z linii komend o nazwie sqlcmd.

Najczęściej wykorzystywana składnia tego polecenia (przynajmniej w moim przypadku :) ) wygląda nastepująco:

1
sqlcmd -S serverName -E -d databaseName -i scriptFilePath

W tym przypadku korzystamy ze zintegrowanego uwierzytelniania (przełącznik E), jednakże równie dobrze możemy użyć loginu (przełącznik U) i hasła (przełącznik P). Nie sposób opisać tu wszystkich możliwych opcji, tym bardziej, że są one dobrze zaprezentowanie na stronach MSDN.

Poprzednikiem sqlcmd jest polecenie osql (jego opis również jest dostępny na stronach MSDN). Dla osób zainteresowanych różnicami odsyłam na wspomniane wyżej strony MSDN oraz na blog SQL Authority (http://blog.sqlauthority.com/2009/01/05/sql-server-sqlcmd-vs-osql-basic-comparison/).

Warto pamiętać o konsoli, szczególnie gdy pod ręką nie ma Management Studio, lub po prostu nie daje ono sobie rady (a niedociągnięć w nim jest nieco więcej niż wspomniana obsługa dużych plików :) ).


SketchFlow Template dla Windows Phone

Szybkie prototypowanie jest bardzo istotne w całym procesie wytwarzania oprogramowania. Nawet gdy przygotowujemy jakąś aplikację tylko dla siebie, wówczas może się też okazać, że pierwsza wizja nie spełnia naszych oczekiwań. W takiej sytuacji prototyp stworzony w krótkim czasie pozwala na weryfikację wstępnych założeń i pomysłów.

Okazuje się, że w kontekście programowania na platformę Windows Phone również mamy dostęp do odpowiednich narzędzi, które pozwalają na prototypowanie. Wraz z SDK dla Windows Phone instalowany jest również Expression Blend. Pozwala on wygodnie stylować tworzone przez nas aplikacje, lecz okazuje się, że nie tylko! Na codeplex pod adresem http://wp7sketchflow.codeplex.com/ dostępny jest szablon dla Expression Blend, który pozwala na tworzenie prototypów aplikacji. Co więcej taki prototyp możemy później uruchomić i przetestować w formie aplikacji Siverlight działającej w przeglądarce. To nie wszystko! Gotowy projekt możemy też udostepnić do wglądu dla innych osób. Poniżej na zachętę przykładowe screeny:


Marketplace gotów na Mango!

Wczoraj na blogu Windows Phone Developer Blog pojawiła się informacja o gotowości mechanizmów dostępnych w ramach Marketplace do publikowania aplikacji stworzonych na nową platformę (czyli Mango). Oznacza to tyle, że deweloperzy, którzy pobrali wcześniej Windows Phone 7.1 SDK w wersji RC oraz stworzyli przy jego pomocy jakieś aplikacje, już teraz będą mogli je publikować.

Oczywiście po aktualizacji systemu do wersji 7.1 wszystkie zainstalowane do tej pory aplikacje będa nadal działać, natomiast wcześniejsze udostępnienie możliwości publikowania aplikacji przygotowanych na nową wersję platformy ma na celu jak najszybsze dostarczenie użytkownikom aplikacji o nowych możliwościach. Jak wiadomo im więcej nowych i lepszych aplikacji będzie dostępnych tuż po update oprogramowania tym lepiej dla użytkowników (i tym lepiej będą się sprzedawać nowe “Mango Ready” telefony 😉 ).

Na marginesie dobra wiadomość dla oczekujących na update – jeżeli do tej pory aplikacje działały szybko, to po updacie będą działać jeszcze szybciej (nawet ok 30%). Jest to spowodowane dużymi zmianami w silniku obsługi Silverlight, w którym jest stworzona większość aplikacji na Windows Phone oraz samego systemu. Deweloperzy będą mieli zatem jeszcze dodatkową możliwość wykorzystania bonusowych 30% wydajności dla ulepszenia aplikacji 😉


Moja sesja na MTS 2011

Tydzień temu ruszyła rejestracja na największą w Polsce konferencję poświęconą technologion Microsoft, czyli Microsoft Technology Summit. Podczas tegorocznej edycji będę miał przyjemność zjawić się na niej w roli prelegenta.

O czym będę mówił? Wahałem się pomiędzy WCF, a konkretnie serwisem routującym i jego dokładnym przedstawieniu a tematom związanym z Windows Phone 7. Wybór padł na WP7. Moja sesja będzie poświęcona optymalizacji oraz analizie wydajności aplikacji stworzonych na tą platformę, a takze elementom, na które trzeba zwrócić szczególną uwagę podczas tworzenia aplikacji. W skrócie można to określić jako Optymalizacja + Tips & Tricks. Nie będzie to zatem wprowadzenie do WP7 – warto, żeby słuchacze wiedzieli już co nieco na temat platformy (w razie czego warto odwiedzić pozostałe dwie sesje poświęcone Programowaniu Windows Phone “Mango”)

Zapraszam na moją sesję w środę 19.10.2011 na godzinę 12:00 do sali C.

(wspomniane sesje wprowadzające do WP7 będą również w środę w tej samej sali o godzinie 9:00 i 10:30).

Pełna agenda konferencji jest dostępna pod adresem http://www.mtskonferencja.pl/agenda gdzie można znaleść wersję kasyczną jak i graficzną.


Windows Phone Mango Jump Start

W zeszłym roku na channel 9 pojawiła się seria webcastów poświęconych tworzeniu aplikacji na Windows Phone 7 o nazwie Windows Phone 7 Jump Start. Sesje były prowadzone przez niezawodnego Roba Milesa oraz Andiego Wigleya. Teraz wracają z kolejnym cyklem poświęconym Windows Phone Mango! Zapowiada się spora dawka wiedzy i specyficznego humoru Roba :)

Oto agenda tego dwudniowego cyklu (bez zbędnego tłumaczenia ;)):

Day One — August 23, 2011 | 8am-4pm PDT | Live online training
• Building Windows Phone Apps with Visual Studio 2010
• Silverlight on Windows Phone – Introduction
• Silverlight on Windows Phone – Advanced
• Using Expression to Build Windows Phone Interfaces
• Windows Phone Fast Application Switching
• Windows Phone Multi-tasking & Background Tasks
• Using Windows Phone Resources (Bing Maps, Camera, etc.)

Day Two — August 24, 2011 | 8am-4pm PDT | Live online training
• Application Data Storage on Windows Phone
• Using Networks with Windows Phone
• Windows Azure and Windows Phone
• Notifications on Windows Phone
• XNA for Windows Phone
• Selling a Windows Phone Application

Więcej na https://www.eventbuilder.com/microsoft/event_desc.asp?p_event=m58m12c5

 

Jeżeli spodobał wam się nasz polski cykl poświęcony platformie Windows Phone, to mam dla was dobrą wiadomość… Na pewno już się domyślacie jaką 😉 Mam nadzieję, że szczegóły będę mógł zdradzić już niedługo :)


Windows Phone Mango Beta 2 Refresh

Niedawno na telefonach z zainstalowanym system Windows Phone w wersji Beta 2 pojawiła się informacja o dostępnej aktualizacji. Tym razem mamy dostęp do wersji 7712, nie jest to jednak RTM.

W ramach updatu mamy dostęp do wielu drobnych zmian: zmiana ikonki w przypadku map, możliwość wysyłki sugestii dla lokalizacji już działa – do tej pory nie było można dodać takiej sugestii), zmiana umiejscowienia ikonki Kopiuj-Wklej, nowe logo na starcie systemu itp. Ogólnie można to nazwać kosmetyką. Tak też powinno być z racji na wersję “prawie RTM” – nie można tu oczekiwać większych zmian. Okazuje się jednak, że można trafić również na coś więcej niż kosmetykę.

Twitter

Pierwszą z nich jest dodanie możliwości podłączenia konta Twitter do huba People. Dzięki temu będziemy mogli “ćwierkać” oraz odbierać wiadomości z tego serwisu. Dodatkowo kafelek “Me” zawiera informacje gdy ktoś nawiąże z nami rozmowę przy pomocy Twittera (Mentions).

Grupy kontaktów

Skoro jestem już przy hubie People warto wspomnieć również o możliwości łączenia kontaktów w grupy. Dzięk tej opcji możemy np wysłać do całej grupy SMS/Email. Nie można pominąć wbudowanej grupy Family oraz sugestii co do kontaktów, które powinny do niej należeć :) Trzeba tylko osoby z rodziny mieć wpisane “po nazwisku” :)

Multitasking

Druga zmiana, która podobno była dostępna już w wersji Beta 2, to zarządzanie wielozadaniowością. Z racji na fakt, że Mango oferuje multitasking ważne jest również narzędzie, które pozwala się przełączać pomiędzy zadaniami. Otóż jest taka możliwość. W momencie gdy uruchomimy aplikację B, wciśniemy przycisk Start, uruchomimy aplikację B itd, wówczas może się okazać, że powrót do początkowych aplikacji może być trudny (oczywiście jeżeli system ich nie wyłączył). Można jednak wcisnąć przycisk Wstecz trochę dłużej. Wówczas naszym oczom ukarze się efekt wielu okien, między którymi możemy się przełączać… Działa również gdy nie mamy żadnych aplikacji w pamięci, wówczas mamy na widoku tylko ekran startowy lub listę aplikacji w zależności od miejsca, w którym użyliśmy przycisku Wstecz. Jak wspomniałem, zmiana ta podobno była dostępna już w wersji Beta 2, natomiast z racji, że jej wówczas nie zauważyłem, a mam już zainstalowany update uznaję to za nowość :) Polecam przetestować – przypadkowe włączenie tego menagera wywołało u mnie efekt wow :)

To nie wszystko! Są przecież jeszcze zmiany po stronie SDK, lecz o tym napiszę w kolejnym poście :)


Visual Studio IntelliSense Tip 2

Kolejna ciekawostka związana z IntelliSense w Visual Studio 2010.

Często bywa tak, że IntelliSense próbuje być o wiele mądrzejsze niż programista i na siłę dopasowuje wybrane przez siebie nazwy klas i zmiennych nawet jeżeli nie było to naszym zamiarem. Jednym z przykładów może być tu odwołanie do nieistniejącej jeszcze klasy, którą dopiero zadeklarujemy. Szybkie demo polega na wpisaniu w kodzie aplikacji słowa Time – taką właśnie klasę chciałbym za moment dodać, natomiast narazie tworzę tylko kod, który będzie wykorzystywał obiekt tego typu.

Zatem po wpisaniu Time wciskam spację, żeby kontynułować kod i … okazuje się, że Visual Studio zakłada, że wie lepiej i IntelliSense wpisuje w miejsce Time typ TimeoutException

Co w związku z tym? Ctrl + Z i piszemy dalej… ??? Nie

Tryb uzupełniania i tryb sugestii

Opisane przeze mnie zachowanie jest spowodowane tym, że IntelliSense posiada dwa tryby: uzupełniania (domyślny) i sugestii. Jak widać tryb uzupełniania może być czasem uciążliwy… Można natomiast skorzystać z drugiego trybu, czyli z sugestii… Do przełączania się pomiędzy trybami IntelliSense służy kombinacja klawiszy CTRL + ALT + SPACE. Po zmianie trybu uzyskujemy efekt widoczny poniżej:

W tym trybie po wciśnięciu spacji IntelliSense nie wpisuje niechcianego przez nas typu TimeoutException… I o to właśnie chodziło.

Powiecie “Ok, ale co jeżeli chcę jednak wpisać TimeoutException a jestem w trybie sugestii?” Drogi są dwie:
1 – Tabulator pozwala na uzupełnienie sugerowanego tekstu
2 – Strzałką wybieramy sugestią i klikamy spację.

Mi osobiście opcja ta się spodobała. Oczywiście trzeba do niej podchodzić z rozsądkiem, żeby nie okazało się, że zamiast przyspieszyć spowolni proces kodowania :)


Visual Studio IntelliSense Tip

Okazuje się, że IntelliSense w Visual Studio 2010 potrafi nie tylko uzupełniać wpisywane przez nas metody, lecz dodatkowo interpretować to co wpisujemy. Przykładem niech będzie klasa Console.

Standardowo

Przeważnie gdy piszemy kod, w którym chcemy wczytać pewne dane od użytkownika wpisujemy Console.Read… i wybieramy z listy podpowiedzi ReadLinie. Okazuje się, że można do tego podejść inaczej!

Podejście 1

Zamiast wpisywać po kropce słowo Read wpiszmy Line. Okazuje się, że IntelliSense zasugeruje nam metody zawierające w sobie słowo Line czyli ReadLine i WriteLine. Jest to nieznacznie szybsze niż korzystanie z prefiksu Write.

Podejście 2

Ale to nie wszystko! Można jeszcze szybciej dostać się do interesującej nas metody, czyli do ReadLine. Wystarczy po kropce wpisać dwie litery: RL. IntelliSense zinterpretuje to jako poszukiwanie metody, która składa się z conajmniej dwóch wyrazów, z których pierwszy zaczyna się na R, a drugi na L.

Istotna jest tu wielkość liter, gdyż dla algorytmu używanego przez IntelliSense ma ona znaczenie – łatwo to sprawdzić wpisując zamiast RL ciąg rL.


Marketplace już w Polsce!

Dzisiejszy news dotyczący Marketplace dla Windows Phone donosi o poszerzeniu dostępności sklepu z aplikacjamu na WP o kolejne kraje. Do aktualnej 16 krajów dochodzi 19 nowych, a wśród nich także POLSKA…

Nowe kraje to:

  • Brazil
  • Chile
  • Colombia
  • Czech Republic
  • Denmark
  • Finland
  • Greece
  • Hungary
  • India
  • Japan
  • Netherlands
  • Norway
  • Poland
  • Portugal
  • Russia
  • South Africa
  • South Korea
  • Sweden
  • Taiwan

W związku z tą informacją postanowiłem przetestować Zune bez zmienionych ustawień lokalizacji. Wynik pozytywny! Nie ma informacji, że produkt nie jest dostępny dla mojej lokalizacji.

Na marginesie dodam, że do tej pory aby móc swobodnie korzystać z Zune i przeglądać aplikacje z Marketplace trzeba było zmienić ustawienia lokalizacji w komputerze np na takie:

W tym momencie nie ma już takiej konieczności :)

Jedyne co może mam doskwierać to mała ilość aplikacji targetowanych dla naszego kraju. Jest tak ponieważ deweloperzy muszą zmienić ustawienia publikacji dla swoich aplikacji ponownie zaznaczając opcję “Worldwide distribution”. Proces ten będzie o tyle wygodny, że panel marketplace przeszedł gruntowne zmiany i można w prosty sposób edytować informacje o aplikacji bez konieczności ponownego przechodzenia przez proces weryfikacji… Fakt, że przy tej okazji pojawia się na nim sporo błędów typu “przepraszamy, ale nie możemy teraz wyświetlić tych informacji”, natomiast trzeba dać trochę czasu nowej platformie na “dotarcie się” przy produkcyjnym obciążeniu.

Nie pozostaje zatem nic innego jak poczekać kilka dni na przepiecie dostępnych na Marketplace aplikacji :)


  • 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: