Tak mnie wzięło na wzorce projektowe ostatnimi czasy, dzisiaj coś o o odwiedzającym (wizytatorze). Polska Wikipedia mówi o nim tak odwiedzający.
Architektura 4914 dni, 14 godzin, 23 minuty temu 275 źrodło rozwiń
Swojego czasu Ayende na blogu opisał dwa interfejsy, który umożliwiają w NH zrobienie prostego audytu. Interfejsy (IPreUpdateEventListener i IPreInsertEventListener) umożliwiają wstrzyknięcie pewnej operacji tuż przed wstawieniem jak i aktualizacją obiektu – idealne miejsce dla wstawienia daty aktualizacji i modyfikacji.
Architektura 4915 dni, 5 godzin, 41 minut temu 114 źrodło rozwiń
Zapraszam: http://msdn.microsoft.com/pl-pl/library/windows-azure-appfabric–autoryzacja-dostepu-do-operacji-wcf-za-pomoca-tokenow-swt
Architektura 4964 dni, 16 godzin, 49 minut temu 29 źrodło rozwiń
W aplikacji którą piszemy musimy zapisywać dane wprowadzone przez użytkownika na formularzu do bazy. Dane można podzielić na ogólne statyczne (adres, opis, itp.) i szczegółowe dynamiczne (lista monitorowanych parametrów i ich wyniki z możliwością dodawania/usuwania/modyfikowania każdego z parametrów wraz z wynikami ze wszystkim dostępnych list). To co biznes interesuje to jedynie dane ogólne zaś dane dynamiczne mogą ulegać notorycznym zmianom, ich śledzenie jest zbędne. Dlatego też by nie męczyć się z m...
Architektura 4984 dni, 16 godzin, 26 minut temu 160 źrodło rozwiń
Post dotyczy języka C#, nie wypowiadam się na temat innych języków gdyż nie wiem jak operator i instrukcja warunkowa są w nich zaimplementowane. Bardzo często spotykam się ze stwierdzeniem, że operator warunkowy (?:) jest równoważny instrukcji warunkowej (if). Info. Nie wiem czemu statement to instrukcja, a expression to wyrażenie. Jakoś mi nie pasuje to tłumaczenie ale będę się jego tutaj trzymał. Jak ktoś tłumaczy ?: to często daje prosty przykład IF i ?: pisząc, że to to samo. Prowadzi do przykładó...
Architektura 4984 dni, 18 godzin, 25 minut temu 147 źrodło rozwiń
Od pewnego czasu zamiast stosowania mapowań za pomocą plików XML zacząłem używać FluentNHibernate. Mimo początkowego sceptycznego podejścia przełamałem się, a dobitnie nastąpiło to wtedy, kiedy zacząłem używać konwencji. Jedną z fajniejszych, która odrazu spowodowała pozytywne nastawienie do FNH jest konwencja IIdConvention. Pozwala na zautomatyzowanie mapowania klucza głównego. Dlaczego? Od zawsze stosuję klucze pojedyncze oparte na typie int lub long, gdzie wartość jest wyliczana algorytmem hilo. Otóż ...
Architektura 4997 dni, 7 godzin, 18 minut temu 112 źrodło rozwiń
Dziś trochę czystej teorii dla tych, którzy potrzebują wywoływać komponenty COM. W Internecie znajduje się wiele artykułów o różnicach między STA a MTA. Większość jednak opisuje je dosyć szczegółowo uwzględniając wiele aspektów technicznych i przez to nie zawsze może być to zrozumiałe. Podstawy jednak są bardzo proste i w poście skupie się wyłącznie na nich – szczegóły z pewnością znajdziecie na MSDN. Przede wszystkim STA, MTA mają znaczenie wyłącznie gdy korzystamy z obiektów COM. To pozostałość po dawn...
Architektura 5001 dni, 12 godzin, 42 minuty temu 80 źrodło rozwiń
Niedawno przedstawiłem TokenContext, klasę pomocniczą upraszczającą wyławianie kontekstu z masy logów tworzonych w aplikacji wielowątkowej, gdzie wiele operacji przeplata się nawzajem. Regularnie jednak zdarza się, że interesuje nas nie tyle jedna szczególna operacje co cały cykl życia konkretnego obiektu. Kumpel, z którym pracuję nad "głównym" projektem, zaproponował stosowanie takiej, bardzo prostej, logicznej i przydatnej, konwencji...
Architektura 5004 dni, 3 godziny, 52 minuty temu 85 źrodło rozwiń
Wpadłem w pułapkę relacji wiele do wielu, m:n. Po raz kolejny. Jak fretka w sidła... te same po raz n-ty (czy m-ty?). Byłem na siebie tak wściekły, że to ludzkie pojęcie przechodzi. Właściwie bardziej mi teraz szkoda nerwów niż straconego czasu. Ale o co się, panie, rozchodzi? W moim systemie miałem bardzo prostą zależność: Company (n) - (m) Customer. Firma posiada wielu klientów, a klient przypisany jest do wielu firm. Bez dodatkowych ceregieli utworzyłem:
Architektura 5010 dni, 3 godziny, 11 minut temu 321 źrodło rozwiń
Zwykle zapisując do logów jakąś informację dobrze jest zachować pewne powiązanie pomiędzy następującymi po sobie czynnościami. Dobrym przykładem takiej sytuacji jest np. wywoływanie ApplicationEvent, wysyłanie maila, czy właściwie jakikolwiek proces składający się z więcej niż 1 kroku. Po co? A no po to, aby potem w pliku z logami móc wyfiltrować tylko te informacje które nas faktycznie interesują. Szczególnie w środowisku wielowątkowym (czyli właściwie... zawsze?) bez tego ciężko jest dojść OCB
Architektura 5025 dni, 14 godzin, 57 minut temu 112 źrodło rozwiń
Budując architekturę wielowarstwową, wyraźnie oddzielając logikę biznesową od warstwy prezentacji podstawowym problemem jest wielokrotne powtarzanie kodu związanego z operacjami create, read, update i delete czyli dodawania, pobierania, aktualizacji i usuwania obiektów z bazy danych. Jak wykonać generyczny CRUD w Business Logic Toolkit?
Architektura 5078 dni, 6 godzin, 9 minut temu 127 źrodło rozwiń
Załóżmy, że mamy metodę generyczną:privatevoid AddItem
Architektura 5094 dni, 38 minut temu 81 źrodło rozwiń
Programując w C# często natrafiamy na klasy implementujące interfejs IDisposable, często też o tym nie wiedząc (nasza wina) lub nie mając o tym świadomości (kto stworzył taką bibliotekę?) – wystarczy popatrzeć na API od SharePointa i prawie od razu możemy natrafić na takie piękne kruczki, utworzenie obiektu listy powoduje przypisanie do niej obiektu witryny itp. itd. tego jest sporo. Może dlatego też większość z nas z rzadka korzysta z IDisposable a jak już korzysta to w celu pozbycia się zasobów. Jedna...
Architektura 5100 dni, 5 godzin temu 86 źrodło rozwiń
Dzisiejsza historia oparta jest, w większości, na faktach. Ukryliśmy tylko imię naszego programisty. Był sobie Tomek programista. Tomek miał do napisania w C# fragment większego algorytmu. Jako, że kod był dobrze podzielony mogło to zrobić wiele osób. Jedną z rzeczy które miały być w tym fragmencie było stw...
Architektura 5102 dni, 13 godzin, 13 minut temu 118 źrodło rozwiń
Na prezentacji pokazałem sposób tworzenia aplikacji WPF z wykorzystaniem Visual Studio, Blend i wzorca projektowego MVVM. Kod i slajdy będą na SkyDrive grupy. Dzisiaj chcę wam pokazać jak można wykonać podobną aplikacje która może nam posłużyć do „wymyślania” haseł na konta ;p To do dzieła.1 Tworzymy nowy projekt.Nowy projekt utworzymy z wykorzystaniem Blenda. Jeżeli ktoś nie ma Blenda może śmiało to samo wykonać w Visual Studio. Uruchamiamy Blenda po czym w okienku które nam wyskoczyło naciskamy New Pr...
Architektura 5111 dni, 20 godzin, 4 minuty temu 259 źrodło rozwiń
Dostałem do ręki aplikacje w której istnieje zmienna globalna, oczywiście występująca w wielu miejscach...
Architektura 5118 dni, 6 godzin, 20 minut temu 189 źrodło rozwiń
autor: Dzisiejszy wpis poświęcony będzie tematyce, którą powinienem był poruszyć już ładnych parę tygodni temu – testowaniu warstw dostępu do danych i logiki biznesowej. Zwlekałem z opisaniem tej części projektu, ponieważ planowałem zaprezentować również testy interfejsu użytkownika, których, koniec końców, wcale nie napisałem (pokusa oglądania aplikacji w akcji i sprawdzania wszystkiego własnoręcznie okazała się zbyt duża).
Architektura 5127 dni, 7 godzin, 14 minut temu 80 źrodło rozwiń
Od razu zaznaczam, że pomysł nie jest mój, ale jest zaczerpnięty z przykładowego projektu na CodeProject. Jednak spodobał mi się bardzo, bo wprowadza porządek do projektu, jest prosty i oczywisty. W czym problem?Podczas korzystania z Messengera, problemem okazało się tworzenie unikalnych tokenów za pomocą, których można by jednoznacznie identyfikować komunikaty. Dzięki tokenom można przesyłać wiele komunikatów tego samego typu (na przykład w prostym przypadku string'ów) i jednocześnie móc je od siebie o...
Architektura 5128 dni, 4 godziny, 3 minuty temu 183 źrodło rozwiń
Programując, często zadajemy sobie pytanie, jak napisać określoną funkcjonalność i nie mówię tu tylko o tym jaki algorytm zastosować, ale także o sposobach implementacji określonych funkcjonalności. Tutaj swoje miejsce, znajdują właśnie wzorce projektowe, czyli unikalne sposoby implementacji określonych fragmentów kodu, które w większości przypadków, można stosować niezależnie od wybranego przez siebie języka. Dobry programista, zawsze powinien skorzystać z gotowego i sprawdzonego wzorca, bo po pierwsze ...
Architektura 5128 dni, 17 godzin, 22 minuty temu 196 źrodło rozwiń
Autor: Tydzień temu zaproponowałem mały konkurs, polegający na zmuszenia .NET’a do zrobienia rzeczy, której teoretycznie nie powinno dać się zrobić. Niestety trochę “przedobrzyłem” i jednym z dostępnych rozwiązań rozwiązań było użycie Reflection o co mnie w pytaniu nie chodziło. Świat się jednak nie wali, a jest nawet lepiej. Wiem, że są osoby, które o Reflection nie słyszały i dziwią się, że takie rzeczy w .NET można robić.Tak więc zobaczmy jakie rozwiązania są dostępne: Rozwiązania Podstawowe czyli z u...
Architektura 5132 dni, 16 godzin, 5 minut temu 165 źrodło rozwiń