Strona głównaUżytkownik

danielplawgo | użytkownik

danielplawgo
danielplawgo
8 926,31
1000 dni, 10 godzin, 50 minut temu
15 kwietnia, 2009
dotnetomaniak.pl

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 2297 dni, 4 godziny, 47 minut temu danielplawgo 128 ź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 2304 dni, 8 godzin, 50 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 2311 dni, 8 godzin, 33 minuty temu danielplawgo 150 ź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 2317 dni, 9 godzin, 47 minut temu danielplawgo 114 ź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 2324 dni, 9 godzin, 36 minut 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 2331 dni, 9 godzin, 50 minut temu danielplawgo 197 ź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 2332 dni, 10 godzin, 9 minut temu danielplawgo 83 ź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 2337 dni, 11 godzin, 18 minut temu danielplawgo 139 ź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 2345 dni, 1 godzinę, 22 minuty temu danielplawgo 96 ź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 2351 dni, 4 godziny, 45 minut temu danielplawgo 108 ź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 2355 dni, 9 godzin, 31 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 2373 dni, 10 godzin, 59 minut temu danielplawgo 113 ź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 2373 dni, 10 godzin, 59 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 2400 dni, 8 godzin, 49 minut temu danielplawgo 60 ź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 2403 dni, 10 godzin, 51 minut temu danielplawgo 78 ź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 2410 dni, 4 godziny, 9 minut temu danielplawgo 111 źrodło rozwiń

W poprzednim wpisie opisałem w jaki sposób można wykorzystać bibliotekę Fluent Validation do zorganizowania walidacji danych w aplikacji. W walidatorze możemy użyć metodę Must do definiowania własnej logiki walidacji (jak to było zrobione na przykładzie walidacji nipu). W większości przypadków takie podejście jest wystarczające. Czasami, gdy jakąś logikę musimy współdzielić między różnymi walidatorami w aplikacji (lub nawet między różnymi aplikacjami) możemy stworzyć wali...

Źródło: plawgo.pl
Dziel się z innymi:
Fluent Validation – własny walidator | Blog Daniela Plawgo

Narzędzia 2414 dni, 11 godzin, 10 minut temu danielplawgo 115 źrodło rozwiń

Tak jak zapowiadaliśmy wcześniej, mamy dla Was niespodziankę! Mamy do rozdania kilka nagród:2 vouchery na dowolny egzamin (ważne do 30 lipca 2010) 2 vouchery na kurs e-learningowy 6364: Visual Studio 2008 ASP.Net 3.5 (ważne do 30 czerwca 2010) Konkurs na najlepszą “zajawkę” Waszym zadaniem jest napisanie notki z linkami (70-536, 70-562, 70-503) do naszych kursów w jakimś blogu/serwisie. Najlepsza “zajawka” będzie nagrodzona: voucherem na egzamin, a kolejna voucherem na kurs e-learningowy. Termin zgłaszan...

Źródło: eastgroup.pl
Dziel się z innymi:
Konkurs – vouchery na egzamin | Eastgroup.pl

Inne 5268 dni, 16 godzin, 34 minuty temu danielplawgo 114 źrodło rozwiń

Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. Ci z Was, którzy obsługiwali już wątki w .NET wiedzą, że nie jest to specjalnie skomplikowane. Najczęściej problemy występują przy obsłudze kontrolek Windows Forms, ponieważ ich właściwości mogą być zmieniane tylko w wątku, który je stworzył. Innym problemem jest wykorzystywanie lokalnej pamięci wątków do przechowywania informacji o kontekście, gdy proces nieoczekiwanie zmienia wątki, te dane mogą zniknąć. Z te...

Źródło: eastgroup.pl
Dziel się z innymi:
70-503: Synchronization | Eastgroup.pl

Programowanie rozproszone 5284 dni, 11 godzin, 14 minut temu danielplawgo 76 źrodło rozwiń

Ten artykuł pochodzi z serii przygotowań do egzaminu 70-503: Windows Communication Foundation. Współbieżność (ang. concurrency) w serwisie WCF występuje, kiedy jednocześnie więcej niż jedno wywołanie ma miejsce. Celem serwisu WCF jest przetwarzanie przychodzących żądań. Kiedy żądanie przychodzi do serwisu, serwis rozdziela (ang. dispatch) komunikaty na własne wątki, które brane są z puli wątków. Z każdym żądaniem powiązany jest obiekt serwisu – instancja klasy, która implementuje interfejs serwisu. W WCF...

70-503: Concurrency in WCF Applications | Eastgroup.pl

Programowanie rozproszone 5285 dni, 21 godzin, 13 minut temu danielplawgo 78 źrodło rozwiń

1 2 3 4 5 6 7 8... 10 11