.Net, C#, Docker
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ć … Continue reading "Praca z wieloma wersjami .Net Core"
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 … Continue reading "DotnetThx, czyli podziękuj za Open Source"
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 … Continue reading "Docker część IX: wielokrotne FROM"
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. … Continue reading "FluentValidation w ASP.Net Core"
Wiemy już, jak posługiwać się kontenerami dockerowymi, 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śnie docker-compose. Czym … Continue reading "Docker część VII: Docker-compose"
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, … Continue reading "Słówko o serializacji w ASP.Net Core"
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, … Continue reading "Od zera do .Net Juniora: Interface i klasa abstrakcyjna"
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, … Continue reading "Życie asynchroniczne, czyli o async/await"
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: … Continue reading "Docker część VI: logi"
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 … Continue reading "Docker część V: DockerHub"
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 … Continue reading "Docker część IV: Baza mssql w dockerze i Visual Studio Code"
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 … Continue reading "Wprowadzenie do Bitbucket Pipelines"
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 … Continue reading "Deployment aplikacji ASP.Net Core w Azure Web Apps"
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 … Continue reading "Docker część III: dockerfiles"
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 … Continue reading "Docker część II: kill/stop oraz .Net Core"