administratorLeave a Comment on FluentValidation, standardowa i customowa walidacja modelu W końcu przyszła pora na przetestowanie biblioteki FluentValidation. Jest to narzędzie dzięki któremu możemy przetestować model danych w prosty i czytelny sposób. Gdy standardowe metody walidacji nam nie wystarczają możemy napisać własną logikę. Przedstawię pierwszy sposób ale rozszerzony o wrraper dla obiektu zwracającego rezultat dla ładnej prezentacji błędów- zapraszam !
Polecenie git log zna każdy użytkownik gita. Jest ono jednym z pierwszych, które poznajemy ucząc się tego systemu kontroli wersji. Pokazuje ono listę naszych commitów. W tym wpisie chciałem przedstawić jak można sformatować wygląd loga w dowolnym sposób jaki tylko chcemy. Log może pokazywać tylko te informacje, które są Nam naprawdę potrzebne.
W aplikacji czasami mamy fragmenty kodu, które dodajemy w różnych miejscach. Tak jak ostatnio opisywałem, możemy chcieć dodać cachowanie danych na poziomie logiki biznesowej, aby zmniejszyć ilość zapytań do bazy. W przykładzie dotyczącym CacheManagera wywołanie usługi CacheService dodałem bezpośrednio w kodzie logiki. Z jednej strony tego kodu nie ma zbyt dużo, ale z drugiej strony fajnie byłoby mieć ten kod automatycznie w każdej logice biznesowej. Szczególnie...
Microsoft dziś ogłosił 'nową' usługę a mianowicie Azure DevOps Ja jestem zagorzałą fanką odchodzącego właśnie VSTSa a nawet TFSa on premises. Nawet troszkę szczycę się staniem w opozycji do wielkich naszego światka post TFS 11 Express Beta z komentarzem Maćka zawsze rozgrzewa moje serce. Czy to znaczy że VSTS umiera?Na szczęście nie. Azure DevOps to kolejna zmiana nazewnictwa. Visual Studio Team Services to nazwa usługi która kiedyś nosiła przydomek Visual Studio Online i była młodszą chmurową ...
Generic export of csv files Once in a while, you get a task, that you need to generate an export file to the 3rd party system. It is popular when communicating with price comparer services, search services, adds services etc. So you need to generate csv file with almost the same data, but in a slightly different format. How to solve it, when you don’t want to write everything separately? How to write you code so that you can make changes very easy?Let’s start with a simple csv file export CSV acronym s...
Posted on : By Grzegorz KotfisBlog Code Przygotowałem dla Was trzy nagrania, w których znajdziecie wyjaśnienie trzech atrybutów umożliwiających lepsze debugowanie aplikacji dotnetowych. Dodatkowo pokazuje kilka tricków związanych z obsługą edytora, debugowaniem w Visual Studio. Miłego oglądania!Debugger DisplayDebuggerBrowsableDebuggerProxyPodaj dalejShareTweetGrzegorz Kotfis News Reporter Ja, programista – zapowiedź nowej serii podcastuDodaj k...
Wraz z rozwojem aplikacji oraz zwiększaniem się liczby użytkowników, stajemy przed coraz większymi problem związanymi z wydajnością. Szczególnie istotne jest to w momencie, gdy na przykład ruch na stronie jest na tyle duży, że serwer, z którego korzystamy jest wykorzystywany w 100%. Jednym z sposobów, który w miarę szybko daje spore efekty, jest dodanie mechanizmu cachowania często używanych danych. W tym wpisie pokaże Ci bibliotekę CacheManager (https://github...
Ostatnio na Twitterze trafiłem na nowy program do gita o nazwie: LazyGit. Na pierwszy rzut oka przypomina aplikacje DOSowe z lat 90 🙂 , ale jakoś bardzo mnie to nie odstrasza.
Powershell to, zgodnie z definicją znajdującą się w dokumentacji na stronie Microsoft, open-source owe, czyli ogólnodostępne narzędzie – interpretator komend lub też powłoka linii komend oraz dodatkowo język skryptowy. Powershell to taka alternatywa dla klasycznego windows’owego cmd, czyli command line, natomiast też zgodnie z powyżej podaną definicją, jest znacznie bardziej rozbudowany.
Reading application’s logs is not a big fun but let’s be honest – it is part of our job and we will not avoid it. So why don’t we make it slightly more pleasant? Stack traces explorers to the rescue! In fact, I didn’t know about the existence of stack trace explorers till the day I copied a part of app’s log to my clipboard with the plan to send it to the colleague. But when I opened Visual Studio a magic happened, fairytales flew on my desk and opened a new tab in my IDE.
Praca z Gitem. Dużo się o nim mówi, zwłaszcza w środowisku .NET, głównie ze względu na to iż Microsoft kupił Github, a także udostępnił źródła .NET Standard i .NET Core na licencji Open Source (MIT). Osobiście, ciągle się uczę Gita i przy okazji sprawdzam, testuję różne rozwiązania około-gitowe. Wtyczki, narzędzia, różnego rodzaju integracje z Gitem. To sprawia, że wiem co mogę i ile mogę. Gita świetnie się obsługuje z poziomu konsoli czy terminala i przy tym pozostanę, ale zawsze dobrze m...
Jak zacząłem korzystać z Gita to większość poleceń wykonywałem z linii poleceń. Visual Studio używałem tylko do rozwiązywania konfliktów. Jednak taki tryb pracy był trochę niewygodny. Gdy trzeba było rozwiązać konflikt, to:musiałem przełączyć się do Visual Studio (a przeważnie mam kilka programów otwartych, czasem trzeba trochę się nawciskać CTRL+TAB 🙂 ), teraz wpisuję jedną komendę i rozwiązuje konflikt w aplikacji kdiff3.
Ostatnio bardzo mocno „katuję” swój mózg Gitem….hmmmm…uprzyjemniam mu chwile Gitem. Z racji tego, że w pracy nie mam możliwości poużywać sobie Gita w miarę często, eksperymentuję w domu na swoich pet-projects. Używam, używam, używam i nudzi mi się już ciągłe wpisywanie komend w konsoli. Rzecz jasna nie zamienię jej na inne narzędzie do pracy z Gitem, ale kiedy już pamiętasz te bardziej popularne komendy, odechciewa się. Pisałem już od dodatkach do PowerShella, również w kontekście Gita. O ...
Wzorzec DAO (Data Access Object) jest jednym z częściej używanych wzorców do organizacji warstwy dostępu do danych . Dla każdego obiektu/tabeli z bazy (np User, Product) tworzymy dedykowany interfejs/klasy. Klasy te często nazywamy repozytoriami* (np. UserRepository, ProductRepository) i na ogół zawierają takie same metody. Jestem wielkim fanem szablonów T4. Lubie je wykorzystywać do automatyzacji tworzenia powtarzalnych i schematycznych elementów kodu. Właśni...
Rejestrowanie zależności poprzez system refleksji + Autofac modules
W poprzednim poście pokazałem jak automatycznie dodawać numer zadania z VSTS do commit message. Dziś pokażę jak automatycznie dodać ten numer zadania do wielu ostatnich commitów. Z pomocą przychodzi Nam polecenie git filter-branch. Polecenie to zastosuje odpowiedni filtr (wybrany przez Nas) do każdego commita w branchu i w efekcie powstanie nowy commit. Składnia dla tego polecenia składa się z 4 elementów:Podstawowe polecenie: git filter-branch.Nazwa filtru np.: --msg-filter.Pol...
Ostatnio w pracy rozpoczęliśmy nowy projekt, który oparty jest na mikroserwisach. Cały proces tworzenia aplikacji zaczęliśmy od stworzenia dedykowanego repozytorium dla każdej usługi (o tym podejściu pisałem tutaj) i umieszczeniu w nim projektu ASP.NET Core, który następnie należało odpowiednio przygotować. Mam tu na myśli np. stworzenie poprawnej struktury katalogów, dodanie podstawowej integracji z istniejącą infrastrukturą itd. tak, aby każda usługa była możliwie podobna pod względem organizacji plikó...
Zapewne, w 1994 roku, kiedy to w przeglądarce Netscape Navigator po raz pierwszy pojawiła się obsługa protokołu https, nikt nie spodziewał się, że stanie się on standardem. Dziś, po ponad 14 latach rozwoju specyfikacji, trudno sobie wyobrazić stronę internetową bez zielonej kłódki przy pasku adresu. Ok, teraz zacznie się ta mniej przyjemna część. No bo szyfrowanie jest super i w ogóle, ale… Nie umiałbym zliczyć sytuacji, gdy programując w środowisku lokalnym wszystko działało bezproblemowo, jednak po wg...
Potrzeba i chęć używania git’a sprawiła, że siłą rzeczy używam również PowerShella i to właśnie o nim będzie dzisiejszy wpis. Okazuje się, dla osoby niezbyt obytej z tym narzędziem, że jest ono bardzo przydatne, zwłaszcza dla programisty. Dzisiaj nie chcę pisać o konkretnych funkcjach czy komendach. Napiszę o kilku dodatkach jakich używam i jak wspomagają/usprawniają one pracę. Mam również w planach post traktujący o PowerShellowych tips & tricks dla programistów, ale to kiedy indziej. Łatwiej w Git...
Wielokrotnie zastanawiam się, czy mój kod jest wydajny. Czy nie da się czegoś zrobić, aby aplikacja działała szybciej. Przy szybkości działania nie można założyć, że coś wydajne, bez zmierzenia tego. Jak zobaczysz pod koniec wpisu, może się okazać, że operacja, która wydaje się szybka, wcale taka nie jest. Jak zmierzyć wydajność kodu .NET? Możemy zrobić to na wiele sposobów. Niektórzy używają DateTime.Now, inni DateTime.UtcNow, czy też klasy StopWatch. W ka...