dotnetomaniak.pl

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

W tej części cyklu stworzymy nasz pierwszy test jednostkowy. Przedstawię krok po kroku jak napisać i przetestować prostą funkcjonalność wedle zasad TDD. Opiszę tutaj szczegółowo wszystkie kroki, począwszy od tego jak dodać referencję do NUnita, a skończywszy na tym jak uruchomić test.

Tagi: C#, NUnit, TDD
Dziel się z innymi:
Kurs TDD część 4: Nasz pierwszy test jednostkowy | DariuszWozniak.NET

Sztuka programowania 1246 dni, 4 godziny, 41 minut temu dariuszwozniak 232 rozwiń

W kilku ostatnich postach pisałem o blokach grupujących. Obiecywałem, że pokaże kilka przykładów ich zastosowania, w szczególności wyjaśniające zachowanie zachłanne i niezachłanne. W dzisiejszym wpisie, zaprezentuję przykład (lekko zmodyfikowany z MSDN) jak JoinBlock i BufferBlock mogą zostać zastosowane. Wyobraźmy sobie, że mamy kilka źródeł danych. Na przykład: WCF, pliki oraz pamięć. Odczyt z WCF prawdopodobnie będzie najwolniejszy. W zależności od lokalizacji, odczyt pliku prawdopodobnie będzie dużo...

Dziel się z innymi:
Piotr Zieliński » TPL Dataflows – część VIII (przykład z BufferBlock i JoinBlock)

Sztuka programowania 1248 dni, 2 godziny, 12 minut temu pzielinski 19 rozwiń

Od jakiegoś czasu myślałem o zebraniu w garść przemyśleń związanych z rozwojem projektów, bazując na doświadczeniach w aplikacjach, przede wszystkim biznesowych, w produkcji których przyszło mi uczestniczyć. Ponieważ pamięć jest zawodna i nie wszystko co chciałem wymienić udało mi się spamiętać i ubrać w słowa...

Dziel się z innymi:
Simple Solutions: Garść pro tipów przydatnych podczas tworzenia aplikacji

Sztuka programowania 1251 dni, 20 godzin, 45 minut temu http://horusiath.blogspot.com/ 363 rozwiń

W ostatnich postach pisałem o JoinBlock oraz BatchedBlock czyli o blokach grupujących.  Dzisiaj czas na połączenie tych dwóch konstrukcji, a mianowicie BatchedJoinBlock. Jak sama nazwa sugeruje, block będzie łączył elementy z kilku źródeł w Tuple ale zamiast Tuple

Dziel się z innymi:
Piotr Zieliński » TPL Dataflows – część VII (BatchedJoinBlock)

Sztuka programowania 1253 dni, 3 godziny, 24 minuty temu pzielinski 33 rozwiń

I would like this blog post to serve as a quick reference that recalls the basic concept of covariant and contravariant type parameters of generic interfaces in the C# language.I tried to keep the example as simple as possible. Included comments explain the key points. No long stories and no dissertations.

Tagi: C#, generics
Źródło: blog.pjsen.eu
Dziel się z innymi:
[EN] Interface type parameter covariance and contravariance in C# | PJSen Blog

Sztuka programowania 1253 dni, 3 godziny, 24 minuty temu pjsen 61 rozwiń

Po wstępie i omówieniu różnic między testami jednostkowymi, a integracyjnymi, czas na omówienie jak strukturalnie powinien wyglądać wzorcowy test jednostkowy. Będzie to pewnie najkrótszy wpis tej serii, ale jednocześnie jeden z najważniejszych. Pozwoli bowiem na pierwszy kontakt z testem jednostkowym w praktyce.

Tagi: TDD
Dziel się z innymi:
Kurs TDD część 3: Struktura testu, czyli Act-Arrange-Assert | DariuszWozniak.NET

Sztuka programowania 1255 dni, 23 godziny, 20 minut temu dariuszwozniak 140 rozwiń

Kolejna część artykułu o GC. Zapraszam do lektury: http://msdn.microsoft.com/pl-pl/library/garbage-collector-cz-4-wycieki-pamieci

Dziel się z innymi:
Piotr Zieliński » Artykuł: Garbage Collector, cz. IV (wycieki pamięci)

Sztuka programowania 1255 dni, 23 godziny, 20 minut temu pzielinski 127 rozwiń

Gdy MyEnum nie ma wartości -13, to poniższy kod się wykona poprawnie i w enumie będziemy mieli wartość spoza zakresu enuma. var myEnum = (MyEnum) -13; Właściwa treść Mamy enum: enum MyEnum { One = 1 } I chcemy wykonać prostą operacje utworzenia tego enuma, tyle że posiadamy jedynie wartość liczbową (z zewnętrznego źródła danych). Akurat tak pechowo się stało, że mamy nie istn...

