Jak cachować dane w .NET? Kilka słów o CacheManager oraz Redis

Jak cache’ować dane w .NET? Kilka słów o CacheManagerze oraz Redisie

Wprowadzenie Wraz z rozwojem aplikacji oraz zwiększaniem się liczby użytkowników stajemy przed coraz większymi problemami związanymi z wydajnością. Szczególnie istotne jest to w momencie, gdy na przykład ruch na stronie jest na tyle duży, że serwer, z którego korzystamy, jest wykorzystywany w 100%. Jednym z sposobów, który w miarę szybko daje spore efekty, jest dodanie Read more about Jak cache’ować dane w .NET? Kilka słów o CacheManagerze oraz Redisie[…]

Jak automatycznie zmieniać czas lokalny na UTC

Jak automatycznie zmieniać czas lokalny na UTC w ASP.NET MVC?

Wprowadzenie W bardzo wielu aplikacjach w bazie danych zapisujemy ten sam czas, jaki przyszedł do nas od użytkownika w formularzu. W przypadku gdy tworzysz aplikację na rynek polski, takie podejście może okazać się bezproblemowe, bo wszyscy jesteśmy w jednej strefie czasowej i mamy ten sam czas. Problemy zaczynają się, gdy tworzymy aplikację, w której użytkownicy Read more about Jak automatycznie zmieniać czas lokalny na UTC w ASP.NET MVC?[…]

Jak zmienić generowanie kodu w ASP.NET MVC

Jak zmienić generowanie kodu w ASP.NET MVC?

Wprowadzenie Dodając nowy kontroler lub widok do aplikacji ASP.NET MVC, wybieramy jeden z szablonów, które Visual Studio wykorzysta do ich wygenerowania. Jest to bardzo przydatne, gdy na przykład formularz edycji zawiera wiele pól. Visual Studio wygeneruje kontrolkę dla każdej właściwości z klasy, którą ustawimy jako model widoku. Podobnie jest z generowaniem kontrolerów. Jest to bardzo Read more about Jak zmienić generowanie kodu w ASP.NET MVC?[…]

Generowanie kodu na przykładzie klas repozytorium oraz szablonów T4

Generowanie kodu na przykładzie klas repozytorium, szablonów T4 oraz T4 Toolbox

Wprowadzenie 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 / dedykowane klasy. Klasy te często nazywamy repozytoriami* (np. UserRepository, ProductRepository) i na ogół zawierają one takie same metody. Jestem wielkim fanem szablonów T4. Lubię je Read more about Generowanie kodu na przykładzie klas repozytorium, szablonów T4 oraz T4 Toolbox[…]

Jeden czy wiele plików resource a wydajność

Jeden czy wiele plików resource a wydajność

Wprowadzenie Pod wpisem o lokalizowaniu enumów pojawił się komentarz, w którym Janko zwrócił mi uwagę, że rozbijanie napisów na małe pliki resource nie jest najlepszym pomysłem pod względem wydajności. Jak zaznaczyłem w innym wpisie (Używanie napisów w aplikacji), stosuję wiele plików resource do organizacji napisów wyświetlanych użytkownikowi. Dlatego chciałem sprawdzić, czy to, co pisze Janko, Read more about Jeden czy wiele plików resource a wydajność[…]

Jak zmierzyć wydajność kodu .NET BenchmarkDotNet

Jak zmierzyć wydajność kodu .NET? BenchmarkDotNet

Wydajność kodu? Wielokrotnie zastanawiam się, czy mój kod jest wydajny. Czy nie da się czegoś zrobić, aby aplikacja działała szybciej. Przy szybkości działania nie można założyć, że coś jest wydajne, bez zmierzenia tego. Jak zobaczysz pod koniec wpisu, może się okazać, że operacja, która wydaje się szybka, wcale taka nie jest. Jak zmierzyć wydajność kodu Read more about Jak zmierzyć wydajność kodu .NET? BenchmarkDotNet[…]

Używanie napisów w aplikacji

Używanie napisów w aplikacji

Napisy? Typ string jest jednym z najczęściej używanych typów danych w aplikacji. Gdy go potrzebujemy, to po prostu otwieramy cudzysłów, wpisujemy wartość i zamykamy cudzysłów. Bardzo często nawet nie zastanawiamy się, czy to dobre podejście. Niestety w dłuższej perspektywie takie podejście oznacza problemy. A to podczas pobierania wartości ze słownika robimy w kluczu literówkę, o Read more about Używanie napisów w aplikacji[…]

Lokalizacja Enum

Lokalizacja Enum

Wprowadzenie Typów wyliczeniowych używamy do określenia wartości z góry określonego zbioru. Dzięki nim ułatwiamy sobie tworzenie kodu poprzez nadanie nazwy dla wartości. Nazwa enuma musi spełniać rygory składni takich języków, jak C#. Dlatego potrzebujemy czegoś, co wyświetli ładny napis w interfejsie użytkownika. W tym wpisie, drogi Czytelniku, pokażę Ci, jak to zrobić małym nakładem pracy Read more about Lokalizacja Enum[…]

Entity Framework - aktualizacja danych bez ich pobierania

Entity Framework – aktualizacja danych bez ich pobierania

Wprowadzenie Dzisiejszy wpis jest inspirowany jednym z ostatnich code review, jakie robiłem. Zauważyłem, że gdy pracujemy z Entity Framework, często niektóre rzeczy zaczynamy robić nieefektywnie względem tego, jakbyśmy zrobili to chociażby w przypadku ADO.NET. Taką właśnie czynnością jest aktualizowanie oraz usuwanie obiektów z bazy. Aktualizacja obiektu z jego pobraniem Standardowo, gdy zaczynamy uczyć się pracować Read more about Entity Framework – aktualizacja danych bez ich pobierania[…]

Testowanie wysyłki email w ASP.NET MVC

Testowanie wysyłki e-mail w ASP.NET MVC

Wprowadzenie W poprzednich dwóch wpisach (Postal – wysyłka email w ASP.NET MVC oraz Hangfire – wysyłka email w tle) pokazałem, jak wysyłać wiadomości e-mail w aplikacji ASP.NET MVC. Jeśli nie czytałeś/czytałaś tamtych artykułów, to zachęcam do nadrobienia lektury, szczególnie że w tym wpisie będę bazował właśnie na kodzie z poprzednich wpisów. W dzisiejszym poście chciałbym Read more about Testowanie wysyłki e-mail w ASP.NET MVC[…]