Krótki opis o tym jak możemy przechwycić wartości parametrów z metod, które wywołujemy przy pomocy Mock Objects.
Niedawno otrzymałem zadanie, by do aplikacji napisanej w C# dodać kolejny future: wysyłanie maila do określonego odbiorcy z Outlooka (wiadmość miała być wysyłana z kotna usera który używa aplikacji). Na szczęście MS udostępnia biblkotekę Microsoft.Office.Interop.Outlook.dll. Dzięki niej możemy bez większych problemów odwołać się do Outlooka i wykonać operację na mailach, taskach czy notatkach. Jak to zrobić? Po kolej: Tworzymy nowy obiekt reprezentujący klienta poczty. Microsoft.Office.Interop.Outlo...
Przyspieszamy ASP.NET - AJAX Web Services W tej części cyklu “Przyspieszamy ASP.NET” omówię kolejne rozwiązanie z serii “wilk syty, owca cała”. Tym razem za pomocą asynchronicznego odwołania do Web Service’u sprawimy, że klient otrzyma dane szybciej, generując przy tym mniejszy ruch i mniej obciążając serwer niż w przypadku klasycznego postbacku. Co więcej, w jego odczuciu strona będzie działa bardziej dynamicznie. Jednak nie ma róży bez kolców…Gdzie jest problem i co chcemy osiągnąć? Przypuśćmy, że twor...
Ostatnio w wolnych chwilach pracuje nad protokołem OAuth dla Pocket Blip-a wraz z Filipem Tepperem z Blip.pl, który był tak miły i udostępnił mi jedno konto testowe. Problemy pojawiły się już na początku bo w bibliotekach Compact Framework brakuje implementacji HMAC-SHA1. Chciałem sprawę rozwiązać przez użycie OPENNETCF, które mają ten algorytm zaimplementowany, ale niestety pojawiały się błędy których nijak nie mogłem rozwiązać, bo sypały je biblioteki CF-a.
Mobile development 5487 dni, 8 godzin, 41 minut temu 41 ź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 5487 dni, 17 godzin, 47 minut temu 104 źrodło rozwiń
Oryginalny post: Coding: It's Just WritingAutor: Jeff Atwood W swoim artykule Programistyczne aforyzmy Strunka i Whitea, James Devlin jak zwykle znakomicie opisuje coś, co sam zacząłem coraz częściej dostrzegać w ciągu ostatnich pięciu lat, a mianowicie: Niespodziewany związek pomiędzy pisaniem kodu, a pisarstwem. Prawdopodobnie nie ma na świecie lepszego opracowania na temat pisarstwa niż książka The Elements of Style (w wolnym tłumaczeniu: "Składowe stylu") autorstwa Strunka i Whitea. Jest to je...
Jedną z największych bolączek w programowaniu w Compact Framework jest brak implementacji PointF dla platformy Windows Mobile. Mimo braku obsługi w rysowaniu obiektów przy użyciu float Point-a, sama struktura przydaje się w przekształceniach aby uniknąć w nich strat.
Mobile development 5488 dni, 17 godzin, 37 minut temu 27 źrodło rozwiń
Autor: Od roku piszę projekty posługując się NHibernate. A tu dopiero mój pierwszy post o tym super narządku :) Post tym bardziej niefortunny, gdyż dotyczy błędu na jaki można się nie chący natknąć i stracić dobrą godzinę na jego rozwiązanie. NHibernate pozwala na definiowanie różnego typu generatory wartości klucza głównego. Oprócz generatorów natywnych, czyli wartości generowanych przez bazy...
Dzisiaj kolejna porcja nadrabiania zaległości z podstawowych podstaw(bo jak inaczej to idzie nazwać?), tym razem serializacja.
Architektura 5492 dni, 16 godzin, 27 minut temu 152 źrodło rozwiń
Autor: Jakiś czas temu zdarzyło mi się napisać własny behavior, który w odróżnieniu od tych które dłubie na co dzień, może mieć zastosowanie w wielu aplikacjach, stąd też pomysł aby się nim podzielić :)Co to są behaviorsy nie będę się rozpisywał w tym temacie. Zagadnienie jest większe, a do poczytania o nim polecam świetny artykuł: http://www.silverlightshow.net/items/Behaviors-and-Triggers-in-Silverlight-3.aspx O co chodzi?
W obecnym projekcie nad którym pracuję potrzebuję szybko stworzyć kilka WebSerwisów, które będą rozmawiać z aplikacjami zewnętrznymi poprzez protokół SOAP. Pomyślałem, że skorzystam ze standardowej funkcjonalności dostępnej z poziomu ASP.NET...
Zapraszam na pierwszą część z serii screencastów dotyczących wykorzystania AJAXa w ASP.NET. Pierwsza część jest jednocześnie jedyną w pełni teoretyczną. Omawia historię powstania AJAXa oraz krótkie wprowadzenie, które pozwoli rozumieć działanie przykładów przedstawionych w kolejnych częściach. Zapraszam do oglądania i czekam na komentarze :)
Autor: Ponieważ ostatnio często w moim otoczeniu pojawiało się pytanie „Jak skleić wartości z jednej kolumny w ciąg znaków oddzielonych przecinkami” postanowiłem przedstawić jedną z najszybszych metod na zrealizowanie tego zadania (oczywiście nie jest ona pozbawiona wad).
Bazy danych i XML 5492 dni, 16 godzin, 27 minut temu 122 źrodło rozwiń
Znasz się na oprogramowaniu Microsoft? Masz ochotę pokazać innym ile wiesz? To poszukaj na polskiej Wikipedii artykułów, do których mógłbyś dodać coś od siebie. Uzupełnij je, uaktualnij albo napisz od nowa. W pierwszym etapie konkursu liczy się ilość artykułów poprawionych przez jedną osobę.
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 5492 dni, 16 godzin, 27 minut temu 111 źrodło rozwiń
Krótki, szybki poranny wpis ;-) Ostatnio pokazałem, jak napisać własny, prosty walidator w asp.net – działający po stronie klienta i serwera. Czasem niektóre pola formularza są ukrywane za pomocą JavaScriptu – wtedy walidator nie powinien działać. On jednak nie wie, czy kontrolka została ukryta, czy nie. Podejrzałem ostatnio podczas debugowania WebSite’u w VisualStudio skrypty, które są ładowane jako WebResource do konkretnej strony: Debugowanie skryptów w VisualStudio Polecam każdemu zapoznanie s...
Mityczne 100% pokrycia W środowisku deweloperskim wciąż żywy jest mit 100% pokrycia kodu testami jednostkowymi. Co gorsza, mit ten ma się równie dobrze (a może nawet lepiej?) wśród decydentów (kierowników, dyrektorów itp.). Celem poniższej notki jest pokazanie, jak bardzo naiwne jest podejście "100% pokrycia". Popatrzmy na następujący trywialny kod:
Mając przygotowany już kod obsługujący naszą składnię, możemy przejść analizy przekazanego wyrażenia. Korzeniem wyrażenia zawsze obiekt LambdaExpression, którego Body jest wywołaniem metody lub konstruktora, których argumenty będą poddane sprawdzeniu. Wywołanie metody powoduje odłożenie na drzewie obiektu MethodCallExpression, zaś sama metoda i informaje o niej (MethodInfo) jest dostępna przez property Method. Wywołanie konstruktora (np. new Service(...)) odkłada na drzewie obiekt NewExpression, umies...
Dzisiejszy wpis to praktycznie dokończenie dwóch poprzednich, stanowiące jakieś ich uzupełnienie, lub też swojsko rzecz ujmując ‘dobicie’. Do zbadania na dziś przygotowałem klasy Timer i BackgroundWorker. Ta druga trochę nietypowo, ponieważ wykorzystana zostanie w ‘aplikacji’ konsolowej, a głównym(tak mi się zdaje) jej zastosowaniem są aplikacje okienkowe i puszczanie złożonych czasowo operacji w tle, by GUI nie zostało ‘zawieszone’. Timer(System.Threading) Tutaj prosto i przyjemnie: jeśli chcemy odpala...