Bazy danych · C# · Programowanie

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()

C# · devops · Inne · Programowanie

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

C# · devops · Inne · Programowanie

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

C# · Programowanie

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

Boty · C# · Programowanie

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

C# · Programowanie

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

C# · Programowanie

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

C# · opensource · Programowanie

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

C# · Programowanie

AutoFixture – jak zacząć?

Zaczniemy od tego, co tak na prawdę robi AutoFixture? Według dokumentacji: pozwala nam w testach tworzyć anonimowe zmienne. Dzięki nim nie musimy ręcznie tworzyć obiektów, które nie są istotne w kontekście samego testu, ale są wymagane do skompilowania kodu. Można go używać na kilka sposobów: deklarując odpowiednie zmienne w kodziedefiniując odpowiednie zmienne w wywołaniu metody… Czytaj dalej AutoFixture – jak zacząć?