C# · Programowanie

Enum.ToString() z parametrami

Ostatnio natknęłam się na pewien problem. Miałam jakiś enum, przykładowo: Potrzebowałam zwrócić wartość liczbową enuma jako string (czyli liczbę 0 zapisaną w stringu „0”). Co mogłam zrobić? Ano mogłam napisać najprościej, jak się da: Jednak tutaj powinna mi się zapalić czerwona lampka. Przecież metoda .ToString() dla danej wartości enuma zwraca jego wartość tekstową, a nie liczbową.… Czytaj dalej Enum.ToString() z parametrami

C# · Programowanie · Wzorce projektowe

Wzorzec adapter – cz. 2 adapter obiektu

We wcześniejszym wpisie opisałam działanie wzorca adapter klasy. Dla przypomnienia: jest on wykorzystywany na przykład wtedy, gdy klient zdefiniuje swoje wymagania na podstawie jakiegoś interfejsu. Wystarczy, że dostarczy klasę, która implementuje ten interfejs i dziedziczy po istniejącej klasie. I tyle. Co jednak, gdy klient nie przygotuje takiego interfejsu? Tylko dostarczy jakąś klasę spełniającą wymagania? Wtedy należy… Czytaj dalej Wzorzec adapter – cz. 2 adapter obiektu

C# · Programowanie · Wzorce projektowe

Wzorzec adapter – cz. 1 adapter klasy

Cel W książkach można przeczytać, że głównym celem tego wzorca jest zaadaptowanie (przystosowanie) istniejącej klasy do formy, którą oczekuje klient. Klientem w tym przypadku jest dowolny obiekt, który wywołuje nasz kod i wymaga odpowiedniego interfejsu. Teoria może być łatwa, ale trzeba jeszcze umieć zastosować ją w praktyce. Stwórzmy więc przykładową klasę BoardGameService. Jak widać, wykorzystujemy… Czytaj dalej Wzorzec adapter – cz. 1 adapter klasy

BoardGamesNook · C# · Programowanie

FluentValidation – cz. 3 testy i nullowalna properta

Kończąc zbiór wpisów (część 1, część 2) dotyczących FluentValidation czas na napisanie testów. Przykładowa klasa walidatora Dla przypomnienia, tak wygląda klasa BoardGameValidator: Jako dobrzy programiści, już na wstępie, zaraz przed zdefiniowaniem takiego walidatora, powinniśmy utworzyć testy sprawdzające jego poprawność. Ważne, żeby sprawdzić, czy dla każdego sprawdzanego warunku walidator zwraca prawidłowy status (informację o błędzie lub… Czytaj dalej FluentValidation – cz. 3 testy i nullowalna properta

BoardGamesNook · C# · Programowanie

FluentValidation – cz. 2 wzorzec fabryki

W poprzednim wpisie pokazałam prosty (i przy okazji brzydki) sposób na użycie pakietu FluentValidation do walidacji danych po stronie serwera. Dzisiaj czas na refactoring. Integracja Zacznę od tego, że nie muszę tworzyć za każdym razem w kontrolerze nowej instancji walidatora. Mogę skonfigurować specjalną fabrykę walidatora (wzorzec fabryki). Jak by to miało wyglądać? Wystarczy, że dodam… Czytaj dalej FluentValidation – cz. 2 wzorzec fabryki

BoardGamesNook · C# · Programowanie

FluentValidation – cz. 1 proste użycie

Przykładowy widok dodawania nowego stołu do gry wygląda nastepująco: Jak widać, ustawiam w formularzu sporo parametrów. Załóżmy, że chcę ustalić regułę: parametr Miasto musi się składać z minimum 3 znaków i mogą to być tylko litery i spacje. Skorzystam więc z paczki FluentValidation dostępnej przez nugeta. Pełną dokumentację można znaleźć pod linkiem. Przykład walidatora Klasa walidatora GameTableValidator.cs… Czytaj dalej FluentValidation – cz. 1 proste użycie

C# · Programowanie

O co chodzi z odwróceniem zależności

Jestem aktualnie w trakcie lektury „Czysta architektura” Wujka Boba. Natknęłam się w książce na część wyjaśniającą odwrócenie zależności (ostatnią z zasad SOLID) w całkiem przystępny sposób. Jak brzmi ta zasada? Moduły wysokopoziomowe nie powinny zależeć od modułów niskopoziomowych. Zależności między nimi powinny wynikać z abstrakcji. Fajnie, ale o co konkretnie chodzi? Co to są te… Czytaj dalej O co chodzi z odwróceniem zależności