dotnetomaniak.pl

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

W kolejnych kilku wpisach, zajmiemy się async\await ale od strony wydajnościowej. Jeśli ktoś nie wie do czego te słowa kluczowe służą, zachęcam przeczytać np. mój artykuł o programowaniu asynchronicznym w .NET 4.5. Sposób korzystania z async\await jest bardzo prosty. Do tego stopnia, że programowanie asynchroniczne wygląda w zasadzie tak jak synchroniczne podejście. W kodzie nie ma callback’ow a przepływ logiki wygląda na sekwencyjny. Niestety, trzeba być świadomym jakie pułapki czekają na programistów...

Tagi: async, await
Dziel się z innymi:
Piotr Zieliński » Async\Await–wydajność, część I

Sztuka programowania 1479 dni, 11 godzin, 21 minut temu pzielinski 254 rozwiń

Dzisiaj na szybko wrócimy z powrotem do tematu TPL Data Flows. Jakiś czas temu pisałem o różnych blokach w TPL DataFlows. Nie opisałem jednak TransformManyBlock.  TransformManyBlock jest analogiczny do TransformBlock z tym, że na wyjściu jest kolekcja więc możliwe jest zwrócenie kilku wartości. TransformBlock służył wyłącznie do przetworzenia parametru i zwrócenia pojedynczego wyniku. Ktoś może zapytać, czy to nie to samo co przekazanie jako typu generycznego IEnumerable do TransformBlock – też wtedy na...

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

Sztuka programowania 1481 dni, 2 godziny, 19 minut temu pzielinski 45 rozwiń

