W testach jednostkowych czasami warto testować również prywatne metody. Wynika to z zasady atomowości. Prywatne metody z reguły zawierają atomowe operacje, wykorzystywane potem w metodach publicznych. Jednym ze sposóbów jest użycie mechanizmu refleksji. W tym poście zajmiemy jednak się narzędziem publicize.exe, służącym do zmieniania modyfikatorów prywatnych na publiczne. Załóżmy, że mamy taką klasę:
Młody mężczyzna przyjeżdża do miasta. Jest całkiem przystojny, ma mało pieniędzy w portfelu, z łatwością nawiązuje kontakty z kobietami. Nie mówi wiele o swojej przeszłości, ale to raczej jasne, że spędził dużo czasu w bezdusznej, wielkiej korporacji. Jest naturalnie przyjazny i towarzyski, po cichu pewny siebie, ale nie arogancki. Dlatego łatwo mu chwytać się drobnych zleceń znalezionych na tablicy ogłoszeń w lokalnej Kawiarni...
Jak pisałem poprzednio, wykupiłem konto na Vipserv.org i przenoszę tam wszystkie swoje projekty (git, hg i svn) trzymane dotychczas na dysku. Poniżej kroki, które musiałem wykonać (na świeżej wirtualce z Windows) aby, mieć działający projekt zarządzany przez Redmine, a trzymany w Gicie.
Autor: Jakiś czas temu pisałem o TDD czyli o test driven development. Dzisiaj napiszę po co w ogóle bawić się w takie bezsensowne nadmiarowe rzeczy. Wikipedia definiuje to zagadnienie dosyć enigmatycznie: Test-driven development (TDD) jest techniką tworzenia oprogramowania zaliczaną do metodyk zwinnych (Agile). Pierwotnie była częścią programowania ekstremalnego (ang. extreme programming), lecz obecnie stanowi samodzielną technikę. Polega na wielokrotnym powtarzaniu kilku kroków:Najpierw programista pisz...
Ostatnio interesowała mnie sprawa użycia Unity razem z biblioteka MEFedMVV. Czemu w ogóle rozważałem taka kwestię? Otóż MEF pozwala jedynie zdefiniować na dwa sposoby jak dany obiekt ma być tworzony – czy będzie to jeden obiekt, czy obiekt będzie tworzony za każdym razem. Jeśli chcielibyśmy stworzyć jakieś bardziej zaawansowane reguły tworzenia obiektów (np. tworzenie nowego obiektu tylko dla danego wątku), wtedy musimy posłuż...
Autor: W poprzednim wpisie opisany został algorytm, jakim można się kierować przy wypracowywaniu rozwiązania pozwalającego na interakcję myszy ze sceną 3D. W tym wpisie zaprezentowany zostanie gotowy kod w języku C# pozwalający na osiągnięcie założonego celu. 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.W przygotowani...
Buszując w internecie, a dokładnie po googlu, natrafiłem na bardzo ciekawą rzecz - Google Font API. Są to internetowe czcionki udostępnione przez giganta zupełnie za darmo. Ich użycie bądź zastosowanie na stronie www jest banalnie proste.
Autor: O tym jak obracać obiekty (lub kamerę) w scenie 3D pisałem już jakiś czas temu w artykułach: „Transformacje i przekształcenia 3D” „Obracamy, przesuwamy, skalujemy? Kamerę (i nie tylko)”. W oparciu o opisane tam rozwiązania i przy pomocy kontrolek typu Slider, tworzona przeze mnie aplikacja (MeshDiagram3D), transformuje kamerę w scenie, przez co sprawia wrażenie transformacji sceny. Nie każdemu jednak spodoba się przesuwanie suwaków (Slider), niektórzy chcieliby pewnie obracać scenę, „łapiąc” za ob...
Niemal każdy program graficzny ma funkcjonalność: „dopasuj obraz do wielkości strony” (Zoom to fit, Auto-Zoom, itp ...). Zobaczmy jak można zrealizować taką funkcjonalność w programie pokazującym sceny 3D oparte o WPF 3D.
autor: Wykonywałem ostatnio skomplikowane akrobacje z bashem, plikiem /etc/rc.local, modułami kernela i innymi linuksowymi wynalazkami, aby uruchomić system spod znaku pingwina na swoim laptopie. Problem leżał w posiadaniu przezeń dwóch kart graficznych, działających w trybie hybrydowym, z których jedna (zintegrowana) działa zawsze, natomiast druga (zewnętrzna) budzi się na żądanie w celu obsłużenia bardziej skomplikowanych aplikacji graficznych i gier. Naturalnie Linux nie jest przygotowany do współprac...
Modal dialog to okienko dialogowe w SharePoint 2010. Można chyba powiedzieć, że jest to odpowiednik ModalPopup z AJAX Control Toolkit dla SharePointa. Z tego co wyczytałem, to jest to iframe wewnątrz div, więc w takim okienku może się wyświetlić fragment htmla znajdujący się na aktualnej stronie, bądź zupełnie inna strona (inny URL). Aby wyświetlić przepiękny modal dialog należy wywołać javascriptową funkcję SP.UI.ModalDialog.showModalDialog(), do której można przekaz...
Programik SPDisposeCheck pozwala sprawdzić, czy kod sharepointowy zawarty w jakiejś dllce nie będzie powodował wycieków pamięci z powodu niewywołania metody Dispose() na obiektach, które są IDisposable. Program można pobrać tutaj.
NuGet (wcześniej NuPack) to menadżer pakietów przeznaczony dla Visual Studio 2010. Dzięki temu narzędziu można w prosty i szybki sposób dodać do projektu najnowsze wersje popularnych bibliotek i rozszerzeń (Elmah, NHibernate, Castle i wiele innych) bez konieczności mozolnego przedzierania się przez kilka (naście) stron www w poszukiwaniu potrzebnych komponentów. NuGet potrafi ściągnąć dany pakiet, dodać wszystkie wymagane pliki jako referencję do proj...
Autor: Tym razem nie będzie nic odkrywczego, a wpis ten jest raczej „ku pamięci”, abym nie musiał więcej razy tego szukać (a może jeszcze komuś się przyda ...). Otóż te wpis będzie poświęcony iloczynowi wektorowemu.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.Czemu potrzebowałem iloczynu wektorowego? Otóż w aplikacji,...
Większość aplikacji w jakich tworzeniu uczestniczyłem była aplikacjami webowymi. Postanowiłem zmierzyć się z innym zadaniem – aplikacją desktopową, która oparta będzie o dostępne w .NET mechanizmy. Nie jest to komercyjny projekt a poligon testowy polegający na określeniu architektury, zaprojektowaniu systemu i jego implemenacji. Wiadomo – teoria teorią, jednak dopiero zderzenie się w praktyce z poruszanymi zagadnieniami pozwala na nauczenie się czegokolwiek zdecydowanie skuteczniej. Tyle tytułem nudnego...
autor: Pisałem wcześniej, że WPF 3D może być wykorzystane przy budowie interfejsów użytkownika, zastanówmy się więc jak można zapewnić interakcję sceny 3D z użytkownikiem. W tym artykule pokazane będzie jak można wyznaczyć wskazany myszą obiekt w scenie 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.Aby zapewnić uży...
W czasie MTS wykłady prowadzili prelegenci z Polski i zagranicy. Konferencji towarzyszyły również laboratoria i warsztaty "Hands-on Labs". Uczestnicy mogli spotkać się z wystawcami MTS, czołowymi przedstawicielami branży IT. Swoje stanowisko miały również społeczności Microsoft (i było ono bardzo popularne).
autor: Dzisiejszy wpis poświęcony będzie tematyce, którą powinienem był poruszyć już ładnych parę tygodni temu – testowaniu warstw dostępu do danych i logiki biznesowej. Zwlekałem z opisaniem tej części projektu, ponieważ planowałem zaprezentować również testy interfejsu użytkownika, których, koniec końców, wcale nie napisałem (pokusa oglądania aplikacji w akcji i sprawdzania wszystkiego własnoręcznie okazała się zbyt duża).
Architektura 4522 dni, 2 godziny, 49 minut temu 80 źrodło rozwiń
Od dłuższego czasu Microsoft udostępnia kontrolkę do generowania różnego rodzaju wykresów. Możliwości kontrolki są naprawdę bardzo duże. Dzięki niej można wygenerować naprawdę ładne wykresy. Jak wiadomo w aplikacji MVC kontrolka ta nie zadziała w taki sam sposób jak w aplikacji WebFormsowej. Tu nie można zwyczajnie położyć kontrolki na formie, gdyż wymaga ona PostBack'a. Musimy stworzyć obiekt samemu i go skonfigurować w kodzie. Na szczęście MSCharts ma zaimplementowane szablony, dzięki czemu w łatwy sp...
Ostatnio przeglądałem kilka bibliotek wspomagających tworzenie aplikacji z użyciem wzorca MVVM. Najbardziej do gustu przypadł mi Cinch w wersji V2. Framework ten działa razem z biblioteką MEFedMVVM. Użycie obu bibliotek jest bardzo proste. Najpierw tworzymy klasę, która będzie naszym modelem widoku: [ExportViewModel("MainViewModel")] [PartCreationPolicy(CreationPolicy.NonShared)] public class MainViewModel : IN...