Pierwszy raz na dotnetomaniaku? Przeczytaj nasz FAQ lub zadaj nam pytanie.

pzielinski
Nazwa: pzielinski
Punkty: 12 795,67
Ostatnio widziany: 8 godzin, 6 minut temu
Zarejestrowany od: 21 lutego, 2010
dotnetomaniak.pl
atom rss
1
.netomaniak

Piotr Zieliński » Code Review: pola w C# nowe okno

opublikowano 6 godzin, 6 minut temu | wysłane przez pzielinskipzielinski 10 godzin, 23 minuty temu
4 lutego 2012 21:28:18 GMT 4 lutego 2012 17:12:03 GMT
Co byście powiedzieli na taki kod?publicclass Person { publicstring FirstName; publicstring LastName; publicstring GetFullName() { returnstring.Format("{0} {1}", FirstName, LastName); } } Na pierwszy rzut oka może nic poważnego. Jednak jeśli chcemy pisać kod zgodny z praktykami C#, powinniśmy zwrócić uwagę na następujące kwestie:Enkapsulacja, FirstName,LastName powinni być ukryte i ewentualnie wyeksponowane za pomocą setterow\getterów.GetFullName jest dobrym sposobem dla Javy (a w... (więcej)
kategoria: Inne | kliknięć: 51 | skomentuj | | źródło: www.pzielinski.com
tagi: dobre praktyki
2
.netomaniaki

Piotr Zieliński » Artykuł: Wprowadzenie do wzorca projektowego Model-View-ViewModel na przykładzie aplikacji WPF nowe okno

opublikowano 6 godzin, 6 minut temu | wysłane przez pzielinskipzielinski 3 dni, 9 godzin, 38 minut temu
4 lutego 2012 21:28:18 GMT 1 lutego 2012 17:56:06 GMT
Zachęcam do kolejnego artykułu, tym razem o wzorcu MVVM: http://msdn.microsoft.com/pl-pl/library/wprowadzenie-do-wzorca-projektowego-model-view-viewmodel-na-przykladzie-aplikacji-wpf.aspxExplore posts in the same categories:Patterns & Practices, WPF (więcej)
kategoria: Architektura | kliknięć: 188 | skomentuj | | źródło: www.pzielinski.com
tagi: MVVM
1
.netomaniak

Piotr Zieliński » SplashScreen nowe okno

opublikowano 6 godzin, 6 minut temu | wysłane przez pzielinskipzielinski 6 dni, 10 godzin, 56 minut temu
4 lutego 2012 21:28:18 GMT 29 stycznia 2012 16:38:06 GMT
W Visual Studio bardzo łatwo tworzyć Splash Screen- czyli okno powitalne, wyświetlające się w momencie ładowania aplikacji. Każda z większych aplikacji posiada taki gadget (Visual Studio, Office itp.). Zamiast wyświetlać pusty ekran, dużo lepszym rozwiązaniem jest wyświetlenie SplashScreen’u z logiem firmy\aplikacji. W VS można tego dokonać za pomocą kilku kliknięć:Dodajemy obrazek do solucji (Add->Add Existing Item).W oknie właściwości wybieramy BuildAction –> Splash Screen.Gotowe! Można uruchomić aplikacj... (więcej)
kategoria: Windows | kliknięć: 218 | skomentuj | | źródło: www.pzielinski.com
tagi: splashscreen
2
.netomaniaki

Piotr Zieliński » Code review: Pułapka z LINQ nowe okno

opublikowano 6 godzin, 6 minut temu | wysłane przez pzielinskipzielinski 9 dni, 7 godzin, 20 minut temu
4 lutego 2012 21:28:18 GMT 26 stycznia 2012 20:14:41 GMT
Rozważmy następujący kod:IEnumerable (więcej)
kategoria: Inne | kliknięć: 372 | skomentuj | | źródło: www.pzielinski.com
tagi: Code review, Linq
2
.netomaniaki

Piotr Zieliński » Code review: słowo kluczowe using nowe okno

