dotnetomaniak.pl

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

W kolejnym wpisie o linq przedstawię zasadę działania Func, Predicate, Action. Dla przypomnienia Linq jest połączeniem 5 elementów:extension methodsyieldFunc, Predicate, Actionwyrażenia lambdaIQueryable i Expression Trees Przyjrzyjmy się najpierw deklaracji tych trzech typów. C# public delegate void Action

Tagi: .Net, C#, Linq
Źródło: rafal-haly.pl
Dziel się z innymi:
Linq inside (Func, Predicate, Action) » Rafał Hały

Sztuka programowania 1451 dni, 19 minut temu graf85 208 rozwiń

W poprzednim wpisie opisałem extension methods, dzisiaj czas na kolejny element moim zdaniem bardzo ważny do zrozumienia działania linq mianowicie słowo kluczowe yield. Dla przypomnienia Linq jest połączeniem 5 elementów:extension methodsyieldFunc, Predicate, Actionwyrażenia lambdaIQueryable i Expression Trees Zasadę działania słowa kluczowego yield najlepiej zobrazuje przykład. Załóżmy, że mamy metodę, która generuje ...

Tagi: .Net, C# .NET, Linq
Źródło: rafal-haly.pl
Dziel się z innymi:
Linq inside (yield) » Rafał Hały

Sztuka programowania 1456 dni, 38 minut temu graf85 160 rozwiń

W zdecydowanej większości przypadków jestem przeciwnikiem singleton’a i uważam to za anty-wzorzec. Dużo lepiej użyć IoC i przekazywać wszędzie w konstruktorach tą samą instancję. Istnieją jednak przypadki, w których użycie singleton’a nie jest brzydkie. Ostatnio miałem klasę, która potrzebowała pewnych danych – kolekcję prostych struktur. Każda struktura zawiera string i pole bool. Ze względu, że ta kolekcja musi być wykorzystana w kilku klasach, zdecydowałem się na przeniesienie jej do osobnej klasy (s...

Tagi: Singleton
Dziel się z innymi:
Piotr Zieliński » Singleton oraz WeakReference

Sztuka programowania 1456 dni, 38 minut temu pzielinski 239 rozwiń

Od ponad 3 lat używam TDD z lepszymi i gorszymi wynikami, zawsze koniec końców okazuje się, że kod napisany w TDD (nie TAD czyli nie dopisując testy post factum ale w prawdziwym TDD czyli pisząc testy NAJPIERW) sprawia najmniej problemów i jest najłatwiejszy do utrzymania i do modyfikacji. Czyli wydaje się, że TDD to świetne narzędzie, dlaczego zatem tak mało osób stosuję tą metodykę? Poniżej postaram się zebrać co popularniejsze wymówki. Jeśli macie swoje to proszę dopisywać. 1) Pisanie ...

Tagi: TDD, wymówki
Źródło: www.benedykt.net
Dziel się z innymi:
popularne wymówki aby nie używać TDD czyli obalamy mity | arek online

Sztuka programowania 1456 dni, 38 minut temu arek 322 rozwiń

Dzisiejszy wpis dotyczy wszystkich klas, jednak zostanie on zaprezentowany na przykładzie ViewModel znanego z MVVM. W moim projekcie używam MVVM i dlatego jest to dla mnie naturalne. W poście zaprezentuje bardzo sztuczne przykłady, dlatego proszę nie skupiać się na nazewnictwie czy na zaprezentowanej funkcjonalności. Przedstawiony problem jest jednak bardzo częsty w realnych projektach i sam mam\miałem  z nim do czynienia w codziennej pracy. Powiedzmy, że napisaliśmy ViewModel prezentujący jakąś część ...

Tagi: IoC
Dziel się z innymi:
Piotr Zieliński » Code Review: IoC oraz zbyt wiele parametrów w konstruktorze

Sztuka programowania 1457 dni, 19 godzin, 51 minut temu pzielinski 276 rozwiń

sie10Kategorie: .Net, C# przez graf Blogowania chciałem rozpocząć od cyklu wpisów o Linq. Każdy dobry programista C# powinien umieć się posługiwać Linq, nie każdy niestety wie jak to właściwie działa. Linq wprowadza wspólny interfejs do pracy z kolekcjami niezależnie od źródła danych. Linq jest połączeniem 4 elementów:extension methodsyieldFunc, Predicate, Actionwyrażenia lambda W tym poście omówię extension methods czyli metody rozszerzające. Extension methods jak sama nazwa wskazuje ...

Tagi: C#, Linq
Źródło: rafal-haly.pl
Dziel się z innymi:
Linq inside (Extension methods) » Rafał Hały

Sztuka programowania 1457 dni, 19 godzin, 51 minut temu graf85 132 rozwiń

