Przykład własnego Tag Helpera. DSP16 – część 17

Chciałem napisać własny Tag Helper. Miałem na początku mały problem. Tag Helper powinien być w moim odczuciu co najmniej sporadycznie używany w różnych widokach. Nie widzę potrzeby tworzenia Tag Helpera skoro ma być użyty tylko raz. Nie przyszedł mi do głowy żaden sensowny pomysł, który fajnie zgrywałby się z moją stroną pokerową. Jednakże pomyślałem sobie, że czasem warto robić sztukę dla sztuki – tylko po to, aby się czegoś nauczyć.

Trzeba zacząć od tego, ze Tag Helper przyjmuje argument na podstawie którego wykonuje jakieś operacje, które napiszemy. Więc mój Tag Helper musi przyjmować jakiś argument.

Postanowiłem więc stworzyć Tag Helper, który randomowo będzie wyświetlać imię gracza z dopiskiem, że ten gracz dziś wygra. Za każdym razem w momencie kiedy strona się odświeży będzie losowo wybierany inny gracz. read more

Tag Helper – przykłady użycia. DSP16 – część 16

Tag Helper ma pomóc w czytelności kodu i moim zdaniem jest to elegancka sprawa. Możemy wyróżnić kilka różnych Tag Helperów:

  • Anchor Tag Helper
  • Form Tag Helper
  • Label Tag Helper
  • Input Tag Helper
  • Text Area Tag Helper
  • Select Tag Helper
  • Validation Tag Helper
  • Environment Tag Helper
  • Link and Script Tag Helpers
  • Image Tag Helper
  • Cache Tag Helper

read more

Tag Helper w MVC6 oraz FluentValidation. DSP16 – część 15

Podczas implementacji chciałem użyć FluentValidation o którym to wspominałem już w poprzednim poście. Zamarzyło mi się użyć go zgodnie tym co jest napisane na wiki projektu. Okazało się, że FluentValidation nie jest dostosowany do MVC6. Cała dyskusja nad dostosowaniem tego projektu do ASP.NET Core znajduje się githubie projektu. Sama w sobie biblioteka działa elegancko.

Mam jedną uwagę na temat dodawania biblioteki do projektu w ASP.NET Core. DLLkę FluentValidation dodałem przez Manage NuGeta Packages. W pliku project.json zaszła automatyczna zmiana: read more

Google Charts – krótko i na temat. DSP16 – część 14

Chciałem stworzyć wykres, który przedstawia jak dobrze gracz sobie dobrze radzi podczas sezonu. Słyszałem o takich kontrolkach jak wijmo, które umożliwiają tworzenie grafów. Można je używać podobno za darmo, ale trzeba się zarejestrować. Dodatkowo wyświetlane są informacje, że wykres został stworzony dzięki wijmo.

Jednak ja poszukałem innej opcji o której też już kiedyś słyszałem: Google Charts. Bezpłatne, bez żadnych znaków wodnych, dobra dokumentacja – nic tylko używać.

read more

Dostęp do modelu z poziomu JSa w ASP.NET Core 1.0. DSP16 – część 13

Ten kto napisał choćby najprostszą aplikację w ASP.NET MVC wie jak można przesłać dane z kontrolera do widoku.

Po stronie klienta możemy bardzo prosto wyłuskać dane, które przysłaliśmy do widoku.

read more

LESS, SASS oraz FluentValidation. DSP16 – część 12

Nigdy nie tworzyłem cssów od zera. Zawsze już miałem stworzoną podstawę i później w zależności od potrzeb edytowałem co trzeba było. W moim projekcie konkursowym nie mam żadnych już wcześniej zbudowanych cssów. Więc nie pozostaje mi nic innego jak samemu coś stworzyć.

Podczas szukania front-endowych frameworków natknąłem się na ciekawą tabelkę.

DSP16-12.1

Wycinek tabelki pochodzi ze strony: http://usablica.github.io/front-end-frameworks/compare.htmlread more

Mockowanie DbContextu w EF7. DSP16 – część 11

Dzień dobry! Dziś krótko. Jak można zamockować wyciąganie danych przy pomocy DbContext w EF7? Sprawa ma się tak samo jak w poprzedniej wersji EF.

Załóżmy, że chcę zamockować wyciągnięcie danych z tablicy Venue. Klasycznie przy pomocą DbContextu wyciągnąłbym te dane w ten sposób:

Jeżeli chcę zamockować dbContext.Set<Venue>() to muszę wpierw stworzyć listę tego co chciałbym wyciągać:

read more

Wzorzec projektowy repozytorium. DSP16 – część 10

Postanowiłem użyć w moim projekcie wzorca projektorowego: repozytorium (ang. repository). Myślę, że stworzenie samemu repozytorium nie jest takie trudne. Krok po kroku przedstawię jak można samemu do tego dojść.

Posiadam tabelę w bazie danych o nazwie Player, która jest odzwierciedlona w kodzie tak:

Posiadam również klasę dzięki której mam dostęp do bazy danych: DbContext. Aby pobrać wszystkie rekordy z bazy danych z informacjami o graczach wystarczy, że napiszę: read more

Błędy podczas łączenia z bazą danych. DSP16 – część 9

Drugi raz w tym projekcie czułem się w beznadziejnej sytuacji kiedy próbowałem coś zaimplementować, a nic nie chciało działać. Szukanie błędów jest dla mnie fajną sprawą dopóki nie uważam, że zrobiłem wszystko jak należy a coś dalej nie działa. Wtedy nachodzi mnie konsternacja i zrezygnowanie. W takich momentach najlepiej sprawdza się w moim przypadku przerwa na co najmniej pół godziny.

Zaczęło się niewinnie. Odpaliłem VS, chciałem skompliować projekt i wyskoczył mi błąd:

An error occurred attempting to determine the process id of the DNXprocess hosting your application.

read more

EF 7 First Code – relacja wiele do wielu. DSP16 – część 8

Moim zdaniem ważnym elementem w projekcie jest poprawnie zaprojektowana baza danych. W poście dotyczącym EF7 First Code pokazałem diagram klas:

DSP16-5.1

Jeżeli się nie mylę to relacjami wiele do wielu EF6 radził sobie bez problemu. Mogłem napisać kod:

A później poprosić EF o stworzenie dla mnie tabel w bazie danych. EF radził sobie z tym zadaniem bez problemu.

Jednak chcąc użyć EF7 spawy mają się nieco inaczej. Kiedy napisałem taki kod dla klas Player oraz Tournament i wpisałem komendę dnx ef migrations add initial otrzymałem komunikat:

read more

Powered by: Wordpress