opublikowano 3 dni, 5 godzin, 7 minut temu | wysłane przez pzielinskipzielinski 12 dni, 7 godzin, 9 minut temu
1 lutego 2012 22:27:35 GMT 23 stycznia 2012 20:25:08 GMT
W postach oznaczonych “Code review” zamierzam przedstawiam dobre i złe praktyki pisania kodu. Posty przeważnie będą składały się z fragmentu kodu i opisu co jest w nim źle. Dziś spójrzmy na:StreamReader streamReader =new StreamReader(File.Open(path, FileMode.Open)); string header = streamReader.ReadLine(); string dataPoints = streamReader.ReadLine(); string[] dataPointArray = dataPoints.Split(newchar[]{';’});streamReader.Close(); Co w tym jest jest nie tak? W przypadku gdy np. ReadLine wyrzuci wyjątek, ...... (więcej)
kategoria: Inne | kliknięć: 357 | skomentuj | | źródło: www.pzielinski.com
tagi: Code review
2
.netomaniaki

Piotr Zieliński » Obsługa wyjątków–kilka najczęściej popełnianych błędów nowe okno

opublikowano 5 dni, 16 godzin, 56 minut temu | wysłane przez pzielinskipzielinski 15 dni, 7 godzin, 17 minut temu
30 stycznia 2012 10:38:40 GMT 20 stycznia 2012 20:17:39 GMT
Nieprawidłowa obsługa wyjątków może przynieść więcej problemów niż pożytku.  O obsłudze błędów można byłoby napisać artykuł, jednak w poście chciałbym skupić się wyłącznie na kilku aspektach. 1. Pierwszym problemem jest fakt, że część programistów używa wyjątków do sytuacji po prostu niewyjątkowych. Jak sama nazwa mówi, wyjątek powinien być zastosowany gdzie może zdarzyć się coś niespodziewanego. Spójrzmy więc na poniższy fragment:int number; try { number =int.Parse(text); } catch { number =... (więcej)
kategoria: Architektura | kliknięć: 366 | skomentuj | | źródło: www.pzielinski.com
tagi: Exceptions, wyjątki
1
.netomaniak

Piotr Zieliński » Artykuł: Prism – nawigacja na podstawie zdefiniowanych stanów nowe okno

opublikowano 8 dni, 20 godzin, 41 minut temu | wysłane przez pzielinskipzielinski 18 dni, 6 godzin, 41 minut temu
27 stycznia 2012 06:53:54 GMT 17 stycznia 2012 20:53:26 GMT
Zapraszam do lektury: http://msdn.microsoft.com/pl-pl/library/prism–nawigacja-na-podstawie-zdefiniowanych-stanow.aspx (więcej)
kategoria: Narzędzia | kliknięć: 86 | skomentuj | | źródło: www.pzielinski.com
tagi: Prism
1
.netomaniak

Piotr Zieliński » Artykuł: Prism – Zdarzenia i komendy nowe okno

opublikowano 11 dni, 20 godzin, 39 minut temu | wysłane przez pzielinskipzielinski 21 dni, 10 godzin, 17 minut temu
24 stycznia 2012 06:55:35 GMT 14 stycznia 2012 17:17:27 GMT
Zapraszam do poczytania o komendach i zdarzeniach dostarczonych przez framework PRISM: http://msdn.microsoft.com/pl-pl/library/zdarzenia-i-komendy-w-prism (więcej)
kategoria: Windows | kliknięć: 132 | skomentuj | | źródło: www.pzielinski.com
tagi: Prism
1
.netomaniak

Piotr Zieliński » Rendezvous w C#–klasa Barrier nowe okno

opublikowano 14 dni, 18 godzin, 48 minut temu | wysłane przez pzielinskipzielinski 24 dni, 7 godzin, 7 minut temu
21 stycznia 2012 08:46:58 GMT 11 stycznia 2012 20:27:23 GMT
Klasa Barrier umożliwia synchronizacje kilku wątków. Mechanizm bardzo znany np. z Ady pozwala dopuścić wykonanie kodu wyłącznie jeśli inne wątki na to się zgadzają. Załóżmy, że mamy 4 wątki robiące równoległe jakieś obliczenia. Po ich zakończeniu chcemy scalić wynik ale musimy poczekać aż wszystkie zadania zostaną ukończone. W C# 4.0 można wykorzystać tzw. taski, ale w tym artykule skupimy się na Barrier, która służy to dużo bardziej skomplikowanych zadań. Przypuśćmy, że nasz algorytm składa się z kilku fa... (więcej)
kategoria: Inne | kliknięć: 149 | skomentuj | | źródło: www.pzielinski.com
tagi: Barrier
3
.netomaniaki

Piotr Zieliński » Kiedy używać plików PDB? nowe okno

opublikowano 17 dni, 15 godzin, 3 minuty temu | wysłane przez pzielinskipzielinski 27 dni, 9 godzin, 35 minut temu
18 stycznia 2012 12:32:01 GMT 8 stycznia 2012 17:59:46 GMT
Wiele osób z pewnością kojarzy pliki PDB, przynajmniej z nazwy. Myślę, jednak, że w praktyce mało kto zdaje sobie sprawę co one zawierają i kiedy mogą się przydać programiście. W poście zatem chciałbym przybliżyć praktyczne korzyści z używania Program Database Files. Z pewnością PDB kojarzy się z debuggowaniem i niestety z czymś niepotrzebnym w środowisku produkcyjnym – co jak się okaże jest nieprawdą! Zacznijmy od wprowadzenia teoretycznego, PDB dla .NET  zawiera:Nazwy plików z kodem źródłowym.Nazwy lokal... (więcej)
kategoria: Inne | kliknięć: 321 | skomentuj | | źródło: www.pzielinski.com
tagi: pdb
1
.netomaniak

Piotr Zieliński » Inicjalizacja właściwości obiektu nowe okno

opublikowano 20 dni, 8 godzin, 22 minuty temu | wysłane przez pzielinskipzielinski 30 dni, 5 godzin, 41 minut temu
15 stycznia 2012 19:12:59 GMT 5 stycznia 2012 21:53:41 GMT
W C# 3.0 wprowadzono nowy typ inicjalizacji pól klas, przykład:class SampleClass { publicint X { get; set; } publicint Y { get; set; } } SampleClass sampleClass =null; try { sampleClass =new SampleClass {X =5, Y =10}; } catch (Exception) { } int y = sampleClass.Y; Przed c# 3.0 programiści zwykle używali następującej konstrukcji:SampleClass sampleClass =null; try { sampleClass=new SampleClass(); sampleClass.X =5; sampleClass.Y =10; } catch (Exception) { } int y = sampleC... (więcej)
kategoria: Inne | kliknięć: 227 | skomentuj | | źródło: www.pzielinski.com
tagi: inicjalizacja
2
.netomaniaki

Piotr Zieliński » Obsługa zdarzeń – dwa podejścia nowe okno

opublikowano 23 dni, 9 godzin, 59 minut temu | wysłane przez pzielinskipzielinski 33 dni, 7 godzin, 37 minut temu
12 stycznia 2012 17:35:49 GMT 2 stycznia 2012 19:57:50 GMT
Dzisiaj prosta i częsta sprawa – obsługa zdarzeń.  Zdefiniujmy fikcyjne zdarzenie:class SampleClass { publicevent EventHandler EventHappened; } Następnie mamy jakąś metodę, która po wykonaniu własnej logiki, wywołuje zdarzenie. Jak powinno to zostać prawidłowo wykonane? Zacznijmy od niepoprawnego podejścia:class SampleClass { publicevent EventHandler EventHappened; privatevoid Method() { EventHappened(this,new EventArgs()); } } Metoda spowoduje wyjątek jeśli żadne zdar... (więcej)
kategoria: Inne | kliknięć: 297 | skomentuj | | źródło: www.pzielinski.com
tagi: events
2
.netomaniaki

Piotr Zieliński » Dlaczego struktury nie mogą posiadać konstruktora bez parametrów? nowe okno

opublikowano 27 dni, 5 godzin, 10 minut temu | wysłane przez pzielinskipzielinski 36 dni, 14 godzin, 10 minut temu
8 stycznia 2012 22:24:10 GMT 30 grudnia 2011 13:24:15 GMT
Na początku stwórzmy strukturę z konstruktorem przyjmującym dwa parametry:publicstruct SampleStruct { public SampleStruct(int x, int y) { _x = x; _y = y; } privateint _x, _y; } Czy powyższy kod jest prawidłowy? Tak, skompiluje się i będzie działał bez problemów. Zdefiniujmy więc domyślny konstruktor:publicstruct SampleStruct { public SampleStruct() { _x = _y =0; } public SampleStruct(int x, int y) { _x = x; _y = y; }... (więcej)
kategoria: Inne | kliknięć: 207 | skomentuj | | źródło: www.pzielinski.com
tagi: struktury
1
.netomaniak

Piotr Zieliński » Boxing i unboxing. nowe okno

opublikowano 29 dni, 14 godzin, 32 minuty temu | wysłane przez pzielinskipzielinski 39 dni, 11 godzin, 39 minut temu
6 stycznia 2012 13:02:05 GMT 27 grudnia 2011 15:55:55 GMT
W zeszłym poście pisałem o strukturach w c#. Jednym z ważnych efektów ubocznych jest boxing oraz unboxing. Jak wiemy z poprzedniego wpisu struktury przechowywane są na stosie a klasy na stercie. Boxing to niż innego jak wrapping struktury (lub jakiekolwiek innego typu wartościowego) w obiekt przechowywany na stercie. Na przykład:int value=0; object boxedValue=value; // boxing Zmienna value przechowywana jest na stosie, z kolei boxedValue na stercie (pamiętajmy o nagłówku oraz GC). Należy zwrócić szczegó... (więcej)
kategoria: Inne | kliknięć: 194 | skomentuj | | źródło: www.pzielinski.com
tagi: boxing, unboxing
2
.netomaniaki

Piotr Zieliński » Klasy i struktury w C# nowe okno

opublikowano 37 dni, 3 godziny, 37 minut temu | wysłane przez pzielinskipzielinski 46 dni, 11 godzin, 3 minuty temu
29 grudnia 2011 23:57:27 GMT 20 grudnia 2011 16:31:38 GMT
Znajomość różnić między klasą a strukturą w c# jest bardzo ważna ze względu na kwestie wydajnościowe. Sposób wykorzystania może czasami wydawać się bardzo podobny, jednak to co dzieje się w tle jest kompletnie różne. W przypadku C++, struktury i klasy były bardzo podobne i reprezentowane były w pamięci w taki sam sposób. Różnica polegała na tym, że pola klas domyślnie były prywatne, a struktur publiczne. Przede wszystkim struktura jest wartością (value type) a klasa typem referencyjnym. Value Type jest alo... (więcej)
kategoria: Inne | kliknięć: 335 | skomentuj | | źródło: www.pzielinski.com
tagi: klasy, struktury
1
.netomaniak

Piotr Zieliński » MEF: import, część III nowe okno

opublikowano 38 dni, 13 godzin, 39 minut temu | wysłane przez pzielinskipzielinski 48 dni, 10 godzin, 48 minut temu
28 grudnia 2011 13:55:07 GMT 18 grudnia 2011 16:47:05 GMT
W dzisiejszym poście kilka słów i imporcie implementacji. W poprzednich postach, pokazałem jak dokonywać prostych importów. Dzisiaj trochę więcej szczegółów. Dla przypomnienia, aby zaimportować (wstrzyknąć) implementację, w najprostszym przypadku używamy po prostu atrybutu Import:publicclass SampleViewModel { //... [Import] public IMessageBoxService MessageBoxService{get;set;} } Powyższy przykład reprezentuje wstrzyknięcie właściwości. W podobny sposób można wstrzykiwać parametry dla konst... (więcej)
kategoria: Inne | kliknięć: 85 | skomentuj | | źródło: www.pzielinski.com
tagi: MEF
1
.netomaniak

Piotr Zieliński » MEF: eksport, część II nowe okno

opublikowano 44 dni, 14 godzin, 28 minut temu | wysłane przez pzielinskipzielinski 51 dni, 7 godzin, 56 minut temu
22 grudnia 2011 13:07:05 GMT 15 grudnia 2011 19:38:14 GMT
W ostatnim poście przedstawiłem MEF wraz z prostym przykładem. Dzisiaj przyjrzymy się dokładniej sposobom eksportu. Znamy już podstawowy sposób eksportu klasy:[Export(typeof(IMessageBoxService))] publicclass WpfMessageBoxService:IMessageBoxService { } Oprócz przekazania typu, można także użyć zwykłego string’a. Ze względu jednak na łatwość popełnienia literówki lepszym sposobem jest użycie typeof. Oprócz klas można również eksportować właściwości np.:publicclass Order { [Export("OrderValue")] ... (więcej)
kategoria: Narzędzia | kliknięć: 100 | skomentuj | | źródło: www.pzielinski.com
tagi: MEF
1
.netomaniak

Piotr Zieliński » Managed Extensibility Framework część I nowe okno

opublikowano 44 dni, 14 godzin, 28 minut temu | wysłane przez pzielinskipzielinski 54 dni, 8 godzin, 16 minut temu
22 grudnia 2011 13:07:05 GMT 12 grudnia 2011 19:18:47 GMT
MEF jest kolejnym frameworkiem umożliwiającym tworzenie rozszerzalnych aplikacji. Pomijając marketing serwowany na różnych stronach, jest to po prostu biblioteka umożliwiająca dependency injection. W wersji .NET 4.0 została zintegrowana w .NET Framework i nie musi być instalowana osobno. Na oficjalnej stronie można sporo poczytać o budowie MEF’a jednak w poście chciałbym ograniczyć to do minimum ponieważ dla mnie osobiście, zbyt dokładne intro do tematu po prostu zniechęca mnie do dalszego czytania. Zaczni... (więcej)
kategoria: Architektura | kliknięć: 165 | skomentuj | | źródło: www.pzielinski.com
tagi: MEF
1
.netomaniak

Piotr Zieliński » Szybka aktualizacja projektu Azure za pomocą Web Deploy nowe okno

opublikowano 47 dni, 13 godzin, 19 minut temu | wysłane przez pzielinskipzielinski 57 dni, 7 godzin, 11 minut temu
19 grudnia 2011 14:15:15 GMT 9 grudnia 2011 20:23:57 GMT
Spóźniona trochę porada jak wdrażać projekty Azure za pomocą Web Deploy: http://msdn.microsoft.com/pl-pl/library/szybka-aktualizacja-projektu-azure-za-pomoca-web-deploy.aspx (więcej)
kategoria: Inne | kliknięć: 34 | skomentuj | | źródło: www.pzielinski.com
tagi: Azure
1
.netomaniak

Piotr Zieliński » think.Net: Platforma do nauki programowania i algorytmów AI nowe okno

opublikowano 50 dni, 21 godzin, 1 minutę temu | wysłane przez pzielinskipzielinski 60 dni, 6 godzin temu
16 grudnia 2011 06:33:16 GMT 6 grudnia 2011 21:34:27 GMT
Od dwóch tygodni pracuję  nad projektem open-source przeznaczonym dla programistów zarówno tych początkujących jak i zaawansowanych. Z pewnością wielu z Was kojarzy projekt Robocode. Robocode umożliwia pisanie algorytmów dla czołgów, które następnie mogą stoczyć bitwę. Zadaniem programistów jest napisanie jak najlepszych algorytmów. Mój projekt przeznaczony jest wyłącznie dla programistów .NET i został oparty na XNA, a co za tym idzie, całość będzie się działa w świecie trójwymiarowym. Kilka ważnych założ... (więcej)
kategoria: Inne | kliknięć: 273 | skomentuj | | źródło: www.pzielinski.com
tagi: nauka
Poprzednia 1 2 3 4 5 6 7 8 9 10 Następna