Ostatnio poznaję kontener DI Autofac i baaardzo mi się on podoba - nie tylko nazwa, funkcjonalność także. Ten post rozpoczyna paczkę kilku ciekawych (mam nadzieję:) ) postów pokazujących, jak przy pomocy Autofac zbudować "samoskładającą się" aplikację. Dzisiaj na dobry początek wrócimy do koncepcji, którą zerżnąłem od Udiego a przedstawiłem w poście Application Events (tam tez więcej linków w temacie samych zdarzeń). W opisanym przeze mnie sposobie mechanizm ten wymagał ręcznej rejestracji każd...
[More]
Właśnie wróciłem z trzeciego w swojej karierze fana koncertu Julii Marcell. O poprzednich pisałem tu i tu. Z ostatnich 60 godzin tylko 6 dane mi było przeznaczyć na największe marnotrawstwo czasu wymyślone przez naturę, czyli sen. Niestety nie mam więc siły na literackie wygibasy. Tym razem zatem krótko i treściwie: koncert miał miejsce w Skwerze - filii Centrum Artystycznego Fabryki Trzciny; bardzo przyjemne miejsce z klimatem odpowiednim dla omawianego wydarzenia wrażenie ogólne - nies...
[More]
Data końca projektu jest dla freelancera bardzo ważna. To dzień, w którym może świętować swój, bądź co bądź, sukces. To dzień, po którym może zacząć czytać nową książkę. Dzień, po którym wreszcie może pograć na komputerze. W oczekiwaniu na zapłatę wyjść na browar czy do kina. Albo planować kolejny projekt. Ostatni dzień kawowo-redbullowo-bezsennego maratonu. Czy wiąże się to z możliwością wykasowania kodu, wycięcia z pamięci ostatnich tygodni, całkowitą wolnością i pełnym relaksem? Niekonieczni...
[More]
Może nas czasami najść ochota na nazwanie jakieś zmiennej czy klasy słowem kluczowym, zarezerwowanym w C#. Standardowa deklaracja, taka jak ta: 1: public class class
2: {
3:
4: }
zakończy sie błędem kompilacji.
Rozwiązaniem problemu jest wstawienie małpy przed danym identyfikatorem... i już możemy nazywać wszystko jak nam się żywnie podoba:
1: public class @class
2: {
3:
4: }
Pod jednym z moich ostatnich postów pojawił się komentarz zawierający m.in. taką treść: "Chyba potrzebuję mentora, który mógłby rzucić temat, a następnie sprawdzić jego realizację. Czy znajdzie się jakiś chętny?
(...) nauka przez fun tworzenia. Ale czy to aby dobra droga?" Za mentora się bynajmniej nie uważam, ale pomyślałem - co tam, może być ciekawe doświadczenie. Kilka miesięcy temu podobny tekst wyczytałem na forum CodeGuru - wówczas też zgłosiłem się na ochotnika do takiej roli...
[More]
W ubiegłym tygodniu odbyła się w Las Vegas wielka coroczna konferencja MIX. Mój ziom JJ miał okazję znajdować się właśnie tam już drugi rok z rzędu. Nasze zeszłotygodniowe konwersacje skłoniły mnie do poważniejszego zastanowienia się nad konferencjami programistycznymi... oraz sensem fizycznego udziału w tych wydarzeniach. Efekt owych rozmyślań przedstawiam poniżej. Money money money... Nie ma co ukrywać, udział w konferencji... kosztuje. I to niemało. Moje doświadczenie w takich eventach ob...
[More]
Cykl częściowo wybronił się w komentarzach pod ostatnim postem, zatem pozostaje - tyle że prawdopodobnie dawkowany będzie z mniejszą częstotliwością:). Dziś cytat z naszej rodzimej mądrej głowy... Poniżej zaprezentowane zjawisko jest baaardzo częste. Ja sam nie byłem wyjątkiem i przez pierwsze kilka lat programowania z moich ust dość regularnie wymykało się zdanie: "no tak, całkiem fajny wzorzec/praktyka/porada/standard/... , ale w MOIM PRZYPADKU nie znajduje zastosowania". The mo...
[More]
... jak to było zorganizowane! Autobusy jakieś popodstawiał czy co? Tak jest, oto mój post numer dwieście. Liczba może nie porażająca, ale tak czy siak jakiś to jubileusz i można z tej okazji co nieco podsumowującego napisać. Co prawda bardziej profesjonalnie byłoby poczekać do okrągłego posta #256... ale co tam. Wszystko poniżej składać się będzie z trzech części: podlinkowania najciekawszych postów, zdradzenia kilku statystyk oraz dywagacji na temat przyszłości. Poproszę zatem o chwilę uwagi...
[More]
Automapper oferuje coś takiego jak profile. Dokumentacja nie mówi nam o nich na dzień dzisiejszy zbyt wiele (link) (dla leniwych - nie mówi NIC:) ). Po czymś o nazwie "profil" spodziewałem się możliwości utworzenia mniejszych "podkonfiguracji" charakterystycznych dla konkretnego scenariusza. Na przykład gdybym chciał mapowanie int->string mieć wspólne dla całej aplikacji, to nie umieszczałbym go w żadnym profilu. Natomiast wspomniane kiedyś mapowanie z czasu UTC na czas l...
[More]
Ostatnimi czasy zarówno na devPytaniach jak i 9fingers pojawiało się podobne pytanie, wcześniej też je wielokrotnie słyszałem. Powiem więcej - sam je kiedyś zadawałem. Na dotnetomaniaku z kolei pojawił się link do bloga, którego autor (Matthew) również dzieli się refleksjami na ten temat: link. Zachęcam do lektury - jeśli nie czytaliście to przeczytajcie i spotkajmy się za kilka minut :). Jestem zakałą? Krótka polemika Skoro przytoczony post jest już przeczytany, to macie w nim przedstawio...
[More]
W przykładzie z ostatniego posta wielu mogła nie podobać się następująca linijka: 1: string targetTimeZoneName = Config.TargetTimeZone;
I mają rację, gdyż można by to zamodelować jako zależność konwertera od konfiguracji - najlepiej przez constructor injection. Ale przecież Automapper sam tworzy konwertery, resolwery, formatery i wszystkie inne szmery bajery (reklama Ery?)...
HA! Nie było łatwo się do tego dokopać, ale poniższa instrukcja spowoduje, że wszystkie te "pomocnic...
[More]
Niedawno popisałem troszkę o czasie UTC i dlaczego tylko taka reprezentacja czasu powinna znajdować drogę do bazy danych. A teraz... w jaki sposób przygotować datę do podróży w drugą stronę, czyli do użytkownika. Z Automapperem jest to zadanie doprawdy banalne, wystarczy odpowiedni Type Converter: 1: public class UtcToLocalTimeConverter : TypeConverter<DateTime, DateTime>
2: {
3: protected override DateTime ConvertCore(DateTime source)
4: {
5: string targetTime...
[More]
Po jesiennym wzbogaceniu domowej maszynerii o filmowo-programistyczno-giercowego Della Vostro 1720 (BTW: jeśli się nad nim zastanawiasz, to... prawdopodobnie w podobnej cenie znajdziesz coś bardziej satysfakcjonującego) nadszedł czas na spimpowanie mojego głównego przyjaciela PC. Dwa rdzenie i 4 GB RAMu to nie jest na dzisiejsze czasy sprzęt wystarczający do zawodowej deweloperki, szczególnie dla kogoś tak uzależnionego od wirtualizacji jak ja (na hoście nie mam nawet zainstalowanego Visual Stud...
[More]
Nie czarujmy się, większość z nas pewnie zetknęła się kiedyś z taką szarą rzeczywistością, którą zgrabnie określił Jeff Atwood: At the end of the development cycle, you end up with software that is a pale shadow of the shining, glorious monument to software engineering that you envisioned when you started Co możemy z tym zrobić? Mieć ambicje, aby w naszym przypadku tak się nie stało. I... nie rozpaczać, jeśli nie do końca się uda. Źródło: Coding Horror.
Jakoś dawno nic mi się z niczym nie sko_dev_jarzyło :). Aż tu nagle.... Nie mam nic przeciwko nałogowym palaczom, sam lubię sobie zajarać. ALE gdy wchodzę o 6.07 z samego rana do obleśnej mikrowindy w tym zapyziałym starym bloku, w którym aktualnie przyszło mi mieszkać, i otacza mnie zewsząd cuchnąca mgła wydyszana z płuc smołczyciela, który nie potrafił poczekać 2 minut z odpaleniem fajki, to mnie szlag trafia. Jak bezdennie zdebilałym ciołem trzeba być, żeby coś takiego zrobić! Obrazując jak ...
[More]
W dzisiejszym świecie "nietechniczni" kreatywni ludzie nie mają łatwo. Obrotny biznesmen chce wsadzić w coś trochę kasy, rozkręcić jakiś projekcik, wpada na genialny pomysł: "a, zainwestuję sobie w portal!". Pomysł - betka. Założenia - betka. Analiza - betka. Ewentualna dotacja - betka. Okazuje się, że wszystko jest banałem w porównaniu z dokonaniem wyboru technologii. I, wbrew pozorom, im więcej ekspertów, tym trudniejszy wybór. Chcesz wiedzieć jak jest naprawdę? Któr...
[More]
Często WCF, mimo swoich możliwości w zakresie "interoperability", wcale nie musi być kompatybilny z komponentami zewnętrznymi. Nasz serwer, nasz klient, a WCF między nimi. I... tu zwykle zaczynają się problemy... (jak to pisał nie-ś.p. † Kurt Vonnegut, gówno wpada w szprychy:) ). WCF jest tak rozbudowaną i skomplikowaną technologią, że odpowiednie dobranie zawartych w niej klocków do stworzenia budowli, której potrzebujemy, jest niekiedy żmudnym, trudnym i bardzo czasochłonnym zajęcie...
[More]