dotnetomaniak.pl

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

In the project, I am working with, there is a simple feature that imports data from external source. Import is only interested in new records. This condition is fulfilled with ‘DateTime’ comparision. Looks simple, Unfortunately I have encountered a nice ‘bug’.

Tagi: C#
Źródło: www.mfranc.com
Dziel się z innymi:
[EN] Why Something > null is false - C# and Lifted Operators | Passionate Programmer

Sztuka programowania 1211 dni, 7 godzin, 2 minuty temu michalfranc 90 rozwiń

Zacznijmy od synchronicznego kodu:internalclass Program { privatestaticvoid Main(string[] args) { ShortMethod1(); ShortMethod2(); ShortMethod3(); } privatestaticvoid ShortMethod1() { Console.WriteLine("1"); } privatestaticvoid ShortMethod2() { Console.WriteLine("2"); } privatestaticvoid ShortMethod3() { Console.WriteLine("3"); } } Mamy powyżej przykład 3 metod, które wykonują bardzo proste operacje. Nie są one zbyt skompl...

Dziel się z innymi:
Piotr Zieliński » Async\Await–wydajność, część III (grupuj operacje)

Sztuka programowania 1213 dni, 10 godzin, 47 minut temu pzielinski 77 rozwiń

Pytanie “przechowywać, czy nie przechowywać” pojawia się praktycznie przy okazji każdego projektu, w którym trzeba przesłać coś więcej niż proste formy do i od użytkownika. Szkoły są dwie (plus hybryda, o czym za chwilę), jednak wybór, która w danym wypadku jest najlepsza zależy w dużej mierze od specyfiki samej aplikacji oraz rozwiązań technicznych użytych w projekcie.

Źródło: jdubrownik.com
Dziel się z innymi:
NHibernate, Fluent NHibernate i FILESTREAM, czyli przechowywanie plików w bazie danych trochę inaczej

Sztuka programowania 1215 dni, 20 godzin, 42 minuty temu jdubrownik 181 rozwiń

Zanim przejdziemy do pokazania przykładów jak optymalizować async\await najpierw trzeba zrozumieć implementację wewnętrzną w .NET. Bez tego ciężko będzie cokolwiek optymalizować. Na początku async\await wydawał mi się również czymś niezwykłym, a jak zacząłem zagłębiać się w kod IL, okazało się, że to bardzo prosty mechanizm i mógłby być napisany przez każdego z nas. Kod korzystający z async\await wygląda na synchroniczny. Pod spodem jednak są zwykłe callback’i – dokładnie tak jakby było to napisane w po...

Tagi: async, await
Dziel się z innymi:
Piotr Zieliński » Async\Await–wydajność, część II (implementacja wewnętrzna)

Sztuka programowania 1216 dni, 5 godzin, 9 minut temu pzielinski 117 rozwiń

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 1219 dni, 9 godzin, 36 minut temu pzielinski 245 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 1221 dni, 33 minuty 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 1224 dni, 12 godzin, 17 minut temu pzielinski 277 rozwiń

And how are you defining your variables?

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

Sztuka programowania 1225 dni, 11 godzin, 43 minuty 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 1228 dni, 6 godzin, 19 minut 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 1229 dni, 7 godzin, 17 minut temu dariuszwozniak 161 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 1230 dni, 18 godzin, 59 minut 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 1232 dni, 12 godzin, 50 minut temu pzielinski 246 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 1234 dni, 9 godzin, 1 minutę temu jdubrownik 886 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 1234 dni, 9 godzin, 1 minutę temu pzielinski 95 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 1236 dni, 19 godzin, 46 minut 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 1236 dni, 23 godziny, 24 minuty temu pzielinski 207 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 1240 dni, 12 godzin, 45 minut temu pzielinski 220 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 1243 dni, 12 godzin, 59 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 1244 dni, 12 godzin, 47 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 1246 dni, 10 godzin, 18 minut temu pzielinski 19 rozwiń

1 2... 22 23 24 25 26 27... 34 35
Accenture
Szkolenia SecurITum

grudzień

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 381,47)

8

Damian (9 011,08)

9

danielplawgo (7 235,99)

10

arek (6 642,76)

11

burczu (6 214,22)

12

PaSkol (5 393,84)

13

lukaszgasior (4 097,38)

14

jj09 (3 398,06)

15

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

16

CaMeL (2 954,87)

17

jedmac (2 659,34)

18

mnikolajuk (2 596,93)

19

lkurzyniec (2 466,02)

20

FutureProcessing (2 455,11)