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 3766 dni, 17 godzin, 34 minuty 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 3767 dni, 6 godzin, 52 minuty temu 192 ź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 3771 dni, 5 godzin, 36 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 3771 dni, 10 godzin, 10 minut temu 163 ź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 3780 dni, 21 godzin, 57 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 3780 dni, 21 godzin, 57 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 3781 dni, 12 godzin, 50 minut temu 333 źrodło rozwiń
Wielu programistów, zwłaszcza tych początkujących, przez cały czas kurczowo trzyma się tablic, jako uniwersalnego sposobu na przechowywanie dużej ilości określonych zmiennych/obiektów. I może jest to jakaś opcja, ale sumarycznie tablice dają duże ograniczenia. Deklarując tablicę, trzeba znać z góry ustaloną ilość elementów jaka będzie miała się znaleźć w tej tablicy i tym samym alokując dużą ilość pamięci już na starcie (być może taką ilość, której nawet nie wykorzystamy), ponadto tablice nie mają wielu ...
Architektura 3783 dni, 1 godzinę, 13 minut temu 170 źrodło rozwiń
Niejednokrotnie tworząc własne kolekcje danych, chcielibyśmy mieć swobodę ich edycji, filtrowania i przeszukiwania. Podstawowe operacje dostarczone przez interfejs kolekcji, nie rozpieszczają użytkowników. W takim momencie, każdy programista z zazdrością spogląda na kolegę, który zajmuje się bazą danych i który dzięki zapytaniom, może właściwie w dowolny sposób manipulować posiadanymi danymi. Jednak jeśli jesteś programistą .Net i korzystasz z tego Frameworka w wersji co najmniej 3.5 - to mam dla Ciebie ...
Architektura 3783 dni, 11 godzin, 12 minut temu 168 źrodło rozwiń
Obsługa zdarzeń, jest niezwykle ważna w każdym języku programowania. Pozwala ona na sprawne wykonywanie operacji związanych z aktualnym przetwarzaniem wykonywanym w aplikacji. Dla programisty, ważne jest aby ten proces przebiegał w sposób jak najbardziej automatyczny. Dlatego w dzisiejszym tekście, postaram się opisać delegaty oraz tworzone na ich podstawie zdarzenia (z ang. events).
Architektura 3784 dni, 4 godziny, 53 minuty temu 637 źrodło rozwiń
JSON jest lekkim i uniwersalnym format przesyłania danych. Pozwala on przekazywać informacje w szybki i sprawny sposób np. pomiędzy elementami strony WWW. Na tym blogu, pisałem już o nim wielokrotnie. Ostatnio np. we wpisach: Ajax, XML i JSON w jQuery i Widget Twitter w PHP i jQuery na stronie. W tych właśnie wpisach, ukazałem JSONa głównie pod kątem użycia w JavaScripcie. Dziś, mam zamiar pokazać jego użycie w środowisku .NET wykorzystując do tego język C#.
Architektura 3784 dni, 10 godzin, 33 minuty temu 167 źrodło rozwiń
Od początku pracy nad DesktopInfo wiadome było, że będzie potrzebny mechanizm do ładowania pluginów, dodatkowych modułów, które rozszerzą możliwości aplikacji bez potrzeby jej rekompilacji. Pierwszy pomysł jaki przechodzi do głowy to refleksja. Jednak jakiś czas temu postała biblioteka MEF, która została włączona do .NET Framework 4.0 Ponieważ aplikacja DesktopInfo wykorzystuje właśnie tą wersję .NET, to dlaczego nie wykorzystać nowej funkcjonalności. Zatem zobaczmy krok po kroku co jest potrzebne aby ...
Architektura 3785 dni, 10 godzin, 16 minut temu 159 źrodło rozwiń
W świecie informatyki, zaprogramować można wszystko. Ponadto, każdy problem, czy zagadnienie ma tysiące rozwiązań (a może nawet tyle co programistów na świecie:)). Niektóre problemy - zagadnienia, powtarzają się na tyle często, że pewne mądre głowy opracowały gotowe sposoby, wzorce rozwiązań takich problemów. Kiedyś opisywałem już wzorzec projektowy Model View Controller. Dziś, chciałbym zaprezentować wzorzec projektowy Factory (z ang. fabryki), ułatwiający tworzenie nowych obiektów. Przykłady zaprezent...
Architektura 3787 dni, 6 godzin, 2 minuty temu 282 źrodło rozwiń
W dobie postępującej globalizacji oraz otwarcia Polski na świat, warto rozpatrzyć możliwość tworzenia aplikacji w wielu wersjach językowych. Pozwoli to z pewnością na zwiększenie potencjalnego grona odbiorców. Kiedy mamy już takie ambitne plany, pozostaje jednak kwestia doboru języka/technologii, która to zadanie zrealizuje. Ja wybrałem do tego celu C# z frameworku .NET, który w banalny sposób umożliwia tworzenie zlokalizowanych aplikacji. Jeśli nie jesteście jednak koderami tworzącymi aplikacje okienko...
Architektura 3791 dni, 6 godzin, 20 minut temu 91 źrodło rozwiń
Pierwsze relacyjne bazy danych powstały w latach ‘70 ubiegłego wieku, na długo przedtem nim języki programowania zorientowane obiektowo stały się popularne. Obecnie są standardem jeśli chodzi o mechanizm persystencji w programowaniu obiektowym. Jednak o tym, że translacja obiektowego modelu na relacyjny jest bardzo często procesem karkołomnym, nieprzyjemnym i bł...
Architektura 3803 dni, 8 godzin, 32 minuty temu 184 źrodło rozwiń
Na Codeplex w dziale Patterns & Practices pojawił się poradnik dla osób, które chciałyby przenieść swoje aplikacje na platformę Windows Azure.
Architektura 3808 dni, 22 godziny, 36 minut temu 31 źrodło rozwiń
Małe odejście od PivotViewer, poniżej mamy prosty kod (wystarczy go wkleić do aplikacji konsolowej by się uruchomił). Chciałbym wypisać (to jest ważne, nie chcę widzieć tego w UI, chcę to wypisać sobie) wszystkie operacje boxingu i unboxingu znajdujące się w tym kodzie (może to być to numer linii i typ operacji, lub sam typ operacji plus informacja w którym miejscu to następuje).
Architektura 3811 dni, 22 godziny, 58 minut temu 69 źrodło rozwiń
Drugi odcinek serii (przypominam, że na początku był odcinek 0.). Minęła pierwsza iteracja, zakończona całkiem nie małym sukcesem, bo zdążyliśmy zaimplementować wszystkie zaplanowane funkcjonalności, jednocześnie skupiając się bardziej na jakości niż na szybkości prac. A więc jakie zmiany zaszły w naszym projekcie? Przede wszystkim rozrósł się znacznie, zyskał wiele funkcjonalności, a to pociągnęło za sobą konieczność pewnych zmian i udoskonaleń w architekturze. Przypomnę, że nasza solucja jest aktualnie...
Architektura 3813 dni, 51 minut temu 64 źrodło rozwiń
Instalacja MVVM Light Toolkit Właściwie jedyne co jest niezbędne do pracy z MVVM LT, to same biblioteki w formie plików DLL, jednak aby naprawdę wygodnie korzystać z tego narzędzia dobrze jest skorzystać z małych wspomagaczy przygotowanych przez autora. Pobieramy paczkę stąd i następnie wypakowujemy to co nam potrzeba. Jest tego całkiem sporo, ponieważ przygotowane są wersje zależne od wykorzystywanej technologii i oprogramowania: binarki - biblioteki w postaci plików DLL w postaciach przygotowanych dla...
Architektura 3813 dni, 51 minut temu 413 źrodło rozwiń
Deus ex adfectus machina – menedżer stanów Skąd taki tytuł? Deus ex machina (łac.) – Bóg z maszyny adfectus (łac.) – stan Za Eurypisesem wprowadzę do Theme Festival coś, co szybko rozwiąże problem zarządzaniem grą, „aby akcja nie trwała zbyt długo” (za Wikipedią). Ten wpis poświęcę koncepcji menedżera stanów, „Boga z maszyny stanów”. O co tu chodzi? Całą grę należy wyobrazić sobie jako graf przejść między stanami. Stanem gry może być wszystko, od menu, przez okno opcji, po różne etapy rozgrywki. Przej...
Architektura 3815 dni, 12 godzin, 30 minut temu 32 źrodło rozwiń