dotnetomaniak.pl

dotnetomaniak.pl - Artykuły z tagiem C#

Przechodząc na język C#, chcąc nie chcąc programuje się zgodnie z wyrobionych dotąd stylem i wg starych przyzwyczajeń. Niemniej, staram się weryfikować, czy obrana droga rzeczywiście jest tą, z której należy korzystać na nowym terenie, jakim jest C#. Dotąd często korzystałem z możliwości domyślnych parametrów, tak w konstruktorach, jak i w metodach (procedurach i funkcjach). Ostatnio mój kolega zauważył, że C# do konstrukcji klas nie używa konstruktorów z domyślnymi parametrami...

Źródło: paskol.robi.to
Dziel się z innymi:
Me z .NET tete-a-tete » Domyślność rozwiąże nadmierność przeciążeń

Sztuka programowania 1873 dni, 21 godzin, 26 minut temu PaSkol 131 rozwiń

Ponad dwa lata temu, popełniłem wpis na temat operacji na kolekcjach w C#. Post ten ku mej uciesze, wciąż cieszy się sporą popularnością, dlatego też postanowiłem napisać niejako jego kontynuację. Gdy dwa lata temu pisałem tamten wpis, wciąż dominującą wersją frameworka .Net, była ta oznaczona wersją 2.0. Dziś sytuacja się trochę zmieniła i przynajmniej w moim odczuciu, coraz więcej osób korzysta z wersji 3.5 i 4.0, a na horyzoncie jest już .Net 4.5, który pojawi się w pełni wraz z Windowsem 8 i Visual ...

Dziel się z innymi:
Operacje na kolekcjach w C# z użyciem LINQ - Alt Control Delete

Architektura 1874 dni, 12 godzin, 31 minut temu Yuras 293 rozwiń

W ostatnich postach opisuje różne mechanizmy synchronizacji w c#. Jak widać, jest tego na prawdę wiele i sama znajomość słowa lock nie wystarcza jeśli poważnie myśli się o algorytmach współbieżnych. Dziś kolejna metoda synchronizacji a mianowicie klasa CountdownEvent. Ostatnie posty oprócz wprowadzenia do wspomnianych klas stanowią wstęp do kolekcji współbieżnych, które zamierzam omówić wkrótce. Konstruktor CountdownEvent przyjmuje liczbę całkowita (zwykle większą od 0), która stanowi wartość początkową...

Dziel się z innymi:
Piotr Zieliński » Synchronizacja za pomocą CountdownEvent

Sztuka programowania 1875 dni, 20 minut temu pzielinski 110 rozwiń

Dziś krótki post o ciekawej konwersji, która ma miejsce podczas przekazywania delegat. Rozważmy kod

Tagi: C#, Method group
Dziel się z innymi:
Piotr Zieliński » Method group

Inne 1879 dni, 11 godzin, 16 minut temu pzielinski 231 rozwiń

Dziś kolejny post o synchronizacji w c#. Semafor to bardzo popularna forma limitowania liczby wątków, które mogą mieć dostęp do danego kodu. Nie chcę omawiać tutaj podstaw semafora, ale myślę, że warto przypomnieć ogólną zasadę. Pseudokod (źródło Wikipedia):procedure V (S : Semaphore); begin (* Operacja atomowa: inkrementacja semafora *) S := S +1; end; (* Operacja atomowa: dekrementacja semafora ) procedure P (S : Semaphore); begin ( Cała operacja jest atomowa *) repeat Wait()...

Dziel się z innymi:
Piotr Zieliński» Semafor w c#

Sztuka programowania 1881 dni, 22 godziny, 4 minuty temu pzielinski 245 rozwiń

W .NET istnieje wiele sposobów synchronizacji pracy wątków. O dużej części z nich pisałem już na blogu (z ciekawszych np. klasa Barrier ). Najpopularniejszym i najłatwiejszym sposobem jest użycie słowa kluczowego lock. W wielu przypadkach jest to najlepszy i najbezpieczniejszy wybór. SpinLock to zupełnie inne podejście. W przypadku lock, wątek jest usypiany i budzony gdy przyjdzie na niego kolej. Ma to kilka poważnych wad. Wiążą się one z szeregowaniem oraz zmianą kontekstu. Zmiana kontekstu jest dość c...

Dziel się z innymi:
Piotr Zieliński » Synchronizacja za pomocą SpinLock

Inne 1884 dni, 18 godzin, 9 minut temu pzielinski 195 rozwiń

Na platformie .NET od wersji 3.5 dostępna jest technologia LINQ oferująca uniwersalny mechanizm zadawania zapytań do obiektów. W tym wpisie pokażę w jaki sposób przy użyciu LINQ to XML przenieść dane z kolekcji obiektów do dokumentu XML, wczytać dane z pliku XML do kolekcji oraz zmodyfikować zawartość XML-a.

