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

Kolejna część artykułu z cyklu dobre i złe praktyki. Zapraszam do lektury: http://msdn.microsoft.com/pl-pl/library/dobre-i-zle-praktyki-w-c-sharp–czesc-3.aspx

Tagi: C#
Dziel się z innymi:
Piotr Zieliński » Dobre i złe praktyki w C# – część III (programowanie współbieżne)

Sztuka programowania 2572 dni, 11 godzin, 15 minut temu pzielinski 171 źrodło rozwiń

Od kilku dni można rejestrować się na darmowe egzaminy z Visual Studio 2012. Oczywiście są to egzaminy w wersji beta. Nie zmienia to jednak faktu, że w przypadku ich zdania otrzymamy pełnoprawny certyfikat. Można wybierać wśród następujących egzaminów....

Dziel się z innymi:
Darmowe certyfikaty Microsoftu

Sztuka programowania 2579 dni, 10 godzin, 45 minut temu Michal Jankowski 935 źrodło rozwiń

Niniejsze rozważania zacznę od następującej anegdoty, która doskonale oddaje ich sedno. Pewna mała dziewczynka przyglądała się mamie przygotowującej pieczeń: - Mamo, dlaczego gdy robisz pieczeń, to zawsze odcinasz końcówki mięsa i wkładasz je po bokach brytfanny? - Bo tak się piecze kochanie. - Ale dlaczego tak się piecze? - Końcówki obcina się, aby mięso lepiej się upiekło. - Mamo, ale przecież i bez tego mięso by się upiekło. - Córeczko, twoja babcia tak piekła, ciocia tak piecze i ...

Źródło: paskol.robi.to
Dziel się z innymi:
Me z .NET tete-a-tete » Zawsze jest warto poddać ocenie, co jest konwencją co … przyzwyczajeniem

Sztuka programowania 2580 dni, 17 godzin, 11 minut temu PaSkol 162 źrodło rozwiń

W dzisiejszym temacie poruszę pewien problem na jaki można natknąć się podczas używania kolekcji obiektów typu wartościowego. Aby pokazać o co dokładnie chodzi zacznijmy od zdefiniowania przykładowej klasy opisującej prostokąt.

Tagi: .Net, C#, indeksator
Dziel się z innymi:
Indeksatory a kolekcje obiektów typu wartościowego « Developer notes

Sztuka programowania 2583 dni, 3 godziny, 50 minut temu psz750 319 źrodło rozwiń

Dziś podstawy języka c#. Wszyscy znają modyfikatory public, protected, private i chętnie z nich korzystają. Modyfikator protected internal jest zdecydowanie mniej popularny a scenariusze użycia jeszcze rzadziej są prawidłowo identyfikowane. Jak sama nazwa mówi protected internal składa się z dwóch poziomów dostępności. W obrębie tego samego assembly zachowuje się jak czysty internal i mamy dostęp do pola tak jakby było one public. Załóżmy, że projekt składa się z dwóch bibliotek. W bibliotece numer A d...

Dziel się z innymi:
Piotr Zieliński  » Modyfikator protected internal

Sztuka programowania 2586 dni, 20 godzin, 36 minut temu pzielinski 219 źrodło rozwiń

W ostatnim poście pisałem o barierze jako rozwiązaniu na uniknięcie problemów z związanych z optymalizacją dokonywaną przez CPU (re-ordering). Kilka postów wcześniej pisałem z kolei o buforowaniu danych i słowie kluczowym volatile. Jeśli nie wiedzie co to jest MemoryBarrier oraz Volatile zachęcam do przeczytania tych wpisów najpierw – bez nich dzisiejszy post będzie kompletnie niezrozumiały. Wiemy, że caching oraz re-ordering może na niektórych architekturach spowodować trudne w analizie błędy. Dziś chc...

Tagi: bariera, C#, lock
Dziel się z innymi:
Piotr Zieliński  » Blokada lock a bariera oraz caching

Sztuka programowania 2589 dni, 4 godziny, 23 minuty temu pzielinski 78 źrodło rozwiń

W .NET istnieje metoda Thread.MemoryBarrier(). W użyciu jest bardzo prosta – nie wymaga przekazania żadnych parametrów. Strona teoretyczna jest jednak bardziej skomplikowana. Przed wyjaśnieniem czym jest Memory Barrier w świecie współbieżnym musimy zrozumieć jak wykonywane są instrukcje przez procesor. Załóżmy, że mamy następujące operacje:a = b +1 c = a +1 d = e +1; W jakiej kolejności zostaną wykonane powyższe operacje? Naturalne wydaje się, że procesor wykona je po kolei. Jednak ze względu na różn...

Tagi: C#, MemoryBarrier
Dziel się z innymi:
Piotr Zieliński » Thread.MemoryBarrier–wprowadzenie

Sztuka programowania 2592 dni, 10 godzin, 13 minut temu pzielinski 133 źrodło rozwiń

