Korzystając z wzorca MVVM cały czas skupiamy się na zachowaniu koncepcji czyli wszelkiego rodzaju logika biznesowa udostępniana jest widokowi poprzez ViewModel. Z drugiej strony nasz widok (View) powinien składać się tylko ze znaczników XAML. W sieci można znaleźć mnóstwo video tutoriali gdzie oglądając odnosimy wrażenie, że punktem honoru prelegenta jest pokazanie w pełni działającej aplikacji przy zachowaniu czystego CodeBehind. Ostatnio jednak uświadomiłem sobie (a raczej wymaganie biznesowe postaw...
Strona głównaUżytkownik
paduda | użytkownik
Architektura 5210 dni, 11 godzin, 27 minut temu 170 źrodło rozwiń
Dziś 13. września - 256. dzień roku. Święto wszystkich programistów i programistek. Zatem wszystkiego najlepszego bracia i siostry programistki! Mniej błędów w programach i więcej ciekawych zadań i wyzwań na nadchodzące przyszłe dni!
Dość często natyka się człowiek (bądź ktokolwiek inny) całkiem niechcący na taki czy inny kawałek internetu mający uchodzić za ZABAWNY. Zabawność, oceniana w skali 1-10, mimo wysiłku autorów zwykle oscyluje jak dla mnie w granicach 3-4. Poniżej przedstawiam sześć ewenementów bezapelacyjnie ocenionych przeze mnie na 10/10, które w ciągu ostatnich kilku miesięcy spowodowały zetknięcie się kącików mych ust w centralnym punkcie tyłu głowy. Większość z was pewnie je zna. Wszystkie są świetne. Kolejność losowa.
Do czego służy LinqToXml? Do prostego czytania XML-a. Możemy stosować składnię Linq i czytać w ten sposób pliki xml-owe. Ładnie i miło. Czyż nie jest to ładne? Zamiast (o zgrozo) ręcznie parsować plik lub uczyć się XPath-a można zaprzęgnąć Linq. Problem jaki przy tym wyszedł to taki paskudny komunikat: Could not find an implementation of the query pattern for source type ‘System.Collections.Generic.IEnumerable
Bazy danych i XML 5211 dni, 12 godzin, 18 minut temu 19 źrodło rozwiń
Na pierwszy ogień poszło wyświetlanie map googla. Ponieważ DesktopInfo z założenia ma wyświetlać informacje na pulpicie komputera to nie ma mowy o gotowych rozwiązaniach w js czy innych. Na szczęście/nieszczęście jest kontrolka GMap która pozwala na wyświetlanie map googla i kilku innych providerów. Dostępna jest dla wersji winforms oraz dla WPF-a właśnie...
Opisując implementację wzorca repozytorium w warstwie dostępu do danych, zwróciłem uwagę na metodę GetByExpression, pozwalającej na pobranie obiektów spełniających dowolne warunki. Postanowiłem udostępnić użytkownikowi filtrowanie klientów po imieniu, nazwisku i nazwie firmy, a produktów po nazwie i cenie netto (przez zdefiniowanie ceny minimalnej i maksymalnej).
Problem oprogramowania, które ulega degradacji dotyczy w głównej mierze projektów, w których zapomina się, iż żyjemy w świecie zmieniających się wymagań, a naszym zadaniem jest tworzenie oprogramowania, które będzie potrafiło te zmiany przetrwać. Tak jest! Wymagania zawsze się zmieniają więc powinno to być jedno z priorytetowych założeń każdego projektu. Będąc świadomym tego stanu rzeczy, należy każdorazowo stosować określony zbiór praktyk, przyczyniających się do uelastycznienia projektu.
Architektura 5212 dni, 11 godzin, 3 minuty temu 126 źrodło rozwiń
Zacznę kontrowersyjnie. Lubię jak aplikacja nie działa, tak jak powinna. To znaczy - niekoniecznie lubię sam fakt niepoprawnego działania, ale dzięki temu mam możliwość odpalenia debugger’a (lub innego użytecznego narzędzia – głównie SysInternals), aby dowiedzieć się dlaczego i spróbować to naprawić. Ostatniego czasu ciekawych wrażeń dostarcza(ło) mi IE8. Pewnego dnia, bez powodu, IE na moim laptopie zaczął raczyć mnie niniejszym błędem jeszcze nawet przed tym jak się dobrze uruchomił:
Często zdarza się, że mamy dwie takie same bazy: jedną lokalną do testów oraz drugą produkcyjną, umieszczoną na zdalnym hoście. Rozwijając aplikację, naturalne jest, że będziemy zmuszeni modyfikować bazę danych (dodanie nowych tabel, kolumn itp.). Wgrywając nową wersję na serwer łatwo zapomnieć o dokonanych zmianach na bazie. Na szczęście istnieją programy, które pozwolą nam zsynchronizować obydwie struktury. Jednym z nich jest dbForge Schema Compare for SQL Server. Po uruchomieniu programu i wybraniu op...
Bazy danych i XML 5214 dni, 12 godzin, 14 minut temu 66 źrodło rozwiń
Nie poruszam podstaw tworzenia rozszerzeń zaś opisuje jedynie w jaki sposób wykorzystać dostępne mechanizmy do pobrania informacji która nas interesuje. Wszystkich zainteresowanych pisaniem rozszerzeń pod VS 2010 zapraszam na strony MSDN, które naprawdę dobrze tłumaczą o co w tym wszystkim biega. Nowy system rozszerzeń VS 2010 jest naprawdę przyjemny nie tylko pod względem możliwości takich jak chociażby zmiany sposobu wyświetlania komentarzy w kodzie ale także pod względem jego oprogramowania. Wszystko...
Dokumentacja techniczna może przybrać różnoraką formę - od wysokopoziomowego przeglądu, przez instrukcje krok po kroku, aż po automatycznie generowaną dokumentację API. Niestety, żaden format nie jest satysfakcjonujący dla wszystkich użytkowników; różnice w sposobie uczenia się ludzi są ogromne, a więc dobrze udokumentowane projekty muszą dostarczać dokumentacji pod wieloma postaciami.
W sumie trochę nie pisałem, więc postanowiłem teraz napisać kilka postów o Windows Phone 7. Sporą część sierpnia bawiłem się wersją Beta, więc z pewnością dysponuję materiałem, z którego coś na post się nada. Różne kawałki kodu pisane, jakie powstały dla wypróbowania różnych funkcjonalności pogrupowałem sobie na 3 części. Zacznijmy dziś od … końca, czyli od udostępnionych funkcjonalności od wydania Beta, w tym sporo takich, które można zobaczyć w działaniu jedynie na fizycznym telefonie albo … odblokowa...
Witam dziś chciałbym nieco przybliżyć globalne filtry z MvcExtensions i jedno z zastosowań które będzie u mnie w systemie działo za pomocą tego mechanizmu. Prosty problem: Chcemy łatwo mieć możliwość na bieżąco uaktualniać informacje o ostatnich czasie kiedy user przeglądał stronę bądź zapisywać wykonane przez niego akcje. Gdy pierwszy raz podchodziłem do tego problemu przychodziły mi 2 rozwiązania: -Pierwsze: Stworzyć BaseController z którego będą dziedziczyły wszystkie inne a który będzie posiadał met...
Autor: Bawiąc się Silverlightem bardzo polubiłem narzędzie Expression Blend. Pomimo braków w talencie graficznym dzięki temu programowi potrafię coś zrobić z UI co wywołuje we mnie emocje typu WOW! Choć daleko mi do perfekcji to nie ukrywam, że Blend bardzo usprawnia pracę podczas tworzenia aplikacji Silverlight. Ponieważ wzorzec MVVM w aplikacjach Silverlight jest na topie, warto byłoby zapewnić mu współpracę z Blend’em. Oczywiście miejscem najbardziej do tego nadającym się jest ViewModel. To właśni...
Silverlight 5214 dni, 1 godzinę, 2 minuty temu 102 źrodło rozwiń
Git został napisany przez Linusa Torvaldsa dla Linuksa(trochę o historii powstania tego oprogramowania można poczytać na polskiej i angielskiej(tutaj „trochę” więcej) Wikipedii), więc raczej nie jest wspierany na systemie MS. Do wyboru mamy dwa(znane mi) rozwiązania: msysGit i Cygwin. Do tego dochodzi TortoiseGit, który integruje Gita z eksploratorem Windows i jest portem TortoiseSVN. Ja, jako iż nie przepadam za Cygwinem, używam msysGit i to na podstawie jego opiszę dziś działanie z Gitem. Darowałem sob...
Jak się okazuje, elementy używane w czasie tworzenia aplikacji pod OpenNETCF.IoC niewiele różnią się od tradycyjnych elementów używanych w aplikacjach opartych na Smart Client Software Factories ( na szczęście nie ma tu ‘automatów’ generujących tony kodu jak z karabinu maszynowego). W końcu OpenNETCF.IoC bazuje na MCSF, które z kolei bazowało na SCSF. Więc jeżeli ktoś wcześniej ich używał, powinien mieć zadanie ułatwione Generalnie, OpenNETCF.IoC pozwalają na stworzenie aplikacji opartej o moduły, któr...
W poprzedniej części dotyczącej obiektu SqlDataAdapter przedstawiłem ogólny zarys tego, czym jest ten obiekt, jak go utworzyć oraz jak za jego pomocą pobrać dane z bazy. Omówiłem też kilka jego podstawowych cech. W niniejszym poście postaram się przedstawić podstawowe zastosowanie obiektu typu SqlDataAdapter. Zacznijmy od przypomnienia tego, jak to było na początku. Do pobrania danych z bazy wykorzystywany...
Bazy danych i XML 5217 dni, 2 godziny temu 52 źrodło rozwiń
Autor: Do sprzątania użyłem StyleCop (http://stylecop.codeplex.com/), a do poprawy potencjalnych błędów analizatora FxCop (http://code.msdn.microsoft.com/codeanalysis/Release/ProjectReleases.aspx?ReleaseId=553). Po pobraniu z Internetu zainstalowaniu narzędzi, aby wykonać analizę tego, co jest do naprawy należy kliknąć prawym przyciskiem myszy na wybranym projekcie i wybrać opcję Style Analisis dla StyleCop, natomiast dla FxCop jest opcja Run Code Analysis. Narzędzia działają tak, że generują w oknie Er...
Nie jest to takie do końca intuicyjne :) ale magicznie proste. Z przykładowego plik..
Architektura trójwarstwowa jest chyba najlepiej znaną implementacją wzorca warstw w architekturze aplikacji. Z mojego doświadczenia wynika jednak, że znajomość ta zwykle jest bardzo powierzchowna i nie sięga wgłąb (warstw;-)). Porzućmy więc na chwilę CQRS, DDD i inne fajne akronimy i wróćmy “do korzeni”. Co to jest architektura trójwarstwowa?Definicja Sama jej nazwa w języku polskim jest problematyczna. Angielska terminologia rozróżnia dwa ich rodzaje: tiers to wa...
Architektura 5217 dni, 8 godzin, 25 minut temu 164 źrodło rozwiń