Strona głównaUżytkownik

jacalapa | użytkownik

jacalapa
jacalapa
456,35
2752 dni, 16 godzin, 26 minut temu
28 lutego, 2017
dotnetomaniak.pl

Ostatni tydzień nie przyniósł żadnych rewolucyjnych zmian do aplikacji Winbot, którą rozwijam już jakieś 10 tygodni 🙂 Pracuję nad nową funkcją, która pozwoli na tworzenie nowych scenariuszy ręcznie (bez nagrywania aktywności myszki lub klawiatury). Postanowiłem to wprowadzić aby była możliwość tworzenia zagregowanych scenariuszy lub też bardziej generycznych (np. scenariusz, który wykonuje inny scenariusz przez godzinę). Ale narazie to zostawmy – jeszcze nie jest gotowe, w...

Źródło: jaceklapinski.com
Dziel się z innymi:
Winbot – nieobsłużone wyjątki w WPF

Daj się poznać 2017 2749 dni, 3 godziny, 34 minuty temu jacalapa 44 źrodło rozwiń

W dzisiejszym poście postanowiłem krótko przedstawić definicje wybranych delegatów, które standardowo udostępnia nam .NET.

Źródło: jaceklapinski.com
Dziel się z innymi:
Standardowi delegaci w C#

Daj się poznać 2017 2753 dni, 3 godziny, 26 minut temu jacalapa 109 źrodło rozwiń

W końcu przyszedł ten moment, w którym stwierdziłem, że pora wypuścić pierwszą wersję Winbota. Zbudowałem instalator i wystawiłem release na githubie. Dostępny do pobrania tutaj. Zanim jednak to uczyniłem, zastanawiałem się co będzie, jeżeli zacznę wypuszczać kolejne wersje. W jaki sposób informować użytkownika z zainstalowaną aplikacją, że pojawiła się nowsza wersja? W tym poście opiszę własne rozwiązanie tego problemu. Jedna rzecz była dla mnie pewna od samego początku. ...

Tagi: .Net, C#, GitHub, WPF
Źródło: jaceklapinski.com
Dziel się z innymi:
Winbot – aktualizowanie aplikacji desktopowej

Daj się poznać 2017 2758 dni, 4 godziny, 36 minut temu jacalapa 79 źrodło rozwiń

Każdy kto miał okazję programować w Javie i C#, zapewne zwrócił uwagę na subtelną różnicę między tym, co oferują nam typy wyliczeniowe w obu językach. Jeżeli chodzi o C#, nie ma tu wielkiej filozofii. Mamy możliwość zdefiniowania zbioru elementów i ewentualnie przypisania im odpowiedniej wartości liczbowej. W Javie mamy znacznie większe pole manewru. Dozwolone jest tutaj definiowanie pól i metod, tak jak w zwykłej klasie. Osoby mające już jakieś doświadczenie związane z pr...

Źródło: jaceklapinski.com
Dziel się z innymi:
Enum na sterydach

Daj się poznać 2017 2754 dni, 19 godzin, 32 minuty temu jacalapa 290 źrodło rozwiń

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 Winbota, można było eksportować z niego pliki, które później będą możliwe do urucho...

Tagi: .Net, C#, WiX, WPF
Źródło: jaceklapinski.com
Dziel się z innymi:
Winbot – pliki skojarzone z aplikacją

Daj się poznać 2017 2765 dni, 23 godziny, 30 minut temu jacalapa 25 źrodło rozwiń

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 dowiedziałem się o możliwości wyłączenia śledzenia. Dlaczego rozczarowanie? Dlatego, że mimo ...

Źródło: jaceklapinski.com
Dziel się z innymi:
EntityFramework – uważajcie, jesteście śledzeni

Daj się poznać 2017 2761 dni, 16 godzin, 22 minuty temu jacalapa 302 źrodło rozwiń

W końcu nadszedł ten moment. Uznałem, że moja aplikacja WPF jest już na tyle rozwinięta, że warto by przygotować dla niej jakiś prosty instalator. Robiłem to już w przeszłości w innych projektach, więc miałem już dość wyrobiony pogląd na ten temat. Postanowiłem użyć produktu, który jak do tej pory, nigdy mnie nie zawiódł i pozwalał dostosować instalator do konkretnych wymagań. Chodzi tu o WiX Toolset. Jest to darmowe narzędzie umożliwiające tworzenie instalatorów w oparciu ...

Tagi: .Net, C#, instalator, WiX
Źródło: jaceklapinski.com
Dziel się z innymi:
Winbot – prosty instalator aplikacji desktopowej

