dotnetomaniak.pl - Artykuły z tagiem C#

Założenie: Chcemy mieć możliwie wysoką zgodność z SOLID + Depedency Injection Problem: Piszemy implementację, która zawiera jakieś zasoby i musi je zwalniać (czyli implementacja IDisposable) Omawiane zasoby są bardzo obciążające i nie chcemy je jak najszybciej zwalniać Nie chcemy mieć interfejsu dziedziczącego po IDisposable, bo najczęściej jest to Leaky Abstraction

Źródło: rpajak.com
Dziel się z innymi:
IOwned – aby nasze abstrakcja były możliwie czysta | Robert Pająk – Blog

Sztuka programowania 2512 dni, 6 godzin, 59 minut temu Robert Pająk 293 źrodło rozwiń

Pamiętam jak dawnymi czasami każde exception przyprawiało mnie o gęsią skórkę. Szukałem sposobu jak tu je wyeliminować (choć już wtedy wiedziałem, że niektórych źródeł nie wyeliminuje nigdy). Dziś z perspektywy czasu wiem jaki byłem głupi. Czasami exception to rzecz, o której wprost marzymy. A jak to z marzeniami bywa rzadko się one spełniają. Kilka “ciekawszych” problemów z którymi się zetknąłem:1. Backup bazy danych działa wybiórczo Wdrażając oprogramowanie u klienta liczyłem tylko na jedno ni...

Tagi: C#
Dziel się z innymi:
Najgorsze problemy ever | Wojtek Pitek about dev

Sztuka programowania 2512 dni, 6 godzin, 59 minut temu wopi 397 źrodło rozwiń

Ostatnio miałem trochę czasu i zrobiłem porządki w biblioteczce, która zawiera parę Utilsów/Helperów przydatnych podczas kodzenia w WPF. Jak ktoś pracuje w WPF, to zapraszam do przejrzenia – może coś się przyda.

Tagi: .Net, C#, WPF
Źródło: rpajak.com
Dziel się z innymi:
MVVM Utils 1.1.5404 | Robert Pająk – Blog

Narzędzia 2516 dni, 10 godzin temu Robert Pająk 274 źrodło rozwiń

Simple backend system based on the Command Design Pattern where each command has own independent scope.

Źródło: piotrluksza.com
Dziel się z innymi:
[EN] Simple Backend solution based on Command Pattern | Piotr Łuksza

Architektura 2517 dni, 11 godzin, 35 minut temu pluksza 312 źrodło rozwiń

Z poprzedniego posta “DI: profesjonalne kontenery” wiemy, że wykorzystujemy kontener. Wiemy też, że użycie własnej implementacji to głupota. Pomyśleliśmy również jakimi kryteriami się kierować wybierając kontener do naszego projektu. Tak jak napisałem: ja używam Autofac. I właśnie ta biblioteka wyląduje w przedstawianym demo. Pierwsze co robię to: Install-Package Autofac Mając na pokładzie Autofaca mogę z nie...

Dziel się z innymi:
DI: użycie Autofac | Maciej Aniserowicz o programowaniu

Sztuka programowania 2519 dni, 6 godzin, 8 minut temu rroszczyk 361 źrodło rozwiń

Czas zacząć pisać o nowym c#.  Najpierw pobierzmy wersję CTP z: http://www.visualstudio.com/en-us/downloads/visual-studio-14-ctp-vs.aspx Oczywiście to preview, więc odradzam instalowanie tego w pracy, chyba, że na VM. Lepiej nie ryzykować re-instalacją wszystkiego od nowa. Często w kodzie można spotkać następujący wzorzec:class Person { privatereadonlystring _firstName; privatereadonlystring _lastName; public Person(string firstName,string lastName) { _firstName = firstName; _last...

Tagi: C#, konstruktor
Dziel się z innymi:
Piotr Zieliński  » C# 6.0–primary constructors

