Czy otrzymałeś kiedyś taki oto błąd? The calling thread cannot access this object because a different thread owns it. Dzieje się tak, najczęściej wtedy, gdy próbujemy aktualizować kontrolki użytkownika z innego wątku. Taka czynność nigdy nie była dobrym pomysłem i trzeba było o tym pamiętać, jednak od wersji bodajże 2 .net Framework-a dostajemy taki wyjątek jak powyżej. Dzięki temu, nawet jeśli coś zostanie przeoczone i będziemy jednak chcieli wykonać aktualizację kontrolki użytkownika z innego wątku n...
Strona głównaUżytkownik
macko | użytkownik
Programowanie rozproszone 5163 dni, 6 godzin, 7 minut temu 81 źrodło rozwiń
Autor: Wczoraj wieczorem przysiadłem chwilę i poszperałem w sieci co trzeba zrobić, by debugger Visuala ładnie „wyświetlał” obiekty naszych klas(np. po najechaniu na niego myszką, w okienku Watch). Gdy jeszcze moim głównym językiem był C++ też zapragnąłem mieć coś takiego. Niestety, w przypadku programowania natywnego nie ...
Kolejny post dotyczący podstaw ASP.NET. Tym razem przyszedł czas na omówienie mechanizmu, jakim jest View state. Mechanizm ten jest wykorzystywany do przechowywania informacji, które muszą być podtrzymane pomiędzy kolejnymi postbackami. Informacja o przechowywanych danych jest zawarta w jednym lub więcej polach ukrytych (hidden fields) dołączanych do kodu html strony. Warto podkreślić, że View state przeznaczony je...
Debugowanie jest procesem niezwykle złożonym. Istnieją publikacje opisujące techniczne aspekty wyszukiwania błędów w kodzie w ten właśnie sposób. Czasami warto jednak zapoznać się z jakimś zagadnieniem w oderwaniu się od konkretnej technologii. Taką właśnie pozycją jest Debugowanie. Jak wyszukiwać i naprawiać błędy w kodzie oraz im zapobiegać (oryg. Debug It!: Find, Repair, and Prevent Bugs in Your Code). Książka nie jest opisem jakiegoś narzędzia wspomagającego debugowanie, platformy uruchomieniowej cz...
Zdarza się, że programując czy to w Silverlightcie czy w WPF-ie, otwierając plik .XAML nie chcemy widzieć edytora. A to być może z powodów wydajnościowych, a może “ideologicznych” bo jesteśmy “hardcorowymi developerami” i designery są “dla małych dziewczynek” . Jak w Visual Studio (na pewno 2010, 2008 nie sprawdzałem) osiągnąć taki efekt? Bardzo prosto. Należy otworzyć taką ścieżkę menu: Tools -> Options -> Texteditor -> XAML -> Mis...
Witam dziś podczas kodowania natrafiłem na dosyć nieprzyjemne utrudnienie. Mianowicie dotyczy ono wstrzykiwania poprzez IoC HttpContext i pobierania aktualnego kontekstu do klas które tego potrzebują np. sesja. ciasteczka itp. Jak wiadomo HttpContext jest trudno dostępnym obiektem i ciężko w łatwy sposób wstrzyknąć. Wiec postanowiłem napisac wrapper do HttpContext.
Po odinstalowaniu Resharpera zauważyłem, że w edytorze nie są zaznaczane błędy. Chwila grzebania w opcjach i udało się doprowadzić Visual Studio do stanu sprzed instalacji narzędzia. Wystarczy wybrać Tools > Options > Text Editor > C# > Advanced i zaznaczyć w Editor Helper opcje Underline errors in the editor oraz Show live semantic errors.
Zamieszczam przykład zastosowania LINQ To SharePoint do pobierania, zapisywania, aktualizowania i usuwania danych z dwóch list powiązanych ze sobą lookup fieldem (relacja jeden do wielu).
Bazy danych i XML 5170 dni, 5 godzin, 38 minut temu 47 źrodło rozwiń
Silników fizycznych mamy całą masę: Box2D, Bullet, Havok, PhysX, Newton Game Dynamics. Część jest OpenSource, część darmowa tylko do zastosowań niekomercyjnych, niektóre tylko komercyjne. Część 2D, cześć 3D. Część stosunkowo mało rozbudowana(np. pierwsze dwa z mojej listy), część to ogromne biblioteki(te komercyjne). Niestet...
autor: To co napisałem poniżej to narazie koncept, który w sumie już działa, ale wymaga jeszcze nieco szlifu. Potrzebowałem skomunikować ze sobą dwie aplikacje webowe oparte o MVC. Naczytałem się o WCF i innych sposobach komunikacji poprzez Webservice i zawsze oznaczało to sporej ilości dłubania. Zresztą jak dobrze poszukać to znajdą się opinie, że budowanie osobn...
Kilka dni temu ostrzegaliśmy przed atakiem na webaplikacje pisane w ASP.NET. Dziś znamy już szczegóły błędu, a Microsoft potwierdził zagrożenie. Poniżej prezentujemy jak zabezpieczyć się przed atakiem.Atak na ASP.NET (demonstracja) Błąd, tak jak pisaliśmy kilka dni temu, korzysta z tzw. wyroczni, czyli polega na wysyłaniu zaszyfrowanych zapytań do serwera i wyłapywaniu różnic w jego odpowiedziach — różne kody błędów świadczą o tym, czy serwer poprawnie rozszyfrował wiadomość. Na tej podstawie można wycią...
Microsoft przyznał w końcu, że aplikacje webowe stworzone przy pomocy praktycznie dowolnej wersji środowiska ASP.NET są podatne na atak typu Padding Oracle. Oznacza to, że w zależności od konkretnej aplikacji, intruzowi może udać się przykładowo uzyskanie dostępu do zawartości zaszyfrowanych ciasteczek i innych danych sesyjnych. Około 25% wszystkich aplikacji webowych bazuje na ASP.NET, w związku z...
Najwyższy czas na kolejną mini-porcję ciekawostek związanych z najpopularniejszym obecnie framework’iem języka JavaScript – jQuery.
Dla odmiany zatem, w kolejnym odcinku moich zmagań nad projektem, przedstawiam zagadnienie walidacji danych wprowadzanych przez użytkownika w ASP.NET. Wykorzystane przy tym będą wbudowane mechanizmy, które sprawiają, że walidacja może być prosta i przyjemna, a przynajmniej nie tak straszna jak może si...
Sposób w jaki ASP.NET szyfruje ciastka nie jest bezpieczny. Szyfrowanie można złamać, co w konsekwencji pozwala atakującemu na wgląd w prywatne dane sesji użytkownika webaplikacji pisanych w ASP.NET. Szacuje się, że na atak podatnych jest 25% wszystkich webaplikacji na świecie.Ataki Padding Oracle Błąd wynika z niepoprawnej implementacji AES-a w trybie CBC (Cipher Block Chaining) — jest ona podatna na atak Oracle Padding, pozwalający na odszyfrowanie danych bez znajomości klucza. Odnalezienie właściwego ...
Autor: Poprzednim razem pisałem dla tych, którzy marzą, że po nauczeniu się jakiegoś języka programowania, szybko zapełnią swój garaż nowymi modelami Ferrari, Astona Martina czy Lamborghini. Tym razem postaram się skupić bardziej na odpowiedzeniu na pytanie ludziom, którzy wyżej stawiają sobie własny rozwój niż ciągnący się za nimi tłum piszczących nastolatek. Źle. Kto widział żeby za programistami gani...
Przeglądając różne tutoriale związane z ASP.NET MVC 2 napotkałem na pewien szczegół, który początkowo był dla mnie niezbyt zrozumiały. Mam tu na myśli znaczniki, których używamy do wyświetlania danych/kodu w widokach. Jak się okazuje, istnieją trzy typy tych znaczników, które są bardzo podobne do siebie, lecz stosuje się je w różnych sytuacjach. Poniżej krótka ściągawka, którą utworzyłem na bazie własnych doświadczeń....
Ostatnio mam szczęście do "dziwnych" błędów. Dwa dni temu pisałem o htmlfile: Access Denied. Przy okazji podziękowania dla Tomka i Procenta za wskazówki jak sobie z nim poradzić. Teraz natknąłem się na błąd z zupełnie innej beczki związany z komunikacją z bazą danych. Zadanie do wykonania: wywołać procedurę składowaną. Zabrałem się do tego jak zawsze czyli nawiązałem połączenie do bazy danych, utworzyłem DbCommand, dodałem parametry, ustawiłem wartości parametrów i wywołałem procedurę. Niestety tym razem...
Bazy danych i XML 5184 dni, 18 godzin, 21 minut temu 30 źrodło rozwiń
Dość często natyka się człowiek (bądź ktokolwiek inny) całkiem niechcący na taki czy inny kawałek internetu mający uchodzić za ZABAWNY. Zabawność, oceniana w skali 1-10, mimo wysiłku autorów zwykle oscyluje jak dla mnie w granicach 3-4. Poniżej przedstawiam sześć ewenementów bezapelacyjnie ocenionych przeze mnie na 10/10, które w ciągu ostatnich kilku miesięcy spowodowały zetknięcie się kącików mych ust w centralnym punkcie tyłu głowy. Większość z was pewnie je zna. Wszystkie są świetne. Kolejność losowa.
Dokumentacja techniczna może przybrać różnoraką formę - od wysokopoziomowego przeglądu, przez instrukcje krok po kroku, aż po automatycznie generowaną dokumentację API. Niestety, żaden format nie jest satysfakcjonujący dla wszystkich użytkowników; różnice w sposobie uczenia się ludzi są ogromne, a więc dobrze udokumentowane projekty muszą dostarczać dokumentacji pod wieloma postaciami.