WinRT: Debugowanie projektów C++ w C#

Od kilku dni użeram się z projektem WinRT C#/XAML, który korzysta z projektu WinRT C++. Ta sytuacja rodzi u mnie wiele problemów, z którymi sobię jakoś daję powoli radę. Jednym z WTF, na które natrafiłem to problem debugowania mieszanej solucji. A ponieważ ja ostatni raz w C++ pisałem dekadę temu to współczynnik WTF per minute mam wysoki. Czytaj dalej

Liczniki wydajności w Windows Store Apps

Ostatnio pisałem na temat zdarzenia BindingFailed klasy DebuggerSettings. Jedną z niewielu właściwości tej klasy jest EnableFrameRateCounter.

public App()
{
    InitializeComponent();
    Suspending += OnSuspending;

    DebugSettings.EnableFrameRateCounter = true;
}

Zmiana tej flagi na true sprawia, ze w górnym lewym rogu uruchomionej aplikacji pojawią się liczniki wydajności, które doskonale znają programiści Windows Phone.

FramerateCountersWindowsStoreApps

 

Znaczenie poszczególnych wartości:

  • Cp fps: the frames-per-second frame rate for the composition thread
  • UI fps: the frames-per-second frame rate for the UI thread
  • Memory: memory utilization for textures
  • Batch: the count of surfaces that are sent to the graphics processing unit (GPU)
  • Cp cpu: time in milliseconds spent on the composition thread’s processor
  • UI cpu: time in milliseconds spent on the UI thread’s processor

Debugowanie BindingExpression w Windows Store Apps

Jedną z zalet XAML’a, DataBinding i MVVM jest to, że grafik i programista mogę swobodnie pracować nad tą samą aplikacją. Miejscem styku są wyrażenia BindingExpression w kodzie XAML. Niestety, czasami styku nie ma, albo wręcz robią się zwarcia i trzeba na to jakoś zareagować. Czytaj dalej

Zastosowanie SemanticZoom z domyślnym ZoomOut

Ostatnio portowałem moją aplikację Relax z Windows Phone do Windows Store. Oryginalna aplikacja została utworzona w XNA, bo chciałem mieć ładne animowane, opadające kształty (tekstury) oraz płynne przejścia tła (wiem, wiem…to samo też można zrobić w Silverlight, ale miałem problemy z wydajnością i obciążeniem procesora). Relaxed (tak się nazywa w Windows Store, bo ktoś mi wcześniej zajumał nazwę „Relax”) to MonoGame + XAML.

Relax - Menu Relax - Rain theme Relax - Forest theme Relax - Beach theme

W tej wersji aplikacji zdecydowałem się na menu w XAML’u, a część releksacyjna (muzyka + animacje) to XNA. Pomyślałem sobię, że fajnie by było użyć kontrolki SemanticZoom. W trybie ZoomIn (normalny) nic nie ma (nie ma zawartości XAML) więc widać to co rysuje XNA. W trybie ZoomOut (oddalony) pojawiają się kontrolki, gdzie użytkownik wybiera interesujący go temat.

Relaxed - Main menu Relaxed - Forest  theme Relaxed - Rain theme Czytaj dalej

Skórka Dark i Light w aplikacjach Windows Store

Zapewne każdy Win8Dev wie, że szablony projektów aplikacji Windows Store (Windows 8) są domyślnie w ciemnej tonacji. Nie ważne czy wybierzesz BlankApp, GridApp czy SplitApp, aplikacja po uruchomieniu będzie wyglądała mniej więcej jak poniżej:

WindowsStore - Dark Theme WindowsStore - Dark Theme WindowsStore - Dark Theme

Ale wystarczy, że w App.xaml, w nagłówku wpiszesz jedną linijkę:

RequestedTheme="Light"

Windows Store apps - RequestedTheme

Teraz ta sama aplikacja będzie ubrana w białą skórkę:

WindowsStore - Dark Theme WindowsStore - Dark Theme WindowsStore - Dark Theme

Tworzenie aplikacji dla systemu Windows 8 @ Channel 9

Dzisiaj ruszyła publikacja mojej nowej serii webcastów pt: Tworzenie aplikacji dla systemu Windows 8. Odcinki będą publikowane na portalu Channel 9.

Z tego miejsca pozdrowienia i podziękowania dla mojej kochanej żony, że zgodziła się na mój udział w tej serii 🙂 oraz pozdrowienia dla Basi Michalskiej i Rafała Madyckiego z polskiego oddziału Microsoft.

Już dzisiaj, już teraz zobacz wstęp do kursu:

Wstęp do serii - Programowanie aplikacji dla systemu Windows 8 @ Channel 9

Zachęcam do oglądania i komentowania.

Windows 8 oczami programisty .NET (38. spotkanie ŚRGM)

Tydzień temu odbyło się 38. spotkanie Ślaskiej Regionalnej Grupy Microsoft. Było to pierwsze po wakacjach (i po dłuższej przerwie) spotkanie naszej grupy. Na spotkaniu miałem przyjemność poprowadzić jedna sesję. Mój temat to Windows 8 oczami programisty .NET.

38 spotkanie ŚRGM i PLSSUG Katowice

Spotkanie odbyło się jak zawsze w Kamsofcie. Przybyło całkiem sporo osób (30+ ludzi). Pojawiło się wiele znanych twarzy jak i kilka nowych. Tym razem nie było przegadanego wstępu, bo o czym tu mówić i tylko tracić czas. W dodatku trochę czasu straciliśmy na problemie pt. „gdzie jest pilot z rzutnika”, a gdy ten się znalazł, pojawił się kolejny problem „dlaczego nie ma obrazu na ekranie”. Ale i z tym sobie poradziliśmy i można było przejść do pierwszej sesji. Czytaj dalej

Metro How To 0: Wstęp

Windows 8 Metro How To

Kolejną serią postów jaką planuję to cykl tzw. „How To„. Będą to posty o charakterze bardzo praktycznym, rozwiązujące konkretny problem z jakim się spotkałem podczas devopmentu na Windows 8, główne podczas portowania Kids Puzzle z Windows Phone na Metro. Czytaj dalej

Metro Apps 0: Wstęp

Windows 8 Metro Apps

Nowy Windows 8 na horyzoncie, a ja jakiś czas temu dostałem niepowtarzalną szansę, na przygotowanie jednej z pierwszych aplikacji, które pojawią się w Windows Store, co w moim przypadku oznacza tylko jedno: Metro Style Apps XAML/C#, bo HTML/JavaScript nie lubię, Direct/C++ to nie moja bajka, a XNA na Metro nie ma (oficjalnie nie ma, ale powstaje ciekawy projekt SharpDX).

Kids PuzzleZdecydowałem się na portowanie (choć bardziej pasuje tutaj: napisanie od nowa) gry Kids Puzzle (jednej z moich aplikacji na Windows Phone). Na dzień dzisiejszy aplikacja jest na ukończeniu i lada dzień wyląduje w Windows Store!

W związku z tym pomyślałem sobie, że pewnymi uwagami podzielę się na łamach mojego bloga i może powstanie z tego ciekawa seria. Tematy podzieliłem na dwie grupy. Czytaj dalej