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,…

Generyczny retry w C#

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…

Cudowna wielowątkowość w .NET czyli Alea GPU

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…

Winbot (MVVM Light + Ninject)

W tym tygodniu postanowiłem popracować trochę nad interfejsem użytkownika programu Winbot. Jeszcze dużo pracy przede mną, ale wydaje mi się, że podstawowe fundamenty są już gotowe. Projekt korzysta z framework’a WPF. Przeanalizowałem różne dostępne podejścia związane z rozwijaniem aplikacji w tej technologii. Najbardziej przekonała mnie architektura Model-View-ViewModel i oparta na niej biblioteka MVVM Light. Mimo że MVVM…

Oddzielne pliki app.config dla różnych konfiguracji

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…