Zawsze podczas pisania aplikacji okienkowej lub konsolowej używałem metody Environment.Exit() do zakończenia jej działania. Normalka. Natknąłem się jednak na alternatywne rozwiązanie dedykowane dla "sytuacji wyjątkowych". Gdy program znajdzie się w stanie, w którym NIC mu już nie pomoże, to lepszym wyjściem może okazać się zatrzymanie go poprzez wywołanie Environment.FailFast(). Nie dość, że omijamy wówczas wszystkie try/catch oraz finalizery, to jeszcze w eventlogu automatycznie tworzy się wiadomość o ...
Strona głównaUżytkownik
arek | użytkownik
Typy Enum są ładnym rozwiązaniem służącym do definiowania stałych. Zamiast przekazywać nic nie mówiącą liczbę do funkcji, możemy zdefiniować enum i przekazać np. TextAlignment.Left – z pewnością poprawi to czytelność kodu. Czasami jednak chcemy przekazać dwa enumy naraz lub dowolną ich kombinację. W tym celu musimy skorzystać z tzw. flag. Zacznijmy od razu od przykładu:[Flags] enum Days { None =0, Sunday =1, Monday =2, Tuesday =4, Wednesday =8, Thursday =16, Friday =32, Sa...
Test Driven Development Autor: Arkadiusz Benedykt Opublikowano: 2011-07-08 Szybki rozwój technologiczny oraz dynamicznie zmieniające się wymagania rynku powodują, że dzisiejszy programista powinien być Agile – zwinny, giętki ogólnie elastyczny. Na tej fali powstało wiele metodologii, które mają na celu szybsze dostarczanie produktu do klienta. Bez względu na to, czy te metodologie są skuteczne, czy nie, mają jedną wspólną wadę – wymagają zmiany sposobu pracy całego zespołu. Czy możliwe jest prowadzenie ...
Dzisiejszy wpis chciałem poświęcić dodatkowi do Visual Studio, bez którego uważam, że nie da się pracować. Osoby, które go nie używały nie wiedzą co tracą. Tym dodatkiem jest Productivity Power Tools. Jest on darmowy i można go pobrać ze strony http://visualstudiogallery.msdn.microsoft.com/en-us/d0d33361-18e2-46c0-8ff2-4adea1e34fef. Instalacja jego jest bajecznie prosta. Należy tylko pamiętać, że trzeba po jego zainstalowaniu zresetować Visual Studio. A...
Na mojej sesji podczas tegorocznego MTS-a pokazywałem w pewnym momencie odpytywanie źródła danych OData za pomocą narzędzia LINQPad. Zdziwiło mnie, jak wiele pytań po sesji miałem na jego temat, skąd pobrać, czy jest darmowe etc.. W związku z tym postanowiłem napisać kilka słów na jego temat i zachęcić do jego używania, ponieważ jest to bardzo fajne narzędzie. 1. Pobieranie i instalacja LINQPad dostępny jest w dwóch wersjach, z c...
Tworząc aplikację, na pewnym etapie jej rozwoju, podejmujemy decyzję o implementacji możliwości konfiguracji tegoż systemu. Sposobów, czy też miejsc trzymania ustawień jest kilka. Artykuł opisuje w jaki sposób można zarządzać tymi zasobami.
var jest rodzajem zmiennej, której typ jest wnioskowany na podstawie przypisania do niej wartości. Można powiedzieć, że jest to inteligentna zmienna..
Niejednokrotnie tworząc własne kolekcje danych, chcielibyśmy mieć swobodę ich edycji, filtrowania i przeszukiwania. Podstawowe operacje dostarczone przez interfejs kolekcji, nie rozpieszczają użytkowników. W takim momencie, każdy programista z zazdrością spogląda na kolegę, który zajmuje się bazą danych i który dzięki zapytaniom, może właściwie w dowolny sposób manipulować posiadanymi danymi. Jednak jeśli jesteś programistą .Net i korzystasz z tego Frameworka w wersji co najmniej 3.5 - to mam dla Ciebie ...
Architektura 5131 dni, 14 godzin, 23 minuty temu 173 źrodło rozwiń
“Reference in the manifest does not match the identity of the downloaded assembly MójProgram.exe.” no i klops. Zaczynając jednak od początku, projekt nad którym pracuję obecnie to solution z blisko 30-toma projektami, część w C# a część w VB.NET. Po podniesieniu VS2005 do VS2008 okazało się, że nie można opublikować nowej wersji za pomocą ClickOnce (używając programu MageUI). Jedyna rzecz, która się zmieniła to struktura plików sln i proj ponieważ Framework został bez zmiany (2.0) zatem gdzie leży proble...
Autor: Problem jaki mi ostatnio doskwierał dosyć mocno zarówno w projekcie Desktop Info jak i innym hostowanym na CodePlex to ciągłe wpisywanie użytkownika i hasła. Nie wiem jak u Was ale u mnie nie ma checkbox-a typu zapamiętaj hasło. To co jednak można zrobić, to wykorzystać Credential Managera w Windows 7 (bo z takowego korzystam). To co chcemy uzyskać to mniej więcej coś takiego: Sekcja Windows Credentials pokazuje nam wszystkie zapisane hasła odnośnie innych maszyn z logowaniem windowsowym. Wybie...
Autor: Podczas pracy nad przyszłymi elementami Desktop Info doszedłem do momentu, w którym przydało by się mieć schemat pliku xml czyli xsd. O ile w moim przypadku stworzenie takiego schematu nie powinno nastręczać problemu (plik jest bardzo prosty) dla kogoś kto płynnie włada xsd-ami to mi niestety by zajęło trochę czasu, żeby poprzypominać sobie konstrukcję. Wprawdzie Visual Studio bardzo przyjemnie umila ten proces przez podpowiadanie składni i kolejnych elementów to jednak istnieje szybsza metoda. M...
Bazy danych i XML 5175 dni, 9 godzin, 15 minut temu 105 źrodło rozwiń
We wpisie o LinqToXml pisałem jak można czytać z pliku XML. Co jednak z zapisywaniem? Otóż jest to równie łatwe. Znowu zaprzęgniemy do pracy Linq. Najpierw oczywiście otwieramy plik a następnie pozostaje stworzyć XDocument z zawartością. Zawartość możemy dodawać ręcznie albo (jak na przykładzie poniżej) wybrać elementy za pomoca Linq i zwrócić je w takiej postacji jakiej chcemy mieć je zapisane.
Bazy danych i XML 5162 dni, 12 godzin, 38 minut temu 75 źrodło rozwiń
Niektóre aplikacje warto wyposażyć w Splash Screen. W przypadku WPF-a (który jest wykorzystywany w DesktopInfo) sprawa jest banalnie prosta. Wystarczy dodać plik png do projektu a następnie we właściwościach pliku wybrać SplashScreen
[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 ...
Wchodząc na stronę http://desktopinfo.codeplex.com/WorkItem/AdvancedList.aspx znajdziesz listę rzeczy i/lub błędów które zostały zapisane w ramach pracy nad projektem DesktopInfo. Pozwala to na wygodne administrowanie projektem. Możemy robić listę błędów oraz nowej funkcjonalności. Lista ta dostępna jest także w Visual Studio Wszystko to dzięki Team Explore-owi oraz TFS-owi. Mamy funkcjonalność, która pozwoli nam łatwiej zarządzać projektem w przypadku pracy wieloosobowej. Prawdziwa magia zaczyna ...
W świecie informatyki, zaprogramować można wszystko. Ponadto, każdy problem, czy zagadnienie ma tysiące rozwiązań (a może nawet tyle co programistów na świecie:)). Niektóre problemy - zagadnienia, powtarzają się na tyle często, że pewne mądre głowy opracowały gotowe sposoby, wzorce rozwiązań takich problemów. Kiedyś opisywałem już wzorzec projektowy Model View Controller. Dziś, chciałbym zaprezentować wzorzec projektowy Factory (z ang. fabryki), ułatwiający tworzenie nowych obiektów. Przykłady zaprezent...
Architektura 5135 dni, 9 godzin, 13 minut temu 297 źrodło rozwiń
Ostatnio, z powodu choroby, zaniedbałem trochę projekt Rankingu Sejmowego. Przez ten czas nie powstało zbyt dużo nowego kodu (ledwie kilka poprawek i jakieś pojedyncze testy). Żeby to trochę zrekompensować postanowiłem napisać kilka słów o tym jak ułatwić sobie życie pracując z Visual Studio i Resharperem, a przynajmniej jak ja je staram się sobie ułatwiać. Jak wiadomo Reshaper to nieoceniony narzędzie wspomagające pracę w Visual Studio na każdym kroku. Oprócz osławionego skrótu...
Od początku pracy nad DesktopInfo wiadome było, że będzie potrzebny mechanizm do ładowania pluginów, dodatkowych modułów, które rozszerzą możliwości aplikacji bez potrzeby jej rekompilacji. Pierwszy pomysł jaki przechodzi do głowy to refleksja. Jednak jakiś czas temu postała biblioteka MEF, która została włączona do .NET Framework 4.0 Ponieważ aplikacja DesktopInfo wykorzystuje właśnie tą wersję .NET, to dlaczego nie wykorzystać nowej funkcjonalności. Zatem zobaczmy krok po kroku co jest potrzebne aby ...
Architektura 5133 dni, 13 godzin, 27 minut temu 160 źrodło rozwiń
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ć".
JustMock jest narzędziem dla programistów pomagającym tworzenie unit test’ów (testów jednostkowych). JustMock pozwala na szybkie i łatwe testy, gdzie jesteśmy uzależnieni od bazy danych, web serwisów. Czyli krótko, tworzenie fake’ów aby zadowolić nasze testy. Poniższe 2 rysunki bardzo fajnie ilustrują ideę.