Wielu projektantów systemów informatycznych dedykowanych na platformę .NET odczuwa drobny dyskomfort spowodowany brakiem zintegrowanych i jednocześnie zaawansowanych narzędzi wspomagających modelowanie w UML w środowisku Visual Studio 2005 lub Visual Studio 2008. W środowisku Visual Studio 2003 można było korzystać z Rational .XDE pluginu, który integrował się z tym śtrodowiskiem i umożliwiał budowę modeli UML prawie tak samo jak w Rational Rose. Pełna integracja z VS pozwalała na inżynierię wstecz inzyn...
Architektura 4614 dni, 12 godzin, 17 minut temu 22 źrodło rozwiń
Wskazania Composite Application Guidance for WPF and Silverlight, znane również pod nazwą Prism v2, są już dostępne od kilku miesięcy. Jednym z obszarów, w których Prism zapewnia wsparcie jest możliwość tworzenia swojej aplikacji zarówno dla Windows Presentation Foundation (WPF), jak i dla Silverlight. Ciekawe, że początkowo ta część naszych wskazań spotkała się ze sporym oporem. Dlaczego skupialiśmy się na wieloplatformowości przez pierwsze kilka iteracji projektu, gdy mogliśmy poświęcić swój czas na ud...
Architektura 4615 dni, 16 godzin, 10 minut temu 109 źrodło rozwiń
Adapter jest kolejnym z wzorców projektowych, które postanowiłem sukcesywnie omawiać na swoim blogu. Wszystkich zainteresowanych wzorcami projektowymi (dla C#) zapraszam do śledzenia zmian -zapewniam, że będą się tutaj pojawiały kolejno wszystkie znane wzorce projektowe.
Architektura 4626 dni, 2 godziny, 34 minuty temu 223 źrodło rozwiń
Zgodnie z zasadami programowania obiektowego pola klas nie powinny być bezpośrednio dostępne na zewnątrz. Należy jest zawsze opakowywać w akcesory: właściwości lub krótkie metody typu get i set. Z nich właśnie korzysta potem kod zewnętrzny, dzięki czemu nie może on (w dobrze napisanej klasie) niczego zepsuć poprzez - chociażby - ustawienie jakiegoś pola na nieprzewidzianą wartość.
Architektura 4626 dni, 18 godzin, 11 minut temu 42 źrodło rozwiń
Kontrowersyjny esej o kodzie czytelnym, część 3: język w kodzie Wybierz jeden język nazewnictwa elementów kodu w projekcie lub zespole. Całość kodu w ramach jednego projektu lub tworzonego przez jeden zespół powinna stosować jeden i ten sam język nazewnictwa elementów kodu (zmiennych, klas itp.). Dlaczego? Aby osoba czytająca kod, nawigując od klasy do klasy, nie musiała przestawiać swojego sposobu myślenia. Jak wszyscy programiści doskonale wiedzą, przełączanie kontekstu jest kosztowne. Należy go więc ...
Architektura 4626 dni, 19 godzin, 49 minut temu 43 źrodło rozwiń
Mówiłem już, że jestem leniem? Ale to nie dlatego tak długo nie ukazywała się trzecia część serii o MVP. Końcówka wakacji i początek roku były trochę zwariowane i brakowało mi nieco czasu. Pragnąc nadrobić postanowiłem dziś choćby nie wiem co napisać kolejną część. Postaram się opisać dwa elementy bez których aplikacja asp.net nie może istnieć. Jest to walidacja oraz zdarzenia. Choć każdy kto czyta ten artykuł prawdopodobnie w...
Architektura 4627 dni, 19 godzin, 6 minut temu 92 źrodło rozwiń
Klasa TaskScheduler. Poza klasami TaskFactory i TaskScheduler jest podstawowym elementem nowej przestrzeni nazw Tasks. Cytując MSDN, jest punktem rozszerzenia logiki kolejkowania zadań (stąd klasa TaskScheduler jest abstrakcyjna). Domyślna instancja (zwracana przez statyczną własność TaskScheduler.Current) jest typu ThreadPoolTaskScheduler – wykorzystuje nową implementację klasy ThreadPool opartą o „kradzież” pracy. Z nazwy klasy można wyczytać co kryje ta implementacja – korzysta z ThreadPool do kolejko...
Architektura 4631 dni, 13 godzin, 57 minut temu 62 źrodło rozwiń
Nie spodziewajcie się długiego postu, krótko i na temat. Ostatnio w moje ręce wpadł projekt, którego jak kod zobaczyłem to nap oczątku złapałem się za głowę a potem przez pół dnia się z niego śmiałem. Nawet nie chodzi o to, że design był zły, choć do najlepszych on nie należy ale ten temat pominę. Chodzi raczej o nazewnictwo użyte w projekcie.
Architektura 4632 dni, 21 godzin, 36 minut temu 207 źrodło rozwiń
W poprzedniej części wprowadzającej zdradziłem temat, a więc zajmiemy się kontenerem IoC. Napisałem także, że z frameworka Sping.Net można skorzystać kompleksowo lub użyć tylko jego wybranych elementów. Z czego byśmy jednak nie skorzystali to potrzebna nam będzie podstawowa wiedza o skonfigurowaniu Springa i o kontene...
Architektura 4633 dni, 13 godzin, 6 minut temu 423 źrodło rozwiń
17 grudzień 2008Ugryźć Spring.Net – (cz.0) WprowadzenieZaszufladkowany do: Ugryźć Spring.Net — Tagi:.NET, ADO.NET, C#, Framework, NHibernate, Spring, Spring.NET — Beniamin Zaborski @ 06:59 To pierwszy artykuł z serii na moim blogu poświęcony Spring.NET. Jak na pierwszy przystało należy się kilka słów wstępu. Co to takiego właściwie jest ten Spring.Net? Spring.Net jest frameworkiem wspomagającym budowanie aplikacji enterprise w środowisku .NET. Dostarcza kompleksowe rozwiązania do budowania aplikacji ...
Architektura 4634 dni, 5 godzin, 8 minut temu 188 źrodło rozwiń
Encje Encje są prawdopodobnie najważniejszymi elementami modelu domeny. Reprezentują najistotniejsze obiekty domeny problemu, czyli te, które mają własną tożsamość.
Architektura 4635 dni, 11 godzin, 53 minuty temu 48 źrodło rozwiń
Popełniłem już ten artykuł dwa dni temu, jednak doszedłem do wniosku, iż był on zupełnie bez sensu. W związku z tym postanowiłem przepisać go na nowo. I oto jest – do dzieła więc.
Architektura 4635 dni, 11 godzin, 53 minuty temu 74 źrodło rozwiń
Autor: Podczas ostatniej konferencji MTS opowiadałem m.in. o behawiorach, czyli koncepcji pozwalającej jeszcze wyraźniej zaznaczyć linię podziału kompetencji pomiędzy programistami, a projektantami interfejsu. Zanim przejdziemy do części praktycznej mała dygresja językowa. Długo zastanawiałem się, jaki będzie najwłaściwszy odpowiednik angielskiego słowa behaviors. Trywialną z pozoru sprawę komplikuje zawikłana taksonomia samej technologii, na którą oprócz “zachowań” składają się również pary “akcja/w...
Architektura 4635 dni, 18 godzin, 41 minut temu 37 źrodło rozwiń
Cykl autorstwa Macieja Aniserowicza omawiający pisanie testów jednostkowych z wykorzystaniem mocków przy użyciu biblioteki Rhino Mocks.
Architektura 4637 dni, 3 godziny, 23 minuty temu 92 źrodło rozwiń
Pewnie nie raz staliście przed sytuacją, w której jakaś z funkcji spowodować może powstanie wyjątku, którego wystąpienie trzeba zalogować i przerzucić go dalej (re-throw), aby aplikacja zajęła się nim jak należy. Jednocześnie idealnie, gdy wyjątek zawierał będzie jak najwięcej informacji. Zalicza się do nich przyjaciel każdego programisty – StackTrace.
Architektura 4637 dni, 3 godziny, 23 minuty temu 73 źrodło rozwiń
Autor: Bardzo szybko przywykłem do idei "domain events" Udiego i nie spodziewałem się napotkania w kodzie DDDSample innego rozwiązania. Jakież było więc moje zdziwienie, gdy zdarzenia (z natury) domenowe odnalazłem nie na poziomie modelu domeny, ale na poziomie warstwy aplikacyjnej. Postanowiłem przejrzeć się bliżej temu tematowi (zamiast na ślepo kopiować Javowe rozwiązanie).
Architektura 4638 dni, 4 godziny, 50 minut temu 80 źrodło rozwiń
Autor: Przypadkiem trafiłem na fajny cheetsheet zawierający zestawienie podstawowych wzorców projektowych, może się komuś przyda :)
Architektura 4638 dni, 19 godzin, 28 minut temu 363 źrodło rozwiń
Dzisiaj odrobina odnośnie dostosowywania serializacji do własnych potrzeb. Na pierwszy ogień interfejs ISerializable, pozwalający na ‘wrzucenie’ do serializowanego strumienia tego co chcemy i pod jaką nazwą chcemy.
Architektura 4650 dni, 14 godzin, 21 minut temu 102 źrodło rozwiń
Dzisiaj kolejna porcja nadrabiania zaległości z podstawowych podstaw(bo jak inaczej to idzie nazwać?), tym razem serializacja.
Architektura 4655 dni, 13 godzin, 1 minutę temu 150 źrodło rozwiń
Autor: W przedostatnim wpisie, poruszyłem temat napisania własnego walidatora do daty. Dziś napotkałem na podobny problem – walidacja kontrokli CheckBoxList pod kątem zaznaczenia przynajmniej jednej wartości. Jakieś było moje zaskoczenie ;-) gdy okazało się, że żadna z domyślnych kontrolek walidatorów nie potrafi tego niezmiernie skomplikowanego zadania wykonać ;-) Oczywiście można to załatwić banalnie: CustomValidator i odpowiednia prosta funkcja. Gdzie jednak ponowne wykorzystanie kodu – tak przec...
Architektura 4655 dni, 13 godzin, 1 minutę temu 109 źrodło rozwiń