C#

Debugowanie Visual Studio

Dziś postaram się przybliżyć rzadko stosowaną technikę wyszukiwania błędów w kodzie. Polega ona na użycia drugiej instancji Visual Studio do znalezienia błędów w pierwszej. Patrząc na ostatnie zdanie można zacząć się zastanawiać jak szukanie błędów w Visual Studio może pomóc w znalezieniu błędów w naszym programie. Należy zdać sobie sprawę, że tak naprawdę Visual Studio zawiera w sobie nasz kod. I naszym celem jest prześledzenie działania tego kodu. […]

By |2012-06-18T13:05:29+02:002 listopada 2011 |C#, Visual Studio|2 komentarze

Assembly generation failed — Referenced assembly does not have a strong name

Tworząc programy, bardzo często wykorzystuje się różne biblioteki stworzone przez inne osoby. Dopóki kod jest tworzony na potrzeby własne, nie patrzy się na to jak zostały przygotowane użyte biblioteki. Pierwszy momentem, kiedy zaczyna się zwracać na to uwagę jest podjecie decyzji o publikacji rozwiązania dla większego grona odbiorców. W tym momencie zaczynają się pojawiać myśli o zabezpieczeniu kodu. Najprostszym sposobem jest podpisanie plików wynikowych. I tu może pojawić się pierwszy problem. Może okazać się, że chcąc skompilować program otrzymamy następujący komunikat: Assembly generation failed — Referenced assembly ‚Foo’ does not have a strong name […]

By |2013-06-10T14:00:45+02:005 sierpnia 2011 |C#|5 komentarzy

Zaginiona metoda Main()?

Tworząc aplikację WPF czasami zachodzi potrzeba napisania własnej metody Main(). Przeglądając pliki znajdujące się w solucji można natknąć się pliki *.xaml i powiązanie z nimi *.xaml.cs oraz pliki kodu *.cs. Dopóki nie trzeba zrobić czegoś nie standardowego to często nie ma potrzeby, aby zagłębiać się w różnego rodzaju mechanizmy. Takim mechanizmem może być start aplikacji WPF. Ostatnio potrzebowałem dodać własną metodę Main(). Sądziłem, że będzie to proste – nowa klasa i odpowiedni kod. Oczywiście wcześniej sprawdziłem, czy nie ma tej metody już zdefiniowanej w plikach solucji. […]

By |2013-06-10T13:29:42+02:0020 maja 2011 |C#, WPF|1 komentarz

Aplikacja na dwa monitory

Obecnie coraz częściej można zobaczyć osoby pracujące w biurach na dwóch lub więcej monitorach. Praca taka jest wygodniejsza oraz efektywniejsza. Sam, jako deweloper nie byłbym w stanie przesiąść się z powrotem na jeden monitor. Dlatego też nie widzę przeciwwskazań, aby własne aplikacje pisać w taki sposób, aby możliwa była praca na kilku monitorach. Oczywiście nie zawsze jest to wykonalne. […]

By |2016-01-29T18:28:31+02:0024 marca 2011 |C#, WinForms, WPF|1 komentarz

Podpisywanie dokumentów XML

Tworząc różnego rodzaju programy czasami pojawia się problem zapewnienia autentycznością plików. Sytuacja taka ma miejsce, gdy w plikach tych znajdują się bardzo ważne dane, których zmiana mogłaby doprowadzić do wygenerowania różnego rodzaju strat. Takimi plikami mogą być pliki licencji, zawierające dane finansowe, czy dane medyczne, itp. Problem ten można rozwiązać w bardzo prosty sposób używając plików XML. Wystarczy, że podpiszemy plik XML i sprawdzimy ten podpis przed ponownym użyciem pliku. Jeśli będzie on poprawny to będziemy mieli pewność, że plik nie uległ nieautoryzowanym modyfikacjom. W przypadku wystąpienia jakiejkolwiek zmiany, podpis dokumentu nie będzie odpowiadał informacjom, które znajdują się w dokumencie. [...]

By |2013-06-10T13:31:35+02:0015 lutego 2011 |C#, XML|2 komentarze

LINQ nie takie straszne

Coraz częściej w projektach zaczynam używać LINQ i zaczynam dostrzegać zalety. Nie dość, że można w ten sposób trochę pisania kodu oraz zyskać na przejrzystości. Poniżej zamieszczę parę przykładów, w których pomału przerzucam się na LINQ. […]

By |2013-06-10T13:48:16+02:0031 stycznia 2011 |C#|3 komentarze

Ping

Polecenia ping nie trzeba nikomu chyba przedstawiać. Służy ono do diagnozowania połączeń sieciowych. Dzięki niemu można sprawdzić, czy istnieje połączenia między dwoma hostami, jaka jest jakość tego połączenia oraz jakie występują opóźnienia. Dodatkowo jeśli podajemy adres hosta nie w postaci adresu IP to możemy zdiagnozować, czy poprawnie rozwiązywane są nazwy przez serwer DNS. […]

By |2012-06-18T13:36:09+02:0019 stycznia 2011 |C#|1 komentarz

Lista zainstalowanych aplikacji

Czasami występuje potrzeba znalezienia informacji o tym jakie oprogramowanie jest zainstalowane na komputerze. Przykładowo chcemy się dowiedzieć, czy ktoś ma już zainstalowany dany program i gdzie jest zainstalowany. Wiedza ta jest potrzebna, gdy chcemy dodać przykładowo jakiś plik do katalogu z zainstalowanym już programem. Najprostszym przykładem jest pisanie różnego rodzaju pluginów. Problem nie występuje jeśli aplikacją została zainstalowana w katalogu domyślnym, który znamy, ale tego nie można już zagwarantować. […]

By |2012-06-18T13:36:23+02:0010 stycznia 2011 |C#|1 komentarz

Snippety

Ostatnio odkryłem na nowo funkcjonalność definiowania własnym szablonów kodu. Funkcjonalność ta jest bardzo często nie wykorzystywana przez programistów, ale potrafi zdziałać cuda. W pisaniu aplikacji biznesowej zawsze przychodzi taki moment, że trzeba napisać kod służący do zapisywania danych do bazy, jak równię ich odczytywania. W takim przypadku 90% kodu jest taka sama. Po pierwsze odczytujemy numer kolumny, w której przechowywane są dane w np. SQLDataReader. A następnie budujemy na podstawie danych obiekty. W trakcie odczytu danych z bazy należy oprogramować działanie w sytuacji gdy wystąpi null. I tu najczęściej sprawdza się czy w kolumnie odczytywanej występuje wartość null. Jeśli tak [...]

By |2013-06-10T13:34:53+02:0030 listopada 2010 |C#, Dodatki / Narzędzia|1 komentarz