Dzisiaj będzie gadka motywacyjna o pisaniu testów więc jeśli jeszcze nie piszesz, może to Ciebie w końcu przekona. We wpisie Testowanie własnego ControllerFactory w MVC pisałem jak to zmarnowałem 6h na napisanie praktycznie jednego testu do kawałka kodu, który można napisać w 15 minut i przez dodatkowe 15 minut prze-klikać w kilku różnych przypadkach. Gdzie tu logika, gdzie tu sens. Pisząc CustomControllerFactory nie pisze się go z byle powodu, pisze się, ponieważ są potrzebne bardzo spec...

Tagi: TDD
Źródło: www.benedykt.net
Dziel się z innymi:
Dlaczego warto pisać testy jednostkowe | arek online | Arkadiusz Benedykt

Sztuka programowania 1459 dni, 23 godziny, 47 minut temu arek 169 rozwiń

Pierwszym etapem przy wdrażaniu się w nowy projekt jest poznanie jego funkcjonalności. Nie będziemy w stanie zrozumieć kodu, nie wiedząc do czego dana aplikacja służy. Jeżeli nieuchronnie zbliża się deadline i nie możemy poznać projektu w całości, skupmy się na jednej funkcjonalności. Ludzie, jakkolwiek nie pisaliby kiepsko, to zwykli pisać konwencyjnie. To znaczy, że opanowanie jednego modułu, otworzy nam drzwi do zrozumienia kolejnych modułów. Wyjaśnijmy to na przykładzie systemu TravelCRM, który pr...

Źródło: tuxedodevs.net
Dziel się z innymi:
Sztuka tranzycji, czyli jak skutecznie wskoczyć w istniejący projekt | Tuxedodevs.net

Sztuka programowania 1460 dni, 22 godziny, 45 minut temu tuxedoDEVS 216 rozwiń

Często można usłyszeć, że przypisania są zawsze bezpieczne w wielowątkowości i powinniśmy martwić się np. inkrementacją. Jest to prawda dla Int32 ale dla long już nie zawsze. Przykład:internalclass Program { privatestaticlong _x =0; privatestaticvoid Main(string[] args) { Task.Factory.StartNew(Task1); Task.Factory.StartNew(Task2); Thread.Sleep(5000); } privatestaticvoid Task2() { while (true) { Console.WriteLine(_x); } } privat...

Dziel się z innymi:
Piotr Zieliński » Code review: synchronizacja danych, przypisanie

Sztuka programowania 1460 dni, 22 godziny, 45 minut temu pzielinski 135 rozwiń

Odkrywam kawałek tajemnicy dla osób, które zamierzają tworzyć strony internetowe używane przez tysiące…. jednym z wąskich gardeł jest Baza Danych… sic! Nie będę się tu wdawał w kwestie budowania architektury, dobrej I złej. Bardziej chciałbym naświetlić pewien problem I możliwe rozwiązanie. Bazy danych w .NET Framework w większości (zakładam, że 99% przypadków), są obsługiwane przez mechanizm ADO.NET, a ten bazuje na ConnectionString do źródła danych, który jest zdefiniowany według wzoru zgodnego z bazą...

Źródło: marcinborecki.pl
Dziel się z innymi:
Entity Framework i wstrzykiwanie otwartego połączenia–czyli wyjaśniamy czym jest Connection Polling I jak sobie z nim radzić | Marcin Borecki - Making a difference everyday

Sztuka programowania 1462 dni, 23 godziny, 30 minut temu mborecki 195 rozwiń

W poprzednich wpisach omawialiśmy wewnętrzną implementację async\await. Dziś kolejne przykłady pokazujące, czego należy unikać aby optymalizować nasz kod. Jak wiemy, użycie await generuje masę kodu i niesie ze sobą alokację dodatkowych obiektów – maszyna stanów, wątki, wrappery itp. W zasadzie sama alokacja w .NET nie jest jakiś wielkim problemem i jest znacząco szybsza niż w językach niezarządzanych. Niestety, pomimo wielu optymalizacji dokonywanych przez GC, późniejsze ich zwolnienie jest czasochłonn...

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

Sztuka programowania 1464 dni, 40 minut temu pzielinski 69 rozwiń

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 1464 dni, 19 godzin, 9 minut 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 1466 dni, 22 godziny, 55 minut temu pzielinski 79 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 1469 dni, 8 godzin, 50 minut temu jdubrownik 184 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 1469 dni, 17 godzin, 16 minut temu pzielinski 124 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 1472 dni, 21 godzin, 43 minuty 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 1474 dni, 12 godzin, 41 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 1478 dni, 24 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 1478 dni, 23 godziny, 50 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 1481 dni, 18 godzin, 26 minut temu pzielinski 234 rozwiń

1 2... 27 28 29 30 31 32... 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)