Dziś chciałbym opisać kolejny wzorzec/mechanizm który będę używal i ma on na celu znaczne uproszczenie kodowania i eliminowanie niepotrzebnych powiązań miedzy obiektami. Event Aggregator Jak już wcześniej wspomniałem ten wzorzec/mechanizm ma na celu eliminowanie niepotrzebnych powiązań miedzy obiektami. Stanowi on pojedyncze źródło dla wielu obiektów. W najprostszej formie wygląda to tak że rejestrujemy klasy które dotyczą konkretnego zdarzenia do naszego event aggregatora. Te klasy nazywają się uchwyt...
Architektura 3102 dni, 9 godzin, 12 minut temu 228 rozwiń
PasswordBox jak łatwo się domyślić jest standardową kontrolką WPF dzięki której użytkownik otrzymuje zamaskowane pole tekstowe do wpisywanie haseł itp. Kontrolka spisuje się wyśmienicie do czasu gdy przy budowaniu aplikacji nie wykorzystywany jest wzorzec MVVM (i inne pokrewne Model-View-* oparte o bindowaniu). Powód jest bardzo prosty. Ze względów bezpieczeństwa właściwość Password kontrolki nie jest uznawana jako Dependency Property co uniemożliwia bindowanie. Panowie z MS dokonali akurat takiego wybor...
Autor: Jakiś czas temu napisałem krótki wstęp do mechanizmów zwanych kontrolerami. Pora omówić je troszkę szerzej, gdyż zacząłem wdrażać w projekt tzw. operacje CRUD (ang. Create, Read, Update, Delete), a do ich zrozumienia niezbędna jest większa wiedza dotycząca klasy Controller.
Dzisiaj opiszę sposób na przewidywanie kursów walut. Kursy średnie NBP znajdują się na stronie http://rss.nbp.pl/kursy/TabelaA.xml. Na nowy symulator z kilkoma drobnymi poprawkami tutaj: http://hopfieldsimulator.codeplex.com/releases/view/50771. Po zainstalowaniu tej wersji możemy uruchomić symulator i przejść na zakładkę Predictor. Następnie możemy wprowadzić parametry pracy symulatora np. takie: d = 50000, eta = 0.7, n1 = 5, n2 =...
W dzisiejszym wpisie chciałbym rozwinąć temat, który zacząłem we wpisie na temat reguły prawej ręki (lub reguły zegara). Do napisania tego wpisu zainspirował mnie komentarz pod wspomnianym wpisem: „Bardzo ciekawe opisanie backface cullingu, nigdy bym nie wpadł by tak to wyjaśnić :)” Otóż moim celem nie było wtedy opisanie „backface cullingu”, a jedynie wskazanie, w jakiej kolejności podawać krawędzie, by płaszczyzna na scenie była widoczna. Zobaczmy jednak, cóż to jest ten „backface culling”?
Dzisiaj opiszę sposób, jaki zastosowałem by przechwycić pierwszy wyjątek. Czasem w aplikacji czegoś nie przewidzimy i wyleci nam na wyjątku, dobrze wtedy zalogować ten fakt w jakimś pliku tekstowym lub e dzienniku systemu Windows. Należy też przekazać informację użytkownikowi, aby mógł w razie problemu skopiować komunikat z wyjątku i stos wywołań abyśmy wiedzieli gdzie aplikacja wyleciała. Nowy instalator z tą funkcjonalnoś...
W poprzednich postach pokazałem jak tworzyć asynchroniczne formularze. Nie zawsze jednak chcemy wywoływać takie zapytania za pomocą przycisku Submit. Czasami lepiej użyć linku tekstowego lub po prostu obrazka. Ajaxowy link tekstowy bardzo łatwo utworzyć za pomocą metody ActionLink:
MSChart jest biblioteką do generowania diagramów zarówno w aplikacjach ASP.NET jak i Windows Forms. Tutaj znajdziecie maaaasę przkładów jak można wykorzystać kontrolki i co za pomocą nich można zrobić. Ja nie bawiłem się kontrolkami dla Windows Forms – nawet nie wiem czy się różnią od kontrolek dla ASP.NET. Post dotyczy stricte wykorzystania MSCharts w ASP.NET.
XMPP, Real Time Web i … .NET Czym jest XMPP ? Extensible Messaging and Presence Protocol a.ka. Jabber to otwarty protokół oparty o XML pozwalający na wymianę informacji w czasie (prawie)rzeczywistym.
Architektura 3104 dni, 5 godzin, 39 minut temu 33 rozwiń
Autor: Jakiś czas temu przeprosiłem się z frameworkiem MsTest i zacząłem na powrót pisać testy z jego wykorzystaniem. Przedtem korzystałem z NUnit, jednak doszedłem do wniosku, że do moich potrzeb wystarczy framework dostarczony w komplecie z Visual Studio. Nie jestem zealotem jeżeli chodzi o testy jednostkowe, piszę proste, wybiórcze testy, którymi na pewno nie pokrywam 100% kodu. Czytałem na kilku stronach narzekania na framework MsTest. Jednak podchodziłem do nich dość sceptycznie. Wiadomo, pro...
Zastanawiałeś się kiedyś jak działa czat w gmail’u lub na facebook’u, wysyłanie i odbieranie wiadomości w czasie rzeczywistym, zmiany statusu znajomych widoczne niemalże od razu itd?. Zasada działania tego typu rozwiązań opiera się o technikę zwaną COMET, znaną też pod nazwami PUSH AJAX i REVERSE AJAX. Zacznijmy jednak od początku. Przyjrzymy się teraz jak wygląda in...
Przeklikaj swój świat! – kontrola zdarzeń myszki Myszka – z pozoru urządzenie, które bez ludzkiej ręki nie jest w stanie nic zrobić. Błąd! Istnieje możliwość nadania jej “życia” poprzez wywoływanie odpowiednich zdarzeń z kodu aplikacji. Aby to osiągnąć przydatne może być wykorzystanie poniższego helpera, a właściwie szablonu helpera, który można w łatwy sposób rozszerzyć o kolejne metody.
Autor: W niniejszym post'cie chciałbym wspomnieć o ważnej rzeczy, jeżeli chodzi o WPF i grafikę 3D. O mały włos o niej bym zapomniał, w poprzednich wpisach (1, 2) nic na ten temat nie wspominałam, a mianowicie chodzi mi o „Regułę prawej dłoni”! A cóż tu więc chodzi? Mianowicie chodzi tutaj o to, że trójkąty należące do sceny „mają stronę widoczną i niewidoczną”. Podając kolejne punkty trójkąta, który chcemy wyświetlić, musimy podać je w takiej kolejności, by normalna dla płaszczyzny, którą te punkty ...
Witam, w zeszłym tygodniu dodałem do symulatora Predykator, w celu sprawdzenia jak działa należy przejść pobrać nowy instalator dostępny tutaj: http://hopfieldsimulator.codeplex.com/releases/view/50597 Po odinstalowaniu poprzedniej wersji należy zainstalować tą. Na pulpicie pojawi się skrót do aplikacji „Hopfield Simulator”. Trzeba ją uruchomić i przejść na zakładkę „Predictor” następnie możemy określić parametry dla przykładu niech będą takie: d = 30, eta = 0.7, n1 = 6 i n2 = 20.P...
Kurcze nie lubię słów inkrementacja/dekrementacja po polsku, zresztą chyba naprawdę nie istnieją w słowniku języka polskiego, jednak ich znaczenie chyba każdy z nas rozumie, chodzi oczywiście o operatory ++ i -- dostępne w C# (i nie tylko).
Dziś chciałbym zaprezentować zastosowanie sieci Hopfielda do rozpoznawania polskich banknotów. Można zastosować takie rozwiązanie w automacie przyjmującym banknoty w celu odgadnięcia właściwego nominału banknotu. Oczywiście zapamiętanie obrazka całego banknotu nie jest dobrym pomysłem gdyż w przyzwoitej rozdzielczości obraz będzie zbyt duży do zapamiętania, poza tym, banknoty mają różną wielkość, postanowiłem pokazać przykład z zapamiętaniem prawego górnego rogu i rozpoznawaniem ...
Programowanie rozproszone 3108 dni, 18 godzin, 36 minut temu 164 rozwiń
Ten wpis jest kontynuacją tematyki związanej z grafiką trójwymiarową opartej o WPF. Zostanie w nim pokazane jak przy pomocy kodu napisanego w C# narysować proste wielościany.Niniejszy wpis poza prezentacją różnych i niezależnych od konkretnego wykorzystania treści stanowi również opis pewnych zagadnień związanych z projektem Mesh Diagram 3D.Informacje dotyczące projektu oznaczone są etykietą MeshDiagram3D.Poprzedni wypis został zakończony na prezentacji najprostszego obiektu w scenie – czyli trójkąta. Tr...
Podczas zapoznawania się z ASP.NET .oraz MVC2 trafiłem na coś, co jest bardzo denerwujące. Mianowicie strony aspx nie są kompilowane podczas kompilacji samego projektu. Jaki jest tego skutek? Dodatkowa robota w poszukiwaniu błędów wynikających z literówek. A zatem zobaczmy zmienić ten żmudny proces poprzez włączenie w visual studio sprawdzania widoków podczas build'a.
Podobnie jak w czystym ASP.NET, framework ASP.NET MVC pozwala na wysyłanie formularzy w tle. Załóżmy, że chcemy napisać shoutbox’a, w którym wysłanie wiadomości na serwer nie wymagałoby ponownego przeładowania całej strony. Zamiast definiowania formularza za pomocą Html.BeginForm, musimy skorzystać z Ajax.BeginForm:<%using(Ajax.BeginForm("AddMessage",new AjaxOptions(){ OnComplete="OnFinish", UpdateTargetId="messages"})) { %>// treść<%}%> Pierwszy parametr to nazwa akcji. W drugim parametrze prz...
Dzisiaj bardzo króciutki post. Do tabeli dodałem computed column (wartość liczona na podstawie innych kolumn). Formuła obliczająca wartość wyglądała następująco:VotesFor / TotalVoteCount Chciałem po prostu dodać kolumnę, która liczy procent oddanych głosów aby potem móc stworzyć indeks po tej kolumnie. W przypadku jednak gdy TotalVoteCount wynosi 0 pojawił się wyjątek Divide by Zero. Na szczęście funkcja NULLIF rozwiązała problem:VotesFor / NULLIF(TotalVoteCount,0) W sytuacji gdy TotalVoteCount rów...
Bazy danych i XML 3111 dni, 2 godziny, 13 minut temu 69 rozwiń
Polecamy
Nadchodzące wydarzenia
Najaktywniejsi