Tagi: Enum, rzutowanie
Dziel się z innymi:
Rzutowanie na Enum z niepewnego źródła | Show me the code

Sztuka programowania 1256 dni, 23 godziny, 54 minuty temu lkurzyniec 146 rozwiń

W poprzednim wpisie pisałem o pierwszym bloku grupującym – BatchBlock. Dziś czas przyszedł na kolejny element, tym razem JoinBlock. JoinBlock grupuje elementy podane na wejście w formie Tuple (pisałem o tej klasie kiedyś na blogu). Jeśli zatem podamy na wejście dwa integer’y, na wyjściu pojawi się Tuple

Dziel się z innymi:
Piotr Zieliński » TPL Dataflows – część VI (JoinBlock)

Sztuka programowania 1258 dni, 19 godzin, 33 minuty temu pzielinski 26 rozwiń

In many of my projects  including last one I need to user N-Tier architecture for my application. This is very good approach because you can centralize your business logic and have many type of clients (WWW, mobile devices) thanks WCF and REST technology. The other thing is that most of business solutions displays some data in tabular format knows as grids and grid has always one problem: number of records increasing in time. So we need to ask ourselves do we really need to display all the data together ...

Tagi: C#, Pagination, WCF
Dziel się z innymi:
[EN] WCF Pagination

Sztuka programowania 1260 dni, 21 godzin, 27 minut temu dzapart 120 rozwiń

AutoResetEvent\ManualResetEvent może być używany do synchronizacji międzyprocesowej tak samo jak np. mutex. Posiada podobny zestaw metod do tworzenia obiektu z nazwą oraz późniejszego jego otwierania. Aby móc go użyć do synchronizacji międzyprocesowej należy oczywiście nadać obiektowi nazwę – tak samo jak to jest z Mutex. W tym problem, że konstruktory ManualResetEvent czy AutoResetEvent nie przyjmują takich parametrów. Zaglądając jednak do dokumentacji dowiemy się, że:publicsealedclass ManualResetEvent...

Dziel się z innymi:
Piotr Zieliński » AutoResetEvent\ManualResetEvent–synchronizacja między procesami

Sztuka programowania 1263 dni, 3 godziny, 5 minut temu pzielinski 62 rozwiń

Dzisiaj pierwszy post o tzw. grouping block czyli blokach grupujących. Ich zasada jest prosta – grupują dane z różnych źródeł w sposób zależny już od konkretnego bloku. W tej części zajmiemy się BatchBlock, który przychodzące dane buforuje, a następnie przesuwa je na wyjście w zdefiniowanych porcjach. BatchBlock działa w dwóch trybach: greedy i non-greedy. W przypadku implementacji zachłannej, wszystko co pojawia się na wejściu jest akceptowane i przekazywane na wyjście gdy uzbiera się określona liczba ...

Dziel się z innymi:
Piotr Zieliński » TPL Dataflows – część V (BatchBlock)

Sztuka programowania 1266 dni, 4 godziny, 46 minut temu pzielinski 30 rozwiń

W ostatnim poście wspomniałem o minimalnej liczbie wątków. Istnieje również górny próg, określający ile maksymalnie może zostać stworzonych wątków. Zbyt niski próg oraz zła architektura może spowodować bardzo trudny w znalezieniu błąd a mianowicie deadlock. Wyobraźmy sobie następującą sekwencję zdarzeń:Wątek T0 (lub główny, nie ma znaczenia) dodaje zadanie do puli.Stworzone zadanie tworzy n nowych zadań.T0 czeka aż wszystkie n zadań zostanie wykonanych (wait). Następnie przyjmijmy, że w tych n wątkach, ...

Dziel się z innymi:
Piotr Zieliński » Code review: pula wątków a maksymalna liczba wątków

Sztuka programowania 1266 dni, 4 godziny, 46 minut temu pzielinski 64 rozwiń

