dotnetomaniak.pl

dotnetomaniak.pl - Najnowsze artykuły o .NET w dziale Sztuka programowania - Strona 52

Chciałbym poświęcić kilka postów na opisanie WeakReference oraz praktycznych przykładów wykorzystania tej klasy. W dzisiejszym wpisie strona teoretyczna i opis klasy. Referencje w środowisku .NET można podzielić na słabe (weak references) oraz silne\mocne (strong references).  Silne referencje są wszystkim doskonale znane np:var sampleClass =new SampleClass(); Innymi słowy jest to standardowy typ powiązania. W momencie gdy wszystkie silne referencje zostaną usunięte wtedy GC może zacząć usuwać taki o...

Tagi: C#, WeakReference
Dziel się z innymi:
Piotr Zieliński » WeakReference – wprowadzenie

Sztuka programowania 2355 dni, 15 godzin, 1 minutę temu pzielinski 287 rozwiń

W dwóch poprzednich wpisach rozważałem odczyt i zapis danych, które były odzwierciedleniem (obrazem) pamięci w tzw. programach Win32 (czyli pracujących w środowisku 32 bitowych Windows, z bezpośrednim, niezarządzanym dostępem do pamięci). Wypadałoby postawić „kropkę nad i” tj. wspomnieć jeszcze o klasie Buffer oraz opisać związane z nią i klasami Encoding i BitConverter niuanse, które, gdybym umieścił je w poprzednich wpisach, niepotrzebne utrudniły by lekturę ...

Źródło: paskol.robi.to
Dziel się z innymi:
Me z .NET tete-a-tete » Czas kompleksowo ogarnąć reprezentację binarną

Sztuka programowania 2357 dni, 21 godzin, 37 minut temu PaSkol 88 rozwiń