Narzędzia 2520 dni, 10 godzin, 15 minut temu tuszcz 367 źrodło rozwiń

W C# istnieje mało znana składnia do inicjalizacji zagnieżdzonych obiektów (nested object initializer syntax). Na czym polega cała zabawa? Spójrzmy na kod, za pomocą którego inicjalizujemy zagnieżdżony obiekt: Rectangle rectangle = new Rectangle { P1 = { X = 0, Y = 1 }, P2 = { X = 2, Y = 3 } };

Dziel się z innymi:
C# Pro Tip: Nested object initializer syntax | DARIUSZ WOZNIAK.NET

Inne 2522 dni, 20 godzin, 28 minut temu dariuszwozniak 346 źrodło rozwiń

Temat testów parametryzowanych pojawił się przy okazji pisania naszego „drugiego” testu jednostkowego. Wtedy to skorzystaliśmy z atrybutu [TestCase] pozwalającym na zdefiniowanie zestawów wartości, które są przekazywane do metody testowej. Stosując atrybuty do testów parametryzowanych (m. in. TestCase, Values, Range, Random) ograniczamy liczbę naszych metod testowych i redukujemy ilość redundantnego kodu.

Tagi: C#, NUnit, TDD
Dziel się z innymi:
Kurs TDD cz. 8: Testy parametryzowane | DARIUSZ WOZNIAK.NET

Sztuka programowania 2528 dni, 4 godziny, 45 minut temu dariuszwozniak 238 źrodło rozwiń

Na ostatnim (tj. 90) spotkaniu KGD.NET miały miejsce dwie prezentacje. Prezentacja Procenta o DI to było to na co czekałem (tzn. potwierdzenie, że idę słuszną drogą oraz rozwianie pewnych wątpliwości). Druga prezentacja (a może lepiej powiedzieć pierwsza) była poświęcona F#. Nie spodziewałem się nic specjalnego po niej. Co tu dużo mówić pewien czas temu stworzyłem nawet coś w tym języku, ale mówiąc szczerze jakoś specjalnie mi to nie podchodziło. Jednak Michał Łusiak pokazał, że F# to język, którem...

Tagi: .Net, C#, F#
Dziel się z innymi:
F# pierwsze kroki (po raz drugi) | Wojtek Pitek about dev

Sztuka programowania 2534 dni, 14 godzin, 18 minut temu wopi 182 źrodło rozwiń

Pewien czas temu postanowiłem przeanalizować swoją zawodową listę TODO. Z przykrością zauważyłem, że pomimo dużej rotacji jest na niej jedna rzecz, która wisi już od pewnego czasu. Zrozumiałem, że mniej lub bardziej świadomie unikam tej pozycji. Mogę zrobić wszystko tylko nie to. Tym czymś był JavaScript wraz z wybranym frameworkiem. Postanowiłem, że nie będę robił niczego innego dopóki nie zacznę tej pozycji. Ponieważ jestem człowiekiem, który jak sobie coś postanowi to już nie ma przeproś to … pr...

Dziel się z innymi:
Windows 8 App z wykorzystaniem Angulara | Wojtek Pitek about dev

Windows 2542 dni, 23 minuty temu wopi 233 źrodło rozwiń

Potrzebowałem pewien czas temu uzyskać taki w gruncie rzeczy prosty efekt. Po kliknięciu lewym przyciskiem myszki na butonie otwiera się menu z którego wybieramy interesującą opcję. Niby nic trudnego, ale ja przekombinowałem (nie pierwszy zresztą raz i nie ostatni). Na początek może jak wyglądałby kod takiego buttona: Nic niezwykłego jak sądzę. Teraz tylko tak to zaimplementować aby otwierało się na lewy przycisk a nie na prawy. Najpierw może pokaże jak zrobiłem to w code-behind. Pierwsze co m...

Dziel się z innymi:
WPF – Caliburn.Micro – ContextMenu czyli jak skutecznie utrudnić sobie życie | Wojtek Pitek about dev