W sprawie wydajności wyjątków można znaleźć wiele opinii, często sprzecznych ze sobą. W dzisiejszym wpisie przedstawię kilka programików, mających na celu, wyjaśnienie jaki wpływ mają wyjątki oraz ich łapanie na wydajność aplikacji. Zacznijmy od przykładów a potem przejdziemy do analizy wyników. Kod z wyrzucaniem wyjątków: internalclass Program { privatestaticvoid Main(string[] args) { constint n =20000; Stopwatch stopwatch = Stopwatch.StartNew(); for (int i =0; i < n;="" i+...

Dziel się z innymi:
Piotr Zieliński  » Wydajność: jak to jest z wyjątkami?

Sztuka programowania 1484 dni, 14 godzin, 2 minuty temu pzielinski 278 rozwiń

And how are you defining your variables?

Tagi: C#, dynamic, var
Dziel się z innymi:
[EN] Playing with .NET types definition

Sztuka programowania 1485 dni, 13 godzin, 28 minut temu dzapart 206 rozwiń

Często spotykam następujące konstrukcje:class RiskInfo { publicint Condition{get;set;} publicdouble Score{get;set;} } Innymi słowy, kontener na kilka prostych zmiennych. Jeśli ktoś nie zna zasady działania Garbage Collector, gorąco zachęcam do przeczytania np. mojego cyklu artykułów o GC. Usunięcie obiektu z pamięci to nie prosta sprawa i naprawdę wiele musi zostać wykonanych operacji w tle. Z tego względu, jeśli klasa jest mała i posiada wiele instancji, wtedy dużo lepiej skonwertować ją do s...

Dziel się z innymi:
Piotr Zieliński » Code review: struktura danych

Sztuka programowania 1488 dni, 8 godzin, 4 minuty temu pzielinski 234 rozwiń

W tej części omówię jak wykonać kilka prostych technik, tj. jak:zgrupować testy za pomocą atrybutu [TestCase],testować wyjątki,testować zdarzenia. Na tapetę idzie przykład dzielenia; chcemy napisać funkcjonalność i testy mając na uwadze, że:metoda Divide należy do klasy Calculator,metoda Divide przyjmuje dwa parametry wejściowe — obydwa typu int; zwracanym ...

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

Sztuka programowania 1489 dni, 9 godzin, 2 minuty temu dariuszwozniak 162 rozwiń

Potrzebowałem funkcję do konwertowania długości pliku w bajtach na zjadliwą dla użytkownika formę. Zgodnie z tdd najpierw należy napisać test: [Test] [Row(1, "1 B")] [Row(1024, "1 KB")] [Row(2000, "1,95 KB")] [Row(1048576, "1 MB")] [Row(1537500, "1,47 MB")] [Row(5242880, "5 MB")] [Row(1073741824, "1 GB")] public void ToFileSize_Tests(int value, string expected) { var fileSize = value.ToFileSize(); Assert.AreEqual(expected, fileSize); }   a potem wygooglować odpow...

Źródło: www.benedykt.net
Dziel się z innymi:
Konwersja rozmiaru pliku na postać czytelną przez normalnych ludzi

Sztuka programowania 1490 dni, 20 godzin, 44 minuty temu arek 104 rozwiń

Załóżmy, że w kodzie zobaczymy enum’a np.:publicenum Colors { Black, Red, Yellow }; Jeśli budujemy framework lub jakąkolwiek bibliotekę należy być świadomym zagrożeń wynikających z wewnętrznej budowy enum’a. Warto zajrzeć do Reflector’a aby przekonać się o tym:.classpublic auto ansi sealed Colors extends [mscorlib]System.Enum { .field publicstatic literal valuetype ConsoleApplication1.Colors Black = int32(0) .field publicstatic literal valuetype ConsoleApplication1.Colors Red = i...

Tagi: Enum
Dziel się z innymi:
Piotr Zieliński  » Code Review: Publiczny enum

Sztuka programowania 1492 dni, 14 godzin, 35 minut temu pzielinski 248 rozwiń

XAdES to najbardziej popularny format podpisu elektronicznego w Polsce. Występuje on w kilku odmianach: zwykły, ze stemplem czasowym, dodatkowymi informacjami itd. Czasami zachodzi potrzeba zweryfikowania podpisu elektronicznego w .NET. Jakiś czas temu miałem podobny problem. Pokopałem trochę w Google i w MSDN i  znalazłem w .NET Framework ciekawą klasę SignedXml...

Źródło: jdubrownik.com
Dziel się z innymi:
Weryfikacja podpisu elektronicznego XAdES w .NET

Sztuka programowania 1494 dni, 10 godzin, 47 minut temu jdubrownik 1003 rozwiń

W ostatnim wpisie przedstawiłem aspekt do obsługi wyjątków. Dzisiaj trochę więcej o samych aspektach dla metod. Oprócz wyświetlenia  nazwy metody czy przekazanych parametrów można wyciągnąć trochę więcej informacji. Dla przypomnienia, parametry można wyświetlać następująco:publicoverridevoid OnEntry(MethodExecutionArgs args) { var argValues =new StringBuilder(); foreach (var argument in args.Arguments) { argValues.Append(argument.ToString()).Append(","); } Console.WriteLin...

Tagi: PostSharp
Dziel się z innymi:
Piotr Zieliński » Postsharp – aspekty metod (OnMethodBoundaryAspect)

Sztuka programowania 1494 dni, 10 godzin, 47 minut temu pzielinski 97 rozwiń

If you were asked to mention new features of C# 5.0, then you would probably say, first of all, async / await. However, on MSDN there is list of changes that could hardly be considered as well-known, even after almost 1 year after .NET 4.5 RTM was published. In this post I briefly explain one of them, that in my opinion is worth remembering.

Tagi: C#
Źródło: blog.pjsen.eu
Dziel się z innymi:
Less known feature of C# 5.0 — modified closure behaviour | PJSen Blog

Sztuka programowania 1496 dni, 21 godzin, 32 minuty temu pjsen 181 rozwiń

O programowaniu aspektowym kiedyś już pisałem więc jeśli od strony teoretycznej nie jest to jasne to zachęcam do poszperania na blogu. Dzisiaj zaprezentuje framework Postsharp w wersji express (darmowa edycja, również do zastosowań komercyjnych). Jak wiemy, obsługa wątków czy wykonanie logów mogą być problemami cross-cutting. Postsharp jest typowym framework’iem implementującym AoP Zaczynamy od instalacji z NuGet:   Pomimo, że Postsharp express jest w pełni darmowy, musimy zarejestrować się i uzyskać...

Tagi: AOP, PostSharp
Dziel się z innymi:
Piotr Zieliński » Obsługa wyjątków za pomocą programowania aspektowego (Postsharp)

Sztuka programowania 1497 dni, 1 godzinę, 9 minut temu pzielinski 211 rozwiń

O kontraktach już kiedyś pisałem tutaj. Dziś z kolei zaprezentuję bardzo złą praktyką, czasami niestety jeszcze spotykaną tzn.:interface IDataFilter { IEnumerable

Piotr Zieliński » Code Review: Złe użycie kontraktów w interfejsach

Sztuka programowania 1500 dni, 14 godzin, 31 minut temu pzielinski 222 rozwiń

Rozpocząłem właśnie nowy cykl artykułów o Enterprise Library. Dzisiaj pierwsza cześć o Log Application Block: http://msdn.microsoft.com/pl-pl/library/enterprise-library-logging-application-block–czesc-1 Zapraszam do lektury!

Dziel się z innymi:
Piotr Zieliński » Artykuł: Enterprise Library Logging Application Block – część I

Sztuka programowania 1503 dni, 14 godzin, 45 minut temu pzielinski 124 rozwiń

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 1504 dni, 14 godzin, 33 minuty temu dariuszwozniak 233 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 1506 dni, 12 godzin, 4 minuty temu pzielinski 20 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 1510 dni, 6 godzin, 37 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 1511 dni, 13 godzin, 16 minut 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 1511 dni, 13 godzin, 16 minut 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 1514 dni, 9 godzin, 12 minut temu dariuszwozniak 141 rozwiń

1 2... 28 29 30 31 32 33... 40 41
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 802,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,37)

8

Damian (9 141,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 253,3)

17

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

18

CaMeL (2 954,87)

19

lkurzyniec (2 672,97)

20

dpawlukiewicz (2 645)