A czemu to tyle trwa

99% procent cieszy tylko przez pierwsze 5 minut – tak słyszałem. Kto z nas nie posiada jakiegoś miernika w tray, czy gdzieś na pulpicie na którym widać ile CPU, jaka temperatura, jaki ram i ile prądu – mój ulubiony to proces monitor  process explorer.

time_bug

Glimpse

Fajnie że jest Glimpse który może zrobic to samo z moja aplikacją asp mvc – no prawie to samo. Aby to zainstalować należy udać się do zarządzania paczkami i wpisać glimpse:

2016-05-12 21_05_06-Itan - Microsoft Visual Studio (Administrator)

Klik-klik i instalacja zakończona. Aby nie marnować czasu od razu powiem że są także dodatkowe paczki dla różnych różności, jako że ja używam EF to zainstalowałem także paczkę dla tego ORM: Glimpse.EF6 ze wszystkimi zależnościami.

Jak to uruchomić? Continue reading

ChildAction w akcji

Odsłoń

Czasem dostępność java skryptu powoduje, że w zapomnienie mogą odejść pewne funkcjonalności MVC. W moim przypadku było tak gdy chciałem wyświetlać zawartość kanału z wiadomościami. Klik na kanale, a w tle myk-myk leci ajax i wracają wiadomości. Zrobiłem pewne zmiany w kodzie, tak że teraz kliknięcie na kanale powoduje przeładowanie strony i dopiero teraz użytkownikowi pokazują się wiadomości. Co za tym idzie lista kanałów renderowana jest w dwóch miejscach: na głównej liście, gdy żaden z kanałów nie jest wybrany oraz gdy jeden jest wybrany i czytany.
Jak wyświetlić listę kanałów tu i tu? Początkowa opcja ^c+^v odpada, bo nie. Potem myślę o jakimś ajaxie, jak by to zrobić… Continue reading

Konwencje w autofacu

Część z nas jest mniej lub bardziej leniwa. Części może przeszkadzać taki zapis, a części nie.

Szczególnie część, gdzie powtarzają się różnego rodzaju serwisy i repozytoria (@7-@14) oraz (@21-@27). Co czynić, jak zrobić to samo za mniej? Konwencje i autoskanowanie assembly’ów. Jak? Poniżej prosta ściągawka: Continue reading

Entity framework wspólna obsługa interfejsów modeli danych

Model

Czasami tak projektujemy naszą aplikacje, że każdy model ma jedną lub kilka cech wspólnych. Od najbardziej oczywistych, jak na przykład ID, poprzez czas i datę utworzenia, modyfikacji, czy-usunięty, czy-opublikowany i inne czy-?

W zależności od poziomu lenistwa cechy te definiowane i utrzymywane są w każdej z klas z osobna lub w jednym lub-lub w kilku interfejsach który jest implementowany przez modele.

Do momentu pisania posta byłem gościem, który posiadał jeden wspólny interface, ale właśnie teraz do mnie dotarło, że może lepiej mieć kilka interfejsów dla modeli danych, I-ID-able, I-Create-able, I-Update-able, I-cośtam-able – blogowanie rozwija!

Część wspólna

Co więcej, obsługa części wspólnej może być zaimplementowana na różne sposoby, to również zależy od poziomu lenistwa. Można to robić ręcznie w każdej metodzie repozytorium, w klasach generycznych/bazowych dla repozytoriów, można AOP, można także w klasie kontekstu. Ja aktualnie rozwiązuje to właśnie tam w samej klasie bazy danych.

Poniżej kawałek kodu:

Continue reading

Tajne wpisy w app.config #dajsiepoznac

Jeśli nie chcesz mojej zguby…

Jeśli nie chcesz swojej zguby, nie wrzucaj do repozytorium sekretów swojej aplikacji. Można to osiągnąć w kilku prostych krokach, wystarczy że stworzysz w VS osobny plik z konfiguracją np. “secrets.config“, który może wyglądać tak:

Następnie zaciągniesz go w głównym web.configu w taki sposób:

W VS należy mieć go dodanego do projektu, właściwości ustawione powinny być na content i no-copy, tak samo jak w przypadku web.config. Od teraz zawartość secrets będzie wstrzykiwany do web.config podczas uruchomienia.
Jeszcze tylko w gicie warto dodać go do ignorowanych plików i można spokojnie wrzucać kod na serwer bez potrzeby pamiętania, aby zawsze odznaczyć secrets.config z listy plików.

Natomiast warto pamiętać, aby po każdej zmianie zrobić sobie backup. Tak aby nie stracić go przez przypadek.