4developers 2020 – recenzja

To już kolejna edycja konferencji 4developers, w której wzięłam udział. Tym razem była to edycja wyjątkowa, bo zdalna! Standardowo składała się z kilku ścieżek, ale dla odmiany trwała kilka dni. Nie miałam możliwości uczestniczyć codziennie w prelekcjach, aczkolwiek jeszcze 2 tygodnie od zakończenia konferencji były dostępne nagrania (tylko dla zarejestrowanych uczestników). Poniżej przedstawiam kilka ciekawych …

Czytaj dalej 4developers 2020 – recenzja

EntityFramework – IncludeFilter() i IncludeOptimized()

W ramach urlopu i siedzenia w domu postanowiłam zaprogramować coś ciekawego w celu poszerzenia swoich umiejętności dotyczących m.in. .NET Core i Web API. Tak powstał pet projekt MyNozbe oparty na Nozbe (aplikacji do zarządzania zadaniami - standardowo udostępniam Wam link afiliacyjny). W trakcie programowania natknęłam się na ciekawy problem, którym chciałam się z Wami podzielić. …

Czytaj dalej EntityFramework – IncludeFilter() i IncludeOptimized()

Cake.Deploy.ScriptRunner

Ostatnio pisałam o podstawach Cake. Dzisiaj czas na nowy projekt wykorzystujący Cake do uruchamiania skryptów np. az-cli. Stworzyłam na GitHubie specjalne repozytorium, z którego możecie korzystać. Jeszcze zanim zaczniemy, upewnijcie się, że macie zainstalowane Azure CLI oraz npm. Dodatkowo polecam też wtyczkę markdownlint do VSCode - przydaje się podczas pisania dokumentacji z użyciem składni markdown. …

Czytaj dalej Cake.Deploy.ScriptRunner

O Cake słów kilka

Natknęłam się na Cake w ramach deploymentu botów w pracy. Cake pozwala pisać build skrypty w C#. Więc zamiast ręcznie uruchamiać skrypty, albo bawić się Powershellem, można je zaprogramować w znanym mi języku. Co lepsze, można stworzyć repozytorium i w nim trzymać cały kod związany z deploymentem. Pliki Cake mają rozszerzenie .cake Cake działa zarówno …

Czytaj dalej O Cake słów kilka

Parallel.ForEach() i ConcurrentBag

Jakiś czas temu w pracy miałam ciekawy przypadek. Mianowicie - losowo wywalał się jeden z testów. Powodem był NullReferenceException w logice. Żeby dojść do problemu, trzeba było przeanalizować trochę kodu. Parallel.ForEach() Zauważyłam, że w pewnym miejscu została użyta pętla Parallel.ForEach(). Dla uproszczenia załóżmy taką logikę: List<object> myList = new List<object>(); Parallel.ForEach(Enumerable.Range(1, 10), i => { …

Czytaj dalej Parallel.ForEach() i ConcurrentBag

Cykl chatboty #2: tworzenie podstawowej wersji chatbota EchoBot

Visual Studio bot C# template Na początku należy zainstalować odpowiednie SDK, więc wystarczy w Visual Studio (na przykładzie Visual Studio 2019) wejść w Extensions -> Manage Extensions i z listy Online wyszukać "Bot Framework v4 SDK Templates" (można też zrobić to osobno, pobierając paczkę pod linkiem). Następnie możemy utworzyć nowy projekt i przy wyborze wybrać …

Czytaj dalej Cykl chatboty #2: tworzenie podstawowej wersji chatbota EchoBot

JetBrains.dotPeek – .NET dekompilator

Potrzebowałam kiedyś w pracy dowiedzieć się, czy dllka, którą wrzucam na serwer, jest aktualna. Ale jak to zrobić? Nie można jej po prostu otworzyć i "podejrzeć", sprawdzić, czy dana linijka kodu jest zmieniona. Co w takim razie można było zrobić? Użyć specjalnego programu od JetBrains: dotPeek. Służy on do dekompilacji plików (np. .dll lub .exe). …

Czytaj dalej JetBrains.dotPeek – .NET dekompilator

Logowanie – konfiguracja NLog

Ostatnio miałam okazję konfigurować logowanie w aplikacji. Użyłam do logowania paczki NLog. Plik konfiguracyjny NLog Na samym wstępie musiałam do pliku konfiguracyjnego (app.config lub web.config) dodać odpowiedni wpis: <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <variable name="logDirectory" value="logs/${shortdate}"/> <targets> <target name="infoconsole" xsi:type="ColoredConsole" layout="${longdate} ${callsite} ${level} ${message}"/> <target name="debugfile" xsi:type="File" fileName="${logDirectory}/debugfile.txt"/> <target name="errorfile" xsi:type="File" fileName="${logDirectory}/errorfile.txt"/> </targets> <rules> <logger name="*" minlevel="Info" …

Czytaj dalej Logowanie – konfiguracja NLog

Analysers.ruleset – konfiguracja statycznej analizy kodu

O tym, jak dodać analizatory do projektu, pisałam całkiem niedawno. Dzisiaj czas na opisanie, jak takie analizatory skonfigurować. Do konfiguracji potrzebny jest plik o rozszerzeniu .ruleset. Warto stworzyć taki na potrzeby solucji i dodawać ścieżkę do niego w pliku .csproj: <PropertyGroup> <TargetFramework>netcoreapp2.2</TargetFramework> <CodeAnalysisRuleSet>..\Analysers.ruleset</CodeAnalysisRuleSet> <TreatWarningsAsErrors>true</TreatWarningsAsErrors> </PropertyGroup> https://roslyn-analyzers.readthedocs.io/en/latest/config-analyzer.html Podążając za dokumentacją Microsoftu, można dotrzeć do informacji, gdzie …

Czytaj dalej Analysers.ruleset – konfiguracja statycznej analizy kodu