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

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 3010 dni, 7 godzin, 48 minut temu pzielinski 121 źrodło 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 3012 dni, 15 godzin, 4 minuty temu pzielinski 138 źrodło 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

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 3016 dni, 1 godzinę, 55 minut temu dariuszwozniak 348 źrodło 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 3016 dni, 1 godzinę, 55 minut temu pzielinski 216 źrodło 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 3022 dni, 1 godzinę, 58 minut temu lukaszgasior 383 źrodło 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 3022 dni, 1 godzinę, 58 minut temu pzielinski 101 źrodło 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

“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 3024 dni, 17 godzin, 40 minut temu jdubrownik 224 źrodło 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 3026 dni, 22 godziny, 15 minut temu pzielinski 217 źrodło 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 3026 dni, 22 godziny, 15 minut temu arek 237 źrodło 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

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 3031 dni, 1 godzinę, 27 minut temu pzielinski 118 źrodło 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 3032 dni, 23 godziny, 8 minut temu pzielinski 119 źrodło 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 3035 dni, 40 minut temu us3r 296 źrodło 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

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 3042 dni, 1 godzinę, 20 minut temu pzielinski 118 źrodło 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 3044 dni, 15 godzin, 4 minuty temu tkestowicz 215 źrodło 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 3045 dni, 11 godzin, 2 minuty temu pzielinski 121 źrodło 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 3045 dni, 11 godzin, 2 minuty temu razor118 175 źrodło rozwiń

1 2... 59 60 61 62 63 64... 68 69

sierpień

27.
dynamIT 2021
Kraków, Browar Lubicz, ul. Lubicz 17J

październik

Najaktywniejsi

1
(32 895,6)
2
(32 816,53)
3
(27 178,29)
4
(21 178,88)
5
(20 336,33)
6
(13 018,14)
7
(10 531,65)
8
(9 790,28)
9
(8 866,31)
10
(6 837,96)
11
(6 214,22)
12
(5 393,84)
13
(4 157,41)
14
(4 026,73)
15
(3 908,07)
16
(3 599,64)
17
(3 448,35)
18
(3 318,39)
19
(3 224,66)
20
(3 221,45)