Pierwsze truskawki już zjedzone to kwiecień możemy sobie odhaczyć. Nawet smakowały jak truskawki. Postępy realizacji celów Listę moich celów/zadań w postaci trzech poziomów można znaleźć tutaj. W czarno białym filmie 16/30 Poziom 1: Pójść 30 razy do kina Na co można było pójść w kwietniu jak nie na Avangers Endgame, które sporo namieszało w świecie Marvela, ale nie będę tutaj nic zdradzał. W książce urodzony 13/30 lista książek, które czytam, chcę przeczytać lub przeczytałem. Poziom 1: Przeczytać 30 książek fabularnych W kwietniu skończyłem czytać: Stalowe Serce. Brandon Sanderson Plus/Minus. Olga Gromyko, Andriej Ułanow Devtective 27/80 lista opublikowanych postów Poziom 1: Opublikować 25 postów na blogu (1 kwiecień 2019)Poziom 2: Opublikować…
-
-
Dostęp do informacji elementu wywołującego, czyli Caller Info – Język C#
Caller Info jest to zestaw atrybutów, dostępnych pod przestrzenią nazw (ang. namespace) System.Runtime.CompilerServices, pozwalających na uzyskanie informacji na temat elementu wywołującego metodę, opatrzoną tymi atrybutami. Metoda wywołująca, której dane pozyskujemy nazywa się z ang. caller. Mechanizm został wprowadzony w wersji 5.0 języka C#. Caller Informaton pozwala na pobranie informacji o: Nazwie elementu wywołującego (np. nazwie metody), za pomocą atrybutu CallerMemberNameAttribute. Nazwy pliku w którym znajduje się caller, za pomocą atrybutu CallerFilePathAttribute. Numerze linijki w kodzie, gdzie znajduje się element wywołujący, za pomocą atrybutu: CallerLineNumberAttribute. Utworzymy teraz praktyczny przykład pokazujący jak działają te atrybuty w praktyce. Na początku stworzymy oddzielny plik gdzie będzie znajdowała się metoda korzystająca z atrybutów Caller Info:…
-
Podsumowanie miesiąca: marzec 2019
Już kwartał roku za nami, a ja czuję jakby to był drugi tydzień stycznia. Czas pędzi nieubłaganie i pora na podsumowanie pierwszego, dość ciepłego miesiąca w roku. Postępy realizacji celów Listę moich celów/zadań w postaci trzech poziomów można znaleźć tutaj. Cudze chwalisz, a swojego nie znasz 0/25 Poziom 1: Odwiedzić 25 polskich lokacji Jeszcze nic z listy nie odhaczam, ale z pewnych powodów coraz częściej bywam w Warszawie, a cztery pozycje z listy znajdują się właśnie tam. W czarno białym filmie 15/30 Poziom 1: Pójść 30 razy do kina Pod koniec miesiąca razem z siostrą byłem na Kapitan Marvel. Uwielbiam uniwersum Marvela i kapitanka mi się podobała, choć śledząc różne…
-
.NETowa paczka w Humble Bundle za małe pieniądze
Tym razem do kupienia na Humble Bundle pojawił się pokaźny zestaw .NETowych książek wydawnictwa Apress z różnych kategorii. Całość możecie znaleźć tutaj lub poniżej w formie listy. Wszystkie książki są w języku angielskim, a większości z nich sam nie czytałem, więc nie mogę powiedzieć, czy je polecam. Oferta ważna jest niecałe 14 dni, więc macie trochę czasu do namysłu, potem książki zmienią się na inną tematykę. Humble Bundle składa się z trzech zestawów, każdy za inną kwotę, a droższy pakiet, zawiera w sobie te tańsze. Pakiet pierwszy Kosztuje jednego dolca, co przekłada się na 3.83 złotych, więc jest to koszt jednego piwa. Zawiera on: C# 7 Quick Syntax Reference: 180…
-
Przestarzałe części kodu i atrybut Obsolete – Język C#
Przy tworzeniu oprogramowania niemal zawsze trzeba coś zmieniać. Może to być spowodowane sprawami wewnętrznymi, takimi jak nasze (bądź teamu) widzimisie w stosunku do projektu oraz tymi zewnętrznymi. A to klient/konsument będzie chciał coś zmienić, a to regulacje prawne ulegną przemianie i będzie trzeba dostosowywać aplikację do obowiązujących przepisów, albo znajdzie się jeszcze coś innego. Czasami jednak nie będziemy mogli nawet zmodyfikować naszej cześci aplikacji od tak, modyfikując istniejący kawałek kodu, bo: Wymagało by to większego pokładu czasu oraz wysiłku niż stworzenie komponentu od nowa. Złamalibyśmy drugą zasadę SOLID open/closed principle, która jasno mówi, że kod powinien być zablokowany na modyfikację, a otwarty na rozszerzenia. Z naszego systemu korzystają inni programiści,…
-
Podsumowanie miesiąca: luty 2019
Ooo, nie mam wstępu. No to trudno, będzie bez. Postępy realizacji celów Listę moich celów/zadań w postaci trzech poziomów można znaleźć tutaj. Degustator 4/20 Poziom 1: Spróbować 20 rodzajów win Do listy doszedł jedynie inny rodzaj Carlo Rossi: Carlo Rossi sweet white moscato. W czarno białym filmie 14/30 Poziom 1: Pójść 30 razy do kina Byłem na Jak wytresować smoka 3. Ta seria to moja ulubiona seria filmów animowanych ostatnich lat, czy to za sprawą animacji i grafiki, czy też fajnej fabuły i ciekawych bohaterów. Lubię też historię wikingów. W książce urodzony 10/30 lista książek, które czytam, chcę przeczytać lub przeczytałem. Poziom 1: Przeczytać 30 książek fabularnych Na ten miesiąc…
-
Płytkie (shallow) oraz głębokie (deep) kopiowanie – Język C#
Kontynuuję artykuł na temat tworzenia kopii obiektów referencyjnych. We wcześniejszym wpisie, który możecie znaleźć tutaj, zaprezentowałem jak działa metoda MemberwiseClone oraz interfejs ICloneable, ale czy na pewno wszystko zostało powiedziane? Płytkie kopiowanie (ang. shallow copy) W poprzednim materiale nie bez powodu badanym obiektem był punkt, składający się z dwóch typów wartościowych: X oraz Y. Tym razem będzie trochę inaczej, bo utworzymy obiekt zawierający typy referencyjne. W przykładzie mamy klasę detektywa, który ma do wykonania pewne zadanie. Będzie ono składać się z identyfikatora oraz zmiennej tekstowej określającej co należy zrobić. Sklonujmy teraz detektywa i zmienimy pewne wartości. Po uruchomieniu przykładu zobaczymy: Nie wyszło jednak tak, jak chcieliśmy. Imiona detektywów pokazały się…
-
Tworzenie kopii obiektów przez MemberwiseClone oraz ICloneable – Język C#
Przypisanie istniejącego obiektu do innej zmiennej niesie ze sobą pewne ryzyko. Należy być świadomym, czym różni się i co zawiera w sobie typ referencyjny, a co typ wartościowy. O typach wartościowych pisałem już nieco podczas omawiania struktur, w tym materiale. Tam też przedstawiłem problem przypisywania typów referencyjnych do innej zmiennej, który zaraz przypomnę. Przypisywanie typów wartościowych Jak sama nazwa wskazuje typy te zawierają w sobie wartość, która zostaje im przypisana. Stwórzmy w naszym testowym przykładzie zwykłą strukturę reprezentującą punkt na płaszczyźnie 2D: Punkt taki składa się z dwóch właściwości, jedna wskazuje położenie w poziomie, a druga w pionie (takie małe przypomnienie ze szkoły). Teraz utwórzmy obiekt naszej struktury, czyli punkt,…
-
Operacje CRUD – EF Core
W poprzednim wpisie, dotyczącym EF Core, pokazałem jak utworzyć prostą bazę danych składającą się z jednej tabeli w podejściu Code First. Jednak baza danych do czegoś służy, a nie wegetuje sobie gdzieś. Dzisiaj wykonamy na niej proste operację CRUD, czyli dodamy element (Create), wczytamy go z bazy danych (Read), zmodyfikujemy jego zawartość (Update) oraz usuniemy z bazy danych (Delete). CRUD jest oczywiście akronimem od tych wszystkich operacji. Do tej pory z cyklu poradników o EF ukazały się: Tworzenie bazy danych w podejściu Code First – EF Core Przypomnienie Trochę przypomnienia z poprzedniego wpisu, żebyście nie musieli weryfikować go od nowa. Operujemy na tabeli detektywa, określonego przez klasę: a nasza baza…
-
Podsumowanie miesiąca: styczeń 2019
Pierwszy miesiąc Nowego Roku za nami i niektórzy zdążyli już porzucić swoje postanowienia noworoczne oraz wyzwania jakie chcieli podjąć na rzecz spokoju ducha albo leniuchowania. Niektórzy też nie lubią takiego systemu określania zadań, ponieważ się u nich nie sprawdza. Jak to wypadło u mnie? Styczeń 2019 Pierwszy tydzień miesiąca był jeszcze w świątecznej aurze wyżerki (jedzenia się nie wyrzuca), oraz zabawy. Na początku miesiąca kupiłem kartę graficzną, która mi się w grudniu spaliła, więc to spowodowało, że trzeba było przetestować nowy sprzęt. Właściwie tylko z dwa dni dałem sobie na całkowitą „rozpustę” i dobrze mi to zrobiło. Dalej starałem się realizować moje postanowienia roczne, które można przejrzeć tutaj oraz cele…















