dotnetomaniak.pl

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

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 1326 dni, 14 godzin, 54 minuty temu pzielinski 94 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 1328 dni, 12 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 1330 dni, 14 godzin, 7 minut temu us3r 289 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 1330 dni, 14 godzin, 7 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 1337 dni, 14 godzin, 47 minut temu pzielinski 112 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 1340 dni, 4 godziny, 31 minut temu tkestowicz 213 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 1341 dni, 28 minut temu pzielinski 115 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 1341 dni, 28 minut 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 1342 dni, 20 godzin, 8 minut temu jdubrownik 146 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 1346 dni, 13 godzin, 10 minut 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 1347 dni, 6 godzin, 50 minut 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 1349 dni, 6 godzin, 1 minutę temu pzielinski 77 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 1352 dni, 3 godziny, 48 minut temu pzielinski 159 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 1352 dni, 13 godzin, 33 minuty temu http://pawlos.blogspot.com/ 265 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

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 1355 dni, 4 godziny, 57 minut temu pzielinski 209 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 1358 dni, 14 godzin, 3 minuty temu pzielinski 194 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 1358 dni, 14 godzin, 3 minuty 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 1361 dni, 13 godzin, 26 minut temu razor118 285 rozwiń

Czasami zachodzi potrzeba serializacji obiektów, które powinny mieć  maksymalnie jedną kopie w tym samym AppDomain. Klasycznym przykładem jest System.DBNull, którego deklaracja wygląda następująco:[SerializableAttribute] [ComVisibleAttribute(true)] publicsealedclass DBNull : ISerializable, IConvertible Załóżmy, że mamy klasę, w której jedna z właściwości ma wartość System.DBNull. Oczywiście podczas serializacji i potem deserializacji nie chcemy tworzyć nowej instancji DBNull – jest to sprzeczne z ...

Dziel się z innymi:
Piotr Zieliński  » Blog Archive   » Serializacja obiektów typu singleton\NULL object

Sztuka programowania 1361 dni, 13 godzin, 26 minut temu pzielinski 100 rozwiń

1 2... 25 26 27 28 29 30... 34 35
Accenture
Szkolenia SecurITum

grudzień

03.
IT Academic Day W...
Politechnika Wrocławska Wydział Elektroniki (C-1)
Zobacz wszystkie

.NET Developer Days 2015

W tym roku ponownie jak w poprzednim jesteśmy jednym z patronów medialnych konferencji .NET Developer Days. W tym roku jednym z prelegentów będzie Scott Hanselman.  czytaj więcej
2015-07-22

Najaktywniejsi

1

macko (32 816,53)

2

http://pawlos.blo... (31 383,4)

3

pzielinski (27 178,29)

4

gordon_shumway (21 178,87)

5

paduda (20 336,33)

6

psz750 (13 018,14)

7

rroszczyk (10 371,4)

8

Damian (9 011,08)

9

danielplawgo (7 235,99)

10

arek (6 642,75)

11

burczu (6 214,22)

12

PaSkol (5 393,84)

13

lukaszgasior (4 097,38)

14

jj09 (3 388,06)

15

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

16

CaMeL (2 954,87)

17

mnikolajuk (2 596,93)

18

jedmac (2 594,32)

19

lkurzyniec (2 466)

20

FutureProcessing (2 440,11)