Korzystając z WinForms wcześniej czy później możemy mieć problem z odwołaniem się do kontrolek z innego wątku - stworzonego np w celu zabezpieczenia GUI przed zawieszeniem podczas wywołania metod, które długo działają. Bezpośrednie wywołanie metod kontrolki z innego wątku spowoduje wystąpienie wyjątku InvalidOperationException z komunikatem "Cross-thread operation not valid: Control 'xyz' accessed from a thread other than the thread it was created on."...
W języku C# istnieje co najmniej pięć sposobów implementacji tego wzorca. Różnią się prostotą implementacji oraz obsługą wielowątkowości. Wszystkie [pięć] opisane są na stronie http://www.yoda.arachsys.com/csharp/singleton.html..
Oto pewne rozwiązanie, które nazwałem Manager, oparte o wzorzec projektowy Singleton, które może być przydatne w aplikacji, w której elementy "aktywne" nie są powiązane ze sobą referencjami, a jednocześnie wymagane jest przesyłanie danych lub zdarzeń między nimi. Ma to miejsce na przykład w aplikacji MDI lub w aplikacji opartej o DockPanel Suite. IMHO coś co występuje często, nie koniecznie w postawi obiektów wizualnych...
Ha nigdy nie mogę tego słówka zapamiętać jak w nim 'oa' i inne samogłoski idą. Może to odgrzewane kotlety ale dziś przy okazji okazji znalazłam opis takiego operatora - oczywiście na blogu Scotta Gu..
W dobie tak potężnych narzędzi jak Visual Studio programiści często zdają się całkowicie na ich funkcjonalność. Jedną z (wspaniałych zresztą) cech współczesnych IDE jest Intellisense. Czy wyobraża ktoś sobie pisanie kodu bez podpowiedzi? Zobaczmy jednak, że nie zawsze można na tym elemencie polegać w 100% ze względu na "konfigurowalność" nawet tego mechanizmu VS.
Dzisiejszy post dotyczy dość specyficznego zagadnienia, mianowicie konkatenacji wartości w wierszach, będących wynikiem zapytania. Takie „coś” jest raczej rzadko przydatne, jeżeli z bazą współpracuje aplikacja, ponieważ ta może sobie sama przetworzyć otrzymane dane, ale jeżeli wynik zapytania jest podstawa do tworzenia raportu to problem konkatenacji wierszy może wystąpić...
W tym poście opiszę trzy rzeczy: - wyłączenie/włączenie więzów integralności na tabeli w bazie SQL Server 2005 Express; - generowanie GUIDów w bazie Firebird 2.0; - transport danych z tabeli z PK typu Integer do tabeli z PK typu GUID..
Jak powszechnie wiadomo - wielką zaletą wzorca MVC jest umożliwienie testowania jednostkowego logiki "wyciągniętej" z klas odpowiedzialnych za interakcję z użytkownikiem. Swego czasu śledziłem w internecie dyskusje na temat "Jak testować kontrolery, aby możliwie najbardziej odizolować je od reszty aplikacji". O to przecież chodzi w Unit Testing...
Często pracuję ze skryptami sql zawierającymi nowe wersje tabel czy procedur. Każda tabela i procedura posiada swój własny plik ze skryptem. Trochę to utrudnia pracę ponieważ każdy plik trzeba uruchomić i odpalić...
Korzystając z różnych portali w sieci staramy się być jednoznacznie identyfikowani – stosując ten sam nick, czy dodając awatara. Jednak posiadanie kont na wielu portalach znacznie utrudnia zarządzanie nimi (np. gdy postanowimy nasze zdjęcie uaktualnić lub usunąć)...
Każda strona posiadająca formularze powinna być walidowana. I każdy (mam nadzieję :)) to robi – choćby poprzez stosowanie kontrolki RequiredFieldValidator...
Parę dni temu Microsoft uruchomił usługę Microsoft Ajax CDN umożliwiającą pobieranie bibliotek javascript (związanych z Microsoft AJAX) z serwerów Microsoftu. Wykorzystanie Microsoft Ajax CDN pozwala zwiększyć “szybkość” działania aplikacji – używane biblioteki są cachowane i szybciej wysyłane do klienta...
Od jakiegoś czasu przestałem ustawiać ID kontrolek, do których nie odwołuję się z kodu. Sytuacja taka zdarza mi się szczególnie przy kontrolkach, które mają “tylko” wysłać postbacka. W niczym mi to nie przeszkadza więc postanowiłem tak sobie ułatwić życie...
Prawdziwa siła szablonów ujawnia się wtedy, gdy dokument XML ma niespójną strukturę. Oto przykład fragmentu takiego dokumentu XML..
Trzeci przykład obrazuje zastosowanie szablonów. Szablony umożliwiają czytelną organizację pliku xsl. Deklaruje się je przy pomocy polecenia xsl:template, a aplikuje się je przy pomocy xsl:apply-templates..
Pierwszy przykład związany z tranformacjami XSLT, których chciałbym się nauczyć...
Chciałbym krótko opisać sposób, za pomocą którego można sobie zdebugować procedurę składowaną na MS SQL Server z poziomu Visual Studio...
ResolveUrl i ResolveClientUrl pozwalają na zamianę ścieżek względnych na bezwzględne (ResolveUrl) i bezwzględnych na względne (ResolveClientUrl)...
W .NET 3.5 (a konkretniej - C# 3.0 oraz VB 9.0) pojawił się mechanizm "extension methods". Cel przyświecający jego autorom był zaiste godny uwagi: umożliwienie dodania nowych funkcjonalności do już istniejących, skompilowanych klas. Jedna z kilku "Ruby-like features" wprowadzonych do świata .NET. Przydatność takiego rozwiązania trudno przecenić - w ten sposób rozszerzono m.in. klasy już istniejące w .NET 2.0 (*).