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...
Strona głównaUżytkownik
orestesgaolin | użytkownik
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 ...
Słyszeliście o JSON Web Token-ach? Zapewne tak. W sieci pełno jest artykułów o wadach, zaletach, wykorzystaniu w implementacjach OAuth2 czy OIDC. Czy to znaczy, że napisano o nich wszystko, co się da? Przemilczę odpowiedź i dorzucę własną, mam nadzieje, że przydatną, cegiełkę. Trochę z własnych obserwacji, jednak podejrzewam, że bliskich prawdzie, zakładam, że JWT to dzisiejszy standard zabezpieczania API. Pomimo, iż np. ze specyfikacji PASETO zaczyna powoli wyrastać coś ciekawego, jeszcze długa droga ...
Sztuka programowania 2326 dni, 10 godzin, 4 minuty temu 146 źrodło rozwiń
ASP.NET Core WebHooks provide support for receiving web hooks in ASP.NET Core web applications. This post explores built-in capabilities and customization options for ASP.NET Core WebHooks model binding.
A few days ago I have reached 365 consecutive days on Stack Overflow. In the beginning of July 2017 I have decided to run an experiment - visit Stack Overflow every single day and do something useful to other community members (answer a question, review one of the queues, edit and improve existing questions and so on). Now it is the best time to summarize this experiment and share my thoughts with you.
Kończąc zbiór wpisów dotyczących FluentValidation czas na napisanie testów.
Sztuka programowania 2351 dni, 18 godzin, 36 minut temu 53 źrodło rozwiń
Witaj w trzeciej odsłonie cyklu poświęconego programowaniu funkcyjnemu! W części pierwszej omówiłem najważniejsze podstawy. Część druga skupiała się na kluczowym aspekcie tego paradygmatu programowania – tworzeniu programu poprzez komponowanie funkcji. Dzięki temu artykułowi dowiesz się, czym są monady oraz jakie są ich praktyczne zastosowania.
Sztuka programowania 2350 dni, 17 godzin, 33 minuty temu 151 źrodło rozwiń
Kod nigdy nie kłamie, komentarze czasami. Są jednak dobre komentarze które warto stosować ze względu na swoją wartość.
Sztuka programowania 2350 dni, 17 godzin, 33 minuty temu 118 źrodło rozwiń
W poprzednim wpisie pokazałam prosty (i przy okazji brzydki) sposób na użycie pakietu FluentValidation do walidacji danych po stronie serwera. Czas na refactoring.
Sztuka programowania 2357 dni, 17 godzin, 29 minut temu 69 źrodło rozwiń
Programowanie to nie tylko pizza raz w tygodniu, granie na konsoli w pracy i zabawa przez cały dzień, a często tak przedstawiają nas zawód media. Coraz głośniej jest o tym zawodzie, którego można się nauczyć nawet korespondencyjnie przez Facebooka...
Sztuka programowania 2357 dni, 17 godzin, 29 minut temu 97 źrodło rozwiń
Ilu programistów traci swój cenny czas na merdżowaniu kodu, zamiast skupiać się na tworzeniu nowych funkcjonalności? Zbyt wielu. Przedstawione są trzy najpopularniejsze strategie branczowania. Poznaj je i zrozum, a następnie wyłuskaj z każdej to, co jest najlepsze dla Ciebie i Twojego projektu.
Programowanie asynchroniczne na dobre zagościło na platformie .NET. Proces transformacji wszystkich bibliotek nie był najszybszy, ale większość liczących się graczy na rynku komponentów przygotowało już wersje asynchroniczne. Z przyrostkiem Async czy bez, metody zwracające Task albo Task stały się naszą codziennością, zwiększając przepustowość aplikacji i zmniejszając jałowy czas czekania na zwrócenie danych przez bazę (albo dowolne inne IO). Zatem skoro cała asynchroniczność miała przynieść takie zyski...
Programowanie rozproszone 2357 dni, 17 godzin, 29 minut temu 142 źrodło rozwiń
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 2357 dni, 17 godzin, 29 minut temu 62 źrodło rozwiń
Typy wyliczeniowy są używane do określenia jednej wartości z góry określonego zbioru. Dzięki nim możemy ułatwić sobie tworzenie kodu poprzez nadanie nazwy dla wartości, którą później używamy. Nazwa enuma musi spełniać rygory składni takich języków jak C#, dlatego potrzebujemy mechanizmu, który wyświetli ładny napisu w interfejsie użytkownika. W tym wpisie drogi czytelniku, pokaże Ci jak to zrobić małym nakładem pracy oraz przy okazji wspierać wiele języków. Zob...
Wiele razy szydziłeś z „programistów” javascript. To nie język mówiłeś (no jest w tym troche racji ale zostawmy to na razie). Ale czy jako dumny C#-owiec wiesz co się stanie po wykonaniu...
Architektura 2355 dni, 17 godzin, 6 minut temu 187 źrodło rozwiń
Temat chwytliwy? Oczywiście. Pytanie “czy popełniasz błędy?” jest retoryczne – każdy z nas je popełnia. Inną kwestią jest to, że nie wszyscy się do tego przyznają – wbrew pozorom (czasami) słusznie, ale o tym w rozwinięciu wpisu. Bardzo często spotykam się z podejściem u ludzi, z którego wynika, że nie zdają sobie sprawy z tego, że popełniamy błędy (generalnie). Widać to m.in w niektórych harmonogr...
Ten wpis pierwotnie miał traktować o zasadności wprowadzenia CQRS do aplikacji opertej o mikroserwisy. Jednak przed rozpoczęciem właściwej częsci artykułu chciałem, abyśmy mieli spójną definicję tego konceptu. Trochę się rozpisałem… i uznałem, że warto wynieść ten tekst do osobnej publikacji, którą łatwo będzie zalinkować w razie potrzeby. Dlaczego? W moim odczuciu wielu programistów mylnie utożsamia ten wzorzec (sic!) z jakimś wielkim molochem klasy Enteprise, wymagającym zaawansowanej infrastruktury, ...
Architektura 2354 dni, 16 godzin, 17 minut temu 239 źrodło rozwiń
Docker, SQL Server, VS Code, mssql i Mundial. Chcesz dowiedzieć się jak zarządzać bazą danych z poziomu Visual Studio Code, zapraszam do lektury.
Posted on : By Grzegorz KotfisBlog Code A few days ago I resolved simple kata on Codewars – „Disemvowel Trolls” This particular kata is of type ‚remove vowels from the string’ – easy peasy. One of the many approaches to this kind of problem is:RegexString replacingLoop with checkLambda expression (in this case Linq) I’ve decided to give a shot Linq approach this time and what first came to mind? Use Except! Treat this string as a collection of chars and remove from it t...
Ostatnie problemy z usługą Storage w Azure to dobry moment, żeby przypomnieć trzy pewniki występujące w chmurze, o których dużo osób zapomina…