dotnetomaniak.pl

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

W .NET do synchronizacji dostępnych jest wiele mechanizmów. W dzisiejszym wpisie chciałbym przedstawić różnice między semaforem a muteksem. Na pierwszy rzut oka, wyglądają one identycznie. Przykład:class Program { staticvoid Main(string[] args) { Mutex mutex =new Mutex(); mutex.WaitOne(); Console.WriteLine("Sekcja krytyczna tutaj"); mutex.ReleaseMutex(); Semaphore semaphore=new Semaphore(1,1); semaphore.WaitOne(); Console.WriteLine("Sekcja krytyczn...

Dziel się z innymi:
Piotr Zieliński » Różnice między Mutex a Semaphore

Sztuka programowania 1528 dni, 16 godzin, 35 minut temu pzielinski 149 rozwiń

O klasie ManualResetEvent pisałem  na blogu już wielokrotnie. Prosty przykład:internalstaticclass Sample { privatestaticreadonly ManualResetEvent _manualEvent=new ManualResetEvent(false); publicstaticvoid Main() { Task.Factory.StartNew(Run); _manualEvent.WaitOne(); Console.WriteLine("Exiting..."); } privatestaticvoid Run() { Thread.Sleep(1000); Console.WriteLine("Run"); _manualEvent.Set(); } } Zastosowanie ManualResetEvent oraz AutoResetE...

Piotr Zieliński » Klasa ManualResetEventSlim a ManualResetEvent

Sztuka programowania 1530 dni, 17 godzin, 28 minut temu pzielinski 95 rozwiń

Wielowątkowość jest bardzo skomplikowanym tematem. W celu napisania prostego kodu wystarczy znać naprawdę niewiele konstrukcji. Sytuacja znaczącą komplikuje się gdy mamy wysokie wymagania odnoście pamięci czy CPU. RegisterWaitForSingleObject jest metodą dość mało popularną a przydatną gdy chcemy oszczędzić trochę pamięci.Wyobraźmy sobie, że mamy kod, który chcemy wykonać wyłącznie w momencie zasygnalizowania przez WaitHandle  (AutoResetEvent, Semafor itp.). Jeśli operacja wewnątrz zajmuje trochę czasu w...

Dziel się z innymi:
Piotr Zieliński » Metoda ThreadPool.RegisterWaitForSingleObject

Sztuka programowania 1532 dni, 15 godzin, 9 minut temu pzielinski 119 rozwiń

Prosty wzorzec, jak tworzyć kontekst aplikacji z obiektami ładującymi się tylko w razie potrzeby.

Tagi: lazy loading
Źródło: us3r.pl
Dziel się z innymi:
LazyLoading kontekstu aplikacji

Sztuka programowania 1534 dni, 16 godzin, 40 minut temu us3r 292 rozwiń

.NET Micro Framework to framework z rodziny .NET służący do oprogramowywania systemów typu embedded z ograniczonymi zasobami pamięci. Minimalne wymagania to 256 kB pamięci flash oraz 64 kB pamięci RAM. .NET Micro to taki młodszy brat .NET Framework z bardzo okrojonym BCL, WPF i WCF (wersja 4.x). Jeżeli programowałeś wcześniej w “pełnym dotnecie”, przesiadka na Micro może okazać się szokiem. Niby to ten sam C#, jednak braki w BCL (wynikające z ograniczeń platformy sprzętowej) szybko dają się we znaki.

Źródło: jdubrownik.com
Dziel się z innymi:
jdubrownik.com - Testy jednostkowe w .NET Micro Framework

Sztuka programowania 1534 dni, 16 godzin, 40 minut temu jdubrownik 128 rozwiń

W ostatnich postach przedstawiałem różne scenariusze użycia PLINQ. Ze względu na zrównoleglenie przetwarzania, kolejność na wyjściu nie zawsze będzie taka sama. Najlepiej to rozważyć na przykładzie:int[] numbers = Enumerable.Range(1, 50).ToArray(); foreach(int number in numbers.AsParallel().Where(n=>n>2)) { Console.WriteLine(number); } W scenariuszu sekwencyjnym, spodziewalibyśmy się liczb z zakresu 3-50. Skoro sekwencja wejściowa ma uporządkowane liczby od 1-50 to po wykonaniu zapytania oczekujemy p...

Tagi: PLINQ
Dziel się z innymi:
Piotr Zieliński » PLINQ (część III) – scalanie oraz zachowanie kolejności

Sztuka programowania 1541 dni, 17 godzin, 20 minut temu pzielinski 114 rozwiń

Kawał dobrego materiału dla wszystkich, którzy chcą pogłębić i/lub usystematyzować swoją wiedzę dotyczącą TDD (ang. Test Driven  Development) przygotował Roy Osherove. Kim jest Roy? Większość pewnie wie, że ...

Dziel się z innymi:
TDD master classes by Roy Osherove - Tymoteusz Kęstowicz

Sztuka programowania 1544 dni, 7 godzin, 5 minut temu tkestowicz 214 rozwiń

W ostatnim poście omówiłem podstawy PLINQ. Dzisiaj już czysta praktyka. Zacznijmy od prostego zapytania, które może zostać wykonane równolegle:internalstaticclass Sample { publicstaticvoid Main() { IEnumerable

Tagi: PLINQ
Dziel się z innymi:
Piotr Zieliński » PLINQ (część II)–porównanie wydajności prostych zapytań. Wymuszenie PLINQ.

Sztuka programowania 1545 dni, 3 godziny, 2 minuty temu pzielinski 116 rozwiń

Wpis przedstawia sposób stworzenia i użycia AttachedProperties, w celu rozszerzenia funkcjonalności istniejących już komponentów. Problem bindingu do ActualWidth oraz ActualHeight zostanie rozwiązany. Szczególnie przydatne podczas pisania aplikacji modern!

Źródło: www.karolszmaj.pl
Dziel się z innymi:
Przepraszam bardzo, ale dlaczego tego nie ma? Na ratunek AttachedProperties ← KarolSzmaj.pl

Sztuka programowania 1545 dni, 3 godziny, 2 minuty temu razor118 173 rozwiń

20.03.2013 Średnio raz w miesiącu NHibernate doprowadza mnie do białej gorączki wyjątkiem: System.Transactions.TransactionAbortedException: The transaction has aborted. ---> System.Data.SqlTypes.SqlTypeException: SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. Powodem powstania tego wyjątku jest niewypełnienie (lub błąd w definicji mapowania) właściwości DateTime obiektu biznesowego zapisywanego do bazy danych. Problem w tym, że treść tego komunikatu jest tak ogó...

Źródło: jdubrownik.com
Dziel się z innymi:
jdubrownik.com - Zrób to sam - NHibernate Profiler

Sztuka programowania 1546 dni, 22 godziny, 42 minuty temu jdubrownik 147 rozwiń

Załóżmy, że mamy timer, który co jakiś próbuje połączyć się np. z usługą:internalstaticclass Sample { publicstaticvoid Main() { using (Timer timer =new Timer(Run, null,0,1000)) { Thread.Sleep(500000); } } privatestaticvoid Run(Object state) { Console.WriteLine("Operacja, ktora moze potrwac czasami nawet kilka minut."); } } Powyższy kod w wielu sytuacjach jest poprawny. Należy jednak mieć na uwadze, że operacje takie jak połączenie z bazą danych ...

Tagi: timer
Dziel się z innymi:
Piotr Zieliński » Code Review: Timery

Sztuka programowania 1550 dni, 15 godzin, 43 minuty temu pzielinski 145 rozwiń

Chciałbym rozpocząć nowy cykl na blogu, tym razem o PLINQ.  Dzisiaj zaczniemy od podstaw czyli czym jest LINQ oraz kiedy z niego korzystać. PLINQ to skrót od Parallel Linq czyli są to zapytania wykonywane równolegle. W dzisiejszym świecie, programiści starają się zrównoleglić co tylko jest możliwe. Samodzielne pisanie LINQ w sposób równoległy jest dość niewygodne i dlatego Microsoft wprowadził PLINQ. Należy oczywiście zawsze pamiętać, że próba zrównoleglenia operacji, które muszą po prostu zostać wykona...

Tagi: Linq, Parallel, PLINQ
Dziel się z innymi:
Piotr Zieliński » PLINQ – wprowadzenie

Sztuka programowania 1551 dni, 9 godzin, 24 minuty temu pzielinski 207 rozwiń

Wielokrotnie pisałem o różnych metodach definiowania sekcji krytycznej w kodzie. Do dyspozycji mamy spinning, który nie usypia wątku. Tak naprawdę dla systemu Windows, taki wątek wciąż istnieje i wykonuje pracę – innymi słowy marnuje  czas CPU. Jeśli chcemy zatrzymać wątek na krótko wtedy jest to bardzo wydajne ponieważ nie musimy zmieniać kontekstu (BARDZO kosztowne), korzystać z funkcji Windows (spinning to czysta metoda .NET) czy planować (scheduling) następnych wątków. Jeśli mechanizmy takie jak spin...

Dziel się z innymi:
Piotr Zieliński » Wydajność: spinning a synchronizacja kernel

Sztuka programowania 1553 dni, 8 godzin, 34 minuty temu pzielinski 79 rozwiń

Operacje na plikach mogą być bardzo czasochłonne. Z tego względu, dobrym zwyczajem jest umieszczenie kodu w osobnym wątku. Często popełnianym błędem jest samodzielne tworzenie wątku:internalstaticclass Sample { publicstaticvoid Main() { var reader =new FileStream(@"c:\setup\1.txt", FileMode.Open); Task.Factory.StartNew(()=>ReadAsync(reader)); } privatestaticvoid ReadAsync(Stream reader) { byte[]buffer=newbyte[100]; reader.Read(buffer, 0, 100); reader.Clos...

Dziel się z innymi:
Piotr Zieliński » Code Review: Asynchroniczne strumienie danych

Sztuka programowania 1556 dni, 6 godzin, 22 minuty temu pzielinski 160 rozwiń

To jedyne przykazanie w całym Devkalogu pozostawione w oryginalnej formie. Nie kradnij srajtaśmy z biura? Owszem, nie kradnij, ale ja nie o tym. Nie kradnij poprzez piracenie oprogramowania/muzyki/filmów? Owszem. Ale ja nie o tym. Dawno temu, jeszcze w 2008 roku, Jeremy Millernapisał: If you’re writing ADO.Net code by hand, you’re stealing from your employe...

Dziel się z innymi:
Nie kradnij | Maciej Aniserowicz o programowaniu

Sztuka programowania 1556 dni, 16 godzin, 6 minut temu http://pawlos.blogspot.com/ 267 rozwiń

Ponieważ z knockout.js mam do czynienia od dłuższego czasu (dokładnie od wersji 1.0 ;) ), postanowiłem podzielić się moimi spostrzeżeniami ze tymi, którzy chcą wykorzystać ten framework w swojej pracy, jak również osobami które już go stosują oraz generalnie wszystkim zainteresowanym w pisaniu ustrukturyzowanych skryptów JS.

Simple Solutions: Knockout.js - spostrzeżenia

Sztuka programowania 1558 dni, 14 godzin, 33 minuty temu http://horusiath.blogspot.com/ 311 rozwiń

Kolejna część cyklu – zapraszam do lektury: http://msdn.microsoft.com/pl-pl/library/optymalizacja-kodu-c-sharp–czesc-3

Tagi: wydajność
Dziel się z innymi:
Piotr Zieliński » Artykuł- Optymalizacja kodu C# – część III

Sztuka programowania 1559 dni, 7 godzin, 30 minut temu pzielinski 210 rozwiń

W celu optymalizacji każdy procesor posiada swój cache. Temat jest dosyć rozbudowany bo zwykłe cache jest podzielony na kilka warstw aby przyśpieszyć dostęp do niego. W dzisiejszym w poście chciałbym wprowadzić pojęcie cache line co jest tak naprawdę po prostu wpisem w pamięci podręcznej. Jeśli procesor czyta jakieś dane to umieszcza je w cache line. Cache line to nie tylko jedna, pojedyncza zmienna a na przykład 64 bajty. Jeśli zatem czytamy pojedynczą zmienną Int32,  w rzeczywistości procesor przeczyta...

Dziel się z innymi:
Piotr Zieliński » CPU, caching a wydajność.

Sztuka programowania 1562 dni, 16 godzin, 36 minut temu pzielinski 195 rozwiń

WebAuthenticationBroker jest ciekawą klasą umożliwiającą autoryzację użytkownika poprzez protokół OAuth 2.0. Czy możemy jednak zrobić coś równie dobrego? Oczywiście, że tak.W tym wpisie zostanie przedstawiony sposób stworzenia swojego brokera do logowania użytkownika w wybranym serwisie.

WebAuthenticationBroker a może coś lepszego ? ← KarolSzmaj.pl

Sztuka programowania 1562 dni, 16 godzin, 36 minut temu razor118 104 rozwiń

Jeżeli szukasz dobrego frameworka do MVVM dla WinRT, to koniecznie zobacz nowy ciekawy framework -StyleMVVM.

Tagi: MVVM, Windows 8, WinRT
Źródło: www.karolszmaj.pl
Dziel się z innymi:
Powiew świeżości MVVM dla Windows 8 – StyleMVVM

Sztuka programowania 1565 dni, 15 godzin, 59 minut temu razor118 286 rozwiń

1 2... 30 31 32 33 34 35... 39 40
Szkolenia SecurITum

październik

Zobacz wszystkie

Najaktywniejsi

1

macko (32 816,53)

2

http://pawlos.blo... (31 626,47)

3

pzielinski (27 178,29)

4

gordon_shumway (21 178,87)

5

paduda (20 336,33)

6

psz750 (13 018,14)

7

rroszczyk (10 386,14)

8

Damian (9 056,1)

9

danielplawgo (7 235,99)

10

arek (6 807,95)

11

burczu (6 214,22)

12

PaSkol (5 393,84)

13

lukaszgasior (4 097,38)

14

jj09 (3 608,06)

15

jedmac (3 318,39)

16

http://jakub-flor... (3 224,66)

17

spetz (3 078,27)

18

CaMeL (2 954,87)

19

lkurzyniec (2 633,85)

20

mnikolajuk (2 596,93)