autor: Ostatnio przeglądając kod udało mi się znaleźć następujący fragment:lock(this){// Do something} Do zsynchronizowania dostępu do współdzielonego zasobu używany jest obiekt, w którym występuje ten fragment kodu. Teoretycznie fragment ten jest poprawny. Co więcej w programie nie wystąpił żaden problem z zakleszczeniem. Przeglądając literaturę możemy natrafić na następujące przykłady: 1. W O’Reilly Programming C# można spotkać następujący przykład użycia słowa kluczowego ...
Strona głównaUżytkownik
Michal Jankowski | użytkownik
Programowanie rozproszone 4716 dni, 5 godzin, 51 minut temu 396 źrodło rozwiń
2lis/110Debugowanie 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. Sztandarowym przykład...
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...
Wpis porusza temat sprzedaży aplikacji napisanych na telefony z systemem Windows Phone 7. Główny nacisk położony jest na stworzenie dema aplikacji, którą chce się sprzedać - czyli jak sprawdzić czy program jest w pełnej wersji, jak ograniczyć jego funkcjonalność oraz zachęcić użytkownika do zakupu stworzonego programu.
Autor: Niejedną już umowę w swoim "wolnostrzelcowym" życiu podpisałem... i właściwie ani razu nie była ona taka jak być powinna. Co prawda za każdym razem następuje pewien postęp, jednak mimo to zawsze w praniu okazuje się, że jednak o czymś - ja lub Klient - nie pomyśleliśmy. Nie wynikało to bynajmniej z chęci jednej strony do oskubania drugiej strony, co raczej z braku doświadczenia lub zbyt nieformalnego podejścia do bardzo ważnych kwestii. Postaram się tutaj zebrać garść porad wyniesionych zarówno z...
Podwójnie wywołane zdarzenie w Windows Phone 7 Bawiąc się trochę z Windows Phone natrafiłem na problem, który był dość często zgłaszany w przypadku kontrolki TextBox. Błąd jest śmieszny - w emulatorze zdarzenie jest wywoływane dwukrotnie. Błąd ten w moim projekcie pojawił się w przypadku kontrolki TextBlock i obsługi kliknięcia. W projekcie potrzebowałem zrobić kontrolkę, która będzie zawierała CheckBox oraz dwa pola tekstowe – TextBlock. Każde kliknięcie na TextBlock miało zmieniać stan kontrolki...
Mobile development 4939 dni, 3 godziny, 40 minut temu 42 źrodło rozwiń
20maj/110Zaginiona 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 ...
Dziś mam dobrą wiadomość. Wczoraj firma Red Gate ogłosiła, że wycofuje się częściowo z pobierania opłaty za program .NET Reflector. Częściowość oznacza, że dotychczasowi użytkownicy będą mogli pobrać i zainstalować wersję 6.8 do której otrzymają wieczystą licencję. Wersja ta zostanie wypuszczona na początku maja i będzie to ostania darmowa wersja. Od wersji 7 program będzie całkowicie komercyjny, gdzie podstawowa licencja kosztuje obecnie 35$.
Artykuł pokazuje w jaki sposób można sprawdzić poprawność podpisanego dokumentu XML. Popisywanie dokumentów pozwala wykryć nieautoryzowane zmiany w dokumencie.
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ę...
W trakcie pisania kodu przyzwyczailiśmy się już do tego, że należy równolegle pisać testy. Podejść, kiedy i jak pisać testy jest wiele. Do wyboru mamy też kilka dostępnych frameworków testowych, ale nie o tym chciałem napisać. W tym artykule chcę poruszyć temat badania pokrycia kodu testami.W trakcie pisania testów niejednokrotnie występuje potrzeba sprawdzenia, które fragmenty kodu pokryte są testami, a które nie.
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.
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.
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...
autor: Dziś potrzebowałem zrobić bardzo nietypową operację – zresetować indeks w tabeli w MS SQLu. I szczerze mówiąc nie sądziłem, że robi się to tak prosto. W tym celu należy użyć komendy:DBCC CHECKIDENT (nazwatabeli, reseed, ostatniindeks) W komendzie podajemy nazwę tabeli, w której chcemy zresetować indeks oraz numer ostatniego indeksu w tabeli. Jeżeli chce się aby automatycznie generowane numery zaczynały się od 1 to należy użyć tego polecenia w następujący sposób:DBCC C...
Bazy danych i XML 5112 dni, 13 godzin, 19 minut temu 236 źrodło rozwiń
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.
Dzisiejszego dnia potrzebowałem użyć serializacji XML dla klasy Dictionary. Bardzo się zdziwiłem gdy okazało się, że klasa ta nie wspiera tego rodzaju serializacji. Wydawałoby się, że zapis danych w formacie XML jest dzisiaj już standardem, ale okazuje się, że jednak nie wszędzie. Stosując podstawową zasadę programisty po co pisać coś co ktoś inny już napisał uruchomiłem Google i zacząłem szukać rozwiązania. Udało mi się znaleźć kilka przykładów rozwiązania tego problemu, al...
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...
W aplikacjach biznesowych bardzo często występuje funkcjonalność importu / eksportu danych z / do Excela. Jednym ze sposobów pobierania danych z Excela jest zastosowanie OLE DB jako dostawcy danych. Nie jest to może rozwiązanie najbardziej optymalne, ale czasami nie ma możliwości wpływu na jego wybór. W celu skorzystanie z tego sposobu należy zdefiniować łańcuch połączenia. I tu pojawia się problem ponieważ aby ten sposób zadziałał musi być zainstalowany Excel. Dodatkowo ...