Programista .NET

Moje przygody z programowaniem :)

Jak profilować zapytania w Entity Framework

Jak profilować zapytania w Entity Framework?

Wprowadzenie Entity Framework jest bardzo fajnym narzędziem bardzo ułatwiającym pracę z bazami danych. Budowanie zapytań SQL na podstawie Linq, tworzenie struktury bazy danych na podstawie obiektów w C#, czy mechanizm migracji, powodują, że wielu programistów .NET wybiera Entity Framework. Niestety Entity Framework ma również swoje ciemne strony. Wystarczy chociażby wrócić do wpisu, w którym poruszałem Read more about Jak profilować zapytania w Entity Framework?[…]

Jak automatycznie ponawiać operacja oraz cachować dane z interceptorami w Autofac?

Jak automatycznie ponawiać operacja oraz cachować dane z interceptorami w Autofac?

Wprowadzenie W aplikacji czasami mamy fragmenty kodu, które dodajemy w różnych miejscach. Tak jak ostatnio opisywałem, możemy chcieć dodać cachowanie danych na poziomie logiki biznesowej, aby zmniejszyć ilość zapytań do bazy. W przykładzie dotyczącym CacheManagera wywołanie usługi CacheService dodałem bezpośrednio w kodzie logiki. Z jednej strony tego kodu nie ma zbyt dużo, ale z drugiej Read more about Jak automatycznie ponawiać operacja oraz cachować dane z interceptorami w Autofac?[…]

Jak ponawiać operacje w NET z wykorzystaniem Polly

Jak ponawiać operacje w .NET z wykorzystaniem Polly?

Wprowadzenia W aplikacjach bardzo często używamy zewnętrznych zasobów. A to trzeba wykonać zapytanie na bazie danych. Pobrać dane z usługi lub wysłać wiadomość email. Zasoby te charakteryzują się tym, że mogą być przez jakiś czas niedostępne, bo na przykład wystąpił jakiś problem z siecią lub zasób jest zbyt mocno obciążony. W takich sytuacjach zastanawiamy się, Read more about Jak ponawiać operacje w .NET z wykorzystaniem Polly?[…]

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

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

Wprowadzenie Wraz z rozwojem aplikacji oraz zwiększaniem się liczby użytkowników, stajemy przed coraz większymi problem 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 cachować dane w .NET? Kilka słów o CacheManager oraz Redis[…]

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 wykorzysta Visual Studio 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/klasy. Klasy te często nazywamy repozytoriami* (np. UserRepository, ProductRepository) i na ogół zawierają takie same metody. Jestem wielkim fanem szablonów T4. Lubie je wykorzystywać do automatyzacji 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 W wpisie 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 pisałem w innym wpisie (Używanie napisów w aplikacji) stosuje wiele plików resource do organizacji napisów wyświetlanych użytkownikowi. Dlatego chciałem sprawdzić, czy to prawda. Przeglądając internet 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ższe perspektywie takie podejście oznacza problemy. A to robimy literówkę w kluczu podczas pobierania wartości z słownika, o Read more about Używanie napisów w aplikacji[…]