Dziś trochę dla odmiany, nie będę pisał o wielowątkowości a o jednym z podstawowych słów kluczowych w c#, które na szczęście nie jest bardzo popularne – bazując na moim doświadczeniu z różnymi projektami, rzadko widuje je w kodzie. Global przydaje się gdy mamy konflikty z przestrzeniami nazw. Wyobraźmy sobie, że mamy następujący kod (kod  bazuje na dokumentacji MSDN):class Program { publicclass System { } constint Console =7; staticvoid Main() { } } Następnie chcemy w metodzie Co...

Tagi: C#, global
Dziel się z innymi:
Piotr Zieliński » Słowo kluczowe global

Sztuka programowania 2595 dni, 18 godzin, 1 minutę temu pzielinski 242 źrodło rozwiń

Witam kolejna cześć artykułu z cyklu “dobre i złe praktyki w c#”. Zapraszam do lektury: http://msdn.microsoft.com/pl-pl/library/dobre-i-zle-praktyki-w-c-sharp–czesc-2.aspx

Tagi: C#
Dziel się z innymi:
Piotr Zieliński » Dobre i złe praktyki w C# – część II

Sztuka programowania 2598 dni, 15 godzin, 59 minut temu pzielinski 390 źrodło rozwiń

Kiedyś na blogu opisywałem kilka implementacji singleton’a przystosowanych do pracy w środowisku wielowątkowym. Jedna z nich opierała się na tzw. double checked locking:publicsealedclass Singleton { privatestatic Singleton mInstance =null; privatestaticreadonlyobject mSync =newobject(); private Singleton() { } publicstatic Singleton Instance { get { if(m_Instance ==null ) { lock(m_Sync) { i...

Tagi: C#, Singleton
Dziel się z innymi:
Piotr Zieliński » Code review: Wielowątkowy singleton

Sztuka programowania 2601 dni, 5 godzin, 52 minuty temu pzielinski 212 źrodło rozwiń

To będzie króciutki wpis, niemniej traktujący o dość istotniej zasadzie programowania obiektowego, tj. zasadzie jednolitego dostępu. Jej treść brzmi następująco: Wszystkie usługi oferowane przez moduł powinny być dostępne za pośrednictwem jednolitej notacji, która nie zdradza, czy zostały one zaimplementowane z wykorzystaniem danych przechowywanych statycznie, czy też obliczanych na bieżąco w razie potrzeby. Jakie są zalety ze stosowania tej zasady? Otóż...

Źródło: paskol.robi.to
Dziel się z innymi:
Me z .NET tete-a-tete » Programowanie jest proste, gdy masz jednolity dostęp

Sztuka programowania 2604 dni, 3 godziny, 29 minut temu PaSkol 195 źrodło rozwiń

Na moim blogu co jakiś czas można znaleźć informacje dotyczące pisania dobrego oraz złego kodu w c#. Oprócz tego zacząłem pisać serie artykułów związanych z tą tematyką. Wiele informacji w tych artykułach można było znaleźć już wcześniej na moim blogu ale myślę, że ten cykl stanowi dobre dopełnienie i podsumowanie tego wszystkiego co piszę tutaj. Oczywiście artykuły rozszerzają tematykę, oraz zawierają więcej przykładów więc tym bardziej zachęcam do lektury. Dziś została opublikowana pierwsza część: ht...

Dziel się z innymi:
Piotr Zieliński » Dobre i złe praktyki w C# – część I

Sztuka programowania 2607 dni, 10 godzin, 58 minut temu pzielinski 604 źrodło rozwiń

Dodanie animacji w WPF w stylu funkcyjnym.

Dziel się z innymi:
Programowanie funkcyjne w WPF

Sztuka programowania 2609 dni, 4 godziny, 59 minut temu dit2006 225 źrodło rozwiń

Dziś czas na kolejną metrykę badania kodu  – TypeRank. Wartość metryki jest liczona za pomocą algorytmu Google Page Rank, który jest wykorzystywany przez wyszukiwarki do indeksowania stron. W świecie wyszukiwarek internetowych im większa wartość tym strona znajdzie się wyżej podczas prezentowania wyników. Algorytm bada powiązania między stronami internetowymi. Strona dostaje wyższą ocenę, gdy więcej innych stron wskazuje na nią. Stwierdzono, że skoro do danej strony odwołuje się więcej innych witryn to ...

Tagi: C#, TypeRank
Dziel się z innymi:
Piotr Zieliński » Metryka TypeRank

Sztuka programowania 2610 dni, 11 godzin, 47 minut temu pzielinski 70 źrodło rozwiń

Dziś trochę o matematycznej walidacji kodu czyli o metrykach.  LCOM (lack  cohesion of methods) umożliwia obliczenie jak bardzo nasze metody są spójne. Do obliczania tej wartości istnieją gotowe narzędzia takie jak nDepend, ale aby w pełni zrozumieć znaczenie metryki obliczymy sami jej wartość dla prostej klasy. Powinno dążyć się do jak największej spójności a tym samym do jak najniższej wartości LCOM. Przed wyjaśnieniem czym jest metryka LCOM wprowadźmy następujące pojęcia: M – zbiór metod danej klasy...

Tagi: C#, Code review
Dziel się z innymi:
Piotr Zieliński » Code review: Badanie spójności kodu

Sztuka programowania 2613 dni, 11 godzin, 36 minut temu pzielinski 219 źrodło rozwiń

Jak każdemu porządnemu developerowi zdarza mi się czasem napisać testy. Jak każdemu porządnemu developerowi, czasem zdarza mi się wykorzystać mechanizm metod rozszerzających (jeśli nie wiesz o czym mówię sprawdź na msdn). Jak każdy prawdziwy developer, chciałem przetestować logikę, która była wykorzystywana w jednej z takich metod. W zasadzie to nie w samej metodzie, chciałem sprawdzić czy zostanie wywołana z wartościami, które są dla mnie ważne. Zacznę od metod rozszerzających, a testowanie przyjdzie ...

Dziel się z innymi:
jstadnicki: Metody rozszerzające - testowanie i porządek w api.

Sztuka programowania 2616 dni, 17 godzin, 18 minut temu Paweł Łukasik 207 źrodło rozwiń

W ostatnim poście opisałem atrybut ThreadStatic pozwalający na korzystanie ze statycznych pól w sposób niezależny w każdym wątku. Dziś pora na analogiczną klasę, wprowadzoną w .NET 4.0 – ThreadLocal. Zacznijmy od przykładu:class ClassA { private ThreadLocal

Tagi: C#, ThreadLocal
Dziel się z innymi:
Piotr Zieliński  » Klasa ThreadLocal

Sztuka programowania 2616 dni, 17 godzin, 18 minut temu pzielinski 65 źrodło rozwiń

W C# istnieje dość mało popularny atrybut ThreadStaticAttribute. Do czego on służy? Zacznijmy od przykładu:internalclass Program { [ThreadStatic] privatestaticint _value; privatestaticvoid Main(string[] args) { Thread thread1 =new Thread(PrintValue); Thread thread2 =new Thread(PrintValue); thread1.Start(4); thread1.Join(); thread2.Start(); } staticprivatevoid PrintValue(object args) { if(args!=null) _value = (int) ar...

Dziel się z innymi:
Piotr Zieliński » Atrybut ThreadStaticAttribute

Sztuka programowania 2618 dni, 11 godzin, 22 minuty temu pzielinski 92 źrodło rozwiń

Napiszemy prosty program wielowątkowy, zrobimy synchronizację z głównym wątkiem (aby czekał dokładnie do momentu zakończenia drugiego wątku) i dodatkowo prześlemy parametr do nowo tworzonego wątku. To wszystko jest często niezbędne w aplikacjach i warto wiedzieć jak to się robi. Poprzednio wątki synchronizowane były za pomocą zmiennej bool. Nie jest to dobre rozwiązanie. Dodatkowo wątek główny musiał sprawdzać co pewien czas wartość tej zmiennej. Tutaj rozwiążemy to nieco bardziej optymalnie. Stw...

Dziel się z innymi:
C# na blache: Program wielowątkowy

Sztuka programowania 2624 dni, 7 godzin, 52 minuty temu sikor02 322 źrodło rozwiń

Zastanawiałeś się kiedyś po co przy deklaracji delegata wymagane jest podawanie nazw zmiennych nawet jeśli nie są do niczego potrzebne? Weźmy np prostego delegata przyjmującego 2 inty i zwracającego inta: public delegate int SimpleDelegate(int x, int y); Jeśli zdefiniujemy sobie takiego delegata gdzieś w programie to przecież nie używamy nigdzie tych zmiennych: SimpleDelegate d = new SimpleDelegate(SomeFunction); Więc czemu nie można zadeklarować delegata np w taki sposób? (kompilator nie ...

Dziel się z innymi:
C# na blache: Nazwy zmiennych w delegatach

Sztuka programowania 2625 dni, 5 godzin, 25 minut temu sikor02 128 źrodło rozwiń

1 2... 53 54 55 56 57
Sklep z gadzetami
Dotnetos Conference

Najaktywniejsi

1
(32 891,59)
2
(32 816,53)
3
(27 178,29)
4
(21 178,88)
5
(20 336,33)
6
(13 018,14)
7
(10 510,04)
8
(9 775,28)
9
(8 343,27)
10
(6 822,96)
11
(6 214,22)
12
(5 393,84)
13
(4 097,38)
14
(3 979,62)
15
(3 863,06)
16
(3 599,43)
17
(3 448,35)
18
(3 318,39)
19
(3 224,66)
20
(3 105,41)