Posted on by krystiankolad Wypuszczona niedawno nowa wersja .Net Core ( w moim przypadku jest to wersja 2.1.302) wprowadziła kilka zmian, przez które migracja naszych projektów z wersji 2.0 do 2.1 jest dosyć ciężka, zwłaszcza, jeśli mamy wiele projektów w wersji 2.0. Jednak od zainstalowania nowszej wersji, dotnet cli korzysta domyślnie z najnowszej, przez co niektóre komendy mogą wyrzucać błędy lub niepotrzebne ostrzeżenia. Jak sobie z tym poradzić? Z pomocą przychodzą nam pliki global.json. Są to pli...
Strona głównaUżytkownik
krystiankolad | użytkownik
Sztuka programowania 2293 dni, 14 godzin, 35 minut temu 60 źrodło rozwiń
Posted on by krystiankolad Ostatnimi czasy popełniłem mały, dosyć prosty tool o nazwie DotnetThx. Służy on do wylistowania paczek, których używamy w naszej aplikacji, wraz z informacjami o ich autorach oraz linkach do ich projektów. Tool jest wzorowany na thanks, jednak jest w całości napisany w C# oraz działa tylko na .Net Core w wersji co najmniej 2.0. Jak go używać? Najpierw należy zainstalować nasz tool: dotnet tool install -g DotnetThx a następnie, będąc w folderze projektu, którego paczki chcemy...
Posted on by krystiankolad Dzisiaj będzie krótko. W jednym z wpisów o dockerze opowiadałem o plikach Dockerfile. Pokazałem wtedy, jak można za pomocą takiego pliku zbudować aplikację podczas tworzenia obrazu. Dziś chciałbym zademonstrować, jak za pomocą wielokrotnych FROM możemy zbudować nasz projekt w jednym obrazie oraz wystawić go w innym. Jako przykład posłuży nam prosta aplikacja MVC o nazwie Sample. Jej struktura przedstawia się tak: Kilka słów wyjaśnienia: -src – folder, w którym znajduje ...
Architektura 2313 dni, 15 godzin, 8 minut temu 62 źrodło rozwiń
Posted on by krystiankolad W trakcie pracy nad naszymi aplikacjami często musimy sprawdzić, czy na przykład dane wysłane do nas w formularzu lub do naszego api spełniają pewne kryteria. Kryteriami tymi mogą być długość numeru pesel, prawidłowy adres email oraz wiele, wiele więcej. Dziś pokażę, jak skonfigurować taką walidację przy użyciu biblioteki FluentValidation w ASP.Net Core Web Api. Zapraszam. Aby zainstalować bibliotekę w naszym projekcie używamy dwóch komend:dotnet add package FluentValidation ...
Sztuka programowania 2318 dni, 14 godzin, 59 minut temu 55 źrodło rozwiń
Posted on by krystiankolad Wiemy już, jak posługiwać się kontenerami dockerowyi, wiemy także, jak tworzyć pliki Dockerfile, które pozwalają nam w łatwy sposób opakować naszą aplikację w kontener i wystawić na świat. Co jednak w przypadku, gdy nasz system składa się z kilku mniejszych aplikacji opakowanych w kontenery? Jak zarządzać takim systemem? Z pomocą przychodzi nam właścnie docker-compose. Czym jest docker-compose? Jest to narzędzie, które pozwala na tworzenie systemów złożonych z kilku konteneró...
Posted on by krystiankolad Dziś będzie krótko. Ostatnio podczas pracy nad aplikacją webową na studia mieliśmy mały problem z odpytywaniem naszego api, mianowicie nie udało nam się zmapować obiektu zwracanego z naszego api na obiekt po stronie Angulara. Powód ten okazał się bardzo prosty: mimo, iż properties naszego modelu powinno zostać zserializowane na nazwy rozpoczynające się z dużej litery, zostały zserializowane na małe. Po mały researchu okazało się, iż w ASP.Net Core serializacja domyślnie tworzy...
Sztuka programowania 2508 dni, 9 godzin, 8 minut temu 134 źrodło rozwiń
Posted on by krystiankolad W dzisiejszym poście przedstawię czym są klasy abstrakcyjne oraz interfejsy. Post ten jest swego rodzaju pilotażowym postem w moim nowym cyklu “Od zera do .Net Juniora”. Będę w nim opisywał oraz pokazywał zagadnienia, z którymi powinna być zaznajomiona osoba starająca się o swoją pierwszą pracę jako Junior .Net Developer. Mam nadzieję że cykl się przyjmie, jeśli chcecie poczytać o jakiś zagadnieniach piszcie, z chęcią o nich napiszę, jeśli je znam, lub się ich nauczę, a potem ...
Sztuka programowania 2605 dni, 15 godzin, 56 minut temu 114 źrodło rozwiń
Posted on by krystiankolad Przyszedł czas na post nieco bardziej zahaczający o .Net Core. Spojrzymy dziś na przetwarzanie asynchroniczne w C#. Pozwoli nam to na wykonywanie pewnych procesów w tle, bez konieczności blokowania wątku naszej aplikacji. Przetwarzanie takie przydaje się między innymi w pracy nad plikami – na przykład odczytem i zapisem plików, które wykonywane są w osobnym wątku, dzięki czemu użytkownik korzystający z naszej aplikacji może wykonywać w niej inne czynności. Używane są one równi...
Sztuka programowania 2609 dni, 17 godzin, 34 minuty temu 326 źrodło rozwiń
Dziś zajmiemy się tematem logów w Dokerze. Czym one są? Informacją o tym, co dzieje się w naszym programie, systemie. Dają nam informacje między innymi o tym, jakie wydarzenia miały miejsce oraz jakie błędy wystąpiły w naszym programie. Do sprawdzania logów służy komenda: docker logs [args] [containerId] Może ona zostać wywołana z argumentami takimi jak: -f – dzięki niemu mamy ciągły podgląd na nasze logi; –details – pozwala nam wyświetlić dodatkowe informacje o naszych l...
Architektura 2613 dni, 15 godzin, 38 minut temu 69 źrodło rozwiń
Posted on by krystiankolad Po wszystkich naszych zmaganiach przyszedł czas na poznanie Docker Hub. Jest on tym samym dla dockerowych obrazów czym Github dla naszych repozytoriów – miejscem ich przechowywania, udostępniania oraz miejscem, z którego możemy je pobrać. Dziś pokażę, jak wysłać stworzony przez nas obraz z lokalnego zbioru na Docker Hub, a następnie zautomatyzuję ten proces przy pomocy Bitbucket Pipelines. Skorzystamy z tego samego projektu, którego używaliśmy w części trzeciej, dotyczącej Doc...
Architektura 2618 dni, 15 godzin, 42 minuty temu 57 źrodło rozwiń
Pracując nad aplikacjami często niezbędna będzie nam lokalna baza danych. Jako programiści .Net z pewnością regularnie, choć nie zawsze, będziemy korzystać z MSSQL. Powoduje to jednak bałagan w naszym systemie, który trzeba będzie później uporządkować. Tu z pomocą przychodzi nam Docker. Pozwala on nam na stawianie baz danych (w tym MSSQL) w kontenerach, które możemy w późniejszym czasie po prostu usunąć, nie martwiąc się o zaśmiecanie naszego komputera. Jak uruchomić taką bazę...
Bazy danych i XML 2620 dni, 16 godzin, 11 minut temu 117 źrodło rozwiń
Dzisiaj omówię pokrótce, czym jest i jak używa się Bitbucket Pipelines. Jest to narzędzie do Continous Integration wbudowane w Bitbucket dostępne dla każdego, choć darmowa wersja daje nam jedynie 50 minut na budowanie naszych aplikacji. Pipelines jest oparte o obrazy dockerowe, których używa do budowania aplikacji. Jedyne czego tak naprawdę potrzebujemy to plik .yaml, który zawiera zestaw instrukcji, które Pipelines ma wykonać – takich jak wybranie odpowiedniego obrazu dockero...
Architektura 2624 dni, 16 godzin, 12 minut temu 99 źrodło rozwiń
Ostatnie dwa posty wyszły nieco dłuższe niż zakładałem, więc dzisiaj będzie krócej. Stworzymy Azure Web App, na który następnie wrzucimy kod naszej aplikacji ASP.Net Core. Pominę część teoretyczną, ponieważ można ją znaleźć choćby tutaj i przejdę od razu to przykładu:Azure Web App Na potrzeby artykułu zakładam, że każdy posiada już konto na Azure oraz co najmniej subskrypcję Microsoft Imagine dla studentów, która pozwala na tworzenie Azure Web App. Aby utworzyć naszą aplikac...
Posted on by krystiankolad W poprzednich dwóch postach poznaliśmy podstawy poruszania się w dockerowym świecie. Były to jednak dosyć proste przykłady, a my, przy własnych lub firmowych projektach, będziemy używali bardziej rozbudowanego kodu. Ale nie każdy jest w stanie albo chciałby, korzystać z nano lub vima przy pisaniu aplikacji ASP.Net Core. Jednak jak przenieść kod naszej aplikacji z naszego komputera do dockerowego kontenera? Oczywiście można pushować kod na repozytorium git(np github) oraz pobie...
Architektura 2637 dni, 7 godzin, 6 minut temu 67 źrodło rozwiń
Posted on by krystiankolad W poprzednim poście omówiliśmy podstawy używania Dockera na przykładzie prostego programu konsolowego w Pythonie. Wspomniałem w nim o różnicy pomiędzy komendami: docker kill [containerName/containerId] oraz docker stop [containerName/containerId] Teraz przedstawię tę różnicę na przykładzie prostego programu konsolowego napisanego w C#. Stworzy on wątek, który można przerwać poprzez wpisanie naszego (lub nie ;)) imienia, co skończy działanie aplikacji, lub naciśnięcia klawisz...