Dzisiaj kontynuacja ostatniego wpisu, traktującego o najprostszych operacjach na wątkach. Bez zbędnych wstępów przejdę więc do klasy ReaderWriterLock. ReaderWriterLock Klasa ta daje możliwość, której nie daje nam klasa Monitor, mianowicie rozróżnianie pomiędzy blokadą do odczytu(umożliwia ona wielu wątkom jednoczesny dostęp do zasobu) oraz zapisu(tylko jeden naraz możliwy, oczywiście wtedy odczyt jest również zablokowany. Aby jej użyć wystarczy instancja ReaderWriterLock w klasie, do której dostęp ma ...
Wspomnę dzisiaj o dość dziwnej funkcji, która została dodana w wersji 3.0 języka C#. Polega ona na możliwości dodania nowych metod do istniejących klas bez zmiany ich definicji. Odbywa się to poprzez zdefiniowanie tych dodatkowych metod jako statycznych (w innych klasach) i użyciu specjalnej składni dla jej pierwszego parametru.
Architektura 4718 dni, 7 godzin, 59 minut temu 111 źrodło rozwiń
Czy próbowaliście wytworzyć kiedyś element klasy XmlElement?...mmmhm... przy pomocy konstruktora się nie da, gdyż jest on protected internal. Cóż więc można zrobić? Odpowiedź jest prosta...
Bazy danych i XML 4718 dni, 7 godzin, 59 minut temu 60 źrodło rozwiń
W jaki sposób możemy pokolorować tekst, który wyświetlamy za pomocą Console.Write oraz WriteLine.
Autor: Jakiś czas temu opisywałem jak można przy pomocy platformy .NET utworzyć i zainstalować serwis w systemie Windows. W tamtym przypadku do instalacji bądź deinstalacji serwisów zostały wykorzystane odpowiednie klasy instalacyjne, które wykorzystane są podczas instalacji, bądź deisntalacji całego produktu. Zdarza się jednak, że nie zadziałają one jak należy (np. nie potrafią usunąć serwisu), czasami po prostu nie chcemy uruchamiać instalatora produktu by przetestować nasz serwis lub chcemy jako serwi...
Czym jest owy NDepend? To narzędzie dla .NET, którego autorem jest Patrick Smacchia. Służy ono do badania i raportowania złożoności oraz jakości tworzonego kodu. Na chwilę obecną posiada 82 metryki wyświetlające bardzo szczegółowe dane. Dodatkowo generator raportów sprawiają, że nawet “nieprogramista” może ocenić w jakiej kondycji jest dostarczony...
Na stronach Microsoft Research dostępny jest ciekawy projekt dryadLINQ, pokazujący, w jaki sposób w przyszłych wersjach .NET może być wykonywane przetwarzanie rozproszone (to znaczy – wykorzystujące wiele maszyn równolegle pracujących nad jednym rozwiązaniem).
Teraz możliwość zabawy z wersją Azure CTP została bardziej “upubliczniona”. Wystarczy zalogować się na swoje konto (lub je założyć jeśli się go nie posiada) na witrynie Connect.
Prosta aplikacja do pobierania PublicKeyToken.
Zbiór linków do ciekawych tekstów na temat WPF.
W jakis sposób użyć zdarzeń do obsługi logiki aplikacji z poziomu różnych, często niepowiązanych ze sobą modułów.
Na dzisiaj wzorzec prosty i przyjemny: State(Stan). Jak sama nazwa wskazuje służy on do radzenia sobie z wszelkimi sytuacjami, gdzie występują pewne stany, od których zależy to, co zostanie wykonane w ramach operacji. Weźmy pod uwagę przykład znany wszystkim(aczkolwiek rozpaczliwie uproszczony): winda, a konkretnie jej drzwi.
Architektura 4721 dni, 15 godzin, 23 minuty temu 124 źrodło rozwiń
W ramach kontynuacji tematyki związanej z Open XML Format SDK, chciałbym dzisiaj zwrócić uwagę kolejną funkcjonalność tego pakietu SDK, a mianowicie możliwość modyfikacji (edycji, dodawania komentarzy, itp. …) istniejących dokumentów. W tym przykładzie załóżmy, że chcemy dodać na końcu istniejącego dokumentu docx nowy paragraf (zawierający znany tekst: "Hello World! ").Przykładowa funkcja, która może wytworzyć taki paragraf może wyglądać następująco: private Paragraph ...
W jednym z poprzednich wpisów opisywałem identyfikację rozdzielczości VGA na urządzeniach Windows Mobile. Pisałem, że kontrolki .NET CE same dopasowują się do aktualnej wartości CurrentAutoScaleDimensions. Tak też działa PictureBox, jednak zawartość kontrolki nie skaluje się automatycznie. A więc jak rozwiązać ten problem?
Mobile development 4721 dni, 15 godzin, 23 minuty temu 32 źrodło rozwiń
Wiadomo, że możemy tworzyć style dla wszystkich elementów naszego UI. Jednak WPF daje nam jeszcze większą możliwość dostosowania wyglądu - w tym przypadku tylko kontrolek, które są kontenerami dla innych. Jak to uzyskać? Wystarczy skorzystać z klasy StyleSelector.
Chcąc wczytać stronę www do naszej aplikacji w WPF'ie mamy trzy możliwości (pod warunkiem posiadania .net 3.5 SP1)wykorzystać kontrolkę WebBrowser (System.Windows.Controls.WebBrowser) wykorzystać kontrolkę Frame (System.Windows.Controls.Frame) oraz skorzystać w kontrolki WebBrowser z winforms (System.Windows.Forms.WebBrowser) Dzisiejszy wpis będzie porównaniem tych trzech sposobów w kontekście pobierania i przetworznia kodu wczytanej strony. Zacznijmy od stworzenia projektu (lub ściągnięcia gotowego kod...
Coraz więcej urządzeń Windows Mobile dostępnych na rynku posiada ekrany o wysokich rozdzielczościach (VGA i więcej). Jeżeli właściwość AutoScaleMode na formie jest ustawiona na Dpi, twoje kontrolki zostaną dopasowane automatycznie do aktualnej rozdzielczości. Jednakże jeżeli pewne elementy rysujesz ręcznie jak np. grafiki albo używasz ImageList nie zostaną one dopasowane. A więc jak rozwiązać ten problem?
Mobile development 4723 dni, 12 godzin, 25 minut temu 26 źrodło rozwiń
Po napisaniu poprzedniego artykułu o podstawach wzorca MVP zastanawiałem się co więcej można przekazać w tym temacie. Myślałem, myślałem i jakoś nie mogłem wymyślić mimo, że jest o czym pisać. Poszedłem w innym kierunku i postanowiłem po prostu rozbudować troszkę wcześniej przedstawiony przykład. Pomysł na temat przyszedł sam. Szybko zauważyłem, że w rzeczywistej aplikacji przedstawione przeze mnie podejście nie miało by szans bytu...
Ostatnio Krzyśkowi Sopyła (^ksirg) zacząłem pomagać w pracy nad klientem (BlipFace) napisanym w WPFie do Blipa. Jedną z pierwszych rzeczy za jakie się zabrałem (której między innymi mi w BlipFace brakowało) było dodanie do ikony BlipFace w tray’u menu kontekstowego oraz wyświetlanie ładnych powiadomień o przyjściu nowych statusów. Kontrolka (System.Windows.Forms.NotifyIcon), z której korzystał Krzysiek niestety za bardzo się nie nadawała (szczególnie do tego drugiego). Dlatego skorzystałem z jedynie słus...
Rozwiązanie problemu pojawiającego się gdy często kopiowane są biblioteki *.dll do katalogu $:\Windows\assembly (inaczej GAC)