Tagi: .Net, C#, Linq, xml
Dziel się z innymi:
Kolekcja obiektów i plik XML – zapis, odczyt i modyfikacja danych przy użyciu LINQ to XML « Developer notes

Inne 1884 dni, 18 godzin, 9 minut temu psz750 662 rozwiń

W .NET 4.0 wprowadzoną klasę Tuple służącą do owijania kilku wartości w jeden obiekt. Tuple to nic innego jak obiekt zawierający w sobie jakieś dane w postaci właściwości. Do dyspozycji jest 8 statycznych  metod służących do stworzenia Tuple:Create(T1)Create(T1,T2)Create(T1,T2,T3)Create(T1,T2,T3,T4)Create(T1,T2,T3,T4,T5)Create(T1,T2,T3,T4,T5,T6)Create(T1,T2,T3,T4,T5,T6,T7)Create(T1,T2,T3,T4,T5,T6,T7,T8) Ponadto istnieje możliwość stworzenia tuple za pomocą jednego z konstruktorów:Tuple

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

Inne 1887 dni, 10 godzin temu pzielinski 264 rozwiń

Posted by slanto on Zastosowanie wzorca Decorator na przykładzie produktu i ofert specjalnych. Wzorzec ten pozwala nam na dynamiczną zmianę/rozszerzanie zachowania istniejących klas.

Dziel się z innymi:
Decorator Pattern | Zapiski programisty .net

Architektura 1891 dni, 10 godzin, 56 minut temu http://slanto.myopenid.com/ 263 rozwiń

When working with multi threaded applications, we tend to spawn worker threads which can lead to ineffective code when not done correctly, for example threads will not get reused and will be recreated for each work items. The solution to all those problems is a ThreadPool which reuses threads and queues work items that are consumed by those threads. This sort of implementation while simple can have side effects as unless the pool Queue is immutable it will have to be locked each time an item Enqueued and...

Dziel się z innymi:
Work Stealing | Passion of Programming in .NET

Inne 1893 dni, 9 godzin, 53 minuty temu http://badamczewski.blogspo... 213 rozwiń

Często spotykanym wyzwaniem przy budowie systemów rozproszonych jest przesyłanie plików o znacznych rozmiarach. Tego typu rozwiązanie w łatwy sposób można zaimplementować w technologii WCF, która pozwala na tworzenie wszechstronnych i wydajnych usług sieciowych. Na przykładowym serwisie WCF pokażę w jaki sposób radzić sobie z wysyłaniem i odbieraniem dużych plików pomiędzy klientem a usługą.

Tagi: .Net, C#, stream, WCF
Dziel się z innymi:
Przesyłanie plików w systemach rozproszonych – streaming w WCF « Developer notes

Programowanie rozproszone 1893 dni, 9 godzin, 53 minuty temu psz750 401 rozwiń

W dzisiejszym poście o dwóch nowościach. Pierwsza z nich to ulepszona kompatybilność. W VS 11 można otwierać solucje utworzone w Visual Studio 2010 bez znanego “Upgrade”. Oznacza to, że można jednocześnie na tym samym projekcie pracować zarówno w VS 11 jak i VS 2010. Projekt otworzony w VS 11 nie powoduje zmiany  formatu i później wciąż może być otwierany w VS 2010. Moim zdaniem znaczącą ułatwia to migrację. Niestety projekt utworzony od nowa w VS 11 nie może być już otwarty w 2010 ale wydaje się to natu...

Tagi: C#, Visual Studio
Dziel się z innymi:
Piotr Zieliński » Visual Studio 11 – kompatybilność wstecz oraz Solution Explorer

Narzędzia 1893 dni, 9 godzin, 53 minuty temu pzielinski 156 rozwiń

Piotr Zieliński na swoim blogu rozważał zasadność redefiniowania przez klasy dziedziczące metod z klas dziedziczonych (przy pomocy modyfikatora new), warto zapoznać się z tym wpisem przed kontynuowaniem lektury niniejszego tekstu. Na zakończenie Piotr poprosił o podanie innych, od przestawionych przez niego, powodów, na zasadność użycia modyfikatora new. Oto jeden z nich...

Źródło: paskol.robi.to
Dziel się z innymi:
Me z .NET tete-a-tete » Co jest zasadnym powodem, by przekabacić metodę

Architektura 1894 dni, 7 godzin, 6 minut temu PaSkol 159 rozwiń

W ostatnim poście o nowościach w VS 11 pisałem o szarych ikonach, co w większości osobom nie przypadło do gustu. Z tego co obserwuję, zdecydowana większość jest rozczarowana nowymi ikonami. Dzisiaj jednak chciałbym zaprezentować praktyczniejszą funkcję – nowy QuickLaunch. Na początek PrintScren: Chodzi mi oczywiście o QuickLaunch znajdujący się w prawym górnym rogu. Wpisując jakiś tekst, zostanie przeszukanych kilka typów informacji jak:Otwarte dokumenty (przeszukuje po ich nazwie).Item’y w menu – bar...

