dotnetomaniak.pl

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

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 1597 dni, 14 godzin, 47 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 1598 dni, 10 godzin, 44 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 1598 dni, 10 godzin, 44 minuty temu razor118 174 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 1600 dni, 6 godzin, 24 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 1603 dni, 23 godziny, 25 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 1604 dni, 17 godzin, 6 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 1606 dni, 16 godzin, 17 minut 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 1609 dni, 14 godzin, 4 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 1609 dni, 23 godziny, 48 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 1611 dni, 22 godziny, 15 minut 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 1612 dni, 15 godzin, 12 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 1616 dni, 18 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 1616 dni, 18 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 1618 dni, 23 godziny, 41 minut temu razor118 286 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 1618 dni, 23 godziny, 41 minut temu pzielinski 101 rozwiń

Załóżmy, że mamy następujący kod:[Serializable] class Person { publicstring Name { get; set; } } Atrybut Serializable mówi, że będzie wspierana serializacja za pomocą IFormatter (np. BinaryFormatter). Jeśli chcemy wspierać ten mechanizm, zawsze powinniśmy tworzyć jawnie backing-field. Kompilator w końcu może wygenerować tak naprawdę dowolną nazwę. Zajrzyjmy do Reflector, aby zobaczyć jak wygląda wewnętrzna struktura:   Wygenerowane pole to:[CompilerGenerated] privatestring

Tagi: serializacja
Dziel się z innymi:
Piotr Zieliński » Code Review: serializacja a właściwości

Sztuka programowania 1621 dni, 12 godzin, 45 minut temu pzielinski 142 rozwiń

Po odłożeniu kodu na weekend, jego przeglądzie i uwzględnieniu komentarzy, można uznać proces refaktoryzacji za zakończony. Pisząc „proces” mam tu na myśli wykonanie refaktoryzacji o ściśle określonym celu – w tym przypadku było to stworzenie mechanizmu importu, który zastąpi używany obecnie. Nie wchodziły zatem w ten proces...

Me z .NET tete-a-tete » Nadeszła pora na cykl publikacji: „Historia pewnej refaktoryzacji”. Podsumowanie.

Sztuka programowania 1621 dni, 12 godzin, 45 minut temu PaSkol 82 rozwiń

W celu wykonania jakiegoś kodu za pomocą refleksji, należy najpierw zebrać informację o danym polu. Załóżmy, że mamy następującą klasę:class Sample { publicvoid PrintSomething() { Console.WriteLine("Something"); } } W celu wykonania metody za pomocą refleksji można:object sample =new Sample(); MethodInfo info=sample.GetType().GetMethod("PrintSomething"); info.Invoke(sample, null); Generalnie obiekty takie jak MemberInfo czy MethodInfo pożerają mnóstwo pamięci – są one dość ciężk...

Tagi: refleksja
Dziel się z innymi:
Piotr Zieliński » Reflection: optymalizacja MemberInfo

Sztuka programowania 1623 dni, 15 godzin, 38 minut temu pzielinski 122 rozwiń

Założę się, że wiele osób czytając ten tytuł puknie się w głowę. I owszem w wielu sytuacjach wzorce nie są niezbędne do tworzenia przejrzystych i dobrze rozwijalnych skryptów. Do czasu. Dokładnie do momentu gdy nasz skrypt zaczyna mieć więcej niż kilkadziesiąt linijek.

Dziel się z innymi:
Simple Solutions: Javascript a wzorce projektowe

Sztuka programowania 1625 dni, 15 godzin, 48 minut temu http://horusiath.blogspot.com/ 201 rozwiń

GC nic nie wie o zasobach niezarządzanych. Nie wie ile pamięci one zajmują oraz oczywiście nie jest w stanie zwolnić takich zasobów. O zarządzaniu taką pamięcią pisałem już wiele razy. Opisywałem również zasadę działania GC. Zwykle jest on odpalany po przekroczeniu pewnego progu zużycia pamięci. Niestety, jak wspomniałem, GC nie wie nic o niezarządzanych zasobach. Co w przypadku gdy wrapper zużywa bardzo mało pamięci a zasoby niezarządzane w nim konsumują bardzo wiele pamięci? Dzięki metodom AddMemoryPre...

Dziel się z innymi:
Piotr Zieliński » Zasoby niezarządzane, optymalizacja GC

Sztuka programowania 1627 dni, 12 godzin, 57 minut temu pzielinski 133 rozwiń

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

wrzesień

08.
BBQ4IT
Bielsko-Biała
14.
devConf
Kraków
20.
Dodaj nowe Zobacz wszystkie

Najaktywniejsi

1

macko (32 816,53)

2

http://pawlos.blo... (31 754,49)

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

8

Damian (9 106,11)

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

15

jedmac (3 318,39)

16

spetz (3 233,29)

17

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

18

CaMeL (2 954,87)

19

lkurzyniec (2 672,96)

20

dpawlukiewicz (2 614,89)