40-783: Hierarchia typów

Po dłuższej przerwie wracam do tematu języka C#. Przede mną kolejny rozdział Certficiation Toolkit. Dzisiaj pomówimy sobie głównie na temat Hierarchii typów. Temat ten tak naprawdę nie jest zawiły, gdyż nie odbiega on znacząco od tego co znamy z Javy, aczkolwiek pojawi się kilka nowych rzeczy. Nie będę dłużej przeciągać – zaczynajmy :)
Czytaj dalej 40-783: Hierarchia typów

News Radar: AngularJS, Material Design i DB-agnostyczny Slick

Czas na kolejny update projektowy. Dzisiaj opowiem o webjars i wskażę kilka rzeczy na które należy zwrócić uwagę w momencie, kiedy chcemy korzystać z webjars w Play Framework. Wszystko to na przykładzie AngularJS i Angular-Material. Na koniec pokażę w jaki sposób napisać DAO Slickowe, które nie będzie miało bezpośrednich zależności do konkretnego silnika bazy danych.
Czytaj dalej News Radar: AngularJS, Material Design i DB-agnostyczny Slick

News Radar: Play Framework, Slick, Dependency Injection i podział na moduły

Od ostatniego mojego wpisu na temat projektu minęła już chwila. Przez ten czas nie działo się wiele jeśli chodzi o nowe funkcje aplikacji, natomiast trochę sie pozmieniało pod względem różnych technikaliów. Projekt został podzielony na moduły, pojawiły się nowe biblioteki: Play Framework i Slick. Wprowadziłem mechanizm Dependency Injection. W tym artykule przybliże trochę te zmiany i wskażę na rzeczy, które popsuły mi trochę krwi – może komuś oszczędzi to w przyszłości trochę czasu.
Czytaj dalej News Radar: Play Framework, Slick, Dependency Injection i podział na moduły

40-783: Praca z typem String

W dzisiejszym odcinku – typ string. W jaki sposób możemy go tworzyć? jakie najważniejsze metody nam dostarcza? Oprócz stringa, poznamy kilka innych ważnych klas do pracy na ciągach znaków, takich jak: StringBuilder, StrinWriter i StringReader. Później pomówimy sobie o konwertowaniu innych typów na string – skupimy się głównie na metodach ToString oraz String.Format. Poświęcimy trochę czasu „Composite string”, czyli notacji służącej do dokładego opisu w jaki sposób dany obiekt ma być reprezentowany jako ciąg znaków. Na koniec powiemy sobie w jaki sposób możmy się „wpiąć” w C-Sharpową infrastrukturę konwertowania do stringa, czyli o interfejsach IFormattable, IFormatProvider oraz ICustomFormatter.

Czytaj dalej 40-783: Praca z typem String

40-783: Konwersje

W dzisiejszym odcinku moich zmagań z materią C-Sharpową porozmawiamy sobie na temat wszelkiego rodzaju konwersji między typami. Zaczniemy od ogólnych rozważań na temat konwertowania: kiedy zadzieje się to automatycznie a kiedy nie; kiedy konwersja może nam sprawić problemy a kiedy napewno wszystko będzie ok. Pomówimy sobie chwilę o mechanizmie autoboxingu, który wydaje się mało ciekawym tematem, ale jest na tyle różny od tego co daje nam Java, że warto chociaż rzucić okiem. Zaraz po tym przyjrzymy się chyba jednemu z najpopularniejszych rodzajów konwersji, czyli rzutowaniu. Przy okazji tego tematu poznamy operatory is, oraz as. Zrobimy też krótki przegląd tego jakich mechanizmów konwersji dostarcza nam biblioteka standardowa aby za chwilę nauczyć się jak możemy zmusić nasze typy współpracy z nimi. Żeby tego było mało, przywitamy się z niecodziennym zjawiskiem, jakim jest typ dynamic aby na sam koniec dosłownie na moment rzucić okiem na P/Invoke oraz COM Interop – dwie techniki pozwalające na współpracę kodu C# z kodem „unmanaged”.

Jak widać temat konwersji jest całkiem pojemny. Nie ma więc co przedłużać – zaczynajmy.

Czytaj dalej 40-783: Konwersje

40-783 Keywordy związane z Reference Types

Podczas przerabiania trzeciego rozdziału książki T. Covaci, trafiłem na fragment w którym autor przedstawia nam listę najważniejszych słów kluczowych związanych z Reference Types. Moim zdaniem jest to „trochę obok” głównych tematów tego rozdziału, ale skoro postanowiłem się trzymać tej książki jako „drogowskazu” przy nauce, to niech tak będzie.  W tym artykule będzie chyba najbardziej widać jedną z idei, która przyświeca tej serii – wyszczególnianiu różnic między Javą a C#.

Czytaj dalej 40-783 Keywordy związane z Reference Types

40-783: Podstawy Typów Generycznych

Podobnie jak w Javie, C# posiada typy generyczne. Język ten nie zmusza nas jednak do parametryzowania tylko z użyciem reference types – możemy użyć też value types. Drugą znaczną różnicą jest to, że o ile w Javie nie mamy (powiedzmy) informacji o typie generycznym w runtimie – o tyle w C# taka informacja jest do wyciągniecia przez mechanizmy refleksji.

Czytaj dalej 40-783: Podstawy Typów Generycznych

40-783: Wprowadzenie do Reference Types

W ostatnim tygodniu udało mi się dokończyć trzeci rozdział książki MCSD Certification Toolkit. Wyszło mi tyle notatek, że na ich podstawie powstaną trzy wpisy. Dzisiejszy stanowi wstęp do Reference Types. Następny będzie o typach generycznych. Ostatni będzie zawierać opisy słów kluczowych związanych z Reference Types.

Poza tym postanowiłem zmienić koncepcję publikacji wpisów i nie będę robić tygodniowych podsumowań. Wpisy będą się teraz pojawiać w miarę przerabiania poszczególnych (ale mniejszych niż do tej pory) zagadnień.

Czytaj dalej 40-783: Wprowadzenie do Reference Types