Daj się poznać 2017 2770 dni, 17 godzin, 22 minuty temu jacalapa 72 źrodło rozwiń

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:frustracji w trakcie pisania testów wynikającego z niewiedzy (np. dlaczego ten test wyrzuca w...

Źródło: jaceklapinski.com
Dziel się z innymi:
Dummy, Fake, Stub i Mock w testach jednostkowych

Daj się poznać 2017 2771 dni, 20 godzin, 52 minuty temu jacalapa 134 źrodło rozwiń

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. Byłoby to dość niewygodne i denerwujące. Moim celem było przygotowanie gen...

Tagi: C#, WPF
Źródło: jaceklapinski.com
Dziel się z innymi:
Winbot – dialog do edycji obiektów

Daj się poznać 2017 2778 dni, 2 godziny, 58 minut temu jacalapa 32 źrodło rozwiń

Dzisiaj bohaterem mojego posta będzie Satellite Assembly. Jeżeli wiesz co to jest i miałeś już okazję z tego korzystać, to być może Cię rozczaruję, ale nie dowiesz się tutaj nic nowego. Jeżeli jednak jeszcze się z tym nie zetknęliście – zachęcam do krótkiej lektury. .Net daje nam możliwość zdefiniowania różnych zasobów, w zależności od kultury w kontekście której działa nasza aplikacja. Najczęściej wykorzystywane jest to w aplikacjach wspierających wiele języków. Tworzy si...

Tagi: .Net, C#
Źródło: jaceklapinski.com
Dziel się z innymi:
Satellite Assembly – krótkie wprowadenie

Daj się poznać 2017 2777 dni, 4 godziny, 56 minut temu jacalapa 92 źrodło rozwiń

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, która wywoływałaby konkretne zdarzenie systemowe. Nie było to trywialne zad...

Tagi: C#, WinAPI
Źródło: jaceklapinski.com
Dziel się z innymi:
Winbot – Symulacja globalnych zdarzeń (myszka i klawiatura)

Daj się poznać 2017 2784 dni, 6 godzin, 41 minut temu jacalapa 79 źrodło rozwiń

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, że moja aplikacja będzie działać offline. Mam świadomość, że prawdopodobn...

Źródło: jaceklapinski.com
Dziel się z innymi:
LiteDB – Kompaktowa baza danych NoSQL

Daj się poznać 2017 2786 dni, 20 godzin, 28 minut temu jacalapa 192 źrodło rozwiń

Jacek ŁapińskiDodaj komentarz 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, robiłem to co sprawiało mi najmniej problemów – przekształcałem klasę na publiczną. W takich...

Źródło: jaceklapinski.com
Dziel się z innymi:
Klasy internal a testowanie jednostkowe

Daj się poznać 2017 2793 dni, 4 godziny, 7 minut temu jacalapa 81 źrodło rozwiń

Ostatnio w trakcie pracy nad projektem składającym się z kilku rozproszonych, komunikujących się ze sobą komponentów napotkałem problem, którego przyczyny nie były i wciąż nie są do końca jasne. Raz na jakiś czas (bardzo rzadko) pewna operacja kończyła się błędem. Najprawdopodobniej jest to związane z konfiguracją hardware’u lub systemu operacyjnego, ale nie to jest tutaj istotne. Czasem potrzebna jest nam logika, która ponowi operację jeżeli poprzednia próba zakończy się n...

Tagi: .Net, C#
Źródło: jaceklapinski.com
Dziel się z innymi:
Generyczny retry w C#

Daj się poznać 2017 2796 dni, 1 godzinę, 23 minuty temu jacalapa 219 źrodło rozwiń

Prace nad moją aplikacją wciąż posuwają się do przodu. Ostatnio myślałem o wszystkich rzeczach, które zamierzam zaimplementować i doszedłem do wniosku, że przydałby mi się proces automatyzujący część pracy. Zacząłem rozglądać się za jakimś prostym narzędziem  continuos integration. Z uwagi na specyfikację Winbot’a, ważne było aby narzędzie umożliwiało:wykrywanie zmiany i pobieranie aktualnych źródeł z repozytorium (Github),ściągnięcie zależności za pomocą Nuget’a,zbudowanie...

Źródło: jaceklapinski.com
Dziel się z innymi:
Winbot – continuous integration

Daj się poznać 2017 2799 dni, 3 godziny, 33 minuty temu jacalapa 54 źrodło rozwiń

Dzisiaj chciałbym przedstawić bardzo fajną bibliotekę Alea GPU, dzięki której możemy wykorzystać kartę graficzną do obliczeń wykonywanych przez aplikację napisaną w .NET. Jest tu wykorzystywana technologia CUDA, którą zaprojektowała firma Nvidia. Zacznę jednak od krótkiego wprowadzenia. GPU (Graphics Processing Unit) Jest to układ obliczeniowy znajdujący się na karcie graficznej. Tego typu jednostki obliczeniowe powstały w celu odciążenia procesora (CPU) od obliczeń zwią...

Tagi: .Net, C#, GPU
Źródło: jaceklapinski.com
Dziel się z innymi:
Cudowna wielowątkowość w .NET czyli Alea GPU

Daj się poznać 2017 2806 dni, 3 godziny, 8 minut temu jacalapa 163 źrodło rozwiń

Bardzo często mamy okazję pracować nad aplikacją, która powinna być skonfigurowana odpowiednio do środowiska, w którym ją umieścimy. Najprostszy przykład – aplikacja w środowisku produkcyjnym prawdopodobnie będzie łączyła się do zupełnie innej bazy danych niż ta sama aplikacja w środowisku developerskim lub lokalnym. W dzisiejszym poście przedstawię najlepszy znany mi sposób pozwalający na bezbolesne i eleganckie rozwiązanie tego problemu. Jeżeli znasz coś lepszego, zaprasz...

Oddzielne pliki app.config dla różnych konfiguracji

Daj się poznać 2017 2807 dni, 4 godziny, 24 minuty temu jacalapa 114 źrodło rozwiń