W poprzednim artykule opisane zostały zagadnienia związane z rysowaniem linii w scenie 3D opartej o WPF. W tym artykule zostaną opisane gotowe rozwiązania umożliwiające kreślenie linii.
Obiecałem sobie nie pisać przez jakiś czas o (Fluent) NHibernate ale jak widać nie potrafię =) Przy okazji refactoringu kodu przypomniałem sobie o pewnym drobny problemie, który napotkałem testując kod repozytoriów. Podczas przeprowadzania testów z wykorzystanie SQLite zauważyłem, że właściwości typu enum zapisywane są w bazie danych pod postacią ciągu znaków, a nie jak oczekiwałoby się pod postacią typu całkowitego (najczęściej i najprawdopodobniej pod postacią integera =)....
autor: Wydaje mi się, że istnieje tylko niewielka szansa, że podwojenie liczby systemowych bitów zaowocuje problemami z uruchomieniem jakieś aplikacji, która wcześniej działała dobrze. Jak wiadomo jest tu emulacja trybu 32-bitowego, która sprawdza się bardzo dobrze. Skąd to wiem? Ano stąd, że okazji do jej wykorzystania jest mnóstwo – i w zasadzie to właśnie jest problem. Wersji aplikacji dedykowanych do x64 nie jest znowu tak dużo, a jeśli już da się takie znaleźć, to często są one pod znacznie gorszą o...
Od jakiegoś czasu staram się wykształcać w sobie nawyk regularnego pisania testów jednostkowych dla wykrytych błędów. Dlaczego? Możliwość sprawdzenia działania programu przy pomocy testów jednostkowych jest najprostszym wskaźnikiem jakości (choć bardzo ogólnym i nie jedynym!) wytwarzanego kodu. Testy jednostkowe są swego rodzaju drogowskazem, który stale pokazuje programiście dobry kierunek "jeżeli-czegoś-nie-można-przetestować-to-trzeba-to-przebudować".
Czasem zachodzi potrzeba, by element sceny 3D wiedział o swojej obecności w scenie, np. w celu odpowiedniego obrócenia się, by być przodem do kamery. Oczywiście przy jego dodawaniu do sceny można by było przekazać do niego odpowiednie informacje o scenie, ale okazuje się, że każdy element sceny może sam uzyskać odpowiednie informacje, gdyż wszystkie elementy sceny 3D w WPF (i nie tylko sceny 3D) tworzą drzewo wizualne (visual tree). Niniejszy wpis poza prezentacją różnych i niezależnych od konkretnego wy...
Na temat transformacji w WPF 3D pojawiło się wcześniej już trochę informacji (m.in. „czym są transformacje i do czego je można wykorzystać?”, czy „jak transformacje tworzyć i komponować?”), zabrakło jednak informacji, jak transformacje wykorzystać do obliczeń 3D. Niniejszy wpis poza prezentacją różnych i niezależnych od konkretnego wykorzystania treści stanowi również opis pewnych zagadnień związanych z projektem Mesh Diagram 3D.Informacje dotyczące projektu oznaczone są etykietą MeshDiagram3D. Przeanali...
Jedną z funkcjonalności Chupacabry będzie możliwość przeglądania zdjęć znajdujących się na dysku i aby to osiągnąć konieczny jest mechanizm nawigowania pomiędzy katalogami. Oczywiście można znaleźć gotowe rozwiązania zaimplementowane przez kogoś, gotowe do wykorzystania w WPF'ie, ale pomyślałem, że stworzenie takiej kontrolki samemu będzie dobrym sprawdzianem oraz ćwiczeniem z wykorzystania samego WPF'a jak i MVVM Light Toolkit w praktyce. Od razu napiszę, że nie wymyśliłem samemu jak to ładnie połączyć,...
Autor: W dzień premiery systemu WP7 … nadrabiam zaległości w pisaniu postów o platformie i narzędziach. W przeddzień MTS zapowiedziałem, że napiszę dokładniej o wybranych tematach dotyczących wersji finalnej. Miałem tu na myśli zmiany w API oraz nowe informacje w oficjalnej dokumentacji, które zwróciły moją uwagę. Sprawdziłem niemal wszystko, co zaowocowało umieszczeniem 2 plików zip. Teraz… opiszę ich zawartość, omawiając przy okazji różne zagadnienia. Może to stanowić też pewne uzupełnienie do moich wy...
Praca z danymi może kojarzyć się z wykonywaniem operacji na danych, lecz nie tylko. Ważnym elementem jest prezentacja, w której wykonaniu pomocnymi mechanizmami są wiązanie,walidacja i konwersja danych. Z tego artykułu nauczysz się, jak wykorzystywać Data Binding w swoich projektach.Data BindingCzym jest Data Binding? Binding umożliwia zarówno połączenie elementów interfejsu użytkownika z dużymi i często używanymi obiektami biznesowymi, jak i powiązani...
Do kontrolki którą stworzyłem w poprzednim poście dodałem nowe funkcjonalności, które wcześniej zaplanowałem, a mianowicie wystawianie na zewnątrz kontrolki aktualnie wybranego katalogu, możliwość wskazania zadanego katalogu oraz ukrywanie niedostępnych katalogów. Aktualnie wybrany katalog Jest to miejsce, w którym moja aktualna wiedza zmusza mnie do złamania zasada wzorca MVVM. Chciałem mieć możliwość bindowania aktualnego katalogu do innych kontrolek. Nie udało mi się udostępnić odpowiedniego Dependenc...
[RS] Lets Moq! Moq to biblioteka służący do tzw. mockowania lub inaczej zaślepiania obiektów na potrzeby testów jednostkowych. Zaślepianie polega na wygenerowaniu obiektu implementującego określony interfejsu, w którym metody zamiast wykonywać skomplikowane operacje np. dostępu do bazy danych zwracają po prostu z góry ustalone obiekty lub wartości. Taką zaślepkę przekazujemy do testowanego obiektu w miejsce oryginalnej implementacji. Umożliwia to prostsze i szybsze testowanie interesującego nas kawałka ...
Autor: Jako, że nadal nie mam czasu na pisanie nowych postów (tematów trochę jest - czasu mniej :(), postanowiłem udostępnić coś co kiedyś zostało nagrane, a jakoś nie zostało przedstawione szerszej publiczności. Poniżej linki do trzech moich (AttachedProperties oraz Style - już był publikowany na blogu, ale na innym serwerze) filmów umieszczonych na Cyber-Flick odnośnie WPF'a. W zamyśle, miał powstać cały cykl filmów o WPF - na razie jest tylko tyle. Jak będzie pozytywny oddźwięk to może powrócę do pon...
Autor: Podczas ostatnich prac z WPF'em napotykałem na strasznie irytujące sytuacje kiedy po uruchomieniu aplikacji wraz z debuggerem otrzymywałem nic nie mówiące mi komunikaty. Dla przykładu: An unhandled exception of type 'System.Windows.Markup.XamlParseException' occurred in PresentationFramework.dll Additional information: 'Add value to collection of type 'System.Windows.Controls.UIElementCollection' threw an exception.' Line number '6' and line position '10'.
Autor: Znalazłem ostatnio świetną bibliotekę ułatwiającą tworzenie aplikacji w WPF na urządzenia wielodotykowe – Surface Toolkit for Windows Touch. Jest to zbiór kontrolek znanych z Microsoft Surface przystosowanychdo korzystania z Windows Touch (Surface korzysta z Visty jako systemu operacyjnego, WM_TOUCH pojawił się dopiero w Windows 7). W skład tej biblioteki wchodzą:LibraryBar – kontener wyświetlaj...
W drugiej części ćwiczeń zaprezentuję bardziej skomplikowane zapytania Criteria API w NHibernate. Jako materiał treningowy, podobnie jak to było w pierwszej części, posłużą mi wcześniej opisywane statystyki. Metodyka pozostaje bez zmian - na początku T-SQL, później NH. Rozumiem, że może to budzić wątpliwości (zwłaszcza u obiektowych ortodoksów), jednak jak to w praktycznych zastosowaniach NH bywa, prędzej czy później trzeba zerknąć do środka zapytań i pobrudzić się trochę T-SQLem. Posunę się nawet do stw...
W poprzedniej części zacząłem pisać o przekształceniach i transformatach, w tym wpisie pokazane zostaną przykłady jak można wykorzystać transformaty do poruszania kamerą. Okazuje się, że przekształcanie (w tym obracanie, przesuwanie) wszystkich elementów w scenie może być niewygodne i nieopłacalne (np. ze względów wydajnościowych), dlatego czasem lepiej będzie wykonać przekształcenie dla samej kamery.
Przy prezentacji grafiki 3D ciekawą funkcjonalnością może być umożliwienie użytkownikowi oglądanie sceny 3D z wielu punktów widzenia, obracania elementów sceny itp... W tym wpisie zaprezentowane zostanie jak można taką funkcjonalność stworzyć w WPF 3D. Niniejszy wpis poza prezentacją różnych i niezależnych od konkretnego wykorzystania treści stanowi również opis pewnych zagadnień związanych z projektem Mesh Diagram 3D.Informacje dotyczące projektu oznaczone są etykietą MeshDiagram3D. Efekt oglądania sc...
Podczas prac związanych ze statystykami zauważyłem, że przy okazji pisania kolejnych testów dla obiektów repozytoriów powielam kod odpowiedzialny za przygotowanie bazy SQLite. Jak nakazuje dobry obyczaj, powtarzający się kod należy wydzielić.
Podobnie jak w przypadku większości standardowych operacji, gdy mowa o wysyłaniu poczty, biblioteka Microsoft .NET zawiera intuicyjnie zaprojektowane klasy pozwalające na szybką implementacje tej akcji we własnym kodzie. Pomimo niskiego stopnia trudności, pomysł zebrania wszystkich potrzebnych informacji w postaci krótkiego artykułu nie uważam za chybiony. Zapewne zaoszczędzi to czas programistom którzy szukają w pełni działającego przykładu, czy szybkiego przeglądu tego obszaru biblioteki .NET.
W poprzedniej części serii poświęconej tematyce WPF 3D, opisane zostały rodzaje materiałów, jakimi można pokrywać figury i bryły w tworzonej scenie 3D, pominięte ciszą zostały natomiast pędzle wykorzystywane do przygotowania odpowiedniego materiału. W tym wpisie wiadomości dotyczące pokrycia figur zostaną uzupełnione i omówione zostaną pędzle, które są elementem wykorzystanego materiału. Wykorzystanie pędzla jest konieczne do przygotowania materiału dla wybranej figury lub bryły w scenie. W odróżnieniu j...