Pytanie to bardzo często pojawia się w mailach, bądź też rozmowach z innymi developerami. Wydaje mi się, że odpowiedź na nie jest bardzo prosta – wystarczy napisać dobrą aplikację. Nie zawsze jest to jednak wystarczające. Dobra aplikacja niejednokrotnie ma problemy z przebiciem się przez gąszcz innych podobnych aplikacji.Logo Co można, więc zrobić aby pomóc naszej aplikacji w osiągn...
Strona głównaUżytkownik
Paweł Łukasik | użytkownik
Mobile development 3993 dni, 1 godzinę, 9 minut temu 209 źrodło rozwiń
W niektórych aplikacjach Windows Phone podoba mi się usprawnienie, polegające na tym, że po naciśnięciu przycisku Enter w polu tekstowym automatycznie przeskakujemy do kolejnego TextBox-a. Jest to wygodne i przyspiesza używanie aplikacji - sam to implementuję jak tylko mogę... A nie da się oczywiście w polach z takim InputScope, w którym przycisk Enter jest niedostępny :) Jako że implementacja tej funkcjonalności za każdym razem jest uciążliwa, to warto tutaj zastosować behaviors. Posiadając poniższą...
Mobile development 4005 dni, 2 godziny, 50 minut temu 168 źrodło rozwiń
… parafrazując słowa Bena Parkera, wujka Spidermana (wiem, że dla niektórych to żenada tego nie wiedzieć, lecz mimo to wyjaśniam)… Temat wyszedł z moich refleksji o architekturze oprogramowania, więc postanowiłam zrobić z niego prezentację, którą przedstawiłam po raz pierwszy w Białymstoku na grupie .Net. Wiele wątków, które tu umieszczę pochodzi od słuchaczy, post będzie więc kumulacją naszych wspólnych przemyśleń. O co więc chodzi z tą władzą i odpowiedzialnością? Zacznę od tego, że każdy z nasz deve...
Architektura 4005 dni, 2 godziny, 50 minut temu 242 źrodło rozwiń
Ostatnio intensywnie pracuję w .NET Micro Framework. Na tyle intensywnie, że pokusiłem się o stworzenie emulatora do urządzenia, dla którego piszę oprogramowanie. Przykładowy emulator znalazłem w katalogu przykładów dołączonych do .NET Micro Framework, zaś wiedzę uzupełniłem lekturą rozdziału poświęconego emulacji z tej książki. Emulator ma postać aplikacji, której klasa Program dziedziczy po klasie Emulator z Microsoft.SPOT.Emulator. Dodatkowo należy stworzyć odpowiedni plik konfiguracyjny opisujący em...
W dzisiejszym wpisie, pokażę jaki wpływ mają klasy na zużycie pamięci. W ostatnim poście pokazałem korzyści płynące ze struktur jeśli mamy do czynienia z małymi kontenerami na dane. Najlepiej odpalmy po prostu następujący kod.
Sztuka programowania 4034 dni, 23 godziny, 2 minuty temu 237 źrodło rozwiń
Wiele programistów c# zapomina, że struktury również istnieją w .NET. Mam wrażenie, że jest to konstrukcja bardziej popularna w CPP niż w C#. W praktyce jednak, wybranie struktur zamiast klas, może mieć kolosalne znaczenie jeśli chodzi o wydajność i płynność aplikacji. Nie jednokrotnie porównywałem te dwa typy obiektów na blogu więc podstaw nie będę omawiał tutaj. Przyjmuje, że każdy wie, że struktury znajdują się na stosie a obiekty klas na stercie. W poście chciałbym skupić się na następującym scenar...
Sztuka programowania 4039 dni, 4 godziny, 42 minuty temu 385 źrodło rozwiń
W bibliotece RadControls for Windows Phone znajduje się mechanizm do zrzucania kontrolki do kafelka Live Tile (przy użyciu LiveTileHelper). Niestety, ta operacja jest bardzo zawodna - często kafelek nie renderuje się prawidłowo (zwłaszcza gdy jest nieco bardziej skomplikowany), a i czas wykonywania pozostawia wiele do życzenia. Nie mam pojęcia jak to ich programiści zaimplementowali, ale postanowiłem wziąc sprawy w swoje ręce, by znaleźć lepsze rozwiązanie!
Mobile development 4042 dni, 22 godziny, 17 minut temu 100 źrodło rozwiń
Dzisiaj kilka przykładów pokazujących jak operować licznikami z poziomu c#. Czytanie jakichkolwiek liczników jest bardzo proste ponieważ .NET Framework dostarcza odpowiednie klasy.
Sztuka programowania 4042 dni, 22 godziny, 17 minut temu 196 źrodło rozwiń
… podczas rekrutacji, a zwłaszcza w codziennym kodowaniu. Jakie zna pan wzorce projektowe i proszę opisać jeden z nich? Mi też zdarzało się tutaj odpowiadać, że Singleton. Bo prosty, bo rozumiem jak działa i jakie problemy rozwiązuje.
Sztuka programowania 4046 dni, 9 godzin, 41 minut temu 440 źrodło rozwiń
Był taki smutny czas, że struktura dziedziczenia w moich testach zdecydowanie przerastała stopniem skomplikowania dziedziczenie w testowanym kodzie. A bo jedna klasa bazowa dla testów umożliwiała na przykład kontakt z prawdziwą bazą. Inna – testy z bazą in-memory. Jeszcze inna – puszczanie requestów do systemu. I tak dalej. Efekt był taki, że de facto wszystkie testy dziedziczyły ze wszystkiego. Fuj na maxa, z pryszczem jeszcze ohydnym....
Sztuka programowania 4048 dni, 7 godzin, 24 minuty temu 164 źrodło rozwiń
Książkę przeczytałem jeszcze na studiach (nawet dokładnie nie pamiętałem tytułu) z nudów. Bardzo lekka książka, czyta się jednym tchem. Traktuje o tym jak wygląda projekt, który się nie uda. Jak zachowują się poszczególni członkowie teamu, zarząd, kierownicy, itp. Jedni się domyślają wcześniej, jedni później. Opisane są próby, jakie podej...
Unikaj przekazywania nulli. Jeśli nie będziesz ich przekazywał nie będziesz musiał sprawdzać czy ich nie masz. Prosto powiedzieć – trudniej zrobić. Proste rzeczy to przekazywanie pustych kolekcji, Null Object Pattern. Jednak to drugie może dobrze działać dla serwisów, ale już gorzej dla Value Objects. Często pojawiającym się kodem jest wyciąganie obiektów z repozytorium. va...
Sztuka programowania 4048 dni, 7 godzin, 24 minuty temu 274 źrodło rozwiń
Poprzednia część artykułu mówiła o infrastrukturze Event Tracing for Windows (ETW), ta zaś dotyczy monitorowania źródła zdarzeń. Można tego dokonać, umieszczając kod w tym samym procesie co źródło logów albo w procesie zupełnie odseparowanym od niego, co gwarantuje większą stabilność w przypadku krytycznych błędów.Hosting w tym samym procesie Najprostszą metodą jest zapisanie/odebranie wsz...
W tym artykule dowiesz się jak napisać prosty kontroler ruchu graczem. Dowiesz się również jak wykrywać proste kolizje pomiędzy obiektami. W tym artykule dowiesz się jak napisać prosty kontroler ruchu graczem. Dowiesz się również jak wykrywać proste kolizje pomiędzy obiektami. Kontroler będzie się aktywowa...
Dziś wpadł mi link http://damieng.com/blog/2013/12/09/probable-c-6-0-features-illustrated przekazany przez kolegę. Mimo, że na oficjalnych blogach nic nie znalazłem, o tyle natrafiłem na streszczenie jednej z rozmów z BUILD 2013: http://wesnerm.blogs.com/net_undocumented/2013/07/anders-on-c-60-at-build-2013.html. Jest to odpowiedź na wątpliwości na temat przyszłości C#, .NET i “Roslyn”. Jak wszystko dobrze pójdzie to .NET 5 będzie hulać na “Roslyn”, a C# nabierze nowych właści...
Semantic Logging Application nie stanowi kolejnej biblioteki do wykonywania logów, która po prostu zapisuje tekst we wskazanej lokalizacji (np. pliku tekstowym). Prezentuje bowiem zupełnie inne podejście niż Logging Application Block i pozostałe konkurencyjne biblioteki. Semantic Logging Application to rozwiązanie przydatne szczególnie w przypadku dużych i rozproszonych systemów. Biblioteka...
Until now we had many excuses for not writing integration tests:we prefer unit tests over integration testsour business logic (aka services) is separated and thoroughly testedwe keep our ontrollers on a dietUI consists mostly of standard elements (aka widgets) which are tested on their ownwe are lazy But there was still too much space for error. From time to time a seemingly innocent change in Razor view (or HTML helper, or filter, or “something completely irrelevant”) unexpectedly broke one of the page...
Sztuka programowania 4061 dni, 3 godziny, 27 minut temu 105 źrodło rozwiń
…humans make mistakes, but the answer is not to add additional humans to the process. Rather, the solution is that the entire deployment process should be automated, with automated deployment and automated acceptance tests. No właśnie, ludzie robią błędy, a jeśli dodamy więcej ludzi do procesu to szansa na zmniejszenie ilości błędów jest delikatnie mówiąc mała, bardzo mała, taka tyci tyci. Ostatnie dwa wpisy były poświęcone debugowaniu a dzisiaj – po przerwie – wrzucam arcy ciekawy artyk...
W dzisiejszym poście pokażę kilka błędów popełnianych podczas próby oszacowania efektów optymalizacji a raczej mikro-optymaliacji. Częściowo popełniałem te błędy na moim blogu, ale zawsze wykonywałem pomiary w pętli, co niwelowało te drobne różnice.
Sztuka programowania 4061 dni, 3 godziny, 27 minut temu 159 źrodło rozwiń
Pisząc aplikacje na Windows Phone często chcemy dać użytkownikowi możliwość przypnięcia jakiegoś elementu do menu start. Problem pojawia się, gdy chcemy to sformułowanie przetłumaczyć na inny język tak, aby było zgodne z obowiązujym nazewnictwem WP. Żywi lub automatyczni tłumacze nie do końca sobie z tym radzą, dlatego też zebrałem oficjalne określenia polecenia "przypnij do ekranu startowego" z kilku języków. Może się komuś przyda, mnie na pewno! Dopisujcie kolejne języki w komentarzach :) Angiel...
Mobile development 4061 dni, 3 godziny, 27 minut temu 135 źrodło rozwiń