Strona głównaUżytkownik

danielplawgo | użytkownik

danielplawgo
danielplawgo
8 926,31
781 dni, 16 godzin, 56 minut temu
15 kwietnia, 2009
dotnetomaniak.pl

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ę, czy od razu pokazać użytkownikowi informacje o błędzie, czy może spróbować ponowić operację po jakimś czasie i do...

Źródło: plawgo.pl
Dziel się z innymi:
Jak ponawiać operacje w .NET z wykorzystaniem Polly? - Blog Daniela Plawgo

Inne 2049 dni, 15 godzin, 46 minut temu danielplawgo 240 źrodło rozwiń

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 mechanizmu cachowania często używanych danych. W tym wpisie pokaże Ci bibliotekę CacheManager (https://github...

Źródło: plawgo.pl
Dziel się z innymi:
Jak cachować dane w .NET? Kilka słów o CacheManager oraz Redis - Blog Daniela Plawgo

Narzędzia 2056 dni, 15 godzin, 16 minut temu danielplawgo 227 źrodło rozwiń

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 są w różnych strefach . Wtedy takie podejście może się okazać bardzo problematyczne. Dlatego zaleca się, aby po...

Źródło: plawgo.pl
Dziel się z innymi:
Jak automatycznie zmieniać czas lokalny na UTC w ASP.NET MVC? - Blog Daniela Plawgo

Web 2063 dni, 16 godzin, 8 minut temu danielplawgo 124 źrodło rozwiń

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 fajne, ale niestety na dłuższą metę tak wygenerowany kod, nie jest tym, co potrzebujemy i...

Źródło: plawgo.pl
Dziel się z innymi:
Jak zmienić generowanie kodu w ASP.NET MVC? - Blog Daniela Plawgo

Web 2070 dni, 13 godzin, 21 minut temu danielplawgo 124 źrodło rozwiń

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 tworzenia powtarzalnych i schematycznych elementów kodu. Właśni...

Źródło: plawgo.pl
Dziel się z innymi:
Generowanie kodu na przykładzie klas repozytorium, szablonów T4 oraz T4 Toolbox - Blog Daniela Plawgo

Narzędzia 2078 dni, 10 godzin, 53 minuty temu danielplawgo 124 źrodło rozwiń

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 można trafić na pytania na stackoverflow: https://stackoverflow.com/ques...

Źródło: plawgo.pl
Dziel się z innymi:
Jeden czy wiele plików resource, a wydajność - Blog Daniela Plawgo

Inne 2085 dni, 14 godzin, 56 minut temu danielplawgo 124 źrodło rozwiń

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ś 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 .NET? Możemy zrobić to na wiele sposobów. Niektórzy używają DateTime.Now, inni DateTime.UtcNow, czy też klasy StopWatch. W ka...

Źródło: plawgo.pl
Dziel się z innymi:
Jak zmierzyć wydajność kodu .NET? BenchmarkDotNet - Blog Daniela Plawgo

Narzędzia 2092 dni, 14 godzin, 39 minut temu danielplawgo 149 źrodło rozwiń

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 której dowiadujemy się dopiero podczas wykonywana kodu (o ile go przetestujemy). A to musimy w 20...

Źródło: plawgo.pl
Dziel się z innymi:
Używanie napisów w aplikacji - Blog Daniela Plawgo

Inne 2098 dni, 15 godzin, 52 minuty temu danielplawgo 113 źrodło rozwiń

Typy wyliczeniowy są używane do określenia jednej wartości z góry określonego zbioru. Dzięki nim możemy ułatwić sobie tworzenie kodu poprzez nadanie nazwy dla wartości, którą później używamy. Nazwa enuma musi spełniać rygory składni takich języków jak C#, dlatego potrzebujemy mechanizmu, który wyświetli ładny napisu w interfejsie użytkownika. W tym wpisie drogi czytelniku, pokaże Ci jak to zrobić małym nakładem pracy oraz przy okazji wspierać wiele języków. Zob...

Źródło: plawgo.pl
Dziel się z innymi:
Lokalizacja Enum - Blog Daniela Plawgo

Inne 2105 dni, 15 godzin, 42 minuty temu danielplawgo 163 źrodło rozwiń

Dzisiejszy wpis jest zainspirowanym jednym z ostatnich code review jaki robiłem. Zauważyłem, że gdy pracujemy z Entity Framework często niektóre rzeczy zaczynamy robić nieefektywnie w stosunku do tego, jakbyśmy zrobili to w 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ć z Entity Framework, do aktualizacji obiektu możemy ...

Źródło: plawgo.pl
Dziel się z innymi:
Entity Framework - aktualizacja danych bez ich pobierania - Blog Daniela Plawgo

Bazy danych i XML 2112 dni, 15 godzin, 56 minut temu danielplawgo 193 źrodło rozwiń

W poprzednich dwóch postach (Postal – wysyłka email w ASP.NET MVC oraz Hangfire – wysyłka email w tle) pokazałem jak wysyłać wiadomości email w aplikacji ASP.NET MVC. Jeśli nie czytałeś/czytałaś tamtym wpisów, to zachęcam do nadrobienia lektury, szczególnie, że w tym wpisie będę bazował na kodzie, z tamtych wpisów. W dzisiejszym poście chciałbym jeszcze pozostać przy tej tematyce i pokaże Ci, w jaki sposób można automatycznie testować kod odpowiedzialny za wysy...

Testowanie wysyłki email w ASP.NET MVC - Blog Daniela Plawgo

Web 2113 dni, 16 godzin, 15 minut temu danielplawgo 81 źrodło rozwiń

W poprzednim wpisie pokazałem jak w aplikacji ASP.NET MVC wysyłać wiadomości email z wykorzystaniem biblioteki Postal. Wspomniałem również, że wysyłka email w ramach żądania HTTP nie jest dobrym pomysłem, że lepiej skorzystać z jakiego mechanizmu kolejek oraz ponawiania operacji. Jednym z dostępnych narzędzi jest biblioteka Hangfire, która w prosty sposób jest wstanie wysłać email w tle, a do tego ponowić operację w momencie wystąpienia błędu.Hangfire Ostatnio do kolejkow...

Źródło: plawgo.pl
Dziel się z innymi:
Hangfire - wysyłka email w tle - Blog Daniela Plawgo

Web 2118 dni, 17 godzin, 24 minuty temu danielplawgo 136 źrodło rozwiń

Wysyłka email w ASP.NET MVC Wcześniej, czy później w aplikacji następuje potrzeba wysłania wiadomości email do użytkownika. W aplikacji ASP.NET MVC można zrobić to na wiele sposób. Możemy ręcznie przygotować treść wiadomości oraz wysłać ją z wykorzystaniem klasy SmtpClient. Możemy też skorzystać z tego, co daje ASP.NET MVC i użyć widoki do generowania treści wiadomości. W tym wpisie pokaże jak wykorzystać bibliotekę Postal do wysyłki email w ASP.NET MVC.Postal – przygotowan...

Źródło: plawgo.pl
Dziel się z innymi:
Postal - wysyłka email w ASP.NET MVC - Blog Daniela Plawgo

Web 2126 dni, 7 godzin, 28 minut temu danielplawgo 94 źrodło rozwiń

Tworząc aplikację ASP.NET MVC w wielu miejscach wykorzystujemy stringi do określenia takich rzeczy jak: nazwa kontrolera, nazwa akcji, nazwa widoku, ścieżka do pliku i wiele innych. Osobiście nie lubię używania napisów w kodzie aplikacji. Ciężko znaleźć później użycia danego napisu, przez co, gdy zmieniamy na przykład nazwę akcji, to wtedy bardzo łatwo o pominięcie jakiegoś linku w aplikacji, co powoduje, że psujemy jej działanie. Do tego dochodzą problemy z literówkami, c...

Źródło: plawgo.pl
Dziel się z innymi:
T4MVC – sposób na stringi w aplikacji ASP.NET MVC – Blog Daniela Plawgo

Web 2132 dni, 10 godzin, 51 minut temu danielplawgo 106 źrodło rozwiń

Pracując z kontenerami Dependency Injection bardzo często dochodzi to sytuacji, gdy kod konfiguracji takiego kontenera bardzo się rozrasta. W szczególności, gdy korzystamy z biblioteki, która nie wspiera autorejestracji (przez dłuższy czas w jeden z aplikacji WPF wykorzystywałem Unity, gdzie trzeba było każdy typ zarejestrować ręcznie w kontenerze), przez co klasa konfiguracji może zawierać dziesiątki, jak i nie setki linii kod. Na szczęście Autofac, którego wykorzystuje o...

Źródło: plawgo.pl
Dziel się z innymi:
Wykorzystanie modułów do konfiguracji kontenera Autofac – Blog Daniela Plawgo

Narzędzia 2136 dni, 15 godzin, 37 minut temu danielplawgo 99 źrodło rozwiń

Wstrzykiwanie zależności z wykorzystaniem kontenerów jest bardzo wygodne, ale też niesie z sobą trochę problemów. Jednym z tych problemów jest ilość oraz moment tworzenia obiektów. W tym wpisie pokaże ten problem oraz zaproponuje swoje rozwiązanie z wykorzystaniem obiektów Lazy. Poniżej jest przedstawiona dość standardowy kawałek kodu aplikacji ASP.NET MVC, w której jest wykorzystane wstrzykiwanie zależności przez konstruktor w formie interfejsów. Jak widać na kodzie pow...

Źródło: plawgo.pl
Dziel się z innymi:
Wstrzykiwanie zależności z wykorzystaniem Lazy – Blog Daniela Plawgo

Sztuka programowania 2154 dni, 17 godzin, 5 minut temu danielplawgo 112 źrodło rozwiń

W jednym z wcześniejszych wpisów pokazałem jak za pomocą dwóch bibliotek (Nbuilder oraz Faker.NET) wygenerować dane testowe. Przez dłuższy czas korzystałem z tamtego rozwiązania, natomiast ostatnio kolega z pracy pokazał mi inną, ciekawszą bibliotekę, która łączy działanie Nbuildera oraz Faker.NET. Do tego ma kilka dodatkowych funkcji, które się przydają. Biblioteka nazywa się Bogus i jest to port biblioteki Faker.js. Po pierwsze biblioteka umożliwia wygenerowanie jednego...

Źródło: plawgo.pl
Dziel się z innymi:
Bogus – generowanie danych testowych | Blog Daniela Plawgo

Narzędzia 2154 dni, 17 godzin, 5 minut temu danielplawgo 143 źrodło rozwiń

W poprzednim wpisie pokazałem, jak użyć Fluent Validation w aplikacji WPF. Wspomniałem, że tamta implementacja niestety nie nadaje się, gdy potrzebujemy walidować dane w sposób asynchroniczny – np. sprawdzić w usłudze, czy dane są unikalne. W tamtym wpisie pokazałem użycie IDataErrorInfo ponieważ jest on najczęściej wykorzystywany do realizacji walidacji. Natomiast dzisiaj opiszę nową wersję tego interfejsu, dodaną w .NET 4.5 – INotifyDataErrorInfo. Co fajne nowy interfejs...

Źródło: plawgo.pl
Dziel się z innymi:
Integracja Fluent Validation z WPF wersja async | Blog Daniela Plawgo

Windows 2181 dni, 14 godzin, 54 minuty temu danielplawgo 59 źrodło rozwiń

W poprzednich wpisie pokazałem w jaki sposób można zintegrować Fluent Validation z aplikacją ASP.NET MVC, dzisiaj przyszedł czas na WPF. W WPF jest kilka sposobów na realizację walidacji. Najczęściej wykorzystuje się do tego interfejs IDataErrorInfo, który definiuje dwa elementy: właściwość Error zawierającą informacje o błędach oraz indekser, który zwraca błąd dla właściwości o nazwie przekazanej jako indeks. Interfejs ten można wykorzystać do integracji Fluent Validatio...

Źródło: plawgo.pl
Dziel się z innymi:
Integracja Fluent Validation z WPF | Blog Daniela Plawgo

Windows 2184 dni, 16 godzin, 57 minut temu danielplawgo 77 źrodło rozwiń

W dzisiejszym wpisie pokaże dwa sposoby w jaki sposób można integrować bibliotekę Fluent Validation z ASP.NET MVC. Pierwszy domyślny, który dostarcza sama biblioteka oraz drugi mój, który rozwiązuje cześć problemów z domyślnej integracji.Domyślna integracja Integracja Fluent Validation z ASP.NET MVC jest bardzo prosta, sprowadza się do dwóch kroków:Instalacja pakietu FluentValidation.Mvc5 z nugetaDodanie linijki konfiguracji biblioteki w metodzie startującą aplikację (Mvc...

Źródło: plawgo.pl
Dziel się z innymi:
Integracja Fluent Validation z ASP.NET MVC | Blog Daniela Plawgo

Web 2191 dni, 10 godzin, 15 minut temu danielplawgo 108 źrodło rozwiń

1 2 3 4 5 6 7 8... 13 14

Najaktywniejsi w tym miesiącu