dotnetomaniak.pl

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

Dzisiaj znów trochę od strony teoretycznej postaram wyjaśnić jak działają priorytety wątków w systemach Windows. Każdy chyba słyszał o tym, że wątkowi można nadać priorytet. Nie każdy natomiast wie, jaki jest zakres oraz jak wygląda dokładnie ich interpretacja. Przede wszystkim mamy do czynienia z dwoma typami priorytetów, które składają się na końcową wartość używaną przez task scheduler. Pierwszy komponent dotyczy procesu i jest to tzw. klasa priorytetu. W Windows możemy wyróżnić następujące klasy:  ...

Dziel się z innymi:
Piotr Zieliński » Wielowątkowość i priorytety

Sztuka programowania 1598 dni, 1 godzinę, 15 minut temu pzielinski 120 rozwiń

Każdy wątek posiada metodę Suspend, która wstrzymuje jego wykonywanie. Ktoś mógłby napisać  takiego “potworka”:class Program { staticvoid Main(string[] args) { Thread thread=new Thread(Run); thread.Start(); Thread.Sleep(1000); thread.Suspend(); Thread.Sleep(5000); thread.Resume(); } staticprivatevoid Run() { while(true) { Console.WriteLine("Running..."); } } } Używanie Suspend jest bardzo złą praktyką i może ...

Dziel się z innymi:
Piotr Zieliński » Code Review: Thread.Suspend

Sztuka programowania 1600 dni, 8 godzin, 31 minut temu pzielinski 138 rozwiń

O tym, czym jest redundacja wie chyba każdy programista. Każdy z nas wie również, że jest to zjawisko nieporządane i w większości wypadków lepiej mu zapobiegać. Ten post przeznaczę na opis przykładowego zjawiska powtórzeń w zapytaniach LINQ spotykanego w sytuacjach codziennych oraz prostym i czytelnym ich rozwiązaniu, o którym nieraz zapominamy.

Dziel się z innymi:
Simple Solutions: O redundancji w wyrażeniach LINQ

Sztuka programowania 1601 dni, 11 godzin, 48 minut temu http://horusiath.blogspot.com/ 246 rozwiń

Pierwszy wpis na moim blogu i pierwsza część cyklu o TDD. Wprowadzenie do TDD, opis Red/Green/Refactor, wady i zalety.

Tagi: TDD
Dziel się z innymi:
Kurs TDD część 1: Wstęp | DariuszWozniak.NET

Sztuka programowania 1603 dni, 19 godzin, 22 minuty temu dariuszwozniak 347 rozwiń

W .NET istnieje kilka klas, które odpowiadają mniej więcej za to samo. Przyczyna dlaczego nie ma po prostu jednej klasy a kilka, wynika z faktu, że cześć z nich była zaprojektowana z myślą o konkretnej technologii jak np. WinForms. Nie zmienia to faktu, że dla części programistów nie jest to jasne, kiedy używać konkretnego timer’a. OK, to zaczynamy. W .NET mamy następujące timer’y:System.Threading.Timer – używamy, gdy chcemy aby nasza operacja była wykonywana w osobnym wątku (z puli). Dlatego, ten timer...

Tagi: timer
Dziel się z innymi:
Piotr Zieliński » Porównanie timer’ów w .NET

Sztuka programowania 1603 dni, 19 godzin, 22 minuty temu pzielinski 215 rozwiń

Krótko o tym jak i kiedy korzystać z Creation methods.

Dziel się z innymi:
Notatki programisty: Creation method, czyli słów kilka jak pozbyć się konstruktorów

Sztuka programowania 1609 dni, 19 godzin, 25 minut temu lukaszgasior 381 rozwiń