Pula wątków to specjalny mechanizm zaimplementowany w CLR, mający na celu ponowne używanie tych samych wątków. W dzisiejszym wpisie chciałbym wyjaśnić co to jest optymalna liczba wątków i jaki ona ma wpływ na wydajność. Rozważmy następujący kod:internalclass Program { publicstaticvoid Main() { for (int i =0; i

Dziel się z innymi:
Piotr Zieliński » Wątki z puli–optymalna liczba wątków.

Sztuka programowania 1269 dni, 4 godziny, 11 minut temu pzielinski 125 rozwiń

Dzisiaj bardzo krótka notka, mająca na celu przestrzec przed modyfikacją jakichkolwiek właściwości wątku, który pochodzi z puli. Bardzo łatwo zmienić jego stan poprzez ustawienie nowego priorytetu albo zmianę kultury. Inny przykład to TLS o którym już pisałem na blogu. Dlaczego jest to tak złe?privatevoid Run() { Thread.CurrentThread.Priority = ThreadPriority.Highest; } Musimy zdać sobie sprawę, że takowe wątki wyłącznie wypożyczamy. Ktoś na forum porównał to do wypożyczalni samochodów. Gdy wypożycz...

Dziel się z innymi:
Piotr Zieliński » Code Review: wątki z puli oraz modyfikacja ich stanu

Sztuka programowania 1272 dni, 11 godzin, 38 minut temu pzielinski 68 rozwiń

Na witrynie techdays można obejrzeć wykład Roya Osherove pt. A Second Look at Unit Testing z tegorocznej konferencji Microsoft SWIT 2013 w Kijowie. Z wykładu dowiemy się m.in.:co się zmieniło i co zdezaktualizowało w świecie Test-Driven Development od czasu pierwszej edycji książki Art of Unit Testing (2009), jakie frameworki do izolacji (isolation frameworks) są obecnie na topie,dlaczego nie korzystać z Rhino Mocks, NUnit.Mocks i M...

Tagi: TDD
Dziel się z innymi:
A Second Look at Unit Testing | DariuszWozniak.NET

Sztuka programowania 1278 dni, 11 godzin, 27 minut temu dariuszwozniak 145 rozwiń

Kolejna część artykułu o GC – tym razem o zasobach niezarządzanych. Zapraszam do lektury: http://msdn.microsoft.com/pl-pl/library/garbage-collector-cz-3-zasoby-niezarzadzane

Dziel się z innymi:
Piotr Zieliński » Artykuł– Garbage Collector, cz. III

Sztuka programowania 1278 dni, 11 godzin, 27 minut temu pzielinski 116 rozwiń

W części drugiej kursu przyjrzymy się rodzajom testów w świecie Test-Driven Development i poznamy różnice między testami jednostkowymi, a integracyjnymi.

Tagi: TDD
Dziel się z innymi:
Kurs TDD część 2: Testy jednostkowe, a testy integracyjne | DariuszWozniak.NET

Sztuka programowania 1279 dni, 10 godzin, 7 minut temu dariuszwozniak 642 rozwiń

Reguły, zasady – przemyślenia na ich temat ostatnio opanowały mój umysł, więc naturalną konsekwencją jego stanu są kolejne moje wpisy. I czuję, że to jeszcze nie koniec. Na blogu ostatnio jest bardziej filozoficznie, ale tak bywa, kiedy dokonuje się retrospekcji. Dziś co nieco o regule nazywania warunków (wywodzącej się z reguły wydzielania metody). Chodzi w niej o to, aby wyrażenia logiczne występujące w kodzie...

Źródło: paskol.robi.to
Dziel się z innymi:
Me z .NET tete-a-tete » To wciąż zasada, czy już przesada?

Sztuka programowania 1280 dni, 15 godzin, 47 minut temu PaSkol 191 rozwiń

W ostatnim wpisie pokazałem dostępne bloki buforujące. Dzisiaj zajmiemy się prostym przykładem, który jest bardziej praktyczny  od tego przedstawionego w poprzednim poście. Załóżmy, że piszemy system, który składa się z kilku wątków przetwarzających. Każdy z nich pełni rolę konsumenta – przetwarza dane. Chcemy to tak zoptymalizować, aby nowe dane były wysyłane wyłącznie do jak najmniej zajętych węzłów. Oczywiście temat jest bardziej skomplikowany niż może wydawać się, ale dzisiaj pokażemy jak można do te...

Dziel się z innymi:
Piotr Zieliński » TPL Dataflows – część IV (przykład z BufferBlock)

Sztuka programowania 1281 dni, 3 godziny, 7 minut temu pzielinski 28 rozwiń

1 2... 23 24 25 26 27 28... 34 35
Accenture
Szkolenia SecurITum
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 383,52)

8

Damian (9 011,08)

9

danielplawgo (7 235,99)

10

arek (6 642,77)

11

burczu (6 214,22)

12

PaSkol (5 393,84)

13

lukaszgasior (4 097,38)

14

jj09 (3 408,06)

15

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

16

CaMeL (2 954,87)

17

jedmac (2 714,34)

18

mnikolajuk (2 596,93)

19

lkurzyniec (2 466,02)

20

FutureProcessing (2 460,11)