Czasami podczas wykonywania kodu może się zdarzyć, że nasz kod się wysypie z tym wyjątkiem. Problem ten występuje kiedy próbujemy się odwołać do atrybutów klas LINQ2SQL po usunięciu z pamięci powiązanego z nimi DataContextu, czyli defakto oderwania obiektów od bazy danych. Podstawową przyczyną tego problemu jest niejawna optymalizacja linq2sql zwana lazy loading. Mechanizm ten zakłada że nie ładowane są wszystkie atrybuty i kolejcjie z bazy a jedynie to co jest potrzebne, na podstawie wyrażeń lambda oraz...
SQL Server posiada kilka mechanizmów umożliwiających przechowywanie dużej ilości danych np. plików graficznych. FileStream Pierwszych z nich jest FILESTREAM. Przed pojawieniem się typu FILESTREAM, programiści najczęściej zapisywali pliki sami na dysku a lokalizacje przechowali w bazie danych. Rozwiązanie dobre jednak kłopoty powstały w momencie synchronizacji – co jeśli ktoś usunie jakiś plik z dysku? FILESTREAM to nic innego jak zapisanie pliku w bazie danych. W przeciwieństwie do typu varbinary, FILEST...
Bazy danych i XML 4312 dni, 21 godzin, 20 minut temu 148 źrodło rozwiń
jQuery UI dialog umieszczony w aplikacji ASP.NET nie zawsze zachowuje się dobrze. Jeśli wewnątrz warstwy, która pojawia się jako zawartość dialogu, jest jakaś kontrolka serwerowa (taka jak TextBox), to po PostBacku jej wartość się czyści. Ten człowiek znalazł na to sposób:
CAPTCHA to akronim od „Completely Automated Public Turing Test to Tell Computers and Humans Apart”. W rozwinięciu: chodzi o obrazek (lub w mojej prostej wersji działanie matematyczne), którego treść (wynik) trzeba wpisać w formularzu, aby przejść dalej. Zaletą tekstowego Captcha jest prostota i przejrzystość rozwiązania. Ostatnio mój blog zac...
Przyszła pora wrócić do tematu aplikacji wielojęzycznych. Tym razem skupię się na WinForms. Zacznę od tego, że część rzeczy, o których pisałem we wcześniejszym poście na temat aplikacji ASP.NET można zastosować do innych technologii, w szczególności do WinForms. Dla przypomnienia: Jeśli chcemy aby nasza aplikacja miała wiele wersji językowych to przygotowujmy się do tego od pierwszej linijki tej aplikacji.Stałe znakowe w kodzie są złe, bardzo złe, niewyobrażalnie złe... Stałe zawierając...
MVC 3 jest fajne, nie jest idealne, ale jest bardzo dobre i można za pomocą jego stworzyć niesamowite rzeczy. Jednak mimo wszystko, MS zawsze potrafi pewne rzeczy utrudnić jak nie wiem co. W szczególności z jego ulubionym typem widoczności internal, który uważa chyba za święty nawet w aplikacjach open-source. Jednym z takich ich fopa moim zdaniem jest EditorFor, niby fajny, niby wystarczający, ale wystarczy, że chcemy dać inną klasę by wyróżnić dany element i już trzeba tworzyć EditorTemplate, a mnie to...
blackfoot.pl, autor:Ostatnio wpadła mi w ręce książka The Art of Unit Testing: with Examples in .NET autorstwa Roy’a Osherove’a. Muszę przyznać, że mam nieco mieszane uczucia po jej przeczytaniu. Minusy: Książka liczy około 280 stron, ale czytając ją miałem wrażenie, że ta liczba jest mocno naciągnięta – olbrzymie marginesy, bardzo szeroka czcionka, dużo niezagospodarowanego miejsca itp. Samym formatowaniem można by było zaoszczędzić przynajmniej kilkadziesiąt stron – ile drzew mogłoby wciąż rosnąć! Pie...
Czwarta już część cyklu o Rx. Tym razem przyszła kolej na obróbkę danych z akcelerometru telefonu z systemem WP7.
Mobile development 4319 dni, 21 godzin, 18 minut temu 101 źrodło rozwiń
autor: W ostatnim postcie wspomniałem o trzeciej możliwości walidowania pól po stronie klienta: Nierobienie nic i przeciążenie zdarzenia submit, tak by wykonać raz (nie licząc pierwszego wymuszonego przez unobtrusive validation) parsowanie Może się zastanawiać ale po co mamy to przeciążać, tylko ze względu na te kilka dynamicznych pól? TAK :) (odpowiedź na to pytanie na końcu postu) oraz dlatego, że domyślna walidacja zwraca false, czyli blokuje jakiekolwiek akcje dalej. Jeżeli zostanie ona wykonana ...
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 ...
W świecie projektów .Netowych dość często spotykam się z sytuacją, gdzie intensywnie używane jest Visual Studio, natomiast rola TFS ogranicza się jedynie do kontroli wersji. Co prawda od czasu do czasu ktoś stworzy Taska lub Buga, w porywach nawet dołączy do niego związany kod, jednak nie ma to wiele wspólnego z ogólnie obowiązujacym procesem (inna sprawa czy w ogóle obowiązuje jakiś proces :)). A jednak nazwa Team Foundation Server wskazuje na pewien zakres odpowie...
W poprzedniej i zarazem pierwszej części tutoriala do WPF, powiedzieliśmy sobie co nieco na temat samego WPF, zawartego w nim języka XAML oraz menadżerów układów. Dziś przyszła kolej na kontrolki, bez których w GUI, nie było prawdopodobnie by niczego. Co należy rozumieć jako kontrolkę? Są to wszystkie buttony, gridy, listy, comboboxy itp. itd. Każda z kontrolek, posiada pewien wspólny zestaw właściwości, które bierze się z reguł dziedziczenia zawartych w WPFie (patrz akapit o drzewach). Oprócz tego, kon...
Po tym jak okazało się, że Reflector nie będzie już dostępny w najprostszej wersji jako darmowe oprogramowanie, wielu programistów zaczęło prace nad odpowiednikiem.
W poprzedniej części spowodowaliśmy by generowały się atrybuty walidacyjne dla elementów dynamicznie generowanych. Jednakże mimo ich poprawnego dodawania do elementów, walidacja po stronie klienta nie działała dla dynamicznie dodanych elementów – przy tworzeniu byli to autorzy książki, zaś przy edycji nowi jeszcze nie dodani autorzy. Rozwiązanie byłoby dość banalne, gdyby mi choć raz zadziałało, tak jak wspominał Procent u siebie na blogu, powinno wystarczyć wykonanie następującej linijki:
Kolejny dzień kolejny wpis na blogu. Postawiono przede mną zadanie poprawy wydajności aplikacji w kontekście dodania do niej wielu wątków roboczych. Zadanie proste i banalne używając .NET. W związku z tym dziś słów kilka o klasie ThreadPool . Dzięki klasie ThreadPool i jej metodzie ThreadPool.QueueUserWorkItem sprawa jest naprawdę prosta. Jej użycie sprowadza się do "powiedzenia w C# - hej jest robota do wykonania niech ją ktoś dla mnie wykona w wolnej chwili". Naprawdę ... to takie proste. Oczywiście ta...
Jakiś czas temu, ku mojemu zaskoczeniu, udało mi się zdać egzamin 88-970 (SQL Server 2008 Microsoft Certified Master Knowledge Exam). To był bardzo trudny egzamin i moja satysfakcja ze zdania go była naprawdę duża. Pierwszy krok do tytułu Microsoft Certified Master (MCM) został postawiony :-) Idąc za ciosem podszedłem wczoraj do egzaminu 88-971 (SQL Server 2008 ...
Bazy danych i XML 4324 dni, 8 godzin, 39 minut temu 202 źrodło rozwiń
Ostatnimi czasy zajmowałem się przygotowanie obcojęzycznej wersji systemu, na który składa się cała plejada aplikacji napisanych w różnych technologiach, od ASP.NET przez WinForms po WPF. Do tej pory zagadnienie to znałem przede wszystkim ze strony teoretycznej. To znaczy wiedziałem o różnych mechanizmach wbudowanych w .NET wspierających ten proces, nie omieszkałem ich wypróbować ale nie miałem okazji zastosować tej wiedzy do dużego i skomplikowanego systemu. Powiem więcej, proces lo...
Do grona rzeczy, które wyróżniają aplikację, już na pierwszy rzut oka, najczęściej z pewnością możemy zaliczyć jej GUI, czyli innymi słowy wartstwę prezentacji. W .Necie, praktycznie od zawsze, GUI tworzyło się za pomocą dość wygodnych Windows Forms, które za pomocą metody Drag & Drop (Przeciągnij i upuść) pozwalały na szybkie tworzenie wizualnego obszaru naszej aplikacji, często bez napisania nawet jednej linijki kodu. Istotą takiego podejścia, było użycie absolutnego pozycjonowania elementów, względem ...
W poprzedniej części opisałem w jaki sposób możemy generować listy elementów do edycji/tworzenia tak by nie przejmować się numerycznym indeksem. To co nam jednak pozostało to sprawa walidacji danych. Najlepszym przykładem będzie zmodyfikowanie kodu, który już posiadamy (najnowsza wersja na github) – dodajmy atrybut Required dla własności Name w CreateAuthorViewModel. Następnie odpalmy projekt, wejdźmy na zakładkę Books i potem kliknijmy Create New. Jeżeli teraz klikniemy na Add book author i nie wprowa...
Przydatne moim zdaniem linki, ciekawe dema i biblioteki całościowo zebrałem pisząc post 3D Graphics in Silverlight 5 Beta: links + cool apps !. Tutaj podsumuję typowe tworzenie prostej grafiki 3D, dostępne możliwości w Silverlight 5 Beta, a następnie zrobię sobie (na razie nietechniczną) wycieczkę po wirtualnych trójwymiarowych światach, jakie możemy odnaleźć w demie Babylon 3D Engine. Tworzenie grafiki trójwymiarowej zaczyna się tłumaczyć od prostych brył. Podobnie jak na studiach zacząłem zabawę od sze...
Silverlight 4327 dni, 23 godziny, 22 minuty temu 138 źrodło rozwiń