W poprzednim wpisie przedstawiłem podstawy macierzy DSM. Dzisiaj postaram się wyjaśnić, jakie znaczenie ma to w praktyce. Sam fakt, że macierz pokazuje referencje między różnymi elementami systemu nie jest zbyt ciekawy. Pierwszą własność, jaką w łatwy sposób możemy odczytać z DSM jest spójność (cohesion). Dokładna wartość spójności zależy od konkretnej metryki. Ogólnie pisząc, wysoka spójność w systemie oznacza, że elementy w nim są bardzo od siebie zależne. Przyjrzyjmy się następującemu przykładowi (źr...

Dziel się z innymi:
Piotr Zieliński » Macierz zależności (Design structure matrix) w nDepend – interpretacja

Sztuka programowania 1609 dni, 19 godzin, 25 minut temu pzielinski 94 rozwiń

W dzisiejszym wpisie chciałbym zaprezentować macierz zależności i co można z niej odczytać. Pominiemy aspekty matematyczne – ze względu, że jest to macierz istnieje wiele faktów matematycznych ale myślę, że nie są one najważniejsze dla programisty. Załóżmy, że mamy prostą aplikację składającą się z klienta, warstwy usług, biznesowej oraz DAL. Macierz możemy wygenerować w nDepend – o tym programie kiedyś już pisałem. Umożliwia przede wszystkim liczenie metryk kodu i monitorowanie jakości kodu. Macierz dla...

Dziel się z innymi:
Piotr Zieliński » Macierz zależności (Design structure matrix) w nDepend – wprowadzenie

Sztuka programowania 1610 dni, 18 godzin, 3 minuty temu pzielinski 107 rozwiń

“Masowa” i “SmtpClient” w jednym zdaniu? Nie, to nie jest żart. Każdy, kto choć raz musiał wysyłać serię maili z poziomu kodu C# pomyśli, że zwariowałem. Blokowanie wątku, cała gama wyjątków, które może rzucić metoda Send(), czy obsługa stanu aplikacji po takim błędzie. To ważniejsze atrakcje, jakie możemy napotkać korzystając z tej klasy. Jest na to jedna prosta metoda. Wróć. Właściwość… DeliveryMethod.

Źródło: jdubrownik.com
Dziel się z innymi:
jdubrownik.com - Masowa wysyłka maili przy użyciu SmtpClient

Sztuka programowania 1612 dni, 11 godzin, 7 minut temu jdubrownik 220 rozwiń

Właśnie został opublikowany kolejny mój artykuł, tym razem o GC. Zapraszam do lektury: http://msdn.microsoft.com/pl-pl/library/garbage-collector-cz-1

Dziel się z innymi:
Piotr Zieliński » Garbage Collector, cz. I

Sztuka programowania 1614 dni, 15 godzin, 42 minuty temu pzielinski 215 rozwiń

Opublikowano Nie zdążyłem dotrzeć przed oblicze komputera na czas aby obejrzeć JetBrainsowy webinar z Johnem Skeetem Big thanks to @jonskeet for the Webinar (and the private class named var). Thank you to everyone that attending. Recording available soon. — JetBrains ReSharper (@resharper) …no właśnie, zaintrygowało mnie “private class named var” Napisałem taki kawałek kodu: public class VarHacking{ private class var{ public string Message { get; set; } } public v...

Tagi: hacking, var
Źródło: www.benedykt.net
Dziel się z innymi:
Zabawy z var-em | arek online

Sztuka programowania 1614 dni, 15 godzin, 42 minuty temu arek 237 rozwiń

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 1616 dni, 18 godzin, 2 minuty 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 1618 dni, 18 godzin, 54 minuty 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 1620 dni, 16 godzin, 35 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 1622 dni, 18 godzin, 6 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 1622 dni, 18 godzin, 6 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 1629 dni, 18 godzin, 47 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 1632 dni, 8 godzin, 31 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 1633 dni, 4 godziny, 28 minut 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 1633 dni, 4 godziny, 28 minut temu razor118 174 rozwiń

1 2... 31 32 33 34 35 36... 40 41
#befutureproof
Szkolenia SecurITum

październik

Dodaj nowe Zobacz wszystkie

Najaktywniejsi

1

macko (32 816,53)

2

http://pawlos.blo... (31 922,5)

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,46)

8

Damian (9 173,12)

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 683,06)

15

spetz (3 363,34)

16

jedmac (3 318,39)

17

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

18

CaMeL (2 954,87)

19

dpawlukiewicz (2 736,19)

20

lkurzyniec (2 732,03)