Blog Kokosa

.NET i okolice, wydajność, architektura i wszystko inne

NAVIGATION - SEARCH

Niedzielnik Kokosa czyli Azure Logic Apps i Azure Functions

Właściwie odkąd założyłem bloga, chodził za mną temat zautomatyzowanych, cotygodniowych postów dotyczących najciekawszych treści, na które natknąłem się danego tygodnia w Internecie. Nadałem temu nazwę “Niedzielnik Kokosa” bo postanowiłem publikować je w niedzielę rano – doskonały moment na spokojne przejrzenie ciekawych treści. Ponieważ na co dzień mam zwyczaj odkładania ciekawych linków do Instapaper – źródło danych mam gotowe. Pozostawała tylko kwestia automatyzacji. Dość długo czaiłem się na serwisy pokroju IFTTT albo Zapier. Jednak z każdą kolejną próbą odbijałem się od nich, ponieważ potrzebna mi automatyzacja (choć prosta) nie wpisywała mi się w to co te serwisy oferują.

To czego potrzebuję to następującą sekwencję zdarzeń (wykonywaną cyklicznie, np. rano co niedzielę):

  1. Pobierz z mojego konta Instapaper linki zapamiętane przeze mnie w ciągu ostatnich 7 dni – maksymalnie 10
  2. Opublikuj na blogu post zgodnie z pewnym szablonem, wypisującym te linki
  3. Opublikuj na Twitterze i stronie Facebooka informację o nowym poście
  4. Idealnie – poinformuj mnie mailem, że się udało

Funkcjonalność taką udało mi się w bardzo przyjemny i szybki sposób zaimplementować ostatnio za pomocą kombinacji dwóch świetnych usług Azure: Więcej...

Tajemnice CLR - jak działa GetType()

Wstęp: Jeśli jeszcze nie bywacie na devspl.slack.com to zdecydowanie polecam. Z obecnie istniejących tam 175 kanałów na pewno wybierzecie coś dla siebie. Ja zaglądam regularnie na kilka, w tym na kanał #dotnet. A tam czasem pojawiają się naprawdę ciekawe pytania! Co najmniej dwa zainspirowały mnie na tyle, że postanowiłem zainicjować nową serię pt. Tajemnice CLR. Odpowiedzi na ciekawe pytania i rozterki, na jakie się natknę. Jeśli macie pomysły - pytajcie! Czy to tu, czy na wspomnianym Slacku. Wchodzić z odpowiedziami będziemy głęboko, nie będzie tu żadnego ciu ciu babciu.

Dziś pierwsze pytanie, które zadała Angelika Piątkowska:

Jak tak naprawdę działa GetType()?

Rozszerzając to pytanie: Skąd obiekt wie jakiego jest typu? Czy to wie kompilator czy runtime? Jak się do tego ma CLR? Czy z faktu, że C# jest statycznie i silnie typowany wynika, że wywołania metody GetType() tak naprawdę nie istnieją i kompilator może je zastąpić odpowiednim wynikiem już w trakcie kompilacji? Więcej...

.NET Core - kompilacja, uruchomienie, debuggowanie

Dziś chciałbym Was przeprowadzić przez proces skompilowania, uruchomienia i debuggowania .NET Core - czyli wersji open source środowiska .NET. Bez zbędnych wstępów przejdźmy do odpowiedzi na proste pytanie...

Po co?

Żeby bawić się, żeby bawić się, żeby bawić się na całego. Mamy źródła .NETa! Po co nam je kompilować? Żeby grzebać, zmieniać, analizować, psuć - aż w końcu wynajdziemy dla siebie miejsce na Pull Request i zapiszemy się w Hall Of Fame, a nasz kod powędruje na miliony komputerów na całym świecie!

A nawet jeśli nie mamy tak ambitnych planów, czy nie fajnie popatrzeć "do środka", jak działa .NET? Oczywiście CoreCLR to nie jest kod komercyjnego .NETa jeden-do-jednego. Ale zdecydowana większość trzewiów jest taka sama, więc jest się czym bawić. Na stronie .NET foundation mówią wprost:

.NET Core has two major components. It includes a small runtime that is built from the same codebase as the .NET Framework CLR. The .NET Core runtime includes the same GC and JIT (RyuJIT), but doesn’t include features like Application Domains or Code Access Security. (...)

.NET Core also includes the base class libraries. These libraries are largely the same code as the .NET Framework class libraries, but have been factored (removal of dependencies) to enable us to ship a smaller set of libraries.

Jeśli zatem coś nas pociąga w spojrzeniu w kod frameworka, którego używamy od lat, mamy ku temu okazję. Więcej...