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

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)

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 2843 dni, 4 godziny, 44 minuty temu pzielinski 284 źrodło rozwiń

And how are you defining your variables?

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

Sztuka programowania 2844 dni, 4 godziny, 9 minut temu dzapart 206 źrodło 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 2846 dni, 22 godziny, 46 minut temu pzielinski 234 źrodło 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 2847 dni, 23 godziny, 44 minuty temu dariuszwozniak 162 źrodło 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 2849 dni, 11 godzin, 26 minut temu arek 104 źrodło 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 2851 dni, 5 godzin, 16 minut temu pzielinski 252 źrodło 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 2853 dni, 1 godzinę, 28 minut temu jdubrownik 1276 źrodło 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 2853 dni, 1 godzinę, 28 minut temu pzielinski 103 źrodło 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 2855 dni, 12 godzin, 13 minut temu pjsen 181 źrodło 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 2855 dni, 15 godzin, 51 minut temu pzielinski 221 źrodło 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 2859 dni, 5 godzin, 12 minut temu pzielinski 224 źrodło 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 2862 dni, 5 godzin, 26 minut temu pzielinski 124 źrodło 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 2863 dni, 5 godzin, 14 minut temu dariuszwozniak 238 źrodło 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 2865 dni, 2 godziny, 45 minut temu pzielinski 20 źrodło 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

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 2870 dni, 3 godziny, 57 minut temu pzielinski 33 źrodło 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 2870 dni, 3 godziny, 57 minut temu pjsen 62 źrodło 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 2872 dni, 23 godziny, 53 minuty temu dariuszwozniak 141 źrodło 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 2872 dni, 23 godziny, 53 minuty temu pzielinski 186 źrodło rozwiń

1 2... 55 56 57 58 59 60... 66 67

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 775,28)
9
(8 851,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)