Pierwszy wpis w nowym roku 2010 będzie dotyczył zagadnienia uruchamiania aplikacji .Net'owych na maszynach 64 bitowy. W większości przypadków nie ma z tym żadnego problemu. W końcu IL jest przenośny. Problemy zaczynają się kiedy chcemy wykorzystać w swojej aplikacji biblioteki 32 bitowe. Niestety ale nie jest możliwe aby proces 64 bitowy używał bibliotek 32 bitowych i na odwrót. Przeważnie nie mamy również możliwości przekompilowania biblioteki, z której korzystamy. Ja spotkałem się z tym problem urucham...
Architektura 5436 dni, 20 godzin, 34 minuty temu 79 źrodło rozwiń
Autor: Czasem tak się dzieje, że czytając swój własny kod pierwszy raz od kilku miesięcy mamy problem z jego zrozumieniem, zwłaszcza jeżeli nie komentujemy go w odpowiedni sposób. Ale nie jest to jedyna przyczyna problemu. Ostatnio analizując stare projekty doszedłem do wniosku, że istnieje w nich mnóstwo kodu zaciemniającego rzeczywistą logikę działania. Mam tu na myśli dziesiątki wyrażeń postaci if (something != null) i podobnych, które bardzo skutecznie odciągają uwagę od tego co naprawdę nas interesu...
Architektura 5438 dni, 17 godzin, 26 minut temu 149 źrodło rozwiń
Powtarzanie kodu w kilku miejscach zwykle jest sygnałem zaniedbania i nie powinno mieć miejsca. Nawet (a może: w szczególności!) gdy kod ten jest prosty, głupi, niewymagający myślenia i będący efektem tzw. clipboard inheritance (ctrl+c, ctrl+v). Tyczy się to również konstruktorów klas. Tą część kodu łatwo jest przegapić, bo wszelakie ułatwiacze umożliwiają automatyczne ich wygenerowanie. A co jeśli mamy ich kilka? Poniższy przykład obrazuje stan, do którego NIE CHCEMY doprowadzić...
Architektura 5451 dni, 9 godzin, 48 minut temu 92 źrodło rozwiń
"Bezpieczeństwo w WCF" - pojęcie takie wydaje się oklepane i opisane na wszelkie możliwe sposoby. Tyle materiałów, tyle blogów, artykułów, książek...
Architektura 5463 dni, 11 godzin, 9 minut temu 123 źrodło rozwiń
Projektanci WCF zostawili w swoim produkcie bardzo dużo półprzymkniętych furtek czekających tylko na odkrycie i wykorzystanie ich potencjału. Jednym z takich czarodziejskich otworów do przyjemnego, różowego, miękkiego wnętrza WCF jest infrastruktura Behaviors (więcej o, między innymi, nich, na przykład w artykule "Extending WCF with Custom Behaviors"). Z ich pomocą można osiągnąć baaardzo wiele, między innymi: w niesamowicie elegancki sposób zebrać w jednym miejscu wszystkie błędy wygenerowane przez nasz...
Architektura 5465 dni, 12 godzin, 13 minut temu 95 źrodło rozwiń
Re: NHibernateStarter... Czyli nawiązanie do świetnego posta Procent-a na temat jego sposobu budowy aplikacji. Poniżej zamieszczam moje aktualne poglądy na ten temat. Zieloną czcionką wyróżniłem fragmenty porównujące oba rozwiązania. O czym w ogóle mowaZawsze na początku należy sobie zadań takie pytanie. O jakich w ogóle aplikacjach mówimy? Procent opisywał przypadek nietrywialnej aplikacji biznesowej (OLTP), więc i ja posłużę się takową. Termin "nietrywialny" oznacza dla mnie znaczący stopień skomplikow...
Architektura 5470 dni, 20 godzin, 6 minut temu 71 źrodło rozwiń
Autor: Zainspirowany jednym z postów na blogu Maciej Aniserowicza, postanowiłem bliżej przyjrzeć się zagadnieniu mapowania object-to-object. Wydaje się to być idealny lek na „głupie” mapowanie property poprzez przepisywanie każdego po kolei. A i owszem jest. Szczególnie przydatne przy mapowaniu obiektów domeny do obiektów DTO. Nie wiem ilu z Was robi/robiło t...
Architektura 5491 dni, 19 godzin, 56 minut temu 55 źrodło rozwiń
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 5502 dni, 4 godziny, 55 minut temu 25 ź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 5503 dni, 8 godzin, 48 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 5513 dni, 19 godzin, 12 minut temu 224 ź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 5514 dni, 10 godzin, 49 minut temu 43 ź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 5514 dni, 12 godzin, 27 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 5515 dni, 11 godzin, 44 minuty temu 93 ź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 5519 dni, 6 godzin, 35 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 5520 dni, 14 godzin, 14 minut temu 212 ź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 5521 dni, 5 godzin, 44 minuty temu 424 ź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 5521 dni, 21 godzin, 46 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 5523 dni, 4 godziny, 31 minut 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 5523 dni, 4 godziny, 31 minut 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 5523 dni, 11 godzin, 19 minut temu 37 źrodło rozwiń