Tagi: C#, Visual Studio
Dziel się z innymi:
Piotr Zieliński » Visual Studio 11– QuickLaunch

Narzędzia 1894 dni, 5 godzin, 30 minut temu pzielinski 203 rozwiń

W obecnym czasie, z bardzo rozwiniętymi środowiskami programistycznymi, takimi jak choćby Visual Studio, czy też Eclipse, bardzo łatwo jest rozpocząć swoją przygodę z programowaniem, które w tym przypadku czasem bardziej przypomina zabawę z klockami, niż rzeczywiste . Jednak nastawiając się na bezmyślne składanie klocków, szybko można obudzić się z przysłowiową , w sytuacji gdy zajdzie potrzeba modyfikacji lub rozszerzenia tak radośnie tworzonego kodu, a warto zaznaczyć, że nieumiejętnie sklejony kod mo...

Dziel się z innymi:
C# - Interfejsy które warto znać  - Alt Control Delete

Architektura 1895 dni, 23 godziny, 35 minut temu Yuras 468 rozwiń

W wielu publikacjach service locator podawany jest jako wzorzec projektowy, doskonale nadający się do implementacji inversion of control. W poście jednak chciałbym przedstawić drugą szkołę, która uważa, że ten wzorzec jest “brzydki” i powoduje ogromne zamieszanie. Przede wszystkim odpowiedzmy sobie kiedy używamy podejścia IoC? W aplikacjach tymczasowych? Prototypach? Raczej nie… Początkowy czas na napisanie aplikacji IoC może okazać się dłuższy a korzyści nadchodzą dopiero po kilku miesiącach implementa...

Dziel się z innymi:
Piotr Zieliński » Service Locator jako anti-pattern

Architektura 1897 dni, 19 godzin, 4 minuty temu pzielinski 278 rozwiń

Co poniższy kod zwróci na ekranie? Spodziewać się można 0,1,2. Jednak na ekranie ujrzymy 5,5,5. Dlaczego?

Tagi: C#, Lambda
Dziel się z innymi:
Piotr Zieliński » Wyrażenia lambda i niespodziewany rezultat

Inne 1900 dni, 21 godzin, 18 minut temu pzielinski 252 rozwiń

Zamierzam napisać kilka krótkich postów o nowych funkcjonalnościach w Visual Studio 11. Na dobry początek zacznijmy po prostu od screenu: Co od razu rzuca się w oczy? Czarno białe ikony. Dla porównania zobaczymy jak wygląda “stary” Visual Studio: Na pierwszy rzut oka to poprzednia wersja wygląda dużo nowocześniej ze względu na kolorowe, bardziej 3d ikonki. Dlaczego Microsoft zdecydował się na taki krok? Z tego co wiem, doszli do wniosku, że środowisko programistyczne nie powinno być zabawką i nie m...

Tagi: C#, Visual Studio
Dziel się z innymi:
Piotr Zieliński » Visual Studio 11 – pierwsze spojrzenie

Narzędzia 1902 dni, 1 godzinę, 49 minut temu pzielinski 231 rozwiń

W c# 5.0 dodano dwa nowe atrybuty: CallerMemberName oraz CallerFilePath. Można je stosować do domyślnych parametrów metod:staticprivatevoid Print([CallerMemberName]string methodName =null, [CallerFilePath]string fileName =null) { Console.WriteLine(methodName); Console.WriteLine(fileName); } Wywołanie powyższej metody bez podania argumentów spowoduje przekazaniem nazwy metody, która wywołała Print oraz ścieżki pliku w którym znajduje się ta metoda:Print(); Jeśli Print został wywołany w metodzie ...

Tagi: atrybuty, C#
Dziel się z innymi:
Piotr Zieliński » C# 5.0: Atrybuty CallerMemberName, CallerFilePath oraz implementacja interfejsu INotifyPropertyChanged

Inne 1902 dni, 1 godzinę, 49 minut temu pzielinski 193 rozwiń

Często widzę następujący kod. Oczywiście jeśli mamy pewność, że zawsze jest klucz nie ma z tym problemu. Czasami jednak takiej pewności nie ma i należy zwrócić NULL albo stworzyć dany element w słowniku. Wtedy zaczynają się problemy bo najczęściej jest to dokonywane za pomocą:

Tagi: C#, data-access
Dziel się z innymi:
Piotr Zieliński » Code review: bezpieczny dostęp do danych

Inne 1905 dni, 3 godziny, 56 minut temu pzielinski 192 rozwiń

1 2... 37 38 39 40 41 42... 60 61
Szkolenia SecurITum

wrzesień

14.
devConf
Kraków
20.

październik

Zobacz wszystkie

Najaktywniejsi

1

macko (32 816,53)

2

http://pawlos.blo... (31 674,47)

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,26)

8

Damian (9 096,1)

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

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

17

spetz (3 168,28)

18

CaMeL (2 954,87)

19

lkurzyniec (2 669,92)

20

mnikolajuk (2 596,93)