Windows 2546 dni, 11 godzin, 42 minuty temu wopi 220 źrodło rozwiń

Zgodnie z obietnicą pora na przekazywanie danych pomiędzy oknami(widokami). Jak możemy zaimplementować taką bądź co bądź podstawową funkcjonalność (na razie nie myślmy w ogóle o WPF a tym bardziej o Caliburn.Micro).Public Property Najprostszym sposobem (nie znaczy, że złym) może być zastosowanie jakiejś publicznej property np. w takim stylu: private void GetAddress_Click(object sender, EventArgs e) { AddressForm addressForm=new AddressForm (); addressForm.ShowDialog(); string ad...

Dziel się z innymi:
WPF – Caliburn.Micro – Eventy i Event Aggregator | Wojtek Pitek about dev

Windows 2550 dni, 12 godzin, 14 minut temu wopi 152 źrodło rozwiń

W dotychczasowo opisanych częściach cyklu na temat MVVM (z wykorzystaniem Caliburn.Micro) wszystko było pokazane na przykładzie aplikacji mającej wyłącznie jedno okno. W rzeczywistym świecie takie aplikacje należą do mniejszości. Programy mają zwykle kilka okien i tym właśnie teraz się zajmiemy.Podejście klasyczne W klasycznie zbudowanej aplikacji jeśli chcemy wejść np. opcje aplikacji to otwiera się nam nowe okno. Spróbujmy zmodyfikować aplikację z ostatniego przykładu. Modyfikacja View jest pr...

Dziel się z innymi:
WPF – Caliburn.Micro – obsługa okien | Wojtek Pitek about dev

Windows 2550 dni, 12 godzin, 14 minut temu wopi 171 źrodło rozwiń

This post is part of the series: iOS for C# Developer. Previous parts: part 1 (Classes and creating objects), part 2 (strings). The most typical scenario to use multithreading is to maintain responsive UI when we do some resource-consuming computation.C# Let’s consider simple button click action in C#...

Tagi: C#, iOS, objective-c
Źródło: jj09.net
Dziel się z innymi:
[EN] iOS for C# Developer - part 3: multithreading - Jakub Jedryszek

Inne 2554 dni, 12 godzin, 8 minut temu jj09 76 źrodło rozwiń

Czasami są takie dni w życiu człowieka (a nawet programisty), że wszystko idzie zgodnie z planem. Każde zadanie, które dostaje jest banalne albo (lepsza opcja) zrobione już wcześniej. Miałem kiedyś taki dzień. Jakby to powiedział Skipper dzień idealny. Niestety w moim przypadku to się nie sprawdziło. W moim przypadku sprawdza się raczej “jeśli wszystko idzie zgodnie z planem to znaczy, że to zasadzka”. No ale wracając do meritum dostałem kiedyś “banalne” zadanie musiałem wymienić tło w głównym okni...

Dziel się z innymi:
WPF – Caliburn.Micro – Gdy standardowa konwencja to za mało | Wojtek Pitek about dev

Windows 2554 dni, 12 godzin, 8 minut temu wopi 132 źrodło rozwiń

Chyba każdy programista piszący w C# usłyszał kiedyś (najczęściej na rozmowie kwalifikacyjnej) pytanie o typy danych występujących w tym języku. Naturalną odpowiedzią są typy wartościowe i typy referencyjne (taka nierozłączna para bliźniąt), mówimy jakie są różnice pomiędzy nimi, mówimy mądre zdania o stosie i o stercie. Czasem dostajemy “podchwytliwe” pytanie w stylu: String to typ referencyjny czy wartościowy? String to jest przechowywany na stosie czy na stercie? Tablica intów to typ refer...

Tagi: .Net, C#
Dziel się z innymi:
Pointer czyli trzeci bliźnaik | Wojtek Pitek about dev

Sztuka programowania 2556 dni, 1 godzinę, 58 minut temu wopi 286 źrodło rozwiń

Najwyższy szas na zapowiadaną obsługę zdarzeń w Caliburn.Micro. Najpierw jednak krótkie przypomnienie. Zaczniemy od prostego zdarzenie Click na ButtonieBez MVVM Każde zdarzenie z z View ma odwzorowanie w Code-Behind. Jeśli nazwy metod się nie zgadzają kod się nie kompiluje View Code-behind private void SayHi_Click(object sender, RoutedEventArgs e) { //some app logic } Z MVVM Musimy pamiętać o konieczności wpowadzenia klasy implementującej ICommand (odsyłam do przykładów z wcześn...

Dziel się z innymi:
WPF – Caliburn.Micro – obsługa zdarzeń | Wojtek Pitek about dev

Windows 2560 dni, 19 godzin, 18 minut temu wopi 177 źrodło rozwiń

Pisaliśmy kiedyś aplikację dla klienta z dość jaśnie określoną specyfikacją sprzętową. Program ma się bez problemów uruchamiać na 64-bitowym Windowsie 8 ponieważ wszystkie komputery działają pod obsługą tego systemu. Czyli hulaj dusza jedziemy z najnowszą wersją .neta (wszak jest to soft dedykowany dla tego konkretnego klienta). Po czasie określonym w umowie dostarczamy soft klientowi na testy, instalacja przebiega bezproblemowo… do czasu. Jest godzina 10 spokojnie dopijam czwarty kubek kawy (wsz...

Dziel się z innymi:
Krótka notatka o Asyns/Await w .NET 4.0 | Wojtek Pitek about dev

Sztuka programowania 2562 dni, 23 godziny, 41 minut temu wopi 259 źrodło rozwiń

W poprzednim poście pokazałem prostą aplikację z wykorzystaniem Caliburn.Micro. Teraz chciałem pokazać bardziej zaawansowane (ale tylko trochę) sposoby bindowania.Bindowanie bezpośrednio do obiektu W przykładzie, który został pokazany uzupełniając dane w textboxach przypisujemy te dane do odpowiedniej property w klasie. Fragment dla przypomnienia public string LastName { get { return _person.LastName; } set { _person.LastName = value; NotifyOfPropertyChange("Last...

Dziel się z innymi:
WPF – CALIBURN.MICRO – JESZCZE TROCHĘ O BINDOWANIU | Wojtek Pitek about dev

Windows 2564 dni, 8 godzin, 24 minuty temu wopi 189 źrodło rozwiń

Pod koniec poprzedniego postu na temat MVVM wspomniałem o Caliburn.Micro jako narzędziu, które czyni moją pracę lżejszą. Dla tych, którzy nie wiedzą jest to framework wspomagający w tworzeniu aplikacji opartej o wzorzec MVVM. Jeśli ktoś zastanawia się dlaczego od razu nie wspomniałem o tym frameworku i poprzedni przykład robiłem bez jego użycia to moja odpowiedź jest prosta (i poparta gorzkim doświadczeniem). Otóż robiąc coś zaawansowanego musimy mieć świadomość mechanizmów za tym stojących inaczej...

Dziel się z innymi:
WPF – Caliburn.Micro Some Kind of Magic | Wojtek Pitek about dev

Windows 2568 dni, 11 godzin, 19 minut temu wopi 218 źrodło rozwiń

1 2... 34 35 36 37 38 39... 71 72

Konkurs z Code Europe - ranking

1
(30,04)
3
(15)
4
(15)
5
(5,01)

wrzesień

21.
Code Europe Trójmiasto
Gdansk, Ergo Arena
23.
Code Europe Warszawa
Warszawa, PGE Narodowy

październik

Najaktywniejsi w tym miesiącu

1
(45,05)
2
(15,07)
4
(15)
5
(15)
6
(5,01)
7
(5)
8
(5)
9
(5)
10
(,05)