Czego nauczyłem się 39 tygodniu pracy?

Kolejny tydzień, kolejne nauki. W sumie w tym tygodniu było sporo nowości związanych z konferencją .Net Conf 2019 ale o tym innym razem. Poniżej kilka rzeczy, których się nauczyłem w tym i zeszłym tygodniu.

Tabele z mailami

Taka mała uwaga, pewnie często, gdzieś w systemie jest przechowywana tabela zawierająca meile do wysłania. Typowo jest tam pole sendDate. Jeśli jest puste to bierzemy taki rekord i wysyłamy i wstawiamy odpowiednia datę.

Projektując taką table sugeruje nie zapominać o polu generatedDate, które to zawiera moment w którym ktoś chciał wysłać meila. Może się to przydać w momencie kiedy mail zanim trafi do kolejki do wysłania, musi przetworzyć pewną operację, która trwa dość długo, wtedy mamy pewność ile minęło czasu od momentu poproszenia o wysłanie do momentu faktycznego wysłania.

Partial View ASP .NET MVC

Taka w sumie ciekawostka choć może to logiczne. Jeśli używamy helpera PartialView i do tej metody przekażemy null jako model lub nic nie przekażemy to automatycznie do widoku częściowego zostanie przekazany model z głównego widoku. Jak sobie o tym myślę, to widzę wiele użytecznych miejsc, gdzie można by to wykorzystać.

TeamCity i AssemblyInfo Patcher

Wstyd przyznać ale dopiero nie dawno się nauczyłem jak w TeamCity włączyć wbijanie wersji do dll-ek. W skócie wystarczy wybrać interesujący nas build => Build Features => Potem dodajemy AssemblyInfo patcher i wybieramy format jaki chcemy zastosować. Dzięki temu możemy mieć pewność, że we wszystkich bibliotekach będziemy mieć wpisaną odpowiednią wersję. Szczegóły tutaj: https://stackoverflow.com/questions/15252282/assembly-versioning-and-dll-versioning-in-team-city

Enity Framework Core i pole get

Jeśli pole w modelu ma tylko get-a to EF nie tworzy kolumny w bazie. Dzięki takiemu podejściu możemy w modelu umieścić pewne transformacje i mieć pewność, że takie pole nie pojawi się w bazie danych a sami będziemy mięć dostęp do właściwie sformatowanej wartości.