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 4149 dni, 5 godzin, 29 minut temu 146 ź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 4161 dni, 18 godzin, 21 minut temu 111 ź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 4165 dni, 23 godziny, 45 minut temu 79 ź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 4168 dni, 14 godzin, 56 minut temu 84 ź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 4174 dni, 14 godzin, 14 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 4190 dni, 2 godziny, 1 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 4242 dni, 17 godzin, 13 minut temu 127 źrodło rozwiń
Załóżmy, że mamy metodę generyczną:privatevoid AddItem
Architektura 4258 dni, 11 godzin, 42 minuty 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 4264 dni, 16 godzin, 3 minuty 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 4267 dni, 17 minut temu 117 ź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 4276 dni, 7 godzin, 7 minut temu 258 źrodło rozwiń
Dostałem do ręki aplikacje w której istnieje zmienna globalna, oczywiście występująca w wielu miejscach...
Architektura 4282 dni, 17 godzin, 23 minuty 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 4291 dni, 18 godzin, 17 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 4292 dni, 15 godzin, 7 minut temu 182 ź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 4293 dni, 4 godziny, 25 minut temu 193 ź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 4297 dni, 3 godziny, 9 minut temu 164 źrodło rozwiń
Entity Framework i śledzenie wykonywanych zapytań SQL 24 Październik 2010- autor: mendoza32Dodaj komentarz Ostatnio interesowało mnie jakie właściwie zapytania SQL generuje Entity Framework. Chwila na Google i znalazłem Entity Framework Profiler. Najnowszą wersję można pobrać z tego miejsca. Użycie tego narzędzia jest banalnie proste. Najpierw musimy dodać referencję do biblioteki HibernatingRhinos.Profiler.Appender.dll. Następnie gdzieś w punkcie startowym aplikacji umieścić takie polecenie: Hibernating...
Architektura 4297 dni, 7 godzin, 43 minuty temu 165 źrodło rozwiń
Design by Contract (TM) to technika programowania defensywnego, postulująca jawne specyfikowanie interfejsów komponentów, np. poprzez deklarowanie warunków, które muszą spełniać argumenty metod (to w zasadzie najczęstszy przypadek). Zwykle w projektach realizujemy to wymaganie albo poprz...
Architektura 4306 dni, 19 godzin, 30 minut temu 89 źrodło rozwiń
Każda bardziej skomplikowana (niż „hello word”) aplikacja posiada jakąś architekturę. Chyba najbardziej popularna wśród początkujących to spaghetti. Architektura spaghetti charakteryzuje się tym, że różne kawałki kodu są po prostu przemieszane ze sobą. Czasem tak dobrze, że w jednej procedurze i/lub funkcji znajdziemy wszystkie składniki. Na szczęście kilka programów później, prawie każdy zaczyna coraz bardziej myśleć o architekturze. O tym, jak poszczególne elementy aplikacji będą poskładane i jak będą ...
Architektura 4306 dni, 19 godzin, 30 minut temu 177 źrodło rozwiń
W tym poście przedstawię swoją implementację wzorca Repository z użyciem Entity Framework. Na początek zdefiniowałem interfejs IRepository...
Architektura 4307 dni, 10 godzin, 23 minuty temu 334 źrodło rozwiń