I’m a big fan of using con­ven­tions when devel­op­ing appli­ca­tions. I blogged about it in the past (here, here and later here). I also gave a talk about my expe­ri­ence with this approach and how I cur­rently use it at NDC last week (slides are avail­able here, video is here). One prob­lem I faced when try­ing to build con­ven­tion val­i­da­tion tests was lack of sim­ple API that would allow me to build the val­i­da­tion rules for my tests. I built a spike of such library (call...

Źródło: kozmic.pl
Dziel się z innymi:
[EN] Using ConventionTests «  Krzysztof Koźmic on software

Sztuka programowania 2361 dni, 4 godziny, 59 minut temu Paweł Łukasik 79 rozwiń

Kontynuując temat z poprzedniego wpisu, obecnie przedstawię, w jaki sposób wypełnić plik, aby odpowiadał obrazowi pamięci oczekiwanemu przez aplikacje nie napisane w .NET (napisane w kodzie niezarządzanym). W tym wypadku swoją rolę ponownie odegrają klasy BitConvert oraz Encoding. W obu wypadkach użyte zostaną metody o takiej samej nazwie: GetBytes...

Źródło: paskol.robi.to
Dziel się z innymi:
Me z .NET tete-a-tete » Jak plik obrazem pamięci wypełnić i nic nie pokręcić

Sztuka programowania 2367 dni, 21 godzin, 21 minut temu PaSkol 84 rozwiń

Gdy już kończymy pisać program na którym zarobimy pierwszy milion większość z nas chciałaby stworzyć do niego własny instalator. Oczywiście możesz spakować aplikację i pozwalać użytkownikom ściągać gotowy plik wykonywalny, ale co gdy zajdzie potrzeba wprowadzenia np. Klucza sprawdzającego oryginalność nabytego programu lub zwykłej rejestracji użytkownika w serwisie?Setup Wizard Zacznijmy więc od stworzenie prostego instalatora aplikacji. W Solution Explorer dodajemy nowy projekt: Add -> New Pr...

Źródło: kodzimy.net
Dziel się z innymi:
Setup project oraz Custom Actions | kodzimy.net

Sztuka programowania 2367 dni, 21 godzin, 21 minut temu kodzimy-net 147 rozwiń

Dziś po długim wprowadzeniu teoretycznym, mającym na celu wyjaśnienie “zaawansowanych” mechanizmów synchronizacji czas przyszedł na pokazanie pierwszej struktury danych. Przed pojawieniem się asynchronicznych kolekcji, najczęściej korzystało się z prostego lock’a jak:lock(_Sync) { _list.Add(newElement); } Rozwiązanie mało wygodne i przede wszystkim niewydajne. Nowe kolekcje zawierają mechanizmy synchronizacji omówione w poprzednich postach takie jak:SpinLock SpinWait SemaphoreSlim CountdownEvent ...

Dziel się z innymi:
Piotr Zieliński » Wprowadzenie do współbieżnych kolekcji danych na przykładzie ConcurrentBag

Sztuka programowania 2369 dni, 5 godzin, 27 minut temu pzielinski 153 rozwiń

Jestem w miarę świeżo po przeczytanie Programowania Windows 8  (w wersji preview) napisanej przez pana który się nazywa Charles Petzold. Krótka recenzja: Aktualnie książka zawiera siedem rozdziałów, w nich omówienie XAML, mechanizmu wiązań, kontrolek, layout i krótko o WinRT. Jeśli ktoś z was pisał już w WPF czy SL nie znajdzie w niej (przypominam że mówię ciągle o wersji preview) nic ciekawego. Prawie nic, otóż są dwie nowości warte uwagi wprowadzone w nowszej wersji .NET. CallerMemberName oraz async/...

Dziel się z innymi:
jstadnicki: Async i Await w Windows8 - małe szoł

Sztuka programowania 2371 dni, 21 godzin, 53 minuty temu Paweł Łukasik 175 rozwiń

Jak wiadomo wszystkie dane platformy .NET są przechowywane w postaci obiektów [...], więc siłą rzeczy sposób przechowywania tychże danych jest ukryty przed programistą (obiekty są wszak hermetyczne). Jest to całkowicie odmienne podejście do przechowywania danych w stosunku do stosowanego przed erą .NET. Tam typy proste były zwyczajnie obszarem pamięci, który był odpowiednio interpretowany przez oprogramowanie (dbał o to kompilator)...

Źródło: paskol.robi.to
Dziel się z innymi:
Me z .NET tete-a-tete » Jak plik z obrazem pamięci odczytać i nic nie pokręcić

Sztuka programowania 2371 dni, 21 godzin, 53 minuty temu PaSkol 132 rozwiń

Dziś kolejny mechanizm potrzebny do zrozumienia struktury SpinWait, którą opiszę w następnym poście. Thread.Yield oddaje wątek z powrotem do CPU. Wywołanie mówi, że nie mam nic więcej do roboty i jeśli CPU ma coś lepszego do zrobienia to niech to zrobi a po tym dopiero wątek macierzysty zostanie wznowiony. Innymi słowy jeśli wątek A wywołuje Thread.Yield wtedy CPU zawiesza go, wykonuje inny i potem z powrotem powraca do wątku A. Jednak należy zaznaczyć, że w przypadku Yield, może zostać wybrany wątek wył...

Tagi: C#, Thread
Dziel się z innymi:
Piotr Zieliński » Thread.Yield vs Thread.Sleep(0) vs Thread.Sleep(1)

Sztuka programowania 2377 dni, 18 godzin, 18 minut temu pzielinski 134 rozwiń

Posted by slanto on Załóżmy, że mamy zdefiniowaną stałą listę dostępnych pół formularza: imię, nazwisko, data urodzenia, płeć. Pola te mogą być wyświetlane w różnych konfiguracjach, np. Imię z nazwiskiem, nazwisko z datą urodzenia lub tylko płeć. Pomijając fakt że z reguły typy wyliczeniowe łamią zasadę Open/Closed principle (http://pl.wikipedia.org/wiki/Zasada_otwarte-zamkni%C4%99te) i zastosowanie ich w tym przypadku może nie jest najlepszym pomysłem, to jednak chcąc pokazać jak zachowuje się typ...

Tagi: C# .NET, Enum, flags
Dziel się z innymi:
Enum z atrybutem Flags | Zapiski programisty .net

Sztuka programowania 2377 dni, 18 godzin, 18 minut temu http://slanto.myopenid.com/ 219 rozwiń

Dziś kolejny post z ostatniego cyklu o o wielowątkowości.  Myślę, że Thread.Sleep jest znany każdemu – służy po prostu do uśpienia wątku. Na przykład:

Dziel się z innymi:
Piotr Zieliński » Thread.SpinWait() a Thread.Sleep()

Sztuka programowania 2379 dni, 16 godzin, 1 minutę temu pzielinski 156 rozwiń

Przechodząc na język C#, chcąc nie chcąc programuje się zgodnie z wyrobionych dotąd stylem i wg starych przyzwyczajeń. Niemniej, staram się weryfikować, czy obrana droga rzeczywiście jest tą, z której należy korzystać na nowym terenie, jakim jest C#. Dotąd często korzystałem z możliwości domyślnych parametrów, tak w konstruktorach, jak i w metodach (procedurach i funkcjach). Ostatnio mój kolega zauważył, że C# do konstrukcji klas nie używa konstruktorów z domyślnymi parametrami...

Źródło: paskol.robi.to
Dziel się z innymi:
Me z .NET tete-a-tete » Domyślność rozwiąże nadmierność przeciążeń

Sztuka programowania 2380 dni, 14 godzin, 22 minuty temu PaSkol 131 rozwiń

Kolejna niedzielna, kolejny prosty kawałek kodu który może się komuś przydać Zacznijmy od krótkiego ‘story’ – tworzymy grę w Silverlightcie i chcemy by miała ekran tytułowy w stylu gier np. z konsoli NES – tj. przez paręnaście sekund widzimy ekran menu, a potem odpala się ‘demo’. Sprawa jest banalna – wystarczy utworzyć nowy obiekt typu DispatcherTimer, zainicjować go, podać interwał oraz co ma wykonać po określonym czasie...

[Niedzielny Tip]Opóźnianie akcji « Krzysztof Kowalski Blog

Sztuka programowania 2381 dni, 17 godzin, 16 minut temu http://krzysztofkowalskiblo... 125 rozwiń

W ostatnich postach opisuje różne mechanizmy synchronizacji w c#. Jak widać, jest tego na prawdę wiele i sama znajomość słowa lock nie wystarcza jeśli poważnie myśli się o algorytmach współbieżnych. Dziś kolejna metoda synchronizacji a mianowicie klasa CountdownEvent. Ostatnie posty oprócz wprowadzenia do wspomnianych klas stanowią wstęp do kolekcji współbieżnych, które zamierzam omówić wkrótce. Konstruktor CountdownEvent przyjmuje liczbę całkowita (zwykle większą od 0), która stanowi wartość początkową...

Dziel się z innymi:
Piotr Zieliński » Synchronizacja za pomocą CountdownEvent

Sztuka programowania 2381 dni, 17 godzin, 16 minut temu pzielinski 111 rozwiń

Dziś kolejny post o synchronizacji w c#. Semafor to bardzo popularna forma limitowania liczby wątków, które mogą mieć dostęp do danego kodu. Nie chcę omawiać tutaj podstaw semafora, ale myślę, że warto przypomnieć ogólną zasadę. Pseudokod (źródło Wikipedia):procedure V (S : Semaphore); begin (* Operacja atomowa: inkrementacja semafora *) S := S +1; end; (* Operacja atomowa: dekrementacja semafora ) procedure P (S : Semaphore); begin ( Cała operacja jest atomowa *) repeat Wait()...

Dziel się z innymi:
Piotr Zieliński» Semafor w c#

Sztuka programowania 2388 dni, 15 godzin temu pzielinski 255 rozwiń

1 2... 48 49 50 51 52