Winbot – pliki skojarzone z aplikacją

Kolejny tydzień prac dobiegł końca. Aplikacja małymi krokami rozwija się. Cały czas staram się dodawać interesujące funkcje lub rozwijać w miarę ciekawe problemy, aby nie zanudzać czytelników bloga moimi cotygodniowymi raportami z postępu prac. Według mnie, najciekawszy problem z jakim się zetknąłem w ostatnim tygodniu było skojarzenie plików z moim programem. Chciałem aby po zainstalowaniu…

EntityFramework – uważajcie, jesteście śledzeni

Moją przygodę z Entity Framework zacząłem od przeczytania jednej z książek poświęconej właśnie temu frameworkowi. Później miałem jeszcze okazję spotkać się z nim w kilu projektach. Zawsze starałem się pisać kod zgodnie z moją najlepszą wiedzą, tak aby jakość produktu końcowego była jak najwyższa. Możecie sobie wyobrazić, jakie było moje rozczarowanie, kiedy dopiero po kilku latach…

Dummy, Fake, Stub i Mock w testach jednostkowych

Kiedy zaczynałem swoją przygodę z testami jednostkowymi nie widziałem żadnej różnicy między obiektami typu Dummy, Fake, Stub i Mock. Używałem każdego z nich bez świadomości istnienia jakichkolwiek różnic między nimi. Wszystkie cztery typy były dla mnie dokładnie tym samym – sztucznym obiektem stworzonym na potrzeby testów. Moja ignorancja i brak wiedzy prowadziły do kilku problemów:…

Winbot – dialog do edycji obiektów

Kolejną rzeczą, nad którą pracowałem w ramach mojego projektu Winbot, była edycja różnych obiektów za pomocą interfejsu użytkownika. W aplikacji występuje kilka typów obiektów. Mógłbym przygotować oddzielne kontrolki do edycji każdego typu z osobna, ale takie rozwiązanie mnie nie zadowalało. Za każdym razem kiedy chciałbym wprowadzić nowy typ, musiałbym dodatkowo przygotować nową kontrolkę do edycji.…

Winbot – Symulacja globalnych zdarzeń (myszka i klawiatura)

Prace nad moim projektem Winbot wciąż trwają. Chociaż czas mija nieubłaganie szybko, a dzień ma tylko 24 godziny, to staram się systematycznie rozwijać Winbot’a o nowe funkcje i usprawnienia. W dzisiejszym poście postanowiłem przedstawić sposób w jaki rozwiązałem problem z symulacją globalnych zdarzeń (np. kliknięcie myszką, wciśnięcie klawisza Ctrl, itp.). Moim celem było zaimplementowanie logiki,…

LiteDB – Kompaktowa baza danych NoSQL

Jakiś czas temu poszukiwałem prostej bazy danych dla mojej aplikacji desktopowej. Oczywiście mogłem sam zaimplementować jakieś rozwiązanie, ale wolałem skorzystać z gotowca, a przynajmniej zapoznać się z dostępnymi rozwiązaniami. Moje wymagania nie były zbyt duże. Chciałem żeby było to coś bardzo prostego. Od razu odrzuciłem wszystkie serwerowe bazy danych, ponieważ jednym z podstawowych założeń jest,…

Klasy internal a testowanie jednostkowe

Często mam okazję pracować nad projektami, które udostępniają bardzo wąski interfejs na zewnątrz, mimo że zawierają w sobie dużo nietrywialnej logiki. Krótko mówiąc – powstaje bardzo mało klas publicznych i dość dużo klas internal. Testy jednostkowe zawsze umieszczam w oddzielnym projekcie. Przez długi okres, za każdym razem kiedy czułem potrzebę napisania testów dla klasy internal,…

Winbot – pierwszy scenariusz

Rozwijany przeze mnie program Winbot nareszcie działa! Oczywiście do zakończenia projektu jeszcze daleka droga, ale już widać pierwsze efekty pracy. W tej chwili można nagrać scenariusz, zapisać go na dysku i odtworzyć. Póki co ograniczyłem się do obsługi zdarzeń związanych z kliknięciem myszką lub użycia klawiatury. Interfejs użytkownika pozostawia wiele do życzenia, ale jak do tej…